Skip to main content
Offramps are transactions that convert stablecoins in HIFI wallets to fiat currencies. The available offramp methods vary by region due to local payment infrastructure and regulatory requirements.

How Offramps Work

Offramps follow a simple three-step process:
  1. Create an offramp – Initiate a payment from Wallet to Account
  2. Review quote – Examine the exchange rate, fees, and quote validity period
  3. Accept quote – The fiat currency is transferred to the Account

Quote Validity

Quotes are time-sensitive and typically expire within 10 minutes. This ensures you get current market rates and prevents stale pricing. If a quote expires before you accept it, you’ll need to create a new offramp request to get updated pricing.
All USDT-related offramps incur an additional 0.1% exchange fee, which will be reflected on your monthly invoice.

Supported Regions

The available offramp methods vary by region due to local payment infrastructure and regulatory requirements.

Currencies

Learn about supported regions, payment methods, and currencies

Transaction Structure

When you create an offramp, the API response includes detailed information about the transaction:
{
  "transferType": "OFFRAMP",
  "transferDetails": {
    "id": "173c1e89-7bbd-4352-9e5d-73807681510d",
    "requestId": "201ca31d-700f-4c76-ac4b-961623acbb79",
    "createdAt": "2025-02-03T16:12:04.331652+00:00",
    "updatedAt": "2025-02-03T16:12:08.732+00:00",
    "status": "CREATED",
    "failedReason": "",
    "source": {
      /* Source */
    },
    "destination": {
      /* Destination */
    },
    "receipt": { "transactionHash": null, "uetr": null },
    "developerFee": {
      /* Developer Fee */
    },
    "quoteInformation": {
      /* Quote */
    }
  }
}
{
  "userId": "7d54a7a7-dac3-4313-8b09-27fa4b7fd1ee",
  "chain": "POLYGON_MAINNET",
  "currency": "usdc",
  "amount": 10,
  "walletAddress": "0x366B759bAA089Fa57a08edd3F2E028E86b97f8D6"
}
{
  "userId": "7d54a7a7-dac3-4313-8b09-27fa4b7fd1ee",
  "amount": 0,
  "currency": "mwk",
  "accountId": "12c1c496-8f57-41a1-8292-dbe6547791ce"
}
{
  "sendGross": {
    "amount": "10.00",
    "currency": "usdc"
  },
  "sendNet": {
    "amount": "10.00",
    "currency": "usdc"
  },
  "receiveGross": {
    "amount": "32500.00",
    "currency": "mwk"
  },
  "receiveNet": {
    "amount": "32500.00",
    "currency": "mwk"
  },
  "rate": "3250.0000",
  "expiresAt": "2025-02-03T16:22:08.668Z"
}
{
  "feeId": "9b354c37-d20d-4d94-bcd8-c852353ca406",
  "feeType": "FIX",
  "feeAmount": 0.5,
  "feePercent": 0,
  "status": "CREATED",
  "transactionHash": null,
  "failedReason": null
}

Transaction Status

1. Transaction Creation
  • CREATED – The transaction has been created but not yet processed.
  • NOT_INITIATED – The transaction was not submitted due to a validation error.
2. Quote and Funding Phase
  • OPEN_QUOTE – A quote has been generated and is awaiting user acceptance.
  • QUOTE_FAILED – The transaction failed or expired before the quote was accepted.
  • AWAITING_FUNDS – Waiting for funds to be sent to the specified liquidation address.
3. Crypto Processing
  • CRYPTO_INITIATED – The transaction process has started for the crypto transfer.
  • CRYPTO_PENDING – The transaction is in progress and awaiting on-chain confirmation.
  • CRYPTO_PROCESSED – The crypto transaction was successfully processed.
  • CRYPTO_FAILED – The crypto transaction failed.
  • CRYPTO_RETURNED – The failed crypto transaction has been refunded to the user.
4. Fiat Processing
  • FIAT_INITIATED – The fiat payout process has started.
  • FIAT_PENDING – The fiat transaction is awaiting settlement.
  • FIAT_FAILED – The fiat transaction encountered an error and could not be completed.
  • COMPLETED – The transaction was successfully settled in fiat.

Flow Chart

Offramp Status Flow Chart

Quote Information

The quote includes both gross and net amounts for both sending and receiving:
  • sendGross: Total amount you’re sending in stablecoins
  • sendNet: Net amount after any fees are deducted
  • receiveGross: Total amount you’ll receive in fiat currency
  • receiveNet: Net amount you’ll actually receive
  • rate: Current exchange rate between stablecoin and fiat
  • expiresAt: When the quote expires and you’ll need a new one

Developer Fee Types

You can monetize offramp transactions by adding a developer fee. Developer fees can be configured in two ways:
  • FIX: Fixed fee amount regardless of transaction size
  • PERCENT: Percentage-based fee calculated on the transaction amount

Receipt Information

The receipt object contains transaction details once completed:
  • transactionHash: Blockchain transaction hash for the stablecoin transfer
  • uetr: Unique End-to-end Transaction Reference for international wire transfers

Try it out

Convert USDC to USD

Learn how to convert stablecoins to fiat
I