0% found this document useful (0 votes)
24 views30 pages

JSON Transaction API Specification

Uploaded by

Arfan junianto
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
24 views30 pages

JSON Transaction API Specification

Uploaded by

Arfan junianto
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

JSON Transaction API

Format Specification
PT. Metalogix Infolink Persada

Revision v1.7, 2023-08-29: g722d67b


Table of Contents
1. Terminology and Definition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Message Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1. API End Point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3. Message Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.1. Bill Inquiry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.2. Bill Payment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.3. Bill Topup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.4. Inquiry Package Telco Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.5. Reversal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4. Transport Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
5. Product Specific Private billData Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
5.1. Telco Postpaid Product . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
5.2. Telco Data Product . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
5.3. Wifi ID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
5.4. PLN Postpaid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
5.5. PLN Postpaid Non Taglis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
5.6. PDAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.7. Iuran BPJS Kesehatan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5.8. Denda BPJS Kesehatan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
5.9. Telkom. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
5.10. MNC Vision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
6. Message Samples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
6.1. Bill Inquiry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
6.2. Payment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
6.3. Reversal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Appendix A: Response Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
The audiences of this document are technical stake holders of this project.
This document is confidential, it may not be copied and distributed without prior
permission of author.

Document History

1.0 2023-02-20 YW Initial doc

1.1 2023-05-02 YW Update samples

1.2 2023-05-10 YW More products

1.3 2023-05-23 YW Completing extra products

1.4 2023-07-06 YW Telco data product

1.5 2023-08-10 CS Response Code update, Product Code update

1.6 2023-08-18 CS ReferenceNo at request, endpoint "inqPackage"

1.7 2023-08-29 CS serialnum telco postpaid, add agentName

1.8 2023-08-30 CS referenceNo optional, update inqPackage resp

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

Figure 1. Normal Bill Topup

 All Topup Transaction can not be reversed.

Partner XLink API

1 Bill Inquiry Request

2 Bill Inquiry Response

3 Payment Request

4 Payment Response

Figure 2. Normal Bill Inquiry and Payment

 Payment must be made as FULL-AMOUNT PAYMENT. No Partial=Amount Payment


allowed.

Partner XLink API

1 Bill Inquiry Request Failed

2 Retry Bill Inquiry Request

3 Bill Inquiry Response

4 Payment Request

5 Payment Response

Figure 3. Retried Bill Inquiry and Payment

3
Partner XLink API

1 Inquiry Request

2 Inquiry Response

3 Payment Request Failed

4 Transaction Reversal Request

5 Transaction Reversal Response

Figure 4. Bill Inquiry and Failed Payment

Partner XLink API

1 Transaction Reversal Request

2 Transaction Reversal Request

3 Transaction Reversal Response

Figure 5. Reversal Retry

2.1. API End Point


API end point for described 3 API resources in the message flow are:

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.

To access those development environment, partners required to disclose origin IP-source.

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.

3.1. Bill Inquiry


Listing 1. Bill Inquiry Request:

{
"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]"
}

Listing 2. Bill Inquiry Response:

{
"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.2. Bill Payment


Listing 3. Bill Payment 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]",

5
"terminalId": "(M) an[1..16]",
"merchantType": "(M) an[1..16]",
"referenceNo": "(O) an[1..12]",
"billData": "(C) struct"
}

Listing 4. Bill Payment Response:

{
"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.3. Bill Topup


Listing 5. Bill Topup 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]",
"referenceNo": "(O) an[1..12]"
}

Listing 6. Bill Topup Response:

{
"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"
}

3.4. Inquiry Package Telco Data


Listing 7. Inquiry Package Request:

{
"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]"
}

Listing 8. Inquiry Package Response:

{
"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]
}
}

Listing 10. Reversal Response:

{
"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:

• minimum TLS 1.1;


• RSA 2048 bit or similar crypto algorithm strength;
• Server certificate may use either:
- commercially trusted certificate;
- private certificate with manual trust-importing by peer/client;
• client certificate authentication is not needed.

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)

Listing 11. Bill Inquiry Request

none required

Listing 12. Bill Inquiry Response

{
"numberOfBills": "(O) n[1]",
"customerName": "(O) n[1..40]",
"dueDate": "(O) n[8]",
"private": "(M) an[1..292]"
}

Listing 13. Payment Request

{
"numberOfBills": "(O) n[1]",
"numberOfBillsPaid": "(O) n[1]",
"customerName": "(O) n[1..40]",
"dueDate": "(O) n[8]",
"private": "(M) an[1..292]"
}

Listing 14. Payment Response

{
"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)

Listing 15. Bill Inquiry Request

{
"packagecode": "(M) an[1..3]"
}

Listing 16. Bill Inquiry Response

{
"packagecode": "(O) an[3]",
"productdenom": "(O) n[12]",
"packagedetail": "(O) an[100]",
"private": "(M) an[1..292]"
}

Listing 17. Payment Request

{
"packagecode": "(O) an[3]",
"productdenom": "(O) n[12]",
"packagedetail": "(O) an[100]",
"private": "(M) an[1..292]"
}

Listing 18. Payment Response

{
"packagecode": "(O) an[3]",
"serialnum": "(O) an[30]",
"productdenom": "(O) n[12]",
"packagedetail": "(O) an[100]",
"private": "(M) an[1..292]"
}

Listing 19. Inquiry Package Request

none required

Listing 20. Inquiry Package Response

{
"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

Listing 21. Bill Inquiry Request

none required

Listing 22. Bill Inquiry Response

{
"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]"
}

Listing 23. Payment Request

{
"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]"
}

Listing 24. Payment Response

{
"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]"
}

5.4. PLN Postpaid


Covered Product Code
• 003001

Listing 25. Bill Inquiry Request

none required

Listing 26. Bill Inquiry Response

{
"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]"
}

Listing 27. Payment Request

{
"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]"
}

5.5. PLN Postpaid Non Taglis


Covered Product Code
• 003003

Listing 29. Bill Inquiry Request

none required

Listing 30. Bill Inquiry Response

{
"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]"
}

Listing 31. Payment Request

{
"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]"
}

Listing 32. Payment Response

{
"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)

Listing 33. Bill Inquiry Request

none required

Listing 34. Bill Inquiry 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]"
}

Listing 35. Payment Request

{
"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]"
}

5.7. Iuran BPJS Kesehatan


Covered Product Code
• 050502

Listing 37. Bill Inquiry Request

{
"jmlbln": "(O) an[1..6]"
}

Listing 38. Bill Inquiry Response

{
"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]"
}

Listing 39. Payment Request

{
"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]"
}

Listing 40. Payment Response

{
"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]"
}

5.8. Denda BPJS Kesehatan


Covered Product Code
• 050503

Listing 41. Bill Inquiry Request

none required

Listing 42. Bill Inquiry Response

{
"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]"
}

Listing 44. Payment Response

{
"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)

Listing 45. Bill Inquiry Request

none required

Listing 46. Bill Inquiry Response

{
"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]"
}

Listing 47. Payment Request

{
"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]"
}

Listing 48. Payment Response

{
"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]"
}

5.10. MNC Vision


Covered Product Code
• 061401

Listing 49. Bill Inquiry Request

none required

Listing 50. Bill Inquiry 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]"
}

Listing 51. Payment Request

{
"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"
}

Listing 54. Bill Inquiry Response

{
"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"
}

Listing 56. Bill Payment Response

{
"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"
}

Listing 58. Payment Reversal Response

{
"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

06 Failed, General Error

12 Invalid Transaction

13 Invalid Amount

14 Account/HP not found

27 System Internal Error

30 Message Format Error

31 Bank Not Supported

40 Message Format Error

51 Insufficient Fund

57 Overlimit, Duplicate Transaction

68 Transaction Timeout

70 Invalid Nominal

77 Exceed Bill Limit

83 Block Phone Number

84 Expired Phone Number

85 Invalid Phone Number

87 Bill not ready

88 Bill already paid

89 Invalid Settlement date

91 Network down

92 No route to host

94 Duplicate Transmission.

96 System Malfunction. The transaction is declined caused by error in Host

R5 Original Transaction Not Approve

T4 Time Out

T8 Invalid reversal

402 Invalid method

403 Invalid CAID

404 Invalid Signature

27
Code Description

406 Telco billid has invalid prefix

247 Invalid Denomination

28

You might also like