OpenFX supports 8 payment rails across multiple currencies and geographies. Each rail
has different coverage, speed, and cost characteristics. Use the
Rails Discovery API to query available rails
programmatically at runtime.
Payment rail summary
| Rail | Coverage | Currencies | Speed | Use case |
|---|
| ACH | US domestic | USD | 1-2 business days (standard), same-day available | US vendor payments, payroll |
| Fedwire | US domestic | USD | Same-day (Fedwire) | Large-value, time-sensitive US payments |
| SWIFT | 180+ countries | Multi-currency | 1-5 business days | International cross-border payments |
| FedNow | US domestic | USD | Instant (seconds) | Real-time US payments, 24/7/365 |
| SEPA | 36 European countries | EUR | 1 business day (CT), seconds (Instant) | EUR payments across the EEA |
| Faster Payments | UK | GBP | Instant (seconds) | UK domestic GBP payments |
| Crypto | Global | USDC, USDT, EURC, PYUSD | Minutes (chain-dependent) | Stablecoin transfers, on/off-ramp |
| OPEN | Platform-internal | Multi-currency | Instant | Fee-free transfers between OpenFX entities |
Corridor requirements
Different payment corridors require different data fields. The requirements depend on:
- Source country — where the funds originate
- Destination country — where the funds are delivered
- Rail — which payment network is used
- Amount — some thresholds trigger additional requirements
Querying corridor requirements
Use the corridor requirements endpoint to discover what fields are needed for a specific
corridor before creating a payment.
curl "https://sandbox.api.openfx.com/v1/payments/corridor-requirements?sourceCountry=US&destinationCountry=GB&rail=swift¤cy=GBP" \
-H "Authorization: Bearer sk_sandbox_your_api_key" \
-H "X-Signature: <computed-signature>" \
-H "X-Timestamp: 1740500000"
The response lists required and optional fields for the corridor:
{
"sourceCountry": "US",
"destinationCountry": "GB",
"rail": "swift",
"currency": "GBP",
"requiredFields": [
"counterpartyId",
"paymentMethodId",
"amount",
"currency",
"purpose",
"chargeBearer"
],
"optionalFields": [
"reference",
"description",
"metadata"
],
"complianceRequirements": [
"beneficiary_verification"
]
}
Corridor requirements are also enforced dynamically at payment creation time. If a
required field is missing, the API returns a 422 error with fieldErrors indicating
the missing fields. See Error Handling.
Pre-flight validation
Use the rails validation endpoint to check whether a payment would be accepted before
actually creating it.
curl -X POST https://sandbox.api.openfx.com/v1/rails/swift/validate \
-H "Authorization: Bearer sk_sandbox_your_api_key" \
-H "X-Signature: <computed-signature>" \
-H "X-Timestamp: 1740500000" \
-H "Content-Type: application/json" \
-d '{
"sourceAccountId": "acc_01953e1a5f4b7001",
"counterpartyId": "cpt_01953e1a5f4b7020",
"paymentMethodId": "pm_01953e1a5f4b7030",
"value": "500000",
"currency": "GBP",
"purpose": "goods_and_services",
"chargeBearer": "SHA"
}'
Pre-flight validation catches missing fields and invalid combinations
without creating a payment resource. Use it in your UI to show validation
errors before the user submits.
Rail capabilities
Each rail has specific capabilities that affect what operations are available. Query
the Get Rail endpoint for runtime details.
ACH
- Direction: Outbound + Inbound (read-only) + Collections (pull)
- Currencies: USD
- Countries: US
- Types:
standard (1-2 business days), same_day
- SEC codes:
WEB, PPD, CCD, CTX
- Returns: Up to 2 business days (unauthorized: 60 calendar days)
- Details: ACH Guide
Fedwire
- Direction: Outbound + Inbound (read-only)
- Currencies: USD
- Countries: US
- Speed: Same-day, irrevocable
- Details: Fedwire Guide
SWIFT
- Direction: Outbound + Inbound (read-only)
- Currencies: Multi-currency
- Countries: 180+
- Speed: 1-5 business days
- Charge options:
OUR, SHA, BEN
- Purpose codes: Required for certain corridors
- Details: SWIFT Guide
FedNow
- Direction: Outbound + Inbound (read-only)
- Currencies: USD
- Countries: US
- Speed: Instant (24/7/365)
- Limit: $500,000 per transaction
SEPA
- Direction: Outbound + Inbound (read-only)
- Currencies: EUR
- Countries: 36 EEA countries
- Types:
credit_transfer (1 business day), instant (seconds)
- Compliance: Verification of Payee (VoP) for instant
Faster Payments (FPS)
- Direction: Outbound + Inbound (read-only)
- Currencies: GBP
- Countries: UK
- Speed: Instant (seconds)
- Compliance: Confirmation of Payee (CoP) mandatory
Crypto
- Direction: Outbound + Inbound (read-only)
- Assets: USDC, USDT, EURC, PYUSD
- Chains: Ethereum, Solana, Tron, Base, Polygon, Ink, Sui
- Compliance: Travel rule for transfers above jurisdictional thresholds
- Details: Crypto Guide
OPEN
- Direction: Outbound + Inbound (read-only)
- Currencies: Multi-currency (any OpenFX-supported currency)
- Scope: Platform-internal only (between OpenFX entities)
- Speed: Instant
- Fees: None
- Details: OPEN Guide
Regulatory frameworks by region
| Region | Framework | Relevant rails |
|---|
| US | MSB/state MTLs, BSA/AML, NACHA rules | ACH, Fedwire, FedNow |
| UK | EMI, FCA authorization, CoP | Faster Payments, SWIFT |
| EU | PSD2, EMD, VoP regulation | SEPA, SWIFT |
| Singapore | MAS Payment Services Act | SWIFT |
| UAE | CBUAE RPSF | SWIFT |
Corridor availability may change based on regulatory developments. Always use the
Rails Discovery API for the current list of
available rails and their supported corridors.
API reference