Overview
A payout is the core object in Anton Payments. It represents a single money movement from your merchant account to a payee. When you create a payout, Anton handles compliance screening, rail routing, and delivery automatically.
Every payout moves through a defined set of statuses. Transitions are enforced by a state machine -- no status can be skipped or set directly.
Payout Lifecycle
Here is the typical path a payout takes from creation to completion:
created β pending_screening β processing β sent β completed
Some payouts may be flagged for manual review or maker-checker approval, which adds intermediate steps before they reach processing.
What Happens When You Create a Payout
Validation -- The amount, currency, and payee are validated against your account configuration.
Balance check -- Anton verifies you have sufficient funds in the source currency.
Funds reserved -- The payout amount is held from your available balance so it cannot be double-spent.
Velocity rules checked -- Fraud and compliance rules are evaluated (daily limits, geo-blocking, pattern detection).
Screening -- OFAC, PEP, and sanctions checks run automatically against the payee.
Routing -- Anton selects the optimal rail provider for the corridor, currency, and speed requirements.
Delivery -- Funds are dispatched to the payee through the selected rail.
Status Descriptions
Status | Description | Terminal? |
| Payout accepted, funds reserved from your balance. | No |
| Undergoing compliance checks (OFAC, PEP, sanctions, velocity rules). | No |
| Blocked by compliance. Requires manual review by the Anton ops team. | No |
| High-value or sensitive payout awaiting maker-checker approval. | No |
| Flagged for human review by risk rules. | No |
| Approved and submitted to the payment rail provider for delivery. | No |
| Rail provider confirmed dispatch to the payee bank or wallet. | No |
| Funds delivered successfully to the payee. | Yes |
| Delivery failed (wrong account, bank rejection, etc.). | Yes |
| Funds returned after a delivery attempt was made. | Yes |
| Payout cancelled before it reached processing. | Yes |
Expected Timelines
Timing depends on the corridor, rail, and destination country:
Sandbox: All transitions happen in seconds. Use this to verify your status handling logic.
Screening: Typically completes in a few seconds. In rare cases with manual review, it may take up to a few hours.
Processing to sent: Usually minutes, depending on the rail provider.
Sent to completed: Same-day for domestic rails (ACH, FPS, SEPA). One to three business days for international SWIFT transfers. Crypto payouts typically confirm within minutes.
Terminal vs Non-Terminal Statuses
A terminal status means the payout has reached its final state and will not change again. The terminal statuses are: completed, failed, returned, and cancelled.
Non-terminal statuses indicate the payout is still in progress and will eventually transition to a terminal state. You should continue listening for webhook events or polling the API until a terminal status is reached.
Amounts and Currencies
Amounts are always represented as strings (for example, "1000.00") to prevent floating-point rounding errors. Never use numeric types for monetary values. The currency field uses ISO 4217 three-letter codes such as USD, GBP, and EUR.
