Payouts
Helix Payouts API documentation is focused on integrations where the partner/merchant is the end customer and possess a profile id of their own.
Payouts are used to transfer between supported currencies/tokens. For example GBP:BTC
or RM:AXS
.
There are a few steps which must be followed to create a payout.
Step 1: Create a quote
Quote fetches current mid-market exchange rate that will be used for your transfer. Quote also calculates our fee and estimated delivery time.
Request
Request Body
Reference
Field
Description
Format
customExternalId
String
Source (sending) currency symbol.
String
Target (receiving) currency symbol.
String
targetAmount
Amount in target currency. (Optional)
Decimal
sourceAmount
Amount in source currency. Either sourceAmount or targetAmount is required, never both. (Optional)
Decimal
Avoiding duplicate quotes
We use customExternalId field to avoid duplicate transfer requests. When your first call fails (error or timeout) then you should use the same value in customExternalId field that you used in the original call when you are submitting a retry message. This way we can treat subsequent retry messages as repeat messages and will not create duplicate quotes to your account.
Response
quoteId
A unique reference to the quote created. You can only create one transfer per one quote.
You cannot use same quote uuid to create multiple transfers.
UID
merchantId
Merchant ID is your customer account.
UID
customExternalId
External ID provided by the merchant.
String
sourceCurrency
Source currency
String
sourceAmount
Calculated source exchanged amount
String
targetCurrency
Target currency
String
targetAmount
Calculated target exchanged amount
String
targetAddress
String
expirationTime
Expiration date of the quote
Date
hlxFeeValue
Total Helix fee including all gas.
String
hlxFeePercentage
Percentage spread on target currency
String
estimateGas
Network gas feee
Number
Example Request
Example Response
Step 2: Create a recipient account [PHASE 2]
Currently the recipient endpoint is planned for Phase 2, and will be used to improve the customer experience in the future.
Direct emails and updates from pending transfers
Grouping of transaction viewable in the Helix customer account
Improved KYC for required markets
Step 3: Create a transfer
A transfer is a payout order you make to a recipient account based on a quote.
Request
Request Body
id
quoteId
String
Response
You need to save the transfer id for tracking its status later.
transferId
ID of the transfer
string($uuid)
quoteId
ID of the quote previously created
string($uuid)
customExternalId
Your external ID supplied with the quote
string
merchantId
Your UID
string($uuid)
tokenId
Internal reference of the token sent
string($uuid)
targetToken
Symbol
string
targetAmount
The amount a end customer will receive in their wallet
string
sourceAmount
The amount charged to the merchant for the transaction
string
targetAddress
The end customer wallet address
string
hlxFeeValue
The fee charged to the merchant
hlxFeePercentage
The overall percentage charged on the transaction
gasFee
Current Blockchain gas fee on the transaction
string
status
[1, 2, 3]
string
transactionHash
Transaction hash which can be used to find the transaction on the block explorers
string
Example Request
Example Response
Once a quote has been submitted it can't not be reused. Trying to submit again will return the following error.
Step 4: Fund a transfer [PHASE 2]
Currently the recipient endpoint is planned for Phase 2, and will be used to improve the customer experience in the future.
Currently the fund transfer endpoint is planned for Phase 2, and will be used to support instant funding of from the source currency to the target without using a pre-funded credit account.
Instant exchange from source → target currencies
Step 5: Track transfer status
You can check your latest transfer status by polling this endpoint.
Example Request:
Example Response:
Last updated