Skip to content

PayIn - P2P - PaymentPage#

This page describes the methods for working with P2P PayIn orders using the PaymentPage flow.

Create Order#

Creates an order and returns the payment page URL; the payment details for the client are issued by the page.

Request#

URL: POST https://<host>/api/v3/merchant/orders/payin/p2p/payment-page

Headers:

Request body:

Field Type Required Description
methodID integer yes Order method
amount float64 yes Order amount in fiat, rounded to 2 decimal places
successRedirectURL string yes URL to redirect the client to after a successful payment
failRedirectURL string yes URL to redirect the client to after a failed payment
clientID string no Client identifier
merchantOrderID string no Merchant order identifier; unique within the merchant
trafficType string no Traffic type
callbackURL string no URL for sending callbacks
clientMetadata object no Client data, see "General Information"

cURL Example#

curl -X 'POST' \
  'https://<host>/api/v3/merchant/orders/payin/p2p/payment-page' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer <YOUR-API-KEY>' \
  -d '{
  "methodID": 9,
  "amount": 100.12,
  "successRedirectURL": "https://merchant.example.com/success",
  "failRedirectURL": "https://merchant.example.com/fail",
  "clientID": "ID1234",
  "merchantOrderID": "316b6280-d6e2-4627-bacd-fcda062438bc",
  "trafficType": "mixed",
  "callbackURL": "http://example.com/webhook"
}'

Response#

HTTP Status Code: 200

The response body is the OrderOut order model (see "General Information") with the paymentPageURL field - the URL of the payment page for the payment:

{
  "id": "9c37e448-84b5-4639-9ffa-29558f8f2567",
  "createdAt": "2026-08-31T16:08:06.310479Z",
  "updatedAt": "2026-08-31T16:08:06.310479Z",
  "type": "PayIn",
  "direction": "PayIn",
  "status": "created",
  "merchantOrderID": "316b6280-d6e2-4627-bacd-fcda062438bc",
  "clientID": "ID1234",
  "methodID": 9,
  "currencyCode": "AZN",
  "amount": 100.12,
  "exchangeRate": 1.78,
  "trafficType": "mixed",
  "paymentPageURL": "https://<host>/pay/9c37e448-84b5-4639-9ffa-29558f8f2567"
}

The order is created with the created status; the amountUSDT, merchantCommission, and merchantCommissionUSDT fields are filled after the order is calculated (see "General Information").

Possible business failures (400/409) - see the errorCode table on the "Request Authorization" page.

Callback Conditions#

The webhook is sent when the order transitions to one of the trigger statuses. The full list is on the "Callbacks" page.