Starting from 1 November 2023, this product will no longer receive support for development. Users can utilize SNAP BI version of the product here

What is BRIVA?

Consumers are adopting digital financial services more than before, putting digital payment on the rise. We no longer need to go to bank offices, ATM, or wait for hours to complete transactions, now all are digital and instantly done within a few clicks. From many digital payment methods offered, Virtual Account is the easiest.

Virtual Account is an identification number generated by a bank on behalf of a company to be given to the customers in order to make transactions online. BRI offers this payment feature through BRI Virtual Account or known as BRIVA.

You can implement BRIVA features into your digital business through BRIVA API in BRIAPI. With BRIVA API, your customers can utilize BRI Virtual Account functions for payments in your digital business app for simpler, easier, and faster transactions.

BRIVA API has more advantages than the manual bank transfer. Let’s say, if you run an e-commerce website, BRIVA API will help you to detect and verify payments automatically in real-time by the system. Your customers are no longer need to confirm or share proof of payments manually. With this API, all transactions will be done within a few clicks!

What are the uses of BRIVA API?

If your digital business is engaged in e-commerce or marketplace, using the BRIVA API will facilitate all transactions that occur. This convenience will be felt by both business owners and consumers. Business owners will get information about any transactions that occur more easily and quickly. For example, the most basic is information about incoming funds and outgoing funds. Meanwhile, from the consumer side, the use of the BRIVA API will speed up the transaction process, because after the transfer there is no need to confirm the payment through sending the proof.

API Information

Title BRIVA
Version v1.0
URL Sandbox https://sandbox.partner.api.bri.co.id/v1/briva
URL Production https://partner.api.bri.co.id/v1/briva

Version Control

Doc Version API Version Date Link to Document Description
v1.0 v1.0 1 February 2019 This page Initial version
v1.1 v1.0 30 July 2021 This page
  • Added new validation for an expiration date of more than 3 months
  • Added new validation at each endpoint
  • Update the Amount data type, from decimal to integer
  • Added new Response Code for validating Amount (Check here)
v1.2 v1.1 12 Juni 2023 This Dokument Changing expired date validation from 3 months to 60 months

 

Product Description

This API allows you to use the BRI virtual account service (BRIVA) in order to make any financial activities easier, simpler and faster. This API also has more advantages compared to the manual transfer, for instance, you do not need to confirm the payment manually because it will be verified automatically.

Flow API

A. Create

Endpoint Description

This endpoint is used to create a new BRI virtual account.

General Information

HTTP Method POST
Path /v1/briva
Tipe Format JSON
Authentication OAuth 2.0 with Access Token

Header Structure

Key

Value

Mandatory

Length

Description

Example

Authorization

Bearer {token}

Yes

 

Access Token

 

BRI-Timestamp

 

Yes

 

Timestamp in ISO8601 format

 

BRI-Signature

 

Yes

64

Signature

 

Content-Type

application/json

Yes

 

 

 

Request Structure

Field

Data Type

Max Char

Mandatory

Description

institutionCode

String

 

Yes

This institution code will be given by BRI

brivaNo

Numeric

5

Yes

BRIVA number unique to your institution

custCode

String

13

Yes

Customer code generated by you, we recommend to use only 10 digits to enable pay BRIVA from another bank since the other 3 digits are needed for bank code

nama

String

40

Yes

Customer name for that BRIVA account number

amount

Numeric

 

Yes

Amount for that BRIVA account

 

Note: There cannot be a dot (.) or a comma (,) in the amount field

keterangan

String

 

Yes

Description for BRIVA

expiredDate

DateTime

 

Yes

Expiration date for that BRIVA account, format: yyyy-MM-dd HH:mm:ss

 

Response Structure

Field

Data Type

Max Char

Mandatory

Description

status

bool

5

Yes

True / False

responseDescription

String

 

Yes

Response Description

responseCode

String

 

Yes

Response Code

statusBayar

string

 

Yes

Payment status, Y means it is already paid and N means it is not already paid

institutionCode

String

 

Yes

This institution code will be given by BRI

brivaNo

Numeric

5

Yes

BRIVA number unique to your institution

custCode

String

13

Yes

Customer code generated by you, we recommend to use only 10 digits to enable pay BRIVA from another bank since the other 3 digits are needed for bank code

nama

String

40

Yes

Customer name for that BRIVA account number

amount

Numeric

 

Yes

Amount for that BRIVA account

 

Note: There cannot be a dot (.) or a comma (,) in the amount field

keterangan

String

 

Yes

Description for BRIVA

expiredDate

DateTime

 

Yes

Expiration date for that BRIVA account, format: yyyy-MM-dd HH:mm:ss

Request & Response Payload Sample

Request :

curl --location --request POST 'https://sandbox.partner.api.bri.co.id/v1/briva' \
--header 'Content-Type: application/json' \
--header 'BRI-Timestamp: 2021-07-07T08:05:09.417Z' \
--header 'BRI-Signature: aNyXGyP26xxxx2be+dysMQJjJevkZua0Bjo=' \
--header 'Authorization: Bearer xMxxlgcJtlbmOH3otgev8SXZX' \
--data-raw '{
        "institutionCode": "J104408",
        "brivaNo": "77777",
        "custCode": "1255",
        "nama": "John Doe",
        "amount": "20000",
        "keterangan": "",
        "expiredDate": "2019-10-29 09:57:26"
}'

Normal Response :

{
    "status": true,
    "responseDescription": "Success",
    "responseCode": "00",
    "data": {
        "institutionCode": "J104408",
        "brivaNo": "77777",
        "custCode": "123456789115",
        "nama": "John Doe",
        "amount": "100000",
        "keterangan": "BRIVA Testing",
        "expiredDate": "2019-02-27 23:59:00"
    }
}   

Error Response :

{
    "status": false,
    "errDesc": "Data Customer Sudah Ada",
    "responseCode": "12",
    "data": {
        "institutionCode": "J104408",
        "brivaNo": "77777",
        "custCode": "1290055",
        "nama": "John Doe",
        "amount": "20000",
        "keterangan": "",
        "expiredDate": "2019-10-29 09:57:26"
    }
}

B. Get

Endpoint Description

This endpoint is used to get the virtual account information that has been created.

General Information

HTTP Method GET
Path /v1/briva/{{INSTITUTION_CODE}}/{{BRIVA_NO}}/{{CUSTOMER_CODE}
Tipe Format JSON
Authentication OAuth 2.0 with Access Token

Header Structure

Key

Value

Mandatory

Length

Description

Example

Authorization

Bearer {token}

Yes

 

Access Token

 

BRI-Timestamp

 

Yes

 

Timestamp in ISO8601 format

 

BRI-Signature

 

Yes

64

Signature

 

Content-Type

application/json

Yes

 

 

 

Query Param Structure

Sample of HTTP request:

GET https://sandbox.partner.api.bri.co.id/v1/briva/{{INSTITUTION_CODE}}/{{BRIVA_NO}}/{{CUSTOMER_CODE}}

Request Structure

Field

Data Type

Max Char

Mandatory

Description

INSTITUTION_CODE

String

 

Yes

This institution code will be given by BRI

BRIVA_NO

Numeric

5

Yes

Briva number unique to your institution

CUSTOMER_CODE

String

13

Yes

Customer code generated by you, we recommend to use only 10 digits to enable pay BRIVA from another bank since the other 3 digits are needed for bank code

Response Structure

Field

Data Type

Max Char

Mandatory

Description

status

bool

5

Yes

True / False

responseDescription

String

 

Yes

Response Description

responseCode

String

 

Yes

Response Code

data

Array

 

Yes

Contains empty if the response error is "Data":{} 

institutionCode

String

 

Yes

This institution code will be given by BRI

brivaNo

Numeric

5

Yes

BRIVA number unique to your institution

custCode

String

13

Yes

Customer code generated by you, we recommend to use only 10 digits to enable pay BRIVA from another bank since the other 3 digits are needed for bank code

nama

String

40

Yes

Customer name for that BRIVA account number

amount

Numeric

 

Yes

Amount for that BRIVA account

 

Note: There cannot be a dot (.) or a comma (,) in the amount field

keterangan

String

 

Yes

Description for BRIVA

statusBayar

string

 

Yes

Payment status, Y means it is already paid and N means it is not already paid

lastUpdate

DateTime

 

Yes

Last update for data VA

expiredDate

DateTime

 

Yes

Expiration date for that BRIVA account, format: yyyy-MM-dd HH:mm:ss

Request & Response Payload Sample

Request :


curl --location --request GET 'https://sandbox.partner.api.bri.co.id/v1/briva/J104408/77777/1290051235' \
--header 'BRI-Timestamp: 2021-07-07T08:12:33.710Z' \
--header 'BRI-Signature: zKxxxxvPC01UlCbN1/TXlGKMRHxWfE8Qag=' \
--header 'Authorization: Bearer xMbxPT4lgcJxxxH3otgev8SXZX'

Normal Response :

{
    "status": true,
    "responseDescription": "Success",
    "responseCode": "00",
    "data": {
        "institutionCode": "J104408",
        "BrivaNo": "77777",
        "CustCode": "1290051235",
        "Nama": "John Doe",
        "Amount": "20000",
        "Keterangan": "",
        "statusBayar": "N",
        "expiredDate": "2019-10-29 09:57:26",
        "lastUpdate": null
    }
}  

Error Response :

{
    "status": false,
    "errDesc": "Data Customer Tidak Ditemukan",
    "responseCode": "14",
    "data": {
        "institutionCode": "J104408",
        "brivaNo": "77777",
        "custCode": "1255"
    }
}

C. Get Status

Endpoint Description

All BRIVA accounts have payment status. This endpoint is used to get the payment status from existing BRIVA accounts.

General Information

HTTP Method GET
Path /v1/briva/status/{{INSTITUTION_CODE}}/{{BRIVA_NO}}/{{CUSTOMER_CODE}}
Tipe Format JSON
Authentication OAuth 2.0 with Access Token

Header Structure

Key

Value

Mandatory

Length

Description

Example

Authorization

Bearer {token}

Yes

 

Access Token

 

BRI-Timestamp

 

Yes

 

Timestamp in ISO8601 format

 

BRI-Signature

 

Yes

64

Signature

 

Content-Type

application/json

Yes

 

 

 

Query Param Structure

Sample of HTTP request:

GET https://sandbox.partner.api.bri.co.id/v1/briva/status/{{INSTITUTION_CODE}}/{{BRIVA_NO}}/{{CUSTOMER_CODE}}

Request Structure

Field

Data Type

Max Char

Mandatory

Description

INSTITUTION_CODE

String

 

Yes

This institution code will be given by BRI

BRIVA_NO

Numeric

5

Yes

BRIVA number unique to your institution

CUSTOMER_CODE

String

13

Yes

Customer code generated by you, we recommend to use only 10 digits to enable pay BRIVA from another bank since the other 3 digits are needed for bank code

Response Structure

Field

Data Type

Max Char

Mandatory

Description

status

bool

5

Yes

True / False

responseDescription

String

 

Yes

Response Description

responseCode

String

 

Yes

Response Code

data

Array

 

Yes

Contains empty if the response error is "Data":{} 

statusBayar

string

 

Yes

Payment status, Y means it is already paid and N means it is not already paid

Request & Response Payload Sample

Request :


curl --location --request GET 'https://sandbox.partner.api.bri.co.id/v1/briva/status/J104408/77777/63785523' \
--header 'BRI-Timestamp: 2021-07-13T05:10:06.666Z' \
--header 'BRI-Signature: O6yBbCZiXClkJ8E8shRNX7H9TZhqGiKy0PMW33+geno=' \ 
--header 'Authorization: Bearer b7G5hshkiLVwXoADc9GDvn39wjPP' 

Normal Response :

{
    "status": true,
    "responseDescription": "Success",
    "responseCode": "00",
    "data": {
        "statusBayar": "N"
    }
  }

Error Response :

{
    "status": false,
    "errDesc": "Gagal mendapatkan data status bayar",
    "responseCode": "21"
} 

D. Update Status

Endpoint Description

This endpoint is used to manage the payment status of existing BRIVA accounts.

General Information

HTTP Method PUT
Path /v1/briva/status
Tipe Format JSON
Authentication OAuth 2.0 with Access Token

Header Structure

Key

Value

Mandatory

Length

Description

Example

Authorization

Bearer {token}

Yes

 

Access Token

 

BRI-Timestamp

 

Yes

 

Timestamp in ISO8601 format

 

BRI-Signature

 

Yes

64

Signature

 

Content-Type

application/json

Yes

 

 

 

Request Structure

Field

Data Type

Max Char

Mandatory

Description

institutionCode

String

 

Yes

This institution code will be given by BRI

brivaNo

Numeric

5

Yes

BRIVA number unique to your institution

custCode

String

13

Yes

Customer code generated by you, we recommend to use only 10 digits to enable pay BRIVA from another bank since the other 3 digits are needed for bank code

statusBayar

string

T

Yes

Payment status, Y means it is already paid and N means it is not already paid

Response Structure

Field

Data Type

Max Char

Mandatory

Description

status

bool

5

Yes

True / False

responseDescription

String

 

Yes

Response Description

responseCode

String

 

Yes

Response Code

data

Array

 

Yes

Contains empty if the response error is "Data":{} 

institutionCode

String

 

Yes

This institution code will be given by BRI

brivaNo

Numeric

5

Yes

BRIVA number unique to your institution

custCode

String

13

Yes

Customer code generated by you, we recommend to use only 10 digits to enable pay BRIVA from another bank since the other 3 digits are needed for bank code

statusBayar

string

 

Yes

Payment status, Y means it is already paid and N means it is not already paid

Request & Response Payload Sample

Request :


curl --location --request PUT 'https://sandbox.partner.api.bri.co.id/v1/briva/status' \
--header 'Content-Type: application/json' \
--header 'BRI-Timestamp: 2021-07-07T08:14:37.388Z' \
--header 'BRI-Signature: ESf8FyaDAuvml+6bYoWOfUyUNGGuPoe10slCAhOavrw=' \
--header 'Authorization: Bearer xMbxPT4lgcJtlbmOH3otgev8SXZX' \
--data-raw '{
        "institutionCode": "J104408",
        "brivaNo": "77777",
        "custCode": "1255",
        "statusBayar": "N"
}'

Normal Response :

{
    "status": true,
    "responseDescription": "Success",
    "responseCode": "00",
    "data": {
        "institutionCode": "J104408",
        "brivaNo": "77777",
        "custCode": "123456789115",
        "statusBayar": "Y"
    }
}

Error Response :

{
    "status": false,
    "errDesc": "Data Customer Tidak Ditemukan",
    "responseCode": "14",
    "data": {
        "institutionCode": "J104408",
        "brivaNo": "77777",
        "custCode": "1255",
        "statusBayar": "N"
    }
}    

E. Update

Endpoint Description

This endpoint is used to update existing BRIVA account details.

General Information

HTTP Method PUT
Path /v1/briva
Tipe Format JSON
Authentication OAuth 2.0 with Access Token

Header Structure

Key

Value

Mandatory

Length

Description

Example

Authorization

Bearer {token}

Yes

 

Access Token

 

BRI-Timestamp

 

Yes

 

Timestamp in ISO8601 format

 

BRI-Signature

 

Yes

64

Signature

 

Content-Type

application/json

Yes

 

 

 

Request Structure

Field

Data Type

Max Char

Mandatory

Description

institutionCode

String

 

Yes

This institution code will be given by BRI

brivaNo

Numeric

5

Yes

BRIVA number unique to your institution

custCode

String

13

Yes

Customer code

nama

String

40

Yes

Customer name for that BRIVA account number

amount

Numeric

 

Yes

Amount for that BRIVA account

 

Note: There cannot be a dot (.) or a comma (,) in the amount field

keterangan

String

 

Yes

Description for BRIVA

expiredDate

DateTime

 

Yes

Expiration date for that BRIVA account, format: yyyy-MM-dd HH:mm:ss

Response Structure

Field

Data Type

Max Char

Mandatory

Description

status

bool

5

Yes

True / False

responseDescription

String

 

Yes

Response Description

responseCode

String

 

Yes

Response Code

data

Array

 

Yes

Contains empty if the response error is "Data":{} 

institutionCode

String

 

Yes

This institution code will be given by BRI

brivaNo

Numeric

5

Yes

BRIVA number unique to your institution

custCode

String

13

Yes

Customer code generated by you, we recommend to use only 10 digits to enable pay BRIVA from another bank since the other 3 digits are needed for bank code

nama

String

40

Yes

Customer name for that BRIVA account number

amount

Numeric

 

Yes

Amount for that BRIVA account

 

Note: There cannot be a dot (.) or a comma (,) in the amount field

keterangan

String

 

Yes

Description for BRIVA

expiredDate

DateTime

 

Yes

Expiration date for that BRIVA account, format: yyyy-MM-dd HH:mm:ss

Request & Response Payload Sample

Request :


curl --location --request PUT 'https://sandbox.partner.api.bri.co.id/v1/briva' \
--header 'Content-Type: application/json' \
--header 'BRI-Timestamp: 2021-07-07T08:15:29.391Z' \
--header 'BRI-Signature: 0YWMXx6vEKwMm4V+xxxxxUPSsDJrPKlmSffL/OK74=' \
--header 'Authorization: Bearer xMbxPT4lgxxxxxxOH3otgev8SXZX' \
--data-raw '{
  "institutionCode": "J104408",
  "brivaNo": "77777",
  "custCode": "1290051235",
  "nama": "John Doe",
  "amount": "1000000",
  "keterangan": "",
  "expiredDate": "2017-09-10 09:57:26"
}'

Normal Response :

{
    "status": true,
    "responseDescription": "Success",
    "responseCode": "00",
    "data": {
        "institutionCode": "J104408",
        "brivaNo": "77777",
        "custCode": "123456789115",
        "nama": "John Doe",
        "amount": "1000000",
        "keterangan": "BRIVA Testing",
        "expiredDate": "2020-03-10 23:59:00"
    }
  }

Error Response :

{
    "status": false,
    "errDesc": "Data Customer Tidak Ditemukan",
    "responseCode": "14",
    "data": {
        "institutionCode": "J104408",
        "brivaNo": "77777",
        "custCode": "12900512351",
        "nama": "John Doe",
        "amount": "1000000",
        "keterangan": "",
        "expiredDate": "2017-09-10 09:57:26"
    }
}

F. Delete

Endpoint Description

This endpoint is used to delete existing BRIVA data

General Information

HTTP Method Delete
Path

/v1/briva

Tipe Format Text/plain
Authentication OAuth 2.0 with Access Token

Header Structure

Key

Value

Mandatory

Length

Description

Example

Authorization

Bearer {token}

Yes

 

Access Token

 

BRI-Timestamp

 

Yes

 

Timestamp in ISO8601 format

 

BRI-Signature

 

Yes

64

Signature

 

Content-Type

Text/plain

Yes

 

 

 

Request Structure

Field

Data Type

Max Char

Mandatory

Description

institutionCode

String

 

Yes

This institution code will be given by BRI

brivaNo

Numeric

5

Yes

Briva number unique to your institution

custCode

String

13

Yes

Customer code generated by you, we recommend to use only 10 digits to enable pay BRIVA from another bank since the other 3 digits are needed for bank code

Response Structure

Field

Data Type

Max Char

Mandatory

Description

status

bool

5

Yes

True / False

responseDescription

String

 

Yes

Response Description

responseCode

String

 

Yes

Response Code

data

Array

 

Yes

Contains empty if the response error is "Data":{} 

institutionCode

String

 

Yes

This institution code will be given by BRI

brivaNo

Numeric

5

Yes

BRIVA number unique to your institution

custCode

String

13

Yes

Customer code generated by you, we recommend to use only 10 digits to enable pay BRIVA from another bank since the other 3 digits are needed for bank code

Request & Response Payload Sample

Request :


curl --location --request DELETE 'https://sandbox.partner.api.bri.co.id/v1/briva' \
--header 'BRI-Timestamp: 2021-07-07T08:16:08.783Z' \
--header 'BRI-Signature: U6g456rsQ3xxxxxe/AHo1Xi+17P7i8PCYv+4eav9OIE=' \
--header 'Authorization: Bearer xMbxPT4lgcJtlbmxxxxxx8SXZX' \
--header 'Content-Type: text/plain' \
--data-raw 'institutionCode=J104408&brivaNo=77777&custCode=1255' 

Normal Response :

{
    "status": true,
    "responseDescription": "Success",
    "responseCode": "00",
    "data": {
        "institutionCode": "J104408",
        "brivaNo": "77777",
        "custCode": "1255"
    }
}

Error Response :

{
    "status": false,
    "errDesc": "Institution Code Tidak Boleh Kosong",
    "responseCode": "03",
    "data": { "{\n____\"institutionCode\":\"J104408\",\n____\"brivaNo\":\"77777\",\n____\"custCode\ ":\"\"\n}": ""
    }
}

G. Get Report

Endpoint Description

This endpoint is used to get the transaction history of all BRIVA accounts registered to your BRIVA number.

General Information

HTTP Method GET
Path

/v1/briva/report/{{INSTITUTION_CODE}}/{{BRIVA_NO}}/{{START_DATE}}/

{{END_DATE}}

Tipe Format JSON
Authentication OAuth 2.0 with Access Token

Header Structure

Key

Value

Mandatory

Length

Description

Example

Authorization

Bearer {token}

Yes

 

Access Token

 

BRI-Timestamp

 

Yes

 

Timestamp in ISO8601 format

 

BRI-Signature

 

Yes

64

Signature

 

Content-Type

application/json

Yes

 

 

 

Query Param Structure

Sample of HTTP request:

GET https://sandbox.partner.api.bri.co.id/v1/briva/report_time/{{INSTITUTION_CODE}}/{{BRIVA_NO}}/{{START_DATE}}/{{END_DATE}}

Request Structure

Field

Data Type

Max Char

Mandatory

Description

INSTITUTION_CODE

String

 

Yes

This institution code will be given by BRI

BRIVA_NO

Numeric

5

Yes

Briva number unique to your institution

START_DATE

Date

8

Yes

Start date, format: yyyyMMdd

END_DATE

Date

8

Yes

End date, format: yyyyMMdd

Response Structure

Field

Data Type

Max Char

Mandatory

Description

status

bool

5

Yes

True / False

responseDescription

String

 

Yes

Response Description

responseCode

String

 

Yes

Response Code

data

Array

 

Yes

Contains empty if the response error is "Data":{} 

brivaNo

Numeric

5

Yes

BRIVA number unique to your institution

custCode

String

13

Yes

Customer code generated by you, we recommend to use only 10 digits to enable pay BRIVA from another bank since the other 3 digits are needed for bank code

nama

String

40

Yes

Customer name for that BRIVA account number

amount

Numeric

 

Yes

Amount for that BRIVA account

 

Note: There cannot be a dot (.) or a comma (,) in the amount field

keterangan

String

 

Yes

Description for BRIVA

paymentDate

Date

8

Yes

Payment date, format: yyyy-MM-dd HH:MM:SS.fff

tellerid

   

Yes

Internal teller id BRI

no_rek

   

Yes

Current Account registered in corporate code 

startTime

Date

8

Yes

Start date, format: yyyy-MM-dd

endTime

Date

8

Yes

End date, format: yyyy-MM-dd

Request & Response Payload Sample

Request :


curl --location --request GET 'https://sandbox.partner.api.bri.co.id/v1/briva/report/J104408/77777/20210629/20210629' \
--header 'BRI-Timestamp: 2021-07-07T08:17:07.607Z' \
--header 'BRI-Signature: hBy3cdCLC9T7UuB5VlLgkuwJQB2zbJOE+IyKxxxxxx=' \
--header 'Authorization: Bearer xMbxPT4lgcJtlbmOHxxxxxxx8SXZX'

Normal Response :

{
    "status": true,
    "responseDescription": "Success",
    "responseCode": "00",
    "data": [
        {
            "brivaNo": "77777",
            "custCode": "2105310010",
            "nama": "John Doe",
            "keterangan": "",
            "amount": "729688",
            "paymentDate": "2021-06-29 07:41:31.000",
            "tellerid": "1624927291049",
            "no_rek": "39101000322990"
        }
    ]
}

Error Response :

{
    "status": false,
    "responseDescription": "Report briva kosong atau tidak ditemukan",
    "responseCode": "41"
}

{
    "status": false,
    "errDesc": "Format startTime atau endTime salah, harusnya Ymd",
    "responseCode": "20",
    "data": {
        "institutionCode": "J104408",
        "brivaNo": "77777",
        "startTime": "20210629",
        "endTime": "20210632"
    }
}

H. Get Report Time

Endpoint Description

This endpoint is used to get the transaction history of all BRIVA accounts registered to your BRIVA number at a certain time.

General Information

HTTP Method GET
Path

/v1/briva/report_time/{{INSTITUTION_CODE}}/{{BRIVA_NO}}/

{{START_DATE}}/{{START_TIME}}/{{END_DATE}}/{{END_TIME}}

Tipe Format JSON
Authentication OAuth 2.0 with Access Token

Header Structure

Key

Value

Mandatory

Length

Description

Example

Authorization

Bearer {token}

Yes

 

Access Token

 

BRI-Timestamp

 

Yes

 

Timestamp in ISO8601 format

 

BRI-Signature

 

Yes

64

Signature

 

Content-Type

application/json

Yes

 

 

 

Query Param Structure

Sample of HTTP request:

GET https://sandbox.partner.api.bri.co.id/v1/briva/report_time/{{INSTITUTION_CODE}}/{{BRIVA_NO}}/{{START_DATE}}/{{START_TIME}}/{{END_DATE}}/{{END_TIME}}

Request Structure

Field

Data Type

Max Char

Mandatory

Description

INSTITUTION_CODE

String

 

Yes

This institution code will be given by BRI

BRIVA_NO

Numeric

5

Yes

Briva number unique to your institution

START_DATE

Date

8

Yes

Start date, format: yyyy-MM-dd

START_TIME

Date

4

Yes

Start Time, format: HH:MM

END_DATE

Date

8

Yes

End date, format: yyyy-MM-dd

END_TIME

Date

4

Yes

End time, format: HH:MM

Response Structure

Field

Data Type

Max Char

Mandatory

Description

status

bool

5

Yes

True / False

responseDescription

String

 

Yes

Response Description

responseCode

String

 

Yes

Response Code

data

Array

 

Yes

Contains empty if the response error is "Data":{} 

brivaNo

Numeric

5

Yes

BRIVA number unique to your institution

custCode

String

13

Yes

Customer code generated by you, we recommend to use only 10 digits to enable pay BRIVA from another bank since the other 3 digits are needed for bank code

nama

String

40

Yes

Customer name for that BRIVA account number

amount

Numeric

 

Yes

Amount for that BRIVA account

 

Note: There cannot be a dot (.) or a comma (,) in the amount field

keterangan

String

 

Yes

Description for BRIVA

paymentDate

Date

8

Yes

Waktu pembayaran, format: yyyy-MM-dd HH:MM:SS.fff

tellerid

   

Yes

Internal teller id BRI

no_rek

   

Yes

Current Account registered in corporate code 

trxID

   

 

Transaction ID from BRI

channel

   

 

Payment channel for BRIVA number

startTime

Date

8

Yes

Start date, format: yyyy-MM-dd

endTime

Date

8

Yes

End date, format: yyyy-MM-dd

Request & Response Payload Sample

Request :


curl --location --request GET 'https://sandbox.partner.api.bri.co.id/v1/briva/report_time/J104408/77777/2021-06-14/05:00/2021-06-14/20:00' \
--header 'BRI-Timestamp: 2021-07-07T08:17:54.434Z' \
--header 'BRI-Signature: Q8svcZuANMo8voNxxxxxxReUiPy2Qe8=' \
--header 'Authorization: Bearer xMbxPT4lgcJtlbmOxxxxxxXZX'

Normal Response :

{
    "status": true,
    "responseDescription": "Success",
    "responseCode": "00",
    "data": [
        {
            "brivaNo": "77777",
            "custCode": "7629378614",
            "nama": "John Doe",
            "keterangan": "",
            "amount": "96140",
            "paymentDate": "2021-06-14 10:20:24.000",
            "tellerid": "1623640824274",
            "no_rek": "39101000322990",
            "trxID": "2118200000020824274",
            "channel": "IBNK"
        }
    ]
}

Error Response :

{
    "status": false,
    "responseDescription": "Report briva kosong atau tidak ditemukan",
    "responseCode": "41"
}

I. Error Codes

Code Code Description

00

Success

01

No Briva Tidak Boleh Kosong

02

Customer Code Tidak Boleh Kosong

03

Institution Code Tidak Boleh Kosong

05

Institution Code Tidak Diijinkan Mengakses Nomor Briva

10

Customer Code Tidak Boleh Lebih Dari 13 Karakter

10

Nama Tidak Boleh Kosong

10

Nama Tidak Boleh Lebih Dari 40 Karakter

10

Keterangan Tidak Boleh Lebih Dari 40 Karakter

10

Status Bayar Tidak Boleh Kosong

11

Customer Code Harus Numeric

11

Amount Harus Numeric

11

Amount Tidak Boleh Kosong

11

Open payment, amount tidak boleh kosong

11

Close payment, amount tidak boleh kosong

11

Amount Harus Integer (Tidak Boleh Decimal)

12

Expired date tidak boleh lebih dari 60 month

12

Expired date tidak boleh kurang dari datetime hari ini

13

Data Customer Sudah Ada

14

Data Customer Tidak Ditemukan

15

Gagal Menyimpan Data Customer

16

Gagal Update Data Briva

17

Gagal Delete Data Briva

20

Format Expired date salah, harusnya Y-m-d H:i:s

20

Format startTime atau endTime salah, harusnya Ymd

20

Panjang startTime atau endTime salah, harusnya 8 karakter

20

Gagal update status bayar

20

Penulisan Status Bayar Salah, Harusnya Y atau N

21

Gagal mendapatkan data status bayar

41

Report briva kosong atau tidak ditemukan

42

Tanggal StartTime dan EndTime report Briva harus sama

42

Tanggal startDateTime/endDateTime Tidak Boleh Kosong

Seluruh response error yang tidak tercantum dalam list response BRIAPI memiliki status pending dan perlu dilakukan pengecekan