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

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

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

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

Sequence

Request and URL examples

Generate widget key - [POST] Generate key

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

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

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

Last updated