Buy Flow¶
Get an internal client account¶
query = { "legal_entity_uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "client_uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6" }Orders will be linked to this account.
Add an external bank account¶
POST /v1/external-bank-accounts/
query = { "legal_entity_uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "client_uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6" }data = { "name": "string", "iban": "string", "bank_code": "string", "bank_name": "string", "holder_name": "string" }Or get the client’s external bank account if it has already been added:
GET /v1/external-bank-accounts/
query = { "legal_entity_uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "client_uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6" }The deposit must be sent from this client account.
Add an external crypto account¶
Add a crypto account the withdrawal should be sent to.
Confirm ownership¶
Sandbox: Confirmation is not required when adding an external crypto account in the sandbox.
Ethereum, Polygon:
POST /v1/external-crypto-accounts/
Confirmation via WalletConnect is valid for 24 hours only. The following JSON fields must be added to the request to add client external crypto account:
data = { ..., "address": "string", "wallet_message": "string", "wallet_signature": "string" }Algorand, Ripple, Xinfin, Stellar:
Confirmation via Satoshi Test. Get the address for Satoshi Test:
GET /v1/external-crypto-accounts/satoshitest/
query = { "legal_entity_uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "client_uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "network_type": "algorand" }Here you may need information about available network types:
query = { "legal_entity_uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "type": ["network_types"] }
Do add a crypto account¶
POST /v1/external-crypto-accounts/
query = { "legal_entity_uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "client_uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6" }data = { "name": "string", "network_type": "ethereum", "address": "string" }Or get the client’s external crypto account if it has already been added:
GET /v1/external-crypto-accounts/
query = { "legal_entity_uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "client_uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6" }
Get bank account info¶
Obtain information about the bank account into which the client will need to make a deposit.
query = { "legal_entity_uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6" }
Get commissions¶
GET /v1/sellbuy/orders/calculate-trade/
query = { "legal_entity_uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "client_uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "bank_transfer_type": "sepa", "incoming_provider_type": "bank", "incoming_provider_uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "incoming_amount": 100, "outgoing_provider_type": "crypto", "outgoing_provider_uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6" }In step Get bank account info you got
bank_transfer_type
andincoming_provider_uuid
.Make the following request to select an
outgoing_provider_uuid
:query = { "legal_entity_uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "type": "crypto" }
Create an order¶
query = { "legal_entity_uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "client_uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6" }data = { "account_uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "incoming_transfer_type": "sepa", "incoming_provider_uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "incoming_asset_code": "EUR", "incoming_amount": 100, "outgoing_provider_type": "crypto", "outgoing_provider_uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "outgoing_asset_code": "EURS", "outgoing_client_account_uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6" }
In step Get an internal client account you got
account_uuid
.In step Add an external crypto account you got
outgoing_client_account_uuid
.In step Get bank account info you got
incoming_transfer_type
andincoming_provider_uuid
.Make the following request to select an
outgoing_provider_uuid
:query = { "legal_entity_uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "type": "crypto" }
Make a deposit¶
The client needs to make a fiat deposit from the account specified in step Add an external bank account using the bank details received in step Get bank account info.
Please use
reference
field value from step Create an order as a purpose of bank transfer.
Sandbox¶
There is no need to make a real bank deposit in the sandbox. Sandbox API provides an inject deposit endpoint.
Get order status¶
query = { "legal_entity_uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "client_uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6" }