Fiat to Stablecoin transfers (On-ramps)

Convert traditional currencies (USD, EUR, GBP) into stablecoins (USDC, USDT) by sending bank transfers with unique reference codes. The system automatically matches your fiat payment and delivers stablecoins to your specified crypto address.

Overview

Fiat-to-stablecoin transfers enable crypto on-ramp functionality by accepting traditional bank payments and delivering equivalent stablecoins. You initiate the transfer through the API, receive bank transfer instructions with a unique reference code, then send the fiat payment using traditional banking rails.

Key Features:

  • Traditional funding - Use ACH, wire transfers, SEPA, and other familiar payment methods
  • Automatic matching - Reference codes link your bank payment to your crypto delivery
  • Multi-network delivery - Receive stablecoins on Ethereum, Polygon, Tron, and other networks
  • Real-time conversion - Live exchange rates with transparent fee breakdown

Step-by-Step Process

1. Get Available Channels

Discover supported fiat-to-stablecoin 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 crypto rails (ethereum, polygon, tron)

2. Generate Quote

Get real-time pricing for your fiat-to-stablecoin 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": "ethereum", 
    "currency": "USDC",
    "amount": "0"
  }
}'

Response:

{
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "source": {
    "rail": "ach",
    "currency": "USD", 
    "amount": "1000.00",
    "fee": "5.00"
  },
  "destination": {
    "rail": "ethereum",
    "currency": "USDC",
    "amount": "995.00",
    "fee": "0.00"
  },
  "fxRate": 1.0,
  "fxMarkup": 0,
  "expiresAt": "2024-03-15T10:32:15Z"
}

3. Create Transfer

Initialize the fiat-to-stablecoin transfer using your quote and destination.

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": "{destination_id}",
  "memo": "Wallet funding - 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": "995.00",
    "fee": "0.00",
    "currency": "USDC", 
    "rail": "ethereum",
    "id": "{destination_id}",
    "label": "My Ethereum Wallet",
    "details": {
      "schema": "evm",
      "address": "0x742d35Cc6665C0532925a3b8D98d0dfBb67B1BF8"
    },
    "memo": "Wallet funding - March 2024"
  },
  "fxRate": 1.0,
  "fxMarkup": 0,
  "transferInstructions": {
    "kind": "details",
    "details": {
      "schema": "bank_us",
      "bankName": "Due Payments LLC",
      "accountName": "Due Payments LLC",
      "accountNumber": "1234567890",
      "routingNumber": "021000021",
      "beneficiaryAddress": {
        "street_line_1": "123 Financial District",
        "city": "New York",
        "postal_code": "10001",
        "country": "USA",
        "state": "NY"
      }
    },
    "memo": "REF-ABC123XYZ"
  },
  "createdAt": "2024-03-15T10:30:15Z",
  "expiresAt": "2024-03-15T10:35:15Z"
}

Key Response Fields:

  • status: "awaiting_funds" - Transfer is waiting for your fiat payment
  • transferInstructions.kind: "details" - Bank account details for your payment
  • transferInstructions.memo - Critical reference code for payment matching
  • expiresAt - Transfer expires in 5 minutes if not completed

4. 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: 1234567890
  • 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: 1234567890
  • 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 payment to your transfer request, causing delays or failed delivery.

5. Monitor Transfer Status

Track your transfer progress as the system processes your fiat payment and delivers stablecoins.

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 payment is processed and stablecoins are delivered to your destination.