Skip to main content
The off-ramp endpoint converts a specified stablecoin amount into fiat currency and initiates a bank transfer to the provided account. Once submitted, RemitFlex handles conversion, compliance checks, and settlement automatically. You can track progress via the returned id or by listening for offramp.* webhook events.
Your account must pass KYB (Know Your Business) verification before you can initiate live off-ramps. Test-mode requests work without KYB. Visit Dashboard → Compliance → KYB to submit your verification documents.

Endpoint

POST https://api.remitflex.com/v1/offramp

Request Parameters

amount
number
required
Amount of the source stablecoin to off-ramp. Must be a positive number. Fractional amounts are accepted up to the precision supported by the source currency (e.g., 6 decimal places for USDC).
source_currency
string
required
The stablecoin you are converting from. Accepted values: USDC, USDT, EURC, PYUSD.
destination_currency
string
required
The target fiat currency for the bank deposit, expressed as an ISO 4217 currency code (e.g., EUR, USD, GBP, NGN).
bank_account
object
required
Bank account details for the fiat deposit. All sub-fields apply to the receiving account.
reference
string
An optional internal reference string you can attach to this off-ramp for your own reconciliation (e.g., a payout batch ID or invoice number). Maximum 255 characters. Returned as-is on the off-ramp object and included in webhook payloads.
metadata
object
An optional set of arbitrary key-value pairs you can attach to the off-ramp object. Keys and values must be strings. Useful for storing internal identifiers or context that you want returned in the response and webhook events.

Response Fields

id
string
Unique identifier for the off-ramp, prefixed with ofr_. Use this to retrieve status or correlate with webhook events.
status
string
Current lifecycle state of the off-ramp. See the status reference for the full set of values and transitions.
amount
number
The stablecoin amount submitted for conversion, exactly as provided in the request.
source_currency
string
The stablecoin that was converted (e.g., "USDC").
destination_currency
string
The ISO 4217 fiat currency code for the bank deposit (e.g., "EUR").
converted_amount
number
The fiat amount that will be deposited into the bank account, after conversion and fees.
fee
number
The total fee charged for this off-ramp, denominated in the source_currency.
bank_account
object
Echo of the bank account details provided in the request.
reference
string
Your internal reference string, returned exactly as submitted.
estimated_settlement
string
ISO 8601 timestamp indicating when RemitFlex expects the funds to reach the destination bank. Actual settlement may vary based on the receiving bank’s processing times.
created_at
string
ISO 8601 timestamp of when the off-ramp was created.
updated_at
string
ISO 8601 timestamp of the most recent status update on this off-ramp.
metadata
object
The arbitrary key-value pairs you attached to this off-ramp at creation time, returned as-is.

Example Request & Response

curl -X POST https://api.remitflex.com/v1/offramp \
  -H "Authorization: Bearer rf_live_xxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 2500,
    "source_currency": "USDC",
    "destination_currency": "EUR",
    "bank_account": {
      "account_holder_name": "Acme Corp GmbH",
      "account_number": "DE89370400440532013000",
      "bank_name": "Deutsche Bank",
      "bank_country": "DE"
    },
    "reference": "Payout batch #42"
  }'
Response
{
  "id": "ofr_01HX9N4R...",
  "status": "pending",
  "amount": 2500,
  "source_currency": "USDC",
  "destination_currency": "EUR",
  "converted_amount": 2306.25,
  "fee": 6.25,
  "bank_account": {
    "account_holder_name": "Acme Corp GmbH",
    "account_number": "DE89370400440532013000",
    "bank_name": "Deutsche Bank",
    "bank_country": "DE"
  },
  "reference": "Payout batch #42",
  "estimated_settlement": "2024-01-16T18:00:00Z",
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-15T10:30:00Z",
  "metadata": {}
}