Skip to main content

E-Wallet Integration Guidelines - Cambodia

Introduction

This document specifies the protocols operated between Airpay PLATFORM and the content provider or merchant system.

This document is intended for merchants who want to integrate Indonesian eWallet payments through an API provided by Airpay.

This integration allows you to accept payments from multiple Cambodian digital wallets using a standardized and efficient process.

This integration is a solution that simplifies the process of integrating multiple eWallets into a single unified API. With this approach, merchants or partners only need to integrate with one standardized endpoint, without having to deal with the technical differences of each eWallet provider.

Supported E-Wallet

This is the supported payment method can used in Cambodia

Name Type Description
KHQR National QR Payment Standard The Cambodian national QR payment system, developed by the National Bank of Cambodia (NBC). It allows interoperability among banks and eWallets

Service Aggregator API Specs

API E-Wallet

This API will be used to merchants who want to integrate to ewallet in Indonesia using the payment KHQR.

Sample request: https://xxx.xxxxxx.xxxx/api/v1/ext/KH/KHQR/games/ewallet/request

Sample header: apikey: 2611263d-2406-489c-9042-abcsd76f9b

Error Response List:

Error Code Error Message
400 Bad request
500 Internal system error
900 Invalid signature
901 Invalid token
902 Token expired
903 Invalid channel
904 Invalid telco
905 Invalid service id
906 Invalid msisdn
907 Invalid OTP
9071 Invalid OTP key, not found or expired
9072 Invalid OTP value or not found
908 Channel not active
909 Telco not active
910 Service id not active
911 Duplicate trxid
912 Invalid Source or source may not register to this service
Authorizations:
None
path Parameters
country
required
string <= 50 characters

Country Name

channel
required
string <= 50 characters

Channel type Ex. (Dana, astrapay, ovo, shopeepay, linkaja)

service_ewallet
required
string <= 50 characters

Service name

header Parameters
apikey
required
string <= 50 characters

Api Key

Request Body schema: application/json
name
required
string <= 50 characters

User name

email
required
string <= 50 characters

User email

msisdn
required
string <= 50 characters

User msisdn

number
string <= 50 characters

Order number if needed

amount
required
string <= 50 characters

Service amount

description
required
string <= 50 characters

Description text

currency
required
string <= 50 characters

Currency type (Ex. IDR, USD etc)

payment_method
required
string <= 50 characters

Payment method. Required: INVOICE

trxid
string <= 50 characters

Transaction ID

clickid
required
string <= 50 characters

Click ID

pubid
required
string <= 50 characters

Publisher ID

return_url
required
string <= 50 characters

The return url after success payment

Responses

Request samples

Content type
application/json
{
  • "name": "John Doe",
  • "email": "john.doe@example.com",
  • "msisdn": "628123456789",
  • "number": "ORD123456789",
  • "amount": "10000",
  • "description": "Payment for service",
  • "currency": "IDR",
  • "payment_method": "INVOICE",
  • "trxid": "TRX123456789",
  • "clickid": "CLICK123456",
  • "pubid": "PUB123456",
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "success",
  • "data": {}
}

Merchant Integration Requirements

  • Postback URL: Reply URL at CP Server (If Applicable) for Receiving postback

    Example. 1 ) http://partner.com/callback

    Note: Each merchant must provide only one postback URL. The furnished URLs should be intended for production purposes.


  • We expected the merchant to send a response “OK” when we successfully hit your postback

    Sample: Hit:https://domain/callback?trx_id=LINKIT25112222229&trx_date=2025-10-27T15:04:11+07:00&status=1&status_desc=Success, Response: OK, Status: 200 OK, Status Code: 200


Postback Notif

Whenever users initiate an Postback request from their mobile phone, the Messaging Platform will forward the request to the content provider's URL using GET method.

Sample:

https://domain/callback?trx_id=LINKIT25112222229&trx_date=2025-10-27T15:04:11+07:00&status=1&status_desc=Success, Response: OK, Status: 200 OK, Status Code: 200

Postback URL

Status code list:

Error Code Description Note
0 FAILED
1 SUCCESS
2 UNKNOWN REASON
Authorizations:
None
query Parameters
trxid
required
string <= 150 characters

Transaction ID from LINKIT360

trx_date
required
string <= 150 characters

Transaction Date format YYYY-MM-DDTHH:MM:SS±HH:MM

status
required
string <= 50 characters

Status response

status_desc
required
string <= 50 characters

Status description