APIDOC MPN v2.0
API Information
Title |
MPN |
---|---|
Version |
v2.0 |
URL Sandbox |
|
URL Production |
https://partner.api.bri.co.id/ |
Version Control
API Version |
Date |
Link to document |
Description |
---|---|---|---|
v1.1 |
26 Desember 2022 |
This Page |
Baseline version. |
v1.1 | 17 Januari 2023 | This Page |
Added Endpoint :
|
v2.0 |
11 Desember 2023 |
This Page |
Added Endpoint :
|
v2.0 |
18 Maret 2024 |
This Page |
|
Product Description
Product Overview
In running a business, payment of State Revenue Module (MPN) bills is one of the company's operational activities that must be carried out regularly. Since the presence of open banking from BRI or BRIAPI, all transaction activities to fulfil business needs can be done practically and easily, directly from your business dashboard. This can be realised by using the MPN API. With this API, you can complete everything related to MPN bill payment obligations with just a few clicks, without the need to travel to the branch office.
Endpoint
A. Inquiry NPWP CTAS
Endpoint Description
Service provided for TIN enquiry.
General Information
HTTP Method |
POST |
---|---|
Path Sandbox |
/v2.0/mpn/inquiryNpwpCTAS |
Path Production |
NOT READY PROD |
Tipe Format |
JSON |
Authentication | Token & Signature |
Header Request Structure
Key |
Value |
Mandatory |
Lenght |
Description |
---|---|---|---|---|
BRI-ExternalId |
Numeric |
M |
9 |
Random number from each application is a maximum of 9 digits. Cannot be repeated because of external_id checking) |
Content-Type | string | M | application/json | |
BRI-Signature | string | M | https://developers.bri.co.id/id/docs/authentication | |
BRITimestamp | string | M | TIMESTAMP (yyyy-MM-dd hh:mm:ss.SSSZ) |
Request Structure & Sample
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
branchID |
String |
M |
6 | As per Branch ID list |
|
npwp |
String |
M |
16 | Number NIK |
|
kdMAP | String | M | 6 | Tax account line code | |
kjs | String | M | 3 | Deposit type code |
Response Structure & Sample
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
responseCode |
String |
M |
Response code |
|
|
responseMessage |
String |
M |
Message response |
|
|
requestDate | String | M | Date BP/TP system sent the request (YYYY-MM-DD hh:mm:ss) | ||
bankID | String | M | 4 | According to the bank code list | |
branchID | String | M | 6 | According to the Branch ID list | |
npwp | String | M | 16 | ||
namaWP | String | M | Taxpayer Name | ||
alamatWP | String | M | Taxpayer's address | ||
namaKdMap | String | M | MAP code description | ||
namaKjs | Stirng | M | Description of deposit type code | ||
traceId | String | M |
Request & Response Payload Sample
Request
{ "branchID": "0206", "npwp": "4061969573847377", "kdMAP": "411121", "kjs": "100" }
Normal Response :
{ "responseCode": "00", "responseMessage": "Sukses", "requestDate": "2023-04-27T10:19:17", "bankID": "0002", "branchID": "000206", "npwp": "4061969573847377", "namaWP": "Taxpayer E", "alamatWP": "jl testing 3, RT001/RW002, LIMA PULUH KOTA, LIMA PULUH, KAB. BATU BARA, SUMATERA UTARA, 21255", "namaKdMap": "Pendapatan PPh Pasal 21", "namaKjs": "Masa", "traceId": "230427636844" }
Error Response :
{ "responseCode": "99", "responseMessage": "Failed (undefined atau error lebih dari satu kombinasi)", "requestDate": "2024-03-14 10:12:29", "bankID": "0002", "branchID": "0206", "npwp": "4061969573847377", "namaWP": "", "alamatWP": "", "namaKdMap": "Pendapatan PPh Pasal 21", "namaKjs": "Pembayaran Masa", "traceId": "240314203707" }
List of Error/Response Code
HTTP Status |
Code | Status |
Response Description |
Description |
---|---|---|---|---|
200 | 00 | Success | Success | |
200 | 01 | Failed | NPWP is not 16 digits, including NPWP not in the database | |
200 | 02 | Failed | The combination of BankID and Branch ID is not registered | |
200 | 04 | Failed | CurrencyCode not listed (unknown) | |
200 | 05 | Failed | NumRecordDetail is not equal to the number of details | |
200 | 06 | Failed | billingAmount is empty or minus | |
200 | 07 | Failed | Empty traceid | |
200 | 08 | Failed | The traceID in the header is not the same as the detail | |
200 | 10 | Failed | NumrecordDetail is not equal to 1 | |
200 | 11 | Failed | MAP code not 6 digits | |
200 | 12 | Failed | MAP code not listed (unknown) | |
200 | 13 | Failed | KJS is not 3 digits | |
200 | 14 | Failed | Period not 8 digits | |
200 | 17 | Failed | numAccount empty or minus | |
200 | 18 | Failed | Code MAP 411128 – 402 and 411211-103 NOP not 18 digits | |
200 | 19 | Failed | Code MAP 411128 – 402 and 411211-103 for Kelurahan, Kecamatan, Kab/Kota and/or Province is empty | |
200 | 20 | Failed | Code MAP 4113XX NOP does not exist in the database | |
200 | 21 | Failed | requestDate is greater than the current date | |
200 | 22 | Failed | The ‘confirm’ field is filled with 1 but the traceID is different from the initial request | |
200 | 23 | Failed | KAP-KJS cannot be created through self-service | |
200 | 24 | Failed | KAP-KJS cannot be used for these types of taxpayers | |
200 | 25 | Failed | Period does not match the validation of KAP-KJS combination | |
200 | 26 | Failed | Currency does not match the validation of the KAP-KJS combination / Active certificate | |
200 | 27 | Failed | Inactive taxpayer status | |
200 | 88 | Failed | Confirmation of billing code generation because there has been a payment of TIN + MAP Code + KJS + Period concerned | |
200 | 73 | Failed | Unauthorised. Please enter your username and password correctly | |
200 | 99 | Failed |
General Error Failed (undefined or error more than one combination) |
B. Create Billing CTAS
Endpoint Description
Service provided to create billing for taxpayers who have NPWP
General Information
HTTP Method |
POST |
---|---|
Path Sandbox |
/v2.0/mpn/createBillingCTAS |
Path Production |
NOT READY PROD |
Tipe Format |
JSON |
Authentication | Token & Signature |
Header Request Structure
Key |
Value |
Mandatory |
Lenght |
Description |
---|---|---|---|---|
BRI-ExternalId |
Numeric |
M |
9 |
Random number from each application is a maximum of 9 digits. Cannot be repeated because of external_id checking) |
Content-Type | string | M | application/json | |
BRI-Signature | string | M | https://developers.bri.co.id/id/docs/authentication | |
BRITimestamp | string | M | TIMESTAMP (yyyy-MM-dd hh:mm:ss.SSSZ) |
Request Structure & Sample
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
branchCode |
String |
M |
4 | branch code channel |
|
npwp |
String |
M |
16 |
|
|
currencyCode | String | M | 3 | Rupiah = IDR, Dollar = USD | |
billingAmount | String | - | 12 | Total value in one billing code | |
numRecordDetail | String | M | 1 | Contains = 1 | |
uraian | String | M | 255 | Description of transaction | |
confirm | String | M | 1 |
0 = default, 1 = keep making billing despite having received confirmation |
|
detail | String | M | The contents of this detail object are explained in the table below | ||
traceId | String | M | 255 | Trace ID |
Object: detail
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
kdMAP |
String |
M |
Tax deposit account code |
|
|
kjs |
String |
M |
3 | Tax deposit type code |
|
periode | String | M | 8 |
Consists of: Tax period1 (2) + Tax period2 (2) + Tax Year (4). Example: 01012022 |
|
noSK | String | M | Decree Number | ||
nop | String | C |
Tax object number Code MAP & Kode Jenis Setoran (KJS) :
NOP, tax object address, kelurahan, kecamatan, kabKota, and provinsi required. ================================= Code MAP :
NOP must be filled in with 18 digit numbers while other data elements, namely, taxobject address, sub-district, district, city, and province are not filled in. |
||
taxObjectAddress | String | C |
Tax object address (related to NOP) Code MAP & Kode Jenis Setoran (KJS) :
NOP, tax object address, kelurahan, kecamatan, kabKota, and provinsi required. ================================= Code MAP :
NOP must be filled in with 18 digit numbers while other data elements, namely, taxobject address, sub-district, district, city, and province are not filled in. |
||
kelurahan | String | C |
Related to NOP Code MAP & Kode Jenis Setoran (KJS) :
NOP, tax object address, kelurahan, kecamatan, kabKota, and provinsi required. ================================= Code MAP :
NOP must be filled in with 18 digit numbers while other data elements, namely, taxobject address, sub-district, district, city, and province are not filled in. |
||
kecamatan | String | C |
Related to NOP Code MAP & Kode Jenis Setoran (KJS) :
NOP, tax object address, kelurahan, kecamatan, kabKota, and provinsi required. ================================= Code MAP :
NOP must be filled in with 18 digit numbers while other data elements, namely, taxobject address, sub-district, district, city, and province are not filled in. |
||
kabkota | String | C |
Related to NOP Code MAP & Kode Jenis Setoran (KJS) :
NOP, tax object address, kelurahan, kecamatan, kabKota, and provinsi required. ================================= Code MAP :
NOP must be filled in with 18 digit numbers while other data elements, namely, taxobject address, sub-district, district, city, and province are not filled in. |
||
provinsi | String | C |
Related to NOP Code MAP & Kode Jenis Setoran (KJS) :
NOP, tax object address, kelurahan, kecamatan, kabKota, dan provinsi wajib terisi ================================= Code MAP :
NOP must be filled in with 18 digit numbers while other data elements, namely, taxobject address, sub-district, district, city, and province are not filled in. |
||
numAccount | String | M |
Total unit value per MAP code in one billing code |
Response Structure & Sample
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
responseCode |
String |
M |
Response code |
|
|
responseMessage |
String |
M |
Message response |
|
|
requestDate | String | M | Date BP/TP system sent the request (YYYY-MM-DD hh:mm:ss) | ||
bankID | String | M | As per bank code list | ||
branchID | String | M | 6 | As per Branch ID list | |
npwp | String | M | 16 | ||
namaWP | String | M | |||
alamatWP | String | M | |||
currencyCode | String | M | 3 | Rupiah = IDR, Dollar = USD | |
billingAmount | Stirng | M | 12 | Total value in one billing code | |
numRecordDetail | String | M | 1 | Contains = 1 | |
uraian | String | M | 1 | Description of transaction | |
traceId | String | M | 255 | ||
idBilling | String | M | 15 | Billing code created by DJP | |
tglKadaluarsa | String | M | Billing code expiry date (YYYY-MMDD hh:mm:ss) | ||
billingCreationDate | String | M | Date of billing code generation (YYYY-MMDD hh:mm:ss) | ||
type | String | M |
0 = default 1 = notification (for certain conditions according to with MAP Code validation) |
||
detail | String | M | The contents of this detail object are explained in the table below |
Array: detail
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
kdMAP |
Integer |
M |
Tax deposit account code |
|
|
kjs |
String |
M |
3 | Tax deposit type code |
|
periode | String | M | 8 |
Consists of: Tax period1 (2) + Tax period2 (2) + Tax Year (4). Example: 01012022 |
|
noSK | String | M | Decree Number | ||
nop | String | M | Tax object number | ||
taxObjectAddress | String | M | Tax object address (related to NOP) | ||
kelurahan | String | M | Related to NOP | ||
kecamatan | String | M | Related to NOP | ||
kabKota | String | M | Related to NOP | ||
provinsi | Stirng | M | Related to NOP | ||
numAccount | Integer | M |
Total unit value per MAP code in one billing code |
||
traceId | String | M | 255 |
Request & Response Payload Sample
Request
{ "branchCode":"0008", "npwp":"1234567890123456", "currencyCode":"IDR", "billingAmount":"1000", "numRecordDetail":1, "uraian":"insentif terkait pandemic covid-19", "confirm":"0", "detail":[ { "kdMAP":411128, "kjs":"402", "periode":"02022021", "noSK":"01234567890", "nop":"123456789012345678", "taxObjectAddress":"alamat", "kelurahan":"contoh kelurahan", "kecamatan":"contoh kecamatan", "kabKota":"contoh kab", "provinsi":"contoh provinsi", "numAccount":1000 } ], "traceId":"231030949597" }
Normal Response :
{ "responseCode":"00", "responseMessage":"Sukses", "requestDate":"2023-05-23T07:28:39Z", "bankID":"0002", "branchID":"000374", "npwp":"1234567890123456", "namaWP":"Glenn CM", "alamatWP":"Jalan Pos I, RT000/RW000, PASAR BARU, SAWAH BESAR, KOTA ADM. JAKARTA PUSAT, DKI JAKARTA, 10710", "currencyCode":"IDR", "billingAmount":"1000", "numRecordDetail":1, "uraian":"insentif terkait pandemic covid-19", "idBilling":"167655208268722", "idSispen":"230523639406", "tglKadaluarsa":"2023-05-30T07:28:41Z", "billingCreationDate":"2023-05-23T07:28:41Z", "type":"0", "detail":[ { "kdMAP":411128, "kjs":"402", "periode":"02022021", "noSK":"01234567890", "nop":"123456789012345678", "taxObjectAddress":"alamat", "kelurahan":"contoh kelurahan", "kecamatan":"contoh kecamatan", "kabKota":"contoh kab", "provinsi":"contoh provinsi", "numAccount":"1000", "traceId":"230523639406" } ] }
Error Response :
{ "responseCode":"01", "responseMessage":"NPWP tidak 16 digit, termasuk NPWP tidak ada dalam database" }
List of Error/Response Code
HTTP Status |
Code | Status |
Response Description |
Description |
---|---|---|---|---|
200 | 00 | Success | Success | |
200 | 01 | Failed | NPWP is not 16 digits, including NPWP not in the database | |
200 | 02 | Failed | The combination of BankID and Branch ID is not registered | |
200 | 04 | Failed | CurrencyCode not listed (unknown) | |
200 | 05 | Failed | NumRecordDetail is not equal to the number of details | |
200 | 06 | Failed | billingAmount is empty or minus | |
200 | 07 | Failed | Empty traceid | |
200 | 08 | Failed | The traceID in the header is not the same as the detail | |
200 | 10 | Failed | NumrecordDetail is not equal to 1 | |
200 | 11 | Failed | MAP code not 6 digits | |
200 | 12 | Failed | MAP code not listed (unknown) | |
200 | 13 | Failed | KJS is not 3 digits | |
200 | 14 | Failed | Period not 8 digits | |
200 | 17 | Failed | numAccount empty or minus | |
200 | 18 | Failed | Code MAP 411128 – 402 and 411211-103 NOP not 18 digits | |
200 | 19 | Failed | Code MAP 411128 – 402 and 411211-103 for Kelurahan, Kecamatan, Kab/Kota and/or Province is empty | |
200 | 20 | Failed | Code MAP 4113XX NOP does not exist in the database | |
200 | 21 | Failed | requestDate is greater than the current date | |
200 | 22 | Failed | The ‘confirm’ field is filled with 1 but the traceID is different from the initial request | |
200 | 23 | Failed | KAP-KJS cannot be created through self-service | |
200 | 24 | Failed | KAP-KJS cannot be used for these types of taxpayers | |
200 | 25 | Failed | Period does not match the validation of KAP-KJS combination | |
200 | 26 | Failed | Currency does not match the validation of the KAP-KJS combination / Active certificate | |
200 | 27 | Failed | Inactive taxpayer status | |
200 | 88 | Failed | Confirmation of billing code generation because there has been a payment of TIN + MAP Code + KJS + Period concerned | |
200 | 73 | Failed | Unauthorised. Please enter your username and password correctly | |
200 | 99 | Failed |
General Error Failed (undefined or error more than one combination) |
C. Create Billing Non NPWP
Endpoint Description
Service provided for Withholding Agents who do not yet have a Taxpayer Identification Number (NPWP).
General Information
HTTP Method |
POST |
---|---|
Path Sandbox |
/v2.0/mpn/createBillingnonNPWP |
Path Production |
/v2.0/mpn/createBillingnonNPWP |
Tipe Format |
JSON |
Authentication | Token & Signature |
Header Request Structure
Key |
Value |
Mandatory |
Lenght |
Description |
---|---|---|---|---|
BRI-ExternalId |
Numeric |
M |
9 |
Random number from each application is a maximum of 9 digits. Cannot be repeated because of external_id checking) |
Content-Type | string | M | application/json | |
BRI-Signature | string | M | https://developers.bri.co.id/id/docs/authentication | |
BRITimestamp | string | M | TIMESTAMP (yyyy-MM-dd hh:mm:ss.SSSZ) |
Request Structure & Sample
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
mapCode |
String |
M |
6 | Tax Type Code |
|
depositType |
String |
M |
3 | Types of Tax Payments |
|
trxAmt | String | M | max 12 | Amount Transaksi | |
nop | String | M | 18 | Tax Object Number | |
npwpDepositor | String | - | 15 | Depositor NPWP | |
period1 | String | M | 2 | Tax Period 1 | |
period2 | String | M | 2 | Tax Period 2 | |
taxYear | String | M | 4 | Tax Year | |
skNum | String | M | 15 | SK Number | |
currCode | String | M | 3 | Currency code (default 360:IDR) (Valas (840: USD) | |
note | String | M | max 255 | Description | |
userId | M | 7 | User ID | ||
merchantType | M | 4 | Type Merchant | ||
wpIdentity | M | 16 | Taxpayer's Identity | ||
wpName | M | max 255 | Taxpayer's Name | ||
wpAddress | M | max 255 | Taxpayer's Address | ||
kppCode | M | 3 | Code KPP | ||
wpCity | M | max 255 | Taxpayer's City |
Response Structure & Sample
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
responseCode |
String |
M |
Response code |
|
|
responseMessage |
String |
M |
Message response |
|
|
data | String | M |
List response data :
|
Request & Response Payload Sample
Request
{ "npwpDepositor":"023901556417000", "mapCode":"411211", "depositType":"102", "trxAmt":"150", "nop":"000000000000000000", "period1":"01", "period2":"01", "taxYear":"2020", "skNum":"000000000000000", "currCode":"360", "note":"create", "userId":"0206891", "merchantType":"7014", "wpIdentity":"3374131407890005", "wpName":"Rafli", "wpAddress":"Ragunan", "kppCode":"075", "wpCity":"Jakarta Selatan" }
Normal Response :
{ "responseCode":"00", "responseMessage":"Create Billing Successfully", "data":{ "billingId":"124205971165091", "npwpDepositor":"023901556417000", "mapCode":"411211", "depositType":"102", "period1":"01", "period2":"01", "taxYear":"2020", "skNum":"000000000000000", "nop":"000000000000000000", "currCode":"360", "trxAmt":"150", "createdDate":"2020-07-23 17:15:07", "expiredDate":"2020-08-22 17:17:57", "wpAddress":"Ragunan " } }
Error Response :
{ "responseCode":"V27", "responseMessage":"Length npwpDepositor Must be 15" }
List of Error/Response Code
HTTP Status |
Code | Status |
Response Description |
Description |
---|---|---|---|---|
200 | 00 | Success | Create billing successfully | |
200 | 07 | Failed | Inappropriate data format | |
200 | 08 | Failed | The depositor must have a taxpayer identification number (NNPWP) | |
200 | 02 | Failed | mapCode is blank | |
200 | 03 | Failed | depositType is blank | |
200 | 04 | Failed | Length depositType Must be 3 | |
200 | 06 | Failed | depositType Must be Number 0-9 | |
200 | 07 | Failed | npwpNum Must be Number 0-9 | |
200 | 08 | Failed | Length mapCode Must be 6 | |
200 | 09 | Failed | mapCode Must be Number 0-9 | |
200 | 16 | Failed | trxAmt is blank | |
200 | 17 | Failed | nop is blank | |
200 | 18 | Failed | period1 is blank | |
200 | 19 | Failed | period2 is blank | |
200 | 20 | Failed | taxYear is blank | |
200 | 21 | Failed | skNum is blank | |
200 | 22 | Failed | currCode is blank | |
200 | 23 | Failed | note is blank | |
200 | 24 | Failed | trxAmt Must be Number 0-9 | |
200 | 25 | Failed | Length nop Must be 18 | |
200 | 26 | Failed | nop Must be Number 0-9 | |
200 | 27 | Failed | Length npwpDepositor Must be 15 | |
200 | 28 | Failed | npwpDepositor Must be Number 0-9 | |
200 | 29 | Failed | Length period1 Must be 2 | |
200 | 30 | Failed | Period1 Must be Number 0-9 | |
200 | 31 | Failed | Length period2 Must be 2 | |
200 | 32 | Failed |
period2 Must be Number 0-9 |
|
200 | 33 | Failed | Length taxYear Must be 4 | |
200 | 34 | Failed | taxYear Must be Number 0-9 | |
200 | 35 | Failed | Length skNum Must be 15 | |
200 | 36 | Failed | skNum Must be Number 0-9 | |
200 | 37 | Failed | Length currCode Must be 3 | |
200 | 39 | Failed | wpIdentify is blank | |
200 | 40 | Failed | wpName is blank | |
200 | 41 | Failed | wpAddress is blank | |
200 | 42 | Failed | kppCode is blank | |
200 | 43 | Failed | wpCity is blank | |
200 | 44 | Failed | Length wpIdentify Must be 16 | |
200 | 45 | Failed | wpIdentify Must be Number 0-9 | |
200 | 46 | Failed | Length kppCode Must be 3 | |
200 | 47 | Failed | kppCode Must be Number 0-9 | |
200 | 48 | Failed | max Length trxAmt is 12 | |
200 | 49 | Failed | Length wp_name Max 255 | |
200 | 50 | Failed | Length wp_address Max 255 | |
200 | 51 | Failed | Length WP City Max 255 | |
200 | 52 | Failed | Length Note Max 255 |
D. Inquiry Billing
Endpoint Description
Service provided to enquire about the TIN billing code that has been generated.
General Information
HTTP Method |
POST |
---|---|
Path Sandbox |
/v2.0/mpn/inquiryBilling |
Path Production |
/v2.0/mpn/inquiryBilling |
Tipe Format |
JSON |
Authentication | Token & Signature |
Header Request Structure
Key |
Value |
Mandatory |
Lenght |
Description |
---|---|---|---|---|
BRI-ExternalId |
Numeric |
M |
9 |
Random number from each application is a maximum of 9 digits. Cannot be repeated because of external_id checking) |
Content-Type | string | M | application/json | |
BRI-Signature | string | M | https://developers.bri.co.id/id/docs/authentication | |
BRITimestamp | string | M | TIMESTAMP (yyyy-MM-dd hh:mm:ss.SSSZ) |
Request Structure & Sample
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
accountNumber |
String |
M |
15 | Account number |
|
productCode |
String |
M |
5 |
Product code 91200 |
|
custNumber | String | M | 20 | ID Billing MPN | |
amount | String | O | 18,2 | Identifier biller (amount-fill in if purchase) | |
billData | String | M | The contents of this billData object are described in the table below |
Object: billData
Field |
Data Type |
Mandatory |
Length |
Description |
---|---|---|---|---|
kodeKurs |
String |
M |
3 | IDR/USD |
messageType |
String |
M |
10 | Outgoing |
Response Structure & Sample
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
responseCode |
String |
M |
2 | Response Code hasil inquiry billing |
|
responseMessage |
String |
M |
255 | Response Message hasil inquiry billing |
|
errorCode | String | M |
Identification error code backend Ex "PE-000" |
||
data | Object | M | |||
billData | Object | M |
Object: data
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
inquiryId |
String |
M |
40 | Key inquiry response |
|
billerCode |
String |
M |
|
||
responseTime | String | O |
yyyy-MM-dd HH:mm:ss |
||
custNumber | String | M | 20 | ID Billing / ID Setoran | |
amount | String | M | 18,2 | Nominal billing | |
fee | String | O | 12,2 | Admin fee | |
productCode | String | O | 5 | Product code | |
productName | String | O | 99 | Product Name | |
category | String | O | 50 |
Category Pulsa Transportation |
|
paymentType | Stirng | O | 1 |
Payment type : all bill = 2 single bill = 1 multiple bill = 0 |
Object: billData
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
idSispen |
String |
|
DJBC, DJA, DJP |
||
transactionCurrencyCode |
String |
|
3 | Konfirmasi Currency code |
DJBC, DJA, DJP |
systemTraceAuditNumber | String | 6 | STAN hasil generate di MPN | DJBC, DJA, DJP | |
merchantTypes | String | 4 | Merchant type based on input channel id | DJBC, DJA, DJP | |
retrievalReferenceNumber | String | 12 | IDSISPEN | DJBC, DJA, DJP | |
namaWP | String | 125 | Taxpayer Name | DJBC, DJA, DJP | |
alamatWP | String | 50 | Taxpayer's address | DJP | |
npwp | String | 16 | NIK/NPWP of the entity | DJBC, DJP | |
jumlahDetail | String | 2 | Number of billing details in 1 billing | DJBC, DJA, DJP | |
jenisDokumen | String | 2 | Document Type | DJBC | |
nomorDokumen | String | 30 | Document Number | DJBC | |
tanggalDokumen | String | 10 | Document Date | DJBC | |
kodeKpbc | String | 30 | Code KPBC | DJBC | |
idPeserta | String | 16 | NPWP Depositor | DJBC, DJA, DJP | |
kodeNTB | String | 12 | IDSISPEN | DJBC, DJA, DJP | |
kodeKL | String | 4 | Code KL | DJA | |
unitEselon1 | String | 4 | Unit Eselon 1 | DJA | |
satker | String | 6 | Satker | DJA |
Request & Response Payload Sample
Request
{ "accountNumber":"020601075566508", "productCode":"91200", "custNumber":"127606981808151", "billData":{ "kodeKurs":"IDR", "messageType":"Outgoing" } }
Normal Response for DJBC :
{ "responseCode":"00", "errorCode":"MPN-00", "responseMessage":"Transaction Success", "data":{ "inquiryId":"4d504e5f317c39313230307c323030303230313132303135", "billerCode":"MPN_1", "amount":"7920000", "custNumber":"520211100000285", "billData":{ "idSispen":"230523676600", "npwp":"735080640808000", "namaWp":"ENTRI, PR.", "merchantTypes":"7015", "systemTraceAuditNumber":"491962", "jenisDokumen":"69", "nomorDokumen":"000192", "tanggalDokumen":"2021-11-01", "kodeKpbc":"110300" } } }
Normal Response for DJP:
{ "responseCode":"00", "errorCode":"MPN-00", "responseMessage":"Transaction Success", "data":{ "inquiryId":"4d504e5f317c39313230307c323030303230313132303134", "billerCode":"MPN_1", "amount":"110000", "custNumber":"127106940517133", "billData":{ "idSispen":"230523676599", "npwp":"0239865570310888", "namaWp":"MITRA PAJAKKU", "alamatWp":"JL KEMANGGISAN UTAMA RAYA - KOTA ADM. JAKARTA BARA", "jumlahDetail":"1", "transactionCurrencyCode":"IDR", "merchantTypes":"7015", "systemTraceAuditNumber":"491961" } } }
Normal Response for DJA:
{ "responseCode":"00", "errorCode":"MPN-00", "responseMessage":"Transaction Success", "data":{ "inquiryId":"4d504e5f317c39313230307c323030303230313132303133", "billerCode":"MPN_1", "amount":"8244700", "custNumber":"820190701528669", "billData":{ "idSispen":"230523676597", "namaWp":"ABDUL KHOBIR", "merchantTypes":"7015", "systemTraceAuditNumber":"491955", "kodeKL":"056", "unitEselon1":"01", "satker":"429621" } } }
Error Response :
{ "responseCode":"01", "responseMessage":"Tagihan Tidak Tersedia" }
List of Error/Response Code
HTTP Status |
Code | Status |
Response Description |
Description |
---|---|---|---|---|
200 | 00 | Success | Successfully | |
200 | 01 | Failed | Unavailable Bills | |
200 | 02 | Failed | corpName must not contain . and spaces | |
200 | 02 | Failed | invalid corpname | |
200 | 02 | Failed | Invalid signature format | |
200 | 32 | Failed | Currency Code Not Found | |
200 | 88 | Failed | The bill has already been paid | |
400 | 90 | Failed | Invalid Field Format {{fieldName}} | |
400 | 91 | Failed | Invalid Mandatory Field {{fieldName}} | |
200 | 98 | Failed | MPN System Error : Long Message Not suitable | |
200 | 99 | Failed | General Error |
E. Payment
Endpoint Description
Service provided for payments from the Billing ID that is formed
General Information
HTTP Method |
POST |
---|---|
Path Sandbox |
/v2.0/mpn/payment |
Path Production |
/v2.0/mpn/payment |
Tipe Format |
JSON |
Authentication | Token & Signature |
Header Request Structure
Key |
Value |
Mandatory |
Lenght |
Description |
---|---|---|---|---|
BRI-ExternalId |
Numeric |
M |
9 |
Random number from each application is a maximum of 9 digits. Cannot be repeated because of external_id checking) |
Content-Type | string | M | application/json | |
BRI-Signature | string | M | https://developers.bri.co.id/id/docs/authentication | |
BRITimestamp | string | M | TIMESTAMP (yyyy-MM-dd hh:mm:ss.SSSZ) |
Request Structure & Sample
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
requestTime |
Datetime yyyy-MM-dd HH:mm:ss |
M |
Request date time transactionsnumber |
|
|
inquiryId |
String |
C |
40 |
Key inquiry response, If need look up inquiry transaction |
|
productCode | String | M |
Product code 91200 |
||
amount | String | O | 12,2 | nominal transaksi, sample : 10000.00 | |
custNumber | String | M | ID Billing | ||
accountNumber | String | M | 15 | SA, CA, VA (Multicurrency not allowed) | |
stan | String | O | |||
billData | Object | M | The contents of this data object are described in the table below |
Object: billData
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
idSispen |
String |
M |
12 | IDSISPEN dari proses Inquiry Billing | MPNG2- 003 | 00 |
namaWP |
String |
M |
50 | Name of taxpayer | |
alamatWP | String | C | 200 | Taxpayer's address | |
kodeKurs | String | M | 3 | IDR/USD | |
npwp | String | C | 16 | NIK/NPWP bbdy | |
systemTraceAuditNumber | String | O | 6 | STAN | |
jenisDokumen | String | C | 2 | Document Type | |
nomorDokumen | String | C | 30 | Document Number | |
tanggalDokumen | String | C | 10 | Document Date, format : yyyy-MM-dd | |
kodeKPBC | String | C | 30 | Code KPBC | |
kodeKL | String | C | 4 | Code KL | |
kodeNTB | String | M | 12 | IDSISPEN of Inquiry Billing | |
unitEselon1 | String | C | 4 | Unit Eselon 1 | |
satker | String | C | 6 | Satker | |
String | O | 150 |
|
||
approver | String | O | 150 | Mandatory if email address = company name | |
userIdHostSPV | String | O | 7 | ||
tglHostApprv | String | O | |||
jamHostAprv | String | O | |||
alasanHostAprv | String | O | 255 | Reason for Host Approval | |
keteranganHostAprv | String | O | 255 | Host Approval Description | |
userIdLocSPV | String | O | |||
tglLocalApprv | String | O | |||
jamLocalAprv | String | O | |||
alasanLocalAprv | String | O | 255 | Reason for Local Approval | |
keteranganLocalAprv | String | O | 255 | Description Local Approval | |
jumlahTransaksi | String | C | 16 | Detailed number of results from inquiry |
Response Structure & Sample
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
responseCode |
String |
M |
2 |
MPNG2-003 | 00 |
|
responseMessage |
String |
M |
|
||
errorCode | String | M |
The contents of this ‘data’ object are described in the table below |
||
journalSequence | String | O | 7 | ||
productCode | String | M | |||
productName | String | M | |||
custNumber | String | M | |||
amount | String | M | |||
category | String | M | |||
responseTime | String | M | |||
needApproval | String | O | |||
approvalReason | Array | O | |||
billData | object | M |
Object: billData
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
ntb |
String |
|
NTPN response from MPN |
|
|
ntpn |
String |
|
|
||
idSetoran | String | System Audit Trace Number | |||
systemTraceAuditNumber | String | Date of Book Transfer from BRI to MPN | |||
tanggalSettlement | String | Date Hour Transaction sent to MPN | |||
tanggalTransaksi | String | Hours of transaction | |||
jamTransaksi | String | IDSISPEN | |||
idSispen | String | Transaction Branch Code | |||
transCabang | String |
|
Request & Response Payload Sample
Request IDR :
{ "inquiryId":"4d504e5f317c39313230307c303030313939303030363330", "cardNumber":"", "requestTime":"2023-12-06 16:13:51", "terminalId":"00006699", "iccData":"", "stan":"006699000636", "channelCode":"6011", "posEntryMode":"051", "currencyCode":"360", "accountNumber":"020601002032300", "productCode":"91200", "custNumber":"919100992622168", "amount":"150000.00", "pinData":"5BB7F2A4263C14D7", "track2Data":"", "billData":{ "alamatWP":"JL. LEMBAYUNG SENJA NO.88 KOTA RANTING CEMARA", "email":"", "idSispen":"231214754052", "jenisDokumen":"", "jumlahDetail":"1", "kodeKL":"999", "kodeKPBC":"", "kodeKurs":"IDR", "merchantTypes":"7014", "namaWP":"DJA INDAH SEROJA", "nomorDokumen":"", "npwp":"3469416025488888", "satker":"960186", "systemTraceAuditNumber":"647600", "tanggalDokumen":"", "transactionCurrencyCode":"IDR", "unitEselon1":"01", "rekeningNasabah":"324324324", "kodeNTB":"A" } }
Request USD :
{ "inquiryId":"4d504e5f317c39313230307c303030313939303030363330", "cardNumber":"", "requestTime":"2023-12-06 16:13:51", "terminalId":"00006699", "iccData":"", "stan":"006699000636", "channelCode":"6011", "posEntryMode":"051", "currencyCode":"360", "accountNumber":"020601002032300", "productCode":"91200", "custNumber":"919100992622168", "amount":"150000.00", "pinData":"5BB7F2A4263C14D7", "track2Data":"", "billData":{ "alamatWP":"JL. LEMBAYUNG SENJA NO.88 KOTA RANTING CEMARA", "email":"", "idSispen":"231214754052", "jenisDokumen":"", "jumlahDetail":"1", "kodeKL":"999", "kodeKPBC":"", "kodeKurs":"IDR", "merchantTypes":"7014", "namaWP":"DJA INDAH SEROJA", "nomorDokumen":"", "npwp":"3469416025488888", "satker":"960186", "systemTraceAuditNumber":"647600", "tanggalDokumen":"", "transactionCurrencyCode":"IDR", "unitEselon1":"01", "rekeningNasabah":"324324324", "kodeNTB":"A" } }
Normal Response IDR :
{ "responseCode":"00", "errorCode":"MPN-00", "responseMessage":"Transaction Success", "data":{ "journalSequence":"7906032", "billerCode":"MPN_1", "fee":"0.00", "billData":{ "idSispen":"230411675303", "merchantType":"7015", "debetJumlah":"1000", "creditJumlah":"0", "transCabang":"0329", "transJumlah":"1000", "systemTraceAuditNumber":"454799", "tanggalTransaksi":"13042023", "jamTransaksi":"171615", "tanggalSettlement":"14042023", "ntpn":"C59251SEUJ8QIKPU", "ntb":"230411675303", "biaya":"0" } } }
Normal Response USD:
{ "responseCode":"00", "errorCode":"MPN-00", "responseMessage":"Transaction Success", "data":{ "journalSequence":"5482076", "billerCode":"MPN_1", "fee":"0.00", "billData":{ "idSispen":"231016702790", "merchantType":"7015", "debetJumlah":"100.00", "creditJumlah":"0", "transCabang":"0888", "transJumlah":"100", "systemTraceAuditNumber":"583784", "tanggalTransaksi":"16102023", "jamTransaksi":"141547", "tanggalSettlement":"15102023", "ntpn":"B09DF5E5FCM995BP", "ntb":"231016702790", "biaya":"0" } } }
Error Response :
{ "responseCode": "01, "errorCode": "Pembukuan gagal" }
List of Error/Response Code
HTTP Status |
Code | Status |
Response Description |
Description |
---|---|---|---|---|
200 | 00 | Success | Payment Success | |
200 | 01 | Failed | Bookkeeping fails | |
200 | 02 | Failed | Invoice close | Reversal success | |
200 | 08 | Failed | Payment data does not match | Reversal successl | |
200 | 09 | Failed | Payment data does not match | Reversal Success | |
200 | 27 | Failed | Bill Paid through another CA | Reversal Success | |
200 | 88 | Failed | Transaction has already been done | |
200 | 67 | Failed | Timeout (suspend) | |
200 | 68 | Failed | Timeout WS (suspend) | |
400 | 90 | Failed | Invalid Field Format {{fieldName}} | |
400 | 91 | Failed | Invalid Mandatory Field {{fieldName}} | |
400 | 98 | Failed | Account is not found | |
200 | 98 | Failed | Message length is not appropriatei | Reversal success | |
200 | 99 | Failed | General Error |
F. Reinquiry
Endpoint Description
Service provided for reinquiry of billing code payment status.
General Information
HTTP Method |
POST |
---|---|
Path Sandbox |
/v2.0/mpn/reinquiry |
Path Production |
/v2.0/mpn/reinquiry |
Tipe Format |
JSON |
Authentication | Token & Signature |
Header Request Structure
Key |
Value |
Mandatory |
Lenght |
Description |
---|---|---|---|---|
BRI-ExternalId |
Numeric |
M |
9 |
Random number from each application is a maximum of 9 digits. Cannot be repeated because of external_id checking) |
Content-Type | string | M | application/json | |
BRI-Signature | string | M | https://developers.bri.co.id/id/docs/authentication | |
BRITimestamp | string | M | TIMESTAMP (yyyy-MM-dd hh:mm:ss.SSSZ) |
Request Structure & Sample
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
idSetoran |
String |
M |
15 | Numeric |
|
transactionCurrencyCode |
String |
M |
3 | Must be IDR or USD |
|
Response Structure & Sample
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
responseCode |
String |
M |
2 | Inquiry billing result response code |
|
responseMessage |
String |
M |
255 | Inquiry billing result response code |
|
data | Object |
|
|||
idSetoran | String | 15 | Confirm Billing ID | ||
transactionCurrencyCode | String | 3 | Currency code confirmation | ||
transactionAmount | String | 16 | Nominal billing | ||
systemTraceAuditNumber | String | 6 | STAN results generated at MPN | ||
merchantTypes | String | 4 | Merchant type based on input channel id | ||
retrievalReferenceNumber | String | 12 | IDSISPEN | ||
namaWP | String | 125 | Taxpayer Name | ||
alamatWP | String | 50 | Taxpayer's address | ||
npwp | String | 16 | NIK/NPWP body | ||
jumlahDetail | String | 2 | Number of billing details in 1 billing | ||
jenisDokumen | String | 2 | Document Type | ||
nomorDokumen | String | 30 | Document Number | ||
tanggalDokumen | String | 10 | Document Date | ||
kodeKpbc | String | 30 | Code KPBC | ||
idPeserta | String | 16 | NPWP Penyetor (Depositor) | ||
kodeNTB | String | 12 | IDSISPEN | ||
kodeKL | String | 4 | Code KL | ||
unitEselon1 | String | 4 | Unit Eselon 1 | ||
satker | String | 6 | Satker | ||
kodeNTPN | String | 16 | NTPN | ||
rcMPN | String | 2 | Response Code MPN | ||
responseMessageMPN | String | 255 | Response Message MPN | ||
tglBuku | String | 8 | Date Book | ||
transCabang | String | 4 | Branch Transactions | ||
tanggalSettlement | String | 8 | Date Settlement | ||
tanggalTransaksi | String | 8 | Date Transaksi | ||
jamTransaksi | String | 6 | Time Transaksi | ||
journalSeq1 | String | 7 | Journal Sequence 1 | ||
journalSeq2 | String | 7 | Journal Sequence 2 |
Request & Response Payload Sample
Request :
{ "idSetoran":"000000000003404", "transactionCurrencyCode":"IDR" }
Normal Response DJBC :
{ "responseCode":"00", "responseMessage":"Data Ditemukan", "data":{ "idSetoran":"127306958506102", "transactionCurrencyCode":"IDR", "transactionAmount":"350000.00", "systemTraceAuditNumber":"493578", "merchantTypes":"7015", "retrievalReferenceNumber":"230224655997", "namaWP":"WP BADAN", "alamatWP":"JL. INI ALAMATNYA - KAB. TANGERANG", "npwp":"0024191678418000", "jumlahDetail":"1", "jenisDokumen":"", "nomorDokumen":"", "tanggalDokumen":"", "kodeKpbc":"", "idPeserta":"", "kodeNTB":"", "kodeKL":"", "unitEselon1":"", "satker":"", "kodeNTPN":"", "rcMPN":"98", "responseMessageMPN":"Panjang message tidak sesuai (Reversal)", "tglBuku":"25022023", "tanggalSettlement":"06032024", "tanggalTransaksi":"06032024", "jamTransaksi":"100525", "transCabang":"0888", "journalSeq1":"8952018", "journalSeq2":"" } }
Normal Response DJP:
{ "responseCode":"00", "responseMessage":"Data Ditemukan", "data":{ "idSetoran":"119100190013624", "transactionCurrencyCode":"IDR", "transactionAmount":"5561.00", "systemTraceAuditNumber":"592861", "merchantTypes":"7019", "retrievalReferenceNumber":"231108706465", "namaWP":"RIMBUN ILALANG", "alamatWP":"JL. LEMBAYUNG SENJA NO.88 KOTA RANTING CEMARA", "npwp":"3469416025488888", "jumlahDetail":"3", "jenisDokumen":"", "nomorDokumen":"", "tanggalDokumen":"", "kodeKpbc":"", "idPeserta":"", "kodeNTB":"123456789112", "kodeKL":"", "unitEselon1":"", "satker":"", "kodeNTPN":"FD6805DT984INE5O", "rcMPN":"00", "responseMessageMPN":"Success", "tglBuku":"11082023", "tanggalSettlement":"11082023", "tanggalTransaksi":"11082023", "jamTransaksi":"11:12:19", "transCabang":"0206", "tanggalSettlement":"06032024", "tanggalTransaksi":"06032024", "jamTransaksi":"100525", "transCabang":"0888", "journalSeq1":"8952018", "journalSeq2":"" } }
Normal Response DJA:
{ "responseCode":"00", "responseMessage":"Data Ditemukan", "data":{ "idSetoran":"127306958506102", "transactionCurrencyCode":"IDR", "transactionAmount":"1000.00", "systemTraceAuditNumber":"489999", "merchantTypes":"7015", "retrievalReferenceNumber":"230504675804", "namaWP":"WP BADAN", "npwp":"0024191678418000", "kodeNTB":"230504675804", "kodeKL":"", "unitEselon1":"", "satker":"", "kodeNTPN":"", "rcMPN":"98", "responseMessageMPN":"Panjang message tidak sesuai (Reversal)", "tglBuku":"25022023", "tanggalSettlement":"06032024", "tanggalTransaksi":"06032024", "jamTransaksi":"100525", "transCabang":"0888", "journalSeq1":"8952018", "journalSeq2":"" } }
Error Response :
{ "responseCode":"01", "responseMessage":"Data Tidak Ditemukan" }
List of Error/Response Code
HTTP Status |
Code | Status |
Response Description |
Description |
---|---|---|---|---|
200 | 00 | Success | Data Found | |
200 | 01 | Failed | Data Not Found | |
200 | 02 | Failed | corpName must not contain . and spaces | |
200 | 02 | Failed | invalid corpname | |
200 | 02 | Failed | Format signature invalid | |
200 | 72 | Failed | Validation Error | |
200 | 73 | Failed | Unauthorised. Please enter your username and password correctly | |
200 | 99 | Failed | General Error |
RCMPN |
DESCRIPTION |
---|---|
00 | Success |
02 | Invoice close (Reversal) |
03 | Payment data does not match (Reversal) |
27 | Bill Paid through another CA (Reversal) |
77 | Billing Expired (Reversal) |
90 | Timeout to MPN |
98 | Inappropriate message length (Reversal) |
G. Create Sign Approver
Endpoint Description
Service provided to register partners' digital signatures.
General Information
HTTP Method |
POST |
---|---|
Path Sandbox |
/v2.0/mpn/createSignApprover |
Path Production |
/v2.0/mpn/createSignApprover |
Tipe Format |
JSON |
Authentication | Token & Signature |
Header Request Structure
Key |
Value |
Mandatory |
Lenght |
Description |
---|---|---|---|---|
Content -Type |
String |
M |
|
application/json |
BRISignature | string | M | https://developers.bri.co.id/id/docs/authentication | |
BRITimestamp | string | M | TIMESTAMP (yyyy-MM-dd hh:mm:ss.SSSZ) | |
BRIExternal-Id | string | M | 9 |
Random number from each application is a maximum of 9 digits. Cannot be repeated because of external_id checking) Random number from each application is a maximum of 9 digits. Cannot be repeated because of external_id checking) |
Request Structure & Sample
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
corpname |
String |
M |
50 | Company name |
PERTAMINA |
approverName |
String |
M |
255 | Approver's name |
Dummy |
approverSignature | String | M | Base64 | ||
status | String | M | 1 | 1 |
Response Structure & Sample
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
responseCode |
String |
M |
2 |
00 |
|
responseMessage |
String |
M |
255 |
Successfully |
Request & Response Payload Sample
Request :
{ "corpname":"PT. PERTAMINA", "approverName":"Sopian", "approverSgnature":"/9j/4AAQSkZJRgABAQAAAQABAAD/7AARRHVja3kAAQAEAAAAPAAA/+EAGEV4aWYAAElJKgAIAAAAAAAA AAAAAAD/4QMraHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIe nJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1Lj MtYzAxMSA2Ni4xNDU2NjEsIDIwMTIvMDIvMDYtMTQ6NTY6MjcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy5 \3My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0 cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOn N0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob 3Rvc2hvcCBDUzYgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjc4OEEyQTI1RDAyNTExRTdBMEFFQzg3OUI2MkJBQjF EIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjc4OEEyQTI2RDAyNTExRTdBMEFFQzg3OUI2MkJBQjFEIj4gPHhtcE1NOkRlcml2ZWRGcm9tI HN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6Nzg4QTJBMjNEMDI1MTFFN0EwQUVDODc5QjYyQkFCMUQiIHN0UmVmOmRvY3VtZW50SU Q9InhtcC5kaWQ6Nzg4QTJBMjREMDI1MTFFN0EwQUVDODc5QjYyQkFCMUQiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC 94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJD RENDg8QEBEQCgwSExIQEw8QEBD/wAALCAJsA4QBAREA/8QAHgAAAgMAAwEBAQAAAAAAAAAAAAUGBwgDBAkCAQr/xAB6EAABAgQEAQk DBgQLDREMBwkBAgMABAUGBwgREiETFTFEZIKiwuEJFFEiNUFhY5EjMnGBFhcYJDhCUrG0tdMzQ1dYYnR2lqGywdHUGSUmNFNWcnV3kpSVl6 Sls9IoNzlGVFVlc5Ojw8QnNkdmZ4OEhfApSIaHRVnk/9oACAEBAAA/APVCCFVd6v3vLCmCJXBCqu9X73lhTBErghVXer97ywpgiVwQqrvV+95YUw RK4IVV3q/e8sKYIlcEKq71fveWFMESuCFVd6v3vLCmCJXBCqu9X73lhTBErghVXer97ywpgiVwQqrvV+95YUwRK4IVV3q/e8sKYIlcEKq71fveWFMESuC FVd6v3vLCmCJXBCqu9X73lhTBErghVXer97ywpgiVwQqrvV+95YUwRK4IVV3q/e8sKYIlcEKq71fveWFMESuCFVd6v3vLCmCJXBCqu9X73lhTBErgh VXer97ywpgiVwQqrvV+95YUwRK4IIIIVV3q/e8sKYIlcEKq71fveWFMESuCFVd6v3vLCmCJXBCqu9X73lhTBErghVXer97ywpgiVwQqrvV+95YUwRK 4IVV3q/e8sKYIlcEKq71fveWFMESuCFVd6v3vLCmCJXBCqu9X73lhTBErghVXer97ywpgiVwQqrvV+95YUwRK4IVV3q/e8sKYIlcEKq71fveWFMESuC FVd6v3vLCmCJXBCqu9X73lhTBErg", "status":"1" }
Normal Response :
{ "responseCode":"00", "responseMessage":"Sukses Insert Data" }
Error Response :
{ "responseCode":"02", "responseMessage":"corpName tidak boleh mengandung . dan spasi" }
List of Error/Response Code
HTTP Status |
Code | Status |
Response Description |
Description |
---|---|---|---|---|
200 | 00 | Success | Success Insert Data | |
200 | 02 | Failed | corpName must not contain . and spaces | |
200 | 02 | Failed | invalid corpname | |
200 | 02 | Failed | Invalid signature format | |
200 | 72 | Failed | Validation Error | |
200 | 73 | Failed | Unauthorised. Please enter your username and password correctly | |
200 | 99 | Failed | General Error |
H. Create NPWP Depositor
Endpoint Description
This endpoint is provided to register the TIN that will be used as the basis for querying the list of collector names.
General Information
HTTP Method |
POST |
---|---|
Path Sandbox |
/v2.0/mpn/createNpwpPenyetor |
Path Production |
/v2.0/mpn/createNpwpPenyetor |
Tipe Format |
JSON |
Authentication | Token & Signature |
Header Request Structure
Key |
Value |
Mandatory |
Lenght |
Description |
---|---|---|---|---|
Content -Type |
String |
M |
|
application/json |
BRISignature | string | M | https://developers.bri.co.id/id/docs/authentication | |
BRITimestamp | string | M | TIMESTAMP (yyyy-MM-dd hh:mm:ss.SSSZ) | |
BRIExternal-Id | string | M | 9 |
Random number from each application is a maximum of 9 digits. Cannot be repeated because of external_id checking) |
Request Structure & Sample
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
corpname |
String |
M |
50 | Company name | PTPERTAMINA |
npwpPenyetor |
String |
M |
16 | Npwp of depositor |
0024191678417999 |
Response Structure & Sample
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
responseCode |
String |
M |
2 |
00 |
|
responseMessage |
String |
M |
255 |
Success |
Request & Response Payload Sample
Request :
{ "corpName":"PTPERTAMINA", "npwpPenyetor":"123457890123456" }
Normal Response :
{ "responseCode":"00", "responseMessage":"Sukses" }
Error Response :
{ "responseCode": "02", "responseMessage": "Data NPWP sudah terdaftar", }
List of Error/Response Code
HTTP Status |
Code | Status |
Response Description |
Description |
---|---|---|---|---|
200 | 00 | Success | Success | |
200 | 01 | Failed | corpName and npwpPetor cannot be empty | |
200 | 01 | Failed | corpName cannot contain special characters | |
200 | 01 | Failed | npwp of depositor must be 16 digits | |
200 | 01 | Failed | The format of npwpPenetor must be numeric | |
200 | 02 | Failed | NPWP data already registered | |
200 | 73 | Failed | Unauthorised. Please enter your username and password correctly | |
200 | 99 | Failed | General Error |
I. Get Report
Endpoint Description
This endpoint is used to generate a list of collectors report.
General Information
HTTP Method |
POST |
---|---|
Path Sandbox |
/v2.0/mpn/getReport |
Path Production |
/v2.0/mpn/getReport |
Tipe Format |
JSON |
Authentication | Token & Signature |
Header Request Structure
Key |
Value |
Mandatory |
Lenght |
Description |
---|---|---|---|---|
Content -Type |
String |
M |
|
application/json |
BRISignature | string | M | https://developers.bri.co.id/id/docs/authentication | |
BRITimestamp | string | M | TIMESTAMP (yyyy-MM-dd hh:mm:ss.SSSZ) | |
BRIExternal-Id | string | M | 9 |
Random number from each application is a maximum of 9 digits. Cannot be repeated because of external_id checking) |
Request Structure & Sample
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
npwp |
String |
M |
16 | Number NPWP | |
startDate |
String |
M |
10 | Start Date |
|
endDate | String | M | 10 | End Date |
Response Structure & Sample
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
responseCode |
String |
M |
2 |
00 |
|
responseMessage |
String |
M |
255 |
Success |
|
responseData | Array Object | C | The contents of this data object array are described in the table below |
Object: responseData
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
npwpPemungut |
String |
M |
16 | 0024191678418000 | |
namaNpwp |
String |
M |
255 | WP BADAN | |
kodeSetoran | String | M | 30 | 127106947370040 | |
kodeMAP | String | M | 10 | 1 | |
jumlahSetoran | String | M | 20 | 100.00 | |
currencySetoran | String | M | 3 | USD | |
uraianPembayaran | String | M | 500 | create | |
kodeObjekPajak | String | M | 18 | ||
nomorSuratKetetapan | String | M | 50 | ||
masaPajak | String | M | 10 | ||
tanggalTrans | String | M | 10 |
Request & Response Payload Sample
Request :
{ "npwp":"0024191678418000", "startDate":"29-12-2022", "endDate":"29-12-2022" }
Normal Response :
{ "responseCode":"00", "responseMessage":"Sukses", "data":[ { "npwpPemungut":"0024191678418000", "namaNpwp":"WP BADAN", "kodeSetoran":"127106947345108", "kodeMAP":"1", "jumlahSetoran":"150.00", "currencySetoran":"USD", "uraianPembayaran":"create", "kodeObjekPajak":"", "nomorSuratKetetapan":"", "masaPajak":"", "tanggalTrans":"29-12-2022" }, { "npwpPemungut":"0024191678418000", "namaNpwp":"WP BADAN", "kodeSetoran":"127106947350020", "kodeMAP":"1", "jumlahSetoran":"100.00", "currencySetoran":"USD", "uraianPembayaran":"createoke", "kodeObjekPajak":"", "nomorSuratKetetapan":"", "masaPajak":"", "tanggalTrans":"29-12-2022" }, { "npwpPemungut":"0024191678418000", "namaNpwp":"WP BADAN", "kodeSetoran":"127106947361155", "kodeMAP":"1", "jumlahSetoran":"100.00", "currencySetoran":"IDR", "uraianPembayaran":"create", "kodeObjekPajak":"", "nomorSuratKetetapan":"", "masaPajak":"", "tanggalTrans":"29-12-2022" }, { "npwpPemungut":"0024191678418000", "namaNpwp":"WP BADAN", "kodeSetoran":"127106947370040", "kodeMAP":"1", "jumlahSetoran":"100.00", "currencySetoran":"USD", "uraianPembayaran":"create", "kodeObjekPajak":"", "nomorSuratKetetapan":"", "masaPajak":"", "tanggalTrans":"29-12-2022" } ] }
Error Response :
{ "responseCode":"01", "responseMessage":"npwp tidak boleh kosong" }
List of Error/Response Code
HTTP Status |
Code | Status |
Response Description |
Description |
---|---|---|---|---|
200 | 00 | Success | Success | |
200 | 01 | Failed | npwp cannot be empty | |
200 | 01 | Failed | npwp must be 16 digits | |
200 | 01 | Failed | The npwp format must be numeric | |
200 | 01 | Failed | startDate and endDate cannot be empty | |
200 | 01 | Failed | StartDate format does not match | |
200 | 01 | Failed | The endDate format does not match | |
200 | 01 | Failed | Dates must be in the same month and year | |
200 | 73 | Failed | Unauthorised. Please enter your username and password correctly | |
200 | 99 | Failed | General Error |
J. Inquiry SSP
Endpoint Description
Service provided to obtain proof of Tax Payment Slip.
General Information
HTTP Method |
POST |
---|---|
Path Sandbox |
/v2.0/mpn/inquirySSP |
Path Production |
/v2.0/mpn/inquirySSP |
Tipe Format |
JSON |
Authentication | Token & Signature |
Header Request Structure
Key |
Value |
Mandatory |
Lenght |
Description |
---|---|---|---|---|
Content -Type |
String |
M |
|
application/json |
BRISignature | string | M | https://developers.bri.co.id/id/docs/authentication | |
BRITimestamp | string | M | TIMESTAMP (yyyy-MM-dd hh:mm:ss.SSSZ) | |
BRIExternal-Id | string | M | 9 |
Random number from each application is a maximum of 9 digits. Cannot be repeated because of external_id checking) |
Request Structure & Sample
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
corpname |
String |
M |
50 | Company name | PTPERTAMINA |
idBilling |
String |
M |
30 | Number biling |
1234567890 |
Response Structure & Sample
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
responseCode |
String |
M |
2 |
00 |
|
responseMessage |
String |
M |
255 |
|
|
responseDesc | String | O | 255 | ||
data | JSON Object | M | |||
file | String | M | Base64 |
Request & Response Payload Sample
Request :
{ "corpname":"PTPERTAMINA", "idBilling":"1234567890" }
Normal Response :
{ "responseCode": "00", "responseMessage": "Success get base64 BPN", "data": { "file": "JVBERi0xLjQKJeLjz9MKMyAwIG9iago8PC9MZW5ndGggOTE2L0ZpbHRlci9GbGF0ZURlY29kZT4+c3RyZWFtCniclVdLl6I4G N3zK77FLGYWTSUhPMIujnSNL4oWnDq9TLU0RQk4hXrmzL+fIA+1u0mZo2D8Qm5u7vdIeDcmiUEQeIRAsjUQfLJc2rSCxPhivJ8vAnPZ8 Wgg04N/Ddc2bfAQhbJrypHFpVka2HMGc9wN6mxyFJF27EGdDn02ZgNi1z6PpcgbMK/tt5iu517mlBgdldY8cL2xXgb+Gqyd+La/JdD2Xwg XV8/24362X8a2eHavInXtgU7TvnRfbKVBmPtT/8XWT9v3f2kcigHJDwZmm4yBhxEkpfHwGUPT+i4xiI2YBz/+1pnx+4SHC1jzxVee/JG8Sb9n TShcYWI5NW6W6Qyg9EPQzSKZQRSEwXq24jyEMHjka/7rCShxTU+T9SJYBWEi0Xk4whpZJmXgMnI/6CycPoVBPBvhSSgxZSS7DA+Q W5kb2JqCjIgMCBvYmoKPDwvVHlwZS9Gb250L1N1YnR5cGUvVHlwZTEvQmFzZUZvbnQvSGVsdmV0aWNhLU9ibGlxdWUvRW5jb2Rp bmcvV2luQW5zaUVuY29kaW5nPj4KZW5kb2JqCjQgMCBvYmoKPDwvVHlwZS9QYWdlcy9Db3VudCAxL0tpZHNbNSAwIFJdL0lUWFQo NS4wLjIpPj4KZW5kb2JqCjYgMCBvYmoKPDwvVHlwZS9DYXRhbG9nL1BhZ2VzIDQgMCBSPj4KZW5kb2JqCjcgMCBvYmoKPDwvUHJv ZHVjZXIoaVRleHRTaGFycCA1LjAuMiBcKGNcKSAxVDNYVCBCVkJBKS9DcmVhdGlvbkRhdGUoRDoyMDI0MDMxMzExMzIxNSswNycwM CcpL01vZERhdGUoRDoyMDI0MDMxMzExMzIxNSswNycwMCcpPj4KZW5kb2JqCnhyZWYKMCA4CjAwMDAwMDAwMDAgNjU1MzUgZi AKMDAwMDAwMTE2NCAwMDAwMCBuIAowMDAwMDAxMjUyIDAwMDAwIG4gCjAwMDAwMDAwMTUgMDAwMDAgbiAKMDAwMDAwM TM0OCAwMDAwMCBuIAowMDAwMDAwOTk4IDAwMDAwIG4gCjAwMDAwMDE0MTEgMDAwMDAgbiAKMDAwMDAwMTQ1NiAwMDAwM CBuIAp0cmFpbGVyCjw8L1NpemUgOC9Sb290IDYgMCBSL0luZm8gNyAwIFIvSUQgWzxlZjgzZGFlOGRkMmYwZjM5NTcxMDRjYmQ2Mz IxN2JlNj48Yjc0ZDk2NTU0YjZkMTYyODEzYTVhNmI3YzE2MjQ5MWE+XT4+CnN0YXJ0eHJlZgoxNTkxCiUlRU9GCg==" } }
Error Response :
{ "responseCode":"02", "responseMessage":"ID Billing tidak ditemukan" }
List of Error/Response Code
HTTP Status |
Code | Status |
Response Description |
Description |
---|---|---|---|---|
200 | 00 | Success | Success | |
200 | 02 | Failed | The following properties are invalid format: corpname, | |
200 | 02 | Failed | The following properties are invalid format: idBilling, | |
200 | 02 | Failed | Billing ID not found | |
200 | 73 | Failed | Unauthorised. Please enter your username and password correctly | |
200 | 99 | Failed | General Error |
K. Inquiry BPN
Endpoint Description
Service provided to obtain State Revenue Receipt for the billing code that has been paid.
General Information
HTTP Method |
POST |
---|---|
Path Sandbox |
/v2.0/mpn/inquiryBPN |
Path Production |
/v2.0/mpn/inquiryBPN |
Tipe Format |
JSON |
Authentication | Token & Signature |
Header Request Structure
Key |
Value |
Mandatory |
Lenght |
Description |
---|---|---|---|---|
Content -Type |
String |
M |
|
application/json |
BRISignature | string | M | https://developers.bri.co.id/id/docs/authentication | |
BRITimestamp | string | M | TIMESTAMP (yyyy-MM-dd hh:mm:ss.SSSZ) | |
BRIExternal-Id | string | M | 9 |
Random number from each application is a maximum of 9 digits. Cannot be repeated because of external_id checking) |
Request Structure & Sample
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
corpname |
String |
M |
50 | Company name | PTPERTAMINA |
idBilling |
String |
M |
30 | Number biling |
1234567890 |
Response Structure & Sample
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
responseCode |
String |
M |
2 |
00 |
|
responseMessage |
String |
M |
255 |
|
|
responseDesc | String | O | 255 | ||
data | JSON Object | M | |||
file | String | M | Base64 |
Request & Response Payload Sample
Request :
{ "corpname":"PTPERTAMINA", "idBilling":"1234567890" }
Normal Response :
{ "responseCode": "00", "responseMessage": "Success get base64 BPN", "data": { "file": "JVBERi0xLjQKJeLjz9MKMyAwIG9iago8PC9MZW5ndGggOTE2L0ZpbHRlci9GbGF0ZURlY29kZT4+c3RyZWFtCniclVdLl6I4G N3zK77FLGYWTSUhPMIujnSNL4oWnDq9TLU0RQk4hXrmzL+fIA+1u0mZo2D8Qm5u7vdIeDcmiUEQeIRAsjUQfLJc2rSCxPhivJ8vAnPZ8 Wgg04N/Ddc2bfAQhbJrypHFpVka2HMGc9wN6mxyFJF27EGdDn02ZgNi1z6PpcgbMK/tt5iu517mlBgdldY8cL2xXgb+Gqyd+La/JdD2Xwg XV8/24362X8a2eHavInXtgU7TvnRfbKVBmPtT/8XWT9v3f2kcigHJDwZmm4yBhxEkpfHwGUPT+i4xiI2YBz/+1pnx+4SHC1jzxVee/JG8Sb9n TShcYWI5NW6W6Qyg9EPQzSKZQRSEwXq24jyEMHjka/7rCShxTU+T9SJYBWEi0Xk4whpZJmXgMnI/6CycPoVBPBvhSSgxZSS7DA+Q W5kb2JqCjIgMCBvYmoKPDwvVHlwZS9Gb250L1N1YnR5cGUvVHlwZTEvQmFzZUZvbnQvSGVsdmV0aWNhLU9ibGlxdWUvRW5jb2Rp bmcvV2luQW5zaUVuY29kaW5nPj4KZW5kb2JqCjQgMCBvYmoKPDwvVHlwZS9QYWdlcy9Db3VudCAxL0tpZHNbNSAwIFJdL0lUWFQo NS4wLjIpPj4KZW5kb2JqCjYgMCBvYmoKPDwvVHlwZS9DYXRhbG9nL1BhZ2VzIDQgMCBSPj4KZW5kb2JqCjcgMCBvYmoKPDwvUHJv ZHVjZXIoaVRleHRTaGFycCA1LjAuMiBcKGNcKSAxVDNYVCBCVkJBKS9DcmVhdGlvbkRhdGUoRDoyMDI0MDMxMzExMzIxNSswNycwM CcpL01vZERhdGUoRDoyMDI0MDMxMzExMzIxNSswNycwMCcpPj4KZW5kb2JqCnhyZWYKMCA4CjAwMDAwMDAwMDAgNjU1MzUgZi AKMDAwMDAwMTE2NCAwMDAwMCBuIAowMDAwMDAxMjUyIDAwMDAwIG4gCjAwMDAwMDAwMTUgMDAwMDAgbiAKMDAwMDAwM TM0OCAwMDAwMCBuIAowMDAwMDAwOTk4IDAwMDAwIG4gCjAwMDAwMDE0MTEgMDAwMDAgbiAKMDAwMDAwMTQ1NiAwMDAwM CBuIAp0cmFpbGVyCjw8L1NpemUgOC9Sb290IDYgMCBSL0luZm8gNyAwIFIvSUQgWzxlZjgzZGFlOGRkMmYwZjM5NTcxMDRjYmQ2Mz IxN2JlNj48Yjc0ZDk2NTU0YjZkMTYyODEzYTVhNmI3YzE2MjQ5MWE+XT4+CnN0YXJ0eHJlZgoxNTkxCiUlRU9GCg==" } }
Error Response :
{ "responseCode":"02", "responseMessage":"ID Billing tidak ditemukan" }
List of Error/Response Code
HTTP Status |
Code | Status |
Response Description |
Description |
---|---|---|---|---|
200 | 00 | Success | Success | |
200 | 02 | Failed | The following properties are invalid format: corpname, | |
200 | 02 | Failed | The following properties are invalid format: idBilling, | |
200 | 02 | Failed | Billing ID not found | |
200 | 73 | Failed | Unauthorised. Please enter your username and password correctly | |
200 | 99 | Failed | General Error |