Understanding Payout Rejections
When a payout does not complete successfully, Anton assigns a status that tells you exactly what happened. Below are all the rejection scenarios you may encounter and what to do about each one.
velocity_blocked
Your payout triggered one of Anton's automated risk rules. This can happen for several reasons:
Amount threshold exceeded — The payout amount is above the limit configured for your account or corridor.
Too many payouts in a short timeframe — You have sent more payouts than your velocity limit allows within a given window (e.g., per minute, per hour, or per day).
Blocked country — The destination country is restricted for your account or is on a global block list.
What to do: Check the error response body for a code field that identifies which rule was triggered. If you believe the block is incorrect, contact support with the payout ID (pay_...) and the error code. To adjust your velocity limits, reach out to your account manager.
screening_failed
The payee or payout was flagged during OFAC/sanctions screening. Anton screens all payouts against international sanctions lists before processing.
What to do: This status means a potential match was found against a sanctioned entity. You cannot retry this payout without review. Contact Anton support with the payout ID and payee ID (pye_...). Our compliance team will review the match and advise on next steps. If the match is a false positive, the payout can be cleared for resubmission.
manual_review
Your payout has been flagged for manual compliance review. This is not necessarily an error — it is a normal part of Anton's compliance process. Payouts are flagged for review when they meet certain criteria:
The amount exceeds a reporting threshold for the destination corridor.
The payee is new and has not yet received a payout in this corridor.
The combination of amount, currency, and destination triggers enhanced due diligence requirements.
What to do: No action is required from you. Anton's compliance team will review the payout, typically within a few hours during business hours. You will receive a webhook notification when the review is complete and the payout moves to the next status. If additional information is needed, our team will reach out to you directly.
failed
The payment rail provider returned an error when attempting to process your payout. Common causes include:
Invalid bank details — The IBAN, account number, or routing code on the payee's instrument (
ins_...) is incorrect.Bank rejected the transfer — The receiving bank refused the payment (e.g., account closed, name mismatch).
Insufficient details — The rail requires additional fields that were not provided (e.g., purpose of payment, reference).
What to do: Check the failure_reason field in the payout response or webhook payload. Correct the payee's instrument details using PATCH /v1/payees/{id}/instruments/{ins_id}, then create a new payout. Do not retry the same payout — create a new one with a new idempotency key.
returned
The payout was successfully sent to the payment rail and reached the receiving bank, but the bank returned the funds. This can happen days after the payout showed as sent or completed. Common reasons:
The receiving account is closed or dormant.
The account holder name does not match.
The receiving bank requires additional beneficiary information.
What to do: The returned funds are automatically credited back to your Anton balance. Check the return_reason field for details. Verify the payee's bank details with them directly, update the instrument, and create a new payout.
General Tips
Always check the full payout object via
GET /v1/payouts/{pay_id}for detailed status information.Subscribe to webhook events (
payout.failed,payout.returned,payout.velocity_blocked) so you are notified immediately.Use the sandbox environment (
api.antonpayments.dev) to test different failure scenarios before going live.
