curl --request POST \
--url https://production.hifibridge.com/v2/offramps \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"requestId": "<string>",
"source": {
"currency": "usdc",
"chain": "POLYGON",
"amount": 1,
"userId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"externalWalletId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"destination": {
"currency": "usd",
"accountId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"amount": 1,
"userId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"sameDayAch": false,
"achReference": "<string>",
"sepaReference": "<string>",
"wireMessage": "<string>",
"paymentReference": "<string>",
"swiftReference": "<string>",
"swiftCharges": "sha"
},
"purposeOfPayment": "gift",
"supportingDocumentType": "billing_document",
"supportingDocumentUrl": "<string>",
"description": "<string>",
"developerFee": [
{
"fees": [
{
"type": "PERCENTAGE",
"value": "<string>",
"walletAddress": "<string>"
}
]
}
]
}
'{
"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": "OPEN_QUOTE",
"failedReason": null,
"source": {
"userId": "7d54a7a7-dac3-4313-8b09-27fa4b7fd1ee",
"chain": "POLYGON",
"currency": "usdc",
"amount": 10,
"walletAddress": "0x366B759bAA089Fa57a08edd3F2E028E86b97f8D6",
"user": {
"email": "[email protected]",
"firstName": "John",
"lastName": "Doe",
"businessName": null
}
},
"destination": {
"userId": "7d54a7a7-dac3-4313-8b09-27fa4b7fd1ee",
"amount": 0,
"currency": "usd",
"wireMessage": "Wire message",
"achReference": "ACH reference",
"paymentReference": "Payment reference",
"user": {
"email": "[email protected]",
"firstName": "John",
"lastName": "Doe",
"businessName": null
},
"accountId": "12c1c496-8f57-41a1-8292-dbe6547791ce"
},
"receipt": {
"transactionHash": null,
"paymentTracking": null
},
"developerFee": {
"id": "1c3d24c1-6136-574c-a647-e7eb6a9fb6ed",
"transactionHash": null,
"fees": [
{
"type": "PERCENTAGE",
"value": "0.0005",
"amount": "0.000515",
"walletAddress": "0x366B759bAA089Fa57a08edd3F2E028E86b97f8D7"
},
{
"type": "FLAT",
"value": "0.01",
"amount": "0.010000",
"walletAddress": "0x366B759bAA089Fa57a08edd3F2E028E86b97f8D7"
}
]
},
"quoteInformation": {
"sendGross": {
"amount": "10",
"currency": "usdc"
},
"sendNet": {
"amount": "10",
"currency": "usdc"
},
"receiveGross": {
"amount": "10",
"currency": "usd"
},
"receiveNet": {
"amount": "10",
"currency": "usd"
},
"rate": "1"
},
"depositInformation": []
}
}An offramp facilitates the conversion of crypto to fiat. Once the crypto transfer is confirmed, HIFI will deposit the converted fiat into the receiving user’s bank account.
There are two types of offramp:
Quote-based offramp: This type of offramp first returns the conversion rate quote based on the best market rate, which you can accept through the Accept an offramp quote endpoint to initiate the offramp.
To learn more about quote-based offramps, click here.
Non-quote-based offramp: This type of offramp will be initiated immediately upon creating an offramp.
curl --request POST \
--url https://production.hifibridge.com/v2/offramps \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"requestId": "<string>",
"source": {
"currency": "usdc",
"chain": "POLYGON",
"amount": 1,
"userId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"externalWalletId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"destination": {
"currency": "usd",
"accountId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"amount": 1,
"userId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"sameDayAch": false,
"achReference": "<string>",
"sepaReference": "<string>",
"wireMessage": "<string>",
"paymentReference": "<string>",
"swiftReference": "<string>",
"swiftCharges": "sha"
},
"purposeOfPayment": "gift",
"supportingDocumentType": "billing_document",
"supportingDocumentUrl": "<string>",
"description": "<string>",
"developerFee": [
{
"fees": [
{
"type": "PERCENTAGE",
"value": "<string>",
"walletAddress": "<string>"
}
]
}
]
}
'{
"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": "OPEN_QUOTE",
"failedReason": null,
"source": {
"userId": "7d54a7a7-dac3-4313-8b09-27fa4b7fd1ee",
"chain": "POLYGON",
"currency": "usdc",
"amount": 10,
"walletAddress": "0x366B759bAA089Fa57a08edd3F2E028E86b97f8D6",
"user": {
"email": "[email protected]",
"firstName": "John",
"lastName": "Doe",
"businessName": null
}
},
"destination": {
"userId": "7d54a7a7-dac3-4313-8b09-27fa4b7fd1ee",
"amount": 0,
"currency": "usd",
"wireMessage": "Wire message",
"achReference": "ACH reference",
"paymentReference": "Payment reference",
"user": {
"email": "[email protected]",
"firstName": "John",
"lastName": "Doe",
"businessName": null
},
"accountId": "12c1c496-8f57-41a1-8292-dbe6547791ce"
},
"receipt": {
"transactionHash": null,
"paymentTracking": null
},
"developerFee": {
"id": "1c3d24c1-6136-574c-a647-e7eb6a9fb6ed",
"transactionHash": null,
"fees": [
{
"type": "PERCENTAGE",
"value": "0.0005",
"amount": "0.000515",
"walletAddress": "0x366B759bAA089Fa57a08edd3F2E028E86b97f8D7"
},
{
"type": "FLAT",
"value": "0.01",
"amount": "0.010000",
"walletAddress": "0x366B759bAA089Fa57a08edd3F2E028E86b97f8D7"
}
]
},
"quoteInformation": {
"sendGross": {
"amount": "10",
"currency": "usdc"
},
"sendNet": {
"amount": "10",
"currency": "usdc"
},
"receiveGross": {
"amount": "10",
"currency": "usd"
},
"receiveNet": {
"amount": "10",
"currency": "usd"
},
"rate": "1"
},
"depositInformation": []
}
}Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
unique identifier for the request (recommend using uuid v4)
offramp source
Show child attributes
crypto currency (note: usdHifi is only available in sandbox to simulate token movement)
usdc, usdt, usdHifi POLYGON, ETHEREUM, SOLANA, BASE amount of crypto currency to send
x >= 0user who is sending the crypto, required if externalWalletId is not provided
external wallet id who is sending the crypto, required if userId is not provided
offramp destination
Show child attributes
fiat currency
usd, eur, brl, hkd, mxn, cop, ars, ngn, ugx, kes, zmw, mwk, rwf, tzs, xaf, xof, bwp, xaf, cdf, ghs, zar account that is receiving the fiat currency
amount of fiat currency to receive
x >= 0user who is receiving the fiat
same day ACH offramp for a $1 additional fee
a reference message to include when offramping through ACH transfer.
it can be at most 10 characters, A-Z, a-z, 0-9, and spaces. Note that as of 2024-08-06, setting this field is only supported for certain developers while we work on rolling out general support for everyone.
a reference message to include when offramping through SEPA transfer.
it must be between 6 to 140 characters. The allowed characters are a-z, A-Z, 0-9, spaces, ampersand (&), hyphen (-), full stop (.), and solidus (/).
a message to include when offramping through WIRE transfer.
it can be at most 4 lines, each with a max length of 35 char according to the Fedwire standard.
a reference message to include when offramping.
Please utilize wireMessage for wire transfer and achReference for ACH transfer instead of this field.
a reference message or remittance information to include when offramping through SWIFT transfer.
it can have at most 4 lines (separated by "\n"), each line with a max length of 35 chars. The allowed characters are a-z, A-Z, 0-9, special characters (/ - ? : ( ) . , ' +), and spaces.
sha, our gift, bills, groceries, travel, health, entertainment, housing, school-fees, other The type of supporting document, required for swift payment.
billing_document, order_document, shipment_document, regulatory_document, transport_document, other_document The URL of the supporting document, required for swift payment.
Memo code or description for usd offramp.
custom offramp fees, omit if no fees are charged
Show child attributes
Show child attributes
PERCENTAGE, FLAT Fee amount as a string. For PERCENTAGE type, "0.0005" represents 0.05%. For FLAT type, represents absolute amount. For PERCENTAGE type, the value must be between 0 and 1 with max 4 decimal places.
Wallet address to receive the fee
Success
Show child attributes
unique identifier for the offramp
Refer to here for more details on each offramp status.
NOT_INITIATED, CREATED, OPEN_QUOTE, CRYPTO_INITIATED, AWAITING_FUNDS, CRYPTO_PENDING, CRYPTO_PROCESSED, FIAT_INITIATED, FIAT_PENDING, COMPLETED, FIAT_FAILED, CRYPTO_RETURNED, CRYPTO_FAILED, QUOTE_FAILED, IN_REVIEW Show child attributes
Show child attributes
destination offramp account ID
same day ACH offramp for a $1 additional fee
Show child attributes
Show child attributes
Fedwire or ACH batch ID used for settlement tracking
Input Messaging Accountability Data. A combination of a date, source identifier, and sequence number assigned to a Fedwire message when it is processed by the Federal Reserve Bank Funds Transfer application. Unique to the payment.
Output Messaging Accountability Data. A combination of a date, destination identifier, and sequence number assigned to a Fedwire message when it is processed by the Federal Reserve Bank Funds Transfer application.
Unique ACH trace number for the transaction
wire, ach, rtp, swift Show child attributes
unique identifier for the developer fee record
transaction hash of the fee transfer
Show child attributes
PERCENTAGE, FLAT fee amount as string, for percentage represents decimal (e.g. "0.0005" = 0.05%)
actual fee amount charged
wallet address receiving the fee
Show child attributes
Show child attributes