Retrieve a Payout
Return a single payout by ID. Returns 404 if the payout does not exist or belongs to a different merchant.
Authorizations
OAuth 2.0 client_credentials grant (RFC 6749 §4.4) bound to a DPoP keypair (RFC 9449).
Flow (every authenticated /v1 call requires both an access token AND a fresh per-request DPoP proof):
- Register a credential via the merchant portal. Anton issues a
client_id(ant_oc_<env>_<32hex>) and aclient_secret(ant_ocs_<env>_<48hex>, shown ONCE). The portal generates an ES256 or Ed25519 DPoP keypair in your browser; you store the private half. - Mint an access token:
POST /oauth/tokenwithAuthorization: Basic <client_id:client_secret>andContent-Type: application/x-www-form-urlencoded. Body:grant_type=client_credentials. ADPoPheader carrying a proof signed for the token endpoint is required (noathclaim on this proof). - Use the token: send
Authorization: DPoP <access_token>plus a freshDPoP: <proof>header on every/v1request. The proof JWT MUST carryhtm(request method),htu(request URL, no query/fragment),iat(within ±60s),jti(unique within 5 min), andath(SHA-256 of the access token, base64url).
Tokens expire in 1 hour in production / staging and 8 hours in sandbox. There are no refresh tokens — call /oauth/token again with your secret. Anton's public signing key is published at /.well-known/jwks.json.
OpenAPI 3.0 has no native DPoP scheme; this declaration plus dpopHeader together convey both the access-token Authorization and the per-request proof header.
Per-request DPoP proof JWT (RFC 9449). MUST accompany the Authorization: DPoP <access_token> header on every protected operation. The proof is signed by the merchant's private DPoP key and carries htm, htu, iat, jti, and ath claims.
Path Parameters
Payout ID (prefixed pay_).
^pay_[a-zA-Z0-9]+$"pay_01HX8Z9K0M2N3P4Q5R6S7T8UAB"
Response
Payout.
A single payment from your merchant balance to a beneficiary's instrument. Moves through a 13-state machine — see the How Anton Evaluates Payouts guide.
Rail-specific fields (rail_provider, rail_reference, network,
wallet_address, tx_hash, etc.) populate as the payout moves through
approved -> processing -> sent -> completed.
^pay_[a-zA-Z0-9]+$"pay_01HX8Z9K0M2N3P4Q5R6S7T8UAB"
^mer_[a-zA-Z0-9]+$^ben_[a-zA-Z0-9]+$^ins_[a-zA-Z0-9]+$Payout lifecycle state. See the How Anton Evaluates Payouts guide for the full state machine and integration guidance.
created, pending_screening, screening_failed, pending_approval, approved, processing, sent, completed, failed, returned, cancelled, manual_review, velocity_blocked, pending_engine_review How the payout will be delivered. Distinct from an Instrument's method
(which is the credential format) — this is the rail-family selection.
bank_transfer, wire, sepa, swift, ach, faster_payment, mobile_money, wallet, crypto, layer2, exchange, stablecoin Decimal amount as a string, never a float. Up to 12 whole digits.
^-?\d{1,12}(\.\d+)?$"1234.56"
ISO 4217 three-letter currency code.
^[A-Z]{3}$"USD"
Decimal amount as a string, never a float. Up to 12 whole digits.
^-?\d{1,12}(\.\d+)?$"1234.56"
ISO 4217 three-letter currency code.
^[A-Z]{3}$"USD"
fiat, crypto, stablecoin RFC 3339 / ISO 8601 timestamp in UTC.
"2026-04-15T14:30:00Z"
RFC 3339 / ISO 8601 timestamp in UTC.
"2026-04-15T14:30:00Z"
Set when the payout was created as part of a batch upload.
^bat_[a-zA-Z0-9]+$Source-to-dest rate. Present on cross-currency payouts.
^-?\d{1,12}(\.\d+)?$"1234.56"
Decimal amount as a string, never a float. Up to 12 whole digits.
^-?\d{1,12}(\.\d+)?$"1234.56"
ISO 4217 three-letter currency code.
^[A-Z]{3}$"USD"
merchant, beneficiary fixed_source, fixed_dest Total drawn from your balance — source_amount + fee + buffer during processing. Buffer releases on finalization.
^-?\d{1,12}(\.\d+)?$"1234.56"
ISO 4217 three-letter currency code.
^[A-Z]{3}$"USD"
Whether fee reflects the final rate from the rail.
Cross-currency rate buffer held during processing, released on settlement.
^-?\d{1,12}(\.\d+)?$"1234.56"
ISO 4217 three-letter currency code.
^[A-Z]{3}$"USD"
Which pricing plan was used for the quote.
External rail name. Populated at rail-submission time.
"openpayd"
External provider reference. Useful for support tickets.
Specific rail or chain. Populated by the rail adapter when the payout is submitted.
swift, sepa, ach, fps, rtgs, ethereum, bitcoin, tron, solana, polygon, arbitrum, optimism, base, avalanche, bsc, lightning, stellar, ripple Destination wallet address. Present for crypto/stablecoin payouts.
ERC-20 / TRC-20 contract address. Present for stablecoin payouts.
"USDC"
On-chain transaction hash. Present once sent for crypto/stablecoin payouts.
Number of confirmations observed so far.
Confirmations required before the payout reaches completed.
Gas / network fee. Deducted from the settlement, not from your balance.
^-?\d{1,12}(\.\d+)?$"1234.56"
ISO 4217 three-letter currency code.
^[A-Z]{3}$"USD"
Populated on cancelled, failed, velocity_blocked, screening_failed.
Present if the payout entered pending_engine_review because the Anton Engine was unreachable.
"2026-04-15T14:30:00Z"
RFC 3339 / ISO 8601 timestamp in UTC.
"2026-04-15T14:30:00Z"
RFC 3339 / ISO 8601 timestamp in UTC.
"2026-04-15T14:30:00Z"
RFC 3339 / ISO 8601 timestamp in UTC.
"2026-04-15T14:30:00Z"
RFC 3339 / ISO 8601 timestamp in UTC.
"2026-04-15T14:30:00Z"
RFC 3339 / ISO 8601 timestamp in UTC.
"2026-04-15T14:30:00Z"
RFC 3339 / ISO 8601 timestamp in UTC.
"2026-04-15T14:30:00Z"
RFC 3339 / ISO 8601 timestamp in UTC.
"2026-04-15T14:30:00Z"