APIDOCS Direct Debit SNAP BI

API Information

Title API Transfer Debit SNAP BI - API Direct Debit
Version v2.0
URL Sandbox https://sandbox.partner.api.bri.co.id
URL Production  

Document Version Control

Doc Version API Version Date Document link Description
v1.0 v1.0 02 Dec 2021 Here Baseline version.

v1.1

v2.0

19 Feb 2024

this pages

Update Details :

  • Upgrade Version from v1.0 to v2.0
  • Endpoint Payment (host-to-host)
    • Request urlParam : Data Type from object to array
    • Request transAmount : Name from transAmount to amount
    • Request chargeToken : additional field
    • Request bankCardToken Length additional note 560 Note : Length SNAP BI (128)
    • Response (without OTP) additionalInfo : Data Type from string to object
  • Endpoint Payment Status
    • Response originalResponseCode : Mandatory form M to O
    • Response refundHistory : Mandatory from M to O
    • Response serviceCode : Mandatory from M (filled according to Payment serviceCode)
  • Endpoint Refund Payment
    • Request originalReferenceNo : Mandatory from M to M Notes : SNAP BI (O)
    • Request refundAmount : Mandatory from M to O
    • Response originalPartnerReferenceNo : Mandatory from M to M Notes : SNAP BI (O)
    • Response originalReferenceNo : Mandatory from M to M Notes : SNAP BI (O)
  • Update Request dan Response Sample di endpoint Payment (host-to-host), Payment Status, Payment Notify, Refund Payment, Refund Notify

Product Description

Note: OTP and Notifications (Binding and Payment) that were previously sent via SMS will be sent via Whatsapp

Product Overview

The Debit Transfer API is used to make fund transfers from one account to another, both in the same PJP AIS or different PJP AIS initiated by the beneficiary party

Remark Rekening Koran

16 character (DRDBT/DRRFN+5 digit partner code+2 digit transaction code+4 digit last card)+space+12 digit paymentid+space+10 character trx_id partner retrieved from partnerReferenceNo

Header

Key

Value

Format

Mandatory

Length

Deskripsi

Authorization

Authorization

Alphanumeric

M

 

Bearer {Token}

X-TIMESTAMP

BRI - timestamp

Datetime

M

 

Format Timestamp ISO8601

X-SIGNATURE

BRI - Signature

Alphanumeric

M

 

HMAC_SHA512

Content-Type

application/json

Alpha

M

 

application/json

X-PARTNER-ID

 

Alphanumeric

M

36

 

CHANNEL-ID

 

Alpha

M

5

 

X-EXTERNAL-ID

 

Numeric

M

36

 

Endpoint

A. Direct Debit Payment

This endpoint is used to payments from transactions based on the card number on the card_token obtained from the binding process (card token creation)

Note: OTP and Notifications (Binding and Payment) that were previously sent via SMS will be sent via Whatsapp

General Information

HTTP Method

POST

Path

snap/v2.0/debit/payment-host-to-host

Tipe Format

JSON

Authentication

OAuth 2.0 with Access Token

Request Structure

Field

Data  Type

Format

Mandatory

Length

Description

Example

partnerReferenceNo

String

Alphanumeric

M

64

Transaction identifier on partner system

213423121521232

urlParam

Array of Object

 

O

 

 

 

>url

String

Alphanumeric

M

512

URL for callback

http://iniurl. com

>type

String

Alpha

M

32

URL Type PAY_RETURN/PAY _NOTIFY

PAY_NOTIFY

>isDeepLink

String

Alpha

M

1

is the URL a deeplink URL or not Y/N

N

amount

Object

 

O

 

 

 

>value

String

(ISO4217)

Numeric

M

15,2

Note :

SNAP BI

Length

(16,2)

Transaction amount that will be paid using this payment method If it’s IDR then value

includes 2 decimal digits. e.g. IDR 10.000,- will be placed with 10000.00

12345678.00

>currency

String

Alpha

M

3

Currency

IDR

chargeToken

String

Alphanumeric

M

40

string code for verification OTP

00007100010926

bankCardToken

String

 

M

Note :

SNAP BI

(O)

560

Note :

SNAP BI

Length

(128)

 

0000710001 0926

additionalInfo

Object

 

O

 

Additional information

 

>otpStatus

String

Alpha

M

3

 

 

>settlementAccount

String

Numeric

M

16

 

 

>merchantTrxId

String

Alpha

O

64

 

 

>remarks String Alphanumeric O 64 Remark transaksi yang akan disertakan di report  

Response Structure & Sample (OTP)

Field

Data Type

Format

Mandatory

Length

Description

Example

responseCode

String

Numeric

M

7

Response code

2005400

responseMessage

String

Alpha

M

150

Response description

Successful

referenceNo

String

Numeric

M

Note :

SNAP BI (C)

64

Transaction identifier on service consumer system

2020102900 0000000000 01

partnerReferenceNo

String

Alphanumeric

O

64

Transaction identifier on service provider system. Must be filled upon successful transaction

test-2020102977 7700000000 09

additionalInfo

Object

 

O

 

Additional information

 

>chargeToken

String

Alphanumeric

M

50

Note : SNAP BI

Length (40)

 

 

>merchantTrxId

String

Alphanumeric

O

64

 

 

>remarks

String

Alphanumeric

O

64

Remark transaksi yang akan disertakan di report

 

Response Structure & Sample (without OTP)

Field

Data Type

Format

Mandatory

Length

Description

Example

responseCode

String

Numeric

M

7

Response code

2005400

responseMessage

String

Alpha

M

150

Response description

Successful

partnerReferenceNo

String

Alphanumeric

O

64

Transaction identifier on service consumer system

213423121521232

referenceNo

String

Numeric

M

Note :

SNAP BI (C)

64

Transaction identifier on service provider system. Must be filled upon successful transaction

2020102977 7700000000 09

additionalInfo

Object

 

O

 

Additional information

 

>amount

String

Numeric

M

15,2

Note :

SNAP BI

Length (16,2)

Transaction amount that will be paid using this payment method If it’s IDR then value

includes 2 decimal digits. e.g. IDR 10.000,- will be placed with 10000.00

2000.00

>currency

String

Alpha

M

3

currency

IDR

>merchantTrxId

String

Alphanumeric

O

64

 

 

>remarks

String

Alphanumeric

O

64

Remark transactions that will be included in the report

 

Request & Response Payload Sample

Request :

{
   "partnerReferenceNo":"426306015176",
   "urlParam":[
      {
         "url":"https://5fdc5f1948321c00170119e0.mockapi.io/api/v1/simulation/simulation",
         "type":"PAY_NOTIFY",
         "isDeepLink":"N"
      }
   ],
   "amount":{
      "value":"10000.00",
      "currency":"IDR"
   },
   "chargeToken":"null",
   "bankCardToken":"card_.eyJpYXQiOjE3MDgwNTAzNTYsImlzcyI6IkJhbmsgQlJJIC0gRENFIiwianRpIjoiNmY2MmE4ZjUtMGUwMS00NjFjLWJlZmQtYjk3ZWE5YjNmMmIwIiwicGFydG5lcklkIjoi77-9Iiwic2VydmljZU5hbWUiOiJERF9FWFRFUk5BTF9TRVJWSUNFIn0.HR4P9PecyfCZLJ-ibeuxuuWtHzWHrzgunjxiEQJZEjZHO2fQqrMgaO8IUnmACtNJilGOpIQAc7Jsa5W_tCF4KmIpC5jB-tDw40tpqImZ9Famt_hzgacrDcByw2jT9UAPMH444kGAQa7z44PV6jcHdQoaIAfiOkChHw-b11Vg4LyETbsEExvOcL2hKomG_JXpDq5bYmuHcJ2SJ8lRnGomi-7oz_dyM0_wUe1fmE6UyLnvEFz6o6q8nXtm_3g29cLP_4uw5BT54DuSXrRdmw4J7PK3zl2qUnM7CBpYVRLr74iCx9SLGYIMMROE7aGe_DkNfK-dnLKgcvIaN0q-rnLbhg",
   "additionalInfo":{
      "otpStatus":"NO",
      "settlementAccount":"020601000109305",
      "merchantTrxId":"",
      "remarks":"test remark 1"
   }
}

Normal Response ( OTP ):

{
   "responseCode":"2005400",
   "responseMessage":"Successful",
   "referenceNo":"84191395354248915228",
   "partnerReferenceNo":"213423121521232",
   "additionalInfo":{
      "chargeToken":"7KNSxmbcMjD16aP",
      "merchantTrxId":"",
      "remarks":""
   }
}                       

Normal Response ( without OTP ):

{
   "responseCode":"2005400",
   "responseMessage":"Successful",
   "referenceNo":"673331266487",
   "partnerReferenceNo":"426306015176",
   "additionalInfo":{
      "amount":"10000.00",
      "currency":"IDR",
      "merchantTrxId":"",
      "remarks":"test remark 1"
   }
}

Error Response :

{
    "responseCode": "4035418",
    "responseMessage": "Inactive Account"
}                                                   

List of Error/Response Code

HTTP Status

Service Code

Case Code

Status

Response Description

Description

200

54

00

Success

Successful

 

400

54

00

Failed

Bad Request

 

400

54

01

Failed

Invalid Field Format value

 

401

54

01

Failed

B2B2C Access Token Invalid/Expired

Token found in request is invalid (Access Token Not Exist, Access Token Expiry)

403

54

02

Failed

Exceeds Transaction Amount Limit

Exceeds Transaction Amount Limit

403

54

03

Failed

Suspected Fraud

 

403

54

05

Failed

Inactive Card/Account/Customer

Indicates Inactive account

403

54

08

Failed

Card Expired

 

403

54

14

Failed

Insufficient Funds

Insufficient Funds

403

54

15

Failed

Transaction Not Permitted.[Reason]

-Transaction Not Permitted. Invalid settlementAccount (settlementAccount not BRI Account / Giro Account)

-Transaction Not Permitted. Duplicate merchantTrxId (merchantTrxId have been used)

-Transaction Not Permitted. Failed Process

(The transaction failed)

403

54

18

Failed

Inactive Account

 

404

54

11

Failed

Card Token Invalid

 

404

54

13

Failed

Invalid Amount

The amount doesn't match with what supposed to

409

54

00

Failed

Conflict

Cannot use same X-EXTERNAL-ID in same day

409

54

01

Failed

Duplicate partnerReferenceNo

partnerReferenceNo already used

429

54

00

Failed

To Many Request

 

500

54

00

failed

General Error

 

504

54

00

Pending

Timeout

Timeout from the issuer (Check in report H+1)
Any error response not listed in the BRIAPI response list is considered pending and requires further investigation.

B. Payment Status

This endpoint is used to provide the status of the payment.

Note: Payment status can use "originalPartnerReferenceNo" or "originalReferenceNo", one of them needs to be filled even though it's actually optional

General Information

HTTP Method

POST

Path

snap/v2.0/debit/status

Tipe Format

JSON

Authentication

OAuth 2.0 with Access Token

Request Structure

Field

Data Type

Format

Mandatory

Length

Description

Example

originalPartnerReferenceNo

String

Alphanumeric

O

64

Original transaction identifier on service consumer system

2020102900000000000001

 

originalReferenceNo

String

Numeric

O

64

Original transaction identifier on service provider system

2020102977770000000009

serviceCode

String

Numeric

M

2

Transaction type indicator (service code of the original transaction request)

54

Response Structure & Sample

Field

Data Type

Format

Mandatory

Length

Description

Example

responseCode

String

Numeric

M

7

Response code

2005500

responseMessage

String

Alpha

M

150

Response description

Successful

originalPartnerReferenceNo

String

Alphanumeric

O

64

Original transaction identifier on service consumer system

2020102900 000000000001

originalReferenceNo

String

Numeric

O

Note:

SNAP BI

(C)

64

Original transaction identifier on service provider system. Must be filled upon successful transaction

2020102977770000000009

serviceCode

String

Numeric

M

2

Transaction type indicator (service code of the original transaction request)

17

latestTransactionStatus

String

Numeric

M

2

00 - Success

03 - Pending

06 - Failed

00

transactionStatusDesc

String

Alpha

M

Note:

SNAP BI

(O)

7

Note : SNAP

BI length (50)

Description status transaction

success

originalResponseCode

String

Numeric

O

7

Response code

2005500

refundHistory

Array of Object

 

O

 

 

 

>partnerRefundNo

String

Numeric

M

64

Reference Number from PJP AIS for the refund.

2398509182 0498120597 0

>refundAmount

Object

 

O

 

 

 

>>value

String (ISO4217)

Numeric

M

15,2

Note : SNAP BI Length (16,2)

Net amount of the refund

12345678.0 0

>>currency

String

Alpha

M

3

Currency

IDR

>refundStatus

String

Numeric

M

2

00 - Success

06 - Failed

00

>refundDate

String

Datetime

M

Note:

SNAP BI

(C)

25

(ISO 8601) transaction date : dd-MMyyyy

2020-12- 23T07:44:16 +07:00

>reason

String

Alpha

M

Note:

SNAP BI (O)

255

Note : SNAP BI length

(256)

Refund reason

Customer complain

Request & Response Payload Sample

Request :

{
   "originalPartnerReferenceNo":"815027979003",
   "originalReferenceNo":"574929794216",
   "serviceCode":"54"
}                                    

Normal Response :

{
   "responseCode":"2005500",
   "responseMessage":"Successful",
   "originalPartnerReferenceNo":"815027979003",
   "originalReferenceNo":"574929794216",
   "latestTransactionStatus":"00",
   "transactionStatusDesc":"SUCCESS",
   "originalResponseCode":"2005400"
}

Error Response :

{
  "responseCode": "4045501",
  "responseMessage": "Transaction Not Found"
}
                                                               

List of Error/Response Code

HTTP Status

Service Code

Case Code

Status

Response Message

Description

200

55

00

Success

Successful

 

400

55

01

Failed

Invalid Field Format [field request]

 

400

55

02

Failed

Invalid Mandatory Field [field request]

 

404

55

01

Failed

Transaction Not Found

 

409

55

00

Failed

Conflict

 

500

55

00

Failed

General Erorr

 

504

55

00

Pending

Timeout

 
Any error response not listed in the BRIAPI response list is considered pending and requires further investigation.

C. Payment Notify

This endpoint is used to provide the status of the payment.

General Information

HTTP Method

POST

Path

snap/v2.0/debit/notify

Tipe Format

JSON

Authentication

OAuth 2.0 with Access Token

Request Structure

Field

Data Type

Format

Mandatory

Length

Description

Example

originalPartnerReferenceNo

String

Alphanumeric

O

64

Original transaction identifier on service consumer system

202010290000

0000000001

originalReferenceNo

String

Numeric

M

64

Original transaction identifier on service provider system

202010297777

0000000009

amount

Object

 

O

 

 

 

>value

String

Numeric

M

15,2

Note :

SNAP BI

Length (16,2)

Net amount of the transaction. If it’s IDR then value includes 2 decimal

digits. e.g. IDR 10.000,- will be placed with 10000.00

12345678.0 0

>currency

String (ISO4217)

Alpha

M

3

Currency

IDR

latestTransactionStatus

String

Numeric

M

2

00 - Success

03 - Pending

06 - Failed

00

transactionStatusDescription

String

Alpha

O

50

Description status transaction

success

additionalInfo

Object

 

O

 

 

 

>merchantTrxid

String

Alphanumeric

O

64

 

30220107504

>refundId

String

Numeric

O

64

 

528786398613

>remarks

String

Alphanumeric

O

64

Remark transactions that will be included in the report

 

Response Structure & Sample

Field

Data Type

Format

Mandatory

Length

Description

Example

responseCode

String

Numeric

M

7

Response code

2005600

responseMessage

String

Alpha

M

150

Response description

Successful

Request & Response Payload Sample

Request (Merchant) :

{
   "originalPartnerReferenceNo":"202010290000000000056",
   "originalReferenceNo":"2020102900000000000009",
   "amount":{
      "value":"10000.00",
      "currency":"IDR"
   },
   "latestTransactionStatus":"00",
   "transactionStatusDesc":"success",
   "additionalInfo":{
      "merchantTrxid":"30220107504",
      "remarks":""
   }
}

Request (Refund) :

{
   "originalPartnerReferenceNo":"202010290000000000056",
   "originalReferenceNo":"2020102900000000000009",
   "amount":{
      "value":"10000.00",
      "currency":"IDR"
   },
   "latestTransactionStatus":"00",
   "transactionStatusDescription":"success",
   "additionalInfo":{
      "refundId":"528786398613"
   }
}

Normal Response :

{
   "responseCode":"2005600",
   "approvalCode":"7d3923bd03054c15",
   "responseMessage":"Successful"
}

Error Response :

{
"responseCode": "4045601",
"responseMessage": "Transaction Not Found"
}                                                                       

List of Error/Response Code

HTTP Status

Service Code

Case Code

Status

Response Message

Description

200

56

00

Success

Successful

 
500 56 00 Failed General Error  
Any error response not listed in the BRIAPI response list is considered pending and requires further investigation.

D. Refund Payment

This endpoint is used to create a refund request for a previously successful payment. Refunds can be made in full or in part.

General Information

HTTP Method

POST

Path

snap/v2.0/debit/refund

Tipe Format

JSON

Authentication

OAuth 2.0 with Access Token

Request Structure

Field

Data Type

Format

Mandatory

Length

Description

Example

originalPartnerReferenceNo

String

Alphanumeric

M

64

Original transaction identifier on service consumer system

2020102900000000000001

originalReferenceNo

String

Numeric

M

Notes :

SNAP BI

(O)

64

Original transaction identifier on service provider system

2020102977 7700000000 09

partnerRefundNo

String

Numeric

M

64

Reference Number from PJP AIS for the refund.

2398509182 0498120597 0

refundAmount

Object

 

O

 

 

 

>value

String

Numeric

M

15,2

Note :

SNAP BI Length (16,2)

Net amount of the refund. If it’s IDR then value includes 2 decimal digits.

e.g. IDR 10.000,- will be placed with 10000.00

10000.00

>currency

String

Alpha

M

3

Currency

IDR

reason

String

Alphanumeric

O

256

Refund reason

Customer complain

additionalInfo

Object

 

O

 

 

 

>callbackUrl

String

Alphanumeric

O

512

 

 

>settlementAccount

String

numeric

M

16

 

 

Response Structure & Sample

Field

Data Type

Format

Mandatory

Length

Description

Example

responseCode

String

Numeric

M

7

Response code

2005400

responseMessage

String

Alpha

M

150

Response description

Request has been processed successfully

originalReferenceNo

String

Numeric

M

64

Original transaction identifier on service provider system. Must be

filled upon successful transaction

2020102977770000000009

originalPartnerReferenceNo

String

Alphanumeric

M

Note :

SNAP BI (O)

64

Original transaction identifier on service consumer system

2020102900000000000001

refundNo

String

Numeric

M

64

Reference Number from PJP AIS for the refund

2398509182 04981205970

partnerRefundNo

String

Numeric

M

64

Reference Number from PJP AIS for the refund.

2398509182 04981205970

refundAmount

Object

 

O

 

 

 

>value

String

(ISO4217)

Numeric

M

15,2

Note :

SNAP BI

Length (16,2)

Net amount of the refund. If it’s IDR then value includes 2 decimal

digits. e.g. IDR 10.000,- will be placed with 10000.00

10000.00

>currency

String

Alpha

M

3

Currency

IDR

refundTime

String

Datetime

M

25

Refund time. ISO 8601

2020-12- 21T17:21:41

+07:00

Request & Response Payload Sample

Request :

{
   "originalPartnerReferenceNo":"341406425579",
   "originalReferenceNo":"992922915386",
   "partnerRefundNo":"341406425579",
   "refundAmount":{
      "value":"1000.00",
      "currency":"IDR"
   },
   "reason":"testing coba",
   "additionalInfo":{
      "callbackUrl":"https://5fdc5f1948321c00170119e0.mockapi.io/api/v1/simulation/simulation",
      "settlementAccount":"020601000109305"
   }
}

Normal Response :

{
   "responseCode":"2005800",
   "responseMessage":"Successful",
   "refundNo":"188908987725",
   "originalPartnerReferenceNo":"341406425579",
   "originalReferenceNo":"992922915386",
   "refundAmount":{
      "value":"1000.00",
      "currency":"IDR"
   },
   "refundTime":"2024-02-16T10:39:19+07:00",
   "partnerRefundNo":"testing coba"
}

Error Response :

{
"responseCode": "4045800",
"responseMessage": "Invalid Transaction Status"
}                                                                              

List of Error/Response Code

HTTP Status

Service Code

Case Code

Status

Response Message

Description

200

58

00

Success

Successful

 

400

58

00

Failed

Bad Request

 

400

58

01

Failed

Invalid Field Format [field request]

 

400

58

02

Failed

Invalid Mandatory Field [field request]

 

403

58

15

Failed

Transaction Not Permitted [Reason]

- Transaction Not Permitted. Invalid settlementAccount (settlementAccount not BRI Account / Giro Account)

- Transaction Not Permitted. Failed Process 

(The transaction failed)

404

58

13

Failed

Invalid Amount

 

404

58

18

Failed

Inconsistent Request

- Inconsistent request parameter found for the same partner reference number/transaction id

- partnerReferenceNo and referenceNo have been fully refund before

- partnerRefundNo have been used

- refund amount is greater than amount of transaction

404

58

00

Failed

Invalid transaction status

Invalid transaction status

404

58

01

Failed

Transaction Not Found

 

409

58

00

Failed

Conflict

 

500

58

00

Failed

General Erorr

 

504

58

00

Pending

Timeout

Timeout from the issuer (Check in report H+1)
Any error response not listed in the BRIAPI response list is considered pending and requires further investigation.

E. Refund Notify

This endpoint is used to provide notification of refund status

General Information

HTTP Method

POST

Path

snap/v2.0/debit/notify/refund

Tipe Format

JSON

Authentication

OAuth 2.0 with Access Token

Request Structure

Field

Data Type

Format

Mandatory

Length

Description

Example

originalPartnerReferenceNo

String

Alphanumeric

O

64

Original transaction identifier on service consumer system

202010290000000000056

originalReferenceNo

String

Numeric

M

64

Original transaction identifier on service provider system

2020102900000000000009

amount

Object

 

O

 

 

 

>value

String

Numeric

M

15,2

Note: SNAP BI Length (16,2)

Net amount of the transaction. If it’s IDR then value includes 2 decimal digits. e.g. IDR 10.000,- will be placed with 10000.00

10000000.00

>currency

String

(ISO4217)

Alpha

M

3

Currency

IDR

latestTransactionStatus

String

Numeric

M

2

00 - Success

03 - Pending

06 - Failed

00

transactionStatusDescription

String

Alpha

O

50

Description status transaction

success

additionalInfo

Object

 

O

 

 

 

>refundId

String

Numeric

O

64

 

528786398613

Response Structure & Sample

Field

Data Type

Format

Mandatory

Length

Description

Example

responseCode

String

Numeric

M

7

Response Code

2005600

responseMessage

String

Alpha

M

150

Respon description

Successful

Request & Response Payload Sample

Request :

{
    "originalPartnerReferenceNo": "202010290000000000056",
    "originalReferenceNo": "2020102900000000000009",
    "amount": {
        "value": "10000.00",
        "currency": "IDR"
    },
    "latestTransactionStatus": "00",
    "transactionStatusDescription": "success",
    "additionalInfo": {
    "refundId" : "528786398613"
}

}                                             

Normal Response :

{
    "responseCode": "2005600",
    "responseMessage": "Successful"
}                                 

Error Response :

{
 "responseCode": "4045601",
 "responseMessage": "Transaction Not Found"
}                                                                       

List of Error/Response Code

HTTP Status

Service Code

Case Code

Status

Response Message

Description

200

56

00

Success

Successful

 

500

56

00

Failed

General Error

 
Any error response not listed in the BRIAPI response list is considered pending and requires further investigation.