Skip to main content
POST
/
v1
/
payouts
/
{id}
/
cancel
Cancel a payout
curl --request POST \
  --url https://api.antonpayments.com/v1/payouts/{id}/cancel \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: <idempotency-key>' \
  --data '
{
  "reason": "<string>",
  "end_user_ip": "<string>"
}
'
{ "id": "pay_01HX8Z9K0M2N3P4Q5R6S7T8UAB", "merchant_id": "mer_01HX8Z9K0M2N3P4Q5R6S7T8UZZ", "beneficiary_id": "ben_01HX8Z9K0M2N3P4Q5R6S7T8UA1", "instrument_id": "ins_01HX8Z9K0M2N3P4Q5R6S7T8UA2", "status": "processing", "method": "sepa", "source_amount": "550.00", "source_currency": "USD", "dest_amount": "500.00", "dest_currency": "EUR", "exchange_rate": "0.9091", "fee": "5.00", "fee_currency": "USD", "fee_bearer": "merchant", "fixed_side": "fixed_dest", "total_debited": "557.50", "total_debited_currency": "USD", "fee_finalized": false, "buffer_amount": "2.50", "buffer_currency": "USD", "rail_type": "fiat", "rail_provider": "openpayd", "rail_reference": "OP-2026-04-15-778812", "network": "sepa", "purpose": "supplier_payment", "reference": "PO-8821", "created_at": "2026-04-15T14:30:00Z", "updated_at": "2026-04-15T14:30:05Z", "screened_at": "2026-04-15T14:30:02Z", "approved_at": "2026-04-15T14:30:04Z", "processed_at": "2026-04-15T14:30:05Z" }

Authorizations

Authorization
string
header
required

API keys are opaque strings prefixed by environment:

  • ak_live_* — production keys, accepted only on api.antonpayments.com.
  • ak_test_* — sandbox keys, accepted only on api.antonpayments.dev.

Include your key in the Authorization header: Bearer ak_test_....

Headers

Idempotency-Key
string
required

Unique key identifying this operation. Sending the same key twice returns the original response instead of creating a duplicate. Keys are retained for 24 hours.

Maximum string length: 255

Path Parameters

id
string
required
Pattern: ^pay_[a-zA-Z0-9]+$

Body

application/json
reason
string

Free-form reason for cancellation. Recorded in the audit log.

Maximum string length: 255
end_user_ip
string

Response

Payout cancelled.

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.

id
string
required
Pattern: ^pay_[a-zA-Z0-9]+$
Example:

"pay_01HX8Z9K0M2N3P4Q5R6S7T8UAB"

merchant_id
string
required
Pattern: ^mer_[a-zA-Z0-9]+$
beneficiary_id
string
required
Pattern: ^ben_[a-zA-Z0-9]+$
instrument_id
string
required
Pattern: ^ins_[a-zA-Z0-9]+$
status
enum<string>
required

Payout lifecycle state. See the How Anton Evaluates Payouts guide for the full state machine and integration guidance.

Available options:
created,
pending_screening,
screening_failed,
pending_approval,
approved,
processing,
sent,
completed,
failed,
returned,
cancelled,
manual_review,
velocity_blocked,
pending_engine_review
method
enum<string>
required

How the payout will be delivered. Distinct from an Instrument's method (which is the credential format) — this is the rail-family selection.

Available options:
bank_transfer,
wire,
sepa,
swift,
ach,
faster_payment,
mobile_money,
wallet,
on_chain,
layer2,
exchange,
stablecoin
source_amount
string
required

Decimal amount as a string, never a float. Up to 12 whole digits.

Pattern: ^-?\d{1,12}(\.\d+)?$
Example:

"1234.56"

source_currency
string
required

ISO 4217 three-letter currency code.

Pattern: ^[A-Z]{3}$
Example:

"USD"

dest_amount
string
required

Decimal amount as a string, never a float. Up to 12 whole digits.

Pattern: ^-?\d{1,12}(\.\d+)?$
Example:

"1234.56"

dest_currency
string
required

ISO 4217 three-letter currency code.

Pattern: ^[A-Z]{3}$
Example:

"USD"

rail_type
enum<string>
required
Available options:
fiat,
crypto,
stablecoin
purpose
string
required
reference
string
required
created_at
string<date-time>
required

RFC 3339 / ISO 8601 timestamp in UTC.

Example:

"2026-04-15T14:30:00Z"

updated_at
string<date-time>
required

RFC 3339 / ISO 8601 timestamp in UTC.

Example:

"2026-04-15T14:30:00Z"

batch_id
string | null

Set when the payout was created as part of a batch upload.

Pattern: ^bat_[a-zA-Z0-9]+$
exchange_rate
string

Source-to-dest rate. Present on cross-currency payouts.

Pattern: ^-?\d{1,12}(\.\d+)?$
Example:

"1234.56"

fee
string

Decimal amount as a string, never a float. Up to 12 whole digits.

Pattern: ^-?\d{1,12}(\.\d+)?$
Example:

"1234.56"

fee_currency
string

ISO 4217 three-letter currency code.

Pattern: ^[A-Z]{3}$
Example:

"USD"

fee_bearer
enum<string>
Available options:
merchant,
beneficiary
fixed_side
enum<string>
Available options:
fixed_source,
fixed_dest
total_debited
string

Total drawn from your balance — source_amount + fee + buffer during processing. Buffer releases on finalization.

Pattern: ^-?\d{1,12}(\.\d+)?$
Example:

"1234.56"

total_debited_currency
string

ISO 4217 three-letter currency code.

Pattern: ^[A-Z]{3}$
Example:

"USD"

fee_finalized
boolean

Whether fee reflects the final rate from the rail.

buffer_amount
string

Cross-currency rate buffer held during processing, released on settlement.

Pattern: ^-?\d{1,12}(\.\d+)?$
Example:

"1234.56"

buffer_currency
string

ISO 4217 three-letter currency code.

Pattern: ^[A-Z]{3}$
Example:

"USD"

pricing_plan_id
string

Which pricing plan was used for the quote.

rail_provider
string

External rail name. Populated at rail-submission time.

Example:

"openpayd"

rail_reference
string

External provider reference. Useful for support tickets.

network
enum<string>

Specific rail or chain. Populated by the rail adapter when the payout is submitted.

Available options:
swift,
sepa,
ach,
fps,
rtgs,
ethereum,
bitcoin,
tron,
solana,
polygon,
arbitrum,
optimism,
base,
avalanche,
bsc,
lightning,
stellar,
ripple
wallet_address
string

Destination wallet address. Present for crypto/stablecoin payouts.

token_contract
string

ERC-20 / TRC-20 contract address. Present for stablecoin payouts.

token_symbol
string
Example:

"USDC"

tx_hash
string

On-chain transaction hash. Present once sent for crypto/stablecoin payouts.

block_confirmations
integer

Number of confirmations observed so far.

required_confirms
integer

Confirmations required before the payout reaches completed.

network_fee
string

Gas / network fee. Deducted from the settlement, not from your balance.

Pattern: ^-?\d{1,12}(\.\d+)?$
Example:

"1234.56"

network_fee_currency
string

ISO 4217 three-letter currency code.

Pattern: ^[A-Z]{3}$
Example:

"USD"

cancelled_reason
string

Populated on cancelled, failed, velocity_blocked, screening_failed.

engine_unavailable_at
string<date-time>

Present if the payout entered pending_engine_review because the Anton Engine was unreachable.

Example:

"2026-04-15T14:30:00Z"

metadata
object
screened_at
string<date-time>

RFC 3339 / ISO 8601 timestamp in UTC.

Example:

"2026-04-15T14:30:00Z"

screening_failed_at
string<date-time>

RFC 3339 / ISO 8601 timestamp in UTC.

Example:

"2026-04-15T14:30:00Z"

approved_at
string<date-time>

RFC 3339 / ISO 8601 timestamp in UTC.

Example:

"2026-04-15T14:30:00Z"

processed_at
string<date-time>

RFC 3339 / ISO 8601 timestamp in UTC.

Example:

"2026-04-15T14:30:00Z"

completed_at
string<date-time>

RFC 3339 / ISO 8601 timestamp in UTC.

Example:

"2026-04-15T14:30:00Z"

failed_at
string<date-time>

RFC 3339 / ISO 8601 timestamp in UTC.

Example:

"2026-04-15T14:30:00Z"

cancelled_at
string<date-time>

RFC 3339 / ISO 8601 timestamp in UTC.

Example:

"2026-04-15T14:30:00Z"