Create a domestic US ACH payment. Creates the same Payment resource as POST /payments with rail: ach, but with a simpler request schema.
ACH-specific options:
achType: standard — next-day settlement (default)achType: same_day — same-day settlement (cutoff ~2:45 PM ET)secCode — NACHA Standard Entry Class: WEB (consumer internet), PPD
(prearranged consumer), CCD (corporate), CTX (corporate with addenda)Returns: ACH payments may be returned up to 60 days after settlement. The achReturnCode field on the Payment provides the NACHA return reason (R01-R51).
API key issued at onboarding. Passed as a Bearer token in the Authorization header: Authorization: Bearer <api-key>. Identifies the caller and determines organization scope. Invalid or revoked keys return 401 with error type authentication_error.
Ed25519 or RSA-SHA256 asymmetric signature over the request payload (ADR-0015). Provides request integrity and non-repudiation. The signature covers the HTTP method, path, query string, request body, and timestamp. Invalid signatures return 401 with error type authentication_error.
Unix timestamp (seconds) of when the request was signed. Server rejects requests where the timestamp drifts beyond +/-60 seconds from server time to prevent replay attacks. Must match the timestamp used in the signature computation.
Idempotency key for this request. UUID v4 recommended. Max 128 characters. 24-hour retention. Same key + same body replays original response with Idempotency-Replayed: true. Same key + different body returns 409 (code: duplicate_idempotency_key). Same key while the original request is still processing returns 409 with a Retry-After header (code: idempotency_key_in_flight).
128"550e8400-e29b-41d4-a716-446655440000"
Rail-specific ACH payment creation. Creates a standard Payment resource.
Account resource identifier.
^acc_[A-Za-z0-9]+$"acc_01953e1a5f4b7002"
Payment method resource identifier.
^pm_[A-Za-z0-9]+$"pm_01953e1a5f4b7300"
Monetary amount for request input. Value MUST be in smallest currency unit (e.g., cents for USD, pence for GBP). Server derives exponent from currency.
{ "currency": "USD", "value": "150000" }Counterparty resource identifier.
^cpt_[A-Za-z0-9]+$"cpt_01953e1a5f4b7004"
ACH transfer speed.
standard, same_day NACHA Standard Entry Class code.
WEB, PPD, CCD Consumer-defined key-value store. Available on all primary resources. Max 50 keys. Keys must match ^[a-zA-Z0-9_]{1,40}$. Values are strings (max 500 chars) or null.
ACH payment created.
An outbound payment instruction. Created via the unified POST /payments endpoint or rail-specific convenience endpoints. All create the same resource with the same status machine and webhook events.
Payment resource identifier.
^pmt_[A-Za-z0-9]+$"pmt_01953e1a5f4b7005"
Customer resource identifier.
^cus_[A-Za-z0-9]+$"cus_01953e1a5f4b7000"
External lifecycle status of a payment. Terminal states: completed, returned, reversed, refunded, failed, canceled.
created, requires_action, in_review, processing, completed, returned, reversed, refunded, failed, canceled Payment rail used for delivery.
ach, fedwire, swift, crypto, open UTC timestamp in RFC 3339 / ISO 8601 format.
"2026-02-23T12:00:00Z"
UTC timestamp in RFC 3339 / ISO 8601 format.
"2026-02-23T12:00:00Z"
Account resource identifier.
^acc_[A-Za-z0-9]+$"acc_01953e1a5f4b7002"
Counterparty resource identifier.
^cpt_[A-Za-z0-9]+$"cpt_01953e1a5f4b7004"
Payment method resource identifier.
^pm_[A-Za-z0-9]+$"pm_01953e1a5f4b7300"
Payment direction. Always 'outbound' — inbound payments are tracked via the separate InboundPayment resource.
outbound Monetary amount with exponent-based precision. Value is in smallest currency unit (e.g., cents for USD). displayValue is the human-readable decimal.
{
"currency": "USD",
"exponent": 2,
"value": "150000",
"displayValue": "1500.00"
}Monetary amount with exponent-based precision. Value is in smallest currency unit (e.g., cents for USD). displayValue is the human-readable decimal.
{
"currency": "USD",
"exponent": 2,
"value": "150000",
"displayValue": "1500.00"
}Which side of the payment amount is authoritative. 'send' means the sender's debit amount is fixed; 'receive' means the recipient's credit amount is fixed.
send, receive Controls FX execution on cross-currency payments. use_quote requires a pre-locked quoteId. at_market executes at current market rate.
use_quote, at_market FX quote resource identifier.
^qte_[A-Za-z0-9]+$"qte_01953e1a5f4b7006"
FX rate information embedded in payments and conversions.
Fee details on payments and estimates. Per ADR-0006.
Monetary amount with exponent-based precision. Value is in smallest currency unit (e.g., cents for USD). displayValue is the human-readable decimal.
{
"currency": "USD",
"exponent": 2,
"value": "150000",
"displayValue": "1500.00"
}Whether the payment can currently be canceled.
cancelable, not_cancelable Reason why a payment is in requires_action status.
cop_required, beneficiary_verification_required, rfi_pending, quote_expired, return_action_required, compliance_hold, travel_rule_required Read-only compliance metadata on payments and counterparties.
Rail-specific details (ACH SEC code, SWIFT charges, etc.).
Consumer-defined payment reference.
"INV-2026-001"
Purpose of payment. Required for SWIFT and SEPA payments to certain corridors.
goods_and_services, intercompany_transfer, investments, payroll, treasury_management, pension, tax_payment, trade_of_goods, financial_services, donations_and_charity, rent_and_lease, reimbursement, salary_and_compensation, other Consumer-defined key-value store. Available on all primary resources. Max 50 keys. Keys must match ^[a-zA-Z0-9_]{1,40}$. Values are strings (max 500 chars) or null.
UTC timestamp in RFC 3339 / ISO 8601 format.
"2026-02-23T12:00:00Z"
ACH return reason code. Present only when rail is ach and the payment has been returned.
R01, R02, R03, R04, R05, R06, R07, R08, R09, R10, R11, R13, R14, R15, R16, R17, R20, R23, R29, R51 Blockchain network used for crypto payments. Present only when rail is crypto.
ethereum, solana, base, ink, sui On-chain confirmation status for crypto payments. Present only when rail is crypto.
pending_confirmation, confirmed, failed Travel rule data transmitted for this payment. Present only for crypto payments.
Beneficiary name verification result (CoP/VoP). Present when payment has undergone beneficiary verification.