1. Overview
If the merchant platform does not get the transfer results synchronously after calling the bank side transfer submission interface. Through this interface, the developer's flow number can be submitted for obtaining the actual results of the transfer.
2. API Specification
HTTP Method | POST |
Endpoint |
|
SNAP Service Code | 36 |
3. Request
3.1. Request Header
Name | Type | M/O | Length | Description |
---|---|---|---|---|
X-TIMESTAMP | String | M | 25 | The request timestamp. Formatted with "yyyy-MM-ddTHH:mm:ssZ". E.g. 2022-09-06T13:00:00+07:00 |
X-SIGNATURE | String | M | 2048 | The Merchant or Client generated signature. Using Asymmetric-Signature mechanism to get the token, encrypted with SHA256withRSA. e.g. stringToSign = <HTTP Method> + ":" + <Service Endpoint> + ":" + toLowercase(hexEncode(SHA256(minify(<Request Body>)))) + ":" + <X-TIMESTAMP> X-SIGNATURE = SHA256withRSA(PrivateKey, stringToSign) |
X-ORIGIN | String | M | 256 | Client’s host origin. |
X-PARTNER-ID | String | M | 32 | The Merchant or Client Id. Provided by BNC. |
X-EXTERNAL-ID | String | M | 36 | The Merchant External ID of request.
e.g. 77778042022091500001 |
CHANNEL-ID | String | M | 5 | PJP Channel ID. 88881 |
3.1.1 Sample Request Header
Content-type: application/json Authorization: Bearer gp9HjjEj813Y9JGoqwOeOPWbnt4CUpvIJbU1mMU4a11MNDZ7Sg5u9a" X-TIMESTAMP: 2020-12-21T14:56:11+07:00 X-SIGNATURE: 85be817c55b2c135157c7e89f52499bf0c25ad6eeebe04a986e8c862561b19a5 X-ORIGIN: www.hostname.com X-PARTNER-ID: 82150823919040624621823174737537 X-EXTERNAL-ID: 41807553358950093184162180797837 CHANNEL-ID: 95221
3.2 Request Body
Name | Type | M/O | Length | Description | Example |
---|---|---|---|---|---|
originalPartnerReferenceNo | String | O | 64 | Original transaction identifier on service consumer system | 2020102900000000000001 |
originalReferenceNo | String | O | 64 | Original transaction identifier on service provider system | 2020102977770000000009 |
originalExternalId | String | O | 32 | Original External-ID on header message | 30443786930722726463280097920912 |
serviceCode | String | M | 2 | Transaction type indicator(service code of theoriginal transaction request) | 17 |
transactionDate | String | O | 25 | transaction date : ISO8601 | 2019-07-03T12:08:56-07:00 |
amount | Object | O |
|
|
|
value | String(ISO4217) | M | 16,2 | TransactionAmount. | 12345678.00 |
currency | String | M | 3 | Currency | IDR |
additionalInfo | Object | O |
| Additional information | { "submerchantflag":"1", "channel":"mobilephone", "sourceAccount":"888801000157157", "amount":"888887.00", "sourceAccountName":"Andrew", "beneficiaryAccountName":"Anthony" "deviceId":"12345679237", "channel": "mobilephone", "referenceNo":"2020102977770000000009", "mchNm": "merchant xyz" } Note: Flag of "submerchantflag": "1" = Merchant (1st tier merchant) "2" = Merchant (2nd tier merchant) |
3.2.1 Sample Request Body
{ }
4. Response
4.1 Response Body
Name | Type | M/O | Length | Description | Example |
---|---|---|---|---|---|
responseCode | String | M | 7 | Response code | 2003600 |
responseMessage | String | M | 150 | Response description | Requesthas been processed successfu lly |
originalReferenceNo | String | C | 64 | Originaltransaction identifier on service provider system. Must be filled upon successful transaction | 2020102977770000000009 |
originalPartnerReferenceNo | String | O | 64 | Originaltransaction identifier on service consumer system | 2020102900000000000001 |
originalExternalId | String | O | 32 | OriginalExternal-ID on header message | 30443786930722726463280097920912 |
serviceCode | String | M | 2 | Transactiontype indicator (service code of theoriginal transaction request) | 17 |
transactionDate | String | O | 25 | transactiondate : ISO8601 | 2019-07-03T12:08:56-07:00 |
amount | Object | O |
|
|
|
value | String(ISO4217) | M | 16,2 | Net amount of the transaction. If it’s IDR then value includes 2 decimal digits.e.g. IDR10.000,- will be placed with10000.00 | 12345678.00 |
currency | String | M | 3 | Currency | IDR |
beneficiaryAccountNo | String | M | 34 | BeneficiaryAccount | 888801000003301 |
beneficiaryBankCode | String | O | 8 | BeneficiaryBank Code | 2 |
currency | String | O | 3 | CurrencyType | IDR |
previousResponseCode | String | O | 7 | Previous Response Code Transaction Status | 2003600 |
referenceNumber | String | M | 30 | Reference Number from system | 10052019 |
sourceAccountNo | String | M | 19 | SourceAccount | 888801000157508 |
transactionId | String | O | 8 | Transaction ID unique per 90 days (using UTC+07Time Zone). Format: Must be 8in length. | 10052019 |
latestTransactionStatus | String | M | 2 | 00 - Success01 - Initiated02 - Paying03 - Pending04 - Refunded05 - Canceled06 - Failed07 - Not found | 00 |
transactionStatusDesc | String | O | 50 | Description status transaction | success |
additionalInfo | Object | O |
| Additional information | { "submerchantflag":"1", "channel":"mobilephone", "sourceAccount":"888801000157157", "amount":"888887.00", "sourceAccountName":"Andrew", "beneficiaryAccountName":"Anthony" "deviceId":"12345679237", "channel": "mobilephone", "referenceNo":"2020102977770000000009", "mchNm": "merchant xyz" } Note: Flag of "submerchantflag": "1" = Merchant (1st tier merchant) "2" = Merchant (2nd tier merchant) |
4.1.1 Sample Response Body
Success:
{ }
Fail:
{ }
Response Code | HTTP Code | Service Code | Case Code | Response Message | Description | |
---|---|---|---|---|---|---|
1 | 2002400 | 200 | any | 00 | Successful | Successful |
2 | 4002400 | 400 | any | 00 | Bad Request | General request failed error, including message parsing failed. |
3 | 4002401 | 400 | any | 01 | Invalid Field Format {field name} | Invalid format |
4 | 4012400 | 401 | any | 00 | Unauthorized. [reason] | General unauthorized error (No Interface Def, API is Invalid, Oauth Failed, Verify Client Secret Fail, Client Forbidden Access API, Unknown Client, Key not Found) |
5 | 4012401 | 401 | any | 01 | Invalid Token (B2B) | Token found in request is invalid (Access Token Not Exist, Access Token Expiry) |
6 | 4012403 | 401 | any | 03 | Token Not Found (B2B) | Token not found in the system. This occurs on any API that requires token as input parameter |
7 | 4042408 | 404 | any | 08 | InvalidMerchant | Merchant does not exist or status abnormal |
8 | 4042411 | 404 | any | 11 | Invalid Card/Accoun t/Customer [info]/Virtual Account | Card information may be invalid, or the card account may be blacklisted, or Virtual Account number maybe invalid. |
9 | 4042412 | 404 | any | 12 | Invalid Bill/Virtual Account [Reason] | The bill is blocked/suspended/not found.Virtual account is suspend/not found. |
10 | 4042413 | 404 | any | 13 | InvalidAmount | The amount doesn't match with what supposed to |
11 | 4092401 | 409 | any | 01 | Duplicate partnerReferenceNo | Transaction has previously been processed indicates the same partnerReferenceNo already success |
12 | 5002402 | 500 | Any | 02 | External Server Error | Backend system failure, etc |
6. Reference
Field Code | Field Name | Description | |
---|---|---|---|
1 | M | Mandatory | Mandatory |
2 | ME | Mandatory Equal | Mandatory Equal – value in the request and the response must be the same. |
3 | C | Conditional | Conditional |
4 | CE | Conditional Equal | Conditional Equal – value in the request and the response must be the same. |
5 | O | Optional | Optional |