Informasi Saldo
OVERVIEW
INFORMASI SALDO
API Balance Inquiry (Informasi Saldo) diperlukan agar Konsumen, Non-PJP Pengguna Layanan, PJP Ains, maupun PJP PIAS dapat mengakses informasi saldo terkini dari rekening yang dimiliki secara real time, sesuai dengan layanan yang disediakan oleh PJP AIS.
SKENARIO PENGGUNAAN API BALANCE INQUIRY
Use Case Diagram API Balance Inquiry
Merujuk pada use case diagram, pemilik akun yaitu Konsumen, Non-PJP Pengguna Layanan, PJP Ains, serta PJP PIAS, dapat mengakses informasi saldo atas rekeningnya menggunakan API Balance Inquiry yang disediakan oleh PJP AIS.
API Balance Inquiry dapat digunakan dalam sejumlah skema sebagai berikut:
Skema 1: Konsumen - Non-PJP Pengguna Layanan / PJP Ains / PJP PIAS � PJP AIS
Dalam skema ini, Konsumen mengakses informasi saldo rekeningnya melalui Non-PJP Pengguna Layanan, PJP Ains, atau PJP PIAS yang terhubung ke PJP AIS dimana rekening Konsumen terdaftar. Mekanisme ini dapat dilakukan menggunakan authorization code yang didapat dari proses card registration atau account binding dengan melalui proses otorisasi/otentikasi untuk memastikan kebenaran informasi Konsumen dengan menggunakan mekanisme Oauth 2.0.
Skema 2: Non-PJP Pengguna Layanan / PJP Ains / PJP PIAS - PJP AIS
Dalam skema ini, Non-PJP Pengguna Layanan, PJP Ains, atau PJP PIAS mengakses informasi saldo rekeningnya pada PJP AIS dimana rekening Non-PJP Pengguna Layanan, PJP Ains, atau PJP PIAS terdaftar.
Sequence Diagram API Balance Inquiry
Informasi Umum
Service Code | 11 |
---|---|
Name | API Balance Inquiry |
Version | 1.0 |
HTTP Method | POST |
Path | .../{version}/balance-inquiry |
GUIDES
Request Body
Parameter | Data Type | Mandatory | Length | Description |
---|---|---|---|---|
partnerReferenceNo | String | O | 64 | Transaction identifier on service consumer system |
bankCardToken | String | C | 128 | Card token |
for payment. | ||||
Must be filled if accountNo and customer token (Token B2B2C) are both Null | ||||
accountNo | String | C | 16 | Bank account number. |
Must be filled if bankCardToken and customer token (Token B2B2C) are both Null | ||||
balanceTypes | Array of String | O | Balance Types of this parameter doesn't exist, its mean to inquiry all Balance Type on the account | |
additionalInfo | Object | O | Additional information for custom use that are not provided by SNAP |
Response Body
Parameter | Value | Mandatory | Length | Description |
---|---|---|---|---|
responseCode | String | M | 7 | Response code |
responseMessage | String | M | 150 | Response description |
referenceNo | String | O | 64 | Transaction identifier on service provider system |
partnerReferenceNo | String | O | 64 | Transaction identifier on service consumer system |
accountNo | String | O | 32 | Registered account number |
name | String | O | 140 | Customer account name |
accountInfos | Array | O | ||
balanceType | String | O | 70 | Account type name |
amount | Object | O | ||
value | String | M | 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 | ||||
currency | String | M | 3 | Currency (ISO4217) |
floatAmount | Object | O | ||
value | String | M | 16,2 | Amount of deposit that is not effective yet (due to holiday, etc.). |
If it's IDR then value includes 2 decimal digits. | ||||
e.g. IDR 50.000,- will be placed with 50000.00 | ||||
currency | String | M | 3 | Currency (ISO4217) |
holdAmount | Object | O | ||
value | String | M | 16,2 | Hold amount that cannot be used. |
If it's IDR then value includes 2 decimal digits. | ||||
e.g. IDR 20.000,- will be placed with 20000.00 | ||||
currency | String | M | 3 | Currency (ISO4217) |
availableBalance | Object | O | ||
value | String | M | 16,2 | Account balance that can be used for financial transaction |
currency | String | M | 3 | Currency (ISO4217) |
ledgerBalance | Object | O | ||
value | String | M | 16,2 | Account balance at the beginning of each day |
currency | String | M | 3 | Currency (ISO4217) |
currentMultilateralLimit | Object | O | ||
value | String | M | 16,2 | Credit limit of the account / plafon |
currency | String | M | 3 | Currency (ISO4217) |
registrationStatusCode | String | O | 4 | Customer registration status |
status | String | O | 4 | Account Status |
0001 = Active Account | ||||
0002 = Closed Account | ||||
0004 = New Account | ||||
0006 = Restricted Account | ||||
0007 = Frozen Account | ||||
0009 = Dormant Account | ||||
additionalInfo | Object | O | Additional information for custom use that are not provided by SNAP |
CODE SNIPPETS
Sample Request
POST .../v1.0/balance-inquiry HTTP/1.2
Content-type: application/json
Authorization: Bearer gp9HjjEj813Y9JGoqwOeOPWbnt4CUpvIJbU1mMU4a11MNDZ7Sg5u9a"
Authorization-Customer: Bearer fa8sjjEj813Y9JGoqwOeOPWbnt4CUpvIJbU1mMU4a11MNDZ7Sg5u9a"
X-TIMESTAMP: 2020-12-18T15:06:00+07:00
X-SIGNATURE: 85be817c55b2c135157c7e89f52499bf0c25ad6eeebe04a986e8c862561b19a5
ORIGIN: www.hostname.com
X-PARTNER-ID: 82150823919040624621823174737537
X-EXTERNAL-ID: 41807553358950093184162180797837
X-IP-ADDRESS: 172.24.281.24
X-DEVICE-ID: 09864ADCASA
X-LATITUDE: -6.1617169
X-LONGITUDE: 106.6643946
CHANNEL-ID: 95221
{
"partnerReferenceNo":"2020102900000000000001",
"bankCardToken":"6d7963617264746f6b656e",
"accountNo":"7382382957893840",
"balanceTypes":[
"Cash",
"Coins"
],
"additionalInfo":{
"deviceId":"12345679237",
"channel":"mobilephone"
}
}
Sample Response
Content-type: application/json
X-TIMESTAMP: 2020-12-18T15:06:07+07:00
{
"responseCode":"2001100",
"responseMessage":"Request has been processed successfully",
"referenceNo":"2020102977770000000009",
"partnerReferenceNo":"2020102900000000000001",
"accountNo":"115471119",
"name":"JONOMADE",
"accountInfos":[
{
"balanceType":"Cash",
"amount":{
"value":"200000.00",
"currency":"IDR"
},
"floatAmount":{
"value":"50000.00",
"currency":"IDR"
},
"holdAmount":{
"value":"20000.00",
"currency":"IDR"
},
"availableBalance":{
"value":"130000.00",
"currency":"IDR"
},
"ledgerBalance":{
"value":"30000.00",
"currency":"IDR"
},
"currentMultilateralLimit":{
"value":"10000.00",
"currency":"IDR"
},
"registrationStatusCode":"0001",
"status":"0001"
},
{
"balanceType":"Coins",
"amount":{
"value":"200000.00",
"currency":"IDR"
},
"floatAmount":{
"value":"50000.00",
"currency":"IDR"
},
"holdAmount":{
"value":"20000.00",
"currency":"IDR"
},
"availableBalance":{
"value":"130000.00",
"currency":"IDR"
},
"ledgerBalance":{
"value":"30000.00",
"currency":"IDR"
},
"currentMultilateralLimit":{
"value":"10000.00",
"currency":"IDR"
},
"registrationStatusCode":"0001",
"status":"0001"
}
],
"additionalInfo":{
"deviceId":"12345679237",
"channel":"mobilephone"
}
}
RESPONSES CODE
Response status merupakan informasi yang diberikan oleh service provider kepada service consumer pada response body, sebagai indikasi hasil dari pemrosesan request yang diterima.
Response status terdiri dari 2 komponen, yaitu kode (response code) dan deskripsinya (response message).
Komponen | Tipe Data | Length | Keterangan |
---|---|---|---|
responseCode | String | 7 | response code = HTTP status code + service code + case code |
responseMessage | String | 150 |
Daftar Response Code
Category | HTTP Code | Service Code | Case Code | Response Message | Description |
---|---|---|---|---|---|
Success | 200 | any | 00 | Successful | Successful |
Success | 202 | any | 00 | Request In Progress | Transaction still on process |
System | 400 | any | 00 | Bad Request | General request failed error, including message parsing failed. |
Message | 400 | any | 01 | Invalid Field Format {field name} | Invalid format |
Message | 400 | any | 02 | Invalid Mandatory Field {field name} | Missing or invalid format on mandatory field |
System | 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) |
System | 401 | any | 01 | Invalid Token (B2B) | Token found in request is invalid (Access Token Not Exist, Access Token Expiry) |
System | 401 | any | 02 | Invalid Customer Token | Token found in request is invalid (Access Token Not Exist, Access Token Expiry) |
System | 401 | any | 03 | Token Not Found (B2B) | Token not found in the system. This occurs on any API that requires token as input parameter |
System | 401 | any | 04 | Customer Token Not Found | Token not found in the system. This occurs on any API that requires token as input parameter |
Business | 403 | any | 00 | Transaction Expired | Transaction expired |
System | 403 | any | 01 | Feature Not Allowed [Reason] | This merchant is not allowed to call Direct Debit APIs |
Business | 403 | any | 02 | Exceeds Transaction Amount Limit | Exceeds Transaction Amount Limit |
Business | 403 | any | 03 | Suspected Fraud | Suspected Fraud |
Business | 403 | any | 04 | Activity Count Limit Exceeded | Too many request, Exceeds Transaction Frequency Limit |
Business | 403 | any | 05 | Do Not Honor | Account or User status is abnormal |
System | 403 | any | 06 | Feature Not Allowed At This Time. [reason] | Cut off In Progress |
Business | 403 | any | 07 | Card Blocked | The payment card is blocked |
Business | 403 | any | 08 | Card Expired | The payment card is expired |
Business | 403 | any | 09 | Dormant Account | The account is dormant |
Business | 403 | any | 10 | Need To Set Token Limit | Need to set token limit |
System | 403 | any | 11 | OTP Blocked | OTP has been blocked |
System | 403 | any | 12 | OTP Lifetime Expired | OTP has been expired |
System | 403 | any | 13 | OTP Sent To Cardholer | initiates request OTP to the issuer |
Business | 403 | any | 14 | Insufficient Funds | Insufficient Funds |
Business | 403 | any | 15 | Transaction Not Permitted.[reason] | Transaction Not Permitted |
Business | 403 | any | 16 | Suspend Transaction | Suspend Transaction |
Business | 403 | any | 17 | Token Limit Exceeded | Purchase amount exceeds the token limit set prior |
Business | 403 | any | 18 | Inactive Card/Account/Customer | Indicates inactive account |
Business | 403 | any | 19 | Merchant Blacklisted | Merchant is suspended from calling any APIs |
Business | 403 | any | 20 | Merchant Limit Exceed | Merchant aggregated purchase amount on that day exceeds the agreed limit |
Business | 403 | any | 21 | Set Limit Not Allowed | Set limit not allowed on particular token |
Business | 403 | any | 22 | Token Limit Invalid | The token limit desired by the merchant is not within the agreed range between the merchant and the Issuer |
Business | 403 | any | 23 | Account Limit Exceed | Account aggregated purchase amount on that day exceeds the agreed limit |
Business | 404 | any | 00 | Invalid Transaction Status | Invalid transaction status |
Business | 404 | any | 01 | Transaction Not Found | Transaction not found |
System | 404 | any | 02 | Invalid Routing | Invalid Routing |
System | 404 | any | 03 | Bank Not Supported By Switch | Bank not supported by switch |
Business | 404 | any | 04 | Transaction Cancelled | Transaction is cancelled by customer |
Business | 404 | any | 05 | Merchant Is Not Registered For Card Registration Services | Merchant is not registered for Card Registration services |
System | 404 | any | 06 | Need To Request OTP | Need to request OTP |
System | 404 | any | 07 | Journey Not Found | The journeyId cannot be found in the system |
Business | 404 | any | 08 | Invalid Merchant | Merchant does not exist or status abnormal |
Business | 404 | any | 09 | No Issuer | No issuer |
System | 404 | any | 10 | Invalid API Transition | Invalid API transition within a journey |
Business | 404 | any | 11 | Invalid Card/Account/Customer [info]/Virtual Account | Card information may be invalid, or the card account may be blacklisted, or Virtual Account number maybe invalid. |
Business | 404 | any | 12 | Invalid Bill/Virtual Account [Reason] | The bill is blocked/ suspended/not found. |
Virtual account is suspend/not found. | |||||
Business | 404 | any | 13 | Invalid Amount | The amount doesn't match with what supposed to |
Business | 404 | any | 14 | Paid Bill | The bill has been paid |
System | 404 | any | 15 | Invalid OTP | OTP is incorrect |
Business | 404 | any | 16 | Partner Not Found | Partner number can't be found |
Business | 404 | any | 17 | Invalid Terminal | Terminal does not exist in the system |
Business | 404 | any | 18 | Inconsistent Request | Inconsistent request parameter found for the same partner reference number/transaction id |
It can be considered as failed in transfer debit, but it should be considered as success in transfer credit. | |||||
Considered as success: | |||||
- Transfer credit = (i) Intrabank transfer; (ii) Interbank transfer; (iii) RTGS transfer; (iv) SKNBI transfer; | |||||
- Virtual account = (i) Payment VA; (ii) Payment to VA; | |||||
- Transfer debit = (i) Refund payment; (ii) Void; | |||||
Considered as failed: | |||||
- Transfer credit = (i) Transfer to OTC; | |||||
- Transfer debit = (i) Direct debit payment; (ii) QR CPM payment; (iii) Auth payment; (iv) Capture; | |||||
Business | 404 | any | 19 | Invalid Bill/Virtual Account | The bill is expired. |
Virtual account is expired. | |||||
System | 405 | any | 00 | Requested Function Is Not Supported | Requested function is not supported |
Business | 405 | any | 01 | Requested Opearation Is Not Allowed | Requested operation to cancel/refund transaction Is not allowed at this time. |
System | 409 | any | 00 | Conflict | Cannot use same X-EXTERNAL-ID in same day |
System | 409 | any | 01 | Duplicate partnerReferenceNo | Transaction has previously been processed indicates the same partnerReferenceNo already success |
System | 429 | any | 00 | Too Many Requests | Maximum transaction limit exceeded |
System | 500 | any | 00 | General Error | General Error |
System | 500 | Any | 01 | Internal Server Error | Unknown Internal Server Failure, Please retry the process again |
System | 500 | Any | 02 | External Server Error | Backend system failure, etc |
System | 504 | any | 00 | Timeout | timeout from the issuer |
APLIKASI PENGUJIAN
Akses Terbatas, Mohon Sign Up untuk Dapat Mengakses Halaman Ini