Skip to content

PayIn - QuasiEcom - H2H#

This page describes the methods for working with QuasiEcom PayIn orders using the H2H flow: card payment confirmed with a 3-D Secure/SMS code.

Create Order#

Request#

URL: POST https://<host>/api/v3/merchant/orders/payin/quasi-ecom/h2h

Headers:

Request body:

Field Type Required Description
methodID integer yes Transfer method
amount float64 yes Order amount in fiat, rounded to 2 decimal places
cardNumber string yes Card number (16 digits)
cvc string yes CVC/CVV (3 digits)
expireMonth string yes Card expiration month, MM
expireYear string yes Card expiration year, YY
cardholderName string yes Cardholder name
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/quasi-ecom/h2h' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer <YOUR-API-KEY>' \
  -d '{
  "methodID": 12,
  "amount": 100.12,
  "cardNumber": "4111111111111111",
  "cvc": "123",
  "expireMonth": "12",
  "expireYear": "29",
  "cardholderName": "IVAN IVANOV",
  "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"). The order type is QuasiEcom, the direction is PayIn. If 3-D Secure/SMS confirmation is required, the order is created with the confirm_waiting status:

{
  "id": "9c37e448-84b5-4639-9ffa-29558f8f2567",
  "createdAt": "2026-08-31T16:08:06.310479Z",
  "updatedAt": "2026-08-31T16:08:06.825346Z",
  "type": "QuasiEcom",
  "direction": "PayIn",
  "status": "confirm_waiting",
  "merchantOrderID": "316b6280-d6e2-4627-bacd-fcda062438bc",
  "clientID": "ID1234",
  "methodID": 12,
  "currencyCode": "AZN",
  "amount": 100.12,
  "exchangeRate": 1.78,
  "trafficType": "mixed"
}

Possible business failures (400/409) - see the errorCode table on the "Request Authorization" page. Invalid card data - 400 with errorCode = invalid_request_parameters.

Confirm Order with Code#

Confirms an order in the confirm_waiting status with a 3-D Secure/SMS code.

Request#

URL: POST https://<host>/api/v3/merchant/orders/{id}/quasi-ecom/confirm

  • {id} - order UUID

Headers:

Request body:

Field Type Required Description
code string yes Confirmation code

cURL Example#

curl -X 'POST' \
  'https://<host>/api/v3/merchant/orders/9c37e448-84b5-4639-9ffa-29558f8f2567/quasi-ecom/confirm' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer <YOUR-API-KEY>' \
  -d '{
  "code": "123456"
}'

Response#

HTTP Status Code: 200

The response body is the OrderOut order model (see "General Information") with the order status beyond confirm_waiting.

Errors (400 with errorCode = invalid_request_parameters):

  • Wrong confirmation code
  • The order is outside the confirm_waiting status (already confirmed or in a final status)

Order not found - 404.

Callback Conditions#

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