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

You need to get a list of available GEOs and fiat currencies for them - [POST] Get geo

2

Next, you need to select a geo and get a list of proposed payment methods for it - [POST] Get method

3

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

4

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

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

After receiving a status change webhook, we recommend checking the reliability of the order information via a request - [POST] Get fiat info

Sequence

Fiat order statuses

Status
Description

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

Request examples

Get list of geo and fiat currencies - [POST] Get geo

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:

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

Get list of payment methods - [POST] Get method

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

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"
  }
}

Response 200 OK:

{
  "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
    }
  ]
}

Create fiat order - [POST] Create order

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

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"
  }
}

Response 200 OK:

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

Confirm fiat order - [POST] Confirm order

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

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": {}
    }
  }
}

Response 200 OK:

{
  "redirectUrl": "text"
}


Get fiat order info - [POST] Get fiat info

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"
}

Last updated