Only this pageAll pages
Powered by GitBook
1 of 94

Calypso Finance Docs

GENERAL

Loading...

Loading...

Loading...

Loading...

GUIDES

General questions

Loading...

Loading...

Calypso UI guides and questions

Loading...

Loading...

General

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Accept Payments via UI

Loading...

Loading...

Make Payments via UI

Loading...

Loading...

Loading...

Make Exchanges via UI

Loading...

Reports

Loading...

Loading...

Integration guides and questions

Loading...

Use Customer purse via API

Loading...

Loading...

Loading...

Accept Payments via API

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Make Exchange via API

Loading...

Loading...

Make Payments via API

Loading...

Loading...

Loading...

ACQUIRING

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

PAYOUTS

Loading...

Loading...

WEBHOOKS

Loading...

Loading...

Loading...

Loading...

API REFERENCE

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Overview

Calypso Pay supports the following products:

  • Customers 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.

  • Limited Invoice is a commercial document issued by a merchant to a client relating to a sale transaction. It includes provided products and services, their quantities and agreed costs.

  • Unlimited Invoice is an invoice without a fixed amount. Payments to the invoice of this type can be accepted in unlimited quantities for any amount for an unlimited time. Funds are transferred to the hot wallet if necessary.

  • Payment Link is a link to a one-time invoice. Payment links can be sent by email, messenger or in any other way.

  • Payment Widget is an out of the box solution for accepting crypto currencies from your clients. It is versatile, easy to set up and adjust for you and easy to use for your clients. While being based on our invoice product under the hood, it also gives your client the possibility to choose the currency and different ways to pay - by just copying the needed address, scanning the QR code or connecting via Metamask or Walletconnect in just a few clicks.

  • Exchange is the process of exchanging one cryptocurrency for another within the same account.

  • Single Payout is a payment of a reward, dividend, insurance compensation, etc. (i.e. you may need to pay dividends to partners).

  • Mass payout is a method of paying multiple recipients simultaneously. Since mass payouts are submitted online, they are processed instantly which helps organizations to save time, money and resources.

Do you want to see how our payment products look like?

A real example of our products you can find on the page with implemented payment products.

The entire payment flow of Payment Link, Payment Widget or Embedded Payment Link you can watch on the page with payment flows examples.

Authentification

All requests must contain the following headers:

Header name
Description

Key

The api key as a string.

Sign

The HEX-encoded signature (see Signing a Request).

Content-Type

All request bodies should have content type application/json and be valid JSON.

Every request must be signed and the sign must be provided to the request header.

Sign — POST data (in the same format in which you want to send) encrypted with method HMAC-SHA512 using secret key and the result object is converted to a HEX string.

The body is the request body string (in all cases this is JSON stringified request params object).

All the requests should also include the obligatory POST parameter timestamp with current unix UTC timestamp in milliseconds. The value must not be less than 3 minutes in the past and not greater than 3 minutes in the future.

Calypso uses API keys to allow access to the API. You can contact to generate a new pair of API keys for you (public and secret keys).

Technical Support

Sandbox mode and limits

After registering your company in Calypso, you will gain access to your company's personal account.

Sandbox mode

For newly registered companies, we offer a test mode that allows you to get acquainted with the functionality of our service using live funds, within the established limits.

In test mode you will have access to:

  • Top-ups

  • Invoices

  • Customer wallets

  • Exchange

  • Payouts

Please note that in the test mode, a limit is set on the withdrawal of funds from the personal account. This is done to ensure security and control over processes at the initial stage of working with our service.

Limits

For new companies, the withdrawal limit is set at 1000 USDT.

The image shows the scale of withdrawal limits, shown below the list of our services:

Request full access

To use the full functionality of Сalypso, you need to get full access to the product, for this you need to click on the "Request full access" button and fill in your contact information for communication. Our managers will contact you for further cooperation.

The "Request full access" button is on the scale with limits in the picture below:

After clicking the button, a form will appear to fill in your contact information:

Which blockchains and tokens we support?

The table below shows the full list of blockchains and currencies available on Calypso Pay. We're constantly adding new ones, so please check this page from time to time to be up to date.

Blockchain

Base currency

Token standart

Tokens

Bitcoin

BTC

-

-

Ethereum

ETH

ERC20

USDT, DAI, FRAX, USDC

Tron

TRX

TRC20

USDT, USDC

BSC

BNB

BEP20

USDT, USDC

Polygon

POL (ex-MATIC)

ERC20

USDT, USDC

Dogecoin

DOGE

-

-

Litecoin

LTC

-

-

TON

TON

-

USDT

How to create new API key

You can generate API keys directly within the Calypso Pay interface. Simply navigate to the Integration section, where you can monitor the status of your keys and create new ones as needed. With API keys, you gain seamless access to Calypso Pay's functionality, enabling smoother integration with your existing systems and applications.

To create a new key, click on the "Generate API key" button and assign a name to your key. Please note that at this stage, both the public and secret keys will be displayed. They will only be shown at this point, so be sure to store them in a secure location.

What is Calypso Pay?

Calypso Pay - is a crypto and fiat processing platform that lets merchants receive payments in crypto or fiat from their clients and pay their partners and workers almost instantly with minimal commissions.

Users can create invoices and use the payment widget to accept payments or charge subscriptions with advanced analytics on top.

Calypso Pay even provides a dedicated management module for crypto treasuries to cover their specific needs.

Introduction

The Calypso API is a powerful tool that provides programmatic access to a wide range of cryptocurrency payment services. The API is built on top of a robust infrastructure and utilizes state-of-the-art security measures to ensure the safe and secure transfer of sensitive financial data.

The API provides a simple and secure way for merchants to accept and make payments in multiple cryptocurrencies such as Bitcoin, Ethereum, Tron and more.

Calypso API provides powerful and flexible access to cryptocurrency payment functionality. With this API, developers can quickly and easily build custom crypto-based financial applications that meet the specific needs of their business or projects.

You can use this API to access Calypso API endpoints, which can give you access to our products.

The base URL with access to the Calypso API looks like this: https://api.calypso.finance

Introduction to Calypso Pay

Welcome to Calypso Pay, the premier crypto processing platform that is revolutionizing the way merchants and businesses handle their cryptocurrency transactions. Calypso Pay allows merchants to easily receive payments in a variety of cryptocurrency options, and make instant payments to partners and workers with minimal commission fees. This platform is designed to provide a seamless and user-friendly experience for all users, whether you are new to the world of cryptocurrency or a seasoned pro.

With Calypso Pay, you have access to a wide range of powerful tools and features to manage your transactions. You can create invoices, use a payment widget to accept payments, subscriptions, and access advanced analytics to track your transactions in real-time. Additionally, you can make payments and mass payments in various types of cryptocurrency, and even exchange one crypto token for another, all in one place.

ENUM description

In this section you will find all actual ENUM's used in Calypso API.

Currency

All possible crypto currencies:

ENUM value
Description

BTC

Bitcoin

LTC

Litecoin

XDG

Dogecoin

ETH

Ethereum

USDT

Tether USD (ERC-20)

USDC

USD Coin (ERC-20)

FRAX

Frax (ERC-20)

DAI

DAI (ERC-20)

POL (prev. MATIC)

Polygon

USDT_POL

Tether USD (Polygon)

USDC_POL

USD Coin (Polygon)

TRX

Tron

USDT_TRX

Tether USD (TRC-20)

BNB

Binance Coin

USDT_BSC

Tether USD (BEP-20)

TON

Toncoin

USDT_TON

Tether USD (TON)

All possible fiat currencies:

ENUM value
Description

USD

Dollar USA

EUR

Euro

UAH

Ukrainian hryvnia

KZT

Kazakhstani tenge

RUB

Russian ruble

Blockchain

ENUM value

BITCOIN

ETHEREUM

BINANCE_SMART_CHAIN

TRON

DOGECOIN

POLYGON

LITECOIN

TONCOIN

Invoice state

ENUM value
Description

PENDING_PAYMENT

• A new unpaid invoice. • Client has transferred funds, but the funds has not yet been credited to the account.

MEM_POOL_FOUND

Incoming transaction to invoice wallet is found in blockchain mempool.

PAID

Invoice is paid.

PENDING_INTERVENTION

• Intervention from the merchant is awaited. • Client transferred insufficient amount. • Client has transferred an amount exceeding an invoice amount. • Funds were transferred from different client accounts.

COMPLETED

Funds are transferred to merchant wallet.

ARCHIVED

Invoice is deleted by merchant.

PENDING_COMPLIANCE_CHECK

Invoice is being reviewed by compliance

DECLINED

Invoice has been suspended due to compliance policy

Invoice type

ENUM value
Description

SINGLE

allows to receive one payment in crypto-currency

SINGLE_FIAT

allows to receive one payment in crypto-currency but amount to pay is set in fiat currency

BOUND

allows to receive payment in crypto-currency with any amount but not less than configured while creation

UNLIMITED

allows to receive unlimited amount of payments in crypto-currency

UNLIMITED_LINKED

allows to receive unlimited amount of payments in crypto-currency but only from one client using payment widget

Payment widget type

ENUM value
Description

SINGLE_FIAT

Creates SINGLE_FIAT invoices for one payment in fiat currency

UNLIMITED_LINKED

Creates UNLIMITED_LINKED invoices for many payments in crypto-currency

Payment widget state

ENUM value
Description

IN_PROGRESS

The payment widget has been created and is active

COMPLETED

The invoice created from payment widget has been payed

ARCHIVED

The payment widget has expired and was automatically archived

Payout state

ENUM value
Description

CREATION_IN_PROGRESS

Payout started creation (only for mass payouts)

PENDING_CONFIRMATION

A payout is created via UI and is awaiting confirmation from other process participants.

CONFIRMED

• A payout is created via UI and confirmed by other process participants. • A payout created via API is automatically created with this status.

IN_PROGRESS

• Transaction for a payout is created and is awaiting to be sent to the network. • Transaction for a payout is sent to the network to be sent to a block and is awaiting confirmation from nodes.

COMPLETED

Funds are successfully credited to destination wallet.

FAILED

CANCELED

A payout has been canceled by merchant.

Payout withdrawal state

ENUM value

DRAFT

IN_PROGRESS

COMPLETED

REPLACED

FAILED

CANCELED

Withdrawal error state

ENUM value
Description

SUCCESS

The error was resolved

NO_PERMISSION

No permission for operation

NOT_ENOUGH_FUNDS

Not enough funds for operation processing

EXCEEDING_LIMIT

Limits for operation was exceeded

notificationServiceTypes

ENUM value

PAYOUT

INVOICE

sort

ENUM value

ASC

DESC

An error occurred when sending funds. There can be many reasons of the error. You may follow these remediation steps: 1. Wait a while and create a new similar payout. 2. Contact our .

technical support

Protect your withdrawals with additional signatures

To add an extra layer of security to your financial operations, you may want to use the system of multiple signatures for the payouts. In short - it will require more than one user to successfully create a payout.

There are two available roles for this action - payout user and payout manager. The first one can only create a payout, and will need a signature from a user with payout manager role to proceed with the transaction. At the same time payout manager can create a payout himself, but will need another payout manager to sign it. Therefore there will always be needed at least 2 people to make a payout - but maybe more, the system is flexible and can be adjusted to your needs.

This functionality applies both to single and mass payouts. At the moment it only applies to payouts created from UI and is not used in API.

To set the number of needed confirmations for your account and get more details - please contact our support.

Below you can find an instruction on how to assign needed roles to the members of your team.

  1. Navigate to the individual teammate settings page

  1. Open "Advanced options" dropdown menu and choose the roles you want to assign.

How to add funds to your wallet

  1. Go to the assets tab and click the "top-up" button or 3 vertical dots on the right side of the chosen currency.

  1. Select "Top-up with your own crypto"

  1. Select currency if you need

  2. You will see the blockchain address for the deposit. The address can be copied or you can easily use the QR code.

The speed of replenishment of the wallet depends on the selected currency and also on which network was used. Be sure to check the wallet address, the amount of funds, and the network through which the transaction is made before sending.

There are several ways to replenish your wallet. You can send funds directly to your wallet address or make an invoice and get funds from your customer. In this article, we will look at the process of direct top-up. For information about creating invoices, read this

article

How to create an additional account

In order to separate the space for different projects or for your convenience, you can create additional accounts.

They will use different identifiers and keys for API requests authentication.

Just click in the upper left corner and enter a name for your new account.

How to set up payout confirmations

Setting up payout confirmations for your company account allows you to increase security and introduce additional control over these transactions.

To set up the payout confirmations, you need to navigate to the settings.

After that, go to the "Security" section, where you can enable the standard number of confirmations, which is 1, or set an additional number of confirmations for withdrawals from your account.

Example when confirmations are disabled:


Example when the standard number of confirmations equal to 1 is enabled:


Example of setting an additional number of confirmations:

How to change your top-up address

If there is a situation when you want to change the address you use for top-ups of your assets, you can easily do it through our UI. To do it please choose in your left menu "Assets", choose the individual asset you need and on the page of the individual asset page in the right corner there is a three-dot menu, where you can choose an option to change your top-up address.

How to add a new asset to account

How to add a new asset to account

Manual is under development

To add a new asset you just need to follow a few easy steps.

  1. In the left part of your account, click on the assets tab

  2. Click on "Add new asset" or on the plus icon in the upper right corner

  1. Choose the currency as well as the desired blockchain network

  1. After you click on "Add a new asset", a new currency will be displayed in the lists and you can use it for further deposits or payments

Suggest Edits

Create a webhook

Webhooks are a mechanism that allows your web application to automatically receive notifications about events happening in other applications or systems. They are particularly useful for integrating different services and automating processes.

To create a webhook, navigate to the "Integration" section and switch to "Webhooks".

Then follow the simple creation process provided by the interface:

Enter the URL for the webhook.

Subscribe to the types of events you wish to receive notifications for.

Be sure to save the webhook keys.

The interface provides an option to test the webhook's functionality.

However, webhooks can also pose certain risks, such as the potential for malicious actors to use them for attacks on your system. Therefore, it's important to prioritize security and use reliable authentication and authorization methods when working with webhooks.

How to use address book

To make the payments more convenient and safer you can save the needed addresses and use them when you make a payout.

To start using the address book, click on your profile icon in the top right corner and choose "Settings".

On the settings page click the tab "Address Management".

There you will see the list of the existing addresses in the order book, and you may add the new addresses as well.

Once the address added to the book, you will be able to choose it when creating a payout.

Also you will be able to see the name of the recipient in the payout info and the name o the sender in the top-up info - if these addresses are in the address book.

How to transfer money within Calypso pay

You can take advantage of lower transaction costs by transferring funds to clients who are also Calypso Pay users.

To easily identify whether a user is registered with Calypso Pay, you can add their address to your address book within the platform. This streamlined process ensures seamless transactions between Calypso Pay users.

If a Calypso logo appears next to the address upon addition, it signifies that this address is a Calypso Pay client. This feature simplifies the process of identifying Calypso Pay users, ensuring efficient and secure transactions within the platform.

To initiate a transfer, navigate to the "Payout" section. Choose the payout type and enter the amount you wish to transfer.

Enter the description and select the recipient from your address book. A distinctive banner will indicate that you're transferring funds to another Calypso Pay user, ensuring a seamless and secure transaction experience.

Accept Payments FAQ

Is there a minimal sum with which an invoice can be created?

We recommend to not set the invoice amount below 10 USD equivalent in chosen currency


Do the invoices have expiration?

By default an invoice will expire in 1 day after its creation. When creating an invoice you can set a custom expiration date


What happens if money is deposited on an invoice after it expires? Including the situation when the transaction has already been initiated but is taking long?

The invoice will be in state "ARCHIVED". Our system doesn't monitor these addresses after the invoice is moved to that state, so the merchant won't be able to know about the deposits. It can be checked only manually, and money from that address can be withdrawn only manually by our team as well.


Can the merchant check the actual sum that was deposited to the invoice address?

Yes, at the moment you can do it via UI - on any invoice card you can click "More info" and you will see more information about the given invoice, including the field "Money received" - the amount deposited to the invoice address and "Invoice wallet balance" - the actual balance on the invoice address at the moment.


Can you change the language to be used on the invoice payment page(the one that the end client sees)?

At the moment it is done automatically based on the client's browser language.


How long does it take for invoice to be processed? (From client's funds being deposited to the invoice address till the callback on successful invoice completion)

Approximate time on the whole invoice processing depends on the blockchain:

Polygon, Tron, BSC, Doge - around 5 min

Ethereum - up to 10 min

Bitcoin takes longer - up to several hours.

How to create an invoice via UI

By creating an invoice and sending it for payment to your client, the funds get to your wallet. This is convenient when you want to issue an invoice to pay for a product or service. Please follow several steps to create it from your account.

  1. Go to the "Invoices" tab and click "Create invoice" or select the "Top-up" button from the "Assets" tab and select "Get funds from a customer".

  1. Select the currency in which the invoice will be created. The number of currency options depends on which assets you have added to your account

  1. Choose the correct payment information. Specify the amount to pay the invoice in cryptocurrency. To specify the amount in fiat, check the box next to "Invoice in fiat". Also, you can create an invoice without fixed payment amount using the "Without amount" slider.

  1. Select the life duration of the invoice. Use our presets or select a desired custom one. If the funds have not been received during the lifetime of the invoice, it will switch to the Archived status.

  1. If you need you can specify "External ID". It's not mandatory but it can be helpful if you need to compare the identification of invoices in an external service or program.

  1. "Description" is a required field. As the name implies, it is used for convenience and to understand the purpose of the invoice. Please keep in mind that the client will see this text when they make payment

  1. After creating an invoice, you will be taken to a page with general information about it

  1. You can send the invoice manually by copying the link from the previous paragraph or send it to your client by email

At the moment the language of the invoice is based on the client's browser language.

Then you can check all your created invoices, their status, and other information in the "Invoices" tab. Using status filters or the search field you can easily find the invoice that you need.

Select the invoice you need and in the next window, you can find additional information about the invoice like status lifetime changes.

How to set up auto currency conversion

Currency auto-conversion is a feature that automatically converts all incoming payments from your clients into stablecoins, thereby mitigating volatility.

To set up the auto-conversion process, you need to navigate to the settings.

Afterward, proceed to the Currency Auto Conversion section, allowing you to specify the currencies you wish to convert into the desired final currency.

When the toggle is enabled, all incoming payments will automatically convert into the currency you've selected. This allows your users to deposit funds using various methods, while all funds on your account will accumulate solely in the chosen currency.

In this scenario, all incoming payments from your clients in BTC currency will automatically convert to USDT (ETH or TRX).

You can always disable currency auto-conversion by simply toggling it off.

How to create a single payout via UI

Payouts are used to send funds to other wallets or create payments to customers. In this article, we will tell you how to create a single Payout.

  1. First, go to the "Payouts" tab and click on the "Create a payout" button.

  1. Select "Single payout" and specify an amount that you want to transfer.

  1. You can send payment instantly or select the later date for the payment. Use our presets or select a desired custom one.

  1. "Description" is a required field. As the name implies, it is used for convenience and to understand the purpose of the payment. Please note that it is only shown internally and not displayed to the receiver of the payment.

  1. Add a new wallet address and save it to presets or chose one from previously saved.

  1. After creating a payout, you will be taken to a page with general information about it

Then you can check all your created payments, their status, and other information in the "Payments" tab. Using status filters or additional filters you can easily find the payout that you need.

Select the payment you need and in the next window, you can find additional information about payment like transaction hash, customer address, and status lifetime changes.

How to exchange one crypto asset to the other

Exchanges are used to swap one asset in your account for another asset.

  1. First, go to the "Crypto to Crypto" tab, you will be go to the exchange page.

  1. Select the asset "You sell" from the list of available ones.

  1. Select the asset "You buy" from the list of available ones.

  1. Enter the amount of the asset in the "You sell" field, or by clicking the MAX button the field will be filled with the maximum available amount of this asset on your account. In the form below you can see the calculation for your exchange.

  1. If several minutes have passed since you selected the assets, you can update the exchange rate data to correctly display the amounts before the exchange in the calculation form by clicking on the "Update" button.

Below we see an example where the amounts changed after the update because the exchange rate changed during this time.

  1. Click to "Exchange".

  1. You go to the exchange confirmation page, where you see the exchange calculation and also have the opportunity to update the calculation data by clicking the "Update" button. Next step click to the "Confirm" button.

  1. To go to the exchange page and the list of your exchanges, click "Done", if you click on the "Go to Assets" button, you will be taken to the page with assets.

  1. On the exchange page in the list you will see the new exchange that you created appear, while the exchange is being processed you will see the status "In progress".

When the exchange is completed you will see the status "Completed"

How to create mass payout via UI

Payouts are used to send funds to other wallets or create payments to customers. In this article, we will tell you how to create a single Payout.

  1. First, go to the "Payouts" tab and click on the "Create a payout" button.

  1. Select "Mass payout" and specify the currency you want to use.

  1. Please read about additional limits and restrictions on mass payouts.

  • You can’t create more than 100 transactions within one mass payment.

  • All transactions must be in the same currency.

  • If you want to create less than 5 payouts, use regular payouts, it will be cheaper.

  • The speed of transaction execution depends on the blockchain, transactions in the network will be executed sequentially one after another. You can learn more about blockchain.

  1. Upload your CSV file.

  1. Check provided information, payment amount, and fees. If validation is not successful, fix errors and upload the correct CSV file.

  1. Your payout has been created and now you can check the state of its transactions.

You can download the

CSV example

Make Payments FAQ

Where is the payout shown if there was not enough funds to make it?

Page Payouts → In Progress


Is there any limit on number of transactions in mass payouts?

  • ETH 1000

  • Tokens on ETH 1000

  • BTC 100

  • DOGE 100

  • TRON 100


Approved payout is being processed for very long time, is there any problem?

In most cases there are no issues with the payouts, but there can be several reasons for slower processing:

  1. You have set too low blockchain fee

  2. The network is congested at the moment and all the transactions are taking longer

  3. There have been other transactions from that address and they haven't been finished yet - transactions are processed following the order


What is the transaction speed in payout creation menu?

It is the sum that the user wants to spend on the network fee for that transaction. The higher the sum is - the faster the transaction will be processed and vice versa.


Can you cancel the payout?

The created payout can be cancelled only before it gets approved by all the responsible supervisors. If all the approvals were given and the payout has been created it is impossible to cancel or alter it as if the transaction has been translated to the blockchain it becomes immutable.

How to get reports

You can easily get detailed reports on your transactions in Calypso Pay.

In the left side menu choose Reporting and you will get to the menu where you can choose the type of report - Incoming, Outgoing or exchange transactions.

Once you choose the type of the report you need, you will get to the next page where you will be able to choose the dates, timezone and currencies you wish to include in the report:

When you choose everything and click "Create report" you will be able to choose the preferred format of the report - .csv or .docx

Just click the needed format and the report will be automatically downloaded.

Report contents description

Incoming transactions report

Field
Description

Transaction ID

Identification number of the transaction

External ID

Identification number added by the merchant when creating the invoice

Amount

Amount of funds received in the stated currency

Currency

Cryptocurrency used for that invoice

Fiat Amount

Sum of the invoice counted in fiat currency

Fiat Currency

Chosen fiat currency

Type

Type of the operation - important to separate invoices from topups

Date of creation

When the operation was created

Calypso fee

Service fee paid to Calypso Pay for the operation

Invoice ID

Identification number of the invoice

hashes

Hashes of the transactions incoming to the invoice

Outgoing transactions report

Field
Description

Transaction ID

Identification number of the transaction

Address To

Recipient's address

External ID

Identification number of the payout

Amount

Amount of funds sent in stated cryptocurrency

Currency

Cryptocurrency used for the payment

Type

Type of the operation

Date of creation

When the operation was created

Calypso fee

Service fee paid to Calypso Pay for the operation

Transaction hashes

Hashes of the sent transactions

Exchange reports

Field
Description

Transaction ID

Identification number of the transaction

External ID

Identification number of the payout

Amount

Amount of funds sent in stated cryptocurrency

Currency

Cryptocurrency used for the payment

Type

Type of the operation

Date of creation

When the operation was created

Calypso fee

Service fee paid to Calypso Pay for the operation

Transaction hashes

Hashes of the sent transactions

How create a customer

Create a customer

To create a new customer use the following endpoint: customer (**POST** https://api.calypso.finance/api/v1/customer-purse/customer/create)

You can find the detailed description of all the parameters in the documentation:

Create a customer

Here we consider the most important ones.

To create a new user, you need to pass this parameter in the request:

  • account (required) - your product/service account id.

  • timestamp (required) - Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

  • payload (required) - Request data for creating a new Customer

    • email

    • description

So to create new customer you just have to send request:

curl

curl --request POST \
     --url https://api.calypso.finance/api/v1/customer-purse/customer/create \
     --header 'accept: */*' \
     --header 'content-type: application/json' \
     --data '
{
  "account": "string",
  "timestamp": 0,
  "payload": {
    "email": "string",
    "description": "string"
  }
}

If the creation was successful you receive the response:

curl

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

Update a customer

To update a customer use the following endpoint: customer (**POST** https://api.calypso.finance/api/v1/customer-purse/customer/update)

You can find the detailed description of all the parameters in the documentation:

Here we consider the most important ones.

To create a new user, you need to pass this parameter in the request:

  • account (required) - your product/service account id.

  • timestamp (required) - Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

  • payload (required) - Request data for creating a new Customer

    • id (required) - Customer ID

    • email

    • description

So to update customer you just have to send request:

curl

curl --request POST \
     --url https://api.calypso.finance/api/v1/customer-purse/customer/update \
     --header 'accept: */*' \
     --header 'content-type: application/json' \
     --data '
{
  "account": "string",
  "timestamp": 0,
  "payload": {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "email": "string",
    "description": "string"
  }
}
'

If the update was successful you receive the response:

curl

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

Update a customer

Get started with API

Signing requests

First of all to use Calypso Public API you’ll need to contact Technical Support to generate a new pair of API keys (public and secret keys):

secret key example:
b823a6b9ea72408583cef9ec8d67fa52
public key example:
c529e14832b34b74972365cf7bf02430

API keys are used for authorization in requests to the Calypso API. After receiving API keys from our Technical Support team you can start sending requests to Calypso Public API.

All requests must contain the following headers:

Key
The api key as a string.

Sign

The HEX-encoded signature (see below).

Content-Type

All request bodies should have content type application/json and be valid JSON.

Sign — POST data (in the same format in which you want to send) encrypted with the method HMAC-SHA512 using secret key and the result object is converted to a HEX string.

The body is the request body string (in all cases this is JSON stringified request params object).

All the requests should also include the obligatory POST parameter timestamp with current unix UTC timestamp in milliseconds. The value must not be less than 3 minutes in the past and not greater than 3 minutes in the future.

To create the sign:

  1. Build the body of the request with correct timestamp

  2. Encrypt the request body with method HMAC-SHA512 using the body as a message and the secret key as a key.

  3. Convert bytes to string of hexadecimal digits.

Examples of sign building:

  • Javascript

    JSX

    const crypto = require("crypto-js");
    
    signature = function (body, secretKey) {
            return crypto.HmacSHA512(body, secretKey).toString(crypto.enc.hex);
        };
  • Python

    Python

    import hmac
    import hashlib
    
    def signature(body, secret_key):
        return hmac.new(secret_key.encode(), body.encode(), hashlib.sha512).hexdigest()

Example of api keys, body and correct sign for request:

Python

api_key = 'c529e14832b34b74972365cf7bf02430'
secret_key = 'b823a6b9ea72408583cef9ec8d67fa52'

data = '{"timestamp":1}'
sign = 'b16e9d45f49f2069becbc4f108b237bee588cfc353fe9501df103e692acbc68d482a10d34c12bea22fedde7e28e1b8e57a6a0a373b0e9a27c5257bd8b36e13b9'

Examples of timestamp building:

  • Javascript

JavaScript

var timestamp = new Date().getTime();
  • Python

Python

import time

timestamp = round(time.time() * 1000)

How to get a transaction data

Getting information about a new deposit

When Calypso receives information from the blockchain about a new deposit from your customer, you will receive webhooks about the processes and statuses associated with this deposit:

CUSTOMER_PURSE_MEMPOOL_FOUND

  • The transaction pending in the mempool.

CUSTOMER_PURSE_PENDING_COMLIANCE

  • Transaction under compliance check.

CUSTOMER_PURSE_COMLIANCE_DECLINED

  • The transaction failed compliance check.

CUSTOMER_PURSE_FUNDS_RECEIVED_FOR_PURSE

  • Transaction received successfully.

After receiving the final successful deposit status, you need to send a request with the transaction ID and get the transaction data.

Get Customer Purse Transaction

To get a transaction data from transactionID, use the following endpoint: customer (POST https://api.calypso.finance/api/v1/customer-purse/transaction/get)

You can find the detailed description of all the parameters in the documentation:

Here we consider the most important ones.

To get transaction data, you need to pass this parameter in the request:

  • account (required) - your product/service account id.

  • timestamp (required) - Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

  • payload (required) - Request data for get a deposit address

    • transactionId (required)

So to get a transaction data, you just have to send request:

JSON

If the transaction successfully received, you receive the response:

JSON

curl --request POST \
     --url https://api.calypso.finance/api/v1/customer-purse/transaction/get \
     --header 'accept: */*' \
     --header 'content-type: application/json' \
     --data '
{
  "account": "string",
  "timestamp": 0,
  "payload": {
    "transactionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
  }
}
'
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "customerBlocked": "false",
  "amount": 100,
  "currency": "string",
  "transactionHash": "string",
  "transactionState": "COMPLETED",
  "complianceState": "CHECKED",
  "translationToAccountCompleted": true,
  "createdDate": "2024-10-16T14:12:20.898Z"
}
Get Customer Purse Transaction

How to get a purse

Get a deposit address

To get an address for deposits use the following endpoint: customer (POST https://api.calypso.finance/api/v1/customer-purse/address/get)

You can find the detailed description of all the parameters in the documentation:

Here we consider the most important ones.

To get an address for deposits in a specific currency, you need to pass this parameter in the request:

  • account (required) - your product/service account id.

  • timestamp (required) - Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

  • payload (required) - Request data for get a deposit address

    • customerId (required)

    • currency (required)

So to get a depost address, you just have to send request:

JSON

curl --request POST \
     --url https://api.calypso.finance/api/v1/customer-purse/address/get \
     --header 'accept: */*' \
     --header 'content-type: application/json' \
     --data '
{
  "account": "string",
  "timestamp": 0,
  "payload": {
    "customerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "currency": "string"
  }
}
'

If the address is successfully given, you receive the response:

JSON

{
  "address": "string"
}

If a deposit address has not received any deposits within 30 days of its receipt, it will expired.

  • And you will receive a webhook - CUSTOMER_PURSE_EXPIRED

Get Customer Purse Address

How to create a Limited Invoice via API

General API integration rules

Limited Invoice API Integration

An invoice is a document given to the buyer by the seller to collect payment. It includes the cost of the products purchased or services rendered to the buyer as well as lists products/services.

To accept a single payment for a product with a fixed price when price specified in crypto currency you can use single invoice. Single Invoice is an instrument that allows you to receive a fixed amount of funds for your product.

Creating single invoice

To create a new Invoice use the following endpoint: New Single Invoice (POST https://api.calypso.finance/api/v1/invoice/single/create)

Here we consider the most important ones.

  • amount (required) - the amount of money merchant want to receive for a product/service.

  • currency (required) - the crypto currency of payment.

  • description (required) - the description of product/service.

  • idempotencyKey - a specific UUID for the payment link which guarantees uniqueness of the request. It’s possible to check the status of the invoice by this parameter after creation.

So to create invoice without additional options you just have to send request:

cURL

curl --location --request POST 'https://api.calypso.finance/api/v1/invoice/single/create' \
--header 'Key: <your_api_key>' \
--header 'Sign: <your_sign>' \
--header 'Content-Type: application/json' \
--data-raw '{
  "timestamp": 13292792792,
  "account": "0xc195df92dd9db2a8f28e597981f113d6e7582f8b",
  "payload": {
    "amount": 0.001,
    "currency": "ETH",
    "description": "invoice for client 1",
    "idempotencyKey": "1be6a518-6dcd-477d-96af-dd914b1300ce"
  }
}'

Some additional options:

  • By default the invoice is available 3hours for TRON base currencies 1day for others . You can set custom expiration time of an invoice by transmitting expiration field in request body but the expiration date may only be less than 1 day from the current moment. After this time the invoice will be unavailable for payment.

  • You can customise interface of your invoice by transmitting returnUrl, supportUrl and logoUrl fields.

If the creation was successful you receive the response:

  • Response exampleJSON

    {
        "id": "d9732536-acdd-41bd-87c3-ec40aeeb6a37",
        "invoiceAddress": "0xc7721217b3e919eeb618c5155df278da58521aef",
        "type": "SINGLE",
        "amount": 0.001,
        "fee": 0.000042026017236,
        "totalDebitAmount": 0,
        "currency": "ETH",
        "state": "PENDING_PAYMENT",
        "description": "invoice for client 1",
        "createdDate": "2022-08-25T12:47:28.200475",
        "idempotencyKey": "1be6a518-6dcd-477d-96af-dd914b1300ce",
        "expiration": "2022-09-24T12:47:28.171538",
        "isInterventionResolved": true,
        "subscriptionEnabled": false
    }

To complete the payment the client must pay the amount of money from amount field to address specified in invoiceAddress field.

Now after you’ve successfully created Invoice you can send link for payment to your client. Link format: https://pay.calypso.finance/invoice/{idempotencyKey}

Invoice Payment link view

Or you can build your own invoice interface using data from the response.

For example, you can use the following HTML template:

  <div class="invoice">
    <h4 class="fullCurrency">Tether USD (TRC-20)</h4>
    <h4 class="rate"><span class="amount">1800</span> <span class="currency">USDT</span> = <span class="fiatAmount">1801.1</span> <span class="fiatCurrency">USD</span></h4>
    <p class="amount"><span id="amount">1800</span> <span class="currency">USDT</span></p>
    <button onclick="copyText('amount')">Copy Amount</button>
    <p class="wallet-address" id="wallet-address">TEoZ53apYcxrJspfCCb7PGh5CJKMiRrAMX</p>
    <button onclick="copyText('wallet-address')">Copy Address</button>
    <br>
    <hr>
    <p>or scan QR code</p>
    <img class="qr-code" src="https://api.qrserver.com/v1/create-qr-code/?data=TEoZ53apYcxrJspfCCb7PGh5CJKMiRrAMX&size=150x150"
      alt="QR Code">
  </div>
  <script>
    function copyText(elementId) {
      var copyText = document.getElementById(elementId);
      var textArea = document.createElement("textarea");
      textArea.value = copyText.innerText;
      document.body.appendChild(textArea);
      textArea.select();
      document.execCommand("copy");
      textArea.remove();
    }
  </script>

Tracking invoice state

After creating Invoice you can receive information about it from the system. There are two options to track changes in invoice state:

  1. Get invoice data via request by ID.

  2. Set webhooks for invoices

Get data about specific invoice

To receive information about earlier created Invoice you can use Get a Specific Invoice endpoint (POST https://api.calypso.finance/api/v1/invoice).

You can request invoice by id, externalId or idempotencyKey.

Example of the request by id:

Bash

curl --location --request POST 'https://api.calypso.finance/api/v1/invoice' \
--header 'Key: <your_api_key>' \
--header 'Sign: <your_sign>' \
--header 'Content-Type: application/json' \
--data-raw '{
  "timestamp": 13292792792,
  "account": "0xc195df92dd9db2a8f28e597981f113d6e7582f8b",
  "payload": {
    "id": "d9732536-acdd-41bd-87c3-ec40aeeb6a37"
  }
}'

In response you will receive invoice data:

  • Response exampleJSON

    {
        "id": "d9732536-acdd-41bd-87c3-ec40aeeb6a37",
        "invoiceAddress": "0xc7721217b3e919eeb618c5155df278da58521aef",
        "type": "SINGLE",
        "amount": 0.001,
        "fee": 0.000042026017236,
        "totalDebitAmount": 0,
        "currency": "ETH",
        "state": "PENDING_PAYMENT",
        "description": "invoice for client 1",
        "createdDate": "2022-08-25T12:47:28.200475",
        "idempotencyKey": "1be6a518-6dcd-477d-96af-dd914b1300ce",
        "expiration": "2022-09-24T12:47:28.171538",
        "isInterventionResolved": true,
        "subscriptionEnabled": false
    }

The most important fields you need to pay attention to:

  • totalDebitAmount - received amount of money to this invoice.

Receive information about your payments via Webhooks

To track state of your created Invoice you can use Calypso Payment functionality which is called Webhooks.

Webhook is a way for an app to provide other applications with real-time information. The Webhooks API allows you to subscribe to events happening with your created objects (Invoices or Payouts) in Calypso. Rather than making an API call to check status of invoice or payout during processing, Calypso can send an HTTP request to an endpoint you configure.

  1. First of all, to receive information about Invoice state change you need to create a subscription for system events which you want to track.

There are several types of events which you need to track in order to understand what is happening to your Invoices.

The main events are:

Event type
Description

INVOICE_FUNDS_RECEIVED_FOR_INVOICE

The event shows if funds have been received to invoice wallet

INVOICE_PAID

Invoice successfully paid. All required amount has been received to invoice wallet.

INVOICE_PENDING_INTERVENTION

Invoice has changed state to INVOICE_PENDING_INTERVENTION. Either more or less funds was received to the invoice wallet than required

INVOICE_TRANSLATION_TO_ACCOUNT_COMPLETED

Funds have been received from invoice wallet to the merchant balance.

To create a subscription for those events you can use the Create Webhook Public API endpoint: POST https://api.calypso.finance/api/v1/subscription/webhook/create

Bash

curl --location --request POST 'https://api.calypso.finance/api/v1/subscription/webhook/create' \
--header 'Key: <your_api_key>' \
--header 'Sign: <your_sign>' \
--header 'Content-Type: application/json' \
--data-raw '{
  "timestamp": 13292792792,
  "account": "0xc195df92dd9db2a8f28e597981f113d6e7582f8b",
  "payload": {
    "notificationEventTypes": [
      "INVOICE_FUNDS_RECEIVED_FOR_INVOICE",
      "INVOICE_PAID",
      "INVOICE_PENDING_INTERVENTION",
      "INVOICE_TRANSLATION_TO_ACCOUNT_COMPLETED"
    ],
    "requestId": "bf9348b7-2c14-46d7-868c-b597852da319",
    "url": "Your App URL"
  }
}'

You can subscribe to all types of events if you specify value “INVOICE” in the notificationServiceTypes field instead of enumeration all types of events in notificationEventTypes.

In the response you will get:

JSON

{
    "requestId": "bf9348b7-2c14-46d7-868c-b597852da319",
    "notificationEventTypes": [
      "INVOICE_FUNDS_RECEIVED_FOR_INVOICE",
      "INVOICE_PAID",
      "INVOICE_PENDING_INTERVENTION",
      "INVOICE_TRANSLATION_TO_ACCOUNT_COMPLETED"
    ],
    "url": "Your App URL",
    "createdDate": "2022-08-22T08:24:00.307535"
}
  1. After successful creation of subscription for Payment events and providing your client with Payment Link you can wait for your client to make payment.

Successful Invoice payment scenario

When money are received to invoice address you will receive webhook with type INVOICE_FUNDS_RECEIVED_FOR_INVOICE. It means that money delivered to invoice but it doesn't inform whether the right amount was received. You can compare amount from the webhook payload on your side or wait for the next webhook.

  • The example of webhook payload:

JSON

{
  "requestId": "535b0c92-32b8-4679-9d9e-56ebda031ff7",
  "id": 16579,
  "createdDate": "2022-08-25T12:54:48.645795",
  "level": "SUCCESS",
  "service": "INVOICE",
  "eventType": "INVOICE_FUNDS_RECEIVED_FOR_INVOICE",
  "data": {
    "type": "INVOICE_FUNDS_RECEIVED_FOR_INVOICE",
    "amount": 0.001043,
    "transactionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "message": "invoice for client 1",
    "currency": "ETH",
    "externalId": null,
    "fiatAmount": {},
    "createdDate": "2022-08-25T12:47:28.200475",
    "description": "invoice for client 1",
    "paymentDate": "2022-08-25T12:54:48.605098",
    "senderAddress": "0xf127e5b7666f51aa346f374213113298014f5969",
    "idempotencyKey": "1be6a518-6dcd-477d-96af-dd914b1300ce",
    "transactionHash": "0xa76b638428b0702b6d6721f89f4806b9853fae65315dd1f6f34ce71deae0380b",
    "parentExternalId": "d9732536-acdd-41bd-87c3-ec40aeeb6a37"
  }
}

If client successfully paid the invoice (he sent the right amount of money) you will receive webhook with type INVOICE_PAID. Receiving this type of webhook guarantees that the invoice was fully paid.

  • The example of webhook payload:

{
  "id":9677,
  "viewed":false,
  "createdDate":"2023-03-13T11:16:53.274743",
  "level":"INFO","service":"INVOICE",
  "data":{
    "type":"INVOICE_PAID",
    "amount":0.001043,
    "currency":"ETH",
    "realAmount":0.001043,
    "description":"test",
    "idempotencyKey":"1be6a518-6dcd-477d-96af-dd914b1300ce",
    "parentExternalId":"d9732536-acdd-41bd-87c3-ec40aeeb6a37"
  }
}

To avoid errors related to receiving webhooks, it is necessary to request information about the invoice in Calypso Pay after receiving the webhook. To get detailed information about invoice you can use Get a Specific Invoice endpoint (POST https://api.calypso.finance/api/v1/invoice using idempotencyKey, externalId or parentExternalId (id in request).

You will see changes in the fields:

  • The value of state is PAID.

  • The value of totalDebitAmount is changed to received payment amount.

  • The value of fee shows the amount of service fee charged from the deposit amount of the invoice.

That means that the money were sent by client and they were received to invoice wallet address (invoiceAddress field).

After receiving the correct amount of money to the invoice address in Calypso system the money will be automatically credited to the merchant balance.

When money successfully credited to the balance you will receive webhook with type INVOICE_TRANSLATION_TO_ACCOUNT_COMPLETED.

The example of webhook payload:

JSON

{
  "requestId": "e505bbf7-0dcd-4097-b0c7-70372a5c68d3",
  "id": 9974,
  "createdDate": "2022-09-05T07:39:18.929518",
  "level": "SUCCESS",
  "service": "INVOICE",
  "eventType": "INVOICE_TRANSLATION_TO_ACCOUNT_COMPLETED",
  "data": {
    "type": "INVOICE_TRANSLATION_TO_ACCOUNT_COMPLETED",
    "amount": 0.01,
    "message": "unlimited invoice for client 2",
    "currency": "ETH",
    "externalId": "1234",
    "fiatAmount": {
      "EUR": 0.919371150133309,
      "USD": 1.0
    },
    "serviceFee": 0.0001,
    "createdDate": "2022-09-05T07:39:18.929518",
    "idempotencyKey": "9a995722-6dc1-4536-9d0a-8965914b45d3",
    "parentExternalId": "d9732536-acdd-41bd-87c3-ec40aeeb6a37"
  }
}

The most important fields in the event payload:

  • parentExternalId - system ID of invoice.

  • externalId - custom merchant ID, that could be set when the invoice was created.

  • amount - amount of money paid for this invoice.

  • serviceFee - service fee for the invoice deposit. This amount will be charged from the deposit amount.

In order to calculate exact amount of money credited to the merchant balance you should deduct serviceFee from amount.

You will see changes in the fields:

  • The value of state is COMPLETED.

Interventions

For advanced invoice usage scenarios and error handling please check our How to manage interventions via API? page.

Before starting an integration please check our page for more info.

You can find more information about other features of Public API integration in our documentation:

You can find the detailed description of all the parameters in the documentation:

You can set a specific custom ID to your Invoice by transmitting externalId field in request body. It’s possible to check the status of the invoice by this parameter after creation. Here, for example, you can pass a unique client ID and then use this method get them all. As well, externalId is returned in all types of events in webhooks, if it is set.

You can check the real example or watch entire payment flow .

The real example of embedded form .

More info on Get a Specific Invoice endpoint:

state - represents status of the invoice. More info about possible states in documentation:

More detailed information about Calypso Webhooks functionality:

More info on Calypso Webhooks event types:

More info on Webhooks management in Calypso Pay system:

Get started with API
Limited Invoice
New Single Invoice
Get Invoices by External ID
here
here
here
Get a specific Invoice
Limited Invoice
Webhooks
Types of events
Webhook API

How to create a Limited Fiat Invoice via API

General API integration rules

Limited Fiat Invoice API Integration

To accept a single payment for a product with a fixed price when initial price specified in fiat currency you can use Single Fiat invoice type. Single Fiat Invoice is an instrument that allows you to receive a fixed amount of funds for your product.

The invoice is paid in cryptocurrency but the pay amount is being recalculated every 15 minutes according to fiat amount value that you used during invoice creation.

You can find more information about other features of Public API integration in our documentation.

Creating Single Fiat Invoice

To create a new Invoice use the following endpoint: New Single Fiat Invoice (POST https://api.calypso.finance/api/v1/invoice/single-fiat/create)

Here we consider the most important ones.

  • amount - the amount of money merchant want to receive for a product/service in crypto. Recalculates every 15 minutes from fiatAmount value.

  • currency (required) - the crypto currency of payment.

  • fiatAmount (required) - the fiat amount of the invoice. The crypto amount is being calculated according to this value.

  • fiatCurrency (required) - the fiat currency of the invoice.

  • description (required) - the description of product/service.

  • idempotencyKey - a specific UUID for the payment link which guarantees uniqueness of the request. It’s possible to check the status of the invoice by this parameter after creation.

So to create an invoice without additional options you just have to send request:

Bash

curl --location --request POST 'https://api.calypso.finance/api/v1/invoice/single-fiat/create' \
--header 'Key: <your_api_key>' \
--header 'Sign: <your_sign>' \
--header 'Content-Type: application/json' \
--data-raw '
{
  "timestamp": 13292792792,
  "account": "0xc195df92dd9db2a8f28e597981f113d6e7582f8b",
  "payload": {
        "currency": "USDC",
        "description": "invoice for client 1",
        "idempotencyKey": "1be6a518-6dcd-477d-96af-dd914b1300ce",
        "fiatAmount": 1000,
        "fiatCurrency": "EUR"
    }
}'

Some additional options:

  • By default the invoice is available 3hours for TRON base currencies 1day for others . You can set custom expiration time of an invoice by transmitting expiration field in request body but the expiration date may only be less than 1 day from the current moment. After this time the invoice will be unavailable for payment.

  • You can customise interface of your invoice by transmitting return_url, support_url and logo_url fields.

If the creation was successful you receive the response:

  • Response exampleJSON

    {
        "id": "d9732536-acdd-41bd-87c3-ec40aeeb6a37",
        "invoiceAddress": "0xc23670524181205cdddef7a7e471674779b20797",
        "type": "SINGLE_FIAT",
        "totalDebitAmount": 0,
        "amount": 980,
        "currency": "USDC",
        "state": "PENDING_PAYMENT",
        "description": "invoice for client 1",
        "createdDate": "2022-09-05T06:54:41.421731",
        "idempotencyKey": "d7067648-cf1f-4d95-afd1-3f7228992671",
        "expiration": "2022-10-05T06:54:41.421458",
        "fiatAmount": 1000,
        "fiatCurrency": "EUR",
        "isInterventionResolved": true,
        "subscriptionEnabled": false
    }

To complete the payment the client must pay the amount of money from amount field to the address specified in invoiceAddress field.

Now after you’ve successfully created an Invoice you can send link for payment to your client. Link format: https://pay.calypso.finance/invoice/{idempotencyKey}

Invoice Payment link view

The invoice amount for payment will recalculate every time you open the Payment Link according to fiatAmount that you set earlier.

Or you can build your own invoice interface using data from the response.

For example, you can use the following HTML template:

  <div class="invoice">
    <h4 class="fullCurrency">Tether USD (TRC-20)</h4>
    <h4 class="rate"><span class="amount">1800</span> <span class="currency">USDT</span> = <span class="fiatAmount">1801.1</span> <span class="fiatCurrency">USD</span></h4>
    <p class="amount"><span id="amount">1800</span> <span class="currency">USDT</span></p>
    <button onclick="copyText('amount')">Copy Amount</button>
    <p class="wallet-address" id="wallet-address">TEoZ53apYcxrJspfCCb7PGh5CJKMiRrAMX</p>
    <button onclick="copyText('wallet-address')">Copy Address</button>
    <br>
    <hr>
    <p>or scan QR code</p>
    <img class="qr-code" src="https://api.qrserver.com/v1/create-qr-code/?data=TEoZ53apYcxrJspfCCb7PGh5CJKMiRrAMX&size=150x150"
      alt="QR Code">
  </div>
  <script>
    function copyText(elementId) {
      var copyText = document.getElementById(elementId);
      var textArea = document.createElement("textarea");
      textArea.value = copyText.innerText;
      document.body.appendChild(textArea);
      textArea.select();
      document.execCommand("copy");
      textArea.remove();
    }
  </script>

Tracking invoice state

After creating Single Fiat Invoice you can receive information about it from the system. There are two options to track changes in invoice state:

  1. Get invoice data via request by ID.

  2. Set webhooks for invoices

Get data about specific invoice

To receive information about earlier created Invoice you can use Get a Specific Invoice endpoint (POST https://api.calypso.finance/api/v1/invoice).

You can request invoice by id, externalId or idempotencyKey.

Example of the request by id:

Bash

curl --location --request POST 'https://api.calypso.finance/api/v1/invoice' \
--header 'Key: <your_api_key>' \
--header 'Sign: <your_sign>' \
--header 'Content-Type: application/json' \
--data-raw '{
  "timestamp": 13292792792,
  "account": "0xc195df92dd9db2a8f28e597981f113d6e7582f8b",
  "payload": {
    "id": "d9732536-acdd-41bd-87c3-ec40aeeb6a37"
  }
}'

In response you will receive invoice data:

  • Response exampleJSON

    {
        "id": "d9732536-acdd-41bd-87c3-ec40aeeb6a37",
        "invoiceAddress": "0xc23670524181205cdddef7a7e471674779b20797",
        "type": "SINGLE_FIAT",
        "totalDebitAmount": 0,
      	"amount": 980,
        "currency": "USDC",
        "state": "PENDING_PAYMENT",
        "description": "invoice for client 1",
        "createdDate": "2022-09-05T06:54:41.421731",
        "idempotencyKey": "d7067648-cf1f-4d95-afd1-3f7228992671",
        "expiration": "2022-10-05T06:54:41.421458",
        "fiatAmount": 1000,
        "fiatCurrency": "EUR",
        "isInterventionResolved": true,
        "subscriptionEnabled": false
    }

The most important fields you need to pay attention to:

  • totalDebitAmount - received amount of money to this invoice.

Receive information about your payments via Webhooks

To track the state of your created Invoice you can use Calypso Pay functionality which is called Webhooks.

Webhook is a way for an app to provide other applications with real-time information. The Webhooks API allows you to subscribe to events happening with your created objects (Invoices or Payouts) in Calypso. Rather than making an API call to check status of invoice or payout during processing, Calypso can send an HTTP request to an endpoint you configure.

  1. First of all, to receive information about Invoice state change you need to create a subscription for system events which you want to track.

There are several types of events which you need to track in order to understand what is happening to your Invoices.

The main events are:

Event type
Description

INVOICE_FUNDS_RECEIVED_FOR_INVOICE

The event shows if funds have been received to invoice wallet

INVOICE_PAID

Invoice successfully paid. All required amount has been received to invoice wallet.

INVOICE_PENDING_INTERVENTION

Invoice has changed state to INVOICE_PENDING_INTERVENTION. Either more or less funds was received to the invoice wallet than required

INVOICE_TRANSLATION_TO_ACCOUNT_COMPLETED

Funds have been received from invoice wallet to the merchant balance.

To create a subscription for those events you can use the Create Webhook Public API endpoint: POST https://api.calypso.finance/api/v1/subscription/webhook/create

Bash

curl --location --request POST 'https://api.calypso.finance/api/v1/subscription/webhook/create' \
--header 'Key: <your_api_key>' \
--header 'Sign: <your_sign>' \
--header 'Content-Type: application/json' \
--data-raw '{
  "timestamp": 13292792792,
  "account": "0xc195df92dd9db2a8f28e597981f113d6e7582f8b",
  "payload": {
    "notificationEventTypes": [
      "INVOICE_FUNDS_RECEIVED_FOR_INVOICE",
      "INVOICE_PAID",
      "INVOICE_PENDING_INTERVENTION",
      "INVOICE_TRANSLATION_TO_ACCOUNT_COMPLETED"
    ],
    "requestId": "bf9348b7-2c14-46d7-868c-b597852da319",
    "url": "Your App URL"
  }
}'

You can subscribe to all types of events if you specify value “INVOICE” in the notificationServiceTypes field instead of enumeration all types of events in notificationEventTypes.

In the response you will get:

JSON

{
    "requestId": "bf9348b7-2c14-46d7-868c-b597852da319",
    "notificationEventTypes": [
      "INVOICE_FUNDS_RECEIVED_FOR_INVOICE",
      "INVOICE_PAID",
      "INVOICE_PENDING_INTERVENTION",
      "INVOICE_TRANSLATION_TO_ACCOUNT_COMPLETED"
    ],
    "url": "Your App URL",
    "createdDate": "2022-08-22T08:24:00.307535"
}
  1. After successful creation of subscription for Payment events and providing your client with Payment Link you can wait for your client to make payment.

Successful Single Fiat Invoice payment scenario

When money are received to invoice address you will receive webhook with type INVOICE_FUNDS_RECEIVED_FOR_INVOICE. It means that money delivered to invoice but it doesn't inform whether the right amount was received. You can compare amount from the webhook payload on your side or wait for the next webhook.

  • The example of webhook payload:

JSON

{
  "requestId": "535b0c92-32b8-4679-9d9e-56ebda031ff7",
  "id": 16579,
  "createdDate": "2022-08-25T12:54:48.645795",
  "level": "SUCCESS",
  "service": "INVOICE",
  "eventType": "INVOICE_FUNDS_RECEIVED_FOR_INVOICE",
  "data": {
    "type": "INVOICE_FUNDS_RECEIVED_FOR_INVOICE",
    "amount": 0.001043,
    "transactionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "message": "invoice for client 1",
    "currency": "ETH",
    "externalId": null,
    "fiatAmount": {},
    "createdDate": "2022-08-25T12:47:28.200475",
    "description": "invoice for client 1",
    "paymentDate": "2022-08-25T12:54:48.605098",
    "senderAddress": "0xf127e5b7666f51aa346f374213113298014f5969",
    "idempotencyKey": "1be6a518-6dcd-477d-96af-dd914b1300ce",
    "transactionHash": "0xa76b638428b0702b6d6721f89f4806b9853fae65315dd1f6f34ce71deae0380b",
    "parentExternalId": "d9732536-acdd-41bd-87c3-ec40aeeb6a37"
  }
}

If client successfully paid the invoice (he sent the right amount of money) you will receive webhook with type INVOICE_PAID. Receiving this type of webhook guarantees that the invoice was fully paid.

  • The example of webhook payload:

{
  "id":9677,
  "viewed":false,
  "createdDate":"2023-03-13T11:16:53.274743",
  "level":"INFO","service":"INVOICE",
  "data":{
    "type":"INVOICE_PAID",
    "amount":0.001043,
    "currency":"ETH",
    "realAmount":0.001043,
    "description":"test",
    "idempotencyKey":"1be6a518-6dcd-477d-96af-dd914b1300ce",
    "parentExternalId":"d9732536-acdd-41bd-87c3-ec40aeeb6a37"
  }
}

To avoid errors related to receiving webhooks, it is necessary to request information about the invoice in Calypso Pay after receiving the webhook. To get detailed information about invoice you can use Get a Specific Invoice endpoint (POST https://api.calypso.finance/api/v1/invoice using idempotencyKey, externalId or parentExternalId (id in request).

You will see changes in the fields:

  • The value of state is PAID.

  • The value of totalDebitAmount is changed to received payment amount.

  • The value of fee shows the amount of service fee charged from the deposit amount of the invoice.

That means that the money were sent by client and they were received to invoice wallet address (invoiceAddress field).

After receiving the correct amount of money to the invoice address in Calypso system the money will be automatically credited to the merchant balance.

When money successfully credited to the balance you will receive webhook with type INVOICE_TRANSLATION_TO_ACCOUNT_COMPLETED.

The example of webhook payload:

JSON

{
  "requestId": "e505bbf7-0dcd-4097-b0c7-70372a5c68d3",
  "id": 9974,
  "createdDate": "2022-09-05T07:39:18.929518",
  "level": "SUCCESS",
  "service": "INVOICE",
  "eventType": "INVOICE_TRANSLATION_TO_ACCOUNT_COMPLETED",
  "data": {
    "type": "INVOICE_TRANSLATION_TO_ACCOUNT_COMPLETED",
    "amount": 0.01,
    "message": "unlimited invoice for client 2",
    "currency": "ETH",
    "externalId": "1234",
    "fiatAmount": {
      "EUR": 0.919371150133309,
      "USD": 1.0
    },
    "serviceFee": 0.0001,
    "createdDate": "2022-09-05T07:39:18.929518",
    "idempotencyKey": "9a995722-6dc1-4536-9d0a-8965914b45d3",
    "parentExternalId": "d9732536-acdd-41bd-87c3-ec40aeeb6a37"
  }
}

The most important fields in the event payload:

  • parentExternalId - system ID of invoice.

  • externalId - custom merchant ID, that could be set when the invoice was created.

  • amount - amount of money paid for this invoice.

  • serviceFee - service fee for the invoice deposit. This amount will be charged from the deposit amount.

In order to calculate exact amount of money credited to the merchant balance you should deduct serviceFee from amount.

You will see changes in the fields:

  • The value of state is COMPLETED.

Interventions

For advanced invoice usage scenarios and error handling please check our How to manage interventions via API? page.

Before starting an integration please check our page for more info.

You can find the detailed description of all the parameters in the documentation:

You can set a specific custom ID to your Invoice by transmitting externalId field in request body. It’s possible to check the status of the invoice by this parameter after creation. Here, for example, you can pass a unique client ID and then use this method get them all. As well, externalId is returned in all types of events in webhooks, if it is set.

See in details:

More info on Get a Specific Invoice endpoint:

state - represents the status of the invoice. More info about possible states in documentation:

More detailed information about Calypso Webhooks functionality:

More info on Calypso Webhooks event types:

More info on Webhooks management in Calypso Pay system:

Get started with API
New Single Fiat Invoice
Get Invoices by External ID
How to embed invoice data to your payment page
Get a specific Invoice
Limited Invoice
Webhooks
Types of events
Webhook API

How to manage interventions via API

Interventions

This section is only relevant to SINGLE and SINGLE_FIAT invoice types.

There are several scenarios when something can go wrong during your client Invoice payment. Calypso Payment supports following scenarios when you need to intervene into Invoice payment process and manually decide how to proceed.

There are two main types of interventions in Calypso Payment system:

  1. Underpay

If client payed less money than required in the Invoice.

  1. Overpay

If client payed more money than Invoice requires.

  1. To real-time track these scenarios and react to them you can use Calypso Webhook INVOICE_PENDING_INTERVENTION event type.

You can subscribe for this event type using Create Webhook endpoint: POST https://api.calypso.finance/api/v1/subscription/webhook/create

Bash

curl --location --request POST 'https://api.calypso.finance/api/v1/subscription/webhook/create' \
--header 'Key: <your_api_key>' \
--header 'Sign: <your_sign>' \
--header 'Content-Type: application/json' \
--data-raw '{
  "timestamp": 13292792792,
  "account": "0xc195df92dd9db2a8f28e597981f113d6e7582f8b",
  "payload": {
    "notificationEventTypes": [
      "INVOICE_PENDING_INTERVENTION"
    ],
    "requestId": "bf9348b7-2c14-46d7-868c-b597852da319",
    "url": "Your App URL"
  }
}'

After creating a Webhook for INVOICE_PENDING_INTERVENTION event you’ll start receiving incoming requests of a following format in case of an event appearing:

JSON

{
  "requestId": "bf9348b7-2c14-46d7-868c-b597852da319",
  "id": 3,
  "createdDate": "2022-06-17T12:13:05.909616",
  "level": "SUCCESS",
  "service": "INVOICE",
  "eventType": "INVOICE_PENDING_INTERVENTION",
  "data": {
    "parentExternalId": "d9732536-acdd-41bd-87c3-ec40aeeb6a37",
    "message": "Invoice example",
    "type": "INVOICE_PENDING_INTERVENTION",
    "idempotencyKey": "5b0ca8da-6af4-4a1c-9efd-5cbfc19ace09"
  }
}
  1. In case of receiving an incoming request about pending intervention you’ll need to use Get a Specific Invoice endpoint in order to receive detailed information about Invoice and understand your next steps: Get a Specific Invoice (POST https://api.calypso.finance/api/v1/invoice)

You will see changes in the fields:

  • The value of state is PENDING_INTERVENTION

  • The value of interventionType is either OVERPAY or UNDERPAY depending on received amount of money bigger or lower than amount.

  • The value of isInterventionResolved is false.

To resolve this intervention you can withdraw the money to the merchant’s wallet by sending Resolve intervention and receive money to the wallet request (POST https://api.calypso.finance/api/v1/invoice/return-to-paid).

The invoice state changes to PAID and invoice will be completed then.

After invoice became COMPLETED you can mark that intervention was resolved with the client by sending Mark that intervention is resolved in invoice request (POST https://api.calypso.finance/api/v1/invoice/close-intervention).

This request changes the value of field isInterventionResolved to “true”.

How to embed invoice data to your payment page

Introduction

If you already have a checkout page in your application it's can be useful to embed invoice data to checkout page with all needed for client payment data. Embedding invoice data on your checkout page can provide several benefits for your business and your customers:

  • By including all the necessary information for payment on one page, it makes the process of making a payment in cryptocurrency more streamlined and efficient.

  • Customers will not need to leave your website to complete their payment and this can increase payment conversion.

  • Additionally, it can also improve the overall user experience by making the payment process more user-friendly and intuitive.

We also have some detailed guides on how to create and track limited fiat invoices via API:

Limited Fiat invoice - the amount to pay is issued in fiat currency but converted to crypto currency at current exchange rate.

For detailed information about managing invoices read these guides first. Here we will go through the general flow.

Steps to embed invoice

To embed Calypso invoice data to your web page, you can follow these steps:

  1. Place the HTML code in your web page's code, wherever you want the invoice to appear:

HTML

  <div class="invoice">
    <h4 class="full-currency">Tether USD (TRC-20)</h4>
    <h4 class="rate"><span class="amount">1800</span> <span class="currency">USDT</span> = <span class="fiat-amount">1801.1</span> <span class="fiat-currency">USD</span></h4>
    <p><span class="amount" id="amount">1800</span> <span class="currency">USDT</span></p>
    <button onclick="copyText('amount')">Copy Amount</button>
    <p class="wallet-address" id="wallet-address">TEoZ53apYcxrJspfCCb7PGh5CJKMiRrAMX</p>
    <button onclick="copyText('wallet-address')">Copy Address</button>
    <br>
    <hr>
    <p>or scan QR code</p>
    <img class="qr-code" src="https://api.qrserver.com/v1/create-qr-code/?data=TEoZ53apYcxrJspfCCb7PGh5CJKMiRrAMX&size=150x150"
      alt="QR Code">
  </div>

cURL

curl --location --request POST 'https://api.calypso.finance/api/v1/invoice/create' \
--header 'Key: <your_api_key>' \
--header 'Sign: <your_sign>' \
--header 'Content-Type: application/json' \
--data-raw '
{
    "timestamp": 13292792792,
    "account": "0xc195df92dd9db2a8f28e597981f113d6e7582f8b",
    "payload": {
        "type": "SINGLE_FIAT",
        "currency": "USDC",
        "description": "invoice for client 1",
        "idempotencyKey": "1be6a518-6dcd-477d-96af-dd914b1300ce",
        "fiatAmount": 1000,
        "fiatCurrency": "EUR"
    }
}'
  1. Get invoice data in response

JSON

{
    "id": "d9732536-acdd-41bd-87c3-ec40aeeb6a37",
    "invoiceAddress": "0xc23670524181205cdddef7a7e471674779b20797",
    "type": "SINGLE_FIAT",
    "totalDebitAmount": 0,
    "amount": 980,
    "currency": "USDC",
    "state": "PENDING_PAYMENT",
    "description": "invoice for client 1",
    "createdDate": "2022-09-05T06:54:41.421731",
    "idempotencyKey": "d7067648-cf1f-4d95-afd1-3f7228992671",
    "expiration": "2022-10-05T06:54:41.421458",
    "fiatAmount": 1000,
    "fiatCurrency": "EUR",
    "isInterventionResolved": true,
    "subscriptionEnabled": false
}
  1. Replace the placeholder data within the code (such as the currency, amount, and wallet address) with the actual invoice data that you receive in response:

Class in HTML file
Field in response

full-currency

get value from currency and make mapping for user-friendly text. Example, USDT_TRX -> Tether USD (TRC-20)

amount

amount

currency

get value from currency, split it by the symbol "_". and take first element. Example, USDT_TRX -> USDT

fiat-amount

fiatAmount

fiat-currency

fiatCurrency

wallet-address

invoiceAddress

qr-code

  1. If you have a CSS file in your web page, you can add the CSS styles for the HTML code.

  2. Add the copyText() function to your Javascript file and make sure it is correctly referenced in the HTML code.

HTML

  <script>
    function copyText(elementId) {
      var copyText = document.getElementById(elementId);
      var textArea = document.createElement("textarea");
      textArea.value = copyText.innerText;
      document.body.appendChild(textArea);
      textArea.select();
      document.execCommand("copy");
      textArea.remove();
    }
  </script>
  1. Test the invoice on your web page, to make sure that it looks good and that all the data is correct. Your ready invoice form with CSS styles can be looked like this:

How to create an Unlimited Invoice via API

General API integration rules

Unlimited Invoice API Integration

An invoice is a document given to the buyer by the seller to collect payment. It includes the cost of the products purchased or services rendered to the buyer as well as lists products/services.

Unlimited Invoice is an invoice without a fixed pay amount. Payments to the invoice of this type can be accepted in unlimited quantities for any amount for an unlimited time. Funds are transferred to the merchant account automatically. It can be archived by merchant or after 3 months automatically if no deposit is received during this period.

You can find more information about other features of Public API integration in our documentation.

Restrictions and limits

Calypso charges a one-time commission for creating any unlimited invoice. Further, only a percentage will be charged from any deposits to the invoice.

Important: there are no minimum and maximum replenishment amounts.

Creating an Unlimited Invoice

To create a new Unlimited Invoice use the following endpoint: New Invoice (POST https://api.calypso.finance/api/v1/invoice/unlimited/create)

Here we consider the most important ones.

  • currency (required) - the crypto currency of payment.

  • idempotencyKey - a specific UUID for the payment link which guarantees uniqueness of the request. It’s possible to check the status of the invoice by this parameter after creation. As well, externalId is returned in all types of events in webhooks.

  • description (required) - the description of product/service.

So to create an invoice without additional options you just have to send request:

cURL

curl --location --request POST 'https://api.calypso.finance/api/v1/invoice/unlimited/create' \
--header 'Key: <your_api_key>' \
--header 'Sign: <your_sign>' \
--header 'Content-Type: application/json' \
--data-raw '{
  "timestamp": 13292792792,
  "account": "0xc195df92dd9db2a8f28e597981f113d6e7582f8b",
  "payload": {
    "currency": "ETH",
    "description": "invoice for client 1",
    "idempotencyKey": "1be6a518-6dcd-477d-96af-dd914b1300ce"
  }
}'

Some additional options:

  • You can customise interface of your invoice by transmitting return_url, support_url and logo_url fields.

In order to create a mapping between merchant's clients and invoices on the Calypso Pay side, you can use 2 ways: 1 - pass the client ID to the externalId 2 - on the merchant's side, create mapping between the client ID and idempotencyKey on the Calypso Pay side (the most optimal way, since it will be possible to immediately request all extended information using idempotencyKey).

If the creation was successful you would receive the response:

  • Response example

To complete the payment the client must pay any amount of money to the address specified in invoiceAddress field. The client may create as many payments as he needs while invoice is not expired.

Now after you’ve successfully created Invoice you can send link for payment to your client. Link format: https://pay.calypso.finance/invoice/{idempotencyKey}

Invoice Payment link view

Or you can build your own invoice interface using data from the response.

Tracking Unlimited Invoice state

After creating Invoice you can receive information about it from the system. There are two options to track changes in invoice state:

  1. Get invoice data via request by ID.

  2. Set webhooks for invoices

Get data about specific invoice

To receive information about earlier created Invoice you can use Get a Specific Invoice endpoint (POST https://api.calypso.finance/api/v1/invoice)

You can request invoice by id, externalId or idempotencyKey.

Example of the request by id:

Bash

curl --location --request POST 'https://api.calypso.finance/api/v1/invoice' \
--header 'Key: <your_api_key>' \
--header 'Sign: <your_sign>' \
--header 'Content-Type: application/json' \
--data-raw '{
  "timestamp": 13292792792,
  "account": "0xc195df92dd9db2a8f28e597981f113d6e7582f8b",
  "payload": {
    "id": "d9732536-acdd-41bd-87c3-ec40aeeb6a37"
  }
}'

In response you will receive invoice data:

  • Response exampleJSON

    {
        "id": "d9732536-acdd-41bd-87c3-ec40aeeb6a37",
        "invoiceAddress": "0x1a8201e316e5012cf3608c65b6f9d428ca4544ef",
        "type": "UNLIMITED",
        "totalDebitAmount": 0,
        "currency": "ETH",
        "state": "PENDING_PAYMENT",
        "description": "invoice for client 1",
        "createdDate": "2022-09-01T16:19:54.350408",
        "idempotencyKey": "4d1d24ba-da67-4324-ba3f-f33b6354ba39",
        "isInterventionResolved": true,
        "subscriptionEnabled": false
    }

The most important fields you need to pay attention to are:

  • state - the status of invoice processing. There are 2 possible states for unlimited invoices: PENDING_PAYMENT и ARCHIVED. PENDING_PAYMENT - invoice is active, it can accept deposits. ARCHIVED - invoice is archived, deposits can not be accepted.

  • totalDebitAmount - total received amount of money to this invoice.

Get data about deposits

Also you can get detailed information about deposit.

Get all deposits

To receive information about all deposits for invoice you can use Get all Deposits for the Invoice endpoint (POST https://api.calypso.finance/api/v1/invoice/deposit-history)

You can request deposits by id or idempotencyKey.

Example of the request by id:

cURL

curl --location --request POST 'https://api.calypso.finance/api/v1/invoice/deposit-history' \
--header 'Key: <your_api_key>' \
--header 'Sign: <your_sign>' \
--header 'Content-Type: application/json' \
--data-raw '{
  "timestamp": 13292792792,
  "account": "0xc195df92dd9db2a8f28e597981f113d6e7582f8b",
  "payload": {
    "id": "d9732536-acdd-41bd-87c3-ec40aeeb6a37"
  }
}'

In response you will receive deposit data:

JSON

{
  "result": [
    {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "amount": 0.01,
      "currency": "ETH",
      "transactionHash": "0x10c2eba81f0acc458a5c02c40ef709ede784240f0f5701e5cbb4454e30c7f3a1",
      "createdDate": "2023-04-03T13:34:57.783Z"
    },
    {
      "id": "9d71b4c3-b158-489e-ac96-5a73a90c423c",
      "amount": 0.01,
      "currency": "ETH",
      "transactionHash": "0x9c6d1f02e042a08c9f5cef9a0af7a9bc8f6ceac9152f37cd2ee9fec442703060",
      "createdDate": "2023-04-02T13:34:57.783Z"
    },
  ],
  "page": 1,
  "size": 10,
  "total": 1,
  "totalElements": 2
}

Get specific deposit

If you want to get information about specific or last deposit you can use Get Deposit for the Invoice endpoint (POST https://api.calypso.finance/api/v1/invoice/deposit)

In the payload of the event INVOICE_FUNDS_RECEIVED_FOR_INVOICE there is the field transactionId which can be used in this request. In addition, you have to specify the invoice for which deposit is requested by passing parameters id or idempotencyKey of the invoice.

Example of the request by id:

cURL

curl --location --request POST 'https://api.calypso.finance/api/v1/invoice/deposit-history' \
--header 'Key: <your_api_key>' \
--header 'Sign: <your_sign>' \
--header 'Content-Type: application/json' \
--data-raw '{
  "timestamp": 13292792792,
  "account": "0xc195df92dd9db2a8f28e597981f113d6e7582f8b",
  "payload": {
    "id": "d9732536-acdd-41bd-87c3-ec40aeeb6a37",
    "transactionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
  }
}'

In response you will receive deposit data:

JSON

{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "amount": 0.01,
  "currency": "ETH",
  "transactionHash": "0x10c2eba81f0acc458a5c02c40ef709ede784240f0f5701e5cbb4454e30c7f3a1",
  "createdDate": "2023-04-03T13:31:53.601Z"
}

Receive information about your payments via Webhooks

To track state of your created Invoice you can use Calypso Payment functionality which is called Webhooks.

Webhook is a way for an app to provide other applications with real-time information. The Webhooks API allows you to subscribe to events happening with your created objects (Invoices or Payouts) in Calypso. Rather than making an API call to check status of invoice or payout during processing, Calypso can send an HTTP request to an endpoint you configure.

  1. First of all, to receive information about Invoice state change you need to create a subscription for system events which you want to track.

There are several types of events which you need to track in order to understand what is happening to your Invoices.

The main events are:

Event type
Description

INVOICE_FUNDS_RECEIVED_FOR_INVOICE

The event shows if funds have been received to invoice wallet

INVOICE_TRANSLATION_TO_ACCOUNT_COMPLETED

Funds have been received from invoice wallet to the merchant balance

To create a subscription for those events you can use the Create Webhook Public API endpoint: POST https://api.calypso.finance/api/v1/subscription/webhook/create

Bash

curl --location --request POST 'https://api.calypso.finance/api/v1/subscription/webhook/create' \
--header 'Key: <your_api_key>' \
--header 'Sign: <your_sign>' \
--header 'Content-Type: application/json' \
--data-raw '{
  "timestamp": 13292792792,
  "account": "0xc195df92dd9db2a8f28e597981f113d6e7582f8b",
  "payload": {
    "notificationEventTypes": [
      "INVOICE_FUNDS_RECEIVED_FOR_INVOICE",
      "INVOICE_TRANSLATION_TO_ACCOUNT_COMPLETED"
    ],
    "requestId": "bf9348b7-2c14-46d7-868c-b597852da319",
    "url": "Your App URL"
  }
}'

You can subscribe to all types of events if you specify value “INVOICE” in the notificationServiceTypes field instead of enumeration all types of events in notificationEventTypes.

In the response you will get:

JSON

{
    "requestId": "bf9348b7-2c14-46d7-868c-b597852da319",
    "notificationEventTypes": [
      "INVOICE_FUNDS_RECEIVED_FOR_INVOICE",
      "INVOICE_TRANSLATION_TO_ACCOUNT_COMPLETED"
    ],
    "url": "Your App URL",
    "createdDate": "2022-08-22T08:24:00.307535"
}

After successful creation of subscription for Payment events and providing your client with Payment Link you can wait for your client to make payment.

Successful Unlimited Invoice payment scenario

If client paid the invoice you will receive webhook with type INVOICE_FUNDS_RECEIVED_FOR_INVOICE.

  • The example of webhook payload:JSON

    {
      "requestId": "e505bbf7-0dcd-4097-b0c7-70372a5c68d3",
      "id": 20294,
      "createdDate": "2022-09-05T07:39:18.929518",
      "level": "SUCCESS",
      "service": "INVOICE",
      "eventType": "INVOICE_FUNDS_RECEIVED_FOR_INVOICE",
      "data": {
        "type": "INVOICE_FUNDS_RECEIVED_FOR_INVOICE",
        "amount": 0.01,
        "transactionIds": [ "3fa85f64-5717-4562-b3fc-2c963f66afa6" ],
        "message": "unlimited invoice for client 2",
        "currency": "ETH",
        "externalId": "1234",
        "fiatAmount": {},
        "createdDate": "2022-09-05T07:14:43.673181",
        "description": "unlimited invoice for client 2",
        "paymentDate": "2022-09-05T07:39:18.904215",
        "senderAddress": "0xf17366cf1aa135acfe6b2b91aacd3c95610fad12",
        "idempotencyKey": "9a995722-6dc1-4536-9d0a-8965914b45d3",
        "parentExternalId": "d9732536-acdd-41bd-87c3-ec40aeeb6a37"
      }
    }

The most important fields in the event payload:

  • parentExternalId - system ID of invoice.

  • externalId - custom merchant ID, that could be set when the invoice was created.

  • amount - amount of money paid for this invoice.

  • transactionIds - system IDs of deposits.

That means that the money were sent by client and they were received to invoice wallet address (invoiceAddress field).

After receiving money to invoice wallet address received money amount will be credited to the balance.

When money successfully credited to the balance you will receive webhook with type INVOICE_TRANSLATION_TO_ACCOUNT_COMPLETED.

The example of webhook payload:

JSON

{
  "requestId": "e505bbf7-0dcd-4097-b0c7-70372a5c68d3",
  "id": 9974,
  "createdDate": "2022-09-05T07:39:18.929518",
  "level": "SUCCESS",
  "service": "INVOICE",
  "eventType": "INVOICE_TRANSLATION_TO_ACCOUNT_COMPLETED",
  "data": {
    "type": "INVOICE_TRANSLATION_TO_ACCOUNT_COMPLETED",
    "amount": 0.01,
    "message": "unlimited invoice for client 2",
    "currency": "ETH",
    "externalId": "1234",
    "fiatAmount": {
      "EUR": 0.919371150133309,
      "USD": 1.0
    },
    "serviceFee": 0.0001,
    "createdDate": "2022-09-05T07:39:18.929518",
    "idempotencyKey": "9a995722-6dc1-4536-9d0a-8965914b45d3",
    "parentExternalId": "d9732536-acdd-41bd-87c3-ec40aeeb6a37"
  }
}

The most important fields in the event payload:

  • parentExternalId - system ID of invoice.

  • externalId - custom merchant ID, that could be set when the invoice was created.

  • amount - amount of money paid for this invoice.

  • serviceFee - service fee for the invoice deposit. This amount will be charged from the deposit amount.

In order to calculate exact amount of money credited to the merchant balance you should deduct serviceFee from amount.

To avoid errors related to receiving webhooks, it is necessary to request information about the incoming transaction in Calypso Pay after receiving the webhook. You can request additional information about this particular deposit by transactionId using Get Deposit for the Invoice endpoint (POST https://api.calypso.finance/api/v1/invoice/deposit).

In the scenario with an unlimited invoice, there are no interventions, the amount of replenishment is not important. It is important to understand that the money that gets on the unlimited invoice is not moved to the available balance instantly. First, INVOICE_FUNDS_RECEIVED_FOR_INVOICE webhook event will be received, then after crediting funds to the balance INVOICE_TRANSLATION_TO_ACCOUNT_COMPLETED will be received. The system guarantees that the money will be transferred from the invoice wallet to the account balance (in negative scenarios, a delay may be due to our fault, but the funds will be given). It follows from this that at the moment when the funds have arrived on the invoice balance, the merchant can already fully verify the transfer of funds from the client on his side.

Converting amount in crypto currency to amount in fiat currency

At the moment when the merchant synchronizes a new deposit in his system you can use Get exchange rate endpoint (POST https://api.calypso.finance/api/v1/rate) to calculate the fiat amount equivalent of the crypto amount of the deposit.

More info on Get exchange rates endpoint: Get exchange rates.

Payment widget

Payment widget is an out of the box solution for accepting crypto currencies from your clients. It is versatile, easy to set up and adjust for you and easy to use for your clients.

While being based on our invoice product under the hood, it also gives your client the possibility to choose the currency and different ways to pay - by just copying the needed address, scanning the QR code or connecting via Metamask or Walletconnect in just a few clicks.

To find detailed instructions on how to install the widget on your site please check the following links:

And also the API documentation for setting a Payment Widget:

How to create a limited fiat payment widget via API

General API integration rules

Payment Widget

Payment Widget is a functionality that allows you to create widget, using which your users will be able to pay for your products/services choosing the currency they’re most comfortable with.

The widget indicates the amount to be paid, the available cryptocurrencies and description of payment.

It uses Invoice functionality inside of it and allows you to customize the widget the way you want to use it.

Limited Fiat Payment widget API integration

To accept a single payment for a product with a fixed price when initial price specified in fiat currency you can use Single Fiat Payment Widget. It allows your client to choose the crypto currency he wants to pay you with.

After choosing the crypto currency the invoice will be automatically created for your client to pay.

The invoice is paid in cryptocurrency but the pay amount is being recalculated every 15 minutes according to fiat amount value that you used during widget creation.

Your client may also return back to Payment widget and choose another crypto currency to pay you with.

Create Single Fiat Payment widget

To create a new Payment widget use the following endpoint: Create new Single Fiat payment widget (POST https://api.calypso.finance/api/v1/payment-widget/single-fiat/create)

Here we describe the most important ones.

  • fiatAmount - the amount of fiat money merchant wants to receive for a product/service.

  • fiatCurrency - the fiat currency of future payment. The pay amount in crypto recalculates every 15 minutes after the invoice creation according to this value.

  • description - the description of product/service.

  • cryptoCurrencies - the list of available for payment crypto currencies.

  • idempotencyKey - a specific UUID for the Payment widget link which guarantees uniqueness of the request. It forms the link via client can access the payment widget.

  • externalId - the unique custom ID for your Payment widget and all the future invoices created from it. It allows you to check the status of payment by this parameter after creation.

So to create a payment widget without additional options you just have to send request:

JSX

Some additional options:

  • By default the Payment widget is available for 1 day. You can set custom expiration time of Payment widget by transmitting expiration field in request body but the expiration date may only be less than 30 days from the current moment. After this time the Payment widget will be unavailable for payment.

  • You can customize interface of your Payment widget by transmitting return_url, support_url and logo_url fields.

If the creation was successful you receive the response:

  • Response exampleJSON

Now after you’ve successfully created a Payment widget you can send link for payment to your client. Link format: https://pay.calypso.finance/pay?widgetKey={idempotencyKey}

Payment widget link view:

Tracking payment state

After creating Single Fiat Payment widget you can receive information about it from the system.

  • The best way to do it is by tracking changes in invoices (created from your Payment widget) via Webhooks.

  • Another way is by manually requesting information about Payment widget and its invoices using API

Receive information about your payments via Webhooks

As we mentioned earlier Payment widget automatically creates an invoice after user chooses the currency he wants to pay with. So by tracking the state of created Invoice you can track the state of your payment.

To track the state of your created Invoice you can use Calypso Pay functionality which is called Webhooks.

Webhook is a way for an app to provide other applications with real-time information. The Webhooks API allows you to subscribe to events happening with your created objects (Invoices or Payouts) in Calypso. Rather than making an API call to check status of invoice or payout during processing, Calypso can send an HTTP request to an endpoint you configure.

  1. First of all, to receive information about Invoice state change you need to create a subscription for system events which you want to track.

There are several types of events which you need to track in order to understand what is happening to your Invoices.

The main events are:

We’ll look at more scenarios of using Webhooks in the following sections of this guide.

To create a subscription for those events you can use the Create Webhook Public API endpoint: POST https://api.calypso.finance/api/v1/subscription/webhook/create

Bash

You can subscribe to all types of events if you specify value “INVOICE” in the notificationServiceTypes field instead of enumeration all types of events in notificationEventTypes.

In the response you will get:

JSON

  1. After successful creation of subscription for Payment events and providing your client with Payment Widget link you can wait for your client to make payment.

Get data about specific Payment widget and related invoices

To receive information about earlier created Single Fiat Payment widget you can use Get Single Fiat payment widget By ID endpoint (POST https://api.calypso.finance/api/v1/payment-widget/single-fiat/find).

You can request widget by idempotencyKey.

Example of the request by id:

Bash

In response you will receive Payment widget data:

  • Response exampleJSON

The most important fields you need to pay attention to:

  • widgetState - represents status of the Payment widget. invoices - list of all invoices created by your client using this Payment widget.

You may also request information about every invoice in the list.

To receive information about earlier created Invoice you can use Get a Specific Invoice endpoint (POST https://api.calypso.finance/api/v1/invoice).

You can request invoice by idor idempotencyKey.

Example of the request by id:

Bash

In response you will receive invoice data:

  • Response exampleJSON

The most important fields you need to pay attention to:

  • totalDebitAmount - received amount of money to this invoice.

Successful Single Fiat invoice payment scenario

If client successfully paid the invoice you will receive webhook with type INVOICE_FUNDS_RECEIVED_FOR_INVOICE.

  • The example of webhook payload:JSON

You can understand that the invoice refers to Payment widget that you created earlier by looking at externalId value. It will be the same value that you have set earlier for Payment widget during its creation.

To get detailed information about invoice you can use Get a Specific Invoice endpoint (POST https://api.calypso.finance/api/v1/invoice) using idempotencyKey or parentExternalId (id in request).

You will see changes in the fields:

  • The value of state is PAID.

  • The value of totalDebitAmount is changed to received payment amount.

That means that the money was sent by client and it was successfully received to the invoice address (invoiceAddress field).

After receiving the correct amount of money to the invoice address in Calypso system the money will be automatically credited to the merchant balance.

You may also get detailed information about Payment widget. For that you can use Get Single Fiat payment widget By ID endpoint (POST https://api.calypso.finance/api/v1/payment-widget/single-fiat/find) using idempotencyKey of Payment widget in the request.

You will see changes in the fields:

  • The value of widgetState is COMPLETED

In this guide we consider how to embed to your web page.

Send API request to create invoice (API description: ):

link on image with QR-code where encoded invoiceAddress. You can use service or encode by yourself.

Before starting an integration please check our page for more info.

You can find the detailed description of all the parameters in the documentation:

You can set a specific custom ID to your Invoice by transmitting externalId field in request body. It’s possible to check the status of the invoice by this parameter after creation. Here, for example, you can pass a unique client ID and then use this method get them all. As well, externalId is returned in all types of events in webhooks, if it is set.

More info on Get a Specific Invoice endpoint:

More info on Get all Deposits for the Invoice endpoint:

More info on Get Deposit for the Invoice endpoint:

More detailed information about Calypso Webhooks functionality:

More info on Calypso Webhooks event types:

More info on Webhooks management in Calypso Payment system:

More details about the functions and design of the Payment Widget can be found .

Following this link you will be able to see and interact with a real payment widget - .

Before starting an integration please check our page for more info.

You can find the detailed description of all the parameters in the documentation:

Or you can check a real example of payment widget .

More detailed information about Calypso Webhooks functionality:

Event type
Description

More info on Calypso Webhooks event types:

More info on Webhooks management in Calypso Pay system:

More info on Get Single Fiat payment widget By ID endpoint:

More info on Get a Specific Invoice endpoint:

state - represents status of the invoice. More info about possible states in documentation:

Limited Invoice
How to create a Limited Fiat Invoice via API
New Single Fiat Invoice
Get started with API
New Unlimited Invoice
Get Invoices by External ID
Get a specific Invoice
Get all Deposits for the Invoice
Get Deposit for the Invoice
Webhooks
Types of events
Webhook API
here
click here
How to create limited fiat payment widget via API?
How to embed a payment widget on a web page?
Payment Widget
curl --location --request POST 'https://api.calypso.finance/api/v1/payment-widget/single-fiat/create' \
--header 'Key: <your_api_key>' \
--header 'Sign: <your_sign>' \
--header 'Content-Type: application/json' \
--data-raw '{
    "timestamp": 13292792792,
    "account": "0xc195df92dd9db2a8f28e597981f113d6e7582f8b",
    "payload": {
        "description": "Single Fiat Payment Widget example",
        "fiatAmount": 100,
        "fiatCurrency": "EUR",
        "cryptoCurrencies": [
          "BTC", "ETH"
        ],
        "idempotencyKey": "5743852b-c182-4b70-8475-2c714c98fdde",
        "externalId": "unique_id_111222333"
    }
}'
{
    "idempotencyKey": "5743852b-c182-4b70-8475-2c714c98fdde",
    "cryptoCurrencies": [
        "USDC"
    ],
    "widgetType": "SINGLE_FIAT",
    "widgetState": "IN_PROGRESS",
    "fiatCurrency": "EUR",
    "fiatAmount": 100,
    "description": "Single Fiat Payment Widget example",
    "externalId": "unique_id_111222333",
    "invoices": [],
    "createdDate": "2022-11-17T07:07:39.591444"
}

INVOICE_FUNDS_RECEIVED_FOR_INVOICE

The event shows if funds have been received to invoice wallet

curl --location --request POST 'https://api.calypso.finance/api/v1/subscription/webhook/create' \
--header 'Key: <your_api_key>' \
--header 'Sign: <your_sign>' \
--header 'Content-Type: application/json' \
--data-raw '{
  "timestamp": 13292792792,
  "account": "0xc195df92dd9db2a8f28e597981f113d6e7582f8b",
  "payload": {
    "notificationEventTypes": [
      "INVOICE_FUNDS_RECEIVED_FOR_INVOICE"
    ],
    "requestId": "bf9348b7-2c14-46d7-868c-b597852da319",
    "url": "Your App URL"
  }
}'
{
    "requestId": "bf9348b7-2c14-46d7-868c-b597852da319",
    "notificationEventTypes": [
      "INVOICE_FUNDS_RECEIVED_FOR_INVOICE"
    ],
    "url": "Your App URL",
    "createdDate": "2022-08-22T08:24:00.307535"
}
curl --location --request POST 'https://api.calypso.finance/api/v1/payment-widget/single-fiat/find' \
--header 'Key: <your_api_key>' \
--header 'Sign: <your_sign>' \
--header 'Content-Type: application/json' \
--data-raw '{
  "timestamp": 13292792792,
  "account": "0xc195df92dd9db2a8f28e597981f113d6e7582f8b",
  "payload": {
    "requestId": "daa596e4-623f-4a01-b47d-6159ffada299"
  }
}'
{
    "idempotencyKey": "daa596e4-623f-4a01-b47d-6159ffada299",
    "cryptoCurrencies": [
        "USDC"
    ],
    "widgetType": "SINGLE_FIAT",
    "widgetState": "IN_PROGRESS",
    "fiatCurrency": "EUR",
    "fiatAmount": 100,
    "description": "Single Fiat Payment Widget example",
    "externalId": "unique_id_111222333",
    "invoices": [
        {
            "invoiceId": "d9732536-acdd-41bd-87c3-ec40aeeb6a37",
            "cryptoCurrency": "USDC",
            "invoiceIdempotencyKey": "2b3ea2f9-a3c8-4cb6-a9cb-8c2e395cabe6",
            "invoiceExternalId": "unique_id_111222333"
        }
    ],
    "createdDate": "2022-11-17T07:07:39.593284"
}
curl --location --request POST 'https://api.calypso.finance/api/v1/invoice' \
--header 'Key: <your_api_key>' \
--header 'Sign: <your_sign>' \
--header 'Content-Type: application/json' \
--data-raw '{
  "timestamp": 13292792792,
  "account": "0xc195df92dd9db2a8f28e597981f113d6e7582f8b",
  "payload": {
    "id": "d9732536-acdd-41bd-87c3-ec40aeeb6a37"
  }
}'
{
    "id": "d9732536-acdd-41bd-87c3-ec40aeeb6a37",
    "invoiceAddress": "0xc7721217b3e919eeb618c5155df278da58521aef",
    "type": "SINGLE",
    "amount": 0.001,
    "fee": 0.000042026017236,
    "totalDebitAmount": 0,
    "currency": "ETH",
    "state": "PENDING_PAYMENT",
    "description": "invoice for client 1",
    "createdDate": "2022-08-25T12:47:28.200475",
    "idempotencyKey": "1be6a518-6dcd-477d-96af-dd914b1300ce",
    "expiration": "2022-09-24T12:47:28.171538",
    "invoicePayments": [],
    "isInterventionResolved": true,
    "subscriptionEnabled": false
}
{
  "requestId": "e505bbf7-0dcd-4097-b0c7-70372a5c68d3",
  "id": 20282,
  "createdDate": "2022-09-05T07:07:09.456422",
  "level": "SUCCESS",
  "service": "INVOICE",
  "eventType": "INVOICE_FUNDS_RECEIVED_FOR_INVOICE",
  "data": {
    "type": "INVOICE_FUNDS_RECEIVED_FOR_INVOICE",
    "amount": 125.81,
    "message": "invoice for client 1",
    "currency": "USDC",
    "externalId": "unique_id_111222333",
    "fiatAmount": {},
    "createdDate": "2022-09-05T07:03:52.984874",
    "description": "Single Fiat Payment widget example",
    "paymentDate": "2022-09-05T07:07:09.418771",
    "senderAddress": "0xf17366cf1aa135acfe6b2b91aacd3c95610fad12",
    "invoiceAddress": "0xg18966c0yaa175acfe6b2b89kbcd3c95610fad45",
    "idempotencyKey": "f24480cb-2e60-4f23-b585-169576370177",
    "transactionHash": "0x0ee4bfbac386849f63cab5f55c99f897ff2be8f13b732bc76c3c44bcfd82dfa2",
    "parentExternalId": "d9732536-acdd-41bd-87c3-ec40aeeb6a37"
  }
}
https://api.qrserver.com/v1/create-qr-code/?data={InvoiceAddress}&size=150x150
Get started with API
Create new Single Fiat Payment widget
here
Webhooks
Types of events
Webhook API
Get Single Fiat Payment widget by ID
Get a specific Invoice
Limited Invoice

Get balance information via API

Before creating payouts you will probably want to check whether you have enough funds on your wallets or not.

  • In the response you get the following data:JSON

    {
      "account": "string",
      "name": "string",
      "ownerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "balances": [
        {
          "currency": "BTC",
          "amount": 0
        }
      ]
    }

Information by currency is contained in balances field. Here you can find total available balance amount by currency currency.

Get balance information via API

Before you create an exchange, you may want to check if you have enough assets in your account.

  • In the response you get the following data:JSON

    {
      "account": "string",
      "name": "string",
      "ownerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "balances": [
        {
          "currency": "BTC",
          "amount": 0
        }
      ]
    }

Information by currency is contained in balances field. Here you can find total available balance amount by currency currency.

How to create a exchange

Create exchange

You can find the detailed description of all the parameters in the documentation:

Here we consider the most important ones:

  • account - Merchant account ID

  • payload - Request for exchange

    • sourceCurrency - You sell currency

    • destinationCurrency - You buy currency

    • amount - Amount of the selling asset.

So, to create an exchange without additional commands, you just need to send a request:

Request

curl --request POST \
     --url https://api.calypso.finance/api/v1/exchange/create \
     --header 'accept: */*' \
     --header 'content-type: application/json' \
     --data '
{
  "account": "string",
  "timestamp": 0,
  "payload": {
    "sourceCurrency": "string",
    "destinationCurrency": "string",
    "amount": 0
  }
}
'

If the creation was successful you receive the response:

Response 200

{
  "id": 0,
  "account": "string",
  "sourceCurrency": "string",
  "sourceAmount": 0,
  "destinationCurrency": "string",
  "destinationAmount": 0,
  "state": "IN_PROGRESS",
  "createdDate": "2024-08-22T10:48:54.980Z"
}

After that, you will be able to track the status changes until the exchange is completed using the method below.

Get exchange

Here we consider the most important ones:

  • account - Merchant account ID

  • timestamp - Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

  • payload - Request for exchange

    • id - Exchange ID

To get information about the exchange, you need to send a request:

Request

curl --request POST \
     --url https://api.calypso.finance/api/v1/exchange/get \
     --header 'accept: */*' \
     --header 'content-type: application/json' \
     --data '
{
  "account": "string",
  "timestamp": 0,
  "payload": {
    "id": 0
  }
}
'

You receive the response with exchange data and state:

IN PROGRESSCOMPLETEDFAILED

{
  "id": 0,
  "account": "string",
  "sourceCurrency": "string",
  "sourceAmount": 0,
  "destinationCurrency": "string",
  "destinationAmount": 0,
  "state": "IN_PROGRESS",
  "createdDate": "2024-08-22T10:48:54.980Z"
}

You need to check the exchange details until you get the final exchange status.

How to embed a payment widget on a web page

Introduction

There are two options you can use in Calypso to embed on your web page:

  1. Payment widget - if you want to provide possibility to pay by several crypto currencies.

  2. Payment link - if you want to provide possibility to pay by particular crypto currency.

First of all you need to create a payment widget or payment link.

How to create payment widget?

To create a new Payment widget use the following endpoint: Create new Single Fiat payment widget (POST https://api.calypso.finance/api/v1/payment-widget/single-fiat/create)

Here we describe the most important ones.

  • fiatAmount - the amount of fiat money merchant wants to receive for a product/service.

  • fiatCurrency - the fiat currency of future payment. The pay amount in crypto recalculates every 15 minutes after the invoice creation according to this value.

  • description - the description of product/service.

  • cryptoCurrencies - the list of available for payment crypto currencies.

  • idempotencyKey - a specific UUID for the Payment widget link which guarantees uniqueness of the request. It forms the link via client can access the payment widget.

  • externalId - the unique custom ID for your Payment widget and all the future invoices created from it. It allows you to check the status of payment by this parameter after creation.

So to create a payment widget without additional options you just have to send request:

Bash

curl --location --request POST 'https://api.calypso.finance/api/v1/payment-widget/single-fiat/create' \
--header 'Key: <your_api_key>' \
--header 'Sign: <your_sign>' \
--header 'Content-Type: application/json' \
--data-raw '{
    "timestamp": 13292792792,
    "account": "0xc195df92dd9db2a8f28e597981f113d6e7582f8b",
    "payload": {
        "description": "Single Fiat Payment Widget example",
        "fiatAmount": 100,
        "fiatCurrency": "EUR",
        "cryptoCurrencies": [
          "BTC", "ETH"
        ],
        "idempotencyKey": "5743852b-c182-4b70-8475-2c714c98fdde",
        "externalId": "unique_id_111222333"
    }
}'

You can customize interface of your Payment widget by transmitting returnUrl, supportUrl and logoUrl fields.

If the creation was successful you will receive the response:

  • Response example

    JSON

    {
        "idempotencyKey": "5743852b-c182-4b70-8475-2c714c98fdde",
        "cryptoCurrencies": [
            "USDC"
        ],
        "widgetType": "SINGLE_FIAT",
        "widgetState": "IN_PROGRESS",
        "fiatCurrency": "EUR",
        "fiatAmount": 100,
        "description": "Single Fiat Payment Widget example",
        "externalId": "unique_id_111222333",
        "invoices": [],
        "createdDate": "2022-11-17T07:07:39.591444"
    }
    

Now after you’ve successfully created a Payment widget you can build a link for payment. Link format: https://pay.calypso.finance/pay?widgetKey={idempotencyKey}.

Payment widget view:

How to create payment link?

Here we will consider the simplest example - single payment where the price defined in crypto currency.

To create a payment link you need to create Invoice using the following endpoint: New Invoice (POST https://api.calypso.finance/api/v1/invoice/create)

Here we consider the most important ones.

  • amount - the amount of money merchant want to receive for a product/service.

  • currency - the crypto currency of payment.

  • description - the description of product/service.

  • idempotencyKey - a specific UUID for the payment link which guarantees uniqueness of the request. It’s possible to check the status of the invoice by this parameter after creation.

  • type - the type of invoice. As we want to create invoice for one fixed payment, we put here “SINGLE”.

So to create invoice without additional options you just have to send request:

Bash

curl --location --request POST 'https://api.calypso.finance/api/v1/invoice/single/create>' \\
--header 'Key: <your_api_key>' \\
--header 'Sign: <your_sign>' \\
--header 'Content-Type: application/json' \\
--data-raw '{
  "timestamp": 13292792792,
  "account": "0xc195df92dd9db2a8f28e597981f113d6e7582f8b",
  "payload": {
    "amount": 0.001,
    "currency": "ETH",
    "description": "invoice for client 1",
    "idempotencyKey": "1be6a518-6dcd-477d-96af-dd914b1300ce",
    "type": "SINGLE"
  }
}'

If the creation was successful you receive the response:

  • Response example

    JSON

    {
        "id": "d9732536-acdd-41bd-87c3-ec40aeeb6a37",
        "invoiceAddress": "0xc7721217b3e919eeb618c5155df278da58521aef",
        "type": "SINGLE",
        "amount": 0.001,
        "fee": 0.000042026017236
        "totalDebitAmount": 0,
        "currency": "ETH",
        "state": "PENDING_PAYMENT",
        "description": "invoice for client 1",
        "createdDate": "2022-08-25T12:47:28.200475",
        "idempotencyKey": "1be6a518-6dcd-477d-96af-dd914b1300ce",
        "expiration": "2022-09-24T12:47:28.171538",
        "isInterventionResolved": true,
        "subscriptionEnabled": false
    }
    

To complete the payment the client must pay the amount of money from payAmount field to address specified in invoiceAddress field.

Now after you’ve successfully created an invoice you can build a link for payment. Link format: https://pay.calypso.finance/invoice/{idempotencyKey}

Invoice Payment link view:

How embed payment widget / link on a web page using IFrame?

In order to embed payment widget or payment link on your web page you can use html tag <iframe>.

The <iframe> tag specifies an inline frame. An inline frame is used to embed another document within the current HTML document.

Just add this code to your web page replacing url in src attribute by url created by yourself:

HTML

<iframe src="https://pay.calypso.finance/invoice/{idempotencyKey}" width="800" height="800" style="border: none;"></iframe>

Full html code example:

HTML

<html>
<head>
    <title>Pyament button</title>
</head>
<body style="background-color: grey">
<iframe src="https://pay.calypso.finance/invoice/{idempotencyKey}" width="800" height="800" style="border: none;"></iframe>  
</body>

</html>

Specifying attributes width and height you can adjust size of the widget on your page.

Here is the example with attributes width="800" height="800":

Here is the example with attributes width="370" height="600":

You also can customize your widget by specifying logoUrl, supportUrl and returnUrl parameters during creating payment widget or invoice:

How to create unlimited payment widget

General API integration rules

Unlimited Linked Payment widget API integration

To accept an unlimited amount of payments for a product with customer-defined price you can use Unlimited Linked Payment Widget. It allows your client to choose the crypto currency he wants to pay you with.

After choosing the crypto currency the invoice will be automatically created for your client to pay.

Your client may also return back to Payment widget and choose another crypto currency to pay you with.

Creating an Unlimited Linked Payment widget

To create a new Unlimited Linked Payment widget use the following endpoint: Create new Unlimited Linked payment widget (POST https://api.calypso.finance/api/v1/payment-widget/unlimited-linked/create)

Here we describe the most important ones.

  • cryptoCurrencies - the list of available for payment crypto currencies.

  • description - the description of product/service.

  • idempotencyKey - a specific UUID for the Payment widget link which guarantees uniqueness of the request. It forms the link via client can access the payment widget.

  • externalId - the unique custom ID to your Payment widget and all the future invoices created from it. It allows you to check the status of payment by this parameter after creation.

So to create a Payment widget without additional options you just have to send request:

Bash

curl --location --request POST 'https://api.calypso.finance/api/v1/pub/payment-widget/unlimited-linked/create' \
--header 'Key: <your_api_key>' \
--header 'Sign: <your_sign>' \
--header 'Content-Type: application/json' \
--data-raw '{
  "timestamp": 13292792792,
  "account": "0xc195df92dd9db2a8f28e597981f113d6e7582f8b",
  "payload": {
    "cryptoCurrencies": [
      "MATIC",
      "FRAX",
      "USDT",
      "USDT_TRX",
      "ETH",
      "BTC"
    ],
    "description": "Unlimited Linked Payment widget example",
    "idempotencyKey": "5743852b-c182-4b70-8475-2c714c98fdde",
    "externalId": "unique_id_12345"
  }
}'

Some additional options:

  • You can customize interface of your Payment widget by transmitting return_url, support_url and logo_url fields.

  • By default the transaction fee for transferring the received money from the invoice address (created by Payment widget) to the merchant’s wallet is debited from merchant’s Hot Wallet address. If you want to use Calypso liquidity for paying the transaction fee you may transmit the value “true” to the parameter useLiquidity.

If the creation was successful you would receive the response:

  • Response exampleJSON

    {
        "idempotencyKey": "5743852b-c182-4b70-8475-2c714c98fdde",
        "cryptoCurrencies": [
            "BTC",
            "ETH",
            "MATIC",
            "USDT_TRX",
            "USDT",
            "FRAX"
        ],
        "description": "Unlimited Linked Payment widget example",
        "widgetType": "UNLIMITED_LINKED",
        "widgetState": "IN_PROGRESS",
        "externalId": "unique_id_12345",
        "invoices": [],
        "createdDate": "2022-11-17T07:36:14.303687"
    }

Now after you’ve successfully created Payment widget you can send link for payment to your client. Link format: https://pay.calypso.finance/pay?widgetKey={idempotencyKey}

Payment widget link view:

Tracking payment state

After creating Unlimited Linked Payment widget you can receive information about it from the system.

  • The best way to do it is by tracking changes in invoices (created from your Payment widget) via Webhooks.

  • Another way is by manually requesting information about Payment widget and its invoices using API

Receive information about your payments via Webhooks

After creating Unlimited Linked Payment widget you can receive information about it from the system. The best way to do it is by tracking changes in invoices (created from your Payment widget) via Webhooks.

As we mentioned earlier Payment widget automatically creates an invoice after your user chooses the currency he wants to pay with. So by tracking the state of created Invoice you can track the state of your payment.

To track the state of your created Invoice you can use Calypso Pay functionality which is called Webhooks.

Webhook is a way for an app to provide other applications with real-time information. The Webhooks API allows you to subscribe to events happening with your created objects (Invoices or Payouts) in Calypso. Rather than making an API call to check status of invoice or payout during processing, Calypso can send an HTTP request to an endpoint you configure.

  1. First of all, to receive information about Invoice state change you need to create a subscription for system events which you want to track.

There are several types of events which you need to track in order to understand what is happening to your Invoices.

The main events are:

Event type
Description

INVOICE_FUNDS_RECEIVED_FOR_INVOICE

The event shows if funds have been received to invoice wallet

We’ll look at more scenarios of using Webhooks in following sections of this guide.

To create a subscription for those events you can use the Create Webhook Public API endpoint: POST https://api.calypso.finance/api/v1/subscription/webhook/create

Bash

curl --location --request POST 'https://api.calypso.finance/api/v1/subscription/webhook/create' \
--header 'Key: <your_api_key>' \
--header 'Sign: <your_sign>' \
--header 'Content-Type: application/json' \
--data-raw '{
  "timestamp": 13292792792,
  "account": "0xc195df92dd9db2a8f28e597981f113d6e7582f8b",
  "payload": {
    "notificationEventTypes": [
      "INVOICE_FUNDS_RECEIVED_FOR_INVOICE"
    ],
    "requestId": "bf9348b7-2c14-46d7-868c-b597852da319",
    "url": "Your App URL"
  }
}'

You can subscribe to all types of events if you specify value “INVOICE” in the notificationServiceTypes field instead of enumeration all types of events in notificationEventTypes.

In the response you will get:

JSON

{
    "requestId": "bf9348b7-2c14-46d7-868c-b597852da319",
    "notificationEventTypes": [
      "INVOICE_FUNDS_RECEIVED_FOR_INVOICE"
    ],
    "url": "Your App URL",
    "createdDate": "2022-08-22T08:24:00.307535"
}
  1. After successful creation of subscription for Payment events and providing your client with Payment Widget link you can wait for your client to make payment.

Get data about specific Payment widget and related invoices

To receive information about earlier created Unlimited Linked Payment widget you can use Get Unlimited Linked payment widget By ID endpoint (POST https://api.calypso.finance/api/v1/payment-widget/unlimited-linked/find)

You can request widget by idempotencyKey.

Example of the request by id:

Bash

curl --location --request POST 'https://api.calypso.finance/api/v1/payment-widget/unlimited-linked/find' \
--header 'Key: <your_api_key>' \
--header 'Sign: <your_sign>' \
--header 'Content-Type: application/json' \
--data-raw '{
  "timestamp": 13292792792,
  "account": "0xc195df92dd9db2a8f28e597981f113d6e7582f8b",
  "payload": {
    "requestId": "5743852b-c182-4b70-8475-2c714c98fdde"
  }
}'

In response you will receive Payment widget data:

  • Response exampleJSON

    {
        "idempotencyKey": "5743852b-c182-4b70-8475-2c714c98fdde",
        "cryptoCurrencies": [
            "BTC",
            "ETH",
            "MATIC",
            "USDT_TRX",
            "USDT",
            "FRAX"
        ],
        "description": "Unlimited Linked Payment widget example",
        "widgetType": "UNLIMITED_LINKED",
        "widgetState": "IN_PROGRESS",
        "externalId": "unique_id_12345",
        "invoices": [
            {
                "invoiceId": "d9732536-acdd-41bd-87c3-ec40aeeb6a37",
                "cryptoCurrency": "USDT",
                "invoiceIdempotencyKey": "79fe57a4-0fd6-4346-abcb-98b9969c2409",
                "invoiceExternalId": "unique_id_12345"
            }
        ],
        "createdDate": "2022-11-17T07:36:14.304911"
    }

The most important fields you need to pay attention to:

  • invoices - list of all invoices created by your client using this Payment widget.

You may also request information about every invoice in the list.

To receive information about earlier created Invoice you can use Get a Specific Invoice endpoint (POST https://api.calypso.finance/api/v1/invoice).

You can request invoice by idor idempotencyKey.

Example of the request by id:

Bash

curl --location --request POST 'https://api.calypso.finance/api/v1/invoice' \
--header 'Key: <your_api_key>' \
--header 'Sign: <your_sign>' \
--header 'Content-Type: application/json' \
--data-raw '{
  "timestamp": 13292792792,
  "account": "0xc195df92dd9db2a8f28e597981f113d6e7582f8b",
  "payload": {
    "id": "d9732536-acdd-41bd-87c3-ec40aeeb6a37"
  }
}'

In response you will receive invoice data:

  • Response exampleJSON

    {
        "id": "d9732536-acdd-41bd-87c3-ec40aeeb6a37",
        "invoiceAddress": "0x1a8201e316e5012cf3608c65b6f9d428ca4544ef",
        "type": "UNLIMITED",
        "totalDebitAmount": 0,
        "currency": "ETH",
        "state": "PENDING_PAYMENT",
        "description": "test1",
        "createdDate": "2022-09-01T16:19:54.350408",
        "idempotencyKey": "4d1d24ba-da67-4324-ba3f-f33b6354ba39",
        "isInterventionResolved": true,
        "subscriptionEnabled": false
    }

The most important fields you need to pay attention to are:

  • totalDebitAmount - total received amount of money to this invoice.

Successful Unlimited Linked invoice payment scenario

If client successfully paid the invoice you will receive webhook with type INVOICE_FUNDS_RECEIVED_FOR_INVOICE.

  • The example of webhook payload:JSON

    {
      "requestId": "e505bbf7-0dcd-4097-b0c7-70372a5c68d3",
      "id": 20294,
      "createdDate": "2022-09-05T07:39:18.929518",
      "level": "SUCCESS",
      "service": "INVOICE",
      "eventType": "INVOICE_FUNDS_RECEIVED_FOR_INVOICE",
      "data": {
        "type": "INVOICE_FUNDS_RECEIVED_FOR_INVOICE",
        "amount": 0.01,
        "message": "unlimited invoice for client 2",
        "currency": "ETH",
        "externalId": "unique_id_12345",
        "fiatAmount": {},
        "createdDate": "2022-09-05T07:14:43.673181",
        "description": "Unlimited Linked Payment widget example",
        "paymentDate": "2022-09-05T07:39:18.904215",
        "senderAddress": "0xf17366cf1aa135acfe6b2b91aacd3c95610fad12",
        "invoiceAddress": "0xg18966c0yaa175acfe6b2b89kbcd3c95610fad45",
        "idempotencyKey": "9a995722-6dc1-4536-9d0a-8965914b45d3",
        "transactionHash": "0x9c1dda28b45d61d74015166fb7ec0e728f02824917ab3697402e65edb7af44ff",
        "parentExternalId": "d9732536-acdd-41bd-87c3-ec40aeeb6a37"
      }
    }

You can understand that the invoice refers to Payment widget that you created earlier by looking at externalId value. It will be the same value that you have set earlier for Payment widget during its creation.

To get detailed information about invoice you can use Get a Specific Invoice endpoint (POST https://api.calypso.finance/api/v1/invoice) using idempotencyKey, externalId or parentExternalId (id in request).

You will see changes in the fields:

  • The value of totalDebitAmount is changed to received payment amount.

That means that the money were sent by client and they were received to invoice wallet address (invoiceAddress field).

After receiving money to invoice wallet address received money amount will be credited to the balance.

How to create a single payout via API

General API integration rules

Before starting an integration please check our General API integration rules page for more info.

Get balance information via API

Before creating payouts you will probably want to check whether you have enough funds on your wallets or not. To do this please check our Get balance information via API page for more info.

Single payout API integration

Single Payout is a single payment of a reward, dividend, insurance compensation, etc. (i.e. you may need to pay dividends to partners).

To send single payment with fixed amount in cryptocurrency you can use single payout functionality. To make a payment you just need to know receiver address and specify amount and currency of payment.

Create single payout

To create a new single payout use the following endpoint: New Payout (POST https://api.calypso.finance/api/v1/payout/create)

You can find the detailed description of all the parameters in the documentation:

Here we consider the most important ones.

  • depositAddress - address of the receiver of payment. Pay attention to specify address in the correct blockchain network.

  • amount - amount of the payment.

  • currency - the crypto currency of payment. Calypso supports the following currencies:

    • Bitcoin blockchain: BTC

    • Ethereum blockchain: ETH, USDT, FRAX, BUSD_ETH, USDC, DAI

    • Tron blockchain: TRX, USDT_TRX

    • Binance Smart Chain blockchain: BNB, BUSD

    • Polygon blockchain: MATIC, USDT_MATIC

    • Doge blockchain: XDG

  • comment - some information about payment.

  • idempotencyKey - a specific UUID for the payout which guarantees uniqueness of the request. It’s possible to check the status of the payout by this parameter after creation.

So to create payout without additional options you just have to send request:

Bash

curl --location --request POST 'https://api.calypso.finance/api/v1/pub/payout/create' \
--header 'key: <your_api_key>' \
--header 'sign: <your_sign>' \
--header 'Content-Type: application/json' \
--data-raw '{
  "timestamp": 13292792792,
  "account": "0xc195df92dd9db2a8f28e597981f113d6e7582f8b",
  "payload": {
    "depositAddress": "0xf127e5B7666F51aA346f374213113298014F5969",
    "amount": 10,
    "currency": "USDT",
    "comment": "payout for the client 1",
    "idempotencyKey": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
  }
}'

Some additional options:

  • You can set time of the payout processing by transmitting executionDate field in request body. The payout will be sent on specified date and time.

If the creation was successful you receive the response:

  • Response exampleJSON

    {
      "id": "b5d7778c-6cf2-43fa-86eb-c5efbb89cb0a",
      "account": "0xc195df92dd9db2a8f28e597981f113d6e7582f8b",
      "depositAddress": "0xf127e5B7666F51aA346f374213113298014F5969",
      "amount": 10,
      "currency": "USDT",
      "calypsoFee": 1,
      "calypsoFeePercentage": 10,
      "state": "CONFIRMED",
      "createdDate": "2023-02-21T14:54:48.946Z",
      "transactionHash": "0x55d5eacb1051ff00847093f9a693dec957b87f8f3ce7bf2b45ae6a449c63e66b",
      "comment": "payout for the client 1",
      "idempotencyKey": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
    }

After that you can track state changes until payout will be completed.

Tracking payout state

After creating payout you can receive information about it from the system. There are two options to track changes in payout state:

  1. Get payout data via request by ID.

  2. Set webhooks for payouts.

Get data about specific payout

To receive information about earlier created payout you can use Get Specific Payout endpoint (POST https://api.calypso.finance/api/v1/payout).

You can request payout by id or idempotencyKey.

Example of the request by id:

JSON

curl --silent --location --request POST "https://api.calypso.finance/api/v1/payout" \
--header 'Key: <your_api_key>' \
--header 'Sign: <your_sign>' \
--header "Content-Type: application/json" \
--data-raw "{
  "timestamp": 13292792792,
  "account": "0xc195df92dd9db2a8f28e597981f113d6e7582f8b",
  "payload": {
    "id": "b5d7778c-6cf2-43fa-86eb-c5efbb89cb0a"
  }
}"

In response you will receive payout data:

  • Response exampleJSON

    {
      "id": "b5d7778c-6cf2-43fa-86eb-c5efbb89cb0a",
      "account": "0xc195df92dd9db2a8f28e597981f113d6e7582f8b",
      "depositAddress": "0xf127e5B7666F51aA346f374213113298014F5969",
      "amount": 10,
      "currency": "USDT",
      "calypsoFee": 1,
      "calypsoFeePercentage": 10,
      "state": "CONFIRMED",
      "createdDate": "2023-02-21T14:54:48.946Z",
      "transactionHash": "0x55d5eacb1051ff00847093f9a693dec957b87f8f3ce7bf2b45ae6a449c63e66b",
      "comment": "payout for the client 1",
      "idempotencyKey": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
    }

The most important fields you need to pay attention to:

  • calypsoFee - service fee you paid for payout.

Receive information about payout state via Webhooks

To track state of your created Payout you can use Calypso Payment functionality which is called Webhooks.

Webhook is a way for an app to provide other applications with real-time information. The Webhooks API allows you to subscribe to events happening with your created objects (Invoices or Payouts) in Calypso. Rather than making an API call to check status of invoice or payout during processing, Calypso can send an HTTP request to an endpoint you configure.

  1. First of all, to receive information about Payout state change you need to create a subscription for system events which you want to track.

There are several types of events which you need to track in order to understand what is happening to your Invoices.

The main events are:

Event type
Description

PAYOUT_CHANGE_STATUS

Payout has changed state to In Progress, Canceled, Failed or Completed

PAYOUT_VALIDATION_ERROR

Validation error has been occurred during payout processing

We’ll look at more scenarios of using Webhooks in following sections.

To create a subscription for those events you can use the Create Webhook Public API endpoint: POST https://api.calypso.finance/api/v1/subscription/webhook/create

Bash

curl --location --request POST 'https://api.calypso.finance/api/v1/subscription/webhook/create' \
--header 'Key: <your_api_key>' \
--header 'Sign: <your_sign>' \
--header 'Content-Type: application/json' \
--data-raw '{
  "timestamp": 13292792792,
  "account": "0xc195df92dd9db2a8f28e597981f113d6e7582f8b",
  "payload": {
    "notificationEventTypes": [
      "PAYOUT_CHANGE_STATUS",
			"PAYOUT_VALIDATION_ERROR"
    ],
    "requestId": "bf9348b7-2c14-46d7-868c-b597852da319",
    "url": "Your App URL"
  }
}'

You can subscribe to all types of events if you specify value “PAYOUT” in the notificationServiceTypes field instead of enumeration all types of events in notificationEventTypes.

In the response you will get:

JSON

{
    "requestId": "bf9348b7-2c14-46d7-868c-b597852da319",
    "notificationEventTypes": [
      "PAYOUT_CHANGE_STATUS",
			"PAYOUT_VALIDATION_ERROR"
    ],
    "url": "Your App URL",
    "createdDate": "2022-08-22T08:24:00.307535"
}
  1. After successful creation of subscription for payout state changes you should wait while the payout is processing.

Successful Payout scenario

If payout was successfully processed you will receive webhook with type PAYOUT_CHANGE_STATUS where the field payoutStatus will be COMPLETED.

  • The example of webhook payload:JSON

    {
      "requestId": "bf9348b7-2c14-46d7-868c-b597852da319",
    	"id":74146,
    	"createdDate":"2022-10-10T11:54:52.191723",
    	"level":"SUCCESS",
    	"service":"PAYOUT",
    	"data": {
    			"hash":"0x3b4420311222002ec01631d2623d7a710494048402cd17e5c0338468d5ed3dae",
    			"type":"PAYOUT_CHANGE_STATUS",
    			"currency":"ETH",
    			"createdDate":"2022-10-06T15:54:23.925926",
    			"payoutStatus":"COMPLETED",
    			"idempotencyKey":"e318f10d-d470-4605-898f-680be65a5380",
    			"parentExternalId":"b5d7778c-6cf2-43fa-86eb-c5efbb89cb0a"
    	}
    }

To get detailed information about payout you can use Get Specific Payout endpoint (POST https://api.calypso.finance/api/v1/payout) using idempotencyKey or parentExternalId (id in request).

The value of the field state will be changed to COMPLETED.

Negative Payout scenario

If payout was finished due to the error you will receive webhook with type PAYOUT_CHANGE_STATUS where the field payoutStatus will be FAILED.

  • The example of webhook payload:JSON

    {
      "requestId": "bf9348b7-2c14-46d7-868c-b597852da319",
    	"id":74146,
    	"createdDate":"2022-10-10T11:54:52.191723",
    	"level":"WARNING",
    	"service":"PAYOUT",
    	"data": {
    			"hash":null,
    			"type":"PAYOUT_CHANGE_STATUS",
    			"currency":"ETH",
    			"createdDate":"2022-10-06T15:54:23.925926",
    			"payoutStatus":"FAILED",
    			"idempotencyKey":"e318f10d-d470-4605-898f-680be65a5380",
    			"parentExternalId":"b5d7778c-6cf2-43fa-86eb-c5efbb89cb0a"
    	}
    }

To get detailed information about payout you can use Get Specific Payout endpoint (POST https://api.calypso.finance/api/v1/pub/payout) using idempotencyKey or parentExternalId (id in request).

The value of the field state will be changed to FAILED.

This state means that the error occurred on the side of Calypso system. You should resend this payout or ask our technical support about the problem.

Invoices

Process description

To transfer funds for provided products/services to a merchant account, an invoice must be paid.

To make a payment from the Calypso payment form, there are the following steps to be performed:

  • Send API request to create an invoice (POST https://api.calypso.finance/api/v1/invoice/single/create)

  • Copy generated invoice ID from the response

  • Send API request POST https://api.calypso.finance/api/v1/invoice and copy the data required for a user to complete this invoice payment

  • Add copied data to a payment page and share a page link with a user

Further steps to complete payment are performed by a user in the payment form.

Below is a scheme demonstrating the listed steps.

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

Create invoice request example

Example of the create invoice request:

Invoice statuses

Diagram nodes indicate invoice statuses, arrows indicate processes a successful completion of which transfers an invoice from one status to another.

Invoice statuses

For this purpose you can use the following endpoint: (POST https://api.calypso.finance/api/v1/account)

For this purpose you can use the following endpoint: (POST https://api.calypso.finance/api/v1/account)

To create a new exchange use the following endpoint:

To get the current status of the exchange use the following endpoint:

You can find the detailed description of all the parameters in the documentation:

Before starting an integration please check our page for more info.

You can find more information about other features of Public API integration in our documentation:

You can find the detailed description of all the parameters in the documentation:

More detailed information about Calypso Webhooks functionality:

More info on Calypso Webhooks event types:

More info on Webhooks management in Calypso Pay system:

More info on Get Unlimited Linked payment widget By ID endpoint:

More info on Get a Specific Invoice endpoint:

You can find more information about other features of Public API integration in our documentation:

More info on Get Specific Payout endpoint:

state - represents status of the payout. More info about possible states in documentation:

More detailed information about Calypso Webhooks functionality:

More info on Calypso Webhooks event types:

More info on Webhooks management in Calypso Pay system:

Status
Description
Get the account
Get the account
POST | Create exchange
POST | Get exchange
Create new Single Fiat Payment widget
Get started with API
Payment Widget API
Create new Unlimited Linked payment widget
Webhooks
Types of events
Webhook API
Get Unlimited Linked Payment widget by ID
Get a specific Invoice
Single Payout
New Payout
Get specific Payout
Single Payout
Webhooks
Types of events
Webhook API
{
  "timestamp": 13292792792,
  "account": "0xc195df92dd9db2a8f28e597981f113d6e7582f8b",
  "payload": {
    "amount": 0.001,
    "currency": "ETH",
    "description": "invoice for client 1",
    "idempotencyKey": "1be6a518-6dcd-477d-96af-dd914b1300ce",
    "type": "SINGLE"
  }
}

PENDING_PAYMENT

• A new unpaid invoice. • Client has transferred funds, but the funds has not yet been credited to the account.

MEM_POOL_FOUND

Incoming transaction to invoice wallet is found in blockchain mempool.

PAID

Invoice is paid.

PENDING_INTERVENTION

• Intervention from the merchant is awaited. • Client transferred insufficient amount. • Client has transferred an amount exceeding an invoice amount. • Funds were transferred from different client accounts.

COMPLETED

Funds are transferd to merchant wallet.

ARCHIVED

Invoice is deleted by merchant.

EXCHANGE

Onramp widget

The Onramp Widget allows end-users to pay in fiat, while the merchant receives the funds in cryptocurrency directly into their Calypso account. It is designed for easy integration into the merchant's website or product, enabling payments via cards and other supported methods.

To view the widget you can click on the field below and in a new page you will see an onramp widget with test data.

Process description

To open the fiat widget, initiate a payment for your user, and get payment details, you need to follow these steps:

1
2

The received widget key must be passed with other required parameters in the widget URL

3

After opening the widget, the user initiates a payment and you will receive the following webhooks depending on the payment status:

  • If the payment is successfully completed - FIAT_DEPOSIT_FIAT_FUNDS_RECEIVED

  • If the payment was completed with an error - FIAT_DEPOSIT_ORDER_FAILED

  • If the order has not received payment and has expired - FIAT_DEPOSIT_ORDER_EXPIRED

Sequence

Request and URL examples

Request:

Body parameters
Type
Field
Description

account

string

required

Merchant account ID. Request will be sent for this account

timestamp

integer

required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

{
  "account": "text",
  "timestamp": 1
}

Response 200 OK:

{
  "key": "123e4567-e89b-12d3-a456-426614174000",
  "expiredAt": "2025-06-01T12:27:40.527Z"
}

The widget URL

Parameters:

Parameter
Description
Field

account

Merchant account identifier in Calypso

required

widgetKey

A unique identifier received by the merchant via the API to launch the widget.

required

currency

Cryptocurrency in which the merchant wants to receive funds

required

merchantExternalId

External ID from the merchant system (e.g. userId or orderId)

optional

amount

Crypto amount

optional

returnUrl

Link to the page to which the user is redirected after completing the payment

required

description

Comment to order

required

Widget url example:


https://pay.calypso.finance/onramp?account=0xf54aa3ec1f12a4eb3c8bf565078b371f3736f434&widgetKey=509ca990-8a94-45d5-858a-0971a1b7e2e9currency=USDT&merchantExternalId=dee72a7a-0e6d-4e7d-baf0-e7bf02a895d0&returnUrl=https://bestbeting.com&description=order12345

Request:

Body parameters
Type
Field
Description

account

string

required

Merchant account ID. Request will be sent for this account

timestamp

integer

required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

id

string

required

Unique order identifier received after creation

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "id": "123e4567-e89b-12d3-a456-426614174000"
  }
}

Response 200 OK:

{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "cryptoAmount": 1,
  "fiatAmount": 1,
  "fiatCurrency": "ARS",
  "currency": "text",
  "state": "CREATED"
}

Fiat order statuses

CREATED

Fiat order successfully created

IN_PROGRESS

Fiat order in process

PAID

Fiat order successfully paid

COMPLETED

Funds after fiat order payment are transferred to your company account

FAILED

Fiat order payment failed

EXPIRED

Fiat order payment not completed and order expired

User Flow:

1. Select payment currency.

The cryptocurrency in which the merchant will receive funds is passed in the currency parameter.

2. Enter amount.

  • The merchant specifies the amount of cryptocurrency equivalent that the user must pay using one of the fiat payment methods.

    • To do this, the merchant passes the amount in the amount parameter in the widget URL.

      • If the entered amount is within the limits, the user will be able to proceed further to pay.

      • If the entered amount is outside the limits, the user will receive an error about the incorrect amount and will need to open a new widget with the correct amount.

  • The merchant does not indicate the amount in the URL.

    • The user enters the amount in cryptocurrency or fiat equivalent, within the established limits for each payment method, and goes to the payment page.

Example of a correctly entered amount:

Example of an entered amount exceeding the limit:

3. Choose a payment method.

The user selects a preferred payment method (e.g., card, Apple Pay, etc.).

4.Confirm and pay.

After confirming, the user completes the payment, and the crypto is automatically credited to the merchant's Calypso account.

Example of confirmation page before payment:

Callback Description

Webhooks

  • Webhook FIAT_DEPOSIT_FIAT_FUNDS_RECEIVED

cryptoAmount

string

The amount in cryptocurrency of this order

fiatCurrency

string

Fiat currency of this order

fiatAmount

string

The amount in fiat of this order

orderId

string

Unique order identifier

externalId

string

External order identifier (specified by the merchant)

parentExternalId

number

System id of the order

idempotencyKey

string

The external id that was generated while fiat order creating through api.

currency

string

Crypto currency of this order

type

string

Event type

  • Webhook FIAT_DEPOSIT_ORDER_FAILED

orderId

string

Unique order identifier

externalId

string

External order identifier (specified by the merchant)

parentExternalId

number

System id of the order

idempotencyKey

string

The external id that was generated while fiat order creating through api.

currency

string

Crypto currency of this order

type

string

Event type

reason

string

Reason for fiat order payment failed

  • Webhook FIAT_DEPOSIT_ORDER_EXPIRED

orderId

string

Unique order identifier

externalId

string

External order identifier (specified by the merchant)

parentExternalId

number

System id of the order

idempotencyKey

string

The external id that was generated while fiat order creating through api.

currency

string

Crypto currency of this order

type

string

Event type

Customer wallets

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.

How to create a mass payout via API

General API integration rules

Before starting an integration please check our General API integration rules page for more info.

Get balance information via API

Before creating payouts you will probably want to check whether you have enough funds on your wallets or not. To do this please check our Get balance information via API page for more info.

Mass payout API integration

Mass Payout is a method of paying multiple recipients simultaneously. Since mass payouts are submitted online, they are processed instantly which helps organizations to save time, money and resources.

To send many payments with fixed amount in cryptocurrency you can use mass payout functionality. To make payments you just need to know receiver addresses and specify amount and currency of payments.

Mass payouts are profitable if you are going to send more than 5 payments. Otherwise, use single payouts, it will be cheaper.

Currently, there is a limit for quantity of transactions in one mass payout:

1000 transactions for ETH and tokens ERC-20; 100 transactions for other currencies.

Payment sent by mass payout must be sent from one address in one currency but can has any amount of receiver addresses.

Create mass payout

To create a new mass payout use the following endpoint: New Mass Payout (POST https://api.calypso.finance/api/v1/payout/mass/create).

You can find the detailed description of all the parameters in the documentation:

Here we consider the most important ones.

  • currency - the crypto currency of payment. Calypso supports the following currencies:

    • Bitcoin blockchain: BTC

    • Ethereum blockchain: ETH, USDT, FRAX, BUSD_ETH, USDC, DAI

    • Tron blockchain: TRX, USDT_TRX

    • Binance Smart Chain blockchain: BNB, BUSD

    • Polygon blockchain: MATIC, USDT_MATIC

    • Doge blockchain: XDG

  • name - the name of payment.

  • comment - some information about payment.

  • idempotencyKey - a specific UUID for the payout which guarantees uniqueness of the request. It’s possible to check the status of the payout by this parameter after creation.

  • massAddresses - object with data for each payment.

    • depositAddress - address of the receiver of payment. Pay attention to specify address in the correct blockchain network.

    • amount - amount of the payment.

So to create mass payout without additional options you just have to send request:

Bash

Some additional options:

  • You can set time of the payout processing by transmitting executionDate field in request body. The payout will be sent on specified date and time.

  • You can set a specific custom ID for each payment by transmitting externalId field in the object massAddresses. It’s possible to get the information about payments with the same externalId via api or webhooks.

If the creation was successful you receive the response:

  • Response exampleJSON

After that you can track state changes until payout will be completed.

Tracking mass payout state

After creating mass payout you can receive information about it from the system. There are three options to track changes in mass payout state:

  1. Get data about payout state via request by ID.

  2. Get data about all or specific payments via request by payout ID or externalId.

  3. Set webhooks for payouts.

Get data about payout state

To receive information about earlier created payout you can use Get Specific Mass Payout endpoint (POST https://api.calypso.finance/api/v1/payout/mass).

You can request payout by id or idempotencyKey.

Example of the request by id:

curl

In response you will receive payout data:

  • Response exampleJSON

The most important fields you need to pay attention to:

  • totalCalypsoFee - service fee you paid for payout.

Using this approach you can track only general state of all payments. So, the general state of mass payout is set by the following rules:

  1. If there is no payment (withdrawal) in state IN_PROGRESS and at least one payment (withdrawal) in state COMPLETED, the state of payout will be COMPLETED.

  2. If there is no payment (withdrawal) in state IN_PROGRESS, COMPLETED and at least one payment (withdrawal) is in state FAILED, the state of payout will be FAILED.

  3. If there is no payment (withdrawal) in state IN_PROGRESS, COMPLETED, FAILED and at least one payment (withdrawal) is in state CANCELED, the state of payout will be CANCELED.

If you want tracking state of the particular payment (withdrawal) use the next approach.

Get data about payments

Pay attention that payments for payout are being created asynchronously, thus, before all payments will be created it may take some time after payout creation.

To receive information about payments (withdrawals) you can use Get Transactions From a Specific Mass Payout endpoint (POST https://api.calypso.finance/api/v1/payout/withdrawal/all).

You can request payments by dealId (payout ID) or idempotencyKey. Then you will get all payments for this payout. Or you can request payments by externalId. Then you will get all payments with this externalId. If you specify dealId (or idempotencyKey) and externalId together only payments for the specified payout will be selected, otherwise, all payments with tis externalId.

Also you must specify states of payments you want to get. To get all payments specify the field stateNames by value: [ "DRAFT", "IN_PROGRESS", "COMPLETED", "REPLACED", "FAILED" ].

Example of the request by dealid:

cURL

In response you will receive payments data:

  • Response exampleJSON

The most important fields you need to pay attention to:

  • state - represents status of the payment. Possible statuses: [ "DRAFT", "IN_PROGRESS", "COMPLETED", "REPLACED", "FAILED" ]. "COMPLETED", "REPLACED", "FAILED" are terminal statuses.

  • calypsoFee - service fee you paid for each transaction.

  • withdrawalErrors - if this field is filled, then the error occurred during payment processing. Here you can find details about the error.

Receive information about mass payout state via Webhooks

To track state of your created mass Payout you can use Calypso Payment functionality which is called Webhooks.

Webhook is a way for an app to provide other applications with real-time information. The Webhooks API allows you to subscribe to events happening with your created objects (Invoices or Payouts) in Calypso. Rather than making an API call to check status of invoice or payout during processing, Calypso can send an HTTP request to an endpoint you configure.

  1. First of all, to receive information about mass Payout state change you need to create a subscription for system events which you want to track.

There are several types of events which you need to track in order to understand what is happening to your Invoices.

The main events are:

We’ll look at more scenarios of using Webhooks in following scenarios.

To create a subscription for those events you can use the Create Webhook Public API endpoint: POST https://api.calypso.finance/api/v1/subscription/webhook/create

Bash

You can subscribe to all types of events if you specify value “PAYOUT” in the notificationServiceTypes field instead of enumeration all types of events in notificationEventTypes.

In the response you will get:

JSON

  1. After successful creation of subscription for payout state changes you should wait while the payout is processing.

Successful Mass Payout scenario

If mass payout was processed you will receive webhook with type PAYOUT_CHANGE_STATUS where the field payoutStatus will be COMPLETED.

  • The example of webhook payload:JSON

The mass payout is processed successfully if all its payments have state COMPLETED.

To check state of payments you can use Get Transactions From a Specific Mass Payout endpoint (POST https://api.calypso.finance/api/v1/payout/withdrawal/all) using idempotencyKey or dealId (id in request).

The value of the field state of all payments in result must be COMPLETED.

Negative Mass Payout scenario

If payout was finished due to the error you will receive webhook one of the following type:

  1. PAYOUT_VALIDATION_ERROR - payout remains in state IN_PROGRESS, validation error occurred.

  2. PAYOUT_CHANGE_STATUS where the field payoutStatus will be FAILED - all payments were failed.

  3. PAYOUT_CHANGE_STATUS where the field payoutStatus will be COMPLETED - part of payments were failed, others were completed.

  • The example of webhook payload with type PAYOUT_VALIDATION_ERRORJSON

  • The example of webhook payload with type PAYOUT_CHANGE_STATUS (payoutStatus = FAILED)JSON

  • The example of webhook payload with type PAYOUT_CHANGE_STATUS (payoutStatus = COMPLETED)JSON

The mass payout can have state COMPLETED but some payments could finish with errors. So, you need to check state of all payments to know where an error occurred.

To check state of payments you can use Get Transactions From a Specific Mass Payout endpoint (POST https://api.calypso.finance/api/v1/payout/withdrawal/all) using idempotencyKey or dealId (id in request).

If payment state is FAILED that means that the error occurred on the side of Calypso system. You should resend this payment or ask our technical support about the problem.

If the payment is not in terminal status but you catch PAYOUT_VALIDATION_ERROR then you should check withdrawalErrors field.

This object includes the following parameters:

id - the ID of the error. It’s needed for error searching by technical support.

status - the reason of the error. Can be: [ EXCEEDING_LIMIT, NOT_ENOUGH_FUNDS, NOT_ENOUGH_FUNDS _FOR_COMMISSION ]

errorResolved - if false, then this validation error was not resolved. If true, this validation error was resolved and not relevant anymore.

errorMessage - detailed information about error.

  • Example of withdrawalErrors field

Crypto exchange

Creating exchange via API

  1. Create an exchange by using the method POST | Create exchange;

  2. Get exchange details and state by using the method POST | Get exchange;

Scheme of information process interaction

Below is an example of creating a exchange from a client’s site or application.

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

Exchange statuses:

Exchange statuses

Diagram indicate exchange statuses, arrows indicate processes a successful completion of which transfers an exchange from one status to another.

Create an exchange via API with additional functions (optional requests)

  1. If you want to make sure that your account has enough assets for exchange and get available asset balances on the account, then use this function:

    • Check account balance and ensure enough assets for exchange are available by using the method POST | Get the account;

  2. If you want to get a list of available currency pairs for exchanges, use this function:

    • Getting available pairs for exchange by using the method POST | Get currency pairs;

  3. If you want to know the maximum and minimum available limits for currency exchange, use this function:

    • Get upper exchange limits for currencies by using the method POST | Get upper exchange limit by currency;

  4. If you want to get a preliminary calculation of the exchange, then use this function:

    • Get a preliminary calculation of the exchange amounts by using the method POST | Pre-calculate

  5. Create an exchange by using the method POST | Create exchange;

  6. Get exchange details and state by using the method POST | Get exchange;

Scheme of information process interaction

Below is an example of creating a exchange from a client’s site or application.

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

Onramp

ONRAMP - a service that provides a reliable tool for creating fiat payments for goods and services, with the help of which your customers will be able to make purchases of cryptocurrency and other payment transactions.

API integration allows end users to pay with fiat, while the merchant receives cryptocurrency funds directly into their Calypso account. Your user will be able to make payments using cards and other methods.

Process description

To create a fiat order and initiate payment for your user, you need to complete the following steps:

1
2
3
4
5

If the user made a payment and it received a successful status, you will receive a webhook - FIAT_DEPOSIT_FIAT_FUNDS_RECEIVED

6

If a user makes a payment and it gets an unsuccessful status, you will receive a webhook - FIAT_DEPOSIT_ORDER_FAILED

7

If the user has not completed the payment process and the order has expired, you will receive a webhook - FIAT_DEPOSIT_ORDER_EXPIRED

Sequence

Fiat order statuses

Request examples

Request:

Response 200 OK:


Request:

Response 200 OK:


Request:

Response 200 OK:


Request:

Response 200 OK:


Request:

Response 200 OK:

Single Payout

Creating payout via API

  1. Check account balance and ensure enough funds for payouts are available by using the method POST https://api.calypso.finance/api/v1/account;

  2. Create the payout by using the method POST https://api.calypso.finance/api/v1/payout/create;

  3. Get the data on the payout and its status by using the method POST https://api.calypso.finance/api/v1/payout;

Scheme of information process interaction

Below is an example of creating a payout from a client’s site or application.

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

Payout statuses:

Diagram nodes indicate payout statuses, arrows indicate processes a successful completion of which transfers a payout from one status to another.

In order to access the widget to initiate payment to your user, you need to obtain a unique widget key -

After receiving a status change webhook, we recommend checking the reliability of the order information via a request -

Generate widget key -

Get fiat order info -

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

You can find more information about other features of Public API integration in our documentation:

More info on Get Specific Mass Payout endpoint:

state - represents status of the payout. More info about possible states in documentation:

More info on Get Transactions From a Specific Mass Payout endpoint:

More detailed information about Calypso Webhooks functionality:

More info on Calypso Webhooks event types:

More info on Webhooks management in Calypso Pay system:

Status
Description

You need to get a list of available GEOs and fiat currencies for them -

Next, you need to select a geo and get a list of proposed payment methods for it -

After selecting a payment method, fill in the required parameters for the order and create it -

After receiving the order ID, you need to confirm it and you will receive a payment link for your user -

After receiving a status change webhook, we recommend checking the reliability of the order information via a request -

Status
Description

Get list of geo and fiat currencies -

Body parameters
Type
Field
Description

Get list of payment methods -

Body parameters
Type
Field
Description

Create fiat order -

Body parameters
Type
Field
Description

Confirm fiat order -

Body parameters
Type
Field
Description

Get fiat order info -

Body parameters
Type
Field
Description
Status
Description
[POST] Generate key
[POST] Get fiat info
[POST] Generate key
[POST] Get fiat info
purse-transaction
curl --location --request POST 'https://api.calypso.finance/api/v1/pub/payout/mass/create' \
--header 'key: <your_api_key>' \
--header 'sign: <your_sign>' \
--header 'Content-Type: application/json' \
--data-raw '{
  "timestamp": 13292792792,
  "account": "0xc195df92dd9db2a8f28e597981f113d6e7582f8b",
  "payload": {
    "currency": "USDT",
    "name": "salary for employees",
    "comment": "October",
    "massAddresses": [
      {
        "depositAddress": "0x3b2d03a4e60c9e0fa45f45a544d137bda2014f0f",
        "amount": 10
      },
      {
        "depositAddress": "0x40b70f0eee9a1605ef28ac6914f34d3bc80e15ca",
        "amount": 10
      }
    ],
    "idempotencyKey": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
  }
}'
{
    "id": "b5d7778c-6cf2-43fa-86eb-c5efbb89cb0a",
    "idempotencyKey": "e8aed201-ed80-4a14-90a6-dd6ba328391b",
    "companyId": "811b0401-c9f9-4b40-be68-3b01eb1d61f6",
    "state": "CREATION_IN_PROGRESS",
    "comment": "October",
    "name": "salary for employees",
    "currency": "USDT",
    "totalCalypsoFee": 1,
    "totalCalypsoFeePercentage": 10
}
curl --silent --location --request POST "https://api.calypso.finance/api/v1/payout/mass" \
--header 'Key: <your_api_key>' \
--header 'Sign: <your_sign>' \
--header "Content-Type: application/json" \
--data-raw "{
  "timestamp": 13292792792,
  "account": "0xc195df92dd9db2a8f28e597981f113d6e7582f8b",
  "payload": {
    "id": "b5d7778c-6cf2-43fa-86eb-c5efbb89cb0a"
  }
}"
{
    "id": "b5d7778c-6cf2-43fa-86eb-c5efbb89cb0a",
    "idempotencyKey": "e8aed201-ed80-4a14-90a6-dd6ba328391b",
    "companyId": "811b0401-c9f9-4b40-be68-3b01eb1d61f6",
    "state": "CREATION_IN_PROGRESS",
    "comment": "October",
    "name": "salary for employees",
    "currency": "USDT",
    "totalCalypsoFee": 1,
    "totalCalypsoFeePercentage": 10
}
curl --location --request POST 'https://api.calypso.finance/api/v1/payout/withdrawal/find' \
--header 'key: <your_api_key>' \
--header 'sign: <your_sign>' \
--header 'Content-Type: application/json' \
--data-raw '{
  "timestamp": 13292792792,
  "account": "0xc195df92dd9db2a8f28e597981f113d6e7582f8b",
  "payload": {
    "dealId": "b5d7778c-6cf2-43fa-86eb-c5efbb89cb0a",
    "stateNames": [
      "DRAFT", "IN_PROGRESS", "COMPLETED", "FAILED", "CANCELED"
    ]
  }
}'
{
    "result": [
        {
            "id": "75867d4d-764c-4dd2-94a5-3e07a41c22ea",
            "account": "0xc195df92dd9db2a8f28e597981f113d6e7582f8b",
            "companyName": "My Company",
            "amount": 10,
            "currency": "USDT",
            "state": "IN_PROGRESS",
            "calypsoFee": 1,
            "transactionHash": "0x36cc4892b491f09a88bc4f073c9d1ba05491feba21cbca820e15cb27408fd1f6",
            "depositAddress": "0x3b2d03a4e60c9e0fa45f45a544d137bda2014f0f",
            "createdDate": "2022-10-13T07:42:52.670568",
            "withdrawalErrors": []
        },
        {
            "id": "0328f0a2-e26d-4168-b803-375c06dc723b",
            "account": "0xc195df92dd9db2a8f28e597981f113d6e7582f8b",
            "companyName": "My Company",
            "amount": 10,
            "currency": "USDT",
            "state": "IN_PROGRESS",
            "calypsoFee": 1,
            "transactionHash": "0x36cc4892b491f09a88bc4f073c9d1ba05491feba21cbca820e15cb27408fd1f6",
            "depositAddress": "0x40b70f0eee9a1605ef28ac6914f34d3bc80e15ca",
            "createdDate": "2022-10-13T07:42:52.670568",
            "withdrawalErrors": []
        }
    ],
    "page": 1,
    "size": 10,
    "total": 1,
    "totalElements": 0
}

Event type

Description

PAYOUT_CHANGE_STATUS

Payout has changed state to In Progress, Canceled, Failed or Completed

PAYOUT_VALIDATION_ERROR

Validation error has been occurred during payout processing

curl --location --request POST 'https://api.calypso.finance/api/v1/pub/subscription/webhook/create' \
--header 'Key: <your_api_key>' \
--header 'Sign: <your_sign>' \
--header 'Content-Type: application/json' \
--data-raw '{
  "timestamp": 13292792792,
  "account": "0xc195df92dd9db2a8f28e597981f113d6e7582f8b",
  "payload": {
    "notificationEventTypes": [
      "PAYOUT_CHANGE_STATUS",
			"PAYOUT_VALIDATION_ERROR"
    ],
    "requestId": "bf9348b7-2c14-46d7-868c-b597852da319",
    "url": "Your App URL"
  }
}'
{
    "requestId": "bf9348b7-2c14-46d7-868c-b597852da319",
    "notificationEventTypes": [
      "PAYOUT_CHANGE_STATUS",
			"PAYOUT_VALIDATION_ERROR"
    ],
    "url": "Your App URL",
    "createdDate": "2022-08-22T08:24:00.307535"
}
{
  "requestId": "bf9348b7-2c14-46d7-868c-b597852da319",
	"id":74146,
	"createdDate":"2022-10-10T11:54:52.191723",
	"level":"SUCCESS",
	"service":"PAYOUT",
	"data": {
			"hash":null,
			"type":"PAYOUT_CHANGE_STATUS",
			"currency":"USDT",
			"createdDate":"2022-10-06T15:54:23.925926",
			"payoutStatus":"COMPLETED",
			"idempotencyKey":"e318f10d-d470-4605-898f-680be65a5380",
			"parentExternalId":"b5d7778c-6cf2-43fa-86eb-c5efbb89cb0a"
	}
}
{
  "requestId": "fef8b8b9-cfee-4ccf-b0f1-c824f6eabb94",
  "id": 78418,
  "createdDate": "2022-10-13T10:24:42.187272",
  "level": "WARNING",
  "service": "PAYOUT",
  "eventType": "PAYOUT_VALIDATION_ERROR",
  "data": {
    "type": "PAYOUT_VALIDATION_ERROR",
    "message": "Not enough funds for processing payout by wallet. \nExpected network fee: 0.00018113 BTC.\nPayout amount: 0.01001 BTC.\nAvailable wallet balance by wallet: 0.00025000 BTC.\nYou need more: 0.00994113 BTC.\nPlease top up your BTC wallet: tb1qde9x2fvr7hv8a85yxfu0enrp5p598ljvj6vtrt.",
    "currency": "BTC",
    "externalId": null,
    "createdDate": "2022-10-13T10:24:36.409095",
    "idempotencyKey": "81a86936-ca95-4991-b824-ef1ee12f65f3",
    "dealWithdrawalId": "75867d4d-764c-4dd2-94a5-3e07a41c22ea",
    "parentExternalId": "b5d7778c-6cf2-43fa-86eb-c5efbb89cb0a",
    "validationStatus": "NOT_ENOUGH_FUNDS"
  }
}
{
  "requestId": "bf9348b7-2c14-46d7-868c-b597852da319",
	"id":74146,
	"createdDate":"2022-10-10T11:54:52.191723",
	"level":"WARNING",
	"service":"PAYOUT",
	"data": {
			"hash":null,
			"type":"PAYOUT_CHANGE_STATUS",
			"currency":"ETH",
			"createdDate":"2022-10-06T15:54:23.925926",
			"payoutStatus":"FAILED",
			"idempotencyKey":"e318f10d-d470-4605-898f-680be65a5380",
			"parentExternalId":"b5d7778c-6cf2-43fa-86eb-c5efbb89cb0a"
	}
}
{
  "requestId": "bf9348b7-2c14-46d7-868c-b597852da319",
	"id":74146,
	"createdDate":"2022-10-10T11:54:52.191723",
	"level":"SUCCESS",
	"service":"PAYOUT",
	"data": {
			"hash":null,
			"type":"PAYOUT_CHANGE_STATUS",
			"currency":"USDT",
			"createdDate":"2022-10-06T15:54:23.925926",
			"payoutStatus":"COMPLETED",
			"idempotencyKey":"e318f10d-d470-4605-898f-680be65a5380",
			"parentExternalId":"b5d7778c-6cf2-43fa-86eb-c5efbb89cb0a"
	}
}
"withdrawalErrors": [
                {
                    "id": "75867d4d-764c-4dd2-94a5-3e07a41c22ea",
                    "status": "NOT_ENOUGH_FUNDS",
                    "errorResolved": false,
                    "errorMessage": "Not enough funds for processing payout by wallet. \nPayout amount: 4010.00 USDT.\nAvailable wallet balance by wallet: 52.57 USDT.\nYou need more: 3957.43USDT.\nPlease top up your USDT wallet: 0xa04dfcfb734f8c3c94497fa269c47331f14a70c9."
                }
            ]

CREATED

Fiat order successfully created

IN_PROGRESS

Fiat order in process

PAID

Fiat order successfully paid

COMPLETED

Funds after fiat order payment are transferred to your company account

FAILED

Fiat order payment failed

EXPIRED

Fiat order payment not completed and order expired

account

string

required

Merchant account ID. Request will be sent for this account

timestamp

integer

required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

{
  "account": "text",
  "timestamp": 1
}
{
  "geo": [
    {
      "geoId": "123e4567-e89b-12d3-a456-426614174000",
      "geoName": "text",
      "geoCode": "text",
      "fiatCurrency": "ARS"
    }
  ]
}

account

string

required

Merchant account ID. Request will be sent for this account

timestamp

integer

required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

payload

object

required

Object with request parameters

geoId

string

required

Unique geo identifier

cryptoAmount

number

optional

Crypto amount of the fiat order (for advance calculation)

fiatAmount

number

optional

Fiat amount of the fiat order (for advance calculation)

currency

string

required

Crypto currency of the fiat order

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "geoId": "123e4567-e89b-12d3-a456-426614174000",
    "cryptoAmount": 1,
    "fiatAmount": 1,
    "currency": "text"
  }
}
{
  "fixedRateId": "123e4567-e89b-12d3-a456-426614174000",
  "rateExpiredDate": "2025-05-21T13:57:48.699Z",
  "methods": [
    {
      "itemId": "123e4567-e89b-12d3-a456-426614174000",
      "fiatAmount": 1,
      "cryptoAmount": 1,
      "withdrawalSettingsType": "CARD",
      "currency": "text",
      "fiatCurrency": "ARS",
      "minLimit": 1,
      "maxLimit": 1
    }
  ]
}

account

string

required

Merchant account ID. Request will be sent for this account

timestamp

integer

required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

payload

object

required

Object with request parameters

rateId

string

required

Unique exchange rate identifier

itemId

string

required

Unique item identifier

cryptoAmount

number

optional

Crypto amount of the fiat order

fiatAmount

number

optional

Fiat amount of the fiat order

idempotencyKey

string

required

Unique idempotency key

merchantExternalId

string

optional

External unique identifier, specified by the merchant

returnUrl

string

required

Link to the page to which the user is redirected after completing the payment

description

string

required

Comment to order

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "rateId": "123e4567-e89b-12d3-a456-426614174000",
    "itemId": "123e4567-e89b-12d3-a456-426614174000",
    "cryptoAmount": 1,
    "fiatAmount": 1,
    "description": "text",
    "merchantExternalId": "text",
    "returnUrl": "text",
    "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000"
  }
}
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "cryptoAmount": 1,
  "fiatAmount": 1,
  "fiatCurrency": "ARS",
  "currency": "text",
  "state": "CREATED"
}

account

string

required

Merchant account ID. Request will be sent for this account

timestamp

integer

required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

payload

object

required

Object with request parameters

id

string

required

Unique order identifier received after creation

requestParams

object

required

Object with request parameters

Other properties

object

optional

List of additional parameters of fiat order

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "requestParams": {
      "ANY_ADDITIONAL_PROPERTY": {}
    }
  }
}
{
  "redirectUrl": "text"
}

account

string

required

Merchant account ID. Request will be sent for this account

timestamp

integer

required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

id

string

required

Unique order identifier received after creation

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "id": "123e4567-e89b-12d3-a456-426614174000"
  }
}
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "cryptoAmount": 1,
  "fiatAmount": 1,
  "fiatCurrency": "ARS",
  "currency": "text",
  "state": "CREATED"
}

Types of events

Calypso supports a number of different event types, and you can filter your notification requests depending on types or group of events you send in the request.

There are two ways to subscribe to notifications. You can send values in one of following fields (or in both) using a POST request to the create webhook endpoint:

  • notificationServiceTypes - groups of possible event types: [INVOICE, PAYOUT, RECURRENT]. Send values in this field to subscribe to all events of chosen group. See list of events in each group below in the section Events by group.

  • notificationEventTypes - event types for which you can receive notifications. Send values in this field to subscribe to particular events. See list of events below in the section Events by group.

Events by group

INVOICE

Event type
Description

INVOICE_CREATE_INVOICE

New single invoice has been created

INVOICE_CREATE_UNLIMITED_INVOICE

New unlimited invoice has been created

INVOICE_FUNDS_RECEIVED_FOR_INVOICE

Funds have been received to invoice wallet

INVOICE_TRANSLATION_TO_ACCOUNT_COMPLETED

Funds have been received from invoice wallet to the merchant balance.

INVOICE_PENDING_INTERVENTION

Invoice has changed state to INVOICE_PENDING_INTERVENTION. Either more or less funds was received to the invoice wallet than required.

INVOICE_EXPIRED

Invoice expiration date has expired.

INVOICE_PAID

Invoice successfully paid. All required amount has been received to invoice wallet.

INVOICE_MEMPOOL_FOUND

Invoice transaction has been found in mempool but still not confirmed in blockchain.

INVOICE_PENDING_COMPLIANCE

Invoice transaction is being reviewed by our compliance service

INVOICE_COMPLIANCE_DECLINED

Invoice has been suspended due to our compliance polic

FIAT_DEPOSIT (Onramp)

Event type
Description

FIAT_DEPOSIT_ORDER_CREATED

Fiat order created

FIAT_DEPOSIT_ORDER_CONFIRM

Fiat order confirmed

FIAT_DEPOSIT_FIAT_FUNDS_RECEIVED

Fiat order already paid

FIAT_DEPOSIT_ORDER_EXPIRED

Fiat order expired and was not paid

FIAT_DEPOSIT_ORDER_FAILED

Fiat order payment failed, status not changed

FIAT_WITHDRAWAL (Offramp)

Event type
Description

FIAT_WITHDRAWAL_ORDER_CREATED

Withdrawal order created

FIAT_WITHDRAWAL_ORDER_CONFIRM

Withdrawal order comfirmed

FIAT_WITHDRAWAL_SUCCESS

Withdrawal order already success

FIAT_WITHDRAWAL_ORDER_EXPIRED

Withdrawal order expired and withdrawal was not fulfilled

FIAT_WITHDRAWAL_ORDER_FAILED

Withdrawal failed

FIAT_APPLIER (Onramp old)

Event type
Description

FIAT_APPLIER_FIAT_FUNDS_RECEIVED

Fiat order already paid

FIAT_APPLIER_ORDER_UNPAID

Fiat order expired and was not paid

FIAT_APPLIER_PAYMENT_FAILED

Fiat order payment failed, status not changed

FIAT_APPLIER_ADJUSTMENT

Fiat order has been adjusted

FIAT_APPLIER (Offramp old)

Event type
Description

FIAT_APPLIER_WITHDRAWAL_SUCCESS

C2F withdrawal order already success

FIAT_APPLIER_WITHDRAWAL_FAILED

C2F withdrawal order failed

TOP-UP

Event type
Description

TOP_UP_PENDING_COMPLIANCE

Top-up transaction is being reviewed by our compliance service

TOP_UP_COMPLIANCE_DECLINED

Top-up has been suspended due to our compliance policy

WALLET_FUNDS_DELIVERED_ACCOUNT

The funds have been successfully received

CUSTOMER PURSE

Event type
Description

CUSTOMER_PURSE_EXPIRED

The address was not replenished and expired after 30 days.

CUSTOMER_PURSE_MEM_POOL_FOUND

The transaction pending in the mempool.

CUSTOMER_PURSE_PENDING_COMPLIANCE

Transaction under compliance check.

CUSTOMER_PURSE_COMPLIANCE_DECLINED

The transaction failed compliance check.

CUSTOMER_PURSE_FUNDS_RECEIVED_FOR_PURSE

Transaction received successfully.

CUSTOMER_PURSE_TRANSLATION_TO_ACCOUNT_COMPLETED

Funds have been successfully credited to your account.

PAYOUT

Event type
Description

PAYOUT_CHANGE_STATUS

Payout has changed state to In Progress, Canceled, Failed or Completed

PAYOUT_CONFIRMED

Payout has changed state to Confirmed

PAYOUT_VALIDATION_ERROR

Validation error has occurred during payout processing

Webhook sign check

Using our subscriptions, you can implement signature verification of responses. The necessary data is contained in the following headers:

Key
Value

Sign

The HEX-encoded signature (see below).

Key

Public key used for identification

The secret key for webhook sign encryption is contained in the successful response body for the methods.

Change Webhook

Create Webhook

Get list of Webhook Subscriptions

Using the principle and examples from the article Get started with API you can encrypt the request body and compare the resulting hash with the corresponding header.

If there is a need to regenerate keys for signing webhooks, then you can use the following method

Regenerate Webhook Api keys

Overview

The Webhooks API allows you to subscribe to events happening with your created objects (Invoices or Payouts) in Calypso. Rather than making an API call to check status of invoice or payout during processing, Calypso can send an HTTP request to an endpoint you configure. You can configure subscribed events using the endpoints detailed below.

How it works?

In order to receive notifications you should send a POST request to the create webhook endpoint where you should transmit URL where you want to receive POST requests with event data from Calypso and event types or group of event types for which you need to receive notifications.

Then when one of events for which you have subscription happens, Calypso sends a POST request to the configured URL with data about the event.

You can manage your subscription using the delete webhook endpoint and the change webhook endpoint.

There is the get list of webhook subscriptions endpoint in order to get information about events and URLs you have a subscription.

Retry policy

If the receiving party returned an error when sending the webhook to the configured URL, Calypso will be trying to resend the webhook. The first retry will be occured in 30 seconds. The next retries will be proceeded in Fibonacci sequence: 30 s, 60 s, 90 s, 150 s, 240 s and so on. The last period of retry is 125 430 s (~ 34 hours). The last webhook will try to be resent after 125 430 s and then will be stopped. There are 19 retries in total.

Mass payout
New Mass Payout
Get specific Mass Payout
Mass payout
Get Transactions from a specific Mass Payout
Webhooks
Types of events
Webhook API
[POST] Get geo
[POST] Get method
[POST] Create order
[POST] Confirm order
[POST] Get fiat info
[POST] Get geo
[POST] Get method
[POST] Create order
[POST] Confirm order
[POST] Get fiat info

IN_PROGRESS

The exchange order has been created and is awaiting execution.

COMPLETED

The funds have been successfully exchanged on the account.

FAILED

PENDING_CONFIRMATION

A payout is created via UI and is awaiting confirmation from other process participants.

CONFIRMED

• A payout is created via UI and confirmed by other process participants. • A payout created via API is automatically created with this status.

IN_PROGRESS

• Transaction for a payout is created and is awaiting to be sent to the network. •Transaction for a payout is sent to the network to be sent to a block and is awaiting confirmation from nodes.

COMPLETED

Funds are successfully credited to destination wallet.

FAILED

CANCELED

A payout has been canceled by merchant.

Mass Payout

What are Mass Payouts?

Mass Payout is a method of paying up to 10,000 recipients simultaneously. Since mass payouts are submitted online, they are processed instantly which helps organizations to save time, money and resources.

How does it work?

The principle of Mass Payout is based on the use of the API:

  • First, the company sends a request for a balance to check if funds are available.

  • Next, you need to get the network commission coefficient. This value is required to create a request for Mass Payout.

  • Next, the company sends a request to Calypso Payout API to conduct a Mass Payout.

  • Next, Calypso handles a request.

  • Next, Calypso verifies if there are enough funds on the balance.

  • Next, the funds are sent to the recipients.

The Calypso Payout API is great for merchants needing to automate sending payments in real time. The company provides the ability to simultaneously make up to 10,000 payments.

Mass payouts are perfect for sending salaries to subordinates, payouts to partners or e-commerce marketplaces.

How to implement this via API?

Below is an example of creating Mass Payout from the client’s site or application.

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

Mass payout statuses

ENUM value
Description

CREATION_IN_PROGRESS

Payout started creation

PENDING_CONFIRMATION

A payout is created via UI and is awaiting confirmation from other process participants.

CONFIRMED

• A payout is created via UI and confirmed by other process participants. • A payout created via API is automatically created with this status.

IN_PROGRESS

• Transaction for a payout is created and is awaiting to be sent to the network. •Transaction for a payout is sent to the network to be sent to a block and is awaiting confirmation from nodes.

COMPLETED

Funds are successfully credited to destination wallet.

FAILED

CANCELED

A payout has been canceled by merchant.

Limits

Currently, there is a limit for quantity of transactions in one mass payout:

  • 1000 transactions for ETH and tokens ERC-20;

  • 100 transactions for other currencies.

Report API

API for getting reports

Settlement Payout API

API for settlement payout

Webhook API

API for webhook management

Payout API

API for payouts

Exchange API

API for exchanges

Fiat API

API for fiat

User API

User API

Rate API

API for getting exchange rates

Settlement Wallet API

API for settlement wallet

Fiat withdrawal API

API for fiat withdrawal

Account API

API for accounts

Currency API

API for currencies

Invoice API

API for invoices

Settlement Report API

API for getting settlement reports

Crypto to fiat API

Crypto to fiat API

Customer Purse API

API for customer purse

Fiat deposit API

API for fiat deposit

Payment Widget API

API for payment widgets

Models

Webhook payload

Webhook payload example

Webhooks deliver the responses to your service in JSON format. The parameters that webhook payload inсludes are listed in the table below.

Data object depending on event type

INVOICE_CREATE_INVOICE

INVOICE_CREATE_UNLIMITED_INVOICE

INVOICE_FUNDS_RECEIVED_FOR_INVOICE

INVOICE_PENDING_INTERVENTION

INVOICE_TRANSLATION_TO_ACCOUNT_COMPLETED

INVOICE_EXPIRED

INVOICE_PAID

INVOICE_MEMPOOL_FOUND

FIAT_APPLIER_FIAT_FUNDS_RECEIVED

FIAT_APPLIER_ORDER_UNPAID

FIAT_APPLIER_PAYMENT_FAILED

FIAT_APPLIER_ADJUSTMENT

FIAT_APPLIER_WITHDRAWAL_SUCCESS

FIAT_APPLIER_WITHDRAWAL_FAILED

FIAT_DEPOSIT_ORDER_CREATED

FIAT_DEPOSIT_ORDER_CONFIRMED

FIAT_DEPOSIT_FIAT_FUNDS_RECEIVED

FIAT_DEPOSIT_ORDER_FAILED

FIAT_DEPOSIT_ORDER_EXPIRED

FIAT_WITHDRAWAL_ORDER_CREATED

FIAT_WITHDRAWAL_ORDER_CONFIRMED

FIAT_WITHDRAWAL_FIAT_FUNDS_RECEIVED

FIAT_WITHDRAWAL_ORDER_FAILED

FIAT_WITHDRAWAL_ORDER_EXPIRED

CUSTOMER_PURSE_EXPIRED

CUSTOMER_PURSE_MEM_POOL_FOUND

CUSTOMER_PURSE_PENDING_COMPLIANCE

CUSTOMER_PURSE_COMPLIANCE_DECLINED

CUSTOMER_PURSE_FUNDS_RECEIVED_FOR_PURSE

PAYOUT_CHANGE_STATUS

PAYOUT_CONFIRMED

PAYOUT_VALIDATION_ERROR

INVOICE_COMPLIANCE_CHECK

INVOICE_COMPLIANCE_DECLINED

TOP_UP_COMPLIANCE_CHECK

TOP_UP_COMPLIANCE_DECLINED

WALLET_FUNDS_DELIVERED_ACCOUNT

Calypso - application

An error occurred during the exchange. There may be many reasons for the error. You can follow the steps below to fix it: 1. Wait for a while and create a new exchange. 2. Contact our .

An error occurred when sending funds. There can be many reasons of the error. You may follow these remediation steps: 1. Wait a while and create a new similar payout. 2. Contact our .

An error occurred when sending funds. There can be many reasons of the error. You may follow these remediation steps: 1. Wait a while and create a new similar payout. 2. Contact our

Parameter
Type
Mandatory
Description
Parameter
Type
Description
Parameter
Type
Description
Parameter
Type
Description
Parameter
Type
Description
Parameter
Type
Description
Parameter
Type
Description
Parameter
Type
Description
Parameter
Type
Description
Parameter
Type
Description
Parameter
Type
Description
Parameter
Type
Description
Parameter
Type
Description
Parameter
Type
Description
Parameter
Type
Description
Parameter
Type
Description
Parameter
Type
Description
Parameter
Type
Description
Parameter
Type
Description
Parameter
Type
Description
Parameter
Type
Description
Parameter
Type
Description
Parameter
Type
Description
Parameter
Type
Description
Parameter
Type
Description
Parameter
Type
Description
Parameter
Type
Description
Parameter
Type
Description
Parameter
Type
Description
Parameter
Type
Description
Parameter
Type
Description
Parameter
Type
Description
Parameter
Type
Description
Parameter
Type
Description
Parameter
Type
Description
Parameter
Type
Description
Parameter
Type
Description
Parameter
Type
Description
technical support
technical support
{
  "requestId": "bf9348b7-2c14-46d7-868c-b597852da319",
  "id": 1,
  "createdDate": "2022-03-15T12:13:05.909616",
  "level": "SUCCESS",
  "service": "INVOICE",
  "eventType": "INVOICE_CREATE_INVOICE",
  "data": {
    "parentExternalId": 3,
    "amount": 0.01,
    "currency": "ETH",
    "fiatcurrency": "USD",
    "message": "Invoice example",
    "createdDate": "2022-03-15T12:13:03.157015",
    "type": "INVOICE_CREATE_INVOICE",
    "idempotencyKey": "5b0ca8da-6af4-4a1c-9efd-5cbfc19ace09"
  }
}

requestId

string

Yes

id of the request that created webhook subscription.

id

number

Yes

id of the event.

createdDate

string

Yes

creation date of the event.

level

string

Yes

level of the notification for the event. [SUCCESS, INFO, WARNING]

service

string

Yes

group of events which the event belongs to.

data

object

Yes

set of data depending on the event type. See list of field for each event type below.

type

string

event type: INVOICE_CREATE_INVOICE

amount

number

money amount of the created invoice.

message

string

text of the invoice.

currency

string

crypto currency of the invoice. [BNB, BTC, DAI, ETH, FRAX, MATIC, TRX, USDC, USDT, USDT_MATIC, USDT_TRX, USDC_TRX, XDG, USDT_BSC]

fiatCurrency

string

fiat currency of the invoice. [USD, EUR, RUB, AED, ARS, AUD, AZN, BOB, BRL, BYN, CAD, CLP, COP, CRC, CZK, EGP, GHS, GTQ, HKD, HNL, IDR, INR, JPY, KES, KHR, KRW, KZT, MMK, MXN, MYR, NGN, NOK, NZD, PEN, PHP, PLN, RON, SAR, SEK, SGD, THB, TRY, TWD, UAH, UGX, UZS, VES, VND, XAF, XOF, ZAR]

parentExternalId

number

system id of the invoice.

createdDate

string

date and time of invoice creation

idempotencyKey

string

the external id that was generated while invoice creating through api.

externalId

string

merchant ID of invoice

type

string

event type: INVOICE_CREATE_UNLIMITED_INVOICE

message

string

text of the invoice.

currency

string

crypto currency of the invoice. [ BNB, BTC, DAI, ETH, FRAX, MATIC, TRX, USDC, USDT, USDT_MATIC, USDT_TRX, USDC_TRX, XDG, USDT_BSC ]

parentExternalId

number

system id of the invoice.

createdDate

string

date and time of invoice creation

idempotencyKey

string

the external id that was generated while invoice creating through api.

externalId

string

merchant ID of invoice

type

string

event type: INVOICE_FUNDS_RECEIVED_FOR_INVOICE

amount

number

amount of received money to invoice wallet.

transactionId

array

System ID of the invoice deposits.

message

string

text of the invoice.

currency

string

crypto currency of the invoice. [ BNB, BTC, DAI, ETH, FRAX, MATIC, TRX, USDC, USDT, USDT_MATIC, USDT_TRX, USDC_TRX, XDG, USDT_BSC ]

parentExternalId

number

system id of the invoice.

idempotencyKey

string

the external id that was generated while invoice creating through api.

createdDate

string

date and time of invoice creation.

senderAddress

string

wallet address from where funds were sent.

invoiceAddress

string

invoice address to which funds were received.

externalId

string

merchant ID of invoice

paymentDate

string

date of deposit transaction creation.

transactionHash

string

hash of the deposit transaction.

fiatAmount

object

invoice amount in fiat currency.

type

string

Event type: INVOICE_PENDING_INTERVENTION

message

string

text of the invoice.

parentExternalId

number

system id of the invoice.

idempotencyKey

string

the external id that was generated while invoice creating through api.

externalId

string

merchant ID of invoice

type

string

event type: INVOICE_TRANSLATION_TO_ACCOUNT_COMPLETED

amount

number

money amount of the invoice.

message

string

text of the invoice.

currency

string

crypto currency of the invoice. [ BNB, BTC, DAI, ETH, FRAX, MATIC, TRX, USDC, USDT, USDT_MATIC, USDT_TRX, USDC_TRX, XDG, USDT_BSC ]

parentExternalId

number

system id of the invoice.

createdDate

string

date and time of invoice creation.

idempotencyKey

string

the external id that was generated while invoice creating through api.

serviceFee

number

service fee for invoice deposit.

fiatAmount

object

invoice amount in fiat currency.

transactionIds

array

system IDs of deposits for invoice. Always one ID in unlimited invoices, usually one ID in single invoices, but may be more IDs if intervention occurred.

type

string

Event type: INVOICE_EXPIRED

parentExternalId

number

system id of the invoice.

idempotencyKey

string

the external id that was generated while invoice creating through api.

amount

number

money amount of the invoice.

currency

string

crypto currency of the invoice. [ BNB, BTC, DAI, ETH, FRAX, MATIC, TRX, USDC, USDT, USDT_MATIC, USDT_TRX, USDC_TRX, XDG, USDT_BSC ]

fiatCurrency

string

fiat currency of the invoice. [USD, EUR, RUB, AED, ARS, AUD, AZN, BOB, BRL, BYN, CAD, CLP, COP, CRC, CZK, EGP, GHS, GTQ, HKD, HNL, IDR, INR, JPY, KES, KHR, KRW, KZT, MMK, MXN, MYR, NGN, NOK, NZD, PEN, PHP, PLN, RON, SAR, SEK, SGD, THB, TRY, TWD, UAH, UGX, UZS, VES, VND, XAF, XOF, ZAR]

message

string

description of the invoice.

createdDate

string

date and time of invoice creation.

expirationDate

string

date and time of invoice expiration.

externalId

string

merchant ID of invoice

fiatAmount

object

invoice amount in fiat currency.

amount

number

money amount of the invoice.

currency

string

crypto currency of the invoice. [ BNB, BTC, DAI, ETH, FRAX, MATIC, TRX, USDC, USDT, USDT_MATIC, USDT_TRX, USDC_TRX, XDG, USDT_BSC ]

description

string

description of the invoice.

externalId

string

merchant ID of invoice

fiatAmount

number

amount in fiat currency if it was set in fiat.

fiatCurrency

string

fiat currency of the invoice if it was set in fiat. [ USDT, EUR ]

idempotencyKey

string

the external id that was generated while invoice creating through api.

parentExternalId

number

system id of the invoice.

realAmount

number

amount of money that client really paid for the invoice.

type

string

Event type: INVOICE_PAID.

amount

number

money amount of the invoice.

currency

string

crypto currency of the invoice. [ BNB, BTC, DAI, ETH, FRAX, MATIC, TRX, USDC, USDT, USDT_MATIC, USDT_TRX, USDC_TRX, XDG, USDT_BSC ]

description

string

description of the invoice.

externalId

string

merchant ID of invoice

fiatAmount

number

amount in fiat currency if it was set in fiat.

fiatCurrency

string

fiat currency of the invoice if it was set in fiat. [ USDT, EUR ]

idempotencyKey

string

the external id that was generated while invoice creating through api.

parentExternalId

number

system id of the invoice.

realAmount

number

amount of money that client really paid for the invoice.

type

string

Event type: INVOICE_MEMPOOL_FOUND.

createdDate

string

date and time of invoice creation.

transactionHash

string

hash of the incoming transaction to the invoice wallet.

parentExternalId

number

system id of the fiat order.

idempotencyKey

string

the external id that was generated while fiat order creating through api.

fiatAmount

string

amount in fiat currency that was received after payment.

fiatCurrency

string

fiat currency of the fiat order

rate

number

rate of fiat order

parentExternalId

number

system id of the fiat order.

idempotencyKey

string

the external id that was generated while fiat order creating through api.

reasonType

string

order expiration reason - "EXPIRED"

parentExternalId

number

system id of the fiat order

idempotencyKey

string

the external id that was generated while fiat order creating through api

reason

string

reason for fiat order payment failed

parentExternalId

number

system id of the fiat order

idempotencyKey

string

the external id that was generated while fiat order creating through api

adjustmentDate

string

date of adjustment

sumAfterAdjustment

number

amount received in adjustment

reason

string

reason for fiat order adjustment

currency

string

currency of adjustment

fiatCurrency

string

is fiat currency adjustment ? (true/false)

rate

number

rate of c2f order

type

string

event type

state

string

c2f order state

orderId

string

c2f order id

currency

string

crypto currency of the с2f order

externalId

string

merchant ID of c2f order

fiatAmount

number

fiat amount of the с2f order

fiatCurrency

string

fiat currency of the с2f order

idempotencyKey

string

the external id that was generated while fiat order creating through api.

parentExternalId

number

system id of the c2f order

type

string

event type

state

string

c2f order state

orderId

string

c2f order id

externalId

string

merchant ID of c2f order

idempotencyKey

string

the external id that was generated while fiat order creating through api.

reason

string

reason for c2f order failed

parentExternalId

number

system id of the c2f order

cryptoAmount

string

The amount in cryptocurrency of this order

fiatCurrency

string

Fiat currency of this order

fiatAmount

string

The amount in fiat of this order

orderId

string

Unique order identifier

externalId

string

External order identifier (specified by the merchant)

parentExternalId

number

System id of the order

idempotencyKey

string

The external id that was generated while fiat order creating through api.

currency

string

Crypto currency of this order

type

string

Event type

orderId

string

Unique order identifier

externalId

string

External order identifier (specified by the merchant)

parentExternalId

number

System id of the order

idempotencyKey

string

The external id that was generated while fiat order creating through api.

currency

string

Crypto currency of this order

type

string

Event type

cryptoAmount

string

The amount in cryptocurrency of this order

fiatCurrency

string

Fiat currency of this order

fiatAmount

string

The amount in fiat of this order

orderId

string

Unique order identifier

externalId

string

External order identifier (specified by the merchant)

parentExternalId

number

System id of the order

idempotencyKey

string

The external id that was generated while fiat order creating through api.

currency

string

Crypto currency of this order

type

string

Event type

orderId

string

Unique order identifier

externalId

string

External order identifier (specified by the merchant)

parentExternalId

number

System id of the order

idempotencyKey

string

The external id that was generated while fiat order creating through api.

currency

string

Crypto currency of this order

type

string

Event type

reason

string

Reason for fiat order payment failed

orderId

string

Unique order identifier

externalId

string

External order identifier (specified by the merchant)

parentExternalId

number

System id of the order

idempotencyKey

string

The external id that was generated while fiat order creating through api.

currency

string

Crypto currency of this order

type

string

Event type

cryptoAmount

string

The amount in cryptocurrency of this order

fiatCurrency

string

Fiat currency of this order

fiatAmount

string

The amount in fiat of this order

orderId

string

Unique order identifier

externalId

string

External order identifier (specified by the merchant)

parentExternalId

number

System id of the order

idempotencyKey

string

The external id that was generated while fiat order creating through api.

currency

string

Crypto currency of this order

type

string

Event type

orderId

string

Unique order identifier

externalId

string

External order identifier (specified by the merchant)

parentExternalId

number

System id of the order

idempotencyKey

string

The external id that was generated while fiat order creating through api.

currency

string

Crypto currency of this order

type

string

Event type

cryptoAmount

string

The amount in cryptocurrency of this order

fiatCurrency

string

Fiat currency of this order

fiatAmount

string

The amount in fiat of this order

orderId

string

Unique order identifier

externalId

string

External order identifier (specified by the merchant)

parentExternalId

number

System id of the order

idempotencyKey

string

The external id that was generated while fiat order creating through api.

currency

string

Crypto currency of this order

type

string

Event type

orderId

string

Unique order identifier

externalId

string

External order identifier (specified by the merchant)

parentExternalId

number

System id of the order

idempotencyKey

string

The external id that was generated while fiat order creating through api.

currency

string

Crypto currency of this order

type

string

Event type

reason

string

Reason for fiat order withdrawal failed

orderId

string

Unique order identifier

externalId

string

External order identifier (specified by the merchant)

parentExternalId

number

System id of the order

idempotencyKey

string

The external id that was generated while fiat order creating through api.

currency

string

Crypto currency of this order

type

string

Event type

customerId

string

system id of the customer

customerBlocked

boolean

customer block status

purseId

string

system id of the purse (address)

currency

number

currency of the transaction

customerId

string

system id of the customer

customerBlocked

boolean

customer block status

purseId

string

system id of the purse (address)

transactionId

number

system id of the transaction

amount

number

transaction amount

senderAddress

string

transaction sender address

createdDate

string

transaction creation date

transactionHash

string

transaction hash from the blockchain

currency

string

currency of the transaction

customerId

string

system id of the customer

customerBlocked

boolean

customer block status

purseId

string

system id of the purse (address)

transactionId

string

system id of the transaction

amount

number

transaction amount

currency

string

currency of the transaction

customerId

string

system id of the customer

customerBlocked

boolean

customer block status

purseId

string

system id of the purse (address)

transactionId

string

system id of the transaction

amount

number

transaction amount

currency

string

currency of the transaction

customerId

string

system id of the customer

customerBlocked

boolean

customer block status

purseId

string

system id of the purse (address)

transactionId

string

system id of the transaction

amount

number

transaction amount

senderAddress

string

transaction sender address

transactionHash

string

transaction hash from the blockchain

createdDate

string

transaction creation date

hash

string

transaction hash.

type

string

event type: PAYOUT_CHANGE_STATUS.

parentExternalId

number

system id of the payout.

createdDate

string

date and time of payout creation.

payoutStatus

string

current state of the payout.

idempotencyKey

string

the external id that was generated while payout creating through api.

currency

string

currency of the payout.

type

string

event type: PAYOUT_CONFIRMED.

parentExternalId

number

system id of the payout.

createdDate

string

date and time of payout creation.

approved

array

list of users who approved the payout.

idempotencyKey

string

the external id that was generated while payout creating through api.

currency

string

currency of the payout

type

string

event type: PAYOUT_VALIDATION_ERROR.

parentExternalId

number

system id of the payout.

message

string

validation error message.

createdDate

string

date and time of payout creation.

dealWithdrawalId

number

system id of withdrawal where validation error occured.

validationStatus

string

the reason of validation error.

idempotencyKey

string

the external id that was generated while payout creating through api.

currency

string

currency of the payout.

type

string

event type: INVOICE_COMPLIANCE_CHECK

amount

number

amount of received money to invoice wallet.

transactionId

array

System ID of the invoice deposits.

message

string

text of the invoice.

currency

string

currency of the invoice.

parentExternalId

number

system id of the invoice.

createdDate

string

date and time of invoice creation.

senderAddress

string

wallet address from where funds were sent.

idempotencyKey

string

the external id that was generated while invoice creating through api.

externalId

string

merchant ID of invoice

paymentDate

string

date of deposit transaction creation.

transactionHash

string

hash of the deposit transaction.

fiatAmount

object

invoice amount in fiat currency.

type

string

event type: INVOICE_COMPLIANCE_DECLINED

amount

number

amount of received money to invoice wallet.

transactionId

array

System ID of the invoice deposits.

message

string

text of the invoice.

currency

string

currency of the invoice.

parentExternalId

number

system id of the invoice.

createdDate

string

date and time of invoice creation.

senderAddress

string

wallet address from where funds were sent.

idempotencyKey

string

the external id that was generated while invoice creating through api.

externalId

string

merchant ID of invoice

paymentDate

string

date of deposit transaction creation.

transactionHash

string

hash of the deposit transaction.

fiatAmount

object

invoice amount in fiat currency.

type

string

event type: TOP_UP_COMPLIANCE_CHECK

amount

number

amount of received money to invoice wallet.

currency

string

currency of the invoice.

senderAddress

string

wallet address from where funds were sent.

paymentDate

string

date of deposit transaction creation.

transactionHash

string

hash of the deposit transaction.

fiatAmount

object

invoice amount in fiat currency.

type

string

event type: TOP_UP_COMPLIANCE_DECLINED

amount

number

amount of received money to invoice wallet.

currency

string

currency of the invoice.

senderAddress

string

wallet address from where funds were sent.

paymentDate

string

date of deposit transaction creation.

transactionHash

string

hash of the deposit transaction.

fiatAmount

object

invoice amount in fiat currency

type

string

event type: WALLET_FUNDS_DELIVERED_ACCOUNT

amount

number

amount of received money

currency

string

currency of the invoice.

senderAddress

string

wallet address from where funds were sent.

paymentDate

string

date of deposit transaction creation.

transactionHash

string

hash of the deposit transaction.

fiatAmount

object

invoice amount in fiat currency.

technical support.

Get payout report

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/report/payout HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 705

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "firstDate": "2025-06-07T00:42:47.836Z",
    "lastDate": "2025-06-07T00:42:47.836Z",
    "blockchainList": "text",
    "zoneOffset": {
      "totalSeconds": 1,
      "id": "text",
      "rules": {
        "fixedOffset": true,
        "transitions": [
          {
            "overlap": true,
            "duration": {
              "seconds": 1,
              "zero": true,
              "nano": 1,
              "negative": true,
              "units": [
                {
                  "durationEstimated": true,
                  "timeBased": true,
                  "dateBased": true
                }
              ]
            },
            "gap": true,
            "dateTimeAfter": "2025-06-07T00:42:47.836Z",
            "dateTimeBefore": "2025-06-07T00:42:47.836Z",
            "instant": "2025-06-07T00:42:47.836Z"
          }
        ],
        "transitionRules": [
          {
            "month": "JANUARY",
            "timeDefinition": "UTC",
            "dayOfWeek": "MONDAY",
            "dayOfMonthIndicator": 1,
            "localTime": {
              "hour": 1,
              "minute": 1,
              "second": 1,
              "nano": 1
            },
            "midnightEndOfDay": true
          }
        ]
      }
    }
  }
}
{
  "data": {}
}

Get invoice report

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/report/invoice HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 705

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "firstDate": "2025-06-07T00:42:47.836Z",
    "lastDate": "2025-06-07T00:42:47.836Z",
    "blockchainList": "text",
    "zoneOffset": {
      "totalSeconds": 1,
      "id": "text",
      "rules": {
        "fixedOffset": true,
        "transitions": [
          {
            "overlap": true,
            "duration": {
              "seconds": 1,
              "zero": true,
              "nano": 1,
              "negative": true,
              "units": [
                {
                  "durationEstimated": true,
                  "timeBased": true,
                  "dateBased": true
                }
              ]
            },
            "gap": true,
            "dateTimeAfter": "2025-06-07T00:42:47.836Z",
            "dateTimeBefore": "2025-06-07T00:42:47.836Z",
            "instant": "2025-06-07T00:42:47.836Z"
          }
        ],
        "transitionRules": [
          {
            "month": "JANUARY",
            "timeDefinition": "UTC",
            "dayOfWeek": "MONDAY",
            "dayOfMonthIndicator": 1,
            "localTime": {
              "hour": 1,
              "minute": 1,
              "second": 1,
              "nano": 1
            },
            "midnightEndOfDay": true
          }
        ]
      }
    }
  }
}
{
  "data": {}
}

Get incoming report

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/report/incoming HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 705

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "firstDate": "2025-06-07T00:42:47.836Z",
    "lastDate": "2025-06-07T00:42:47.836Z",
    "blockchainList": "text",
    "zoneOffset": {
      "totalSeconds": 1,
      "id": "text",
      "rules": {
        "fixedOffset": true,
        "transitions": [
          {
            "overlap": true,
            "duration": {
              "seconds": 1,
              "zero": true,
              "nano": 1,
              "negative": true,
              "units": [
                {
                  "durationEstimated": true,
                  "timeBased": true,
                  "dateBased": true
                }
              ]
            },
            "gap": true,
            "dateTimeAfter": "2025-06-07T00:42:47.836Z",
            "dateTimeBefore": "2025-06-07T00:42:47.836Z",
            "instant": "2025-06-07T00:42:47.836Z"
          }
        ],
        "transitionRules": [
          {
            "month": "JANUARY",
            "timeDefinition": "UTC",
            "dayOfWeek": "MONDAY",
            "dayOfMonthIndicator": 1,
            "localTime": {
              "hour": 1,
              "minute": 1,
              "second": 1,
              "nano": 1
            },
            "midnightEndOfDay": true
          }
        ]
      }
    }
  }
}
{
  "data": {}
}

Get fiat report

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/report/fiat HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 705

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "firstDate": "2025-06-07T00:42:47.836Z",
    "lastDate": "2025-06-07T00:42:47.836Z",
    "blockchainList": "text",
    "zoneOffset": {
      "totalSeconds": 1,
      "id": "text",
      "rules": {
        "fixedOffset": true,
        "transitions": [
          {
            "overlap": true,
            "duration": {
              "seconds": 1,
              "zero": true,
              "nano": 1,
              "negative": true,
              "units": [
                {
                  "durationEstimated": true,
                  "timeBased": true,
                  "dateBased": true
                }
              ]
            },
            "gap": true,
            "dateTimeAfter": "2025-06-07T00:42:47.836Z",
            "dateTimeBefore": "2025-06-07T00:42:47.836Z",
            "instant": "2025-06-07T00:42:47.836Z"
          }
        ],
        "transitionRules": [
          {
            "month": "JANUARY",
            "timeDefinition": "UTC",
            "dayOfWeek": "MONDAY",
            "dayOfMonthIndicator": 1,
            "localTime": {
              "hour": 1,
              "minute": 1,
              "second": 1,
              "nano": 1
            },
            "midnightEndOfDay": true
          }
        ]
      }
    }
  }
}
{
  "data": {}
}

Get exchange report

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/report/exchange HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 705

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "firstDate": "2025-06-07T00:42:47.836Z",
    "lastDate": "2025-06-07T00:42:47.836Z",
    "blockchainList": "text",
    "zoneOffset": {
      "totalSeconds": 1,
      "id": "text",
      "rules": {
        "fixedOffset": true,
        "transitions": [
          {
            "overlap": true,
            "duration": {
              "seconds": 1,
              "zero": true,
              "nano": 1,
              "negative": true,
              "units": [
                {
                  "durationEstimated": true,
                  "timeBased": true,
                  "dateBased": true
                }
              ]
            },
            "gap": true,
            "dateTimeAfter": "2025-06-07T00:42:47.836Z",
            "dateTimeBefore": "2025-06-07T00:42:47.836Z",
            "instant": "2025-06-07T00:42:47.836Z"
          }
        ],
        "transitionRules": [
          {
            "month": "JANUARY",
            "timeDefinition": "UTC",
            "dayOfWeek": "MONDAY",
            "dayOfMonthIndicator": 1,
            "localTime": {
              "hour": 1,
              "minute": 1,
              "second": 1,
              "nano": 1
            },
            "midnightEndOfDay": true
          }
        ]
      }
    }
  }
}
{
  "data": {}
}

Get balance report

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/report/balance HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 705

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "firstDate": "2025-06-07T00:42:47.836Z",
    "lastDate": "2025-06-07T00:42:47.836Z",
    "blockchainList": "text",
    "zoneOffset": {
      "totalSeconds": 1,
      "id": "text",
      "rules": {
        "fixedOffset": true,
        "transitions": [
          {
            "overlap": true,
            "duration": {
              "seconds": 1,
              "zero": true,
              "nano": 1,
              "negative": true,
              "units": [
                {
                  "durationEstimated": true,
                  "timeBased": true,
                  "dateBased": true
                }
              ]
            },
            "gap": true,
            "dateTimeAfter": "2025-06-07T00:42:47.836Z",
            "dateTimeBefore": "2025-06-07T00:42:47.836Z",
            "instant": "2025-06-07T00:42:47.836Z"
          }
        ],
        "transitionRules": [
          {
            "month": "JANUARY",
            "timeDefinition": "UTC",
            "dayOfWeek": "MONDAY",
            "dayOfMonthIndicator": 1,
            "localTime": {
              "hour": 1,
              "minute": 1,
              "second": 1,
              "nano": 1
            },
            "midnightEndOfDay": true
          }
        ]
      }
    }
  }
}
{
  "data": {}
}

Get a payout

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/settlement/payout HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 112

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "id": "text",
    "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000"
  }
}
{
  "id": "text",
  "account": "text",
  "depositAddress": "text",
  "amount": 1,
  "currency": "text",
  "calypsoFee": 1,
  "calypsoFeePercentage": 1,
  "calypsoFeeCurrency": "text",
  "blockchainFee": 1,
  "blockchainFeeCurrency": "text",
  "state": "CREATION_IN_PROGRESS",
  "createdDate": "2025-06-07T00:42:47.836Z",
  "transactionHash": "text",
  "comment": "text",
  "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
  "errors": {
    "withdrawalErrors": [
      {
        "withdrawalId": "text",
        "errors": [
          {
            "id": 1,
            "status": "SUCCESS",
            "errorResolved": true,
            "errorMessage": "text"
          }
        ]
      }
    ]
  },
  "cancellation": {
    "canceledByUserId": "text",
    "canceledByFirstname": "text",
    "canceledByLastname": "text",
    "cancelMessage": "text"
  }
}

Get a withdrawal

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/settlement/payout/withdrawals HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 63

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "requestId": "text"
  }
}
{
  "id": "text",
  "account": "text",
  "withdrawalId": 1,
  "amount": 1,
  "currency": "text",
  "state": "DRAFT",
  "calypsoFee": 1,
  "calypsoFeeCurrency": "text",
  "blockchainFee": 1,
  "blockchainFeeCurrency": "text",
  "transactionHash": "text",
  "depositAddress": "text",
  "comment": "text",
  "createdDate": "2025-06-07T00:42:47.836Z",
  "withdrawalErrors": [
    {
      "id": 1,
      "status": "SUCCESS",
      "errorResolved": true,
      "errorMessage": "text"
    }
  ]
}

Get withdrawals

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/settlement/payout/withdrawals/all HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 168

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "stateNames": [
      "DRAFT"
    ],
    "pageNumber": 1,
    "pageSize": 10,
    "dealId": "text",
    "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000"
  }
}
{
  "result": [
    {
      "id": "text",
      "account": "text",
      "withdrawalId": 1,
      "amount": 1,
      "currency": "text",
      "state": "DRAFT",
      "calypsoFee": 1,
      "calypsoFeeCurrency": "text",
      "blockchainFee": 1,
      "blockchainFeeCurrency": "text",
      "transactionHash": "text",
      "depositAddress": "text",
      "comment": "text",
      "createdDate": "2025-06-07T00:42:47.836Z",
      "withdrawalErrors": [
        {
          "id": 1,
          "status": "SUCCESS",
          "errorResolved": true,
          "errorMessage": "text"
        }
      ]
    }
  ],
  "page": 1,
  "size": 1,
  "total": 1,
  "totalElements": 1
}

Get a mass payout

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/settlement/payout/mass HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 112

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "id": "text",
    "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000"
  }
}
{
  "id": "text",
  "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
  "companyId": "123e4567-e89b-12d3-a456-426614174000",
  "account": "text",
  "state": "CREATION_IN_PROGRESS",
  "comment": "text",
  "name": "text",
  "currency": "text",
  "totalWithdrawalAmount": 1,
  "totalCalypsoFee": 1,
  "totalCalypsoFeePercentage": 1,
  "calypsoFeeCurrency": "text",
  "blockchainFee": 1,
  "blockchainFeeCurrency": "text",
  "errors": {
    "withdrawalErrors": [
      {
        "withdrawalId": "text",
        "errors": [
          {
            "id": 1,
            "status": "SUCCESS",
            "errorResolved": true,
            "errorMessage": "text"
          }
        ]
      }
    ]
  }
}

Create a mass payout

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/settlement/payout/mass/create HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 311

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "withdrawalAddress": "text",
    "currency": "text",
    "name": "text",
    "comment": "text",
    "massAddresses": [
      {
        "depositAddress": "text",
        "amount": 1,
        "comment": "text"
      }
    ],
    "executionDate": "2025-06-07T00:42:47.836Z",
    "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
    "externalId": "text"
  }
}
{
  "id": "text",
  "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
  "companyId": "123e4567-e89b-12d3-a456-426614174000",
  "account": "text",
  "state": "CREATION_IN_PROGRESS",
  "comment": "text",
  "name": "text",
  "currency": "text",
  "totalWithdrawalAmount": 1,
  "totalCalypsoFee": 1,
  "totalCalypsoFeePercentage": 1,
  "calypsoFeeCurrency": "text",
  "blockchainFee": 1,
  "blockchainFeeCurrency": "text",
  "errors": {
    "withdrawalErrors": [
      {
        "withdrawalId": "text",
        "errors": [
          {
            "id": 1,
            "status": "SUCCESS",
            "errorResolved": true,
            "errorMessage": "text"
          }
        ]
      }
    ]
  }
}

Cancel mass payout

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/settlement/payout/mass/cancel HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 133

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "dealId": "text",
    "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
    "message": "text"
  }
}
{
  "id": "text",
  "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
  "companyId": "123e4567-e89b-12d3-a456-426614174000",
  "account": "text",
  "state": "CREATION_IN_PROGRESS",
  "comment": "text",
  "name": "text",
  "currency": "text",
  "totalWithdrawalAmount": 1,
  "totalCalypsoFee": 1,
  "totalCalypsoFeePercentage": 1,
  "calypsoFeeCurrency": "text",
  "blockchainFee": 1,
  "blockchainFeeCurrency": "text",
  "errors": {
    "withdrawalErrors": [
      {
        "withdrawalId": "text",
        "errors": [
          {
            "id": 1,
            "status": "SUCCESS",
            "errorResolved": true,
            "errorMessage": "text"
          }
        ]
      }
    ]
  }
}

Get mass payouts

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/settlement/payout/mass/all HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 107

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "stateNames": [
      "CREATION_IN_PROGRESS"
    ],
    "pageNumber": 1,
    "size": 10
  }
}
{
  "result": [
    {
      "id": "text",
      "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
      "companyId": "123e4567-e89b-12d3-a456-426614174000",
      "account": "text",
      "state": "CREATION_IN_PROGRESS",
      "comment": "text",
      "name": "text",
      "currency": "text",
      "totalWithdrawalAmount": 1,
      "totalCalypsoFee": 1,
      "totalCalypsoFeePercentage": 1,
      "calypsoFeeCurrency": "text",
      "blockchainFee": 1,
      "blockchainFeeCurrency": "text",
      "errors": {
        "withdrawalErrors": [
          {
            "withdrawalId": "text",
            "errors": [
              {
                "id": 1,
                "status": "SUCCESS",
                "errorResolved": true,
                "errorMessage": "text"
              }
            ]
          }
        ]
      }
    }
  ],
  "page": 1,
  "size": 1,
  "total": 1,
  "totalElements": 1
}

Create a payout

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/settlement/payout/create HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 260

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "withdrawalAddress": "text",
    "depositAddress": "text",
    "amount": 1,
    "currency": "text",
    "comment": "text",
    "executionDate": "2025-06-07T00:42:47.836Z",
    "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
    "externalId": "text"
  }
}
{
  "id": "text",
  "account": "text",
  "depositAddress": "text",
  "amount": 1,
  "currency": "text",
  "calypsoFee": 1,
  "calypsoFeePercentage": 1,
  "calypsoFeeCurrency": "text",
  "blockchainFee": 1,
  "blockchainFeeCurrency": "text",
  "state": "CREATION_IN_PROGRESS",
  "createdDate": "2025-06-07T00:42:47.836Z",
  "transactionHash": "text",
  "comment": "text",
  "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
  "errors": {
    "withdrawalErrors": [
      {
        "withdrawalId": "text",
        "errors": [
          {
            "id": 1,
            "status": "SUCCESS",
            "errorResolved": true,
            "errorMessage": "text"
          }
        ]
      }
    ]
  },
  "cancellation": {
    "canceledByUserId": "text",
    "canceledByFirstname": "text",
    "canceledByLastname": "text",
    "cancelMessage": "text"
  }
}

Cancel payout

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/settlement/payout/cancel HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 133

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "dealId": "text",
    "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
    "message": "text"
  }
}
{
  "id": "text",
  "account": "text",
  "depositAddress": "text",
  "amount": 1,
  "currency": "text",
  "calypsoFee": 1,
  "calypsoFeePercentage": 1,
  "calypsoFeeCurrency": "text",
  "blockchainFee": 1,
  "blockchainFeeCurrency": "text",
  "state": "CREATION_IN_PROGRESS",
  "createdDate": "2025-06-07T00:42:47.836Z",
  "transactionHash": "text",
  "comment": "text",
  "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
  "errors": {
    "withdrawalErrors": [
      {
        "withdrawalId": "text",
        "errors": [
          {
            "id": 1,
            "status": "SUCCESS",
            "errorResolved": true,
            "errorMessage": "text"
          }
        ]
      }
    ]
  },
  "cancellation": {
    "canceledByUserId": "text",
    "canceledByFirstname": "text",
    "canceledByLastname": "text",
    "cancelMessage": "text"
  }
}

Get payouts

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/settlement/payout/all HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 107

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "stateNames": [
      "CREATION_IN_PROGRESS"
    ],
    "pageNumber": 1,
    "size": 10
  }
}
{
  "result": [
    {
      "id": "text",
      "account": "text",
      "depositAddress": "text",
      "amount": 1,
      "currency": "text",
      "calypsoFee": 1,
      "calypsoFeePercentage": 1,
      "calypsoFeeCurrency": "text",
      "blockchainFee": 1,
      "blockchainFeeCurrency": "text",
      "state": "CREATION_IN_PROGRESS",
      "createdDate": "2025-06-07T00:42:47.836Z",
      "transactionHash": "text",
      "comment": "text",
      "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
      "errors": {
        "withdrawalErrors": [
          {
            "withdrawalId": "text",
            "errors": [
              {
                "id": 1,
                "status": "SUCCESS",
                "errorResolved": true,
                "errorMessage": "text"
              }
            ]
          }
        ]
      },
      "cancellation": {
        "canceledByUserId": "text",
        "canceledByFirstname": "text",
        "canceledByLastname": "text",
        "cancelMessage": "text"
      }
    }
  ],
  "page": 1,
  "size": 1,
  "total": 1,
  "totalElements": 1
}

Get list of Webhook Subscriptions

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/subscription/webhook HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 32

{
  "account": "text",
  "timestamp": 1
}
{
  "subscriptions": [
    {
      "requestId": "123e4567-e89b-12d3-a456-426614174000",
      "notificationEventTypes": [
        "PAYOUT_CHANGE_STATUS"
      ],
      "url": "text",
      "publicKey": "text",
      "secretKey": "text",
      "createdDate": "2025-06-07T00:42:47.836Z"
    }
  ]
}

Delete Webhook

delete

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
400
Bad Request
*/*
500
Internal Server Error
*/*
delete
DELETE /api/v1/subscription/webhook HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 95

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "requestId": "123e4567-e89b-12d3-a456-426614174000"
  }
}

No content

Create Webhook

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/subscription/webhook/create HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 196

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "requestId": "123e4567-e89b-12d3-a456-426614174000",
    "notificationEventTypes": [
      "PAYOUT_CHANGE_STATUS"
    ],
    "notificationServiceTypes": [
      "PAYOUT"
    ],
    "url": "text"
  }
}
{
  "requestId": "123e4567-e89b-12d3-a456-426614174000",
  "notificationEventTypes": [
    "PAYOUT_CHANGE_STATUS"
  ],
  "url": "text",
  "publicKey": "text",
  "secretKey": "text",
  "createdDate": "2025-06-07T00:42:47.836Z"
}

Change Webhook

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/subscription/webhook/change HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 196

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "requestId": "123e4567-e89b-12d3-a456-426614174000",
    "notificationEventTypes": [
      "PAYOUT_CHANGE_STATUS"
    ],
    "notificationServiceTypes": [
      "PAYOUT"
    ],
    "url": "text"
  }
}
{
  "requestId": "123e4567-e89b-12d3-a456-426614174000",
  "notificationEventTypes": [
    "PAYOUT_CHANGE_STATUS"
  ],
  "url": "text",
  "publicKey": "text",
  "secretKey": "text",
  "createdDate": "2025-06-07T00:42:47.836Z"
}

Regenerate Webhook Api keys

delete

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
delete
DELETE /api/v1/subscription/webhook/api-keys/regenerate HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 78

{
  "timestamp": 1,
  "payload": {
    "requestId": "123e4567-e89b-12d3-a456-426614174000"
  }
}
{
  "requestId": "123e4567-e89b-12d3-a456-426614174000",
  "notificationEventTypes": [
    "PAYOUT_CHANGE_STATUS"
  ],
  "url": "text",
  "publicKey": "text",
  "secretKey": "text",
  "createdDate": "2025-06-07T00:42:47.836Z"
}

Get specific Payout

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/payout HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 112

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "id": "text",
    "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000"
  }
}
{
  "id": "text",
  "account": "text",
  "depositAddress": "text",
  "amount": 1,
  "currency": "text",
  "calypsoFee": 1,
  "calypsoFeePercentage": 1,
  "state": "CREATION_IN_PROGRESS",
  "createdDate": "2025-06-07T00:42:47.836Z",
  "transactionHash": "text",
  "comment": "text",
  "executionDate": "2025-06-07T00:42:47.836Z",
  "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
  "errors": {
    "withdrawalErrors": [
      {
        "withdrawalId": "text",
        "errors": [
          {
            "id": 1,
            "status": "SUCCESS",
            "errorResolved": true,
            "errorMessage": "text"
          }
        ]
      }
    ]
  },
  "cancellation": {
    "canceledByUserId": "text",
    "canceledByFirstname": "text",
    "canceledByLastname": "text",
    "cancelMessage": "text"
  },
  "belongingType": "INTERNAL"
}

Get specific Transaction from the Payout

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/payout/withdrawal HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 63

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "requestId": "text"
  }
}
{
  "id": "text",
  "account": "text",
  "companyName": "text",
  "amount": 1,
  "currency": "text",
  "state": "DRAFT",
  "calypsoFee": 1,
  "transactionHash": "text",
  "depositAddress": "text",
  "comment": "text",
  "createdDate": "2025-06-07T00:42:47.836Z",
  "withdrawalErrors": [
    {
      "id": 1,
      "status": "SUCCESS",
      "errorResolved": true,
      "errorMessage": "text"
    }
  ],
  "belongingType": "INTERNAL"
}

Get specific Transactions from the Payout

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/payout/withdrawal/all HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 168

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "stateNames": [
      "DRAFT"
    ],
    "pageNumber": 1,
    "pageSize": 10,
    "dealId": "text",
    "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000"
  }
}
{
  "result": [
    {
      "id": "text",
      "account": "text",
      "companyName": "text",
      "amount": 1,
      "currency": "text",
      "state": "DRAFT",
      "calypsoFee": 1,
      "transactionHash": "text",
      "depositAddress": "text",
      "comment": "text",
      "createdDate": "2025-06-07T00:42:47.836Z",
      "withdrawalErrors": [
        {
          "id": 1,
          "status": "SUCCESS",
          "errorResolved": true,
          "errorMessage": "text"
        }
      ],
      "belongingType": "INTERNAL"
    }
  ],
  "page": 1,
  "size": 1,
  "total": 1,
  "totalElements": 1
}

Get specific Mass Payout

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/payout/mass HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 112

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "id": "text",
    "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000"
  }
}
{
  "id": "text",
  "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
  "companyId": "123e4567-e89b-12d3-a456-426614174000",
  "account": "text",
  "state": "CREATION_IN_PROGRESS",
  "comment": "text",
  "name": "text",
  "currency": "text",
  "totalWithdrawalAmount": 1,
  "totalCalypsoFee": 1,
  "totalCalypsoFeePercentage": 1,
  "executionDate": "2025-06-07T00:42:47.836Z",
  "errors": {
    "withdrawalErrors": [
      {
        "withdrawalId": "text",
        "errors": [
          {
            "id": 1,
            "status": "SUCCESS",
            "errorResolved": true,
            "errorMessage": "text"
          }
        ]
      }
    ]
  }
}

New Mass Payout

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/payout/mass/create HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 284

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "currency": "text",
    "name": "text",
    "comment": "text",
    "massAddresses": [
      {
        "depositAddress": "text",
        "amount": 1,
        "comment": "text"
      }
    ],
    "executionDate": "2025-06-07T00:42:47.836Z",
    "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
    "externalId": "text"
  }
}
{
  "id": "text",
  "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
  "companyId": "123e4567-e89b-12d3-a456-426614174000",
  "account": "text",
  "state": "CREATION_IN_PROGRESS",
  "comment": "text",
  "name": "text",
  "currency": "text",
  "totalWithdrawalAmount": 1,
  "totalCalypsoFee": 1,
  "totalCalypsoFeePercentage": 1,
  "executionDate": "2025-06-07T00:42:47.836Z",
  "errors": {
    "withdrawalErrors": [
      {
        "withdrawalId": "text",
        "errors": [
          {
            "id": 1,
            "status": "SUCCESS",
            "errorResolved": true,
            "errorMessage": "text"
          }
        ]
      }
    ]
  }
}

Cancel Mass Payout

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/payout/mass/cancel HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 133

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "dealId": "text",
    "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
    "message": "text"
  }
}
{
  "id": "text",
  "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
  "companyId": "123e4567-e89b-12d3-a456-426614174000",
  "account": "text",
  "state": "CREATION_IN_PROGRESS",
  "comment": "text",
  "name": "text",
  "currency": "text",
  "totalWithdrawalAmount": 1,
  "totalCalypsoFee": 1,
  "totalCalypsoFeePercentage": 1,
  "executionDate": "2025-06-07T00:42:47.836Z",
  "errors": {
    "withdrawalErrors": [
      {
        "withdrawalId": "text",
        "errors": [
          {
            "id": 1,
            "status": "SUCCESS",
            "errorResolved": true,
            "errorMessage": "text"
          }
        ]
      }
    ]
  }
}

Get all Mass Payouts

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/payout/mass/all HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 138

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "stateNames": [
      "CREATION_IN_PROGRESS"
    ],
    "isExecutionDateInFuture": true,
    "pageNumber": 1,
    "size": 10
  }
}
{
  "result": [
    {
      "id": "text",
      "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
      "companyId": "123e4567-e89b-12d3-a456-426614174000",
      "account": "text",
      "state": "CREATION_IN_PROGRESS",
      "comment": "text",
      "name": "text",
      "currency": "text",
      "totalWithdrawalAmount": 1,
      "totalCalypsoFee": 1,
      "totalCalypsoFeePercentage": 1,
      "executionDate": "2025-06-07T00:42:47.836Z",
      "errors": {
        "withdrawalErrors": [
          {
            "withdrawalId": "text",
            "errors": [
              {
                "id": 1,
                "status": "SUCCESS",
                "errorResolved": true,
                "errorMessage": "text"
              }
            ]
          }
        ]
      }
    }
  ],
  "page": 1,
  "size": 1,
  "total": 1,
  "totalElements": 1
}

New Payout

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/payout/create HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 233

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "depositAddress": "text",
    "amount": 1,
    "currency": "text",
    "comment": "text",
    "executionDate": "2025-06-07T00:42:47.836Z",
    "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
    "externalId": "text"
  }
}
{
  "id": "text",
  "account": "text",
  "depositAddress": "text",
  "amount": 1,
  "currency": "text",
  "calypsoFee": 1,
  "calypsoFeePercentage": 1,
  "state": "CREATION_IN_PROGRESS",
  "createdDate": "2025-06-07T00:42:47.836Z",
  "transactionHash": "text",
  "comment": "text",
  "executionDate": "2025-06-07T00:42:47.836Z",
  "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
  "errors": {
    "withdrawalErrors": [
      {
        "withdrawalId": "text",
        "errors": [
          {
            "id": 1,
            "status": "SUCCESS",
            "errorResolved": true,
            "errorMessage": "text"
          }
        ]
      }
    ]
  },
  "cancellation": {
    "canceledByUserId": "text",
    "canceledByFirstname": "text",
    "canceledByLastname": "text",
    "cancelMessage": "text"
  },
  "belongingType": "INTERNAL"
}

Cancel Single Payout

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/payout/cancel HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 133

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "dealId": "text",
    "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
    "message": "text"
  }
}
{
  "id": "text",
  "account": "text",
  "depositAddress": "text",
  "amount": 1,
  "currency": "text",
  "calypsoFee": 1,
  "calypsoFeePercentage": 1,
  "state": "CREATION_IN_PROGRESS",
  "createdDate": "2025-06-07T00:42:47.836Z",
  "transactionHash": "text",
  "comment": "text",
  "executionDate": "2025-06-07T00:42:47.836Z",
  "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
  "errors": {
    "withdrawalErrors": [
      {
        "withdrawalId": "text",
        "errors": [
          {
            "id": 1,
            "status": "SUCCESS",
            "errorResolved": true,
            "errorMessage": "text"
          }
        ]
      }
    ]
  },
  "cancellation": {
    "canceledByUserId": "text",
    "canceledByFirstname": "text",
    "canceledByLastname": "text",
    "cancelMessage": "text"
  },
  "belongingType": "INTERNAL"
}

Get all Payouts

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/payout/all HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 138

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "stateNames": [
      "CREATION_IN_PROGRESS"
    ],
    "isExecutionDateInFuture": true,
    "pageNumber": 1,
    "size": 10
  }
}
{
  "result": [
    {
      "id": "text",
      "account": "text",
      "depositAddress": "text",
      "amount": 1,
      "currency": "text",
      "calypsoFee": 1,
      "calypsoFeePercentage": 1,
      "state": "CREATION_IN_PROGRESS",
      "createdDate": "2025-06-07T00:42:47.836Z",
      "transactionHash": "text",
      "comment": "text",
      "executionDate": "2025-06-07T00:42:47.836Z",
      "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
      "errors": {
        "withdrawalErrors": [
          {
            "withdrawalId": "text",
            "errors": [
              {
                "id": 1,
                "status": "SUCCESS",
                "errorResolved": true,
                "errorMessage": "text"
              }
            ]
          }
        ]
      },
      "cancellation": {
        "canceledByUserId": "text",
        "canceledByFirstname": "text",
        "canceledByLastname": "text",
        "cancelMessage": "text"
      },
      "belongingType": "INTERNAL"
    }
  ],
  "page": 1,
  "size": 1,
  "total": 1,
  "totalElements": 1
}

Pre-calculate the exchange

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/exchange/pre-calculate HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 108

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "sourceCurrency": "text",
    "destinationCurrency": "text",
    "amount": 1
  }
}
{
  "sourceCurrency": "text",
  "destinationCurrency": "text",
  "amount": 1
}

Get currency pairs

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/exchange/pairs HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 32

{
  "account": "text",
  "timestamp": 1
}
{
  "currencyPairs": {
    "ANY_ADDITIONAL_PROPERTY": [
      {
        "name": "text",
        "feeCurrencyName": "text",
        "coinId": "text",
        "networkData": {
          "frontName": "text",
          "type": "text"
        },
        "scale": 1,
        "blockchainScale": 1,
        "garbageAmount": 1,
        "crypto": true,
        "blockchainName": "text",
        "contract": "text",
        "enabled": true,
        "active": true
      }
    ]
  }
}

Get upper exchange limit by currency

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/exchange/limit HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 97

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "sourceCurrency": "text",
    "destinationCurrency": "text"
  }
}
{
  "sourceCurrency": "text",
  "destinationCurrency": {
    "name": "text",
    "feeCurrencyName": "text",
    "coinId": "text",
    "networkData": {
      "frontName": "text",
      "type": "text"
    },
    "scale": 1,
    "blockchainScale": 1,
    "garbageAmount": 1,
    "crypto": true,
    "blockchainName": "text",
    "contract": "text",
    "enabled": true,
    "active": true
  },
  "minLimit": 1,
  "maxLimit": 1
}

Get exchange

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/exchange/get HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 51

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "id": 1
  }
}
{
  "id": 1,
  "account": "text",
  "sourceCurrency": "text",
  "sourceAmount": 1,
  "destinationCurrency": "text",
  "destinationAmount": 1,
  "state": "IN_PROGRESS",
  "createdDate": "2025-06-07T00:42:47.836Z"
}

Find exchange by filter

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/exchange/filter HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 269

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "createdDate": {
      "period": {
        "firstDate": "2025-06-07T00:42:47.836Z",
        "secondDate": "2025-06-07T00:42:47.836Z"
      },
      "date": "2025-06-07T00:42:47.836Z"
    },
    "state": [
      "IN_PROGRESS"
    ],
    "pageNumber": 1,
    "pageSize": 1,
    "sort": "ASC",
    "properties": "text"
  }
}
{
  "result": [
    {
      "id": 1,
      "account": "text",
      "sourceCurrency": "text",
      "sourceAmount": 1,
      "destinationCurrency": "text",
      "destinationAmount": 1,
      "state": "IN_PROGRESS",
      "createdDate": "2025-06-07T00:42:47.836Z"
    }
  ],
  "page": 1,
  "size": 1,
  "total": 1,
  "totalElements": 1
}

Create exchange

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/exchange/create HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 108

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "sourceCurrency": "text",
    "destinationCurrency": "text",
    "amount": 1
  }
}
{
  "id": 1,
  "account": "text",
  "sourceCurrency": "text",
  "sourceAmount": 1,
  "destinationCurrency": "text",
  "destinationAmount": 1,
  "state": "IN_PROGRESS",
  "createdDate": "2025-06-07T00:42:47.836Z"
}

Get average rate for currency pair

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/exchange/average-rate HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 97

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "sourceCurrency": "text",
    "destinationCurrency": "text"
  }
}
{
  "rate": 1
}

Get fiat info

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/fiat/order HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 68

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "idempotencyKey": "text"
  }
}
{
  "invoiceId": "text",
  "state": "unpaid",
  "shopId": "text",
  "orderUnpaidType": "text",
  "currency": "text",
  "orderCryptoAmount": 1,
  "paymentCryptoAmount": 1,
  "fiatCurrency": "ARS",
  "orderFiatAmount": 1,
  "paymentFiatAmount": 1,
  "adjustment": {
    "currency": "text",
    "fiatCurrency": "ARS",
    "sumAfterAdjustment": 1,
    "reason": "text",
    "adjustmentDate": "2025-06-07T00:42:47.836Z"
  }
}

Get method

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/fiat/method HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 341

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "currency": {
      "name": "text",
      "feeCurrencyName": "text",
      "coinId": "text",
      "networkData": {
        "frontName": "text",
        "type": "text"
      },
      "scale": 1,
      "blockchainScale": 1,
      "garbageAmount": 1,
      "crypto": true,
      "blockchainName": "text",
      "contract": "text",
      "enabled": true,
      "active": true
    },
    "geoId": "123e4567-e89b-12d3-a456-426614174000"
  }
}
{
  "method": [
    {
      "methodName": "text",
      "methodCode": "text",
      "fixedRateId": "123e4567-e89b-12d3-a456-426614174000",
      "fixedRate": 1,
      "expiredFixedRateDate": "2025-06-07T00:42:47.836Z",
      "minLimit": 1,
      "maxLimit": 1
    }
  ]
}

Get geo

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/fiat/geo HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 32

{
  "account": "text",
  "timestamp": 1
}
{
  "geo": [
    {
      "geoId": "123e4567-e89b-12d3-a456-426614174000",
      "geoName": "text",
      "geoCode": "text",
      "fiatCurrency": "ARS"
    }
  ]
}

Create order

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/fiat/create/order HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 255

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "orderType": "INVOICE",
    "amountInCrypto": 1,
    "amountInFiat": 1,
    "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
    "rateId": "123e4567-e89b-12d3-a456-426614174000",
    "redirectUrl": "text",
    "merchantExternalId": "text"
  }
}
{
  "url": "text"
}

Get information about the current user

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/user/current HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 15

{
  "timestamp": 1
}
{
  "userFullInfo": {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "username": "123e4567-e89b-12d3-a456-426614174000",
    "companyId": "123e4567-e89b-12d3-a456-426614174000",
    "companyName": "text",
    "active": true,
    "blocked": true,
    "roles": [
      "SYSTEM"
    ]
  },
  "permissions": [
    {
      "accountId": "text",
      "accountName": "text",
      "permissionGroups": [
        {
          "groupId": 1,
          "name": "text",
          "permissionData": {
            "ANY_ADDITIONAL_PROPERTY": "text"
          }
        }
      ]
    }
  ],
  "availableAccounts": [
    {
      "account": "text",
      "name": "text"
    }
  ]
}

Get exchange rates

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/rate HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 541

{
  "timestamp": 1,
  "payload": {
    "fromCurrencies": [
      {
        "name": "text",
        "feeCurrencyName": "text",
        "coinId": "text",
        "networkData": {
          "frontName": "text",
          "type": "text"
        },
        "scale": 1,
        "blockchainScale": 1,
        "garbageAmount": 1,
        "crypto": true,
        "blockchainName": "text",
        "contract": "text",
        "enabled": true,
        "active": true
      }
    ],
    "toCurrencies": [
      {
        "name": "text",
        "feeCurrencyName": "text",
        "coinId": "text",
        "networkData": {
          "frontName": "text",
          "type": "text"
        },
        "scale": 1,
        "blockchainScale": 1,
        "garbageAmount": 1,
        "crypto": true,
        "blockchainName": "text",
        "contract": "text",
        "enabled": true,
        "active": true
      }
    ]
  }
}
{
  "currencyRates": [
    {
      "fromCurrency": "text",
      "toCurrency": "text",
      "rates": 1,
      "ratesDate": "2025-06-07T00:42:47.836Z"
    }
  ]
}

Get fiat exchange rates

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/rate/fiat HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 288

{
  "timestamp": 1,
  "payload": {
    "from": [
      {
        "name": "text",
        "feeCurrencyName": "text",
        "coinId": "text",
        "networkData": {
          "frontName": "text",
          "type": "text"
        },
        "scale": 1,
        "blockchainScale": 1,
        "garbageAmount": 1,
        "crypto": true,
        "blockchainName": "text",
        "contract": "text",
        "enabled": true,
        "active": true
      }
    ],
    "to": [
      "ARS"
    ]
  }
}
{
  "ratesMap": {
    "ANY_ADDITIONAL_PROPERTY": {
      "ANY_ADDITIONAL_PROPERTY": 1
    }
  }
}

Get a wallet

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/settlement/wallet HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 61

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "address": "text"
  }
}
{
  "name": "text",
  "address": "text",
  "blockchain": "text",
  "balances": [
    {
      "currency": "text",
      "amount": 1,
      "token": true
    }
  ]
}

Get transactions

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/settlement/wallet/transactions HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 190

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "walletAddress": "text",
    "addressTo": "text",
    "opcodes": [
      "WITHDRAWAL"
    ],
    "currency": "text",
    "pageNumber": 1,
    "pageSize": 1,
    "sort": "ASC",
    "properties": "text"
  }
}
{
  "result": [
    {
      "amount": 1,
      "currency": "text",
      "opCode": "WITHDRAWAL",
      "addressTo": "text",
      "serviceFee": 1,
      "serviceFeeCurrency": "text",
      "networkFee": 1,
      "networkFeeCurrency": "text",
      "transactionHash": "text",
      "createdDate": "2025-06-07T00:42:47.836Z"
    }
  ],
  "page": 1,
  "size": 1,
  "total": 1,
  "totalElements": 1
}

Rename wallet

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/settlement/wallet/rename HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 75

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "address": "text",
    "name": "text"
  }
}

No content

Get available operation codes

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/settlement/wallet/opcodes HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 32

{
  "account": "text",
  "timestamp": 1
}
{
  "opCodes": [
    "WITHDRAWAL"
  ]
}

Create a wallet

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/settlement/wallet/create HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 78

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "name": "text",
    "blockchain": "text"
  }
}
{
  "name": "text",
  "address": "text",
  "blockchain": "text",
  "balances": [
    {
      "currency": "text",
      "amount": 1,
      "token": true
    }
  ]
}

Archive wallet

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/settlement/wallet/archive HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 61

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "address": "text"
  }
}

No content

Get wallets

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/settlement/wallet/all HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 166

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "blockchain": "text",
    "currency": "text",
    "nameOrAddress": "text",
    "pageNumber": 1,
    "pageSize": 1,
    "sort": "ASC",
    "properties": "text"
  }
}
{
  "result": [
    {
      "name": "text",
      "address": "text",
      "blockchain": "text",
      "balances": [
        {
          "currency": "text",
          "amount": 1,
          "token": true
        }
      ]
    }
  ],
  "page": 1,
  "size": 1,
  "total": 1,
  "totalElements": 1
}

Get fiat info

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/fiat/withdrawal/order HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 88

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "id": "123e4567-e89b-12d3-a456-426614174000"
  }
}
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "cryptoAmount": 1,
  "fiatAmount": 1,
  "fiatCurrency": "ARS",
  "currency": "text",
  "state": "CREATED"
}

Get method

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/fiat/withdrawal/method HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 189

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "itemId": "123e4567-e89b-12d3-a456-426614174000",
    "geoId": "123e4567-e89b-12d3-a456-426614174000",
    "cryptoAmount": 1,
    "fiatAmount": 1,
    "currency": "text"
  }
}
{
  "fixedRateId": "123e4567-e89b-12d3-a456-426614174000",
  "rateExpiredDate": "2025-06-07T00:42:47.836Z",
  "methods": [
    {
      "itemId": "123e4567-e89b-12d3-a456-426614174000",
      "fiatAmount": 1,
      "cryptoAmount": 1,
      "withdrawalSettingsType": "CARD",
      "currency": "text",
      "fiatCurrency": "ARS",
      "minLimit": 1,
      "maxLimit": 1
    }
  ]
}

Get geo

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/fiat/withdrawal/geo HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 32

{
  "account": "text",
  "timestamp": 1
}
{
  "geo": [
    {
      "geoId": "123e4567-e89b-12d3-a456-426614174000",
      "geoName": "text",
      "geoCode": "text",
      "fiatCurrency": "ARS"
    }
  ]
}

Create order

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/fiat/withdrawal/create/order HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 256

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "rateId": "123e4567-e89b-12d3-a456-426614174000",
    "itemId": "123e4567-e89b-12d3-a456-426614174000",
    "cryptoAmount": 1,
    "fiatAmount": 1,
    "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
    "merchantExternalId": "text"
  }
}
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "cryptoAmount": 1,
  "fiatAmount": 1,
  "fiatCurrency": "ARS",
  "currency": "text",
  "state": "CREATED"
}

Confirm order by swift

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/fiat/withdrawal/confirm/order/swift HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 196

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "orderId": "123e4567-e89b-12d3-a456-426614174000",
    "requestParams": {
      "ANY_ADDITIONAL_PROPERTY": {}
    },
    "card": "text",
    "accountNumber": "text",
    "bankSwift": "text"
  }
}
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "cryptoAmount": 1,
  "fiatAmount": 1,
  "fiatCurrency": "ARS",
  "currency": "text",
  "state": "CREATED"
}

Confirm order by sepa

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/fiat/withdrawal/confirm/order/sepa HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 206

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "orderId": "123e4567-e89b-12d3-a456-426614174000",
    "requestParams": {
      "ANY_ADDITIONAL_PROPERTY": {}
    },
    "accountNumber": "text",
    "accountName": "text",
    "accountEmail": "text"
  }
}
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "cryptoAmount": 1,
  "fiatAmount": 1,
  "fiatCurrency": "ARS",
  "currency": "text",
  "state": "CREATED"
}

Confirm order by card

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/fiat/withdrawal/confirm/order/card HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 154

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "orderId": "123e4567-e89b-12d3-a456-426614174000",
    "requestParams": {
      "ANY_ADDITIONAL_PROPERTY": {}
    },
    "card": "text"
  }
}
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "cryptoAmount": 1,
  "fiatAmount": 1,
  "fiatCurrency": "ARS",
  "currency": "text",
  "state": "CREATED"
}

Get the account

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/account HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 32

{
  "account": "text",
  "timestamp": 1
}
{
  "account": "text",
  "name": "text",
  "ownerId": "123e4567-e89b-12d3-a456-426614174000",
  "balances": [
    {
      "currency": "text",
      "amount": 1
    }
  ]
}

Get all currencies

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/currency HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 15

{
  "timestamp": 1
}
{
  "fiatCurrencies": [
    {
      "name": "text",
      "feeCurrencyName": "text",
      "coinId": "text",
      "networkData": {
        "frontName": "text",
        "type": "text"
      },
      "scale": 1,
      "blockchainScale": 1,
      "garbageAmount": 1,
      "crypto": true,
      "blockchainName": "text",
      "contract": "text",
      "enabled": true,
      "active": true
    }
  ],
  "cryptoCurrencies": [
    {
      "name": "text",
      "feeCurrencyName": "text",
      "coinId": "text",
      "networkData": {
        "frontName": "text",
        "type": "text"
      },
      "scale": 1,
      "blockchainScale": 1,
      "garbageAmount": 1,
      "crypto": true,
      "blockchainName": "text",
      "contract": "text",
      "enabled": true,
      "active": true
    }
  ]
}

Get all fiat currencies

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/currency/fiat HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 15

{
  "timestamp": 1
}
{
  "result": [
    {
      "currency": "ARS",
      "name": "text",
      "round": 1,
      "active": true
    }
  ]
}

Get crypto currencies full info

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/currency/crypto/full-info HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 15

{
  "timestamp": 1
}
{
  "cryptoCurrencies": [
    {
      "currency": "text",
      "baseCurrency": "text",
      "name": "text",
      "token": true,
      "network": "text",
      "recommendedDisplayScale": 1,
      "blockchainScale": 1
    }
  ]
}

Get a specific Invoice

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/invoice HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 112

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "id": "text",
    "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000"
  }
}
{
  "id": "text",
  "invoiceAddress": "text",
  "type": "SINGLE",
  "amount": 1,
  "fee": 1,
  "totalDebitAmount": 1,
  "currency": "text",
  "state": "MEM_POOL_FOUND",
  "lastDepositHash": "text",
  "description": "text",
  "createdDate": "2025-06-07T00:42:47.836Z",
  "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
  "expiration": "2025-06-07T00:42:47.836Z",
  "fiatAmount": 1,
  "fiatCurrency": "text",
  "lastFiatUpdated": "2025-06-07T00:42:47.836Z",
  "interventionType": "OVERPAY",
  "isInterventionResolved": true,
  "subscriptionEnabled": true,
  "returnUrl": "text",
  "logoUrl": "text",
  "supportUrl": "text",
  "externalId": "text",
  "lowerBound": 1,
  "autoconversion": {
    "targetCurrency": "text",
    "amount": 1
  },
  "fiatAvailable": true
}

New Unlimited Invoice

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/invoice/unlimited/create HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 236

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "currency": "text",
    "description": "text",
    "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
    "returnUrl": "text",
    "logoUrl": "text",
    "supportUrl": "text",
    "externalId": "text",
    "fiatAvailable": true
  }
}
{
  "id": "text",
  "invoiceAddress": "text",
  "type": "SINGLE",
  "amount": 1,
  "fee": 1,
  "totalDebitAmount": 1,
  "currency": "text",
  "state": "MEM_POOL_FOUND",
  "lastDepositHash": "text",
  "description": "text",
  "createdDate": "2025-06-07T00:42:47.836Z",
  "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
  "expiration": "2025-06-07T00:42:47.836Z",
  "fiatAmount": 1,
  "fiatCurrency": "text",
  "lastFiatUpdated": "2025-06-07T00:42:47.836Z",
  "interventionType": "OVERPAY",
  "isInterventionResolved": true,
  "subscriptionEnabled": true,
  "returnUrl": "text",
  "logoUrl": "text",
  "supportUrl": "text",
  "externalId": "text",
  "lowerBound": 1,
  "autoconversion": {
    "targetCurrency": "text",
    "amount": 1
  },
  "fiatAvailable": true
}

New Unlimited Linked Invoice

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/invoice/unlimited-linked/create HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 236

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "currency": "text",
    "description": "text",
    "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
    "returnUrl": "text",
    "logoUrl": "text",
    "supportUrl": "text",
    "externalId": "text",
    "fiatAvailable": true
  }
}
{
  "id": "text",
  "invoiceAddress": "text",
  "type": "SINGLE",
  "amount": 1,
  "fee": 1,
  "totalDebitAmount": 1,
  "currency": "text",
  "state": "MEM_POOL_FOUND",
  "lastDepositHash": "text",
  "description": "text",
  "createdDate": "2025-06-07T00:42:47.836Z",
  "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
  "expiration": "2025-06-07T00:42:47.836Z",
  "fiatAmount": 1,
  "fiatCurrency": "text",
  "lastFiatUpdated": "2025-06-07T00:42:47.836Z",
  "interventionType": "OVERPAY",
  "isInterventionResolved": true,
  "subscriptionEnabled": true,
  "returnUrl": "text",
  "logoUrl": "text",
  "supportUrl": "text",
  "externalId": "text",
  "lowerBound": 1,
  "autoconversion": {
    "targetCurrency": "text",
    "amount": 1
  },
  "fiatAvailable": true
}

New Single Invoice

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/invoice/single/create HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 287

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "expiration": "2025-06-07T00:42:47.836Z",
    "amount": 1,
    "currency": "text",
    "description": "text",
    "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
    "returnUrl": "text",
    "logoUrl": "text",
    "supportUrl": "text",
    "externalId": "text",
    "fiatAvailable": true
  }
}
{
  "id": "text",
  "invoiceAddress": "text",
  "type": "SINGLE",
  "amount": 1,
  "fee": 1,
  "totalDebitAmount": 1,
  "currency": "text",
  "state": "MEM_POOL_FOUND",
  "lastDepositHash": "text",
  "description": "text",
  "createdDate": "2025-06-07T00:42:47.836Z",
  "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
  "expiration": "2025-06-07T00:42:47.836Z",
  "fiatAmount": 1,
  "fiatCurrency": "text",
  "lastFiatUpdated": "2025-06-07T00:42:47.836Z",
  "interventionType": "OVERPAY",
  "isInterventionResolved": true,
  "subscriptionEnabled": true,
  "returnUrl": "text",
  "logoUrl": "text",
  "supportUrl": "text",
  "externalId": "text",
  "lowerBound": 1,
  "autoconversion": {
    "targetCurrency": "text",
    "amount": 1
  },
  "fiatAvailable": true
}

New Single Fiat Invoice

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/invoice/single-fiat/create HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 313

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "fiatAmount": 1,
    "fiatCurrency": "text",
    "expiration": "2025-06-07T00:42:47.836Z",
    "currency": "text",
    "description": "text",
    "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
    "returnUrl": "text",
    "logoUrl": "text",
    "supportUrl": "text",
    "externalId": "text",
    "fiatAvailable": true
  }
}
{
  "id": "text",
  "invoiceAddress": "text",
  "type": "SINGLE",
  "amount": 1,
  "fee": 1,
  "totalDebitAmount": 1,
  "currency": "text",
  "state": "MEM_POOL_FOUND",
  "lastDepositHash": "text",
  "description": "text",
  "createdDate": "2025-06-07T00:42:47.836Z",
  "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
  "expiration": "2025-06-07T00:42:47.836Z",
  "fiatAmount": 1,
  "fiatCurrency": "text",
  "lastFiatUpdated": "2025-06-07T00:42:47.836Z",
  "interventionType": "OVERPAY",
  "isInterventionResolved": true,
  "subscriptionEnabled": true,
  "returnUrl": "text",
  "logoUrl": "text",
  "supportUrl": "text",
  "externalId": "text",
  "lowerBound": 1,
  "autoconversion": {
    "targetCurrency": "text",
    "amount": 1
  },
  "fiatAvailable": true
}

Resolve intervention and receive money to the wallet

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/invoice/return-to-paid HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 112

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "id": "text",
    "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000"
  }
}
{
  "id": "text",
  "invoiceAddress": "text",
  "type": "SINGLE",
  "amount": 1,
  "fee": 1,
  "totalDebitAmount": 1,
  "currency": "text",
  "state": "MEM_POOL_FOUND",
  "lastDepositHash": "text",
  "description": "text",
  "createdDate": "2025-06-07T00:42:47.836Z",
  "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
  "expiration": "2025-06-07T00:42:47.836Z",
  "fiatAmount": 1,
  "fiatCurrency": "text",
  "lastFiatUpdated": "2025-06-07T00:42:47.836Z",
  "interventionType": "OVERPAY",
  "isInterventionResolved": true,
  "subscriptionEnabled": true,
  "returnUrl": "text",
  "logoUrl": "text",
  "supportUrl": "text",
  "externalId": "text",
  "lowerBound": 1,
  "autoconversion": {
    "targetCurrency": "text",
    "amount": 1
  },
  "fiatAvailable": true
}

Get Payment for the Invoice

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/invoice/payment HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 131

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "paymentId": "text",
    "id": "text",
    "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000"
  }
}
{
  "id": "text",
  "state": "IN_PROGRESS"
}

Get all Payments for the Invoice

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/invoice/payment-history HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 173

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "id": "text",
    "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
    "pageNumber": 1,
    "pageSize": 1,
    "sort": "ASC",
    "properties": "text"
  }
}
{
  "result": [
    {
      "id": "text",
      "state": "IN_PROGRESS"
    }
  ],
  "page": 1,
  "size": 1,
  "total": 1,
  "totalElements": 1
}

Get Invoices by External ID

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/invoice/external HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 125

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "externalId": "text",
    "pageNumber": 1,
    "pageSize": 1,
    "sort": "ASC",
    "properties": "text"
  }
}
{
  "result": [
    {
      "id": "text",
      "invoiceAddress": "text",
      "type": "SINGLE",
      "amount": 1,
      "fee": 1,
      "totalDebitAmount": 1,
      "currency": "text",
      "state": "MEM_POOL_FOUND",
      "lastDepositHash": "text",
      "description": "text",
      "createdDate": "2025-06-07T00:42:47.836Z",
      "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
      "expiration": "2025-06-07T00:42:47.836Z",
      "fiatAmount": 1,
      "fiatCurrency": "text",
      "lastFiatUpdated": "2025-06-07T00:42:47.836Z",
      "interventionType": "OVERPAY",
      "isInterventionResolved": true,
      "subscriptionEnabled": true,
      "returnUrl": "text",
      "logoUrl": "text",
      "supportUrl": "text",
      "externalId": "text",
      "lowerBound": 1,
      "autoconversion": {
        "targetCurrency": "text",
        "amount": 1
      },
      "fiatAvailable": true
    }
  ],
  "page": 1,
  "size": 1,
  "total": 1,
  "totalElements": 1
}

Get Deposit for the Invoice

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/invoice/deposit HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 167

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "transactionId": "123e4567-e89b-12d3-a456-426614174000",
    "id": "text",
    "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000"
  }
}
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "amount": 1,
  "currency": "text",
  "transactionHash": "text",
  "createdDate": "2025-06-07T00:42:47.836Z"
}

Get all Deposits for the Invoice

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/invoice/deposit-history HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 173

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "id": "text",
    "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
    "pageNumber": 1,
    "pageSize": 1,
    "sort": "ASC",
    "properties": "text"
  }
}
{
  "result": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "amount": 1,
      "currency": "text",
      "transactionHash": "text",
      "createdDate": "2025-06-07T00:42:47.836Z"
    }
  ],
  "page": 1,
  "size": 1,
  "total": 1,
  "totalElements": 1
}

Mark that intervention is relolved in Invoice

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/invoice/close-intervention HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 112

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "id": "text",
    "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000"
  }
}
{
  "id": "text",
  "invoiceAddress": "text",
  "type": "SINGLE",
  "amount": 1,
  "fee": 1,
  "totalDebitAmount": 1,
  "currency": "text",
  "state": "MEM_POOL_FOUND",
  "lastDepositHash": "text",
  "description": "text",
  "createdDate": "2025-06-07T00:42:47.836Z",
  "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
  "expiration": "2025-06-07T00:42:47.836Z",
  "fiatAmount": 1,
  "fiatCurrency": "text",
  "lastFiatUpdated": "2025-06-07T00:42:47.836Z",
  "interventionType": "OVERPAY",
  "isInterventionResolved": true,
  "subscriptionEnabled": true,
  "returnUrl": "text",
  "logoUrl": "text",
  "supportUrl": "text",
  "externalId": "text",
  "lowerBound": 1,
  "autoconversion": {
    "targetCurrency": "text",
    "amount": 1
  },
  "fiatAvailable": true
}

New Bound Invoice

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/invoice/bound/create HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 291

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "lowerBound": 1,
    "expiration": "2025-06-07T00:42:47.836Z",
    "currency": "text",
    "description": "text",
    "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
    "returnUrl": "text",
    "logoUrl": "text",
    "supportUrl": "text",
    "externalId": "text",
    "fiatAvailable": true
  }
}
{
  "id": "text",
  "invoiceAddress": "text",
  "type": "SINGLE",
  "amount": 1,
  "fee": 1,
  "totalDebitAmount": 1,
  "currency": "text",
  "state": "MEM_POOL_FOUND",
  "lastDepositHash": "text",
  "description": "text",
  "createdDate": "2025-06-07T00:42:47.836Z",
  "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
  "expiration": "2025-06-07T00:42:47.836Z",
  "fiatAmount": 1,
  "fiatCurrency": "text",
  "lastFiatUpdated": "2025-06-07T00:42:47.836Z",
  "interventionType": "OVERPAY",
  "isInterventionResolved": true,
  "subscriptionEnabled": true,
  "returnUrl": "text",
  "logoUrl": "text",
  "supportUrl": "text",
  "externalId": "text",
  "lowerBound": 1,
  "autoconversion": {
    "targetCurrency": "text",
    "amount": 1
  },
  "fiatAvailable": true
}

Archive Invoice

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/invoice/archive HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 112

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "id": "text",
    "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000"
  }
}
{
  "id": "text",
  "invoiceAddress": "text",
  "type": "SINGLE",
  "amount": 1,
  "fee": 1,
  "totalDebitAmount": 1,
  "currency": "text",
  "state": "MEM_POOL_FOUND",
  "lastDepositHash": "text",
  "description": "text",
  "createdDate": "2025-06-07T00:42:47.836Z",
  "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
  "expiration": "2025-06-07T00:42:47.836Z",
  "fiatAmount": 1,
  "fiatCurrency": "text",
  "lastFiatUpdated": "2025-06-07T00:42:47.836Z",
  "interventionType": "OVERPAY",
  "isInterventionResolved": true,
  "subscriptionEnabled": true,
  "returnUrl": "text",
  "logoUrl": "text",
  "supportUrl": "text",
  "externalId": "text",
  "lowerBound": 1,
  "autoconversion": {
    "targetCurrency": "text",
    "amount": 1
  },
  "fiatAvailable": true
}

Get all Invoices

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/invoice/all HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 160

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "stateNames": [
      "MEM_POOL_FOUND"
    ],
    "typeNames": [
      "SINGLE"
    ],
    "pageNumber": 1,
    "pageSize": 1,
    "sort": "ASC",
    "properties": "text"
  }
}
{
  "result": [
    {
      "id": "text",
      "invoiceAddress": "text",
      "type": "SINGLE",
      "amount": 1,
      "fee": 1,
      "totalDebitAmount": 1,
      "currency": "text",
      "state": "MEM_POOL_FOUND",
      "lastDepositHash": "text",
      "description": "text",
      "createdDate": "2025-06-07T00:42:47.836Z",
      "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
      "expiration": "2025-06-07T00:42:47.836Z",
      "fiatAmount": 1,
      "fiatCurrency": "text",
      "lastFiatUpdated": "2025-06-07T00:42:47.836Z",
      "interventionType": "OVERPAY",
      "isInterventionResolved": true,
      "subscriptionEnabled": true,
      "returnUrl": "text",
      "logoUrl": "text",
      "supportUrl": "text",
      "externalId": "text",
      "lowerBound": 1,
      "autoconversion": {
        "targetCurrency": "text",
        "amount": 1
      },
      "fiatAvailable": true
    }
  ],
  "page": 1,
  "size": 1,
  "total": 1,
  "totalElements": 1
}

Get outgoing report

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/settlement/report/outgoing HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 705

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "firstDate": "2025-06-07T00:42:47.836Z",
    "lastDate": "2025-06-07T00:42:47.836Z",
    "blockchainList": "text",
    "zoneOffset": {
      "totalSeconds": 1,
      "id": "text",
      "rules": {
        "fixedOffset": true,
        "transitions": [
          {
            "overlap": true,
            "duration": {
              "seconds": 1,
              "zero": true,
              "nano": 1,
              "negative": true,
              "units": [
                {
                  "durationEstimated": true,
                  "timeBased": true,
                  "dateBased": true
                }
              ]
            },
            "gap": true,
            "dateTimeAfter": "2025-06-07T00:42:47.836Z",
            "dateTimeBefore": "2025-06-07T00:42:47.836Z",
            "instant": "2025-06-07T00:42:47.836Z"
          }
        ],
        "transitionRules": [
          {
            "month": "JANUARY",
            "timeDefinition": "UTC",
            "dayOfWeek": "MONDAY",
            "dayOfMonthIndicator": 1,
            "localTime": {
              "hour": 1,
              "minute": 1,
              "second": 1,
              "nano": 1
            },
            "midnightEndOfDay": true
          }
        ]
      }
    }
  }
}
{
  "data": {}
}

Get incoming report

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/settlement/report/incoming HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 705

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "firstDate": "2025-06-07T00:42:47.836Z",
    "lastDate": "2025-06-07T00:42:47.836Z",
    "blockchainList": "text",
    "zoneOffset": {
      "totalSeconds": 1,
      "id": "text",
      "rules": {
        "fixedOffset": true,
        "transitions": [
          {
            "overlap": true,
            "duration": {
              "seconds": 1,
              "zero": true,
              "nano": 1,
              "negative": true,
              "units": [
                {
                  "durationEstimated": true,
                  "timeBased": true,
                  "dateBased": true
                }
              ]
            },
            "gap": true,
            "dateTimeAfter": "2025-06-07T00:42:47.836Z",
            "dateTimeBefore": "2025-06-07T00:42:47.836Z",
            "instant": "2025-06-07T00:42:47.836Z"
          }
        ],
        "transitionRules": [
          {
            "month": "JANUARY",
            "timeDefinition": "UTC",
            "dayOfWeek": "MONDAY",
            "dayOfMonthIndicator": 1,
            "localTime": {
              "hour": 1,
              "minute": 1,
              "second": 1,
              "nano": 1
            },
            "midnightEndOfDay": true
          }
        ]
      }
    }
  }
}
{
  "data": {}
}

Get balance report

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/settlement/report/balance HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 705

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "firstDate": "2025-06-07T00:42:47.836Z",
    "lastDate": "2025-06-07T00:42:47.836Z",
    "blockchainList": "text",
    "zoneOffset": {
      "totalSeconds": 1,
      "id": "text",
      "rules": {
        "fixedOffset": true,
        "transitions": [
          {
            "overlap": true,
            "duration": {
              "seconds": 1,
              "zero": true,
              "nano": 1,
              "negative": true,
              "units": [
                {
                  "durationEstimated": true,
                  "timeBased": true,
                  "dateBased": true
                }
              ]
            },
            "gap": true,
            "dateTimeAfter": "2025-06-07T00:42:47.836Z",
            "dateTimeBefore": "2025-06-07T00:42:47.836Z",
            "instant": "2025-06-07T00:42:47.836Z"
          }
        ],
        "transitionRules": [
          {
            "month": "JANUARY",
            "timeDefinition": "UTC",
            "dayOfWeek": "MONDAY",
            "dayOfMonthIndicator": 1,
            "localTime": {
              "hour": 1,
              "minute": 1,
              "second": 1,
              "nano": 1
            },
            "midnightEndOfDay": true
          }
        ]
      }
    }
  }
}
{
  "data": {}
}

Get all transactions report

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/settlement/report/all HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 705

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "firstDate": "2025-06-07T00:42:47.836Z",
    "lastDate": "2025-06-07T00:42:47.836Z",
    "blockchainList": "text",
    "zoneOffset": {
      "totalSeconds": 1,
      "id": "text",
      "rules": {
        "fixedOffset": true,
        "transitions": [
          {
            "overlap": true,
            "duration": {
              "seconds": 1,
              "zero": true,
              "nano": 1,
              "negative": true,
              "units": [
                {
                  "durationEstimated": true,
                  "timeBased": true,
                  "dateBased": true
                }
              ]
            },
            "gap": true,
            "dateTimeAfter": "2025-06-07T00:42:47.836Z",
            "dateTimeBefore": "2025-06-07T00:42:47.836Z",
            "instant": "2025-06-07T00:42:47.836Z"
          }
        ],
        "transitionRules": [
          {
            "month": "JANUARY",
            "timeDefinition": "UTC",
            "dayOfWeek": "MONDAY",
            "dayOfMonthIndicator": 1,
            "localTime": {
              "hour": 1,
              "minute": 1,
              "second": 1,
              "nano": 1
            },
            "midnightEndOfDay": true
          }
        ]
      }
    }
  }
}
{
  "data": {}
}

Get c2f order

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/c2f/order HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 93

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "orderId": "123e4567-e89b-12d3-a456-426614174000"
  }
}
{
  "orderId": "123e4567-e89b-12d3-a456-426614174000",
  "state": "INIT",
  "currency": {
    "name": "text",
    "feeCurrencyName": "text",
    "coinId": "text",
    "networkData": {
      "frontName": "text",
      "type": "text"
    },
    "scale": 1,
    "blockchainScale": 1,
    "garbageAmount": 1,
    "crypto": true,
    "blockchainName": "text",
    "contract": "text",
    "enabled": true,
    "active": true
  },
  "fiatCurrency": "ARS",
  "amountInCrypto": 1,
  "amountInFiat": 1,
  "externalId": "text"
}

Fix rate

post

Permission annotations:

Path parameters
typestring · enumRequiredPossible values:
Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/c2f/order/{type}/rate HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 83

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "fiatCurrency": "ARS",
    "currency": "text"
  }
}
{
  "rateId": "123e4567-e89b-12d3-a456-426614174000",
  "rate": 1,
  "fiatCurrency": "ARS",
  "currency": "text",
  "expiredDate": "2025-06-07T00:42:47.836Z"
}

Get limit

post

Permission annotations:

Path parameters
typestring · enumRequiredPossible values:
Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/c2f/order/{type}/limit HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 65

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "fiatCurrency": "ARS"
  }
}
{
  "minLimit": 1,
  "maxLimit": 1,
  "limitCurrency": "ARS"
}

Create c2f order

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/c2f/order/create/sepa HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 556

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "currency": {
      "name": "text",
      "feeCurrencyName": "text",
      "coinId": "text",
      "networkData": {
        "frontName": "text",
        "type": "text"
      },
      "scale": 1,
      "blockchainScale": 1,
      "garbageAmount": 1,
      "crypto": true,
      "blockchainName": "text",
      "contract": "text",
      "enabled": true,
      "active": true
    },
    "fiatCurrency": "ARS",
    "fixedRateId": "123e4567-e89b-12d3-a456-426614174000",
    "fiatAmount": 1,
    "cryptoAmount": 1,
    "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
    "externalId": "text",
    "accountNumber": "text",
    "accountName": "text",
    "accountEmail": "text",
    "type": "CARD"
  }
}
{
  "orderId": "123e4567-e89b-12d3-a456-426614174000",
  "state": "INIT",
  "currency": {
    "name": "text",
    "feeCurrencyName": "text",
    "coinId": "text",
    "networkData": {
      "frontName": "text",
      "type": "text"
    },
    "scale": 1,
    "blockchainScale": 1,
    "garbageAmount": 1,
    "crypto": true,
    "blockchainName": "text",
    "contract": "text",
    "enabled": true,
    "active": true
  },
  "fiatCurrency": "ARS",
  "amountInCrypto": 1,
  "amountInFiat": 1,
  "externalId": "text"
}

Create c2f order

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/c2f/order/create/card HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 326

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "card": "text",
    "currency": "text",
    "fiatCurrency": "ARS",
    "fixedRateId": "123e4567-e89b-12d3-a456-426614174000",
    "fiatAmount": 1,
    "cryptoAmount": 1,
    "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
    "externalId": "text",
    "type": "CARD",
    "bankCode": "text",
    "bankSystem": "text",
    "saveCard": true
  }
}
{
  "orderId": "123e4567-e89b-12d3-a456-426614174000",
  "state": "INIT",
  "currency": {
    "name": "text",
    "feeCurrencyName": "text",
    "coinId": "text",
    "networkData": {
      "frontName": "text",
      "type": "text"
    },
    "scale": 1,
    "blockchainScale": 1,
    "garbageAmount": 1,
    "crypto": true,
    "blockchainName": "text",
    "contract": "text",
    "enabled": true,
    "active": true
  },
  "fiatCurrency": "ARS",
  "amountInCrypto": 1,
  "amountInFiat": 1,
  "externalId": "text"
}

Get Customer Purse Transaction

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/customer-purse/transaction/get HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 99

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "transactionId": "123e4567-e89b-12d3-a456-426614174000"
  }
}
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "amount": 1,
  "addressFrom": "text",
  "currency": "text",
  "transactionHash": "text",
  "transactionState": "MEM_POOL_FOUND",
  "complianceState": "UNCHECKED",
  "translationToAccountCompleted": true,
  "createdDate": "2025-06-07T00:42:47.836Z"
}

Find Customer Purse Transactions

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/customer-purse/transaction/find HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 451

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "customerId": "123e4567-e89b-12d3-a456-426614174000",
    "currencyFilter": {
      "equals": "text",
      "notEquals": "text",
      "specified": true,
      "in": [
        "text"
      ],
      "notIn": [
        "text"
      ],
      "contains": "text",
      "doesNotContain": "text"
    },
    "transactionStateFilter": {
      "equals": "MEM_POOL_FOUND",
      "notEquals": "MEM_POOL_FOUND",
      "specified": true,
      "in": [
        "MEM_POOL_FOUND"
      ],
      "notIn": [
        "MEM_POOL_FOUND"
      ]
    },
    "pageNumber": 1,
    "pageSize": 1,
    "sort": "ASC",
    "properties": "text"
  }
}
{
  "result": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "amount": 1,
      "addressFrom": "text",
      "currency": "text",
      "transactionHash": "text",
      "transactionState": "MEM_POOL_FOUND",
      "complianceState": "UNCHECKED",
      "translationToAccountCompleted": true,
      "createdDate": "2025-06-07T00:42:47.836Z"
    }
  ],
  "page": 1,
  "size": 1,
  "total": 1,
  "totalElements": 1
}

Update Customer

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/customer-purse/customer/update HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 124

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "email": "text",
    "description": "text"
  }
}
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "email": "text",
  "description": "text",
  "externalId": "text",
  "blocked": true
}

Unblock Customer

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/customer-purse/customer/unblock HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 96

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "customerId": "123e4567-e89b-12d3-a456-426614174000"
  }
}
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "email": "text",
  "description": "text",
  "externalId": "text",
  "blocked": true
}

Get Customer

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/customer-purse/customer/get HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 96

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "customerId": "123e4567-e89b-12d3-a456-426614174000"
  }
}
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "email": "text",
  "description": "text",
  "externalId": "text",
  "blocked": true
}

Get Customers by external id

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/customer-purse/customer/external/get HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 64

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "externalId": "text"
  }
}
{
  "customers": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "email": "text",
      "description": "text",
      "externalId": "text",
      "blocked": true
    }
  ]
}

Create new Customer

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/customer-purse/customer/create HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 100

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "email": "text",
    "description": "text",
    "externalId": "text"
  }
}
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "email": "text",
  "description": "text",
  "externalId": "text",
  "blocked": true
}

Block Customer

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/customer-purse/customer/block HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 96

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "customerId": "123e4567-e89b-12d3-a456-426614174000"
  }
}
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "email": "text",
  "description": "text",
  "externalId": "text",
  "blocked": true
}

Get Customer Purse Address

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/customer-purse/address/get HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 114

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "customerId": "123e4567-e89b-12d3-a456-426614174000",
    "currency": "text"
  }
}
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "address": "text"
}

Get fiat info

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/fiat/deposit/order HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 88

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "id": "123e4567-e89b-12d3-a456-426614174000"
  }
}
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "cryptoAmount": 1,
  "fiatAmount": 1,
  "fiatCurrency": "ARS",
  "currency": "text",
  "state": "CREATED"
}

Get method

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/fiat/deposit/method HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 189

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "itemId": "123e4567-e89b-12d3-a456-426614174000",
    "geoId": "123e4567-e89b-12d3-a456-426614174000",
    "cryptoAmount": 1,
    "fiatAmount": 1,
    "currency": "text"
  }
}
{
  "fixedRateId": "123e4567-e89b-12d3-a456-426614174000",
  "rateExpiredDate": "2025-06-07T00:42:47.836Z",
  "methods": [
    {
      "itemId": "123e4567-e89b-12d3-a456-426614174000",
      "fiatAmount": 1,
      "cryptoAmount": 1,
      "withdrawalSettingsType": "CARD",
      "currency": "text",
      "fiatCurrency": "ARS",
      "minLimit": 1,
      "maxLimit": 1
    }
  ]
}

Generate key

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/fiat/deposit/key/generate HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 32

{
  "account": "text",
  "timestamp": 1
}
{
  "key": "123e4567-e89b-12d3-a456-426614174000",
  "expiredAt": "2025-06-07T00:42:47.836Z"
}

Get geo

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/fiat/deposit/geo HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 32

{
  "account": "text",
  "timestamp": 1
}
{
  "geo": [
    {
      "geoId": "123e4567-e89b-12d3-a456-426614174000",
      "geoName": "text",
      "geoCode": "text",
      "fiatCurrency": "ARS"
    }
  ]
}

Create order

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/fiat/deposit/create/order HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 296

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "rateId": "123e4567-e89b-12d3-a456-426614174000",
    "itemId": "123e4567-e89b-12d3-a456-426614174000",
    "cryptoAmount": 1,
    "fiatAmount": 1,
    "description": "text",
    "merchantExternalId": "text",
    "returnUrl": "text",
    "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000"
  }
}
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "cryptoAmount": 1,
  "fiatAmount": 1,
  "fiatCurrency": "ARS",
  "currency": "text",
  "state": "CREATED"
}

Confirm order

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/fiat/deposit/confirm/order HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 135

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "requestParams": {
      "ANY_ADDITIONAL_PROPERTY": {}
    }
  }
}
{
  "redirectUrl": "text"
}

Get Unlimited Linked Payment widget by ID

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/payment-widget/unlimited-linked/find HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 95

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "requestId": "123e4567-e89b-12d3-a456-426614174000"
  }
}
{
  "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
  "cryptoCurrencies": [
    {
      "name": "text",
      "feeCurrencyName": "text",
      "coinId": "text",
      "networkData": {
        "frontName": "text",
        "type": "text"
      },
      "scale": 1,
      "blockchainScale": 1,
      "garbageAmount": 1,
      "crypto": true,
      "blockchainName": "text",
      "contract": "text",
      "enabled": true,
      "active": true
    }
  ],
  "description": "text",
  "widgetType": "SINGLE_FIAT",
  "widgetState": "IN_PROGRESS",
  "logoUrl": "text",
  "returnUrl": "text",
  "supportUrl": "text",
  "externalId": "text",
  "invoices": [
    {
      "invoiceId": "text",
      "cryptoCurrency": "text",
      "invoiceIdempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
      "invoiceExternalId": "text"
    }
  ],
  "createdDate": "2025-06-07T00:42:47.836Z",
  "expiration": "2025-06-07T00:42:47.836Z"
}

Create new Unlimited Linked payment widget

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/payment-widget/unlimited-linked/create HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 497

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "cryptoCurrencies": [
      {
        "name": "text",
        "feeCurrencyName": "text",
        "coinId": "text",
        "networkData": {
          "frontName": "text",
          "type": "text"
        },
        "scale": 1,
        "blockchainScale": 1,
        "garbageAmount": 1,
        "crypto": true,
        "blockchainName": "text",
        "contract": "text",
        "enabled": true,
        "active": true
      }
    ],
    "description": "text",
    "logoUrl": "text",
    "returnUrl": "text",
    "supportUrl": "text",
    "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
    "externalId": "text",
    "expiration": "2025-06-07T00:42:47.836Z"
  }
}
{
  "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
  "cryptoCurrencies": [
    {
      "name": "text",
      "feeCurrencyName": "text",
      "coinId": "text",
      "networkData": {
        "frontName": "text",
        "type": "text"
      },
      "scale": 1,
      "blockchainScale": 1,
      "garbageAmount": 1,
      "crypto": true,
      "blockchainName": "text",
      "contract": "text",
      "enabled": true,
      "active": true
    }
  ],
  "description": "text",
  "widgetType": "SINGLE_FIAT",
  "widgetState": "IN_PROGRESS",
  "logoUrl": "text",
  "returnUrl": "text",
  "supportUrl": "text",
  "externalId": "text",
  "invoices": [
    {
      "invoiceId": "text",
      "cryptoCurrency": "text",
      "invoiceIdempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
      "invoiceExternalId": "text"
    }
  ],
  "createdDate": "2025-06-07T00:42:47.836Z",
  "expiration": "2025-06-07T00:42:47.836Z"
}

Archive Unlimited Linked Payment widget by ID

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/payment-widget/unlimited-linked/archive HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 95

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "requestId": "123e4567-e89b-12d3-a456-426614174000"
  }
}
{
  "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
  "cryptoCurrencies": [
    {
      "name": "text",
      "feeCurrencyName": "text",
      "coinId": "text",
      "networkData": {
        "frontName": "text",
        "type": "text"
      },
      "scale": 1,
      "blockchainScale": 1,
      "garbageAmount": 1,
      "crypto": true,
      "blockchainName": "text",
      "contract": "text",
      "enabled": true,
      "active": true
    }
  ],
  "description": "text",
  "widgetType": "SINGLE_FIAT",
  "widgetState": "IN_PROGRESS",
  "logoUrl": "text",
  "returnUrl": "text",
  "supportUrl": "text",
  "externalId": "text",
  "invoices": [
    {
      "invoiceId": "text",
      "cryptoCurrency": "text",
      "invoiceIdempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
      "invoiceExternalId": "text"
    }
  ],
  "createdDate": "2025-06-07T00:42:47.836Z",
  "expiration": "2025-06-07T00:42:47.836Z"
}

Get all Unlimited Linked Payment widgets

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/payment-widget/unlimited-linked/all HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 100

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "widgetStates": [
      "IN_PROGRESS"
    ],
    "pageNumber": 1,
    "size": 10
  }
}
{
  "result": [
    {
      "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
      "cryptoCurrencies": [
        {
          "name": "text",
          "feeCurrencyName": "text",
          "coinId": "text",
          "networkData": {
            "frontName": "text",
            "type": "text"
          },
          "scale": 1,
          "blockchainScale": 1,
          "garbageAmount": 1,
          "crypto": true,
          "blockchainName": "text",
          "contract": "text",
          "enabled": true,
          "active": true
        }
      ],
      "description": "text",
      "widgetType": "SINGLE_FIAT",
      "widgetState": "IN_PROGRESS",
      "logoUrl": "text",
      "returnUrl": "text",
      "supportUrl": "text",
      "externalId": "text",
      "invoices": [
        {
          "invoiceId": "text",
          "cryptoCurrency": "text",
          "invoiceIdempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
          "invoiceExternalId": "text"
        }
      ],
      "createdDate": "2025-06-07T00:42:47.836Z",
      "expiration": "2025-06-07T00:42:47.836Z"
    }
  ],
  "page": 1,
  "size": 1,
  "total": 1,
  "totalElements": 1
}

Get Single Fiat Payment widget by ID

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/payment-widget/single-fiat/find HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 95

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "requestId": "123e4567-e89b-12d3-a456-426614174000"
  }
}
{
  "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
  "cryptoCurrencies": [
    {
      "name": "text",
      "feeCurrencyName": "text",
      "coinId": "text",
      "networkData": {
        "frontName": "text",
        "type": "text"
      },
      "scale": 1,
      "blockchainScale": 1,
      "garbageAmount": 1,
      "crypto": true,
      "blockchainName": "text",
      "contract": "text",
      "enabled": true,
      "active": true
    }
  ],
  "widgetType": "SINGLE_FIAT",
  "widgetState": "IN_PROGRESS",
  "fiatCurrency": "text",
  "fiatAmount": 1,
  "description": "text",
  "logoUrl": "text",
  "returnUrl": "text",
  "supportUrl": "text",
  "expiration": "2025-06-07T00:42:47.836Z",
  "externalId": "text",
  "invoices": [
    {
      "invoiceId": "text",
      "cryptoCurrency": "text",
      "invoiceIdempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
      "invoiceExternalId": "text"
    }
  ],
  "createdDate": "2025-06-07T00:42:47.836Z"
}

Create new Single Fiat Payment widget

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/payment-widget/single-fiat/create HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 534

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "fiatCurrency": "text",
    "fiatAmount": 1,
    "description": "text",
    "cryptoCurrencies": [
      {
        "name": "text",
        "feeCurrencyName": "text",
        "coinId": "text",
        "networkData": {
          "frontName": "text",
          "type": "text"
        },
        "scale": 1,
        "blockchainScale": 1,
        "garbageAmount": 1,
        "crypto": true,
        "blockchainName": "text",
        "contract": "text",
        "enabled": true,
        "active": true
      }
    ],
    "logoUrl": "text",
    "returnUrl": "text",
    "supportUrl": "text",
    "expiration": "2025-06-07T00:42:47.836Z",
    "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
    "externalId": "text"
  }
}
{
  "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
  "cryptoCurrencies": [
    {
      "name": "text",
      "feeCurrencyName": "text",
      "coinId": "text",
      "networkData": {
        "frontName": "text",
        "type": "text"
      },
      "scale": 1,
      "blockchainScale": 1,
      "garbageAmount": 1,
      "crypto": true,
      "blockchainName": "text",
      "contract": "text",
      "enabled": true,
      "active": true
    }
  ],
  "widgetType": "SINGLE_FIAT",
  "widgetState": "IN_PROGRESS",
  "fiatCurrency": "text",
  "fiatAmount": 1,
  "description": "text",
  "logoUrl": "text",
  "returnUrl": "text",
  "supportUrl": "text",
  "expiration": "2025-06-07T00:42:47.836Z",
  "externalId": "text",
  "invoices": [
    {
      "invoiceId": "text",
      "cryptoCurrency": "text",
      "invoiceIdempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
      "invoiceExternalId": "text"
    }
  ],
  "createdDate": "2025-06-07T00:42:47.836Z"
}

Archive Single Fiat Payment widget by ID

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/payment-widget/single-fiat/archive HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 95

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "requestId": "123e4567-e89b-12d3-a456-426614174000"
  }
}
{
  "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
  "cryptoCurrencies": [
    {
      "name": "text",
      "feeCurrencyName": "text",
      "coinId": "text",
      "networkData": {
        "frontName": "text",
        "type": "text"
      },
      "scale": 1,
      "blockchainScale": 1,
      "garbageAmount": 1,
      "crypto": true,
      "blockchainName": "text",
      "contract": "text",
      "enabled": true,
      "active": true
    }
  ],
  "widgetType": "SINGLE_FIAT",
  "widgetState": "IN_PROGRESS",
  "fiatCurrency": "text",
  "fiatAmount": 1,
  "description": "text",
  "logoUrl": "text",
  "returnUrl": "text",
  "supportUrl": "text",
  "expiration": "2025-06-07T00:42:47.836Z",
  "externalId": "text",
  "invoices": [
    {
      "invoiceId": "text",
      "cryptoCurrency": "text",
      "invoiceIdempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
      "invoiceExternalId": "text"
    }
  ],
  "createdDate": "2025-06-07T00:42:47.836Z"
}

Get all Single Fiat Payment widgets

post

Permission annotations:

Header parameters
KeystringRequired
SignstringRequired
Body

Object with request data

accountstringRequired

Merchant account ID. Request will be sent for this account

timestampinteger · int64Required

Current unix UTC timestamp in milliseconds. Must not be less than 3 minutes in the past and not greater than 3 minutes in the future

Responses
200
OK
*/*
400
Bad Request
*/*
500
Internal Server Error
*/*
post
POST /api/v1/payment-widget/single-fiat/all HTTP/1.1
Host: api.calypso.finance
Key: text
Sign: text
Content-Type: application/json
Accept: */*
Content-Length: 100

{
  "account": "text",
  "timestamp": 1,
  "payload": {
    "widgetStates": [
      "IN_PROGRESS"
    ],
    "pageNumber": 1,
    "size": 10
  }
}
{
  "result": [
    {
      "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
      "cryptoCurrencies": [
        {
          "name": "text",
          "feeCurrencyName": "text",
          "coinId": "text",
          "networkData": {
            "frontName": "text",
            "type": "text"
          },
          "scale": 1,
          "blockchainScale": 1,
          "garbageAmount": 1,
          "crypto": true,
          "blockchainName": "text",
          "contract": "text",
          "enabled": true,
          "active": true
        }
      ],
      "widgetType": "SINGLE_FIAT",
      "widgetState": "IN_PROGRESS",
      "fiatCurrency": "text",
      "fiatAmount": 1,
      "description": "text",
      "logoUrl": "text",
      "returnUrl": "text",
      "supportUrl": "text",
      "expiration": "2025-06-07T00:42:47.836Z",
      "externalId": "text",
      "invoices": [
        {
          "invoiceId": "text",
          "cryptoCurrency": "text",
          "invoiceIdempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
          "invoiceExternalId": "text"
        }
      ],
      "createdDate": "2025-06-07T00:42:47.836Z"
    }
  ],
  "page": 1,
  "size": 1,
  "total": 1,
  "totalElements": 1
}
Logo