Stablecoins to Fiat

Convert stablecoins to traditional fiat currency and deliver funds directly to bank accounts worldwide. This flow handles currency conversion, regulatory compliance, and delivery via local payment rails automatically.

How it Works

Stablecoin to fiat payouts follow a streamlined process:

  1. Create Payout: Specify stablecoin source, fiat destination, and amount
  2. Funding: Funds are either pulled from managed accounts or provided via funding instructions
  3. Conversion: Stablecoins are automatically converted to fiat at optimal rates
  4. Delivery: Fiat funds are sent to the destination bank account via local rails

Create Payout

Endpoint: POST /payout/{customerId}

From Managed Wallet Account

curl -X POST https://api.inflowconnect.com/payout/{customerId} \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "source": {
      "fromManagedWalletDetails": {
        "accountId": "acc_a1b2c3d4e5f6g7h8"
      },
      "amountInCents": 50000
    },
    "destination": {
      "destinationAccountId": "acc_b2c3d4e5f6g7h8i9"
    },
    "referenceId": "payout_ref_123"
  }'

From External Wallet

curl -X POST https://api.inflowconnect.com/payout/{customerId} \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "source": {
      "fromExternalWalletDetails": {
        "fromWalletAddress": "0x742d35Cc6634C0532925a3b8D4C9db96C4b4d8b6",
        "fromChain": "ethereum"
      },
      "amountInCents": 50000
    },
    "destination": {
      "destinationAccountId": "acc_b2c3d4e5f6g7h8i9"
    },
    "referenceId": "payout_ref_123"
  }'

Required fields:

  • source.amountInCents: Amount in cents (equivalent stablecoin value)
  • destination.destinationAccountId: Bank account ID

Response

{
  "id": "payout_x1y2z3a4b5c6d7e8",
  "customerId": "cus_a1b2c3d4e5f6g7h8",
  "status": "INITIATED",
  "source": {
    "amountInWei": "50000000000000000000",
    "currency": "USDC",
    "currencyAddress": "0xA0b86a33E6441e6EdE88f0C1e0Ed08e41F3F0B2D",
    "currencyChain": "ethereum",
    "fromAddress": "0x123...",
    "accountId": "acc_a1b2c3d4e5f6g7h8"
  },
  "destination": {
    "accountId": "acc_b2c3d4e5f6g7h8i9",
    "currency": "EUR"
  },
  "fundingInstructions": null,
  "feeAmountInCents": 250,
  "createdAt": "2024-01-15T10:30:00Z",
  "updatedAt": "2024-01-15T10:30:00Z"
}

Error Handling

Common Issues

ErrorCauseSolution
INSUFFICIENT_BALANCEManaged wallet has insufficient fundsTop up wallet or reduce amount
INVALID_DESTINATIONBank account not found or invalidVerify account registration
UNSUPPORTED_CURRENCYFiat currency not supported in regionUse supported currency
AMOUNT_TOO_LOWBelow minimum thresholdIncrease payout amount
KYC_REQUIREDUser requires additional verificationComplete KYC process

Retry Logic

For failed payouts:

  1. Check failure reason in payout status
  2. Address the underlying issue (balance, verification, etc.)
  3. Create new payout if original cannot be recovered
  4. Monitor status updates via webhooks