How Offramp Accounts Work
1
Register bank account
Add the user’s external bank account to HIFI by providing account details
and account holder information.
2
Create offramp
Initiate an offramp transfer to get a conversion quote with current exchange
rates and fees.
3
Accept quote
Accept the quote to execute the conversion. Stablecoins are converted to
fiat and delivered to the registered bank account.
Prerequisites
Creating Offramp Accounts
Create an offramp account using the Create Account endpoint. The required fields vary by region and currency.USD Accounts
For USD offramps to US bank accounts:Always
offramp for offramp accounts.Account region. For US accounts, use
us.Account holder information. Must match user’s KYC data for compliance.
US-specific bank account details.
Unique account ID. Save this for creating offramp transfers to this
account.
Account status:
ACTIVE (ready to use), PENDING (being validated), or
REJECTED (validation failed)List of validation errors. Empty array means all fields are valid.
Global Network Accounts
Global Network accounts support multiple countries including China, Hong Kong, Brazil, Mexico, and Nigeria. These accounts require additional verification fields.China (CNY)
China (CNY)
dateOfBirth- Account holder’s date of birthidNumber- Chinese national ID numbernationality- Must beCHNswiftCode- Bank’s SWIFT code
Hong Kong (HKD)
Hong Kong (HKD)
dateOfBirth- Account holder’s date of birthidNumber- Hong Kong ID numbernationality- Must beHKGswiftCode- Bank’s SWIFT code
Brazil (BRL) - PIX
Brazil (BRL) - PIX
dateOfBirth- Account holder’s date of birthidNumber- CPF (Brazilian tax ID)nationality- Must beBRApix- PIX key (email, phone, or CPF)
Mexico (MXN) - SPEI
Mexico (MXN) - SPEI
dateOfBirth- Account holder’s date of birthidNumber- CURP (Mexican national ID)nationality- Must beMEXspeiClabe- 18-digit CLABE number for SPEI transfers
Nigeria (NGN)
Nigeria (NGN)
dateOfBirth- Account holder’s date of birthidNumber- Nigerian national ID or BVNnationality- Must beNGA
Africa Rail Accounts
Africa Rail supports multiple countries with bank accounts and mobile money (momo) payments.Financial institution name (e.g.,
MTN, Vodafone, specific bank names)Account type:
momo (mobile money) or bankAccount or mobile money number
Currency code (e.g.,
ugx, kes, ugx)Country code (e.g.,
uga, ken, gha)Check the Africa Rail documentation for supported
combinations of country, currency, and financial institution.
Using Offramp Accounts
Once created and active, reference the account when creating offramp transfers using the Create Offramp endpoint. Request:accountId from the account creation response tells HIFI which bank account should receive the fiat funds.
Complete Offramp Flow: See the Offramps
documentation for the full process including
quote acceptance, status tracking, and settlement timing.
Account Validation
After creating an offramp account, HIFI validates the account details:| Status | Description |
|---|---|
| ACTIVE | Account validated and ready to receive funds |
| PENDING | Account being validated (typically resolves within minutes) |
| REJECTED | Validation failed - check invalidFields for specific issues |
Key Concepts
Multiple Accounts Per User
Multiple Accounts Per User
Users can have multiple offramp accounts for different currencies, regions, or payment methods. Each account has a unique ID referenced when creating offramps.Example scenarios:
- One USD account for wire transfers
- One BRL account for PIX transfers
- One MXN account for SPEI transfers
- Multiple accounts in the same currency for different banks
Account Types vs Transfer Types
Account Types vs Transfer Types
Don’t confuse these two concepts: - Account Type (
type field): The
region or country (e.g., us, brazil, mexico) - Transfer Type (within
account-specific fields): The payment method (e.g., wire, ach, pix,
spei) Not all transfer types are available in all regions. Check the API
reference for supported combinations.First Party vs Third Party Payments
First Party vs Third Party Payments
Offramp accounts support two payment scenarios: First Party Payments:
Funds sent to the account holder (the user who completed KYC). This is the
standard case where users receive money in their own bank account. Third
Party Payments: Funds sent to someone other than the account holder. This
enables use cases like: - Sending money to family members - Paying business
partners or vendors - Disbursing funds to beneficiaries Both are supported,
but third party payments may require additional compliance verification.
Regional Payment Methods
Regional Payment Methods
Different regions support different payment methods:
- US: Wire, ACH
- Brazil: PIX (instant payments)
- Mexico: SPEI (electronic transfers)
- Africa: Mobile money (momo) or bank transfers depending on country
- China/Hong Kong: Bank transfers with SWIFT codes
Sample Code
Create and validate account
1
Create the account
2
Check validation status
The response includes the status. If For
ACTIVE, the account is ready immediately. If PENDING, wait for validation to complete or subscribe to account webhooks.REJECTED status, check the invalidFields array to see which fields need correction.3
Use for offramps
Once active, use the account ID when creating offramp transfers:
Support multicurrency payouts
1
Create accounts for each region
Create separate accounts for each region where you need to send payouts (offramps) to the user:
2
Let users choose destination
If a user has multiple accounts, let them select which account to use when creating an offramp. Pass the appropriate
accountId based on their selection.Getting Help
- 📧 Email: [email protected]
- 💬 Slack: Message us in our shared Slack channel
Related Resources
- Quickstart Guide - Step-by-step tutorial
- Rails - Understand KYC requirements for different rails
- Offramps - Complete guide to executing offramp transfers
- Webhooks - Real-time account validation notifications
- API Reference - Complete endpoint documentation