Deposit review and recovery
PayChain records detected customer-address deposits even when an Auto Deposit Intent cannot be safely matched. These deposits appear in the business dashboard and are excluded from withdrawal capacity until they are assigned, accepted, or refunded. Onlyinvoice.paid is safe for automatic order fulfillment. A deposit.review_required event is informational and always includes safeToFulfill: false.
Review webhook
unassigned_no_intent, review_required_asset_mismatch, review_required_amount_mismatch, review_required_ambiguous, review_required_unsupported_asset, and review_required_non_positive_net. A non-positive settlement remains held and can only be refunded.
List deposits needing review
Assign to an intent
Assignment requires an active intent for the same business, customer, network, asset, and amount tolerance. A successful assignment creates the paid invoice and emits bothdeposit.assigned and invoice.paid.
Accept without an order
Acceptance applies normal payment fees and makes the merchant net amount available without attaching order identity. It emitsdeposit.accepted, not invoice.paid.
Refund the sender
Refunds return the gross token amount to the sender observed on-chain. A custom destination must use the normal withdrawal flow. Programmatic refunds require a payout API key whose policy permits the asset, network, amount, and sender destination.deposit.refund_pending, followed by deposit.refunded or deposit.refund_failed. A failed refund returns the deposit to the review queue.
Idempotency
Every resolution mutation requiresIdempotency-Key. Reuse the same key when retrying the same action after a timeout. Do not use one key for different deposits or resolution actions.