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:
Content-Type: application/jsonAuthorization: Bearer <YOUR-API-KEY>. See the "Request Authorization" page.
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:
Content-Type: application/jsonAuthorization: Bearer <YOUR-API-KEY>. See the "Request Authorization" page.
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_waitingstatus (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.