The Kraken integration allows a developer to allow a Krak user to deposit funds from their Krak app to their desired destination wallet address.
Chains, rails, and constraints
Payment settlement with automatic asset conversion
When you create a payment request, you specify the destination asset and amount you want to receive. The paying customer does not need to hold that exact asset in their account.
If the customer’s account contains a different asset, the payment provider automatically converts it at the point of payment and settles the exact amount you requested in your chosen destination asset. The conversion spread is borne by the customer, not by you.
This means you always receive exactly what you asked for, regardless of what the customer holds.
Example
You create a payment request for 100 PYUSD.
What this means for your integration
- You do not need to know or care what assets your customers hold.
- Always request in your preferred settlement asset. The conversion layer sits entirely on the payment provider’s side.
- Conversion fees are the customer’s responsibility and are shown to them before they confirm.
Note: The customer can fund the payment from any supported asset in their account, including fiat currencies, stablecoins, and cryptocurrencies. The full list of supported assets depends on the payment provider’s availability in the customer’s region.
Kraken Quote creation
For Kraken the quote creation body should look like this
Kraken Order creation
Without Quote ID
With Quote ID
order_info.currency & rail has to be the same as destination_detail.currency & rail this is done to keep the requests symmetric. As mentioned under the above “Payment settlement with automatic conversion” headline, the user is not required to hold the order_info.currency . This is just a Fin API convention.