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.

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

Offramp transactions progress through several statuses:
  • CREATED: Transaction has been created and is awaiting processing
  • PROCESSING: Stablecoins are being converted and fiat transfer is being initiated
  • COMPLETED: Fiat currency has been successfully transferred to your account
  • FAILED: Transaction failed (check failedReason for details)

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