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

RailCoverageCurrenciesSpeedUse case
ACHUS domesticUSD1-2 business days (standard), same-day availableUS vendor payments, payroll
FedwireUS domesticUSDSame-day (Fedwire)Large-value, time-sensitive US payments
SWIFT180+ countriesMulti-currency1-5 business daysInternational cross-border payments
FedNowUS domesticUSDInstant (seconds)Real-time US payments, 24/7/365
SEPA36 European countriesEUR1 business day (CT), seconds (Instant)EUR payments across the EEA
Faster PaymentsUKGBPInstant (seconds)UK domestic GBP payments
CryptoGlobalUSDC, USDT, EURC, PYUSDMinutes (chain-dependent)Stablecoin transfers, on/off-ramp
OPENPlatform-internalMulti-currencyInstantFee-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&currency=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

RegionFrameworkRelevant rails
USMSB/state MTLs, BSA/AML, NACHA rulesACH, Fedwire, FedNow
UKEMI, FCA authorization, CoPFaster Payments, SWIFT
EUPSD2, EMD, VoP regulationSEPA, SWIFT
SingaporeMAS Payment Services ActSWIFT
UAECBUAE RPSFSWIFT
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