Direct Debit v1.2

Apa itu BRI Direct Debit?

Saat ini, kebutuhan akan transaksi digital yang mudah dan cepat semakin tinggi. Salah satu solusi atas kebutuhan tersebut adalah dengan mengimplementasikan fitur direct debit pada bisnis digital. Direct debit atau debit langsung adalah suatu cara pembayaran elektronik yang memungkinkan bank untuk menarik sejumlah dana secara otomatis dari rekening nasabah guna melakukan suatu pembayaran. Dengan menggunakan fitur Direct Debit BRIAPI ini, pelanggan dari bisnis digital Anda cukup melakukan registrasi kartu satu kali, kemudian untuk transaksi berikutnya pelanggan cukup memasukkan kode one time password (OTP) yang diterima. Selain memberikan kemudahan dalam pembayaran, penggunaan OTP pada transaksi ini juga akan memberikan rasa aman saat pelanggan bertransaksi.

Contoh Penggunaan API BRI Direct Debit

Direct Debit merupakan cara bertransaksi yang tepat untuk berbagai kebutuhan bisnis digital seperti e-commerce, layanan berlangganan, top up e-wallet, asuransi, ataupun berinvestasi. Dengan mengintegrasikan bisnis digital Anda dengan API ini, konsumen anda dapat lebih mudah melakukan transaksi karena hal tersebut bisa diselesaikan dengan sekali klik.

API Information

Judul Direct Debit V1.2
Versi v1.2
URL Sandbox https://sandbox.partner.api.bri.co.id/v1.2/directdebit
URL Production  

Kendali Versi

Versi Dok Versi API Tanggal Tautan Dokumen  Deskripsi

v1.0

v1.2

6 Desember 2021 Buka Docs Baseline version.

v2.0

v1.2

14 juni 2022

Halaman Ini

  • Perubahan URL SandBox,URL Payload Sample dan Path Version 
  • Perubahan Mandatory Field Metadata pada endpoint Create Payment Charge Multi Giro OTP
  • Penambahan parameter trx_id pada endpoint Create Payment Charge Multi Giro OTP
  • Penambahan struktur dan error respon pada seluruh endpoint

v2.1

v1.2

12 september 2022

Halaman Ini

list error dengan detail sebagai berikut :
Existing RC Existing Message New RC New Message
0107 phone number is invalid 0113 Card Information Invalid
0101 Card Number Not Found 0113 Card Information Invalid
0104 Phone number not registered 0113 Card Information Invalid

v3.0

v1.2

26 September 2022

Halaman Ini

  • Create Payment Charge OTP  
  • Create Payment Charge OTP Verify
  • Create Payment Refund 
  • Callback API Direct Debit Charges 
  • Callback API Direct Debit Refunds

v4.0

v1.2

26 Oktober 2022

Halaman Ini

  • Penambahan informasi remark rekening koran pada deskripsi produk
  • Penambahan parameter trx_id pada request dan respon endpoint Create Payment Charge Multi Giro OTP dan Create Payment Charge OTP
  • Penambahan parameter trx_refund_id pada request dan respon endpoint Create Payment Refund Multi Giro dan Create Payment Refund
  • Penambahan kode respon 4000413 "Transaction Timeout" pada endpoint Create Payment Charge OTP dan Create Payment Charge Multi Giro OTP
  • Perubahan parameter metadata pada endpoint Create Payment Charge Multi Giro OTP dan Create Payment Charge OTP menjadi mandatory
  • Perubahan parameter metadata pada endpoint Create Payment Refund Multi Giro dan Create Payment Refund menjadi mandatory

v4.1

v1.2

7 Februari 2023

Halaman Ini

Menambahkan catatan bahwa "OTP dan Notif (Binding dan Payment) yang sebelumnya dikirim melalui SMS akan dikirimkan melalui Whatsapp"

v4.2

v1.2

27 April 2023

Halaman Ini

Mengubah deskripsi jumlah permintaan OTP maksimum menjadi 3 kali pada Response Code 0924 pada 3 endpoint di bawah ini : 

  • Create Card Token (Binding) OTP 
  • Create Payment Charge Multi Giro OTP
  • Create Payment Charge OTP

v4.3

v1.2

03 Juli 2023

Halaman Ini

Update mandatory untuk field exp_date dari O menjadi M pada endpoint Create Card Token (Binding) OTP

*Notes
 Perubahan ini berlaku mulai tanggal 14 Agustus 2023

 

Product Overview

Introduction Part

Fitur pembayaran e-Commerce yang menghubungkan akun e-Commerce Anda dengan kartu debit BRI sebagai Source of Fund (SoF) sehingga proses pembayaran transaksi berlangsung cepat dengan satu proses registrasi.

Flow API (actor interaction)

 

Sequence Diagram

  1. Binding Step

     
  2. Payment Step

  3. Refund Step

Standards (items that applicable for all endpoint)

  • Semua datatime harus dalam format ISO 8601.

Additional Requirement

Partner yang memiliki lisensi PCI-DSS, card_pan dapat dikirimkan dalam format penuh (16 digit), jika tidak hanya dikirimkan 4 digit terakhir.

Remark Rekening Koran

16 karaketer (DRDBT/DRRFN+5 digit kode partner+2 digit kode transaksi+4 digit terakhir kartu)+spasi+12 digit paymentid+spasi+10 karakter trx_id partner yang diambil dari (metadata>trx_id / metadata>trx_refund_id).

Catatan: OTP dan Notif (Binding dan Payment) yang sebelumnya dikirimkan melalui SMS akan dikirimkan melalui Whatsapp.

Endpoint

1. Create card token (binding) OTP

Endpoint Description

Binding API memverifikasi bahwa informasi yang diberikan oleh pengguna cocok dengan data bank. Card_token yang diperoleh memiliki masa aktif satu tahun atau setelah masa berlaku kartu habis. Jika card_token telah kedaluwarsa, pengguna diharuskan binding lagi untuk mendapatkan card_token baru untuk melakukan transaksi.

General Information

HTTP Method

POST

Path

/v1/directdebit/tokens

Tipe Format

JSON

Authentication

OAuth 2.0 with Access Token

Header Structure & Sample

Key

Value

Mandatory

Length

Deskripsi

Authorization

Bearer {token}

M

N/A

Access Token

BRI-TIMESTAMP

 

M

-

ISO 8601 format

X-BRI-SIGNATURE

 

M

64

-

Content-type

application/json

M

-

-

Request Structure & Sample

Field

Tipe Data

Mandatory

Length

Deskripsi

Contoh

card_pan 

varchar

M

16

4 digit terakhir nomor kartu atau 16 digit penuh untuk partner dengan lisensi PCI-DSS

5221123456789101

phone_number

varchar

M

15

nomor telepon terdaftar di bank

6289912345678

email 

varchar

M

50

User email

foo.bar@baz.com

exp_date

varchar

M

4

expired date dengan format MMYY.

0525

device_id

varchar

O

55

Device ID yang digunakan oleh pengguna untuk melakukan binding

-

location

JSON

O

-

Lokasi saat pertama kali dilakukan binding

{

"lat": "123",

"lon": "-123"

}

metadata

JSON

O

-

Merchant metadata

Anda dapat mengisi bagian ini dengan data internal yang dipilih

Response Structure & Sample

Field

Tipe Data

Mandatory

Length

Deskripsi

Contoh

registration_token

String

M

-

String code for OTP verification

TOK_CBF6XTIWO4HKQ3LJ2QPAG

W445LORLPF5

status

String

M

-

Value will be "PENDING_USER_VERIFICATION"

only

PENDING_USER_VERIFICATION

Request & Response Payload Sample

Request:

{
curl -X POST 'https://sandbox.partner.api.bri.co.id/v1.2/directdebit/tokens' \
 -H 'Authorization: Bearer {{TOKEN}}' \
 -H 'BRI-Timestamp: 2019-05-14T02:25:06.379Z' \
 -H 'Content-Type: application/json' \
 -H 'X-BRI-Signature: {{SIGNATURE}}' \
 -d '{
 "body": {
 "card_pan": "5221123456789101",
 "phone_number": "6289912345678",
 "email":"foo.bar@baz.com"
 }
}'                                  

Normal Response :

{
 "body": {
 "status": "PENDING_USER_VERIFICATION",
 "token": "TOK_CBF6XTIWO4HKQ3LJ2QPAGW445LORLPF5"
 }
}
            

Error Response :

{
   "error": {
      "code": "0113",
      "message": "Card Information Invalid"
  },
    "status_code": 400,
    "recorded_at": "2021-02-10T11:07:28Z"
  }                              

List of Error/Response Code

 

HTTP Status

Kode

StatusKode

Status

Pesan

Deskripsi

200

-

-

PENDING_USER

_VERIFICATION

-

Proses permintaan otp sukses diidentifikasi oleh token permintaan otp yang tidak kosong dan status = PENDING_USER_VERIFICATIO

400

0102

400

-

the expired date is incorrect

Permintaan binding gagal

400

0103

400

-

card was expired

Permintaan binding gagal

400

0105

400

-

card status not activated

Permintaan binding gagal

400

0108

400

-

National Id Number not matched

Permintaan binding gagal

400

0109

400

-

Your card is blocked or disabled

Permintaan binding gagal

400

0110

400

-

Your card is already registered

Permintaan binding gagal

400

0113

400

-

Card Information Invalid

Permintaan binding gagal

400

0407

400

-

account is closed or frozen

Permintaan binding gagal

400

0112

400

-

Exceed limit binding

Percobaan binding maksimum adalah 3 kali. Lebih dari itu, akan mendapatkan error ini.

400

0924

400

-

OTP requests have reached the maximum

Permintaan otp maksimum. Setelah 3 kali permintaan otp tidak akan diverifikasi atau verifikasi gagal

400

0921

400

-

Send OTP Failed

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

2. Create Card Token (Binding) OTP Verify

Endpoint Description

Create Card Token (Binding) OTP Verify adalah endpoint untuk memverifikasi permintaan Binding OTP.

Catatan: OTP dan Notif (Binding dan Payment) yang sebelumnya dikirimkan melalui SMS akan dikirimkan melalui Whatsapp.

General Information  

HTTP Method

PATCH

Path

/v1/directdebit/tokens

Tipe Format

JSON

Authentication

OAuth 2.0 with Access Token

Header Structure & Sample 

Key

Value

Mandatory

Length

Deskripsi

Authorization

Bearer {token}

M

N/A

Access Token

BRI-TIMESTAMP

timestamp

M

-

-

X-BRI-SIGNATURE

signature

M

64

-

Content-type

application/json

M

-

-

Request Structure & Sample  

Field

Tipe Data

Mandatory

Length

Deskripsi

Contoh

registration_token

 varchar

M

40

Kode string token OTP yang akan diverifikasi dengan passcode yang diperoleh pengguna

TOK_TKNCPPPHUVL3IJVAX

ZI5GG4WBEC77YZ6

passcode

int

M

 6

Passcode yang telah dikirim ke pengguna

545195

Response Structure & Sample  

Field

Tipe Data

Mandatory

Length

Deskripsi

Contoh

status 

varchar

M

 4  mengidentifikasi bahwa proses binding berhasil

“0000”

phone_number

varchar

M

15

nomor telepon terdaftar di bank

6289912345678

last4

varchar

 M

4

4 digit terakhir kartu 

5566

device_id

varchar

O

55

Device ID yang digunakan oleh pengguna untuk melakukan pembayaran

-

card_token

Text

M

-

token untuk memvalidasi transaksi dan status binding anda 

card_xxxx

email

varchar

M

  

50

User email

foo.bar@baz.com

location

JSON

O

 

-

Lokasi saat pertama kali dilakukan binding

-

metadata

JSON

M

 

-

Merchant metadata

{

“refnum”:”123”

}

card_type

varchar

M

10

Ada 6 status card_type: PVRGLR, PVGOLD, PVPLAT, RGLR, GOLD, PLAT

-

Error Response Structure & Sample

Field

Tipe Data

Mandatory

Length

Deskripsi

Contoh

error

JSON

M

 

-

Detail informasi error

{

"code":"0918",

"message": "Invalid Passcode"

}

status_code

String

M

 

3

Kode status error

400

recorded_at

String

M

-

Timestamp data tersimpan

2021-02-10T11:09:43Z

Request & Response Payload Sample

Request:

{
curl -X PATCH 'https://sandbox.partner.api.bri.co.id/v1.2/directdebit/tokens' \
 -H 'Authorization: Bearer {{TOKEN}}' \
 -H 'BRI-Timestamp: 2019-05-14T02:25:06.379Z' \
 -H 'Content-Type: application/json' \
 -H 'X-BRI-Signature: {{SIGNATURE}}' \
 -d '{
 "body":{
 "registration_token": "TOK_TKNCPPPHUVL3IJVAXZI5GG4WBEC77YZ6::ADVQ",
 "passcode": "545195"
 }
}'

Normal Response :

{
 "body": {
 "status": "0000",
 "phone_number": "6289912345678",
 "device_id": "09864ADCASA",
 "card_token":
"card_.eyJleHAiOjE2ODU0OTExOTksImlhdCI6MTU0MDE5NjUwMCwiaXNzIjoiQmFuayBCUkkgLSBEQ0UiLCJqdGkiOiJhMGM2MjlhNS1hYWI5LTQ5OWMtODg5MS0yNzA1NDg3NGRmYWUiLCJuYmYiOjE1NDAx
OTY1MDEsInBhcnRuZXJJZCI6Iu_vSIsInNlcnZpY2VOYW1lIjoiRERfRVhURVJOQUxfU0VSVklDRSJ9.hceS_BQtzCIyMJCVMMvPWSfTvqIrW9TIL9arAUi95e-
P6Kq9bvmQNuGLcfV6GLnQEc07fKF6IbaLLkUquEm2iDfsP1HMLv_crXiF9snwzqzTk5vJqYvLmRGDqhZk-tFw-
MwX0NWop2iyRUhwSTB7rCNVOyfeIGfif7dKpu2PdFT98VUimnsKRWqHjAR7uCVKXweDbfKVpLHpgcR914MvSthqt4a7eHzUxm6o6eqyjQjf_vkQi4Fl_iG98JOVuzVuXft5P50QKcKwAhnrIiGMCVd4DZWQ1rMVbx1iS
LvGzBrR1xm3wIYYlmyR0pUVlDdGaE04N1Gz_dvcsgx15Ecw",
 "location": {
 "lat": "",
 "lon": ""
 },
 "last4": "1234",
 "email": "foo.bar@baz.com",
 "metadata": {
 "example1": "example1"
 },
 "card_type": "PVRGLR",
 "limit_transaction": ""
 }
}
 "body": {
 "status": "PENDING_USER_VERIFICATION",
 "token": "TOK_CBF6XTIWO4HKQ3LJ2QPAGW445LORLPF5"
 }
}

Error Response :

{
"error": {
"code": "0918",
   "message": "Invalid Passcode"
  },
 "status_code": 400,
 "recorded_at": "2021-02-10T11:09:43Z"
 }        

List of Error/Response Code  

HTTP Status

Kode

StatusKode

Status

Pesan

Deskripsi

200

-

-

0000

binding success

Sukses binding, status akan berisi 0000

400

0603

400

-

Expired Card Token

Binding Gagal

400

0918

400

-

Invalid Passcode

Binding Gagal
400

0919

400

-

Error Validate OTP Passcode

Binding Gagal
400 0920

400

-

Expired OTP

Binding Gagal

400

0922

400

-

Invalid OTP Token

Binding Gagal

400

0106

400

-

binding failed

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

3. Delete Card Token (Unbinding)

Endpoint Description

API unbinding digunakan untuk menghapus akun pengguna yang telah terdaftar sebelumnya.

General Information

HTTP Method

DELETE

Path

/v1/directdebit-enterprise/tokens

Tipe Format

JSON

Authentication

OAuth 2.0 with Access Token

Header Structure & Sample

Key

Value

Mandatory

Length

Deskripsi

Authorization

Bearer {token}

M

N/A

Access Token

BRI-TIMESTAMP

 

M

-

-

X-BRI-SIGNATURE

 

M

64

-

Content-type

application/json

M

-

-

Request Structure & Sample

Field

Tipe Data

Mandatory

Length

Deskripsi

Contoh

card_token

Text

M

40

token untuk memvalidasi transaksi dan binding status Anda

card_.XXXXXX

Response Structure & Sample

Field

Tipe Data

Mandatory

Length

Deskripsi

Contoh

status 

varchar

M

4

mengidentifikasi bahwa proses binding berhasil

“0000”

Request & Response Payload Sample

Request:

{
curl -X DELETE 'https://sandbox.partner.api.bri.co.id/v1.2/directdebit/tokens' \
 -H 'Authorization: Bearer {{TOKEN}}' \
 -H 'BRI-Timestamp: 2019-05-14T02:25:06.379Z' \
 -H 'Content-Type: application/json' \
 -H 'X-BRI-Signature: {{SIGNATURE}}' \
 -d '{
 "body":{
 "card_token": 
"card_.eyJleHAiOjE1ODkzNDk2ODgsImlhdCI6MTU1NzcyNzI4OCwiaXNzIjoiQmFuayBCUkkgLSBEQ0UiLCJqdGkiOiJhNTcxZDA3OC0xYmMyLTQ4NGUtOTQ2NC0yOGMzZmE2MWFhNGQiLCJwYXJ0bmVySWQiOiLvv70iLCJzZXJ2aWNlTmFtZSI6IkREX0VYVEVSTkFMX1NFUlZJQ0UifQ.EUOaGaCI6giha7
GmRsycxMBrVXQgeF9cHfonXYZcT_3R3ykXw6PFOS9r32fMVP8al2lf26_Q6VIZ3sm71e7Sbd1KoigtGdcTPeJseSMMP190Ful_2DA2cRqhvN1dzJx-6keaG_AzLzo6sWMzuonQuR9tk-o5YMkGzfHJ-ZOS0zWvmN9lWRmvKlZPOBH_8Q430Yu5CeSjIF9ocfQQ6oguk_bXVRCX4_u8WYISHrsatIeptBAADpQZktLpjBj0gXELwDed0PXQ4TeArcsUvj7d66hG8KPCuhCWa41JWnDxycqlJK_fldsnY0ewofkudSnSJzg5Nh0FILxl83bBPj4Pw"
 }
}'
                  

Normal Response :

{
 "body": {
 "status": "0000"
 }
}

            

Error Response :

 {
      "error": {
      "code": "0006",
         "message": "Invalid card token"
   },
      "status_code": 400,
      "recorded_at": "2021-02-10T11:11:10Z"
    }
                        

List of Error/Response Code

 

HTTP Status

Kode

StatusKode

Status

Pesan

Deskripsi

200

-

-

0000

-

Unbinding berhasil, status = 0000

400

0201

400

-

unbinding was unsuccessful

Unbinding Gagal

400

0006

400

-

Invalid card token

card_token tidak ditemukan atau sudah di-unbinding
Seluruh response error yang tidak tercantum dalam list response BRIAPI memiliki status pending dan perlu dilakukan pengecekan

4. Retrieve Payment Charges & Refunds

Endpoint Description

Permintaan API ini digunakan untuk menampilkan semua status pembayaran yang telah dibuat.

*NOTE:Normal case partner akan mendapatkan payment_id saat charge dan menggunakannya untuk inquiry transaksi, namun jika transaksi sudah timeout, partner bisa melakukan inquiry menggunakan Metadata.Partner diharapkan untuk memastikan bahwa nilai dalam Metadata unik karena akan digunakan untuk inquiry transaksi. Jika tidak, hasil inquiry akan mengembalikan data terakhir.

General Information

HTTP Method

POST

Path

/v1/directdebit-enterprise/charges/inquiry

Tipe Format

JSON

Authentication

OAuth 2.0 with Access Token

Header Structure & Sample

Key

Value

Mandatory

Length

Deskripsi

Authorization

Bearer {token}

M

N/A

Access Token

BRI-Timestamp

timestamp

M

-

-

X-BRI-Signature

signature

M

64

-

Content-type

application/json

M

-

-

Request Structure & Sample

Field

Tipe Data

Mandatory

Length

Deskripsi

Contoh

payment_id

varchar

M

15

payment_id dari API response payment

 

metadata

JSON

M

-

Metadata untuk inquiry

 

remarks

varchar

O

255

remarks sebagai penanda transaksi

 

>trx_id varchar M 64 Transaction partner ID  

Response Structure & Sample

Field

Data Type

Mandatory

Length

Deskripsi

Contoh

status 

varchar

M

4

Kode 0000 menunjukkan bahwa inquiry berhasil diproses

0000

payment_id

varchar

M

15

payment_id dari API response payment

 

amount

number (2 Decimal Points)

M

-

Jumlah amount yang dibayarkan oleh pengguna. Contoh 20000.00

 

currency

varchar

M

3

kode ISO mata uang tiga huruf

IDR

payment_status 

varchar

M

7

ada 3 status pembayaran pada inquiry: SUCCESS (untuk transaksi sukses), FAILED (untuk transaksi gagal), "" (kosong untuk status update gagal di database dan dapat ditandai sebagai transaksi gagal)

 

remarks

varchar

M

255

remakrs sebagai penanda pembayaran. Contoh "ext989898"

 

refund_history 

JSON

M

-

List array riwayat refund

 

device_id 

varchar

O

55

Device ID yang digunakan oleh pengguna untuk melakukan payment charge

 

location

JSON

O

-

Lokasi payment charge dilakukan

{

"lat": "",

"lon": ""

}

metadata

JSON

M

-

Merchant metadata

{

"trx_id_":"0007654321" }

>trx_id varchar M 64 Transaction partner ID  

CATATAN:Gunakan "payment_status" untuk mengidentifikasi apakah pembayaran SUCCESS atau FAILED

 

Structure Array Refund History

Field

Data Type

Mandatory

Length

Deskripsi

Contoh

refund_id

varchar

M

4

refund_id dibuat setelah transaksi

 

amount

number (2 Decimal Points)

M

15

jumlah proses refund dana. Contoh 20000.00

 

currency

varchar

M

3

kode ISO tiga huruf untuk mata uang. Mata uang yang digunakan untuk refund

 

reason

varchar

M

255

remaks untuk refund

 

date

date

M

-

tanggal proses refund dana dalam format ISO-8601

 

status

varchar

M

7

ada 3 status refund dana pada inquiry: SUCCESS (untuk pengembalian dana yang berhasil), FAILED (untuk pengembalian dana yang gagal), "" (kosong untuk status pembaruan yang gagal di database dan dapat ditandai sebagai pengembalian dana yang gagal)

 

device_id

varchar

O

55

Device ID yang digunakan oleh pengguna untuk melakukan refund

 

location

JSON

O

-

Lokasi refund dilakukan

 

metadata

JSON

O

-

Merchant metadata

 

CATATAN: Gunakan "status" untuk menentukan apakah pembayaran berhasil atau gagal.

Error Response Structure & Sample

Field

Data Type

Mandatory

Length

Deskripsi

Contoh

error

JSON

M

-

Detail informasi error

{

"code": "0301",

"message": "Payment id not found"

}

status_code

String

M

3

Kode status error

400

recorded_at

string

M

-

Timestamp data tersimpan

2021-02-10T11:09:43Z

CATATAN:Gunakan "payment_status" untuk mengidentifikasi apakah pembayaran SUCCESS atau FAILED

 

Request & Response Payload Sample

Request:

v{ curl -X POST 'https://sandbox.partner.api.bri.co.id/v1.2/directdebit/charges/inquiry' \
-H 'Authorization: Bearer {{TOKEN}}' \
-H 'BRI-Timestamp: 2019-05-14T02:25:06.379Z' \ 
-H 'Content-Type: application/json' \ 
-H 'X-BRI-Signature: {{SIGNATURE}}' \ 
    -d '{ "body" : { "payment_id": "657314642873", "metadata": { "trx_id": "0007654321" } } }'

Normal Response :

 {
      "body": {
      "status": "0000",
           "amount": "50000.00",
           "currency": "IDR",
           "payment_id": "657314642873",
           "remarks_merchant": "payment directlink",
           "payment_status": "SUCCESS",
           "refund_history": [
      {
        "refund_id": "447343838470",
        "amount": "10000.00",
        "currency": "IDR",
        "reason": "incorrect stuff",
            "date": "2019-08-28T02:28:30.246199Z",
            "status": "SUCCESS",
            "device_id": "lg-lllll",
            "location": {
               "lat": "",
               "lon": ""
        },
        "metadata": {
        "trx_id": "000012345000"
        }
      }
    ],
        "device_id": "lg-lllll",
        "location": {
           "lat": "",
           "lon": ""
      },
        "metadata": {
        "trx_id": "0007654321"
       }
    }
  }

            

Error Response :

   {
       "error": {
       "code": "0301",
           "message": "Payment id not found"
      },
       "status_code": 400,
       "recorded_at": "2021-02-10T11:15:43Z"
}

                        

List of Error/Response Code

HTTP Status

Kode

StatusKode

Status

Pesan

200

-

-

0000

inquiry payment was success

400

0301

400

-

payment_id not found

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

5. Create Payment Charge Multi Giro OTP

Endpoint Description

API ini digunakan untuk pembayaran dari transaksi berdasarkan nomor kartu kartu  pada card_token yang diperoleh dari proses bidning (pembuatan token kartu).

Pembayaran akan terhenti jika: 1. Mata uang yang digunakan untuk transaksi belum didukung. 2. Jumlah pembayaran melebihi batas kredit nasabah atau dana di rekening tidak cukup (ditentukan oleh bank). 3. Rekening atau kartu nasabah tidak lagi aktif. Untuk setiap kasus di atas, dana nasabah tidak boleh didebet.

General Information

HTTP Method

POST

Path

/v1.2/directdebit-enterprise/charges/multiple

Tipe Format

JSON

Authentication

OAuth 2.0 with Access Token

Header Structure & Sample

Key

Value

Mandatory

Length

Deskripsi

Authorization

Bearer {token}

M

N/A

Access Token

BRI-Timestamp

 

timestamp

M

-

-

X-BRI-Signature

 

signature

M

64

-

Content-Type

application/json

M

-

-

Idempotency-Key

Unique ID

M

-

request unique id untuk mencegah duplikasi data pada saat yang sama

Request Structure & Sample

Field

Tipe Data

Mandatory

Length

Deskripsi

Contoh

card_token

Text

M

 

token untuk memvalidasi transaksi dan status binding Anda

 

amount

number (2 Decimal Points)

M

 

Jumlah amount yang dibayarkan oleh pengguna. Contoh 20000.00

 

currency

varchar(3)

M

3

Kode ISO tiga huruf untuk mata uang. Mata uang akan digunakan untuk payment charge

 

giro_account_no

string

M

 

Giro Account Partner

 

remarks 

varchar

O

255

Remarks sebagai penanda pembayaran. Harus mengandung nilai unik jika digunakan untuk inquiry payment charge dan refund. Contoh "ext123456"

 

device_id

varchar(55)

O

55

Device ID yang digunakan oleh pengguna untuk melakukan payment charge.

 

location

JSON

O

 

Lokasi pembayaran dilakukan

 

metadata

JSON

M

 

Merchant metadata. Harus mengandung nilai unik jika digunakan untuk inquiry payment charge dan refund. sample:

{ "trx_id":"1234566789" }

 

otp_bri_status

varchar(3)

O

3

otp bri status untuk menandakan bahwa transaksi menggunakan OTP atau tidak. Jika YES maka akan menggunakan OTP, jika NO maka tidak menggunakan OTP. Secara default jika nilainya kosong maka akan menggunakan OTP. *CATATAN: jika otp_bri_status = NO maka akan langsung diproses transaksinya dengan response sukses dan daftar error code yang berbeda. Silahkan melihat ke contoh response dan daftar error atau response code.

 

Normal Response Structure & Sample untuk yang memakai OTP

Field

Tipe Data

Mandatory

Length

Deskripsi

Contoh

status 

varchar

M

40

Pending User Verification

 

Charge_token

varchar

M

40

kode string untuk verifikasi OTP

 

Normal Response Structure & Sample untuk yang tanpa OTP

Field

Data Type

Mandatory

Length

Deskripsi

Contoh

status

varchar

M

4

status proses transaksi

0000

payment_id

varchar

M

12

payment_id menghasilkan setelah transaksi

 

amount

number (2 Decimal Points)

M

-

Jumlah amount yang dibayarkan oleh pengguna. Contoh 20000.00

 

currency

varchar

M

3

Kode ISO tiga huruf untuk mata uang. Mata uang akan digunakan untuk payment charge

 

payment_status

varchar

M

7

Nilainya akan SUCCESS untuk pembayaran yang berhasil. Jika pembayaran gagal, payment_status tidak akan dikembalikan (sistem akan mengembalikan kode error dan pesan error)

 

remarks

varchar

M

15

remarks sebagai penanda payment charge

 

device_id

varchar

O

55

device ID yang digunakan oleh pengguna untuk melakukan payment charge

 

location

JSON

O

-

Lokasi payment charge dilakukan

 

metadata

JSON

M

-

Merchant metadata

 

Error Response Structure & Sample

Field

Tipe Data

Mandatory

Length

Deskripsi

Contoh

error

JSON

M

-

Detail informasi error

{

"code": "0006",

"message": "Invalid card token"

}

status_code

String

M

3

Kode status error

400

recorded_at

string

M

-

Timestamp data tersimpan

2021-02-10T11:09:43Z

Request & Response Payload Sample

Request:

{
    curl -X POST 'https://sandbox.partner.api.bri.co.id/v1.2/directdebit-enterprise/charges/multiple' \
 -H 'Authorization: Bearer {{TOKEN}}' \
 -H 'BRI-Timestamp: 2019-05-14T02:25:06.379Z' \
 -H 'Content-Type: application/json' \
 -H 'Idempotency-Key: 0.6434517166433735' \
 -H 'X-BRI-Signature: {{SIGNATURE}}' \
 -d '{
 "body":{
 "card_token":
 "card_.eyJleHAiOjE1ODkzNTA4NDEsImlhdCI6MTU1NzcyODQ0MSwiaXNzIjoiQmFuayBCUkkgLSBEQ0UiLCJqdGkiOiJlM2YzNTQxNC00MTc4LTRlYzgtYmY2Ny03MjI2MzkyNjY3YTciLCJwYXJ0bmVySWQiOiLvv70iLCJzZXJ2aWNlTmFtZSI6IkREX0VYVEVSTkFMX1NFUlZJQ0UifQ.PMuH4Fq9TkacFS
QE2nwr-Dr7icRPlOOxYv2_XeoOjzidTm8dRwD9xy1lpvc_JJiUUQ_WFsL-o267BkL4tpnUWNxjA0ggnfsIsJQzZUSKtQYPozi7ZSLgV4VHOMqDJxBAFb-TeuNhN6obQBpsWBc4g3e0iOvEWKvk56AviR9Hs-CIQvqoYUEds8PgOyWCdbCnT76LLBzBWjML6JVXSMbtRJ3nDvE4ykq_ajDkgVeHbgFiTPiBtnsXVskbDGZMma1kVijr5GS4cxdqAq7xzYRnFpbVNHyxUrzVKYrGGgYoHM6K3-zM8wlhfHqssjyO86DyvdmfTF1398ZT-B8uv9zog",
 "amount":"25099.00",
 "currency":"IDR",
"giro_account_no":"020601006205303",
"Remarks":"Remarks Merchant",
"otp_bri_status":"YES",
"metadata":{
  "trx_id":"12345687"
     }
   }
}'

Normal Response untuk yang memakai OTP:

{
 "body": {
 "Charge_token": "CHARGE_M3AVZN3LQSX5Q3YZSUHDLT7UAUMANZAP",
 "status": "PENDING_USER_VERIFICATION"
 }
}           

Normal Response untuk yang tanpa OTP:

{
 "body": {
 "status": "0000",
 "payment_id": "175226995569",
 "amount": "20000.00",
 "currency": "IDR",
"remarks": "payment",
"device_id": "",
 "payment_status": "SUCCESS",
 "location": {
 "lat": "-6.21462",
 "lon": "106.84513"
 },
 "metadata": {
 "payment_id": "0984645728",
"trx_id":"12345687"
 }
 }
}
      

Error Response :

{
"error": {
"code": "0006",
"message": "Invalid card token"
},
"status_code": 400,
"recorded_at": "2021-02-10T11:11:10Z"
}

List of Error/Response Code untuk yang memakai OTP

 

HTTP Status

Kode

StatusCode

Status

Pesan

Deskripsi

200

-

-

PENDING_USER_VERIFICATION

-

sukses diidentifikasi oleh otp token yang tidak kosong (untuk

400

0402

400

-

payment currency not supported

Permintaan Charge OTP gagal

400

0109

400

-

Your card is blocked or disabled

Permintaan Charge OTP gagal

400

0407

400

-

account is closed or frozen

Permintaan Charge OTP gagal

400

0413

400

-

Transaction Timeout

Transaction Timeout

400

0111

400

-

Duplicate Idempotency Key

Permintaan Charge OTP gagal

400

0113

400

-

Giro Account Not Allowed

Rekening giro belum terdaftar

400

0924

400

-

OTP requests have reached the maximum

Permintaan otp maksimum setelah 5 kali permintaan otp tidak diverifikasi atau verifikasi gagal

400

0921

400

-

Send OTP Failed

Gagal Mengirim Layanan OTP

400

0006

400

-

Invalid card token

Permintaan Charge OTP gagal

List of Error/Response Code untuk yang tanpa OTP

 

HTTP Status

Kode

StatusKode

Status

Pesan

Deskripsi

200

-

-

0000

payment success

transaksi telah diproses, payment charge berhasil ditunjukkan dengan payment_status = SUCCESS

400

0113

400

-

Giro Account Not Allowed

Rekening giro belum terdaftar

400

0401

400

-

over limit

Charge Gagal

400

0403

400

-

charge payment failed

Charge Gagal

400

0404

400

-

insufficient balance

Charge Gagal

400

0405

400

-

account is frozen

Charge Gagal

400

0406

400

-

account is closed

Charge Gagal

400

0407

400

-

account is closed or frozen

Charge Gagal

400

0408

400

-

account not found

Charge Gagal

400

0402

400

-

payment currency not supported

Permintaan Charge OTP gagal

400

0413

400

-

Transaction Timeout

Transaction Timeout

400

0109

400

-

Your card is blocked or disabled

Permintaan Charge OTP gagal

400

0111

400

-

Duplicate Idempotency Key

Permintaan Charge OTP gagal

400

0006

400

-

Invalid card token

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

6. Create Payment Charge Multi Giro OTP Verify

Endpoint Description

API ini digunakan untuk memverifikasi Request OTP charge dari transaksi.

Catatan: OTP dan Notif (Binding dan Payment) yang sebelumnya dikirimkan melalui SMS akan dikirimkan melalui Whatsapp.

General Information

HTTP Method

POST

Path

/v1.2/directdebit/charges/multiple/verify

Tipe Format

JSON

Authentication

OAuth 2.0 with Access Token

Header Structure & Sample

Key

Value

Mandatory

Length

Deskripsi

Authorization

Bearer {token}

M

N/A

Access Token

BRI-TIMESTAMP

timestamp

M

-

-

X-BRI-SIGNATURE

signature

M

64

-

Content-type

application/json

M

-

-

Request Structure & Sample

Field

Tipe Data

Mandatory

Length

Deskripsi

Contoh

card_token

Text

M

-

token untuk memvalidasi transaksi dan status binding Anda

card_token.xxxxx

charge_token

varchar

M

40

Kode string OTP yang akan diverifikasi dengan passcode yang diperoleh pengguna

CHARGE_XXXXX

passcode

int

M

6

passcode yang telah dikirim ke pengguna

999999

Normal Response Structure & Sample

Field

Tipe Data

Mandatory

Length

Deskripsi

Contoh

status 

varchar

M

4

status proses transaksi

0000

payment_id

varchar

M

12

payment_id menghasilkan setelah transaksi

 

amount

number (2 Decimal Points)

M

-

Jumlah amount yang dibayarkan oleh pengguna. Contoh 20000.00

 

currency

varchar

M

3

Kode ISO tiga huruf untuk mata uang. Mata uang akan digunakan untuk payment charge

 

remarks

varchar

M

15

remark sebagai payment charge

 

device_id

varchar

O

55

device ID yang digunakan oleh pengguna untuk melakukan payment charge

 

payment_status

varchar

M

77

Nilainya akan SUCCESS untuk pembayaran yang berhasil. Jika pembayaran gagal, payment_status tidak akan dikembalikan (sistem akan mengembalikan kode error dan pesan error)

 

location

JSON

O

-

Lokasi payment charge dilakukan

 

metadata

JSON

O

-

Merchant metadata

 

Error Response Structure & Sample

Field

Tipe Data

Mandatory

Length

Deskripsi

Contoh

error

JSON

M

-

Detail informasi error

 {

        "code":"0403",

        "message":"charge payment failed"

 }

status_code

string

M

3

Kode status error

400

recorder_at

string

M

-

Timestamp data tersimpan 

2021-02-10T11:09:43Z

Request & Response Payload Sample

Request:

   url -X POST 'https://sandbox.partner.api.bri.co.id/v1.2/directdebit/charges/multiple/verify' \
  -H 'Authorization: Bearer {{TOKEN}}' \
  -H 'BRI-Timestamp: 2019-05-14T02:25:06.379Z' \
  -H 'Content-Type: application/json' \
  -H 'X-BRI-Signature: {{SIGNATURE}}' \
  -d '{
    "body":{
        "card_token": "card_.eyJleHAiOjE1ODk0MjE0MzcsImlhdCI6MTU1Nzc5OTAzNywiaX
         NzIjoiQmFuayBCUkkgLSBEQ0UiLCJqdGkiOiIxMGI4M2U2Yy0zMmUxLTQxNDctYjI5My
        01OTg5YWU3Nzk5NTYiLCJwYXJ0bmVySWQiOiLvv70iLCJzZXJ2aWNlTmFtZSI6IkREX0V
         YVEVSTkFMX1NFUlZJQ0UifQ.MAdArs3zmCsehnWcwhA5m-fwCUory6oudxVtmMS9d
         C7bXCnRjq91AwRxBADjWLu2S6Ra_RxRAnHU03_H8QJclvLad9L6P-pqZX_pRKDPOI1Y
          _i0xVYOfc8ea6B2so1aEuvFoOQNFMbGSsaLz4JO-OuJ6EYfoApTFSMIKOh__jkcxcXqpM
         1sO3ZlkquXKGpx_zf87boVPNY58KbIPWgzCC-6V2Vxpm4DPGunKkEwVMz4z12vTTbv
         3Ph9rc1Gf0jRXw8b8wo3k2ZeVGoHwiKbyJ_8J7FTVxkm3funDpcQtPzFzgBMPRgWWtfT
         7IOZddrVwsFt9FKLUKLHTVyiu5R4ZYw",
        "charge_token":  "CHARGE_XEHK6S4SNTBRSTCFBDB65W3GHQXBEFI4::De5g",
        "passcode":"210074"
    }
}'


Normal Response:

{
 "body": {
 "status": "0000",
 "payment_id": "175226995569",
 "amount": "20000.00",
 "currency": "IDR",
"remarks": "payment",
 "device_id": "",
 "payment_status": "SUCCESS",
 "location": {
 "lat": "-6.21462",
 "lon": "106.84513"
 },
 "metadata": {
 "payment_id": "0984645728"
 }
 }
}
           

Error Response :

{
"error": {
"code": "0403",
"message": "charge payment failed"
},
"status_code": 400,
"recorded_at": "2021-02-10T05:36:27Z"
}


List of Error/Response Code

HTTP Status

Kode

StatusKode

Status

Pesan

Deskripsi

200

-

-

0000

payment success

transaksi telah diproses, payment charge berhasil ditunjukkan dengan payment_status = SUCCESS

400

0918

400

-

Invalid Passcode

Charge Gagal

400

0919

400

-

Error Validate OTP Passcode

Charge Gagal

400

0920

400

-

Expired OTP

Charge Gagal

400

0922

400

-

Invalid OTP Token

Charge Gagal

400

0401

400

-

over limit

Charge Gagal

400

0403

400

-

charge payment failed

Charge Gagal

400

0404

400

-

insufficient balance

Charge Gagal

400

0405

400

-

account is frozen

Charge Gagal

400

0406

400

-

account is closed

Charge Gagal

400

0407

400

-

account is closed or frozen

Charge Gagal

400

0408

400

-

account not found

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

7. Create Payment Refund Multi Giro

Endpoint Description

Refund API digunakan untuk membuat permintaan pengembalian dana untuk pembayaran sukses sebelumnya. Pengembalian dana dapat dilakukan dengan jumlah penuh atau sebagian.

General Information

HTTP Method

POST

Path

/v1.2/directdebit/refunds/multiple

Tipe Format

JSON

Authentication

OAuth 2.0 with Access Token

Header Structure & Sample

Key

Value

Mandatory

Length

Deskripsi

Authorization

Bearer {token}

M

N/A

Access Token

BRI-TIMESTAMP

timestamp

M

-

-

X-BRI-SIGNATURE

signature

M

64

-

Content-type

application/json

M

-

-

IdempotencyKey

Unique ID

M

-

request unique id untuk mencegah duplikasi data pada saat yang sama

Request Structure & Sample

Field

Tipe Data

Mandatory

Length

Deskripsi

Contoh

card_token

Text

O

-

token untuk memvalidasi transaksi dan status binding Anda

 

amount

number (2 Decimal Points)

M

-

Jumlah amount proses refund. Contoh 20000.00

 

payment_id

varchar

M

12

payment_id dari respons API charge

 

giro_account_no

string

M

 

Giro Account Partner

 

currency

varchar

M

3

mata uang yang digunakan untuk refund

 

device_id

varchar

O

55

Device ID yang digunakan oleh pengguna untuk melakukan refund

 

location

JSON

O

-

Lokasi refund dilakukan

 

metadata

JSON

M

-

Merchant metadata. Harus mengandung nilai unik jika digunakan untuk inquiry payment charge dan refund.sample: { "trx_id":"1234566789" }

 

trx_refund_id

varchar

M

64

ID Refund Transaksi Partner

 

Normal Response Structure & Sample

Field

Tipe Data

Mandatory

Length

Deskripsi

Contoh

status 

varchar

M

4

status proses transaksi refund

0000

refund_id

varchar

M

12

Refund_id dihasilkan setelah transaksi refund sukses

 

payment_id

varchar

M

12

Payment_id untuk transaksi charge terkait

 

amount

number (2 Decimal Points)

M

-

Jumlah amount yang diproses refund. Contoh 20000.00

 

currency

varchar

M

3

Kode ISO tiga huruf untuk mata uang. Mata uang yang digunakan untuk refund ke pengguna

 

reason

varchar

O

15

reason sebagai remark refund

 

refund_status

varchar

M

6

Nilainya akan SUCCESS untuk pengembalian dana yang berhasil. Jika pengembalian dana gagal, refund_status tidak akan dikembalikan (sistem akan mengembalikan kode kesalahan dan pesan kesalahan)

 

device_id

varchar

O

55

Device ID yang digunakan oleh pengguna untuk melakukan refund

 

location

JSON

O

-

Lokasi refund dilakukan

 

metadata

JSON

M

-

Merchent meta data

 

trx_refund_id

varchar

M

64

ID Refund Transaksi Partner

 

Error Response Structure & Sample

Field

Tipe Data

Mandatory

Length

Deskripsi

Contoh

error

JSON

M

-

Detail informasi error

{

"code": "0504"

, "message": "refund payment failed to get payment id"

}

status_code

String

M

3

Kode status error

400

recorded_at

string

M

-

Timestamp data tersimpan

2021-02-10T11:09:43Z

Request & Response Payload Sample

Request:

{
 curl -X POST 'https://sandbox.partner.bri.co.id/v1.2/directdebit/refunds/multiple' \
 -H 'Authorization: Bearer {{TOKEN}}' \
 -H 'BRI-Timestamp: 2019-05-14T02:25:06.379Z' \
 -H 'Content-Type: application/json' \
 -H 'Idempotency-Key: 0.6434517166433735' \
 -H 'X-BRI-Signature: {{SIGNATURE}}' \
 -d '{
 "body": {
 "card_token": 
"card_.eyJleHAiOjE1ODMzOTM4OTIsImlhdCI6MTU1MTc3MTQ5MiwiaXNzIjoiQmFuayBCUkkgLSBEQ0UiLCJqdGkiOiIyNWQ4MWZmNy04NmY3LTQ5NWItYWUwNi04MTQ1ZGRlMTI1MmMiLCJwYXJ0bmVySWQiOiLvv70iLCJzZXJ2aWNlTmFtZSI6IkREX0VYVEVSTkFMX1NFUlZJQ0UifQ.tVaYUv8VZS
bAr6_wQCDCQuGiD_5malWPu33RCTM9l1N0cGHTLO5Czh6SYGxT4tfFLRAesfNB1qBKtPc0SA_bMHkJDsQ8E68KPDpoIEkh33BxHrStrordGy6-De9jDKleHmz1qos4h0ZeYTvetBjWkhugOZgYQBRJDKT0z7GhRa5MtkK8X4yV2zXypZiDy_AZd7TJH9AvMt5zH6duyfLDtfqf5DmS6gnG5DwbwLPSYm7WlTJ8UTh94kZjdQW-t-UEVHfatNyitayQmZVwRkWwz-TyUABzZWgRluu4Hfsp_jTydYr_yEhv0TE-CFCgP7RmDNJEqpQ2q4DXFtD3i3oOg",
 "amount":"500.00",
 "payment_id": "989453118305",
"giro_account_no":"020601006205303",
 "currency": "IDR",
 "metadata": {
  "trx_refund_id": "12345687"
 }
 }
}'




                  

Normal Response:

{
 "body": {
 "status": "0000",
 "refund_id": "6218763823",
 "payment_id": "89937492374",
 "amount": "20000.00",
 "currency": "IDR",
 "reason": "incorrect stuff",
 "refund_status": "SUCCESS",
 "device_id": "lg-lllll",
 "location": {
 "lat": "-6.21462",
 "lon": "106.84513"
 },
 "metadata": {
 "trx_refund_id":"12345687"
 }
 }
}
          

Error Response :

{
 "error": {
"code": "0504",
"message": "refund payment failed to get payment id"
},
"status_code": 400,
"recorded_at": "2021-02-10T11:22:03Z"
}



List of Error/Response Code

HTTP Status

Kode

StatusKode

Status

Pesan

Deskripsi

200

-

-

0000

transaction processed

refund telah diproses, refund berhasil ditunjukkan dengan refund_status = SUCCESS

400

0113

400

-

Giro Account Not Allowed

Rekening giro belum terdaftar

400

0501

400

-

refund currency not supported

Refund gagal

400

0502

400

-

refund amount is greater than paid amount

Refund gagal

400

0503

400

-

refund payment failed

Refund gagal

400

0405

400

-

account is frozen

Refund gagal

400

0406

400

-

account is closed

Refund gagal

400

0408

400

-

account not found

Refund gagal

400

0404

400

-

insufficient balance

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

8. Create Payment Charge OTP

Endpoint Description

API ini digunakan untuk pembayaran dari transaksi berdasarkan nomor kartu pada card_token yang diperoleh dari proses bidning (pembuatan token kartu).

Pembayaran akan terhenti jika:

1. Mata uang yang digunakan untuk transaksi belum didukung.

2. Jumlah pembayaran melebihi batas kredit nasabah atau dana di rekening tidak cukup (ditentukan oleh bank).

3. Rekening atau kartu nasabah tidak lagi aktif. Untuk setiap kasus di atas, dana nasabah tidak boleh didebet.

General Information

HTTP Method

POST

Path

/v1/directdebit/charges

Tipe Format

JSON

Authentication

OAuth 2.0 with Access Token

Header Structure & Sample

Key

Value

Mandatory

Length

Deskripsi

Authorization

Bearer {token}

M

N/A

Access Token

BRI-Timestamp

 

M

-

-

X-BRI-Signature

 

M

64

-

Content-Type

application/json

M

-

-

Idempotency-Key

Unique ID

M

-

request unique id untuk mencegah duplikasi data pada saat yang sama

 

Request Structure & Sample

Field

Data Type

Mandatory

Length

Deskripsi

Contoh

card_token

Text

M

 

token untuk memvalidasi transaksi dan status binding Anda

 

amount

number (2 Decimal Points)

M

 

Jumlah amount proses refund. Contoh 20000.00

 

currency

varchar (3)

M

 

Kode ISO tiga huruf untuk mata uang. Mata uang akan digunakan untuk payment charge

 

remarks

varchar (255)

O

 

remarks sebagai penanda pembayaran. Harus mengandung nilai unik jika digunakan untuk inquiry payment charge dan refund. Contoh "ext123456"

 

device_id

varchar (55)

O

 

Device ID yang digunakan oleh pengguna untuk melakukan payment charge

 

location

JSON

O

 

Lokasi pembayaran dilakukan

 

metadata

JSON

O

 

Merchant metadata. Harus mengandung nilai unik jika digunakan untuk inquiry payment charge dan refund.

 

>trx_id

Varchar

M

 

ID Transaksi Partner

 

otp_bri_status

varchar (3)

O

 

otp bri status untuk menandakan bahwa transaksi menggunakan OTP atau tidak. Jika YES maka akan menggunakan OTP, jika NO maka tidak menggunakan OTP. Secara default jika nilainya kosong maka akan menggunakan OTP.

*CATATAN: jika otp_bri_status = NO maka akan langsung diproses transaksinya dengan response sukses dan daftar error code yang berbeda. Silahkan melihat ke contoh response dan daftar error atau response code.

 

callback_url

string

O

 

Url untuk mengirim callback notification. Wajib hanya jika partner menggunakan fitur callback. Jika tidak, tidak perlu.

 

 

 Response Structure & Sample untuk yang memakai OTP

Field

Data Type

Mandatory

Length

Description

Example

status

varchar

M

40

Pending User Verification

 

charge_token

varchar

M

40

kode string untuk verifikasi OTP

 

 

 Response Structure & Sample untuk yang tanpa OTP

Field

Data Type

Mandatory

Length

Description

Example

status

varchar

M

4

status proses transaksi

0000

payment_id

varchar

M

12

payment_id menghasilkan setelah transaksi

 

amount

number (2 Decimal Points)

M

-

Jumlah amount yang dibayarkan oleh pengguna. Contoh 20000.00

 

currency

varchar

M

3

Kode ISO tiga huruf untuk mata uang. Mata uang akan digunakan untuk payment charge

 

payment_status

varchar

M

7

Nilainya akan SUCCESS untuk pembayaran yang berhasil. Jika pembayaran gagal, payment_status tidak akan dikembalikan (sistem akan mengembalikan kode error dan pesan error)

 

remarks

varchar

M

15

remakrs sebagai penanda payment charge

 

>trx_id

varchar

M

64

ID Transaksi Partner

 

device_id

varchar

O

55

device ID yang digunakan oleh pengguna untuk melakukan payment charge

 

location

JSON

O

-

Lokasi payment charge dilakukan

 

metadata

JSON

M

-

Merchant metadata

 
code varchar M 4 Hanya berlaku untuk pembayaran gagal. Error Code  
message text M - Hanya berlaku untuk pembayaran gagal. Error Description  
status_code varchar M 3 Hanya berlaku untuk pembayaran gagal. Status Code.  
recorded_at datetime M - Hanya berlaku untuk pembayaran gagal. Error Response Datetime.  

Request & Response Payload Sample

Request:

            curl -X POST ' https://sandbox.partner.api.bri.co.id/v1.2/directdebit/charges'
                        \
                    -H 'Authorization: Bearer {{TOKEN}}' \
                    -H 'BRI-Timestamp: 2019-05-14T02:25:06.379Z' \
                    -H 'Content-Type: application/json' \
                    -H 'Idempotency-Key: 0.6434517166433735' \
                    -H 'X-BRI-Signature: {{SIGNATURE}}' \
                    -d '{
                    "body":{
                    "card_token":
                    "card_.eyJleHAiOjE1ODkzNTA4NDEsImlhdCI6MTU1NzcyODQ0MSwiaXNzIjoiQmFuayBCUkkgLSBEQ0UiLCJqdGkiOiJlM2YzNTQxNC00MTc4LTRlYzgtYmY2Ny03MjI2MzkyNjY3YTciLCJwYXJ0bmVySWQiOiLvv70iLCJzZXJ2aWNlTmFtZSI6IkREX0VYVEVSTkFMX1NFUlZJQ0UifQ.PMuH4Fq9TkacFSQE2nwr-Dr7icRPlOOxYv2_XeoOjzidTm8dRwD9xy1lpvc_JJiUUQ_WFsL-o267BkL4tpnUWNxjA0ggnfsIsJQzZUSKtQYPozi7ZSLgV4VHOMqDJxBAFb-TeuNhN6obQBpsWBc4g3e0iOvEWKvk56AviR9Hs-CIQvqoYUEds8PgOyWCdbCnT76LLBzBWjML6JVXSMbtR-J3nDvE4ykq_ajDkgVeHbgFiTPiBtnsXVskbDGZMma1kVijr5GS4cxdqAq7xzYRnFpbVNHyxUrzVKYrGGgYoHM6K3-zM8wlhfHqssjyO86DyvdmfTF1398ZT-B8uv9zog",
                    
                    "amount":"25099.00",
                    "currency":"IDR",
                    "remarks":"Remakrs Merchant",
                    "otp_bri_status": "YES",
                    "metadata":{
                    "trx_id":"12345687"
                    }
                    "callback_url": "http://(url_partner)/directdebit/notif/charges"
                    
                    }
                    }'  

Normal Response untuk yang memakai OTP:

        
          {
                    "body": {
                    "charge_token":"CHARGE_M3AVZN3LQSX5Q3YZSUHDLT7UAUMANZAP",
                    "status": "PENDING_USER_VERIFICATION"
               }
        }                    

Normal Response untuk yang tanpa OTP:

            {
                    "body": {
                    "status": "0000",
                    "payment_id": "175226995569",
                    "amount": "20000.00",
                    "currency": "IDR",
                    "remarks": "payment",
                    "device_id": "",
                    "payment_status": "SUCCESS",
                    "location": {
                    "lat": "-6.21462",
                    "lon": "106.84513"
                    },
                    "metadata": {
                    "trx_id":"12345687"
                    }
                 }
              }


Error Response (berlaku untuk memakai OTP atau tanpa OTP):

              
             {
                      "error": {
                        "code": "0006",
                        "message": "Invalid card token"
                      },
                      "status_code": 400,
                      "recorded_at": "2021-02-10T11:11:10Z"
                    }


List of Error/Response Code untuk yang memakai OTP

Http Status

Code

Status Code Status

Message

Description

200

-

- PENDING_USER_VERIFICATION

-

sukses diidentifikasi oleh otp token 

400

0402

400 -

payment currency not supported

Permintaan Charge OTP gagal

400

0109

400 -

Your card is blocked or disabled

Permintaan Charge OTP gagal

400

0407

400 -

account is closed or frozen

Permintaan Charge OTP gagal

400

0413

400 -

Transaction Timeout

Transaction Timeout

400

0111

400 -

Duplicate Idempotency Key

Permintaan Charge OTP gagal

400

0924

400 -

OTP requests have reached the maximum

Permintaan otp maksimum setelah 5 kali permintaan otp tidak diverifikasi atau verifikasi gagal

400

0921

400 -

Send OTP Failed

Gagal Mengirim Layanan OTP

400

0006

400 -

Invalid card token

Gagal Mengirim Layanan OTP

 

 List of Error/Response Code untuk yang tanpa OTP

Http Status Code Status Code Status Message Description

200

-

- 0000

payment success

transaksi telah diproses, payment charge berhasil ditunjukkan dengan payment_status = SUCCESS

400

0401

400 -

over limit

Charge Gagal

400

0403

400 -

charge payment failed

Charge Gagal

400

0404

400 -

insufficient balance

Charge Gagal

400

0405

400 -

account is frozen

Charge Gagal

400

0406

400 -

account is closed

Charge Gagal

400

0407

400 -

account is closed or frozen

Charge Gagal

400 0408 400 - account not found Charge Gagal

400

0402

400 -

payment currency not supported

Permintaan Charge OTP gagal

400

0413

400 -

Transaction Timeout

Transaction Timeout

400

0109

400 -

Your card is blocked or disabled

Permintaan Charge OTP gagal

400

0111

400 -

Duplicate Idempotency Key

Permintaan Charge OTP gagal

400

0006

400 -

Invalid card token

Permintaan Charge OTP gagal

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

9. Create Payment Charge OTP Verify

Endpoint Description

API ini digunakan untuk memverifikasi Request OTP charge dari transaksi.

Catatan: OTP dan Notif (Binding dan Payment) yang sebelumnya dikirimkan melalui SMS akan dikirimkan melalui Whatsapp.

General Information

HTTP Method

POST

Path

/v1/directdebit/charges/verify

Tipe Format

JSON

Authentication

OAuth 2.0 with Access Token

Header Structure & Sample

Key

Value

Mandatory

Length

Description

Authorization

Bearer {token}

M

N/A

Access Token

BRI-Timestamp

 

M

-

-

X-BRI-Signature

 

M

64

-

Content-Type

application/json

M

-

-

 

Request Structure & Sample

Field

Data Type

Mandatory

Length

Description

Example

card_token

Text

M

-

token untuk memvalidasi transaksi dan status binding Anda

card_token.xxxxx

charge_token

varchar

M

40

Kode string OTP yang akan diverifikasi dengan passcode

yang diperoleh pengguna

CHARGE_XXXXX

passcode

int

M

6

passcode yang telah dikirim ke pengguna

999999

 

Response Structure & Sample

Field

Data Type

Mandatory

Length

Description

Example

status

varchar

M

4

status proses transaksi

0000

payment_id

varchar

M

12

payment_id menghasilkan setelah transaksi

 

amount

number (2 Decimal Points)

M

-

Jumlah amount yang dibayarkan oleh pengguna. Contoh 20000.00

 

currency

varchar

M

3

Kode ISO tiga huruf untuk mata uang. Mata uang akan digunakan untuk payment charge

 

payment_status

varchar

M

7

Nilainya akan SUCCESS untuk pembayaran yang berhasil. Jika pembayaran gagal, payment_status tidak akan dikembalikan

(sistem akan mengembalikan kode error dan pesan error)

 

remarks

varchar

M

15

remakrs sebagai penanda payment charge

 

device_id

varchar

O

55

device ID yang digunakan oleh pengguna untuk melakukan payment charge

 

location

JSON

O

-

Lokasi payment charge dilakukan

 

metadata

JSON

O

-

Merchant metadata

 
code varchar M 4 Hanya berlaku untuk pembayaran gagal. Error Code.   
message text M - Hanya berlaku untuk pembayaran gagal. Error Description.   
status_code varchar M 3 Hanya berlaku untuk pembayaran gagal. Status Code.  
recorded_at datetime M - Hanya berlaku untuk pembayaran gagal. Error Response Datetime  

Request & Response Payload Sample

Request:

          curl -X POST 'https://sandbox.partner.api.bri.co.id/v1.2/directdebit/charges/verify'
                 -H 'Authorization: Bearer {{TOKEN}}' \
                 -H 'BRI-Timestamp: 2019-05-14T02:25:06.379Z' \
                 -H 'Content-Type: application/json' \
                 -H 'X-BRI-Signature: {{SIGNATURE}}' \
                     -d '{
                           "body":{
                              "card_token":
                              "card_.eyJleHAiOjE1ODk0MjE0MzcsImlhdCI6MTU1Nzc5OTAzNywiaXNzIjoiQmFuayBCUkkgLSBEQ0UiLCJqdGkiOiIxMGI4M2U2Yy0zMmUxLTQxNDctYjI5My01OTg5YWU3Nzk5NTYiLCJwYXJ0bmVySWQiOiLvv70iLCJzZXJ2aWNlTmFtZSI6IkREX0VYVEVSTkFMX1NFUlZJQ0UifQ.MAdArs3zmCsehnWcwhA5m-fwCUory6oudxVtmMS9dC7bXCnRjq91AwRxBADjWLu2S6Ra_RxRAnHU03_H8QJclvLad9L6P-pqZX_pRKDPOI1Y_i0xVYOfc8ea6B2so1aEuvFoOQNFMbGSsaLz4JO-OuJ6EYfoApTFSMIKOh__jkcxcXqpM1sO3ZlkquXKGpx_zf87boVPNY58KbIPWgzCC-6V2Vxpm4DPGunKkEwVMz4z12vTTbv3Ph9rc1Gf0jRXw8b8wo3k2ZeVGoHwiKbyJ_8J7FTVxkm3funDpcQtPzFzgBMPRgWWtfT7IOZddrVwsFt9FKLUKLHTVyiu5R4ZYw",
                              "charge_token":
                              "CHARGE_XEHK6S4SNTBRSTCFBDB65W3GHQXBEFI4::De5g",
                              "passcode":"210074"
                      }
             }'
                       

Normal Response :


    {
        "body": {
        "status": "0000",
        "payment_id": "175226995569",
        "amount": "20000.00",
        "currency": "IDR",
        "remarks": "payment",
        "device_id": "",
        "payment_status": "SUCCESS",
        "location": {
        "lat": "-6.21462",
        "lon": "106.84513"
        },
        "metadata": {
        "payment_id":
            "0984645728"
        }
     }
  }
            

Error Response :

    
{
"error":{ 
"code": "0403",
"message": "charge payment failed"
},
"status_code": 400,
"recorded_at": "2021-02-10T05:36:27Z" 
}

                        

List of Error/Response Code

Http Status

Code

Status Code Status

Message

Description

200

-

- 0000

payment success

transaksi telah diproses, payment charge berhasil ditunjukkan dengan payment_status = SUCCESS

400

0918

400 -

Invalid Passcode

Charge Gagal

400

0919

400 -

Error Validate OTP Passcode

Charge Gagal

400

0920

400 -

Expired OTP

Charge Gagal

400

0922

400 -

Invalid OTP Token

Charge Gagal

400

0401

400 -

over limit

Charge Failed

400

0403

400 -

charge payment failed

Charge Gagal

400

0404

400 -

insufficient balance

Charge Gagal

400

0405

400 -

account is frozen

Charge Gagal

400

0406

400 -

account is closed

Charge Failed

400

0407

400 -

account is closed or frozen

Charge Gagal

400 0408 400 - account not found Charge Gagal
Seluruh response error yang tidak tercantum dalam list response BRIAPI memiliki status pending dan perlu dilakukan pengecekan

10. Create Payment Refund

Endpoint Description

API Refund digunakan untuk membuat permintaan pengembalian dana untuk pembayaran yang berhasil sebelumnya. Pengembalian dana dapat dilakukan dengan jumlah penuh atau sebagian.

General Information

HTTP Method

POST

Path

/v1/directdebit/refunds

Tipe Format

JSON

Authentication

OAuth 2.0 with Access Token

Header Structure & Sample

Key

Value

Mandatory

Length

Description

Authorization

Bearer {token}

M

N/A

Access Token

BRI-Timestamp

 

M

-

-

X-BRI-Signature

 

M

64

-

Content-Type

application/json

M

-

-

Idempotency-Key

Unique ID

M

-

unique id request for preventing duplicate requests at the same time

 

Request Structure & Sample

Field

Data Type

Mandatory

Length

Description

Example

card_token

Text

O

-

token untuk memvalidasi transaksi dan status binding Anda

 

payment_id

varchar

M

12

payment_id dari respons API charge

 

amount

number (2 Decimal Points)

M

-

Jumlah amount proses refund. Contoh 20000.00

 

currency

varchar

M

3

mata uang yang digunakan untuk refund

 

reason

text

O

-

Alasan pengguna melakukan refund yang dijadikan remark. Harus mengandung nilai unik jika digunakan untuk inquiry payment charge dan refund.

 

device_id

varchar

O

55

Device ID yang digunakan oleh pengguna untuk melakukan refund

 

location

JSON

O

-

Lokasi refund dilakukan

 

metadata

JSON

O

-

Merchant metadata. Harus mengandung nilai unik jika digunakan untuk inquiry payment charge dan refund.

 

callback_url

string

O

 

Url untuk mengirim callback notification. Wajib hanya jika partner menggunakan fitur callback. Jika tidak, tidak perlu

 

 

Response Structure & Sample

Field

Data Type

Mandatory

Length

Description

Example

status

varchar

M

4

status proses transaksi refund 

0000

refund_id

varchar

M

12

Refund_id dihasilkan setelah transaksi refund sukses

 

payment_id

varchar

M

12

Payment_id untuk transaksi charge terkait

 

amount

number (2 Decimal Points)

M

-

Jumlah amount yang diproses refund. Contoh 20000.00

 

 

currency

varchar

M

3

Kode ISO tiga huruf untuk mata uang. Mata uang yang digunakan untuk refund ke pengguna

 

reason

varchar

O

15

reason sebagai remark refund

 
refund_status varchar M 6

Nilainya akan SUCCESS untuk pengembalian dana yang berhasil. Jika pengembalian dana gagal, refund_status tidak akan dikembalikan

(sistem akan mengembalikan kode kesalahan dan pesan kesalahan)

 

device_id

varchar

O

55

Device ID yang digunakan oleh pengguna untuk melakukan refund

 

location

JSON

O

-

Lokasi refund dilakukan

 

metadata

JSON

M

-

Merchant metadata

 

Request & Response Payload Sample

Request:

    curl -X POST 'https://sandbox.partner.api.bri.co.id/v1.2/directdebit/refunds
                        \
                    -H 'Authorization: Bearer {{TOKEN}}' \
                    -H 'BRI-Timestamp: 2019-05-14T02:25:06.379Z' \
                    -H 'Content-Type: application/json' \
                    -H 'Idempotency-Key: 0.6434517166433735' \
                    -H 'X-BRI-Signature: {{SIGNATURE}}' \
                    -d '{
                    "body": {
                    "card_token":
                        "card_.eyJleHAiOjE1ODMzOTM4OTIsImlhdCI6MTU1MTc3MTQ5MiwiaXNzIjoiQmFuayBCUkkgLSBEQ0UiLCJqdGkiOiIyNWQ4MWZmNy04NmY3LTQ5NWItYWUwNi04MTQ1ZGRlMTI1MmMiLCJwYXJ0bmVySWQiOiLvv70iLCJzZXJ2aWNlTmFtZSI6IkREX0VYVEVSTkFMX1NFUlZJQ0UifQ.tVaYUv8VZSbAr6_wQCDCQuGiD_5malWPu33RCTM9l1N0cGHTLO5Czh6SYGxT4tfFLRAesfNB1qBKtPc0SA_bMHkJDsQ8E68KPDpoIEkh33BxHrStrordGy6-De9jDKleHmz1qos4h0ZeYT-vetBjWkhugOZgYQBRJDKT0z7GhRa5MtkK8X4yV2zXypZiDy_AZd7TJH9AvMt5zH6duyfLDtfqf5DmS6gnG5DwbwLPSYm7WlTJ8UTh94kZjdQW-t-UEVHfatNyitayQmZVwRkWwz-TyUABzZWgRluu4Hfsp_jTydYr_yEhv0TE-CFCgP7RmDNJEqpQ2q4DXFtD3i3oOg",
                    
                    "amount":"500.00",
                    "payment_id": "989453118305",
                    "currency": "IDR",
                    "reason": "DANAREFUND",
                    "metadata": {
                    "trx_refund_id": "12345687"
                    }
                    "callback_url": "http://(url_partner)/directdebit/notif/refunds"
                    }
                   }'

Normal Response :

    {
        "body": {
        "status": "0000",
        "refund_id": "6218763823",
        "payment_id": "89937492374",
        "amount": "20000.00",
        "currency": "IDR",
        "reason": "incorrect stuff",
        "refund_status": "SUCCESS",
        "device_id": "lg-lllll",
        "location": {
        "lat": "-6.21462",
        "lon": "106.84513"
        },
        "metadata": {
        "trx_refund_id":"12345687"
        
        }
        }
            

Error Response :

    {
        "error": {
           "code": "0504",
           "message": "refund payment failed to get payment id"
         },
         "status_code": 400,
         "recorded_at": "2021-02-10T11:22:03Z"
       }
                        

List of Error/Response Code

Http Status

Code

Status Code Status

Message

Description

200

-

- 0000

transaction processed

refund telah diproses, refund berhasil ditunjukkan dengan refund_status

= SUCCESS

400

0501

400 -

refund currency not supported

Refund Gagal

400

0502

400 -

refund amount is greater than paid amount

Refund Gagal

400

0503

400 -

refund payment failed

Refund Gagal

400

0405

400 -

account is frozen

Refund Gagal

400

0406

400 -

account is closed

Refund Gagal

400 0408 400 - account not found Refund Gagal

400

0404

400 -

insufficient balance

Refund Gagal

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

11. Callback API Direct Debit Charges

Endpoint Description

Callback API untuk mengirim pemberitahuan dari charge

* CATATAN: Transaksi berhasil jika parameter status = 0000 dan parameter payment_status = SUCCESS,

sedangkan transaksi gagal jika parameter status = 0000 dan parameter payment_status = GAGAL

 

General Information

HTTP Method

POST

Path

/directdebit/notif/charges

Tipe Format

JSON

Authentication

OAuth 2.0 with Access Token

Header Structure & Sample

Key

Value

Mandatory

Length

Description

Merchant-Key

{client_id}

M

N/A

useclient_idfromdevelopers.bri.co.id

BRI-Timestamp

 

M

-

-

X-BRI-Signature

 

M

64

-

Content-Type

application/json

M

-

-

 

Contoh payload signature:

path=/directdebit/notif/charges&verb=POST&token={{Merchant-Key}}&timestamp=2019-01-02T13:14:15.678Z&body={{Body Payload}}

Data payload dienkripsi dengan algoritma SHA256-HMAC menggunakan client_secret Anda. Signature dibentuk oleh payload yang sudah ditentukan. Hasil signature kemudian di- encode dengan Base64 dan diisi ke dalam header permintaan API X-BRI-Signature.

 

Request Structure & Sample

Field

Data Type

Mandatory

Length

Deskripsi

Contoh

status

Text

M

-

status pengiriman callback, jika partner berhasil menerima callback, nilainya akan selalu '0000'

0000

payment_id

varchar

M

12

payment_id dari respon API charge

12345678901

amount

number (2 Decimal Points)

M

-

Jumlah proses amount transaksi

20000.00

currency

varchar

M

3

mata uang yang digunakan untuk pembayaran

IDR

remarks

text

O

-

Remarks sebagai penanda pembayaran

trx_123456

device_id

varchar

O

55

Device ID yang digunakan oleh pengguna untuk

melakukan pembayaran

1234567

location

JSON

O

-

Lokasi payment dilakukan

{
"lon":"",
"lat":""
}

metadata

JSON

O

-

Merchant metadata

{
"trx_id:"123456"
}

payment_status

string

M

 

Mengindikasikan status payment (FAILED / SUCCESS)

SUCCESS

 

Response Structure & Sample

Field

Data Type

Mandatory

Length

Description

Example

response_code

varchar

M

4

code of process transaction

 merujuk tabel List of Error/Response Code di bawah ini

response_description

varchar

M

40

description of code

 merujuk tabel List of Error/Response Code di bawah ini

 

Request & Response Payload Sample

Request:


    {
        "body": {
        "status": "0000",
        "payment_id": "950414364491",
        "amount": "1000.00",
        "currency": "IDR",
        "remarks": "TESTFEN",
        "device_id": "",
        "payment_status": "SUCCESS",
        "location": {
        "lat": "",
        "lon": ""
        },
        "metadata": {
        "trx_id": "12345687"
        },
        "limit_transaction": "-"
      }
    }
                       
  

Response:

    {
        "response_code": "0000",
        "response_description": "success",
        }
            

List of Error/Response Code

Http Status

Response Code

Response Description

200

0000

notification send

400

1010

notification failed

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

12. Callback API Direct Debit Refunds

Endpoint Description

Callback API untuk mengirimkan pemberitahuan dari refund

*CATATAN: Refund berhasil jika parameter status = 0000 dan parameter refund_status = SUCCESS,

sedangkan refund gagal jika parameter status = 0000 dan parameter refund_status = FAILED

 

General Information

HTTP Method

POST

Path

/directdebit/notif/refunds

Tipe Format

JSON

Authentication

OAuth 2.0 with Access Token

 

Header Structure & Sample

Key

Value

Mandatory

Length

Deskripsi

Merchant-Key

{client_id}

M

N/A

Using client_id fromdevelopers.bri.co.id

BRI-Timestamp

 

M

-

-

X-BRI-Signature

 

M

64

-

Content-Type

application/json

M

-

-

 

Contoh payload signature:

path=/directdebit/notif/refunds&verb=POST&token={{Merchant-Key}}&timestamp=2019-01-02T13:14:15.678Z&body={{Body Payload}}

Data payload dienkripsi dengan algoritma SHA256-HMAC menggunakan client_secret Anda. Signature dibentuk oleh payload yang sudah ditentukan. Hasil signature kemudian di- encode dengan Base64 dan diisi ke dalam header permintaan API X-BRI-Signature.

 

Request Structure & Sample

Field

Data Type

Mandatory

Length

Deskripsi

Contoh

status

Text

M

-

status pengiriman callback, jika partner berhasil menerima panggilan balik, nilainya akan selalu '0000'

'0000'

payment_id

varchar

M

12

Payment_id untuk transaksi charge terkait

12345678901

refund_id

varchar

M

12

Refund_id dihasilkan setelah transaksi refund sukses

12345678901

amount

number (2 Decimal Points)

M

-

Jumlah amount yang diproses refund

20000.00

currency

varchar

M

3

mata uang yang digunakan untuk refund

IDR

reason

text

N

-

reason sebagai remark refund

trx_123456

device_id

varchar

N

55

Device ID yang digunakan oleh pengguna untuk

melakukan pembayaran

123456

location

JSON

N

-

Lokasi refund dilakukan

{
"lon":"",
"lat":""
}

metadata

JSON

N

-

Merchant metadata

{
"trx_id:"123456"
}

refund_status

string

M

 

Mengindikasikan status refund (FAILED / SUCCESS)

 

 

Response Structure & Sample

Field

Data Type

Mandatory

Length

Description

Example

response_code

varchar

M

4

code of process transaction

  merujuk tabel List of Error/Response Code di bawah ini

response_description

varchar

M

40

description of code

 merujuk tabel List of Error/Response Code di bawah ini

 

Request & Response Payload Sample

Request:

    {
        "body": {
        "status": "0000",
        "refund_id": "6218763823",
        "payment_id": "89937492374",
        "amount": "20000.00",
        "currency": "IDR",
        "reason": "incorrect stuff",
        "refund_status": "SUCCESS",
        "device_id": "lg-lllll",
        "location": {
        "lat": "-6.21462",
        "lon": "106.84513"
        },
        "metadata": {
        "example1": "example1"
        
        }
    }
                       
  

Response:

    {
        "response_code": "0000",
        "response_description": "success",
        
    }
            

List of Error/Response Code

Http Code

Response Code

Response Description

200

0000

notification send

400

1010

notification failed

Common Error

Http Code

Response Code

Message

Deskripsi

400

0001

Wrong message format

 invalid input format

400

0003

Invalid BRI API Key

ada masalah intermitent pada koneksi ke database dalam sistem BRI

400

0006

Invalid card token

 

400

0009

Missing Card Pan

 
400 0998 Gateway Timeout  
400 0999 General Error  
401 0601 Invalid Token  
401 0602 Invalid Signature  
Seluruh response error yang tidak tercantum dalam list response BRIAPI memiliki status pending dan perlu dilakukan pengecekan