Process description
This functionality is a convenient and effective tool for managing users and their multi-deposit addresses. With it you can create users and edit information about them. Each user will receive their own multi-deposit address for replenishment with several currencies available within the same blockchain and supported by our service.
Example - a user received an address and regularly replenishes it with different currencies, for example: ETH, USDT_BSC, POL. Such replenishments come to identical addresses but in different blockchains.
To make a deposit you need to create a customer and get an address for it, these steps are described below:
- Create a customer - POST customer
- Update or add details to a client - PUT customer
- Get deposit address for customer - GET purse
- If the deposit address has not been replenished for 30 days, it will expire, you will receive a webhook - CUSTOMER_PURSE_EXPIRED
- When Calypso receives a client deposit you will receive webhooks with transaction statuses:
- The transaction pending in the mempool - CUSTOMER_PURSE_MEM_POOL_FOUND
- Transaction under compliance check - CUSTOMER_PURSE_PENDING_COMPLIANCE
- The transaction failed compliance check and the deposit address is blocked for further deposits - CUSTOMER_PURSE_COMPLIANCE_DECLINED
- Transaction received successfully - CUSTOMER_PURSE_FUNDS_RECEIVED_FOR_PURSE
- After receiving a webhook that the transaction has been successfully received, you need to get the transaction data using the method - GET purse-transaction
Names of requests on the scheme indicate certain payment API methods
Create customer request example
Example of the create customer request:
Pass your account ID as a parameter - "account".
Example of the create customer response:
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"email": "string",
"description": "string",
"blocked": true
}
Get purse request example
Example of the get purse request:
- Pass the required parameters in the request - "account/customerId/currency".
Example of the get purse response:
- In response you will receive an address for deposits.
{
"address": "string"
}
Purse statuses
Status | Description |
---|---|
PENDING_PAYMENT | The address is active for replenishment of the customer to which it is linked. |
ARCHIEVED | The address is not active for replenishing this customer account. |
DECLINED | The address is blocked due to receipt of illegal funds; using the address and replenishing it is not possible. |
Transaction statuses
Example of the get transaction data request:
- Pass the required parameters in the request - "account/transactionId".
Example of the get transaction data response:
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"amount": 0,
"currency": "string",
"transactionHash": "string",
"transactionState": "MEM_POOL_FOUND",
"complianceState": "UNCHECKED",
"translationToAccountCompleted": true,
"createdDate": "2024-10-16T09:48:06.245Z"
}
Transaction statuses:
Status | Сompliance State | Description |
---|---|---|
MEM_POOL_FOUND | UNCHECKED | The transaction pending in the mempool. |
PENDING_COMPLIANCE_CHECK | IN_PROGRESS | Transaction under compliance check. |
DECLINED | DECLINE | The transaction failed compliance check. |
CONFIRMED | CHECKED | Transaction received successfully. |