APIDOCS Direct Debit SNAP BI

API Information

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

Version Control

Doc Version API Version Date Document link Description
v1.0 v1.0 2 December 2021 this pages Baseline version.

v2.0

v1.0

21 April 2022

this pages

Update field format

v3.0

v1.0

26 Oct 2022

this pages

  • Added rekening koran remark information at the product description
  • Added remarks parameter to Direct Debit Payment and Payment Notify endpoint requests and responses
  • Updated latestTransactionStatus description parameter, only 3 options :
    • 00-Success
    • 03-Pending
    • 06-Failed
  • Remove response code 4045418 "Inconsistent Request" at Direct Debit Payment endpoint
  • Added response description to response code 4035415 at Direct Debit Payment endpoint:
    • Transaction Not Permitted. Failed Process (The transaction failed)
  • Added response code 4095401 "Duplicate partnerReferenceNo" at Direct Debit Payment endpoint
  • Update response description for response code 5045400 "Timeout (Check in report H+1) at Direct Debit Payment endpoint
  • Added response description to response code 4035815 at Refund Payment endpoint:
    • Transaction Not Permitted. Failed Process (The transaction failed)
  • Updated response description for response code 5045800 "Timeout (Check in report H+1) at Refund Payment endpoint

v3.1

v1.0

01 Dec 2022

this pages

Adding the settlementAccount field in the additionalinfo object in the Refund Payment request endpoint structure

v3.2

v1.0

07 Feb 2023

this pages

Added a note that "OTP and Notifications (Binding and Payment) that were previously sent via SMS will be sent via Whatsapp" in the Product Description and Direct Debit Payment Endpoint.

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/v1.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

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

transAmount

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

bankCardToken

String

 

M

Note :

SNAP BI

Length (O)

560

Note:

SNAP BI

Length (128)

 

000071000

1 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 transactions that will be included in the 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 transactions that will be included in the 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

21342312152

1232

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

String

 

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": "213423121521232",
 "urlParam": {
    "url": "http://iniurl.com",
    "type": "PAY_NOTIFY",
    "isDeepLink": "N"
 },
 "transAmount": {
    "value": "",
    "currency": ""
 },
 "bankCardToken": "xly2uyDFMQ345efsddsf",
 "additionalInfo": {
    "otpStatus": "YES",
    "settlementAccount": "",
    "merchantTrxId": "",
    "remarks":""
  }
}          

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": "08493296759260462774",
    "partnerReferenceNo": "213423121521232",
    "additionalInfo": {
        "amount": "2000.00",
        "currency": "IDR",
        "merchantTrxId": "",
        "remarks":""
    }
}                                

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/v1.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

20201029000

00000000001

 

originalReferenceNo

String

Numeric

O

64

Original transaction identifier on service provider system

202010297

77700000

00009

serviceCode

String

Numeric

M

2

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

55

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

20201029

7777000

0000009

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

M

7

Response code

2005500

refundHistory

Array of Object

 

M

 

 

 

>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

123456

78.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": "020102900000000000001",
"originalReferenceNo": "23132132214193",
"serviceCode": "55",
}                                      

Normal Response :

{
    "responseCode": "2000000",
    "responseMessage": "Successful",
    "originalPartnerReferenceNo": "2020102900000000000001",
    "originalReferenceNo": "03644644447113800584999629575440",
    "latestTransactionStatus": "00",
    "transactionStatusDesc": "success",
    "originalResponseCode": "2000000",
    "serviceCode": "55",
    "refundHistory": [
        {
            "refundNo": "96194816941239812",
            "partnerRefundNo": "239850918204981205970",
            "refundAmount": {
                "value": "12345678.00",
                "currency": "IDR"
            },
            "refundStatus": "00",
            "refundDate": "2020-12-23T07:44:16+07:00",
            "reason": "Customer Complain"
        },
        {
            "refundNo": "96194816941239812",
            "partnerRefundNo": "239850918204981205970",
            "refundAmount": {
                "value": "12345678.00",
                "currency": "IDR"
            },
            "refundStatus": "00",
            "refundDate": "2020-12-23T07:44:16+07:00",
            "reason": "Customer Complain"
        }
    ]
}
                  

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/v1.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",
    "transactionStatusDescription": "success",
    "additionalInfo": {
    "merchantTrxid" : "30220107504"
}
}                         

Request (Refund) :

{
    "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.

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/v1.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

2020102900000

000000001

originalReferenceNo

String

Numeric

M

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

 

M

 

 

 

>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

202010297777000000

0009

originalPartnerReferenceNo

String

Alphanumeric

M

Note :

SNAP BI (O)

64

Original transaction identifier on service consumer system

202010290000000000

0001

refundNo

String

Numeric

M

64

Reference Number from PJP AIS for the refund

2398509182

0498120597 0

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. 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": "2020102900000000000",
    "originalReferenceNo": "2312312", 
    "partnerRefundNo": "2398509182049812123",
    "refundAmount": {
        "value": "10000.00",
        "currency": "IDR"
    },
    "reason": "Customerx complain",
    "additionalInfo": {
        "callbackUrl": "http://(url_partner)/directdebit/notif/refunds",
        "settlementAccount": "020601000109305"
    }
}
}                                           

Normal Response :

{
    "responseCode": "2000000",
    "responseMessage": "Request has been processed successfully",
    "originalPartnerReferenceNo": "2020102900000000000001",
    "originalReferenceNo": "2020102977770000000009",
    "refundNo": "202010173821904898012234423",
    "partnerRefundNo": "",
    "refundAmount": {
        "value": "10000.00",
        "currency": "IDR"
    },
    "refundTime": "2020-12-21T17:07:25+07:00"
}                                    

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/v1.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

202010290000

000000056

originalReferenceNo

String

Numeric

M

64

Original transaction identifier on service provider system

202010290000

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

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.