Create a collection (pull payment) to debit an external account and credit an OpenFX account. The counterparty’s payment method must be of a type that supports debit (e.g., us_bank for ACH). Compliance screening applies per ADR-0007.
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"
Create a collection (pull payment) via the unified endpoint.
Account where collected funds will be credited.
^acc_[A-Za-z0-9]+$"acc_01953e1a5f4b7002"
External account to debit (must support pull/debit operations).
^pm_[A-Za-z0-9]+$"pm_01953e1a5f4b7300"
Rail used for the collection. Currently ACH only. SEPA Direct Debit and other pull-payment rails will be added in future versions.
ach 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 being debited. Derived from payment method if omitted.
^cpt_[A-Za-z0-9]+$"cpt_01953e1a5f4b7004"
Payment reference for reconciliation.
Purpose of the collection.
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.
Collection created.
An initiated inbound pull payment. Collections debit an external account (via the counterparty's payment method) and credit an OpenFX account. ACH debit collections have a 60-day return window even after completion.
Collection resource identifier.
^col_[A-Za-z0-9]+$"col_01953e1a5f4b7c00"
Customer resource identifier.
^cus_[A-Za-z0-9]+$"cus_01953e1a5f4b7000"
Account where collected funds are credited.
^acc_[A-Za-z0-9]+$"acc_01953e1a5f4b7002"
Counterparty resource identifier.
^cpt_[A-Za-z0-9]+$"cpt_01953e1a5f4b7004"
External account being debited (e.g., us_bank type).
^pm_[A-Za-z0-9]+$"pm_01953e1a5f4b7300"
Rail used for the collection. Currently ACH only. SEPA Direct Debit and other pull-payment rails will be added in future versions.
ach 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"
}Always inbound — funds flow from external to OpenFX. Collections are pull payments initiated by the platform.
inbound Collection lifecycle status. ACH debits have a 60-day return window even after reaching completed.
pending, requires_action, submitted, processing, completed, returned, failed, canceled UTC timestamp in RFC 3339 / ISO 8601 format.
"2026-02-23T12:00:00Z"
Whether the payment can currently be canceled.
cancelable, not_cancelable Reason why a collection is in requires_action status.
compliance_hold, rfi_pending, authorization_required Read-only compliance metadata on payments and counterparties.
Fee details on payments and estimates. Per ADR-0006.
Net amount credited after fees.
{
"currency": "USD",
"exponent": 2,
"value": "150000",
"displayValue": "1500.00"
}Payment reference for reconciliation.
Purpose of the collection.
Rail-specific details (ACH trace number, etc.).
ACH return reason code, present when status is returned.
R01, R02, R03, R04, R05, R06, R07, R08, R09, R10, R11, R13, R14, R15, R16, R17, R20, R23, R29, R51 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"
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"