Mobile Commerce
This payment method lets the customer make a payment using their mobile phone balance.
IS Integration option
Info
This integration option supports only KZT
currency.
Payment flow
- The customer initiates the payment on the merchant's website.
- The merchant displays a phone number submission form to the customer.
- The customer submits their mobile phone number.
- The merchant sends the payment request to PaySage.io.
- PaySage.io sends the response with the
pending
status. - The merchant displays an OTP (one-time password) submission form to the customer.
- The customer receives an SMS message with the one-time password.
- The customer enters the OTP on the merchant's website and confirms the payment.
- The merchant sends the transaction confirmation request to PaySage.io. The request contains the OTP submitted by the customer.
- The PaySage.io sends the response to the confirm request.
- PaySage.io sends a webhook notification with the payment status to the merchant. The merchant may also request the payment status from PaySage.io with the status query.
- The merchant displays the final payment status to the customer.
Payment
Request
Send a payment request with the following additional parameters:
Parameter | Type | Description |
---|---|---|
request | object | |
return_url * required |
string | A URL to return the customer to when a transaction is completed. |
method | object | A section of the payment method information. |
type * required |
string | mobile_commerce . |
account_number * required |
string (11) | The customer's phone number, 11 digits without spaces and without special symbols. |
Request example
{
"request": {
"amount": 1002,
"currency": "KZT",
"description": "test",
"test": false,
"tracking_id": "31765111-a44a-43f1-93f0-b70f81b97f9e",
"language": "en",
"return_url": "https://your-success.url",
"method": {
"type": "mobile_commerce",
"account_number": "12345678901"
}
}
}
Response
Response example
{
"transaction": {
"uid": "113fe130-3b11-11eb-11db-114b205ca951",
"type": "payment",
"status": "pending",
"amount": 1002,
"currency": "KZT",
"description": "test",
"created_at": "2025-04-26T07:15:00Z",
"updated_at": "2025-04-26T07:15:00Z",
"method_type": "mobile_commerce",
"receipt_url": "https://backoffice.paysage.io/customer/transactions/a73fe130-3b66-45eb-80db-674b205ca951/628507edc0c73886eb09f6c6309fe599f0dbad33d392ffaac87bb415a801b4dc?language=en",
"payment": {
"status": "pending",
"gateway_id": 5290,
"ref_id": "18d28c32-c3f6-4acc-ba09-268b12ec7637",
"message": "Transaction was initialized. Need approve."
},
"mobile_commerce": {
"type": "mobile_commerce",
"account_number": "12345678901"
},
"customer": {
"email": null,
"ip": null
},
"manually_corrected_at": null,
"version": 0,
"message": "Transaction was initialized. Need approve.",
"tracking_id": "31765111-a44a-43f1-93f0-b70f81b97f9e",
"test": false,
"language": "en",
"additional_data": {
"payment_method": {
"type": "alternative"
}
},
"gateway": {
"iframe": false
}
}
}
Transaction confirmation
Request
Send a confirmation request specifying the uid
of the corresponding payment transaction as the path parameter
POST https://api.paysage.io/beyag/transactions/{uid}/confirm
Specify the following parameters in the request body:
Parameter | Type | Description |
---|---|---|
request | object | |
skip_duplicate_check | boolean | If false , declines a request if the request with the same uid was sent within 30 seconds prior to it. By default, set to false . |
password * required |
string | The one-time password submitted by the customer. |
Request example
{
"request": {
"password": "5576"
}
}
Response
Response example
{
"transaction": {
"parent_uid": "113fe130-3b11-11eb-11db-114b205ca951",
"type": "confirm",
"status": "successful",
"message": "Confirm was successfully processed.",
"created_at": "2025-04-25T07:20:44+00:00",
"amount": 1002,
"currency": "KZT"
}
}
Refund
Request
Send a standard refund request. The amount
value must equal the amount of the parent transaction.