LogoLogo
  • GENERAL
    • Introduction
    • Overview
    • Authentification
    • ENUM description
  • ACQUIRING
    • Customer wallets
    • Invoices
    • Onramp
  • EXCHANGE
    • Crypto exchange
  • PAYOUTS
    • Single Payout
    • Mass Payout
  • WEBHOOKS
    • Overview
    • Types of events
    • Webhook payload
    • Webhook sign check
  • GUIDES
    • General questions
      • What is Calypso Pay?
      • Which blockchains and tokens we support?
    • Calypso UI guides and questions
      • Introduction to Calypso Pay
      • Sandbox mode and limits
      • General
        • How to create new API key
        • How to create an additional account
        • How to add a new asset to account
        • How to add funds to your wallet
        • Protect your withdrawals with additional signatures
        • How to change your top-up address
        • How to use address book
        • How to set up auto currency conversion
        • How to transfer money within Calypso pay
        • Create a webhook
      • Accept Payments via UI
        • How to create an invoice via UI
        • Accept Payments FAQ
      • Make Payments via UI
        • How to create a single payout via UI
        • How to create mass payout via UI
        • Make Payments FAQ
      • Make Exchanges via UI
        • How to exchange one crypto asset to the other
      • Reports
        • How to get reports
        • Report contents description
    • Integration guides and questions
      • Get started with API
      • Use Customer purse via API
        • How create a customer
        • How to get a purse
        • How to get a transaction data
      • Accept Payments via API
        • How to create a Limited Invoice via API
        • How to create a Limited Fiat Invoice via API
        • How to create an Unlimited Invoice via API
        • How to manage interventions via API
        • How to embed invoice data to your payment page
      • Payment widget
        • How to create a limited fiat payment widget via API
        • How to create unlimited payment widget
        • How to embed a payment widget on a web page
      • Make Exchange via API
        • How to create a exchange
        • Get balance information via API
      • Make Payments via API
        • Get balance information via API
        • How to create a single payout via API
        • How to create a mass payout via API
  • API REFERENCE
    • Report API
    • Settlement Payout API
    • Webhook API
    • Payout API
    • Exchange API
    • Fiat API
    • User API
    • Rate API
    • Settlement Wallet API
    • Fiat withdrawal API
    • Account API
    • Currency API
    • Invoice API
    • Settlement Report API
    • Crypto to fiat API
    • Customer Purse API
    • Fiat deposit API
    • Payment Widget API
    • Models
Powered by GitBook
On this page
  • Customers
  • Block/unblock customer request example
  • Purse (address)
  • Get purse request example:
  • Deposit
  • Get transaction request example:
Export as PDF
  1. ACQUIRING

Customer wallets

PreviousACQUIRINGNextInvoices

Last updated 3 days ago

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 client and get an address for him, these and other functional steps are described below.

Names of requests on the scheme indicate certain payment API methods.

Customers

  • Create a customer - POST customer

  • Update or add details to a client - POST update

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",
  "externalId": "string",
  "blocked": true
}

The following options are also available to you:

  • Block customer - POST block Allows you to transfer the client to the "blocked" status. The client's addresses remain active for receipts. The merchant can receive funds to blocked addresses, but receives a notification via webhook that these are receipts from a blocked user. - CUSTOMER_PURSE_FUNDS_RECEIVED_FOR_PURSE ("blocked": true)

    Funds received at the blocked client's addresses:

    • Are credited to the merchant's account.

    • The merchant is notified by webhook with transaction details and the client's status ("blocked").

    • The decision on further distribution of funds remains with the merchant and his agreement with the client.

  • Unblock customer - POST unblock Allows the merchant to restore the client to an active state. Once unblocked, the client can continue to use their addresses without restrictions.

Block/unblock customer request example

Example of the block customer request:

Pass your account ID as a parameter - "account","customerId".

Example of the block customer response:

{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "email": "string",
  "description": "string",
  "externalId": "string",
  "blocked": true
}

Purse (address)

  • 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

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, and purseId (address id).

{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "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.

Deposit

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

Get transaction request example:

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.

After receiving a webhook that the transaction has been successfully received, you need to get the transaction data using the method - GET

purse-transaction