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 is null and Authorization-Customer is Null
accountNo String C 16 Bank account number.
must be filled if bankCardToken is Null and Authorization-Customer is 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

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. Must be filled upon successful transaction
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 (ISO4217) 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
floatAmount Object O
value String (ISO4217) 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
holdAmount Object O
value String (ISO4217) 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
availableBalance Object O
value String (ISO4217) M 16,2 Account balance that can be used for financial transaction
currency String M 3 Currency
ledgerBalance Object O
value String (ISO4217) M 16,2 Account balance at the beginning of each day
currency String M 3 Currency
currentMultilateralLimit Object O
value String (ISO4217) M 16,2 Credit limit of the account / plafon
currency String M 3 Currency
registrationStatusCode String O 4 Customer registration status
status String O 4 Account Status
1 = Active Account
2 = Closed Account
4 = New Account
6 = Restricted Account
7 = Frozen Account
9 = Dormant Account
additionalInfo Object O Additional information

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",
   "accountInfo":[
      {
         "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