MVP API (v0.1) — The collections surface covers ACH debit collections. Additional
collection rails will be added in future releases.
What Are Collections?
Collections are initiated inbound pull payments. They debit an external account (via a counterparty’s payment method) and credit an OpenFX account. This is the inverse of a standard payment, where you push funds out to a counterparty.col_). They are distinct from outbound payments.
Currently Supported Rails
Collections currently support ACH debit only. Additional pull-payment rails will be added in future versions.| Rail | Endpoint | SEC Codes | Settlement |
|---|---|---|---|
ach | POST /collections/ach | WEB, PPD, CCD | 1-2 business days (standard), same day |
Collection Lifecycle
Every collection progresses through a defined set of statuses:| Status | Description |
|---|---|
pending | Collection created, not yet submitted to the rail. |
submitted | Submitted to the payment rail for processing. |
processing | The rail is processing the debit. |
completed | Funds received and credited to the destination account. |
returned | The debit was returned by the external bank (e.g., insufficient funds, unauthorized). |
failed | Collection failed before completing. |
Two Approaches to Creating Collections
Like payments, OpenFX provides both a unified and a rail-specific endpoint for collections.Unified endpoint
POST /collections accepts any supported collection rail. You specify the rail field in the request body.
Rail-specific endpoint
POST /collections/ach provides direct access to ACH debit with rail-native parameters (SEC code, same-day vs standard). The rail field is implicit in the URL.
Creating a Collection
Listing Collections
Key Collection Fields
| Field | Type | Description |
|---|---|---|
id | string | Collection ID with col_ prefix (e.g., col_01953e1a5f4b7e00) |
destinationAccountId | string | The OpenFX account where collected funds are credited |
counterpartyId | string | The external party whose account is being debited |
paymentMethodId | string | The counterparty’s payment method (must support debit) |
rail | enum | Currently only ach |
amount | Money | The amount to collect ({ "currency": "USD", "value": "250000" }) |
direction | enum | Always inbound for collections |
status | enum | Current lifecycle status |
totalCreditAmount | Money | Net amount credited after fees |
fees | FeeBreakdown | Fee details if applicable |
reference | string | Your payment reference for reconciliation |
achReturnCode | string | ACH return reason code (present when status is returned) |
Related Guides
ACH Debit Collections
Create ACH debit collections with rail-native parameters like SEC codes and same-day processing.
Counterparties
Manage the external parties whose accounts you collect from.
API Reference
- POST /collections — Create collection (unified)
- GET /collections — List collections
- GET /collections/ — Get collection
- POST /collections/ach — Create ACH debit collection
- GET /collections/ach/ — Get ACH collection