Sell Flow

Get an internal client account

GET /v1/accounts/

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 withdrawal will be sent to this client account.

Add an external crypto account

This requires some confirmation.

POST /v1/external-crypto-accounts/

Confirmation via WalletConnect is available on the Ethereum and Polygon networks. 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 networks will require additional verification of Satoshi. 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:

GET /v1/references/

query = {
    "legal_entity_uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "type": ["network_types"]
}

Note: Satoshi test must be done before adding request. Confirmation is not required when adding an external crypto account in the sandbox.

Add a client’s external 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"
}

The deposit must be sent from this client account.

Get commissions

GET /v1/sellbuy/orders/calculate-trade/

query = {
    "legal_entity_uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "client_uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "incoming_provider_type": "crypto",
    "incoming_provider_uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "incoming_amount": 100,
    "outgoing_provider_type": "bank"
}

Make the following request to select an incoming_provider_uuid:

GET /v1/references/providers/

query = {
    "legal_entity_uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "type": "crypto"
}

Create an order

POST /v1/sellbuy/orders/

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_provider_uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "incoming_asset_code": "EURS",
    "incoming_amount": 100,
    "outgoing_provider_type": "bank",
    "outgoing_asset_code": "EUR",
    "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.

Make the following request to select an incoming_provider_uuid:

GET /v1/references/providers/

query = {
    "legal_entity_uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "type": "crypto"
}

Make a deposit

The client needs to make a crypto deposit from the account specified in step Add an external bank account, using the deposit_address value received in step Create an order.

Get order status

GET /v1/sellbuy/orders/

query = {
    "legal_entity_uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "client_uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}