Skip to main content
POST
Make sure that the URL that you provide in the url_store field uses the secure HTTPS protocol, uses domain names (not IP addresses) and is considered clean by VirusTotal and similar scanners.
For every error this endpoint returns and what it means, see API errors: Create a payment request.

Authorizations

X-Processing-Key
string
header
required

Your API key.

Headers

X-Processing-Signature
string
required

Hex-encoded HMAC-SHA512 signature of the request body, generated using your secret key.

Body

application/json
amount
required

The amount you want to receive from the customer, in currency, as a decimal string (for example, "100.50") or a number. It must be within the minimum and maximum payment request amounts. The number of decimal places allowed depends on the currency (2 for fiat currencies and stablecoins, 6 for other cryptocurrencies).

Example:

"100.50"

currency
object
required

The currency you want to receive.

life_time_duration
integer | null
required

Payment request lifespan, in seconds (a whole number). Include either this parameter or life_time_date_time. At least one of these fields is required. The lifespan must be within the minimum and maximum lifespan for payment requests.

Required range: 300 <= x <= 5184000
Example:

3600

life_time_date_time
integer | null
required

The time the payment request expires, as a Unix timestamp in seconds (a whole number). Include either this parameter or life_time_duration. At least one of these fields is required. The same minimum and maximum lifespan apply as for life_time_duration.

Example:

1773768946

user_fee_percent
enum<integer>
default:0

Percentage of processing fees paid by the customer.

Currently, only two values are supported:

  • 0 (the default) — the processing fee is paid by the merchant.
  • 100 — the processing fee is paid by the customer.
Available options:
0,
100
payment_currency
object

The cryptocurrency your customer will pay in. Unlike currency, this must be a cryptocurrency — fiat currencies are not supported.

You can set both the currency and network or just the currency. If rate_mode is fixed, you must set both the currency and network.

rate_mode
enum<string>
default:standard

This parameter controls the rate lock behavior. The value is case-sensitive.

  • standard - the customer will be able to choose the payment currency. The exchange rate will be locked after the customer confirms the selection on the first screen.
  • fixed - the exchange rate is locked immediately after the payment request is created. The first screen is skipped, and the customer is taken directly to the screen with the payment instructions. In this mode, you must specify both the currency and network in payment_currency, as well as provide sender_type, sender_data and end_user_email for the customer identification.
Available options:
standard,
fixed
end_user_email
string<email>

The customer's email address. It's filled in for the customer on the payment page. The customer gets an email when the payment is complete, and when a payment doesn't match the request (an underpayment that isn't accepted, an overpayment or a late payment): either a link to claim a refund, or a notice that the amount is too small to be refunded. Required if rate_mode is fixed.

Example:

"chris.customer@example.com"

end_user_reference
string

The unique ID of the customer this payment request is for. You can use it to group payment requests by customer.

sender_type
enum<string>

Type of the customer who sends the funds. Use natural if the sender is an individual person and legal if the sender is a legal entity. The selected type determines which fields must be included in sender_data.

sender_type and sender_data go together: if you provide one, you must also provide the other. Both are required if rate_mode is fixed. Otherwise, you can omit both, see Requesting data from the customer.

Available options:
natural,
legal
sender_data
Natural person · object

Details of the customer who sends the funds. Which fields are required depends on sender_type.

sender_type and sender_data go together: if you provide one, you must also provide the other. Both are required if rate_mode is fixed. Otherwise, you can omit both, see Requesting data from the customer.

description
string

Payment request description that the customer will see.

Example:

"Order #123"

foreign_id
string

Unique ID of the payment request in your system, case-insensitive. Must not contain personal data, such as the customer's name or email address. If omitted, the response doesn't include foreign_id, and callbacks send it as an empty string.

Maximum string length: 255
Example:

"order_123"

url_store
string<uri>

URL of the store page. The customer can click a button on the payment form to return to this URL (for example, if they change their mind or want to pick a different payment method). We recommend setting this to the URL of the checkout page.

Example:

"https://example.com/store"

url_success
string<uri>

URL of the success page. The customer will be able to return to this address once the payment is completed.

Example:

"https://example.com/success"

url_failed
string<uri>

URL of the failed payment page. The customer will be able to return to this address if the payment fails.

Example:

"https://example.com/fail"

Response

OK

data
object
Last modified on October 29, 2026