Skip to main content
POST

Authorizations

x-api-key
string
header
required

Headers

Idempotency-Key
string

Optional, recommended. 1-255 printable ASCII characters without spaces (e.g. a UUID v4) generated once per payment attempt and reused for every retry of it. Scoped to the merchant, kept 24 h. A retry of a finished request returns the stored status and body with Idempotency-Replayed: true; a retry while the first request is still running gets 409 IDEMPOTENCY_IN_PROGRESS with Retry-After; the same key with a different body or endpoint gets 422 IDEMPOTENCY_KEY_REUSED.

Example:

"0b6f2c1e-4c7a-4a43-9a51-6a4b1d7e9f10"

Body

application/json
amount
string
required

Amount as a decimal string in major units of currency: "12.30" EUR, "5000" JPY, "0.00000001" BTC. Must be greater than zero. JSON numbers (12.3, 1230) are rejected with 400. At most 18 decimals here; the payment core also rejects more decimals than the currency allows ("12.345" EUR, "1.5" JPY).

Pattern: ^(0|[1-9]\d{0,19})(\.\d{1,18})?$
Example:

"10.00"

buyerId
string
required

Buyer ID in merchant system

Example:

"customer_123"

callbackUrl
string
required

Callback URL

Example:

"https://example.com/callback"

currency
string
required

Currency

Example:

"USD"

failureUrl
string
required

Failure URL

Example:

"https://example.com/failure"

merchantId
string
required

Merchant ID

Example:

"mr_clyv2goxb0000z8b8j5y6fl1j"

orderId
string
required

Transaction ID in merchant system. The pl_ prefix is reserved for payment links (422 ORDER_ID_RESERVED).

Example:

"transaction_123"

returnUrl
string
required

Return URL

Example:

"https://example.com/return"

successUrl
string
required

Success URL

Example:

"https://example.com/success"

customer
object

Customer

Example:
description
string

Order description shown to the buyer on the hosted payment page

Maximum string length: 255
Example:

"2 x Coffee beans, 1 kg"

locale
enum<string>

Locale in BCP 47 format

Available options:
en-US,
ru-RU,
uk-UA,
en-GB,
pl-PL,
cs-CZ,
de-DE,
de-AT,
de-CH
Example:

"en-US"

metadata
object

Metadata: at most 16 KiB encoded JSON, 50 entries per container, nesting depth 5.

Example:
paymentMethod
string

Payment method (credential config id). Omit it to let the buyer pick one of your methods on the hosted payment page: the response then carries paymentPageUrl.

Example:

"cr_clyv2goxb0000z8b8j5y6fl1j"

paymentMethodInput
object

Payment method input

Example:

Response

Transaction created, or status: false with a business error (e.g. INVALID_AMOUNT: ... when the amount has more decimals than the currency allows). Money fields are decimal strings in major units. LIVEMODE_MISMATCH is a declined transaction returned with status: true, not an HTTP error; no PSP operation is sent.

status
boolean
required

Operation status

Example:

true

error
string

Error message (if operation failed)

Example:

"Payment method not available"

nextAction
object

Validated app confirmation or voucher instructions for the payer

paymentPageUrl
string

Sales only: the hosted payment page, when the buyer still has to pick a method or type payment details (no paymentMethod, or incomplete paymentMethodInput). Redirect the buyer there; url carries the same value. Valid until the sale expires (48 h by default); the token in it is the only key to the page, so treat the URL like a secret link.

Example:

"https://pay.example.com/pay/hpp1.dHJfeHYwcDJxNXNjb2NuZHBlamswbnVkNzVxOjE3NjAxMDAwMDA.X8f…"

pending
boolean

Accepted payment awaiting confirmation. On PSP_OUTCOME_UNKNOWN poll the transaction; do not resubmit or create a new order.

Example:

true

transaction
object

Transaction details

url
string

Redirect URL for payment completion (if required)

Example:

"https://payment-provider.com/pay/abc123"