JSON Transaction API Specification
JSON Transaction API Specification
Format Specification
PT. Metalogix Infolink Persada
Document History
1
1. Terminology and Definition
XLink API
API service that providing bill payment
M
mandatory, this data/field must exist
O
optional, this data/field may or may not exist
C
conditional, this data/field must exist in certain condition, otherwise it is optional
an
alphanumeric data with no bound
an[n]
alphanumeric data with exactly n length
an[n..m]
alphanumeric data variably length, minimum n and maximum m
n[n]
numeric data with exactly n length
n[n..m]
numeric data variably length, minimum n and maximum m
c[p,d]
amount data with precision length p and d decimal after point
x
hexadecimal encoded data
b64
base64 encoded data
ts
ISO8601 timestamp, formatted as local timezone (WIB)
struct
sub JSON structure
2
2. Message Flow
Partner XLink API
1 Topup Request
2 Topup Response
3 Payment Request
4 Payment Response
4 Payment Request
5 Payment Response
3
Partner XLink API
1 Inquiry Request
2 Inquiry Response
1. [Link]
2. [Link]
3. [Link]
4. [Link]
5. [Link]
6. [Link]
The respective port will be defined and prepared as needed, whenever development environment required.
Production will use different end point, and all the details will be part of production deployment/migration-
plan.
4
3. Message Format
JSON struct will be used as message format presentation. JSON key will use camelCase format to
enhance readability.
{
"requestTime": "(M) ts",
"requestId": "(M) n[1..6]",
"billId": "(M) an[1..28]",
"productCode": "(M) an[6]",
"caId": "(M) an[1..16]",
"agentId": "(M) an[1..16]",
"agentName": "(O) an[1..40]",
"terminalId": "(M) an[1..16]",
"merchantType": "(M) an[1..16]",
"referenceNo": "(O) an[1..12]"
}
{
"requestTime": "(M) ts",
"requestId": "(M) n[1..6]",
"billId": "(M) an[1..28]",
"amount": "(M) c[12,0]",
"status": "(M) an[1..5]",
"referenceNo": "(O) an[1..12]",
"message": "(O) an[1..40]",
"trace": "(M) n[6]",
"billData": "(C) struct"
}
{
"requestTime": "(M) ts",
"requestId": "(M) n[1..6]",
"billId": "(M) an[1..28]",
"productCode": "(M) an[6]",
"amount": "(M) c[12,0]",
"caId": "(M) an[1..16]",
"agentId": "(M) an[1..16]",
"agentName": "(O) an[1..40]",
5
"terminalId": "(M) an[1..16]",
"merchantType": "(M) an[1..16]",
"referenceNo": "(O) an[1..12]",
"billData": "(C) struct"
}
{
"requestTime": "(M) ts",
"requestId": "(M) n[1..6]",
"billId": "(M) an[1..28]",
"amount": "(M) c[12,0]",
"status": "(M) an[1..5]",
"referenceNo": "(O) an[1..12]",
"message": "(O) an[1..40]",
"trace": "(M) n[6]",
"billData": "(C) struct"
}
{
"requestTime": "(M) ts",
"requestId": "(M) n[1..6]",
"billId": "(M) an[1..28]",
"productCode": "(M) an[6]",
"amount": "(M) c[12,0]",
"caId": "(M) an[1..16]",
"agentId": "(M) an[1..16]",
"agentName": "(O) an[1..40]",
"terminalId": "(M) an[1..16]",
"merchantType": "(M) an[1..16]",
"referenceNo": "(O) an[1..12]"
}
{
"requestTime": "(M) ts",
"requestId": "(M) n[1..6]",
"billId": "(M) an[1..28]",
"amount": "(M) c[12,0]",
"status": "(M) an[1..5]",
"referenceNo": "(O) an[1..12]",
"message": "(O) an[1..40]",
"trace": "(M) n[6]",
6
"billData": "(C) struct"
}
{
"requestTime": "(M) ts",
"requestId": "(M) n[1..6]",
"billId": "(M) an[1..28]",
"productCode": "(M) an[6]",
"caId": "(M) an[1..16]",
"agentId": "(M) an[1..16]",
"agentName": "(O) an[1..40]",
"terminalId": "(M) an[1..16]",
"merchantType": "(M) an[1..16]",
"referenceNo": "(O) an[1..12]"
}
{
"requestTime": "(M) ts",
"requestId": "(M) n[1..6]",
"billId": "(M) an[1..28]",
"amount": "(M) c[12,0]",
"status": "(M) an[1..5]",
"referenceNo": "(O) an[1..12]",
"message": "(O) an[1..40]",
"trace": "(M) n[6]",
"billData": "(C) struct"
}
3.5. Reversal
Listing 9. Reversal Request:
{
"requestTime": "(M) ts",
"requestId": "(M) n[1..6]",
"billId": "(M) an[1..28]",
"productCode": "(M) an[6]",
"amount": "(M) c[12,0]",
"caId": "(M) an[1..16]",
"agentId": "(M) an[1..16]",
"agentName": "(O) an[1..40]",
"terminalId": "(M) an[1..16]",
"merchantType": "(M) an[1..16]",
7
"referenceNo": "(O) an[1..12]",
"originalTransaction": {
"requestTime": "(M) ts",
"requestId": "(M) n[1..6]",
"referenceNo": "(O) an[1..12]
}
}
{
"requestTime": "(M) ts",
"requestId": "(M) n[1..6]",
"billId": "(M) an[1..28]",
"amount": "(M) c[12,0]",
"status": "(M) an[1..5]",
"referenceNo": "(O) an[1..12]",
"message": "(O) an[1..40]",
"trace": "(M) n[6]"
}
8
4. Transport Security
To protect message from tampering and eavesdropping, SSL (HTTPS) must be used with respective SSL
specification:
9
5. Product Specific Private billData Structure
5.1. Telco Postpaid Product
Covered Product Code
• 010001 (Telkomsel Halo)
• 012101 (Tri Postpaid)
• 013001 (XL XPlor)
• 013102 (AXIS Postpaid)
• 016002 (Smartfren Postpaid)
• 017003 (Telkom Fix Line / PSTN)
none required
{
"numberOfBills": "(O) n[1]",
"customerName": "(O) n[1..40]",
"dueDate": "(O) n[8]",
"private": "(M) an[1..292]"
}
{
"numberOfBills": "(O) n[1]",
"numberOfBillsPaid": "(O) n[1]",
"customerName": "(O) n[1..40]",
"dueDate": "(O) n[8]",
"private": "(M) an[1..292]"
}
{
"private": "(M) an[1..292]",
"numberOfBills": "(O) n[1]",
"numberOfBillsPaid": "(O) n[1]",
"customerName": "(O) n[1..40]",
"dueDate": "(O) n[8]",
"serialnum": "(O) an[1..30]
}
10
5.2. Telco Data Product
Covered Product Code
• 013007 (XL MDS)
{
"packagecode": "(M) an[1..3]"
}
{
"packagecode": "(O) an[3]",
"productdenom": "(O) n[12]",
"packagedetail": "(O) an[100]",
"private": "(M) an[1..292]"
}
{
"packagecode": "(O) an[3]",
"productdenom": "(O) n[12]",
"packagedetail": "(O) an[100]",
"private": "(M) an[1..292]"
}
{
"packagecode": "(O) an[3]",
"serialnum": "(O) an[30]",
"productdenom": "(O) n[12]",
"packagedetail": "(O) an[100]",
"private": "(M) an[1..292]"
}
none required
{
"private": "(M) an[1..292]",
"packageList": [
{
11
"packageCode": "(O) an[1..3]",
"packageDescription": "(O) an[1..30]"
},
{
"packageCode": "(O) an[1..3]",
"packageDescription": "(O) an[1..30]"
},
{
"packageCode": "(O) an[1..3]",
"packageDescription": "(O) an[1..30]"
},
{
"packageCode": "(O) an[1..3]",
"packageDescription": "(O) an[1..30]"
},
...
]
}
5.3. Wifi ID
Covered Product Code
• 061801
none required
{
"customerId": "(O) an[16]",
"refNo": "(O) an[20]",
"trxId": "(O) an[20]",
"itemCode": "(O) an[10]",
"trxExpire": "(O) an[20]",
"expDate": "(O) an[10]",
"vsn": "(O) an[10]",
"hrn": "(O) an[20]",
"private": "(M) an[1..292]"
}
{
"customerId": "(O) an[16]",
"refNo": "(O) an[20]",
"trxId": "(O) an[20]",
"itemCode": "(O) an[10]",
12
"trxExpire": "(O) an[20]",
"expDate": "(O) an[10]",
"vsn": "(O) an[10]",
"hrn": "(O) an[20]",
"private": "(M) an[1..292]"
}
{
"customerId": "(O) an[16]",
"refNo": "(O) an[20]",
"trxId": "(O) an[20]",
"itemCode": "(O) an[10]",
"trxExpire": "(O) an[20]",
"expDate": "(O) an[10]",
"vsn": "(O) an[10]",
"hrn": "(O) an[20]",
"private": "(M) an[1..292]"
}
none required
{
"nama": "(O) an[1..30]",
"blth": "(O) an[1..32]",
"daya": "(O) n[9]",
"jmltagihan": "(O) n[2]",
"serviceunitphone": "(O) an[1..15]",
"sponsor": "(O) an[1..100]",
"standmeter": "(O) an[1..17]",
"tarif": "(O) an[1..4]",
"totaladmincharge": "(O) n[12]",
"totalbayar": "(O) an[1..12]",
"totaltagihan": "(O) an[1..12]",
"tunggakan": "(O) n[2]",
"currmeter1": "(O) an[1..8]",
"prevmeter1": "(O) an[1..8]",
"rptag1": "(O) n[18]",
"blth1": "(O) an[1..6]",
13
"currmeter2": "(O) an[1..8]",
"prevmeter2": "(O) an[1..8]",
"rptag2": "(O) n[18]",
"blth2": "(O) an[1..6]",
"currmeter3": "(O) an[1..8]",
"prevmeter3": "(O) an[1..8]",
"rptag3": "(O) n[18]",
"blth3": "(O) an[1..6]",
"currmeter4": "(O) an[1..8]",
"prevmeter4": "(O) an[1..8]",
"rptag4": "(O) n[18]",
"blth4": "(O) an[1..6]",
"private": "(M) an[1..292]"
}
{
"nama": "(O) an[1..30]",
"blth": "(O) an[1..32]",
"daya": "(O) n[9]",
"jmltagihan": "(O) n[2]",
"serviceunitphone": "(O) an[1..15]",
"sponsor": "(O) an[1..100]",
"standmeter": "(O) an[1..17]",
"tarif": "(O) an[1..4]",
"totaladmincharge": "(O) n[12]",
"totalbayar": "(O) an[1..12]",
"totaltagihan": "(O) an[1..12]",
"tunggakan": "(O) n[2]",
"currmeter1": "(O) an[1..8]",
"prevmeter1": "(O) an[1..8]",
"rptag1": "(O) n[18]",
"blth1": "(O) an[1..6]",
"currmeter2": "(O) an[1..8]",
"prevmeter2": "(O) an[1..8]",
"rptag2": "(O) n[18]",
"blth2": "(O) an[1..6]",
"currmeter3": "(O) an[1..8]",
"prevmeter3": "(O) an[1..8]",
"rptag3": "(O) n[18]",
"blth3": "(O) an[1..6]",
"currmeter4": "(O) an[1..8]",
"prevmeter4": "(O) an[1..8]",
"rptag4": "(O) n[18]",
"blth4": "(O) an[1..6]",
"private": "(M) an[1..292]"
}
14
Listing 28. Payment Response
{
"jmltagihan": "(O) n[2]",
"tunggakan": "(O) n[2]",
"serviceunitphone": "(O) an[1..15]",
"tarif": "(O) an[1..4]",
"daya": "(O) n[9]",
"totaladmincharge": "(O) n[12]",
"blth4": "(O) an[1..6]",
"rptag4": "(O) n[18]",
"prevmeter4": "(O) an[1..8]",
"currmeter4": "(O) an[1..8]",
"blth3": "(O) an[1..6]",
"rptag3": "(O) n[18]",
"prevmeter3": "(O) an[1..8]",
"currmeter3": "(O) an[1..8]",
"blth2": "(O) an[1..6]",
"rptag2": "(O) n[18]",
"prevmeter2": "(O) an[1..8]",
"currmeter2": "(O) an[1..8]",
"blth1": "(O) an[1..6]",
"rptag1": "(O) n[18]",
"prevmeter1": "(O) an[1..8]",
"currmeter1": "(O) an[1..8]",
"nama": "(O) an[1..30]",
"sponsor": "(O) an[1..100]",
"standmeter": "(O) an[1..17]",
"totalbayar": "(O) an[1..12]",
"totaltagihan": "(O) an[1..12]",
"blth": "(O) an[1..32]",
"private": "(M) an[1..292]"
}
none required
{
"customerid": "(O) an[1..19]",
"admincharge": "(O) n[12]",
"muadmincharge": "(O) n[1]",
"muplnbill": "(O) n[1]",
15
"mutotalamount": "(O) n[1]",
"plnbill": "(O) n[18]",
"registrationcode": "(O) an[1..32]",
"registrationdate": "(O) n[8]",
"serviceunitphone": "(O) an[1..15]",
"sponsor": "(O) an[1..120]",
"subscribername": "(O) an[1..25]",
"totalamount": "(O) n[18]",
"transactionname": "(O) an[1..25]",
"private": "(M) an[1..292]"
}
{
"customerid": "(O) an[1..19]",
"admincharge": "(O) n[12]",
"muadmincharge": "(O) n[1]",
"muplnbill": "(O) n[1]",
"mutotalamount": "(O) n[1]",
"plnbill": "(O) n[18]",
"registrationcode": "(O) an[1..32]",
"registrationdate": "(O) n[8]",
"serviceunitphone": "(O) an[1..15]",
"sponsor": "(O) an[1..120]",
"subscribername": "(O) an[1..25]",
"totalamount": "(O) n[18]",
"transactionname": "(O) an[1..25]",
"private": "(M) an[1..292]"
}
{
"customerid": "(O) an[1..19]",
"admincharge": "(O) n[12]",
"muadmincharge": "(O) n[1]",
"muplnbill": "(O) n[1]",
"mutotalamount": "(O) n[1]",
"plnbill": "(O) n[18]",
"registrationcode": "(O) an[1..32]",
"registrationdate": "(O) n[8]",
"serviceunitphone": "(O) an[1..15]",
"sponsor": "(O) an[1..120]",
"subscribername": "(O) an[1..25]",
"totalamount": "(O) n[18]",
"transactionname": "(O) an[1..25]",
"private": "(M) an[1..292]"
}
16
5.6. PDAM
Covered Product Code
• 0043132 (PDAM Aetra / Palyja)
none required
{
"productname": "(O) an[1..20]",
"subscribername": "(O) an[1..40]",
"numbills": "(O) an[1..3]",
"period": "(O) an[1..12]",
"admincharge": "(O) n[12]",
"billamount": "(O) n[12]",
"totalbillamount": "(O) n[12]",
"findamount": "(O) n[12]",
"standmeter": "(O) n[12]",
"refnumber": "(O) an[1..32]",
"prevmeter": "(O) an[1..10]",
"currmeter": "(O) an[1..10]",
"tarif": "(O) an[1..15]",
"address": "(O) an[1..50]",
"private": "(M) an[1..292]"
}
{
"productname": "(O) an[1..20]",
"subscribername": "(O) an[1..40]",
"numbills": "(O) an[1..3]",
"period": "(O) an[1..12]",
"admincharge": "(O) n[12]",
"billamount": "(O) n[12]",
"totalbillamount": "(O) n[12]",
"findamount": "(O) n[12]",
"standmeter": "(O) n[12]",
"refnumber": "(O) an[1..32]",
"prevmeter": "(O) an[1..10]",
"currmeter": "(O) an[1..10]",
"tarif": "(O) an[1..15]",
"address": "(O) an[1..50]",
"private": "(M) an[1..292]"
}
17
Listing 36. Payment Response
{
"productname": "(O) an[1..20]",
"subscribername": "(O) an[1..40]",
"numbills": "(O) an[1..3]",
"period": "(O) an[1..12]",
"admincharge": "(O) n[12]",
"billamount": "(O) n[12]",
"totalbillamount": "(O) n[12]",
"findamount": "(O) n[12]",
"standmeter": "(O) n[12]",
"refnumber": "(O) an[1..32]",
"prevmeter": "(O) an[1..10]",
"currmeter": "(O) an[1..10]",
"tarif": "(O) an[1..15]",
"address": "(O) an[1..50]",
"private": "(M) an[1..292]"
}
{
"jmlbln": "(O) an[1..6]"
}
{
"name": "(O) an[1..50]",
"nova": "(O) an[1..16]",
"jmlpeserta": "(O) n[2]",
"jmlbln": "(O) an[1..6]",
"admincharge": "(O) n[12]",
"billamount": "(O) n[12]",
"totalamount": "(O) n[12]",
"refnumber": "(O) an[1..32]",
"private": "(M) an[1..292]"
}
{
"name": "(O) an[1..50]",
18
"nova": "(O) an[1..16]",
"jmlpeserta": "(O) n[2]",
"jmlbln": "(O) an[1..6]",
"admincharge": "(O) n[12]",
"billamount": "(O) n[12]",
"totalamount": "(O) n[12]",
"refnumber": "(O) an[1..32]",
"private": "(M) an[1..292]"
}
{
"name": "(O) an[1..50]",
"nova": "(O) an[1..16]",
"jmlpeserta": "(O) n[2]",
"jmlbln": "(O) an[1..6]",
"admincharge": "(O) n[12]",
"billamount": "(O) n[12]",
"totalamount": "(O) n[12]",
"refnumber": "(O) an[1..32]",
"private": "(M) an[1..292]"
}
none required
{
"name": "(O) an[1..50]",
"nova": "(O) an[1..16]",
"jenistag": "(O) an[1..6]",
"kodehit": "(O) an[1..10]",
"namaperusahaan": "(O) an[1..50]",
"kodeperusahaan": "(O) an[1..6]",
"billamount": "(O) n[12]",
"totalamount": "(O) n[12]",
"admincharge": "(O) n[12]",
"refnumber": "(O) an[1..32]",
"private": "(M) an[1..292]"
}
19
Listing 43. Payment Request
{
"name": "(O) an[1..50]",
"nova": "(O) an[1..16]",
"jenistag": "(O) an[1..6]",
"kodehit": "(O) an[1..10]",
"namaperusahaan": "(O) an[1..50]",
"kodeperusahaan": "(O) an[1..6]",
"billamount": "(O) n[12]",
"totalamount": "(O) n[12]",
"admincharge": "(O) n[12]",
"refnumber": "(O) an[1..32]",
"private": "(M) an[1..292]"
}
{
"name": "(O) an[1..50]",
"nova": "(O) an[1..16]",
"jenistag": "(O) an[1..6]",
"kodehit": "(O) an[1..10]",
"namaperusahaan": "(O) an[1..50]",
"kodeperusahaan": "(O) an[1..6]",
"billamount": "(O) n[12]",
"totalamount": "(O) n[12]",
"admincharge": "(O) n[12]",
"refnumber": "(O) an[1..32]",
"private": "(M) an[1..292]"
}
5.9. Telkom
Covered Product Code
• 017003 (PSTN)
• 017004 (Speedy/IndiHome)
none required
{
"customername": "(O) an[1..40]",
"numbills": "(O) n[1]",
"numbillspaid": "(O) n[1]",
"duedate": "(O) an[1..8]",
20
"finebill1": "(O) n[1..12]",
"taxbill1": "(O) n[1..12]",
"amountbill1": "(O) n[1..12]",
"finebill2": "(O) n[1..12]",
"taxbill2": "(O) n[1..12]",
"amountbill2": "(O) n[1..12]",
"finebill3": "(O) n[1..12]",
"taxbill3": "(O) n[1..12]",
"amountbill3": "(O) n[1..12]",
"finebill4": "(O) n[1..12]",
"taxbill4": "(O) n[1..12]",
"amountbill4": "(O) n[1..12]",
"private": "(M) an[1..292]"
}
{
"customername": "(O) an[1..40]",
"numbills": "(O) n[1]",
"numbillspaid": "(O) n[1]",
"duedate": "(O) an[1..8]",
"finebill1": "(O) n[1..12]",
"taxbill1": "(O) n[1..12]",
"amountbill1": "(O) n[1..12]",
"finebill2": "(O) n[1..12]",
"taxbill2": "(O) n[1..12]",
"amountbill2": "(O) n[1..12]",
"finebill3": "(O) n[1..12]",
"taxbill3": "(O) n[1..12]",
"amountbill3": "(O) n[1..12]",
"finebill4": "(O) n[1..12]",
"taxbill4": "(O) n[1..12]",
"amountbill4": "(O) n[1..12]",
"private": "(M) an[1..292]"
}
{
"customername": "(O) an[1..40]",
"numbills": "(O) n[1]",
"numbillspaid": "(O) n[1]",
"duedate": "(O) an[1..8]",
"finebill1": "(O) n[1..12]",
"taxbill1": "(O) n[1..12]",
"amountbill1": "(O) n[1..12]",
"finebill2": "(O) n[1..12]",
"taxbill2": "(O) n[1..12]",
"amountbill2": "(O) n[1..12]",
21
"finebill3": "(O) n[1..12]",
"taxbill3": "(O) n[1..12]",
"amountbill3": "(O) n[1..12]",
"finebill4": "(O) n[1..12]",
"taxbill4": "(O) n[1..12]",
"amountbill4": "(O) n[1..12]",
"private": "(M) an[1..292]"
}
none required
{
"customername": "(O) an[1..40]",
"serviceperiod": "(O) an[1..50]",
"amountbill1": "(O) n[12]",
"refnumbill1": "(O) an[1..16]",
"refnumbill2": "(O) an[1..16]",
"info1": "(O) an[1..150]",
"info2": "(O) an[1..75]",
"message1": "(O) an[1..75]",
"message2": "(O) an[1..75]",
"private": "(M) an[1..292]"
}
{
"customername": "(O) an[1..40]",
"serviceperiod": "(O) an[1..50]",
"amountbill1": "(O) n[12]",
"refnumbill1": "(O) an[1..16]",
"refnumbill2": "(O) an[1..16]",
"info1": "(O) an[1..150]",
"info2": "(O) an[1..75]",
"message1": "(O) an[1..75]",
"message2": "(O) an[1..75]",
"private": "(M) an[1..292]"
}
22
Listing 52. Payment Response
{
"customername": "(O) an[1..40]",
"serviceperiod": "(O) an[1..50]",
"amountbill1": "(O) n[12]",
"refnumbill1": "(O) an[1..16]",
"refnumbill2": "(O) an[1..16]",
"info1": "(O) an[1..150]",
"info2": "(O) an[1..75]",
"message1": "(O) an[1..75]",
"message2": "(O) an[1..75]",
"private": "(M) an[1..292]"
}
23
6. Message Samples
6.1. Bill Inquiry
Listing 53. Bill Inquiry Request
{
"agentId": "AGENT",
"billId": "081818181818",
"caId": "CA",
"merchantType": "6017",
"productCode": "013001",
"requestId": "1212",
"requestTime": "2023-05-04T08:51:11+07:00",
"terminalId": "TERMID"
}
{
"amount": "140000",
"billData": {
"customerName": "Nama Pelanggan",
"dueDate": "11052023",
"numberOfBills": "1",
"private": "062081818181818 1071440736 11 000000000000000000000000000000000000
000000000000000000000000000000000000 000000000000000000000000000000000000
000000166500000000000000000000000000Nama Pelanggan 11052023 "
},
"billId": "081818181818",
"message": "Success",
"referenceNo": "000000001212",
"requestId": "1212",
"requestTime": "2023-05-04T08:51:11+07:00",
"status": "00",
"trace": "001212"
}
6.2. Payment
Listing 55. Bill Payment Request
{
"agentId": "AGENT",
"amount": "140000",
"billData": {
"private": "062081818181818 1071440736 11 000000000000000000000000000000000000
000000000000000000000000000000000000 000000000000000000000000000000000000
000000166500000000000000000000000000Nama Pelanggan 11052023 "
},
"billId": "0818181818181",
"caId": "CA",
"merchantType": "6017",
"productCode": "013001",
"requestId": "1212",
"requestTime": "2023-05-04T09:02:22+07:00",
24
"terminalId": "TERMID"
}
{
"amount": "140000",
"billData": {
"customerName": "Nama Pelanggan",
"dueDate": "11052023",
"numberOfBills": "1",
"numberOfBillsPaid": "1",
"private": "062081818181818 1071440736 11 000000000000000000000000000000000000
000000000000000000000000000000000000 000000000000000000000000000000000000
000000166500000000000000000000000000Nama Pelanggan 11052023 "
},
"billId": "0818181818181",
"message": "Success",
"referenceNo": "000000001212",
"requestId": "1212",
"requestTime": "2023-05-04T09:02:22+07:00",
"status": "00",
"trace": "001212"
}
6.3. Reversal
Listing 57. Payment Reversal Request
{
"agentId": "AGENT",
"amount": "140000",
"billId": "0818181818181",
"caId": "CA",
"merchantType": "6017",
"originalTransaction": {
"requestId": "22222",
"requestTime": "2023-05-04T11:07:25+07:00"
},
"productCode": "013001",
"requestId": "1212",
"requestTime": "2023-05-04T11:12:25+07:00",
"terminalId": "TERMID"
}
{
"amount": "140000",
"billId": "0818181818181",
"message": "Success",
"referenceNo": "000000001212",
"requestId": "1212",
"requestTime": "2023-05-04T11:12:25+07:00",
25
"status": "00",
"trace": "001212"
}
26
Appendix A: Response Code
Code Description
00 Success
03 Invalid Merchant
12 Invalid Transaction
13 Invalid Amount
51 Insufficient Fund
68 Transaction Timeout
70 Invalid Nominal
91 Network down
92 No route to host
94 Duplicate Transmission.
T4 Time Out
T8 Invalid reversal
27
Code Description
28