Transfer Types
HIFI supports two types of wallet transfers:| Type | Description | Best For |
|---|---|---|
| Single Transfer | Send to one recipient | Individual payments, one-time transactions |
| Batch Transfer | Send to up to 50 recipients in a single transaction | Payroll, airdrops, bulk distributions |
Creating Single Transfers
Send stablecoins to a single recipient on the same blockchain.Response
Response
Unique transfer ID. Use this to check status using the Retrieve a crypto
transfer
endpoint.
Transfer status. Progression:
CREATED → INITIATED → PENDING →
COMPLETED. See Transaction Status for details.Details about the sender including wallet address and user information.
Details about the recipient including wallet address and user information (if
HIFI user).
Transfer amount in the specified currency.
Blockchain transaction receipt. Contains
transactionHash and userOpHash
once the transfer is confirmed on-chain.For detailed response field documentation, see the Create Crypto
Transfer
API reference.
Creating Batch Transfers
Send stablecoins to up to 50 recipients on the same blockchain.Response
Response
Unique batch transfer ID. Use this to check status using the Retrieve a
crypto
transfer
endpoint.
Batch transfer status. Progression:
CREATED → INITIATED → PENDING →
COMPLETED. See Transaction Status for details.Details about the sender including wallet address and user information.
Array of destination recipients. Each item contains
amount, optional
userId (for HIFI users), and walletAddress.Blockchain transaction receipt. Contains
transactionHash and userOpHash
once the transfer is confirmed on-chain.For detailed field documentation, see the Create Batch
Transfer
API reference.
Transfer Status
Wallet transfets progress through several statuses:| Status | Description |
|---|---|
| NOT_INITIATED | Transfer not submitted due to validation error |
| CREATED | Transfer request created and awaiting processing |
| INITIATED | Transfer submitted to blockchain |
| PENDING | Transaction awaiting on-chain confirmation |
| COMPLETED | Transfer successfully confirmed on-chain |
| FAILED | Transfer failed (check failedReason for details) |
| UNKNOWN | Transfer status could not be determined |
Tracking Transfers
Status Updates: Subscribe to
WALLET.TRANSFER.UPDATE webhook events to
receive real-time status notifications. See Webhooks
for setup instructions.transactionHash in the response to view the transaction on a blockchain explorer like Polygonscan or Etherscan.
Transfer Approvals
For organizations requiring multi-party authorization, all transactions support an optional approval workflow.How Approvals Work
1
Enable approval requirement
Set
requireApproval: true when creating a transaction.2
Review pending transaction
The transaction enters
PENDING_APPROVAL status. Dashboard admins are
notified via email and webhook to approve or reject the transaction. Any
admin can make the decision.3
Execution or rejection
If approved, the transaction is executed. If rejected, it’s cancelled.
Response
Response
Transfer status. When
requireApproval: true is set, the status will be
PENDING_APPROVAL until approved.Approval object containing approval details and votes when approval is required.
Configuring Approvers: Manage your team roles in the HIFI Dashboard.
Members can create transactions, but only admins can approve.
Key Concepts
HIFI vs External Transactions
HIFI vs External Transactions
HIFI transactions use
userId as the destination while external transactions use a walletAddress as the destination.Batch Transaction Limits
Batch Transaction Limits
Batch transactions have the following constraints: - Maximum recipients:
50 per batch - Supported chains: Currently POLYGON only - Supported
currencies: USDC, USDT If you need to send to more than 50 recipients,
create multiple batches.
Transaction Receipts
Transaction Receipts
The
receipt object provides blockchain verification:- transactionHash: Unique identifier for the blockchain transaction. Use this to view the transaction on block explorers.
- userOpHash: For account abstraction wallets, this is the user operation hash
null until the transaction is confirmed on-chain (status becomes COMPLETED).Getting Help
- 📧 Email: [email protected]
- 💬 Slack: Message us in our shared Slack channel
Related Resources
- Wallets - Understand wallet addresses and balances
- Webhooks - Real-time transaction status notifications
- API: Single Transfer - Complete single transfer documentation
- API: Batch Transfer - Complete batch transfer documentation