Skip to main content

How Payouts Work

Payout lifecycle, status transitions, and expected timelines.

Written by Ryan O
Updated today

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

  1. Validation -- The amount, currency, and payee are validated against your account configuration.

  2. Balance check -- Anton verifies you have sufficient funds in the source currency.

  3. Funds reserved -- The payout amount is held from your available balance so it cannot be double-spent.

  4. Velocity rules checked -- Fraud and compliance rules are evaluated (daily limits, geo-blocking, pattern detection).

  5. Screening -- OFAC, PEP, and sanctions checks run automatically against the payee.

  6. Routing -- Anton selects the optimal rail provider for the corridor, currency, and speed requirements.

  7. Delivery -- Funds are dispatched to the payee through the selected rail.

Status Descriptions

Status

Description

Terminal?

created

Payout accepted, funds reserved from your balance.

No

pending_screening

Undergoing compliance checks (OFAC, PEP, sanctions, velocity rules).

No

screening_failed

Blocked by compliance. Requires manual review by the Anton ops team.

No

pending_approval

High-value or sensitive payout awaiting maker-checker approval.

No

manual_review

Flagged for human review by risk rules.

No

processing

Approved and submitted to the payment rail provider for delivery.

No

sent

Rail provider confirmed dispatch to the payee bank or wallet.

No

completed

Funds delivered successfully to the payee.

Yes

failed

Delivery failed (wrong account, bank rejection, etc.).

Yes

returned

Funds returned after a delivery attempt was made.

Yes

cancelled

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.

Did this answer your question?