Skip to main content

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. Only invoice.paid is safe for automatic order fulfillment. A deposit.review_required event is informational and always includes safeToFulfill: false.

Review webhook

Common assignment states are 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 both deposit.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 emits deposit.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.
PayChain emits 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 requires Idempotency-Key. Reuse the same key when retrying the same action after a timeout. Do not use one key for different deposits or resolution actions.