Skip to main content
An Offramp converts stablecoins into fiat and pays it out to a counterparty. Like Onramp, it’s a quote-then-accept flow: creating an offramp returns a quote without moving any funds; accepting it locks the quote and starts settlement.

Two source types

Two destination types

Create an offramp (quote)

Creates the offramp in OPEN_QUOTE status. Requires an Idempotency-Key header and a requestId. Either source.amount or destination.amount can drive the conversion, not both. Request
Response
quote.expiresAt is a real expiry. Accepting after it’s passed fails with QUOTE_FAILED/QUOTE_EXPIRED; the quote isn’t refreshed automatically, so create a new offramp instead.
For an exact stablecoin sending amount, set source.amount; for an exact received fiat amount, set destination.amount.

Accept an offramp quote

Locks the quote and starts settlement - moving to IN_REVIEW (HIFI Wallet source) or AWAITING_FUNDS (External Wallet source, with depositInfo populated). Request
Response (HIFI Wallet)
Response (External Wallet)

Status

A transaction in COMPLETED status can transition to FIAT_FAILED or FIAT_RETURNED if a payment is returned by the recipient.

Cancel an offramp

Only allowed while status is IN_REVIEW. Any other status returns RESOURCE_NOT_ELIGIBLE (422). Request
Response

Purpose of Payment

Some destinations require a purposeOfPayment describing why the payment is being made - for example, it’s required for SWIFT transfers and other local payout outside of US.

Additional information

Offramps can be routed through an approval workflow before they settle - status shows PENDING_APPROVAL until someone approves it, or REJECTED if it’s declined. The quote is only generated once the transfer request is approved. Accept the quote afterward to kick off the transaction flow.Checkout Transfer Approval for more details.
Some stablecoin offramps include a real conversion fee priced off live market rates, reflected in quote.conversionFee - depending on your billing preference, it’s either deducted from the transaction (ON_TRANSACTION) or billed separately (ON_INVOICE).Checkout Exchange Fees for more details.
You can attach your own fee on top of an offramp by setting developerFee.Checkout Developer Fees for more details.

Getting Help

  • 📧 Email: support@hifi.com
  • 💬 Slack: Message us in our shared Slack channel