External fiat deposit with exchange by fixed rate
This endpoint is used to receive cryptocurrency by paying it in fiat using a bank card or SEPA transfer.
Before making a request to /v2/exchange/internal/crypto, you must make a request to receive rateId to /v2/rate/freeze. This request allows you to "freeze" the exchange rate for a certain (defined by the settings) time.
It is important to note that the freeze rate for this type of exchange, which is carried out using the SEPA transfer deposit method, is indicative at the moment the request is made to initiate the operation. The exact freeze rate will be recalculated at the moment the euro deposit is actually credited to the user's account for further exchange.
At the same time, in order to receive a freeze rate as part of this type of transaction, it is required to specify the depositPaymentCode, since a deposit by card or SEPA transfer is used when exchanging fiat-crypto.
The payment method, in addition to determining the cost of the exchange operation, also contains a list of required fields (fields) asked by the provider to ensure the successful execution of the payment.
Therefore, when performing a freeze rate (/v2/rate/freeze), it is enough to specify only the depositPaymentCode, and when performing an exchange operation (/v2/exchange/external/deposit-with-exchange), you need to specify the depositPaymentCode together with the fields for this payment method.
The list of fields and their parameters are returned together with the payment method as a response to the request at /v2/exchange/external/pre-request.
Provided that all data for creating an invoice have been correctly transmitted, a link to the payment of this invoice or bearerToken (for payment without payment link, integration guide here https://merchant.kuna.io/docs/ru/integration/payments/h2h/#card-gate) will be returned in metadata.invoice object in the response to the request to /v2/exchange/external/deposit-with-exchange. The operation will be continued only after the client pays the invoice, after which the stage of exchanging fiat currency for crypto will begin.
Deposit with exchange can acquire the following statuses:
- Created - operation created;
- Processing - operation in processing;
- OnHold - the operation is blocked (for example, for checking AML);
- Declined - the operation is rejected;
- Completed - the operation is successful.
To provide information about the status of the operation, a callback service is implemented. The link for receiving callbacks should be provided in the Deposit with exchange request.
The duration of execution of a Deposit with exchange depends on speed of fiat deposit processing. Fiat deposit made using a bank card may take a few moments, while a SEPA transfer can take up to 3-5 days. Part of exchange is instant.
Information about the amount of operation fees will be indicated along with other operation details.