Overview
Custom payment flows allow you to configure custom payment transactions for additional use cases or more complex operations.
When creating custom payment flows, keep these things in mind:
- Each step automatically uses the asset and amount from the previous step.
- When transferring funds from one exchange to another, Fireblocks recommends using a vault account as an intermediary. For example, transfer funds from Kraken to Vault Account 1 and then from Vault Account 1 to BitMEX.
- Some exchanges allow you to withdraw assets as their base-asset equivalent without converting them beforehand. For example, you may be able to withdraw USDC as USD or rETH as ETH in a 1:1 ratio.
Creating a custom payment flow
- In the Fireblocks Console, go to Payments > Create > Custom payment flow.
- Select the type of payment action you want as the first step in the payment flow.
- Enter the appropriate information depending on the type of payment action.
- Convert: Select the currencies you want to exchange, the exchange to use, and your slippage tolerance.
- Transfer: Select the origin account, the destination account, and the asset to transfer.
- Disburse: Enter the source account for sending funds and create an instruction set that defines which merchants should receive funds and how much they should receive.
- If needed, add more steps earlier or later in the payment flow. Please note:
- Steps can’t be added after a Disburse payment action.
- Convert payment actions that follow a Transfer payment action must use the same exchange account as the step preceding it.
- After adding all the steps needed for the payment flow, select Create payment flow.
Creating an instruction set
- When creating a Disburse payment action within a custom payment flow, select Create instruction set. The amount of funds to send to merchants can be calculated by:
- Fixed amount: Select this method to enter a fixed amount for each merchant. This option is only available when the Disburse payment action is the first step in the payment flow.
- Percentage of amount: Select this method to enter a percentage of the total payment amount to send to each merchant.
- Select a recipient for receiving funds, the type of asset to send them, and the amount to send them. You can only use one asset type in the instruction set.
- Select Add instruction to add more instructions to the instruction set. You can add, edit, and delete instructions as needed.
- After completing the instruction set, select Apply > Save.
Examples
Cross-border payment
Suppose you want to send 1,000 Mexican Pesos (MXN) from your Mexican bank account as USD to your bank in the United States.
To create this cross-border payment flow:
- Make sure you have MXN in your Bitso account.
- Create a new custom payment flow.
- Add a Convert step to convert MXN to USDC.
- Add a Transfer step to transfer the USDC to an exchange account in the United States.
- Add a Convert step to convert the USDC to USD.
- Add a Transfer step to transfer the USD from your exchange account to your fiat account in the United States.
Merchant settlement
Suppose you want to send 100 USDC from your Fireblocks workspace to each of your three merchants, but you currently only hold Ethereum.
To create this merchant settlement payment flow:
- If you haven’t added the merchant addresses in your workspace, you can do so on the bottom-right corner of the Payments page. Learn more about adding merchant addresses as payees.
- After your merchant accounts are added, create a new custom payment flow.
- Begin the flow with a Convert step to convert your Ethereum into USDC.
- Add a Disburse step, and select the vault account holding the USDC as your source.
- Create an instruction set to send the USDC to your three merchants.
- Use the fixed amount option to send exact amounts to your merchants.
- Add an instruction for each merchant to receive 100 USDC.
Account rebalancing
Suppose the crypto portfolio you manage using Fireblocks is made up of five different vault accounts and must be rebalanced when a vault account becomes overweight. The overweight portion of the funds should be distributed equally among the other four vault accounts.
To create this rebalancing payment flow:
- Create a new custom payment flow.
- Begin the flow with a Disburse step, and select the overweight vault account as your source for distributing funds.
- Create an instruction set for rebalancing funds.
- Use the percentage of amount option to send equal portions of funds regardless of the total amount being sent.
- Add an instruction for each of the other four vault accounts to receive 25% of the funds from the overweight vault account.