Fiat to fiat transfers (Cross-border)
Send traditional currencies (USD, EUR, GBP) to bank accounts and mobile money services worldwide. Fund transfers through familiar banking rails and deliver payments to recipients across global financial networks.
Overview
Fiat-to-fiat transfers enable traditional cross-border and domestic payments by accepting bank transfers, ACH, SEPA, and other fiat payment methods, then delivering equivalent amounts to recipient bank accounts or mobile money wallets worldwide.
Key Features:
- Global coverage - Send to bank accounts and mobile money services worldwide
- Traditional funding - Use ACH, wire transfers, SEPA, and other familiar payment methods
- Currency conversion - Automatic FX conversion with transparent rates and fees
- Automatic matching - Reference codes link your funding to recipient delivery
Step-by-Step Process
1. Get Available Channels
Discover supported fiat-to-fiat combinations and their current pricing.
curl -H "Authorization: Bearer your_api_key" \
-H "Due-Account-Id: your_account_id" \
https://api.due.network/v1/channels
Look for channels where:
- Source channels:
type: "deposit"
on fiat rails (ach, sepa, wire, swift) - Destination channels:
type: "withdrawal"
on fiat rails (sepa, ach, bank_swift, momo_africa)
2. Create Recipient
Set up the destination bank account or mobile money account for your transfer.
US Bank Account:
curl -X POST https://api.due.network/v1/recipients \
-H "Authorization: Bearer your_api_key" \
-H "Due-Account-Id: your_account_id" \
-H "Content-Type: application/json" \
-d '{
"name": "John Smith",
"details": {
"schema": "bank_us",
"bankName": "JPMorgan Chase Bank",
"accountName": "John Smith",
"accountNumber": "123456789",
"routingNumber": "021000021",
"beneficiaryAddress": {
"street_line_1": "123 Main Street",
"city": "New York",
"postal_code": "10001",
"country": "USA",
"state": "NY"
}
},
"isExternal": true
}'
African Mobile Money:
curl -X POST https://api.due.network/v1/recipients \
-H "Authorization: Bearer your_api_key" \
-H "Due-Account-Id: your_account_id" \
-H "Content-Type: application/json" \
-d '{
"name": "Grace Okafor",
"details": {
"schema": "momo_africa",
"financialInstitutionId": "mtn_ng",
"accountNumber": "08123456789",
"accountName": "Grace Okafor"
},
"isExternal": true
}'
3. Generate Quote
Get real-time pricing for your fiat-to-fiat conversion.
curl -X POST https://api.due.network/v1/transfers/quote \
-H "Authorization: Bearer your_api_key" \
-H "Due-Account-Id: your_account_id" \
-H "Content-Type: application/json" \
-d '{
"source": {
"rail": "ach",
"currency": "USD",
"amount": "1000.00"
},
"destination": {
"rail": "momo_africa",
"currency": "NGN",
"amount": "0"
}
}'
Response:
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"source": {
"rail": "ach",
"currency": "USD",
"amount": "1000.00",
"fee": "5.00"
},
"destination": {
"rail": "momo_africa",
"currency": "NGN",
"amount": "1580000.00",
"fee": "2500.00"
},
"fxRate": 1585.0,
"fxMarkup": 50,
"expiresAt": "2024-03-15T10:32:15Z"
}
4. Create Transfer
Initialize the fiat-to-fiat transfer using your quote and recipient.
curl -X POST https://api.due.network/v1/transfers \
-H "Authorization: Bearer your_api_key" \
-H "Due-Account-Id: your_account_id" \
-H "Content-Type: application/json" \
-d '{
"quote": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"recipient": "{recipient_id}",
"memo": "Family support - March 2024"
}'
Response:
{
"id": "{transfer_id}",
"ownerId": "{owner_id}",
"status": "awaiting_funds",
"source": {
"amount": "1000.00",
"fee": "5.00",
"currency": "USD",
"rail": "ach"
},
"destination": {
"amount": "1580000.00",
"fee": "2500.00",
"currency": "NGN",
"rail": "momo_africa",
"id": "{recipient_id}",
"label": "Grace Okafor",
"details": {
"schema": "momo_africa",
"financialInstitutionId": "mtn_ng",
"accountNumber": "08123456789",
"accountName": "Grace Okafor"
},
"memo": "Family support - March 2024"
},
"fxRate": 1585.0,
"fxMarkup": 50,
"transferInstructions": {
"kind": "details",
"details": {
"schema": "bank_us",
"bankName": "Due Payments LLC",
"accountName": "Due Payments LLC",
"accountNumber": "9876543210",
"routingNumber": "021000021",
"beneficiaryAddress": {
"street_line_1": "123 Financial District",
"city": "New York",
"postal_code": "10001",
"country": "USA",
"state": "NY"
}
},
"memo": "REF-XYZ789ABC"
},
"createdAt": "2024-03-15T10:30:15Z",
"expiresAt": "2024-03-15T10:35:15Z"
}
Key Response Fields:
status: "awaiting_funds"
- Transfer is waiting for your fiat paymenttransferInstructions.kind: "details"
- Bank account details for your fundingtransferInstructions.memo
- Critical reference code for payment matchingdestination
- Contains recipient details where funds will be deliveredexpiresAt
- Transfer expires in 5 minutes if not funded
5. Send Bank Payment
Send your fiat payment to the provided bank account details, ensuring you include the reference code.
ACH Transfer Example:
- Recipient Bank: Due Payments LLC
- Account Number: 9876543210
- Routing Number: 021000021
- Amount: $1,000.00
- Reference/Memo: Use the exact reference from
transferInstructions.memo
⚠️ Required for payment matching
Wire Transfer Example:
- Beneficiary: Due Payments LLC
- Account: 9876543210
- Routing: 021000021
- Amount: $1,000.00
- Wire Reference: Use the exact reference from
transferInstructions.memo
⚠️ Required for payment matching
SEPA Transfer Example:
- Beneficiary: Due Payments Europe
- IBAN: DE89370400440532013000
- Amount: €1,000.00
- Payment Reference: Use the exact reference from
transferInstructions.memo
⚠️ Required for payment matching
⚠️ Critical: Always include the exact reference code from
transferInstructions.memo
in your bank transfer. Without this reference, the system cannot match your funding to your transfer request, preventing delivery to your recipient.
6. Monitor Transfer Status
Track your transfer progress as the system processes your funding and delivers payment to the recipient.
curl -H "Authorization: Bearer your_api_key" \
-H "Due-Account-Id: your_account_id" \
https://api.due.network/v1/transfers/{transfer_id}
The transfer status will update as your funding is processed and payment is delivered to the recipient's account.
Cross-Currency Conversions
Fiat-to-fiat transfers automatically handle currency conversions with transparent pricing:
FX Rate Components:
- Base rate: Current market exchange rate between currencies
- FX markup: Additional spread applied (shown in basis points)
- Processing fees: Separate fees for source and destination rails
Rate Considerations:
- Quotes valid for 2 minutes to account for FX volatility
- Rates include all markup and fees for transparency
- Cross-currency transfers may have higher fees than domestic transfers
Updated 4 days ago