PayFren API

PayFren is a financial service solution that focuses on providing a Payment Point Online Bank (PPOB) system that can help clients to sell data packages, pulsa, telephone bills, BPJS, PLN (tokens and bills), and etc. This is an API documentation that can be used for the integration system process between PayFren and Clients (for all services).

Getting Started

Here the list you should know.

Base URL

All URLs referenced in the documentation has the following base.

Production URL

Production URL & Credential will be sent via Email after development.

HTTP Status Code

HTTP Status Code Description
200 OK. The request has succeeded
400 Bad Request
401 Invalid Authorization
403 Forbidden Access
404 Resource not found
500 Internal server error
503 Product in problem / closed

Callback

Normally most of the purchase transaction reponse with http status code 200 will have { "status" : "success" }.

However some of purchase transaction response with http status code 200 will have { "status" : "pending" }.

Client could provide the callbackUrl upon request, system will send a request which contains transaction response to the callbackUrl provided by the client, when the status has been changed into { "status" : "success" } or { "status" : "failed" }

Providing callbackUrl is optional. Alternatively client could send an advice request. Advice request will be explained on the GENERAL API section.

  • During development in sandbox mode, system will send the response to the callbackUrl after 30 seconds.

Request with callbackUrl example

Content-Type
application/json
{
   "customerCode": "5454564566456",
   "nominal": 20000,
   "itemId": "0015",
   "callbackUrl": "https://callback-url.id/callback/"
}

Transaction status

Status Code HTTP Status code Description
pending 200 Pending transaction status
failed 400 - 503 Will only have {"code":"<ErrorCode>","message":"<ErrorMessage>"} properties
success 200 Success transaction status

Authentication

Bearer Authentication

Bearer authentication (also called token authentication) is an HTTP authentication scheme that involves security tokens called bearer tokens. The name “Bearer authentication” can be understood as “give access to the bearer of this token.” The bearer token is a cryptic string, generated by the PayFren system via dashboard. Client must send this token in the Authorization header for every requests.

Security Scheme Type HTTP Authorization Scheme
HTTP Bearer Authentication

Example

const token = 'U2FsdGVkX1.v7fGXXjb2C9BxgrEqnVjFFMMQZXv6mfFDjgVBMY.Wit7AY.u8LKjjxgoUCwsWHcSZUXdNBVp.fLm6LVPaJBJC6EoV.014DeqUjMGEuknLMC5Xl7iGf7xPP.5Dp3A1GUAXU0sN4tNtiq9CbDyEEMwIEnathWs6ipQ'

const headers = {
    headers : {
        'Content-Type' : 'application/json',
        'Authorization' : `Bearer ${token}`
    }
}

Balance Check

  • Request without body
POST
/user/balance

Response Example

Status
200
Content-Type
application/json
{
    "balance": 4959600
}

Item List

Retrieve the list of items from the following endpoint.

  • Request without body

Response properties

Property Data Type Description
id String Item ID will be used for inquiry or purchase request
name String Item Name
category String Item Category
denom Number Some items have denom properties like Mobile Prepaid, null if doesn't exists
price Number Item Price
POST
/item

Response example

Status
200
Content-Type
application/json
{
    "items": [
        {
            "id": "0028",
            "name": "BPJS KS BTN",
            "category": "Multi Biller",
            "denom": null,
            "price": 1600
        },
        {
            "id": "0006",
            "name": "OVO",
            "category": "E-Money",
            "denom": null,
            "price": 1225
        },
        {
            "id": "0014",
            "name": "PLN POSTPAID",
            "category": "PLN Postpaid",
            "denom": null,
            "price": 300
        },
        {
            "id": "0015",
            "name": "PLN PREPAID",
            "category": "PLN Prepaid",
            "denom": null,
            "price": 300
        },
        {
            "id": "0137",
            "name": "SMARTFREN 100",
            "category": "Mobile Prepaid",
            "denom": 100000,
            "price": 98350
        }
    ]
}

Response

All of the purchase response will have the same properties as shown on the following table.

General Response

Property Data Type Description
transactionId String ID for every inquiry and purchase
customerCode String Subscriber ID,MSN,Phone number, etc
itemId String Item ID
item String Item Name
denom Number Some items have denom property like pulsa, null if doesn't exists
nominal Number Transaction nominal
qty Number Bill quantity
status String Transaction status (pending/failed/cancelled/success)
callbackUrl String callbackUrl provided upon request (undefined if didn't provided upon request )
refId String Reference ID provided upon request (undefined if didn't provided upon request )
balance Number Remaining balance
receiptTitle String Transaction Receipt Title
receiptBody Object Transaction Receipt Detail

Failed Response Code

code message
ApplicationCancelled Pengajuan telah dibatalkan
BillAlreadyPaid Tagihan sudah terbayar
BillerTimeout Transaksi gagal silahkan coba kembali beberapa saat
BillExceededDueDate Tagihan melebihi tanggal jatuh tempo
BillIsInProblem Transaksi tidak dapat diproses silahkan membayar di loket
BillNotAvailable Tagihan tidak tersedia
BlockedAccount Akun telah terblokir
BlockedSubscriber Pelanggan telah terblokir
BookingCancelled Booking telah dibatalkan
CutOff Sedang dalam proses cut off
ForbiddenAccess Akses tidak diijinkan
InactiveAccount Akun tidak aktif
InsuficientBalance Saldo tidak cukup
InternalServerError Terjadi kesalahan pada sistem
InvalidCustomerCode Invalid customerCode
InvalidMonth Invalid month
InvalidNominal Invalid nominal
InvalidSubscriberId IDPEL/No Meter tidak valid
InvalidTransactionId Invalid transactionId
ItemInProblem Item/Product sedang dalam masalah
LinkDown Sambungan biller terputus
NoPayment Tidak ada pembayaran
OtherError Error lain-lain
OutstandingBill Tagihan melebihi batas
OverLimit Transaksi diatas maksimal
OverlimitKwh KWH melebihi batas
SuspendedCustomer Pelanggan telah ditangguhkan
UnavailableItem Item tidak tersedia
UndefinedError Error tidak diketahui
UnderLimit Transaksi dibawah minimal
WrongCustomerNo No Pelanggan salah
WrongDestinationNo No tujuan salah
WrongMsn Nomor meter salah
WrongPhone Nomor telp salah
WrongRegistrationNo Nomor registrasi salah
WrongSubscriberId IDPEL/No Meter salah
WrongVaNo No VA salah
ErrorFormat Format error
UnableToTransactionId Unable to route transactions
Reversal Reversal
ReversalSystem Revesal dilakukan system
ReversalRejected Reversal ditolak
TransactionDuplicate Duplikat transaksi
TransactionNotFound Transaksi tidak di temukan
TransactionInProcess Transaksi masih diproses
TransactionExpired Transaksi sudah kadaluarsa. silahkan ulangi kembali
PendingRequest Transaksi masih diproses
NumberExpired Nomor yang anda masukan sudah kadaluarsa
TransacationPause Jeda pembelian dengan nominal yang sama minimal 10 menit
BlockedPhone Nomor telepon diblokir
OutOfVoucher Stok voucher habis
InvalidAmountVoucher Nominal voucher tidak valid
InvalidPeriod Invalid period
InvalidReference Invalid Reference Number

Error response example

Status
400
Content-Type
application/json
{
  "code": "BillAlreadyPaid",
  "message": "Tagihan sudah terbayar"
}
Status
400
Content-Type
application/json
{
  "code": "WrongSubscriberId",
  "message": "IDPEL/No Meter salah"
}
Status
500
Content-Type
application/json
{
  "code": "InternalServerError",
  "message": "Terjadi kesalahan pada sistem"
}

PREPAID

API CAll for all prepaid items.

PLN Prepaid Inquiry

Property Data Type Description
customerCode String Subscriber ID (IDPEL) or MSN
nominal Number Transaction Nominal
itemId String Item ID
refId String (Optional)

Development's customerCode :

itemName itemId customerCode status remark
PLN PREPAID 0015 5774XXXXXXXX success -
PLN PREPAID 0015 5772XXXXXXXX pending Pending transaction
POST
/v2/request/inquiry

Request Example

Content-Type
application/json
{
   "customerCode": "577400000001",
   "nominal": 20000,
   "itemId": "0015"
}

Response Example

Status
200
Content-Type
application/json
{
  "transactionId": "00000805",
  "customerCode": "577400000001",
  "itemId": "0015",
  "nominal": 20000,
  "item": "PLN PREPAID",
  "denom": null,
  "qty": 1,
  "status": "success",
  "receiptTitle": "PEMBELIAN TOKEN LISTRIK",
  "receiptBody": {
    "date": { "caption": "TGL TRANSAKSI", "value": "2021-11-19T22:32:38.919Z" },
    "subscriberNo": { "caption": "IDPEL", "value": "577400000001" },
    "meterNumber": { "caption": "NOMOR METER", "value": "56603123459" },
    "name": { "caption": "NAMA", "value": "CHOI YUNA" },
    "segmentPower": { "caption": "TARIF/DAYA", "value": "R2/5500 VA" },
    "nominal": { "caption": "NOMINAL", "value": 20000 },
    "admin": { "caption": "ADMIN BANK", "value": 3000 },
    "total": { "caption": "TOTAL BAYAR", "value": 23000 }
  }
}

PLN Prepaid Purchase

Property DataType Description
transactionId String Transaction ID from Inquiry response
callbackUrl String (Optional)
refId String (Optional)
POST
/v2/request/purchase

Request Example

Content-Type
application/json
{
    "transactionId": "00000805",
    "callbackUrl": "https://callback-url.id/callback/"
}

Response Example

Status
200
Content-Type
application/json
{
  "transactionId": "00000805",
  "customerCode": "577400000001",
  "itemId": "0015",
  "nominal": 20000,
  "item": "PLN PREPAID",
  "denom": null,
  "qty": 1,
  "status": "success",
  "balance": 42656025,
  "callbackUrl": "https://callback-url.id/callback/",
  "receiptTitle": "STRUK PEMBELIAN TOKEN LISTRIK",
  "receiptBody": {
    "date": { "caption": "TGL TRANSAKSI", "value": "2021-11-19T22:33:04.526Z" },
    "subscriberNo": { "caption": "IDPEL", "value": "577400000001" },
    "meterNumber": { "caption": "NOMOR METER", "value": "56603123459" },
    "name": { "caption": "NAMA", "value": "CHOI YUNA" },
    "segmentPower": { "caption": "TARIF/DAYA", "value": "R2/5500 VA" },
    "referenceNo": { "caption": "NO REF", "value": "121R3219439505888" },
    "nominal": { "caption": "NOMINAL", "value": 20000 },
    "token": { "caption": "STROOM/TOKEN", "value": "1070 9086 9151 3571 0147" },
    "kwh": { "caption": "JML KWH", "value": "13.6" },
    "admin": { "caption": "ADMIN BANK", "value": 3000 },
    "total": { "caption": "TOTAL BAYAR", "value": 23000 },
    "info": {
      "caption": "INFO",
      "value": "Informasi Hubungi Call Center 123 Atau Hub PLN Terdekat"
    }
  }
}

POSTPAID

API CAll for all Postpaid items.

PLN Postpaid Inquiry

Property Data Type Description
customerCode String Subscriber ID (IDPEL), MSN, Phone number, etc
itemId String Item ID
refId String (Optional)

Development's customerCode :

itemName itemId customerCode status remark
PLN POSTPAID 0014 5884XXXXXXXX success -
PLN POSTPAID 0014 5885XXXXXXXX success 2 months bill
PLN POSTPAID 0014 5882XXXXXXXX pending Pending transaction
PLN POSTPAID 0014 5883XXXXXXXX failed Billing already paid
PLN POSTPAID 0014 5886XXXXXXXX failed No billing available
POST
/v2/request/inquiry

PLN Postpaid Request Example

Content-Type
application/json
{
   "customerCode": "588400000001",
   "itemId": "0014"
}

PLN Postpaid Response Example

Status
200
Content-Type
application/json
{
  "transactionId": "00000798",
  "customerCode": "588400000001",
  "itemId": "0014",
  "nominal": 469139,
  "item": "PLN POSTPAID",
  "denom": null,
  "qty": 1,
  "status": "success",
  "receiptTitle": "INFO TAGIHAN LISTRIK",
  "receiptBody": {
    "date": { "caption": "TGL TRANSAKSI", "value": "2021-11-19T22:11:39.841Z" },
    "subscriberNo": { "caption": "IDPEL", "value": "588400000001" },
    "name": { "caption": "NAMA", "value": "JUNG EUNBI" },
    "segmentPower": { "caption": "TARIF/DAYA", "value": "R1/450" },
    "qty": { "caption": "TOTAL TAG", "value": "1" },
    "period": { "caption": "PERIODE", "value": "OKT21" },
    "standMeter": { "caption": "STAND METER", "value": "00003243 - 00003521" },
    "amount": { "caption": "RP TAG", "value": 469139 },
    "admin": { "caption": "ADMIN BANK", "value": 3000 },
    "total": { "caption": "TOTAL BAYAR", "value": 472139 }
  }
}

PLN Postpaid Purchase

Property Data Type Description
transactionId String Transaction ID from Inquiry response
callbackUrl String (Optional)
refId String (Optional)
POST
/v2/request/purchase

PLN Postpaid Request Example

Content-Type
application/json
{
    "transactionId": "00000798",
    "callbackUrl": "https://callback-url.id/callback/"
}

PLN Postpaid Response Example

Status
200
Content-Type
application/json
{
  "transactionId": "00000798",
  "customerCode": "588400000001",
  "itemId": "0014",
  "nominal": 469139,
  "item": "PLN POSTPAID",
  "denom": null,
  "qty": 1,
  "status": "success",
  "balance": 42656025,
  "callbackUrl": "https://callback-url.id/callback/",
  "receiptTitle": "STRUK PEMBAYARAN TAGIHAN LISTRIK",
  "receiptBody": {
    "date": { "caption": "TGL TRANSAKSI", "value": "2021-11-19T22:13:33.167Z" },
    "subscriberNo": { "caption": "IDPEL", "value": "588400000001" },
    "name": { "caption": "NAMA", "value": "JUNG EUNBI" },
    "segmentPower": { "caption": "TARIF/DAYA", "value": "R1/450" },
    "referenceNo": { "caption": "NO REF", "value": "121R387D70E6F7042B1A01D08B9A3" },
    "qty": { "caption": "TOTAL TAG", "value": "1" },
    "period": { "caption": "PERIODE", "value": "OKT21" },
    "standMeter": { "caption": "STAND METER", "value": "00003243 - 00003521" },
    "amount": { "caption": "RP TAG", "value": 469139 },
    "admin": { "caption": "ADMIN BANK", "value": 3000 },
    "total": { "caption": "TOTAL BAYAR", "value": 472139 },
    "info": {
      "caption": "INFO",
      "value": "Informasi Hubungi Call Center: 123 Atau Hub. PLN Terdekat"
    }
  }
}

PLN Non Taglis Inquiry

Property Data Type Description
customerCode String Subscriber ID (IDPEL), MSN, Phone number, etc
itemId String Item ID
refId String (Optional)

Development's customerCode :

itemName itemId customerCode status remark
PLN NON TAGLIS 0984 5214XXXXXXXX success -
PLN NON TAGLIS 0984 5212XXXXXXXX pending Pending transaction
PLN NON TAGLIS 0984 5213XXXXXXXX failed Billing already paid
PLN NON TAGLIS 0984 5216XXXXXXXX failed No billing available
POST
/v2/request/inquiry

PLN Non Taglis Request Example

Content-Type
application/json
{
   "customerCode": "521400000001",
   "itemId": "0984"
}

PLN Non Taglis Response Example

Status
200
Content-Type
application/json
{
  "transactionId": "00002015",
  "itemId": "0984",
  "item": "PLN NON TAGLIS",
  "customerCode": "521400000001",
  "nominal": 100000,
  "qty": 1,
  "status": "success",
  "receiptTitle": "INFO TAGIHAN LISTRIK",
  "receiptBody": {
    "date": { "caption": "TGL TRANSAKSI", "value": "2022-01-29T02:00:34.329Z" },
    "subscriberNo": { "caption": "IDPEL", "value": "521400000001" },
    "name": { "caption": "NAMA", "value": "EUNSEO" },
    "regNo": { "caption": "NO REG", "value": "5215637000928" },
    "tranCode": { "caption": "KODE TRAN", "value": "015" },
    "transaction": { "caption": "TRANSAKSI", "value": "PERUBAHAN DAYA" },
    "regDate": { "caption": "TGL REG", "value": "12 JAN 2022" },
    "expDate": { "caption": "TGL EXP", "value": "11 FEB 2022" },
    "servUnit": { "caption": "UNIT PELAYANAN", "value": "52156" },
    "servUnitAddr": { "caption": "ALMT UNIT PEL", "value": "JL. PAHLAWAN NO.3-JAKSEL" },
    "servUnitPhone": { "caption": "TELP UNIT PEL", "value": "123" },
    "amount": { "caption": "RP TAG", "value": 100000 },
    "admin": { "caption": "ADMIN BANK", "value": 5000 },
    "total": { "caption": "TOTAL BAYAR", "value": 105000 }
  }
}

PLN Non Taglis Purchase

Property Data Type Description
transactionId String Transaction ID from Inquiry response
callbackUrl String (Optional)
refId String (Optional)
POST
/v2/request/purchase

PLN Non Taglis Request Example

Content-Type
application/json
{
    "transactionId": "00000798",
    "callbackUrl": "https://callback-url.id/callback/"
}

PLN Non Taglis Response Example

Status
200
Content-Type
application/json
{
  "transactionId": "00002015",
  "itemId": "0984",
  "item": "PLN NON TAGLIS",
  "customerCode": "521400000001",
  "nominal": 100000,
  "qty": 1,
  "status": "success",
  "balance": 42656025,
  "callbackUrl": "https://callback-url.id/callback/",
  "receiptTitle": "STRUK PEMBAYARAN LISTRIK NONTAGLIS",
  "receiptBody": {
    "date": { "caption": "TGL TRANSAKSI", "value": "2022-01-29T02:09:23.249Z" },
    "subscriberNo": { "caption": "IDPEL", "value": "521400000001" },
    "name": { "caption": "NAMA", "value": "EUNSEO" },
    "regNo": { "caption": "NO REG", "value": "5215637000928" },
    "tranCode": { "caption": "KODE TRAN", "value": "015" },
    "transaction": { "caption": "TRANSAKSI", "value": "PERUBAHAN DAYA" },
    "regDate": { "caption": "TGL REG", "value": "12 JAN 2022" },
    "expDate": { "caption": "TGL EXP", "value": "11 FEB 2022" },
    "servUnit": { "caption": "UNIT PELAYANAN", "value": "52156" },
    "servUnitAddr": { "caption": "ALMT UNIT PEL", "value": "JL. PAHLAWAN NO.3-JAKSEL" },
    "servUnitPhone": { "caption": "TELP UNIT PEL", "value": "123" },
    "referenceNo": { "caption": "NO REF", "value": "1PAM21G301931668476" },
    "amount": { "caption": "RP TAG", "value": 100000 },
    "admin": { "caption": "ADMIN BANK", "value": 5000 },
    "total": { "caption": "TOTAL BAYAR", "value": 105000 },
    "info": {
      "caption": "INFO",
      "value": "Informasi Hubungi Call Center: 123 Atau Hub. PLN Terdekat"
    }
  }
}

Telkom / Indihome Inquiry

Property Data Type Description
customerCode String Subscriber ID (IDPEL), MSN, Phone number, etc
itemId String Item ID
refId String (Optional)

Development's customerCode :

itemName itemId customerCode status remark
TELKOM 0009 0214XXXXXX success 1 month bill
TELKOM 0009 0215XXXXXX success 2 months bill
TELKOM 0009 0212XXXXXX pending Pending transaction
TELKOM 0009 0213XXXXXX failed Billing already paid
TELKOM 0009 0216XXXXXX failed No billing available
POST
/v2/request/inquiry

Telkom / Indihome Request Example

Content-Type
application/json
{
  "customerCode": "0214000001",
  "itemId": "0014"
}

Telkom / Indihome Response Example

Status
200
Content-Type
application/json
{
  "transactionId": "00000816",
  "customerCode": "0214000001",
  "itemId": "0009",
  "nominal": 312100,
  "item": "TELKOM",
  "denom": null,
  "qty": 1,
  "status": "success",
  "receiptTitle": "INFO TAGIHAN TELKOM",
  "receiptBody": {
    "date": { "caption": "TGL TRANSAKSI", "value": "2021-11-20T19:54:25.303Z" },
    "customerNo": { "caption": "TELP/IDPEL", "value": "0214000001" },
    "name": { "caption": "NAMA", "value": "Hwang Eunbi" },
    "dueDate": { "caption": "PERIODE", "value": "202211" },
    "divre": { "caption": "DIVRE", "value": "02" },
    "datel": { "caption": "DATEL", "value": "0005" },
    "area": { "caption": "KODE AREA", "value": "0021" },
    "referenceNo": { "caption": "NO REF", "value": "1615927237983" },
    "qty": { "caption": "JML TAG", "value": "1" },
    "amount": { "caption": "RP TOTAL", "value": 312100 },
    "admin": { "caption": "ADMIN BANK", "value": 3000 },
    "total": { "caption": "TOTAL BAYAR", "value": 315100 }
  }
}

Telkom / Indihome Purchase

Property Data Type Description
transactionId String Transaction ID from Inquiry response
callbackUrl String (Optional)
refId String (Optional)
POST
/v2/request/purchase

Telkom / Indihome Request Example

Content-Type
application/json
{
  "transactionId": "00000816",
  "callbackUrl": "https://callback-url.id/callback/"
}

Telkom / Indihome Response Example

Status
200
Content-Type
application/json
{
  "transactionId": "00000816",
  "customerCode": "0214000001",
  "itemId": "0009",
  "nominal": 312100,
  "item": "TELKOM",
  "denom": null,
  "qty": 1,
  "status": "success",
  "balance": 42656025,
  "callbackUrl": "https://callback-url.id/callback/",
  "receiptTitle": "STRUK PEMBAYARAN TAGIHAN TELKOM",
  "receiptBody": {
    "date": { "caption": "TGL TRANSAKSI", "value": "2021-11-20T19:55:03.261Z" },
    "customerNo": { "caption": "TELP/IDPEL", "value": "0214000001" },
    "name": { "caption": "NAMA", "value": "Hwang Eunbi" },
    "dueDate": { "caption": "PERIODE", "value": "202211" },
    "divre": { "caption": "DIVRE", "value": "02" },
    "datel": { "caption": "DATEL", "value": "0005" },
    "area": { "caption": "KODE AREA", "value": "0021" },
    "referenceNo": { "caption": "NO REF", "value": "1615927237983" },
    "qty": { "caption": "JML TAG", "value": "1" },
    "amount": { "caption": "RP TOTAL", "value": 312100 },
    "admin": { "caption": "ADMIN BANK", "value": 3000 },
    "total": { "caption": "TOTAL BAYAR", "value": 315100 },
    "info": {
      "caption": "INFO",
      "value": "SIMPAN TANDA TERIMA INI SEBAGAI BUKTI TRANSAKSI TERIMA KASIH"
    }
  }
}

PDAM Inquiry

Property Data Type Description
customerCode String Subscriber ID (IDPEL)
itemId String Item ID
refId String (Optional)

Development's customerCode :

itemName itemId customerCode status remark
PDAM KOTA SEMARANG 0050 1184XXXX success 1 month bill
PDAM KOTA SEMARANG 0050 1185XXXX success 2 months bill
PDAM KOTA SEMARANG 0050 1182XXXX pending Pending transaction
PDAM KOTA SEMARANG 0050 1183XXXX failed Billing already paid
PDAM KOTA SEMARANG 0050 1186XXXX failed No billing available
POST
/v2/request/inquiry

PDAM Request Example

Content-Type
application/json
{
   "customerCode": "1184000001",
   "itemId": "0050"
}

PDAM Response Example

{
  "transactionId": "00000818",
  "customerCode": "1184000001",
  "itemId": "0050",
  "nominal": 35490,
  "item": "PDAM KOTA SEMARANG (JATENG)",
  "denom": null,
  "qty": 1,
  "status": "success",
  "receiptTitle": "INFO TAGIHAN PDAM",
  "receiptBody": {
    "date": { "caption": "TGL TRANSAKSI", "value": "2021-11-20T23:06:18.574Z" },
    "subscriberId": { "caption": "NO PELANGGAN", "value": "1184000001" },
    "name": { "caption": "NAMA", "value": "KIM YEWON" },
    "address": { "caption": "ALAMAT", "value": "JL MT HARYONO 46" },
    "period": { "caption": "PERIODE", "value": "122014" },
    "branch": { "caption": "CABANG", "value": "PDAM KOTA SEMARANG (JATENG)" },
    "qty": { "caption": "JML TAG", "value": "1" },
    "details": [
      {
        "period": { "caption": "PERIODE", "value": "122014" },
        "standMeter": { "caption": "STAND METER", "value": "4589 - 4613" },
        "dueAmount": { "caption": "RP TAG", "value": 27240 },
        "penalty": { "caption": "DENDA", "value": 7500 },
        "miscFee": { "caption": "BEA LAIN", "value": 750 }
      }
    ],
    "amount": { "caption": "RP TOTAL", "value": 35490 },
    "admin": { "caption": "ADMIN BANK", "value": false },
    "total": { "caption": "TOTAL BAYAR", "value": 35490 }
  }
}

PDAM Purchase

Property Data Type Description
transactionId String Transaction ID from Inquiry response
callbackUrl String (Optional)
refId String (Optional)
POST
/v2/request/purchase

PDAM Request Example

Content-Type
application/json
{
    "transactionId": "00000818",
    "callbackUrl": "https://callback-url.id/callback/"
}

PDAM Response Example

{
  "transactionId": "00000818",
  "customerCode": "1184000001",
  "itemId": "0050",
  "nominal": 35490,
  "item": "PDAM KOTA SEMARANG (JATENG)",
  "denom": null,
  "qty": 1,
  "status": "success",
  "balance": 42656025,
  "callbackUrl": "https://callback-url.id/callback/",
  "receiptTitle": "STRUK PEMBAYARAN TAGIHAN PDAM",
  "receiptBody": {
    "date": { "caption": "TGL TRANSAKSI", "value": "2021-11-20T23:07:16.957Z" },
    "subscriberId": { "caption": "NO PELANGGAN", "value": "1184000001" },
    "name": { "caption": "NAMA", "value": "KIM YEWON" },
    "address": { "caption": "ALAMAT", "value": "JL MT HARYONO 46" },
    "period": { "caption": "PERIODE", "value": "122014" },
    "branch": { "caption": "CABANG", "value": "PDAM KOTA SEMARANG (JATENG)" },
    "referenceNo": { "caption": "NO REF", "value": "1615809841598" },
    "qty": { "caption": "JML TAG", "value": "1" },
    "details": [
      {
        "period": { "caption": "PERIODE", "value": "122014" },
        "standMeter": { "caption": "STAND METER", "value": "4589 - 4613" },
        "dueAmount": { "caption": "RP TAG", "value": 27240 },
        "penalty": { "caption": "DENDA", "value": 7500 },
        "miscFee": { "caption": "BEA LAIN", "value": 750 }
      }
    ],
    "amount": { "caption": "RP TOTAL", "value": 35490 },
    "admin": { "caption": "ADMIN BANK", "value": false },
    "total": { "caption": "TOTAL BAYAR", "value": 35490 },
    "info": {
      "caption": "INFO",
      "value": "SIMPAN TANDA TERIMA INI SEBAGAI BUKTI TRANSAKSI TERIMA KASIH"
    }
  }
}

BPJS Inquiry

Property Data Type Description
customerCode String Subscriber ID (IDPEL)
itemId String Item ID
month number Number of months [1 - 12]
refId String (Optional)

Development's customerCode :

itemName itemId customerCode status remark
BPJS KS 0539 8884XXXX success -
BPJS KS 0539 8882XXXX pending Pending transaction
BPJS KS 0539 8883XXXX failed Billing already paid
BPJS KS 0539 8886XXXX failed No billing available
POST
/v2/request/inquiry

BPJS Inquiry Request Example

Content-Type
application/json
{
  "customerCode": "888400000001",
  "itemId": "0539",
  "month": 1
}

BPJS Inquiry Response Example

{
  "transactionId": "00000811",
  "customerCode": "888400000001",
  "itemId": "0539",
  "nominal": 160000,
  "item": "BPJS KS",
  "denom": null,
  "qty": 1,
  "status": "success",
  "receiptTitle": "INFO PEMBAYARAN BPJS",
  "receiptBody": {
    "date": { "caption": "TGL TRANSAKSI", "value": "2021-11-19T22:49:27.455Z" },
    "vaNo": { "caption": "NO BPJS", "value": "888400000001" },
    "name": { "caption": "NAMA", "value": "JUNG YERIN" },
    "month": { "caption": "PERIODE", "value": "01" },
    "branchCode": { "caption": "NO CABANG", "value": "0901" },
    "branchName": { "caption": "CABANG", "value": "JAKARTA PUSAT" },
    "premiumFee": { "caption": "BIAYA PREMI", "value": 160000 },
    "outstandingAmount": { "caption": "TUNGGAKAN", "value": 0 },
    "amount": { "caption": "RP TAGIHAN", "value": 160000 },
    "admin": { "caption": "ADMIN BANK", "value": 3000 },
    "total": { "caption": "TOTAL BAYAR", "value": 163000 }
  }
}

BPJS Purchase

Property Data Type Description
transactionId String Transaction ID from Inquiry response
callbackUrl String (Optional)
refId String (Optional)
POST
/v2/request/purchase

BPJS Request Example

Content-Type
application/json
{
  "transactionId": "00000811",
  "callbackUrl": "https://callback-url.id/callback/"
}

BPJS Purchase Response Example

{
  "transactionId": "00000811",
  "customerCode": "888400000001",
  "itemId": "0539",
  "nominal": 160000,
  "item": "BPJS KS",
  "denom": null,
  "qty": 1,
  "status": "success",
  "balance": 42656025,
  "callbackUrl": "https://callback-url.id/callback/",
  "receiptTitle": "STRUK PEMBAYARAN BPJS",
  "receiptBody": {
    "date": { "caption": "TGL TRANSAKSI", "value": "2021-11-19T22:50:12.967Z" },
    "vaNo": { "caption": "NO BPJS", "value": "888400000001" },
    "name": { "caption": "NAMA", "value": "JUNG YERIN" },
    "month": { "caption": "PERIODE", "value": "01" },
    "branchCode": { "caption": "NO CABANG", "value": "0901" },
    "branchName": { "caption": "CABANG", "value": "JAKARTA PUSAT" },
    "premiumFee": { "caption": "BIAYA PREMI", "value": 160000 },
    "outstandingAmount": { "caption": "TUNGGAKAN", "value": 0 },
    "referenceNo": { "caption": "NO REF", "value": "1615763622591" },
    "amount": { "caption": "RP TAGIHAN", "value": 160000 },
    "admin": { "caption": "ADMIN BANK", "value": 3000 },
    "total": { "caption": "TOTAL BAYAR", "value": 163000 },
    "info": {
      "caption": "INFO",
      "value": "SIMPAN TANDA TERIMA INI SEBAGAI BUKTI TRANSAKSI TERIMA KASIH"
    }
  }
}

Multifinance Inquiry

Property Data Type Description
customerCode String Subscriber ID (IDPEL)
itemId String Item ID
refId String (Optional)

Development's customerCode :

itemName itemId customerCode status remark
WOM FINANCE 0018 6104XXXX success 1 month bill
WOM FINANCE 0018 6105XXXX success 2 months bill
WOM FINANCE 0018 6102XXXX pending Pending transaction
WOM FINANCE 0018 6103XXXX failed Billing already paid
WOM FINANCE 0018 6106XXXX failed No billing available
POST
/v2/request/inquiry

Multifinance Inquiry Request Example

Content-Type
application/json
{
   "customerCode": "610400000001",
   "itemId": "0539"
}

Multifinance Inquiry Response Example

{
  "transactionId": "00000812",
  "customerCode": "610400000001",
  "itemId": "0018",
  "nominal": 517650,
  "item": "WOM FINANCE",
  "denom": null,
  "qty": 1,
  "status": "success",
  "receiptTitle": "INFO TAGIHAN WOM FINANCE",
  "receiptBody": {
    "date": { "caption": "TGL TRANSAKSI", "value": "2021-11-20T01:43:42.368Z" },
    "customerCode": { "caption": "NO PELANGGAN", "value": "610400000001" },
    "name": { "caption": "NAMA", "value": "KIM SOJUNG" },
    "period": { "caption": "PERIODE", "value": "018" },
    "item": { "caption": "NAMA ITEM", "value": "HONDA VARIO CW" },
    "licenseNo": { "caption": "NOPOL", "value": "B4980ABC" },
    "qty": { "caption": "JML TAG", "value": "1" },
    "details": [
      {
        "tenor": { "caption": "TENOR", "value": "035" },
        "dueAmount": { "caption": "RP TAG", "value": 510000 },
        "penalty": { "caption": "DENDA", "value": 7650 },
        "otherFee": { "caption": "BEA LAIN", "value": 0 },
        "collectiveFee": { "caption": "BEA KOLEKTIF", "value": 0 },
        "dueDate": { "caption": "JATUH TEMPO", "value": "25102020" }
      }
    ],
    "amount": { "caption": "RP TOTAL", "value": 517650 },
    "admin": { "caption": "ADMIN BANK", "value": 3000 },
    "total": { "caption": "TOTAL BAYAR", "value": 520650 }
  }
}

Multifinance Purchase

Property Data Type Description
transactionId String Transaction ID from Inquiry response
callbackUrl String (Optional)
refId String (Optional)
POST
/v2/request/purchase

Multifinance Purchase Request Example

Content-Type
application/json
{
    "transactionId": "00000812",
    "callbackUrl": "https://callback-url.id/callback/"
}

Multifinance Purchase Response Example

{
  "transactionId": "00000812",
  "customerCode": "610400000001",
  "itemId": "0018",
  "nominal": 517650,
  "item": "WOM FINANCE",
  "denom": null,
  "qty": 1,
  "status": "success",
  "balance": 42656025,
  "callbackUrl": "https://callback-url.id/callback/",
  "receiptTitle": "STRUK PEMBAYARAN TAGIHAN WOM FINANCE",
  "receiptBody": {
    "date": { "caption": "TGL TRANSAKSI", "value": "2021-11-20T01:47:52.304Z" },
    "customerCode": { "caption": "NO PELANGGAN", "value": "610400000001" },
    "name": { "caption": "NAMA", "value": "KIM SOJUNG" },
    "period": { "caption": "PERIODE", "value": "018" },
    "item": { "caption": "NAMA ITEM", "value": "HONDA VARIO CW" },
    "licenseNo": { "caption": "NOPOL", "value": "B4980ABC" },
    "referenceNo": { "caption": "NO REF", "value": "1615927237983" },
    "qty": { "caption": "JML TAG", "value": "1" },
    "details": [
      {
        "tenor": { "caption": "TENOR", "value": "035" },
        "dueAmount": { "caption": "RP TAG", "value": 510000 },
        "penalty": { "caption": "DENDA", "value": 7650 },
        "otherFee": { "caption": "BEA LAIN", "value": 0 },
        "collectiveFee": { "caption": "BEA KOLEKTIF", "value": 0 },
        "dueDate": { "caption": "JATUH TEMPO", "value": "25102020" }
      }
    ],
    "amount": { "caption": "RP TOTAL", "value": 517650 },
    "admin": { "caption": "ADMIN BANK", "value": 3000 },
    "total": { "caption": "TOTAL BAYAR", "value": 520650 },
    "info": {
      "caption": "INFO",
      "value": "SIMPAN TANDA TERIMA INI SEBAGAI BUKTI TRANSAKSI TERIMA KASIH"
    }
  }
}

Mobile Postpaid Inquiry

Property Data Type Description
customerCode String Phone Number
itemId String Item ID
refId String (Optional)

Development's customerCode :

itemName itemId customerCode status remark
TELKOMSEL PASCABAYAR 0019 08124XXXX success -
TELKOMSEL PASCABAYAR 0019 08122XXXX pending Pending transaction
TELKOMSEL PASCABAYAR 0019 08123XXXX failed Billing already paid
TELKOMSEL PASCABAYAR 0019 08126XXXX failed No billing available
POST
/v2/request/inquiry

Mobile Postpaid Inquiry Request Example

Content-Type
application/json
{
   "customerCode": "081240000001",
   "itemId": "0019"
}

Mobile Postpaid Inquiry Response Example

{
  "transactionId": "00002098",
  "itemId": "0019",
  "item": "TELKOMSEL PASCABAYAR",
  "customerCode": "081240000001",
  "nominal": 160000,
  "qty": 1,
  "status": "success",
  "receiptTitle": "INFO TAGIHAN TELKOMSEL PASCABAYAR",
  "receiptBody": {
    "date": { "caption": "TGL TRANSAKSI", "value": "2022-02-16T05:14:04.903Z" },
    "phoneNumber": { "caption": "NO HP", "value": "081240000001" },
    "name": { "caption": "NAMA", "value": "JUNXXXXXIN" },
    "period": { "caption": "PERIODE", "value": "MAR20" },
    "amount": { "caption": "RP TAG", "value": 160000 },
    "admin": { "caption": "ADMIN BANK", "value": 3000 },
    "total": { "caption": "RP BAYAR", "value": 163000 }
  }
}

Mobile Postpaid Purchase

Property Data Type Description
transactionId String Transaction ID from Inquiry response
callbackUrl String (Optional)
refId String (Optional)
POST
/v2/request/purchase

Mobile Postpaid Request Example

Content-Type
application/json
{
    "transactionId": "00002098",
    "callbackUrl": "https://callback-url.id/callback/"
}

Mobile Postpaid Purchase Response Example

{
  "transactionId": "00002098",
  "itemId": "0019",
  "item": "TELKOMSEL PASCABAYAR",
  "customerCode": "081240000001",
  "nominal": 160000,
  "qty": 1,
  "status": "success",
  "balance": 42656025,
  "callbackUrl": "https://callback-url.id/callback/",
  "receiptTitle": "STRUK PEMBAYARAN TELKOMSEL PASCABAYAR",
  "receiptBody": {
    "date": { "caption": "TGL TRANSAKSI", "value": "2022-02-16T05:14:13.724Z" },
    "phoneNumber": { "caption": "NO HP", "value": "081240000001" },
    "name": { "caption": "NAMA", "value": "JUNXXXXXIN" },
    "period": { "caption": "PERIODE", "value": "MAR20" },
    "referenceNo": { "caption": "NO REF", "value": "20238917877" },
    "amount": { "caption": "RP TAG", "value": 160000 },
    "admin": { "caption": "ADMIN BANK", "value": 3000 },
    "total": { "caption": "RP BAYAR", "value": 163000 },
    "info": {
      "caption": "INFO",
      "value": "SIMPAN TANDA TERIMA INI SEBAGAI BUKTI TRANSAKSI TERIMA KASIH"
    }
  }
}

TOP UP

TOP UP with denom

All TOP UP items that have denom property

Property Data Type Description
customerCode String Phone number, Subscriber ID, etc
itemId String Item ID
callbackUrl String (Optional)

Development's customerCode :

itemName itemId customerCode status
TELKOMSEL 35 0399 08224XXXX success
TELKOMSEL 35 0399 08222XXXX pending
TELKOMSEL 35 0399 08223XXXX failed
LINKAJA 10K 0280 08224XXXX success
LINKAJA 10K 0280 08222XXXX pending
LINKAJA 10K 0280 08123XXXX failed
POST
/v2/request/purchase

TOP UP with denom Request Example

Content-Type
application/json
{
  "customerCode": "082240000001",
  "itemId": "0113",
  "callbackUrl": "https://callback-url.id/callback/"
}

TOP UP with denom Response Example

Status
200
Content-Type
application/json
{
  "transactionId": "00000834",
  "customerCode": "082240000001",
  "itemId": "0399",
  "nominal": 35250,
  "item": "TELKOMSEL 35",
  "denom": 35000,
  "qty": 1,
  "status": "success",
  "balance": 42656025,
  "receiptTitle": "TOP UP PULSA",
  "receiptBody": {
    "date": { "caption": "TGL TRANSAKSI", "value": "2021-11-21T01:30:16.394Z" },
    "phone": { "caption": "NO HP", "value": "082240000001" },
    "item": { "caption": "ITEM", "value": "TELKOMSEL 35" },
    "referenceNo": { "caption": "NO REF", "value": "66511201136165" },
    "denom": { "caption": "DENOM", "value": 35000 },
    "amount": { "caption": "RP BAYAR", "value": 35250 }
  }
}

TOP UP with nominal

All TOP UP items that require nominal property upon request

Property Data Type Description
customerCode String Phone number, Subscriber ID, etc
nominal Number Transaction Nominal
itemId String Item ID
callbackUrl String (Optional)
POST
/v2/request/purchase

ADVICE

Property Data Type Description
transactionId String Phone number, Subscriber ID, etc
callbackUrl String (Optional)
POST
/v2/request/advice

ADVICE Request Example

Content-Type
application/json
{
    "transactionId": "00000834",
}

ADVICE Success Response Example

Status
200
Content-Type
application/json
{
  "transactionId": "00000834",
  "customerCode": "082240000001",
  "itemId": "0399",
  "nominal": 35250,
  "denom": 35000,
  "item": "TELKOMSEL 35",
  "qty": 1,
  "status": "success",
  "receiptTitle": "TOP UP PULSA",
  "receiptBody": {
    "date": { "caption": "TGL TRANSAKSI", "value": "2021-11-21T01:30:16.394Z" },
    "phone": { "caption": "NO HP", "value": "082240000001" },
    "item": { "caption": "ITEM", "value": "TELKOMSEL 35" },
    "referenceNo": { "caption": "NO REF", "value": "66511201136165" },
    "denom": { "caption": "DENOM", "value": 35000 },
    "amount": { "caption": "RP BAYAR", "value": 35250 }
  }
}

ADVICE Failed Response Example

Status
200
Content-Type
application/json
{
  "transactionId": "00000834",
  "customerCode": "082240000001",
  "itemId": "0399",
  "nominal": 35250,
  "denom": 35000,
  "item": "TELKOMSEL 35",
  "qty": 1,
  "status": "failed",
  "receiptTitle": "TOP UP PULSA",
  "receiptBody": {
    "code" : "BillerTimeout",
    "message" : "Transaksi gagal silahkan coba kembali beberapa saat lagi"
  }
}
Show examples in:
PayFren API Documentation
PayFren API