HIFI's Transfer API allows you to move money from fiat to stablecoin (onramp), between stablecoins, and from stablecoin to fiat (offramp). At a high level, transfers require a source and a destination, both of which can be either fiat sources (bank account, Plaid, etc) or crypto sources (on-chain wallets).

There are three types of transfers, Fiat to Stablecoin Transfer, Stablecoin to Stablecoin Transfer, and Stablecoin to Fiat Transfer. Each type of transfer has several possible statuses it can be in, as shown below:

Fiat to Stablecoin Transfer Statuses

  • CREATED: The transfer has been initiated.
  • FIAT_SUBMITTED: The payment is pending deposit.
  • FIAT_PROCESSED: The payment has been successfully sent to HIFI.
  • FIAT_CONFIRMED: This is an acknowledgment that HIFI has received your funds and is in the process of moving funds on your customer's behalf.
  • CRYPTO_IN_REVIEW: This is a temporary state that is rarely triggered. If it does occur, it usually resolves automatically within seconds. However, if we are unable to confirm the transaction information by the end of the 24-hour period, we will reach out to the developer with the next steps.
  • CRYPTO_SUBMITTED: This means HIFI has sent the crypto and is currently awaiting verification, which usually takes minutes.
  • CONFIRMED: The transfer has been completed. The crypto has arrived at your specified destination.
  • REFUNDED: The funds for this transfer have been sent back to the original sender.
  • FAILED: The transfer has failed.
  • UNKNOWN: There was a problem preventing HIFI from processing this transfer. This may require manual intervention to resolve. Please reach out to HIFI if you haven't already been contacted about this transfer.

A typical fiat to stablecoin transfer status flow: CREATED -> FIAT_SUBMITTED -> FIAT_PROCESSED -> FIAT_CONFIRMED -> CRYPTO_SUBMITTED -> CONFIRMED.

Stablecoin to Stablecoin Transfer Statuses

  • CREATED: The transfer has been initiated.
  • ACCEPTED: Request acknowledged, but no action has been taken on submitting to the chain.
  • SUBMITTED: The transaction has been submitted, but not yet been found on chain.
  • CONFIRMED: The transaction was successful on chain.
  • FAILED: The transaction failed to execute on chain.
  • PENDING: The state between ACCEPTED and SUBMITTED.

A typical stablecoin to stablecoin transfer status flow: CREATED -> ACCEPTED -> SUBMITTED -> CONFIRMED.

Stablecoin to Fiat Transfer Statuses

  • NOT_INITIATED: The transfer has not been initiated yet.
  • CREATED: The transfer has been initiated.
  • SUBMITTED_ONCHAIN: The transaction has been submitted, but not yet been found on chain.
  • COMPLETED_ONCHAIN: The transaction was successful on chain.
  • IN_PROGRESS_FIAT: This is an acknowledgment that HIFI has received your funds and is in the process of moving funds on your customer's behalf.
  • INITIATED_FIAT: This means HIFI has sent the payment and is currently awaiting verification, which can take hours (Wires) to days (ACH push).
  • COMPLETED: The transfer has been completed, and the funds have arrived at your specified destination. (Note: For ACH transfers, it means the funds have been successfully sent, but they may not have arrived at the destination bank yet, as there is no indicator for when the funds are settled.)
  • FAILED_ONCHAIN: The transaction failed to execute on chain.
  • FAILED_FIAT_RETURNED: HIFI has sent the payment, but received notification that it wasn't successful. The funds have been returned to HIFI, and the refund to the sender is in process.
  • FAILED_FIAT_REFUNDED: The funds for this transfer have been sent back to the original sender.
  • FAILED_UNKNOWN: There was a problem preventing HIFI from processing this transfer. This may require manual intervention to resolve. Please reach out to HIFI if you haven't already been contacted about this transfer.

A typical offramp transfer status flow: NOT_INITIATED -> CREATED -> SUBMITTED_ONCHAIN -> COMPLETED_ONCHAIN -> IN_PROGRESS_FIAT -> INITIATED_FIAT-> COMPLETED.