NAV
HTTP cURL

Introduction

Overview of BCA Sandbox APIs:

Method Endpoint Usage
POST /api/oauth/token Get Access Token for Oauth2.0
GET /banking/v3/corporates/{CorporateID} /accounts/{AccountNumber1},{AccountNumber2},…,{AccountNumber20} Get your account(s) balance
GET /banking/v3/corporates/{CorporateID} /accounts/{AccountNumber}/statements Get your account statement
POST /banking/corporates/transfers Fund Transfer to another BCA account
POST /sakuku-commerce/payments Create payment for Sakuku
GET /sakuku-commerce/payments /{MerchantID}/{PaymentID} Get Status of Sakuku Transaction
GET /general/rate/forex Foreign Exchange Rate Information
GET /general/rate/deposit Deposit Rate Information
GET /general/info-bca/atm ATM BCA Location
POST /fire/accounts/balance Get balance information
POST /fire/accounts Get beneficiary account’s information
POST /fire/transactions Get status of a transaction
POST /fire/transactions/to-account Transfer funds directly to beneficiary account
POST /fire/transactions/cash-transfer Transfer funds to beneficiary to be taken personally
PUT /fire/transactions/cash-transfer/amend Amend cash transfer transaction’s detail
POST /fire/transactions/cash-transfer/cancel Cancel cash transfer transaction
POST /va/payments?CompanyCode=&RequestID= OR
/va/payments?CompanyCode=&CustomerNumber=
Get status of payment by CompanyCode and CustomerNumber or RequestID

Authentication

OAuth2.0

BCA APIs is using OAuth 2.0 as the authorization framework. To get the access token, you need to be authorized by client_id and client_secret. To learn more about the OAuth 2.0 authorization framework, you can read the RFC6749 Documentation.

Access Token

access_token is an opaque string token that identify the user of the API. This token is required each time an application call API. There are several way to obtain an access_token, which will be described bellow.

Obtaining Access Token

Access token can be obtained in many way, depend on the grant_type of the application. To access all the services in this sandbox, you will need the access token with grant_type = client_credentials.

Client Credentials Grant

Access Token

POST /api/oauth/token

POST /api/oauth/token HTTP/1.1
Host: sandbox.bca.co.id
Authorization: Basic Base64(client_id:client_secret)
Content-Type: application/x-www-form-urlencoded

grant_type=client_credentials
curl https://sandbox.bca.co.id/api/oauth/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -H "Authorization: Basic jk5ZTkyYzgtYzAzNC00YmNhLWE0OTAtYWM4NGI0YTZiMjQxOjNmYWIwNGI1LWM4ODctNGZmMi05OGNkLTE1YjJmYTcyNzA1NA==" \
  -d "grant_type=client_credentials"

Response:

{
"access_token":"2YotnFZFEjr1zCsicMWpAA",
"token_type":"Bearer",
"expires_in":3600,
"scope":"resource.WRITE resource.READ"
}

client_credentials grant will provide application access to API without requiring any user credential. Any call requested using access_token obtained using this method are made on behalf of the application instead of the user.

This grant type is designed to be used by server to server call. In order to obtain access_token a request must be made with following specification

Request

Setting Value
HTTP Method POST
Path /api/oauth/token
Host sandbox.bca.co.id

Request Headers

Name Format Mandatory Description
Authorization Basic base64(client_id:client_secret) Yes
Content-Type application/x-www-form-urlencoded Yes

Payload

Field Data Type Mandatory Description
grant_type String Yes value = client_credentials

Result of the request will contains following information:

Response

Field Data Type Description
access_token String your access_token
token_type String default is Bearer
expires_in String access_token validity, in seconds
scope String application scope/permission granted to application

Signature

Signature is used by BCA to verify that your request is not altered by attackers.

The outline of the HMAC validation process is as follows:

  1. Retrieve Timestamp from HTTP Header (X-BCA-Timestamp)
  2. Retrieve the API Key form HTTP Header (X-BCA-Key)
  3. Lookup the API Secret corresponding to the received key in internal store
  4. Retrieve client HMAC from HTTP Header lowercase hexadecimal format (X-BCA-Signature)
  5. Calculate HMAC using the API Secret as the HMAC secret key
  6. Compare client HMAC with calculated HMAC

If HMAC hash comparison is invalid API Gateway will return a HTTP 400 error code with "HMAC Mismatch" message.

Signature mismatch error

{
    "ErrorCode" : "...",
    "ErrorMessage" : {
        "Indonesian": "HMAC tidak cocok",
        "English": "HMAC mismatch"
    }
}

Generate Signature

SHA-256 HMAC is used to generate the signature with your API secret as the key.

Signature = HMAC-SHA256(apiSecret, StringToSign)

The StringToSign will be a colon-separated list derived from some request data as below:

StringToSign = HTTPMethod+":"+RelativeUrl+":"+AccessToken+":"+Lowercase(HexEncode(SHA-256(RequestBody)))+":"+Timestamp

POST Example:

Data :
  - Method : POST
  - Relative URL : /banking/corporates/transfers
  - Access token : lIWOt2p29grUo59bedBUrBY3pnzqQX544LzYPohcGHOuwn8AUEdUKS
  - Request body :
    { 
    "CorporateID" : "BCAAPI2016",
        "SourceAccountNumber" : "0201245680",
        "TransactionID" : "00000001",
        "TransactionDate" : "2016-01-30",
        "ReferenceID" : "12345/PO/2016",
        "CurrencyCode" : "IDR",
        "Amount" : "100000.00",
        "BeneficiaryAccountNumber" : "0201245681",
        "Remark1" : "Transfer Test",
        "Remark2" : "Online Transfer"
    }
  - Timestamp : 2016-02-03T10:00:00.000+07:00

API Secret : 22a2d25e-765d-41e1-8d29-da68dcb5698b

Lowercase(HexEncode(SHA-256(RequestBody))) : e3cf5797ac4ac02f7dad89ed2c5f5615c9884b2d802a504e4aebb76f45b8bdfb

StringToSign : POST:/banking/corporates/transfers:lIWOt2p29grUo59bedBUrBY3pnzqQX544LzYPohcGHOuwn8AUEdUKS:e3cf5797ac4ac02f7dad89ed2c5f5615c9884b2d802a504e4aebb76f45b8bdfb:2016-02-03T10:00:00.000+07:00

Signature : 69ad66589ade078a30922a0848725cf153aecfcca82eba94e3270285b4a9c604

For GET request (with no RequestBody), you still need to calculate SHA-256 of an empty string.

GET Example:

Data:
  - Method : GET
  - Relative URL : /banking/v3/corporates/BCAAPI2016/accounts/0201245680/statements?StartDate=2016-09-01&EndDate=2016-09-01
  - Access token : lIWOt2p29grUo59bedBUrBY3pnzqQX544LzYPohcGHOuwn8AUEdUKS
  - Request body : 
  - Timestamp : 2016-02-03T10:00:00.000+07:00

API Secret : 22a2d25e-765d-41e1-8d29-da68dcb5698b

Lowercase(HexEncode(SHA-256(RequestBody))) : e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

StringToSign : GET:/banking/v2/corporates/BCAAPI2016/accounts/0201245680/statements?EndDate=2016-09-01&StartDate=2016-09-01:lIWOt2p29grUo59bedBUrBY3pnzqQX544LzYPohcGHOuwn8AUEdUKS:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855:2016-02-03T10:00:00.000+07:00

Signature : 3ac124303746d222387d4398dddf33201a384aa22137aa08f4d9843c6f467a48

Details about the data used to derived The StringToSign is explained in the next sections.

HTTP Method

Relative URL

Full URL Relative URL
https://example.com/api/v2/sample?param1=value1&param2=value2 /api/v2/sample?param1=value1&param2=value2
https://example.com or https://example.com/ /
  1. Do not URI-encode forward slash ( / ) if it was used as path component.
  2. Do not URI-encode question mark ( ? ), equals sign ( = ), and ampersand ( & ) if they were used as query string component: as separator between the path and query string, between query parameter and its value, and between each query parameter and value pairs.
  3. Do not URI-encode these characters: A-Z, a-z, 0-9, hyphen ( - ), underscore ( _ ), period ( . ), and tilde ( ~ ) which are defined as unreserved characters in RFC 3986.
  4. Percent-encode all other characters not meeting the above conditions using the format: %XY, where X and Y are hexadecimal characters (0-9 and uppercase A-F). For example, the space character must be encoded as %20 (not using ’+’, as some encoding schemes do) and extended UTF-8 characters must be in the form %XY%ZA%BC.
  1. Sorted by parameter name lexicographically
  2. If there are two or more parameters with the same name, sort them by parameter values. Example :
Relative URL Sorted Relative URL
/api/v2/sample?A-param=value1&Z-param=value2&B-param=value3 /api/v2/sample?A-param=value1&B-param=value3&Z-param=value2

AccessToken

RequestBody

Canonicalization Example.

{
    "Test1" : "str Val",
    "Test2" : 1
 }

After canonicalized, the above JSON will become the following.

{"Test1":"strVal","Test2":1}

Timestamp

The timestamp must be presented in ISO8601 format (yyyy-MM-ddTHH:mm:ss.SSSTZD)

Format Description
yyyy four-digit year
MM two-digit month (01=January, etc.)
dd two-digit day of month (01 through 31)
T literal ’T’ as date and time separator
HH two digits of hour (00 through 23) (am/pm NOT allowed)
mm two digits of minute (00 through 59)
ss two digits of second (00 through 59)
SSS three digits representing millisecond (000 through 999)
TZD time zone designator (+hh:mm or -hh:mm)

Headers

To successfully communicate with BCA Banking API, you must provide the following headers in every API request:

Sample request with complete headers:

GET /general/rate/forex HTTP/1.1
Host: sandbox.bca.co.id
Authorization: Bearer a0daAPsGwPDHGMv6MpWzoIPgZvN9YvrSi7xdVI7Jb98638ilM7ila7
Content-Type: application/json
Origin: yourdomain.com
X-BCA-Key: 41138489-1057-4e7e-ab93-9bc97b511cf6 
X-BCA-Timestamp:  2016-02-03T10:00:00.000+07:00
X-BCA-Signature: ce20470484c27c0441d7c9dedc7d3e187e5e908df1780c6c389941b779033519
curl "https://sandbox.bca.co.id/general/rate/forex" \
  -H "Authorization: Bearer a0daAPsGwPDHGMv6MpWzoIPgZvN9YvrSi7xdVI7Jb98638ilM7ila7"\
  -H "Content-Type: application/json"\
  -H "Origin: yourdomain.com"\
  -H "X-BCA-Key: 41138489-1057-4e7e-ab93-9bc97b511cf6"\
  -H "X-BCA-Timestamp: 2016-02-03T10:00:00.000+07:00"\
  -H "X-BCA-Signature: ce20470484c27c0441d7c9dedc7d3e187e5e908df1780c6c389941b779033519"
Name Type Description
Authorization Alphanumeric OAuth2.0 Token Format value: Bearer {access_token}
Content-Type Alphanumeric Content of your request body e.g. application/json
Origin url Origin domain e.g. yourdomain.com
X-BCA-Key Alphanumeric Your API Key generated by BCA
X-BCA-Timestamp yyyy-MM-ddTHH:mm:ss.SSSTZD (ISO 8601) Timestamp generated by merchant in ISO 8601 e.g. “2016-02-03T10:00:00.000+07:00”
X-BCA-Signature Alphanumeric Signature, please refer to section above

API Services

Business Banking

1. Balance Information

GET banking/v3/corporates/{CorporateID}/accounts/{AccountNumber}

Request:

GET /banking/v3/corporates/BCAAPI2016/accounts/0201245680,0063001004,1111111111 HTTP/1.1
Host: sandbox.bca.co.id
Authorization: Bearer [access_token]
Content-Type: application/json
Origin: [yourdomain.com]
X-BCA-Key: [api_key]
X-BCA-Timestamp: [timestamp]
X-BCA-Signature: [signature]
curl "https://sandbox.bca.co.id/banking/v3/corporates/BCAAPI2016/accounts/0201245680,0063001004,1111111111" \
  -H "Authorization: Bearer [access_token]"\
  -H "Content-Type: application/json"\
  -H "Origin: [yourdomain.com]"\
  -H "X-BCA-Key: [api_key]"\
  -H "X-BCA-Timestamp: [timestamp]"\
  -H "X-BCA-Signature: [signature]"

Response:

{           
   "AccountDetailDataSuccess":
   [            
      {         
         "AccountNumber": "0201245680",         
         "Currency": "IDR",         
         "Balance": "118849999.53",         
         "AvailableBalance": "118849999.53",            
         "FloatAmount": "0.00",         
         "HoldAmount": "0.00",          
         "Plafon": "0.00"           
      },            
      {         
         "AccountNumber": "0063001004",         
         "Currency": "IDR",         
         "Balance": "69942987.27",          
         "AvailableBalance": "69942987.27",         
         "FloatAmount": "0.00",         
         "HoldAmount": "0.00",          
         "Plafon": "0.00"           
      },            
   ],           
   "AccountDetailDataFailed":    
   [            
      {         
         "English": "Invalid AccountNumber",            
         "Indonesian": "AccountNumber Tidak Valid",         
         "AccountNumber": "1111111111"          
      }
   ]
}       

Get your KlikBCA Bisnis account balance information with maximum of 20 accounts in a request. Your Request must contain following information:

Request

Field Data Type Mandatory Description
CorporateID String(10) Y Your KlikBCA Bisnis Corporate ID
AccountNumber String(10) Y Account(s) Number

Response

Field Data Type Description
AccountDetail Data Success
AccountNumber String(10) Account Number
Currency String(3) Currency of the account (IDR, USD, etc)
Balance String(16) Balance of the account
AvailableBalance String(16) Available balance to be used. Format: Number, 13.2
FloatAmount String(16) Amount of deposit that is not effective yet (due to holiday, etc). Format: Number, 13.2
HoldAmount String(16) Hold amount that cannot be used. Format: Number, 13.2
Plafon String(16) Credit limit of the account. Format: Number, 13.2
AccountDetailDataFailed
English String(100) Error message in English
Indonesian String(100) Error message in Bahasa Indonesia
AccountNumber String(10) Account Number










2. Account Statement

GET banking/v3/corporates/{CorporateID}/accounts/{AccountNumber}
/statements?StartDate=yyyy-MM-dd&EndDate=yyyy-MM-dd

Request:

GET /banking/v3/corporates/BCAAPI2016/accounts/0201245680/statements?StartDate=2016-09-01&EndDate=2016-09-01 HTTP/1.1
Host: sandbox.bca.co.id
Authorization: Bearer [access_token]
Content-Type: application/json
Origin: [yourdomain.com]
X-BCA-Key: [api_key]
X-BCA-Timestamp: [timestamp]
X-BCA-Signature: [signature]
curl "https://sandbox.bca.co.id/banking/v3/corporates/BCAAPI2016/accounts/0201245680/statements?StartDate=2016-09-01&EndDate=2016-09-01" \
  -H "Authorization: Bearer [access_token]"\
  -H "Content-Type: application/json"\
  -H "Origin: [yourdomain.com]"\
  -H "X-BCA-Key: [api_key]"\
  -H "X-BCA-Timestamp: [timestamp]"\
  -H "X-BCA-Signature: [signature]"

Response:

{
  "StartDate": "2016-09-01",
  "EndDate"   : "2016-09-01",
  "Currency" : "IDR",
  "StartBalance" : "94163880.00",
  "Data": [
       {
           "TransactionDate":"PEND",
           "BranchCode":"0000",
           "TransactionType":"D",
           "TransactionAmount":"100000.00",
           "TransactionName":"TRSF E-BANKING DB",
           "Trailer":"0109/FTSCY/WS95051 100000.00 Online Transfer   PT DUMMY2"
        },
        {
           "TransactionDate":"PEND",
           "BranchCode":"0061",
           "TransactionType":"C",
           "TransactionAmount":"3000000.00",
           "TransactionName":"NK - LLG",
           "Trailer":""
        },
        {
           "TransactionDate":"PEND",
           "BranchCode":"0000",
           "TransactionType":"D",
           "TransactionAmount":"250000.00",
           "TransactionName":"TRSF E-BANKING DB",
           "Trailer":"0109/FTSCY/WS95051 250800.00 Transfer DUMMY1"
        },
       {
           "TransactionDate":"PEND",
           "BranchCode":"0000",
           "TransactionType":"D",
           "TransactionAmount":"100000.00", 
           "TransactionName":"BA JASA E-BANKING",
           "Trailer":"0109/TRCHG/WS95051BIAYA TRANSFER SME"
        },
       {
           "TransactionDate":"PEND",
           "BranchCode":"0101",
           "TransactionType":"C",
           "TransactionAmount":"10000.00",
           "TransactionName":"KR OTOMATIS",
           "Trailer":"DUMMY7  039903811112"},
       {
          "TransactionDate":"PEND",
          "BranchCode":"0038",
          "TransactionType":"D",
          "TransactionAmount":"100000.00",
          "TransactionName":"TARIKAN TUNAI",
          "Trailer":""
         }
     ]
}

Get your KlikBCA Bisnis account statement for a period up to 31 days.

Your Request must contain following information:

Request

Field Data Type Mandatory Description
CorporateID String(10) Y Your KlikBCA Bisnis CorporateID
AccountNumber String(10) Y Account Number
StartDate String(10) Y Start Date of the account statement that you wants to get. Format: yyyy-MM-dd
EndDate String(10) Y End Date of the account statement that you wants to get. Format: yyyy-MM-dd

Result of the request will contains following information:

Response

Field Data Type Description
Currency String(3) Currency of the account (IDR, USD, etc)
StartBalance String(16) Balance of the account at the start date. Format: Number, 13.2
StartDate String(10) Start Date of the account statement that you wants to get. Format: yyyy-MM-dd
EndDate String(10) End Date of the account statement that you wants to get. Format: yyyy-MM-dd. If the end date is not a working day, then end date will changed automatically to the next working day.
Data
TransactionDate String(5) Date of Transaction: (“dd/MM”): the date of transaction done “PEND”: Pending transaction
BranchCode String(4) Branch code of the transaction
TransactionType String(1) Type of transaction: “D”: Debit “K”: Kredit (Credit)
TransactionAmount String(16) Amount of transaction. Format: Number, 13.2
TransactionName String(32) Name of Transaction
Trailer String(128) The Description of transaction





3. Fund Transfer

POST /banking/corporates/transfers

Request:

POST /banking/corporates/transfers HTTP/1.1
Host: sandbox.bca.co.id
Authorization: Bearer [access_token]
Content-Type: application/json
Origin: [yourdomain.com]
X-BCA-Key: [api_key]
X-BCA-Timestamp: [timestamp]
X-BCA-Signature: [signature]

{
    "CorporateID" : "BCAAPI2016",
    "SourceAccountNumber" : "0201245680",
    "TransactionID" : "00000001",
    "TransactionDate" : "2016-01-30",
    "ReferenceID" : "12345/PO/2016",
    "CurrencyCode" : "IDR",
    "Amount" : "100000.00",
    "BeneficiaryAccountNumber" : "0201245681",
    "Remark1" : "Transfer Test",
    "Remark2" : "Online Transfer"
}

curl "https://sandbox.bca.co.id/banking/corporates/transfers" \
  -H "Authorization: Bearer [access_token]"\
  -H "Content-Type: application/json"\
  -H "Origin: [yourdomain.com]"\
  -H "X-BCA-Key: [api_key]"\
  -H "X-BCA-Timestamp: [timestamp]"\
  -H "X-BCA-Signature: [signature]"\
-d '{"CorporateID": "BCAAPI2016", "SourceAccountNumber: "0201245680","TransactionID": "00000001", "TransactionDate":"2016-01-30","ReferenceID" : "12345/PO/2016","CurrencyCode" :"IDR", "Amount" : "100000.00", "BeneficiaryAccountNumber" : "0201245681", "Remark1" : "Transfer Test", "Remark2" : "Online Tr-
ansfer"

Response:

{
    "TransactionID" : "00000001",
    "TransactionDate" : "2016-01-30",
    "ReferenceID" : "12345/PO/2016",
    "Status" : "Success"
}

You can send fund transfer instructions to BCA using this service. The source of fund transfer must be from your corporate’s own deposit account. The recipient may be any deposit account within BCA. Your Request must contain following information:

Payload

Field Data Type Mandatory Description
CorporateID String(10) Y Your KlikBCA Bisnis CorporateID
SourceAccountNumber String(10) Y Source of Fund Account Number
TransactionID String(8) Y Transcation ID unique per day (using UTC+07 Time Zone). Format: Number
TransactionDate String(10) Y Transaction date. Format: yyyy-MM-dd
ReferenceID String(30) Y Sender’s transaction reference ID
CurrencyCode String(3) Y Currency Code (For now support IDR)
Amount String(16) Y Transfer amount. Format: Number, 13.2
BeneficiaryAccountNumber String(10) Y BCA Account number to be credited (Destination)
Remark1 String(18) N Transfer remark for receiver
Remark2 String(18) N Transfer remark for receiver

Result of the request will contains following information:

Response

Field Data Type Description
TransactionID String(8) Transaction ID unique per day. (Using UTC+07 Time Zone). Format: Number
TransactionDate String(10) Transcation date. Format: yyyy-MM-dd
ReferenceID String(30) Sender’s transaction reference ID
Status String(20) Transfer Status: “Success”

Sakuku

1. Create Payment

POST /sakuku-commerce/payments

Request:

POST /sakuku-commerce/payments HTTP/1.1
Host: sandbox.bca.co.id
Authorization: Bearer 45cfc1b6-9483-4265-bbb4-e4f8027cb4ce
Content-Type: application/json
Origin: Example.com
X-BCA-Key: bd818a9b-b5ba-44ed-8fd4-dfe378ac6db5
X-BCA-Timestamp: 2015-04-29T09:54:00.234+07:00
X-BCA-Signature: bd818a9bb5ba44ed8fd4dfe378ac6db5

{
     "MerchantID":"89000",
     "MerchantName":"Merchant One",
     "Amount":"100.22",
     "Tax":"0.0",  
     "TransactionID":"156479",  
     "CurrencyCode":"IDR",         
     "RequestDate":"2015-04-29T09:54:00.234+07:00",
     "ReferenceID":"123465798"   
}
curl "https://sandbox.bca.co.id/payments" \
  -H "Authorization: Bearer [access_token]"\
  -H "Content-Type: application/json"\
  -H "Origin: [yourdomain.com]"\
  -H "X-BCA-Key: [api_key]"\
  -H "X-BCA-Timestamp: [timestamp]"\
  -H "X-BCA-Signature: [signature]"\
-d '{"MerchantID":"89000", "MerchantName":"Merchant One",
"Amount":"100.22", "Tax":"0.0", "TransactionID":"156479",  
"CurrencyCode":"IDR", "RequestDate":"2015-04-29T09:54:0-
0.234+07:00", "ReferenceID":"123465798"}' 

Response:

{
      "TransactionID": "156479",
      "PaymentID": "14486EA88D493A92E0540021281A5568",
      "LandingPageURL": " https://sandbox.bca.co.id/
    login?PaymentID=14486EA88D493A92E0540021281A5568"
}

This service used by merchant to sent transaction data, and in return merchant will get PaymentID. Your Request must contain following information:

Request

Field Data Type Mandatory Description
MerchantID String(5) Y Merchant ID
MerchantName String(16) Y Merchant Name
TransactionID String(18) Y Transaction Number generated by merchant
ReferenceID String(40) Y Reference ID generated by merchant
RequestDate String(24) Y Transaction Date generated by merchant. Format: yyyy-MM-ddTHH:mm:ss.SSSTZD (ISO 8601)
Amount String(16) Y Amount of transaction
Tax String(16) N Tax of transaction
CurrencyCode String(3) Y Currency is on IDR
Description String(100) N Description of transcation
CallbackURL String(200) N User will be auto redirected to this URL’s merchant after finish the payment

Result of the request will contains following information:

Response

Field Data Type Description
TransactionID String(18) Transaction number generated by merchant
PaymentID String(40) Payment ID is generated by BCA
LandingPageURL String(200) URL for merchant to redirect user to Sakuku Commerce

After merchant get LandingPageURL, merchant should redirect user to that url.
Sample Code in UAT:
https://sandbox.bca.co.id/login?PaymentID=14486EA88D493A92E0540021281A5568

2. Payment Status

Request:
GET /sakuku-commerce/payments/{MerchantID}/{PaymentID}

Request:

GET /sakuku-commerce/payments/89000/0FE117D539DF610FE0540021281A5568 HTTP/1.1
Host: sandbox.bca.co.id
Authorization: Bearer [access_token]
Content-Type: application/json
Origin: [yourdomain.com]
X-BCA-Key: [api_key]
X-BCA-Timestamp: [timestamp]
X-BCA-Signature: [signature]
  curl "https://sandbox.bca.co.id/sakuku-commerce/payments/89000/14486EA88D493A92E0540021281A5568" \
  -H "Authorization: Bearer [access_token]"\
  -H "Content-Type: application/json"\
  -H "Origin: [yourdomain.com]"\
  -H "X-BCA-Key: [api_key]"\
  -H "X-BCA-Timestamp: [timestamp]"\
  -H "X-BCA-Signature: [signature]"

Response:

{
"PaymentID": "0FE117D539DF610FE0540021281A5568",
"Amount": "10000.00",
"RequestDate": "2015-02-25T16:39:19.234+07:00",
"PaymentStatus": "11",
"ReasonStatus": {
    "Indonesian": "Transaksi sedang dalam proses",
    "English": "Transaction on process"
  }
}

This service provided for merchant to get status of payment transaction. Your Request must contain following information:

Request

Field Data Type Description
MerchantID String(5) MerchantID is generated by BCA(numeric)
PaymentID String(40) PaymentID is generated by BCA

Your Request will contain following RESPONSE information:

Response

Field DataType Description
PaymentID String(40) PaymentID of transaction
Amount String(16) Amount of transaction
RequestDate String(24) Date of transaction. Format: yyyy-MM-ddTHH:mm:ss.SSSTZD (ISO 8601)
PaymentStatus String(2) 00: Success, 01: Failed, 11: On Process
ReasonStatus
Indonesian String(500) Reason status in Indonesian
English String(500) Reason status in English

General Information

GET /general/rate/forex

Request:

GET /general/rate/forex?CurrencyCode=USD,JPY,XXX&RateType=erate,tt,yy HTTP/1.1
Host: sandbox.bca.co.id
Authorization: Bearer [access_token]
Content-Type: application/json
Origin: [yourdomain.com]
X-BCA-Key: [api_key]
X-BCA-Timestamp: [timestamp]
X-BCA-Signature: [signature]
curl "https://sandbox.bca.co.id/general/rate/forex?CurrencyCode=USD,JPY,XXX&RateType=erate,tt,yy" \
  -H "Authorization: Bearer [access_token]"\
  -H "Content-Type: application/json"\
  -H "Origin: [yourdomain.com]"\
  -H "X-BCA-Key: [api_key]"\
  -H "X-BCA-Timestamp: [timestamp]"\
  -H "X-BCA-Signature: [signature]"

Response:

{
  "Currencies": [{
	"CurrencyCode": "USD",
	"RateDetail": [{
		"RateType": "erate"
		"Buy": 17500.00,
		"Sell": 17000.00,
		"LastUpdate": "2015-09-04T19:45:44.234+07:00",
		},
		{
		"RateType": "tt"
		"Buy": 12000.00,
		"Sell": 12300.00,
		"LastUpdate": "2015-09-04T19:45:44.234+07:00",
		}]
	},
	{
	"CurrencyCode": "JPY",
	"RateDetail": [{
		"RateType": "erate"
		"Buy": 121.00,
		"Sell": 122.00,
		"LastUpdate": "2015-09-04T19:45:44.234+07:00",
		},
		{
		"RateType": "tt"
		"Buy": -,
		"Sell": -,
		"LastUpdate": "-",
		}]
	}],
  "InvalidRateType":"yy"
  "InvalidCurrency":"XXX"
}

1. Foreign Exchange Rate

Get information about Foreign Currency Exchange Rate for applicable currencies in BCA. The exchange rate are divide into four types eRate (Electronic Rate), TT (Telegrafic Transfer), TC (Travellers Cheque) and BN (Bank Notes).

Query string parameters:

Field DataType Mandatory Description
CurrencyCode String N Known currency code. For multiple currencies use comma separated.

Following are the known foreign currency in BCA.

AUD - Australia Dollar
BND - Bruneian Dollar
CAD - Canadian Dollar
CHF - Francs
CNY - China Yuan
DKK - Danish Krone
EUR - Euro
GBP - Great Britain Poundsterling
HKD - Hongkong Dollar
JPY - Japan Yen
KRW - Korea Won
NOK - Norwegian Krone
NZD - New Zealand Dollar
PHP - Phillipine Peso
SAR - Saudi Riyal
SEK - Swedish Krona
SGD - Singapore Dollar
THB - Thailand Baht
TWD - Taiwan Dollar
USD - US Dollar


If the field was left empty, it will considered as “all know currencies”.
RateType String Y The type for the desired rate.
eRate (electronic Rate)
TT (Telegrafic Transfer)
TC (Travellers Cheque)
BN (Bank Notes)


If the field was left empty, it will considered as “all rate type”.

Result of the request will contains following information:

Response

Field DataType Description
InvalidRateType String If the request contains valid and invalid rate types in single request, the invalid rate will be list down in this field.
InvalidCurrencyCode String If the request contains valid and invalid currency code in single request, the invalid currency code will be list down in this field.
Currencies
CurrencyCode String(3) The currency code.
e.g. IDR, USD, JPY
RateDetail
RateType String(5) Must be among erate, tt, tc, bn.
Buy String(13) In format 6.6.
When the currency has no value for this field, it will be set to "-".
Sell String(13) In format 6.6.
When the currency has no value for this field, it will be set to "-".
LastUpdate String(19) In format YYYY-MM-DDTHH24:Mi:SS.SSSZ.
When the currency has no value for this type, it will be set to "-".


2. Deposit Rate

GET /general/rate/deposit

Request:

GET /general/rate/deposit HTTP/1.1
Host: sandbox.bca.co.id
Authorization: Bearer [access_token]
Content-Type: application/json
Origin: [yourdomain.com]
X-BCA-Key: [api_key]
X-BCA-Timestamp: [timestamp]
X-BCA-Signature: [signature]
curl "https://sandbox.bca.co.id/general/rate/deposit" \
  -H "Authorization: Bearer [access_token]"\
  -H "Content-Type: application/json"\
  -H "Origin: [yourdomain.com]"\
  -H "X-BCA-Key: [api_key]"\
  -H "X-BCA-Timestamp: [timestamp]"\
  -H "X-BCA-Signature: [signature]"

Response:

{
  "Date": 2016-06-09,
  "Description1": "SUKU BUNGA BCA DEP RP BERLAKU MULAI 24 APRIL 2009",
  "Description2": "SUKU BUNGA BCA DEP USD BERLAKU MULAI 1 APRIL 2009",
  "Description3": "TGKT BUNGA YG WAJAR YG DIJAMIN LPS UTK PERIODE 15 APR 2009 S/D 14 MEI 2009",
  "OutputData": [
    {
      "ProductCode": "014",
      "ProductName": ">= RP 25 MILYAR",
      "Month01": "6,25",
      "Month03": "6,25",
      "Month06": "6,25",
      "Month12": "6,25"
    },
    {
      "ProductCode": "016",
      "ProductName": "<= USD 200.000",
      "Month01": "0,20",
      "Month03": "0,20",
      "Month06": "0,20",
      "Month12": "0,35"
    },
    {
      "ProductCode": "017",
      "ProductName": ">  USD 200.000",
      "Month01": "0,40",
      "Month03": "0,40",
      "Month06": "0,40",
      "Month12": "0,40"
    }
  ]
}

This service offer real-time deposit rate for BCA products.

Response

Field DataType Description
Date String(9) six-digit last update date yyyy-MM-dd (ISO8601)
Description1 String(100) Description 1
Description2 String(100) Description 2
Description3 String(100) Description 3
OutputData
ProductCode String(3) Product code for deposit rate
ProductName String(20) Product name of deposit rate
Month01 String(4) Deposit rate for one month
Month03 String(4) Deposit rate for three month
Month06 String(4) Deposit rate for six month
Month12 String(4) Deposit rate for one year



















3. Nearest ATM Locator

This service offer location of nearest BCA’s ATM Locator based current location.

GET /general/info-bca/atm
Request:

GET /general/info-bca/atm?SearchBy=Distance&Latitude=-6.1900718&Longitude
=106.797190&Count=3&Radius=20 HTTP/1.1
Host: sandbox.bca.co.id
Authorization: Bearer [access_token]
Content-Type: application/json
Origin: [yourdomain.com]
X-BCA-Key: [api_key]
X-BCA-Timestamp: [timestamp]
X-BCA-Signature: [signature]
curl "https://sandbox.bca.co.id/general/info-bca/atm?SearchBy=Distance&Latitude=-6.1900718&Longitude=106.797190&Count=3&Radius=20" \
  -H "Authorization: Bearer [access_token]"\
  -H "Content-Type: application/json"\
  -H "Origin: [yourdomain.com]"\
  -H "X-BCA-Key: [api_key]"\
  -H "X-BCA-Timestamp: [timestamp]"\
  -H "X-BCA-Signature: [signature]"

Response:

{
    "ATMDetails": [
      {
        "Type": "ATM",
        "Address": "Jl. Letjen. S. Parman Kav. 77 Slipi, Jakarta 11410",
        "City": "Jakarta Barat",
        "Country": "INDONESIA",
        "Latitude": "-6.190673",
        "Longitude": "-6.190673",
        "Distance": "82.34929671839872"
      },
      {
        "Type": "CDM",
        "Address": "Jl. S. Parman Kav. 79 - Jakarta - 11420",
        "City": "Jakarta Barat",
        "Country": "INDONESIA",
        "Latitude": "-6.188951",
        "Longitude": "-6.188951",
        "Distance": "130.30000817482784"
      },
      {
        "Type": "ANT",
        "Address": "Jl.Letjen S. Parman Kav. 76, Jakarta Barat",
        "City": "Jakarta Barat",
        "Country": "INDONESIA",
        "Latitude": "-6.191206",
        "Longitude": "-6.191206",
        "Distance": "136.6970908587352"
      }
    ]
}

Query String Parameters

Field DataType Mandatory Description
SearchBy String(8) Y Use “Distance”
Latitude String(12) Y Current location’s latitude
Longitude String(12) Y Current location’s longitude
Count String(2) N Number of ATMs want to be displayed.Max 20, if not entered, will show 10 ATMs
Radius String(5) Y Set maximum distance range to find the closest ATM in meter

Response

Field DataType Description
ATMDetails
Type String(3) Type of product
Address String(100) Full address detail of product
City String(50) City detail
Country String(50) Country detail
Latitude String(12) Latitude product’s location
Longitude String(12) Longitude product’s location
Distance String(20) Distance estimation in meter

Fire

1. TeleTransfer to Account

Provides service transaction “Transaction to BCA’s Account” and also “Transfer to Other Bank”. Yout request must contain following information:

POST https://sandbox.bca.co.id/fire/transactions/to-account
Request:

POST /fire/transactions/to-account HTTP/1.1
Host: sandbox.bca.co.id
Authorization: Bearer [access_token]
Content-Type: application/json
Origin: [yourdomain.com]
X-BCA-Key: [api_key]
X-BCA-Timestamp: [timestamp]
X-BCA-Signature: [signature]

curl "https://sandbox.bca.co.id/fire/transactions/to-account" \
  -H "Authorization: Bearer [access_token]"\
  -H "Content-Type: application/json"\
  -H "Origin: [yourdomain.com]"\
  -H "X-BCA-Key: [api_key]"\
  -H "X-BCA-Timestamp: [timestamp]"\
  -H "X-BCA-Signature: [signature]"\
{
    "Authentication":{
        "CorporateID":"DUMMYID",
	"AccessCode":"FcgrR21fkzjE7GpuH2Eb",
        "BranchCode":"DUMMYID01",
        "UserID":"DUMMYIDO001",
        "LocalID":"QWERTY54321"		
    },
    "SenderDetails":{
        "FirstName":"MG",
        "LastName":"",
        "DateOfBirth":"",
        "Address1":"skgknp",
        "Address2":"",
        "City":"India",
        "StateID":"",
        "PostalCode":"",
        "CountryID":"US",
        "Mobile":"",
        "IdentificationType":"",
        "IdentificationNumber":"",
        "AccountNumber":""
    },
    "BeneficiaryDetails":{
        "Name":"monica gupt",
        "DateOfBirth":"",
        "Address1":"",
        "Address2":"",
        "City":"",
        "StateID":"",
        "PostalCode":"",
        "CountryID":"ID",
        "Mobile":"",
        "IdentificationType":"",
        "IdentificationNumber":"",
        "NationalityID":"",
        "Occupation":"",
        "BankCodeType":"BIC",
        "BankCodeValue":"260544  XXX",
        "BankCountryID":"ID",
        "BankAddress":"",
        "BankCity":"",
        "AccountNumber":"0106666011"
    },
    "TransactionDetails":{
        "CurrencyID":"IDR",
        "Amount":"10000000",
        "PurposeCode":"011",
        "Description1":"",
        "Description2":"",
        "DetailOfCharges":"SHA",
        "SourceOfFund":"",
        "FormNumber":"7632605701245868"
    }
}

Payload

Field DataType Mandatory Description
Authentication
CorporateID String(6) Y Agent code used to connect to FIRe system
AccessCode String(20) Y Password that will be read by system for each transaction request
BranchCode String(8) Y FI branch code of API client
UserID String(12) Y User ID
LocalID String(15) Y Branch code from FI sub branch of API client
SenderDetails
FirstName String(35) Y Sender’s first name
LastName String(35) N Sender’s last name
DateOfBirth String(8) N Sender’s date of birth. Format : ddmmyyyy
Address1 String(35) Y Sender’s first address
Address2 String(35) N Sender’s second address
City String(18) Y Sender’s city
StateID String(2) N State ID
PostalCode String(10) N Sender’s postal code
CountryID String(2) Y Sender’s country initial code. Example: Indonesia = ID
Mobile String(20) N Sender’s mobile phone number
IdentificationType String(2) N Sender’s identity type (PP = Passport, ID = identity, DR = Dr. License)
IdentificationNumber String(24) N Sender’s identity number
AccountNumber String(34) N Sender’s account number
BeneficiaryDetails
Name String(35) Y Beneficiary’s name
DateOfBirth String(8) N Beneficiary’s date of birth. Format : ddmmyyyy
Address1 String(35) N Beneficiary’s first address
Address2 String(35) N Beneficiary’s second address
City String(35) N Beneficiary’s city
StateID String(2) N Beneficiary’s state ID
PostalCode String(10) N Beneficiary’s postal code
CountryID String(2) Y Beneficiary’s country initial code. Example : Indonesia = ID
Mobile String(20) N Beneficiary’s mobile phone number
IdentificationType String(2) N Beneficiary’s identity type. (PP = Passport, ID = identity, DR = Dr. License)
IdentificationNumber String(24) N Beneficiary’s identity number
NationalityID String(2) N Country initial code of beneficiary’s nationality. Example = Indonesia = ID
Occupation String(30) N Beneficiary occupation
BankCodeType String(3) Y Beneficiary’s SWIFT code type from PY04 table. (BIC, NID, CHP(CHIPS), ABA, NAM(NAME))
BankCodeValue String(23) Y Value of SWIFT Code
BankCountryID String(2) Y Beneficiary bank’s country code
BankAddress String(35) N Beneficiary bank’s address
BankCity String(35) N Beneficiary bank’s city
AccountNumber String(34) Y Beneficiary bank’s account number
TransactionDetails
CurrencyID String(3) Y Transaction currency between FI and FIRe based on contract (setting FI Country in TPS)
Amount String(20) Y Transaction nominal. Format: Number, 17.2
PurposeCode String(3) Y Transaction purpuse:
011 EXPORT
012 IMPORT
030 BUSINESS/PRIVATE TRIP
040 EDUCATION
150 WORKER’S REMMITANCE
161 TAX AND FINE
162 GRANT
999 OTHERS
Description1 String(35) N First description
Description2 String(35) N Second description
DetailOfCharges String(3) Y Charges(SHA / OUR)
SourceOfFund String(100) N Source of transaction fund
FormNumber String(16) Y FI Ref


Result of the request will contains following information:

Response:

{
    "BeneficiaryDetails":
    {
        "Name":"monica gupt",
        "AccountNumber":"0106666011",
        "ServerBeneAccountName":"monica gupt"
    },
    "TransactionDetails":
    {
        "CurrencyID":"IDR",
        "Amount":"10000000",
        "Description1":"",
        "Description2":"",
        "FormNumber":"7632605701245868",
        "ReferenceNumber":"IDPYID01000INA17030000057",
        "ReleaseDateTime":"2017-10-30T10:37:47.380+07:00"
    },
    "StatusTransaction":"0000",
    "StatusMessage":"Success"
}

Response

Field DataType Mandatory Description
BeneficiaryDetails
Name String(35) N Beneficiary’s name
AccountNumber String(34) N Beneficiary bank’s account number
ServerBeneAccountName String(35) N Name of beneficiary according to application (bank / switcher)
TransactionDetails
CurrencyID String(3) N Transaction currency between FI and FIRe based on contract (setting FI Country in TPS)
Amount String(20) N Transaction nominal. Format: Number 17.2
Description1 String(35) N First Description
Description2 String(35) N Second Description
FormNumber String(16) N FI Ref
ReferenceNumber String(25) N FI Ref
ReleaseDateTime String(24) N Transaction release time. Format : YYYY-MM-DDThh:mm:ssTZD
StatusTransaction String(4) Y ResponseCode and Sub-ResponseCode of transaction
StatusMessage String(100) Y Description of StatusTransaction

2. Inquiry Account

Provides service to Inquiry BCA’s Account name or Other Bank Switching’s Account name. Your request must contain following information:

POST https://sandbox.bca.co.id/fire/accounts
Request:

POST /fire/accounts HTTP/1.1
Host: sandbox.bca.co.id
Authorization: Bearer [access_token]
Content-Type: application/json
Origin: [yourdomain.com]
X-BCA-Key: [api_key]
X-BCA-Timestamp: [timestamp]
X-BCA-Signature: [signature]

curl "https://sandbox.bca.co.id/fire/accounts" \
  -H "Authorization: Bearer [access_token]"\
  -H "Content-Type: application/json"\
  -H "Origin: [yourdomain.com]"\
  -H "X-BCA-Key: [api_key]"\
  -H "X-BCA-Timestamp: [timestamp]"\
  -H "X-BCA-Signature: [signature]"\
{
    "Authentication":{
        "CorporateID":"BCAAPI2016",
        "AccessCode":"Kw5oTuF12dseSH44Y8ww",
        "BranchCode":"BCA001",
        "UserID":"BCAUSERID",
        "LocalID":"40115"
    },
    "BeneficiaryDetails":{
        "BankCodeType":"BIC",
        "BankCodeValue":"CENAIDJAXXX",
        "AccountNumber":"0106666011"
    }
}

Payload

Field DataType Mandatory Description
Authentication
CorporateID String(6) Y Agent code used to connect to FIRe system
AccessCode String(20) Y Password that will be read by system for each transaction request
BranchCode String(8) Y FI branch code of API client
UserID String(12) Y User ID
LocalID String(15) Y Branch code from FI sub branch of API client
BeneficiaryDetails
BankCodeType String(3) Y Beneficiary’s SWIFT code type from PY04 table. (BIC, NID, CHP (CHIPS), ABA, NAM(NAME))
BankCodeValue String(23) Y
AccountNumber String(34) Y Beneficiary bank’s account number

Result of the request will contains following information:

Response:

{
    "BeneficiaryDetails":
    {
        "ServerBeneAccountName":"ERWINA TAUFIK"
    },
    "StatusTransaction":"0000",
    "StatusMessage":"Success"
}

Response

Field DataType Mandatory Description
BeneficiaryDetails
ServerBeneAccountName String(35) N Name of beneficiary according to application (bank / switcher)
StatusTransaction String(4) Y ResponseCode and Sub-ResponseCode of transaction
StatusMessage String(100) Y Description of StatusTransaction

3. Inquiry Account Balance

Provides service to Inquiry balance for Vostro’s Account.
Your request must contain following information:

POST https://sandbox.bca.co.id/fire/accounts/balance
Request:

POST /fire/accounts/balance HTTP/1.1
Host: sandbox.bca.co.id
Authorization: Bearer [access_token]
Content-Type: application/json
Origin: [yourdomain.com]
X-BCA-Key: [api_key]
X-BCA-Timestamp: [timestamp]
X-BCA-Signature: [signature]

curl "https://sandbox.bca.co.id/fire/accounts/balance" \
  -H "Authorization: Bearer [access_token]"\
  -H "Content-Type: application/json"\
  -H "Origin: [yourdomain.com]"\
  -H "X-BCA-Key: [api_key]"\
  -H "X-BCA-Timestamp: [timestamp]"\
  -H "X-BCA-Signature: [signature]"\
{
    "Authentication":{
        "CorporateID":"BCAAPI2016",
        "AccessCode":"Kw5oT25dfs1WbSH44Y8ww",
        "BranchCode":"BCA001",
        "UserID":"BCAUSERID001,
        "LocalID":"40115"
    },
    "FIDetails":{
        "AccountNumber":"0012323008"
    }
}

Payload:

Field DataType Mandatory Description
Authentication
CorporateID String(6) Y Agent code used to connect to FIRe system
AccessCode String(20) Y Password that will be read by system for each transaction request
BranchCode String(8) Y FI branch code of API client
UserID String(12) Y User ID
LocalID String(15) Y Branch code from FI sub branch of API Client
FIDetails
AccountNumber String(34) Y FI sender’s account number that registered in FIRe


Result of the request will contains following information:

Response:

{
    "FIDetails":
    {
        "CurrencyID":"USD",
        "AccountBalance":"228277.56"
    },
    "StatusTransaction":"0000",
    "StatusMessage":"Success"
}


Response

Field DataType Mandatory Description
StatusTransaction String(4) Y ResponseCode and Sub-ResponseCode of transaction
StatusMessage String(100) Y Description of StatusTransaction
FIDetails
CurrencyID String(3) Y FI sender’s currency that registered in FIRe
AccountBalance String(20) Y FI sender’s account balance that registered in FIRe. Format : number(17.2)

4. Inquiry Transaction

Provides service to Inquiry Transaction that has been submitted before. Your request must contain following information:

POST https://sandbox.bca.co.id/fire/transactions
Request:

POST /fire/transactions HTTP/1.1
Host: sandbox.bca.co.id
Authorization: Bearer [access_token]
Content-Type: application/json
Origin: [yourdomain.com]
X-BCA-Key: [api_key]
X-BCA-Timestamp: [timestamp]
X-BCA-Signature: [signature]

curl "https://sandbox.bca.co.id/fire/transactions" \
  -H "Authorization: Bearer [access_token]"\
  -H "Content-Type: application/json"\
  -H "Origin: [yourdomain.com]"\
  -H "X-BCA-Key: [api_key]"\
  -H "X-BCA-Timestamp: [timestamp]"\
  -H "X-BCA-Signature: [signature]"\
{
    "Authentication":{
        "CorporateID":"BCAAPI2016",
        "AccessCode":"Kw5oTuFiR1WbSH44Y8ww",
        "BranchCode":"BCA001",
        "UserID":"BCAUSERID001",
        "LocalID":"40115"
    },
    "TransactionDetails":{
        "InquiryBy":"N",
        "InquiryValue":"0247986325"
    }
}

Payload:

Field DataType Mandatory Description
Authentication
CorporateID String(6) Y Agent code used to connect to FIRe system
AccessCode String(20) Y Password that will be read by system for each transaction request
BranchCode String(8) Y FI branch code of API client
UserID String(12) Y User ID
LocalID String(15) Y Branch code from FI sub branch of API client
TransactionDetails
InquiryBy String(1) Y N : PIN NON
F : Form Number
B : BCARef Number
InquiryValue String(35) Y Value for PIN NON/Form Number/ BCARef Number


Result of the request will contains following information:

Response:

{
    "SenderDetails":
    {
        "FirstName":"ERWINA TAUFIK",
        "LastName":""
    },
    "BeneficiaryDetails":
    {
        "Name":"ERWINA TAUFIK",
        "BankCodeType":"BIC",
        "BankCodeValue":"CENAIDJAXXX",
        "AccountNumber":"0012323008"
    },
    "TransactionDetails":
    {
        "AmountPaid":"2110000",
        "CurrencyID":"IDR",
        "ReleaseDateTime":"2016-01-13T02:37:02+07:00",
        "LocalID":"EBNMEECT",
        "FormNumber":"CT15 IDR3A",
        "ReferenceNumber":"ABNMAE01000NON16010000118",
        "PIN":"0247986325",
        "Description1":"DNP1.3",
        "Description2":""
    },
    "StatusTransaction":"0001",
    "StatusMessage":"Credited to Beneficiary Account"
}

Response

Field DataType Mandatory Description
StatusTransaction String(4) Y ResponseCode and Sub-ResponseCode of transction
StatusMessage String(100) Y Description of StatusTransaction
SenderDetails
FirstName String(35) N Sender’s first name
LastName String(35) N Sender’s last name
BeneficiaryDetails
Name String(35) N Beneficiary’s name
BankCodeType String(3) N Beneficiary’s SWIFT code type from PY04 table. (BIC, NID, CHP(CHIPS), ABA, NAM(NAME))
BankCodeValue String(23) N Value for SWIFT code type
AccountNumber String(34) N Beneficiary bank’s account number
TransactionDetails
AmountPaid String(20) N Transaction value.
Format: Number(17.2)
CurrencyID String(3) N Currency code
ReleaseDateTime String(24) N Transaction request time by FI
LocalID String(15) N Local ID of Last Processed Non-Inquiry Transaction
FormNumber String(16) N FI Ref
ReferenceNumber String(25) N Ref number FI/BCA
PIN String(35) N Personal Identification Number for encashment
Description1 String(35) N First Description
Description2 String(35) N Second description

5. TeleTransfer Cash Transfer

Provides service for transaction “Cash Transfer” to Non account holder.
Your request must contain following information:

POST https://sandbox.bca.co.id/fire/transactions/cash-transfer
Request:

POST /fire/transactions/cash-transfer HTTP/1.1
Host: sandbox.bca.co.id
Authorization: Bearer [access_token]
Content-Type: application/json
Origin: [yourdomain.com]
X-BCA-Key: [api_key]
X-BCA-Timestamp: [timestamp]
X-BCA-Signature: [signature]

curl "https://sandbox.bca.co.id/fire/transactions/cash-transfer" \
  -H "Authorization: Bearer [access_token]"\
  -H "Content-Type: application/json"\
  -H "Origin: [yourdomain.com]"\
  -H "X-BCA-Key: [api_key]"\
  -H "X-BCA-Timestamp: [timestamp]"\
  -H "X-BCA-Signature: [signature]"\
{
    "Authentication":{
        "CorporateID":"BCAAPI2016",
        "AccessCode":"Kw5oTu5th6SH44Y8ww",
        "BranchCode":"BCA001",
        "UserID":"BCAUSERID001",
        "LocalID":"40115"
    },
    "SenderDetails":{
        "FirstName":"BLUMA",
        "LastName":"PINTO",
        "DateOfBirth":"",
        "Address1":"DUBAI",
        "Address2":"",
        "City":"DUBAI",
        "StateID":"",
        "PostalCode":"",
        "CountryID":"AE",
        "Mobile":"",
        "IdentificationType":"",
        "IdentificationNumber":""
    },
    "BeneficiaryDetails":{
        "Name":"TEST",
        "DateOfBirth":"",
        "Address1":"Dubai",
        "Address2":"",
        "City":"DUBAI",
        "StateID":"ID",
        "PostalCode":"",
        "CountryID":"ID",
        "Mobile":"6212365478922",
        "IdentificationType":"",
        "IdentificationNumber":"",
        "NationalityID":"",
        "Occupation":""
    },
    "TransactionDetails":{
        "PIN":"477634423",
        "SecretQuestion":"",
        "SecretAnswer":"",
        "CurrencyID":"IDR",
        "Amount":"150000.00",
        "PurposeCode":"030",
        "Description1":"",
        "Description2":"",
        "DetailOfCharges":"OUR",
        "SourceOfFund":"Money transfer for family needs.",
        "FormNumber":"477634423"

    }
}

Payload

Field DataType Mandatory Description
Authentication
CorporateID String(6) Y Agent code used to connect to FIRe system
AccessCode String(20) Y Password that will be read by system for each transaction request
BranchCode String(8) Y FI branch code of API client
UserID String(12) Y User ID
LocalID String(15) Y Branch code from FI sub branch of API client
SenderDetails
FirstName String(35) Y Sender’s first name
LastName String(35) N Sender’s last name
DateOfBirth String(8) N Sender’s date of birth. Format : ddmmyyyy
Address1 String(35) Y Sender’s first address
Address2 String(35) N Sender’s second address
City String(18) Y Sender’s city
StateID String(2) N Sender’s state ID
PostalCode String(10) N Sender’s postal code
CountryID String(2) Y Sender’s country initial code. Example : Indonesia = ID
Mobile String(20) N Sender’s mobile phone number
IdentificationType String(2) N Sender’s identity type. (PP = Passport, ID = Identity, DR = Dr. License)
IdentificationNumber String(24) N Sender’s identity number
BeneficiaryDetails
Name String(35) Y Beneficiary’s name
DateOfBirth String(8) N Beneficiary’s date of birth. Format : ddmmyyyy
Address1 String(35) N Beneficiary’s first address
Address2 String(35) N Beneficiary’s second address
City String(35) N Beneficiary’s city
StateID String(2) N Beneficiary’s state ID
PostalCode String(10) N Beneficiary’s postal code
CountryID String(2) Y Beneficiary’s country initial code. Example : Indonesia = ID
Mobile String(20) N Beneficiary’s mobile phone number
IdentificationType String(2) N Beneficiary’s identity type. (PP = Passport, ID = Identity, DR = Dr. License)
IdentificationNumber String(24) N Beneficiary’s identity number
NationalityID String(2) N Country initial code of beneficiary’s nationality. Example : Indonesia = ID
Occupation String(30) N Beneficiary occupation
TransactionDetails
PIN String(35) N Transaction PIN number. If not available, BCA will provide it
SecretQuestion String(100) N Questions
SecretAnswer String(100) N Answers
CurrencyID String(3) Y Transaction currency between FI and FIRe based on contract (setting FI Country in TPS)
Amount String(20) Y Transaction nominal. Format: number(17,2)
PurposeCode String(3) Y Transaction purpose.
011 EXPORT
012 IMPORT
030 BUSINESS/PRIVATE TRIP
040 EDUCATION
150 WORKER’S REMMITANCE 161 TAX AND FINE
162 GRANT
999 OTHERS
Description1 String(35) N First description
Description2 String(35) N Second description
DetailOfCharges String(3) Y Charges (SHA / OUR)
SourceOfFund String(100) Y Source of transaction fund
FormNumber String(16) Y FI Ref

Result of the request will contains following information:

Response:

{
    "BeneficiaryDetails":
    {
        "Name":"TEST"
    },
    "TransactionDetails":
    {
        "PIN":"477634423",
        "CurrencyID":"IDR",
        "Amount":"150000.00",
        "Description1":"",
        "Description2":"",
        "FormNumber":"477634423",
        "ReferenceNumber":"CITIID01000NON16040000099",
        "ReleaseDateTime":""
    },
    "StatusTransaction":"0003",
    "StatusMessage":"Ready to Encash"
}

Response

Field DataType Mandatory Description
StatusTransaction String(4) Y ResponseCode and Sub- ResponseCode of transaction
StatusMessage String(100) Y Description of StatusTransaction
BeneficiaryDetails
Name String(35) N Beneficiary’s name
TransactionDetails
PIN String(35) N Transaction PIN number. If not available, BCA will provide it
CurrencyID String(3) N Transaction currency between FI and FIRe based on contract
(setting FI Country in TPS)
Amount String(20) N Transaction nominal
Description1 String(35) N First description
Description2 String(35) N Second description
FormNumber String(16) N FI Ref
ReferenceNumber String(25) N FI Ref
ReleaseDateTime String(24) N Transaction release time.
Format : YYYY-MM-DDThh:mm:ssTZD

6. Amendment Cash Transfer

Provides service for Amendment “Cash Transfer” to Non account holder. Yout request must contain following information:

PUT https://sandbox.bca.co.id/fire/transaction/cash-transfer/amend
Request:

POST /fire/transactions/cash-transfer/amend HTTP/1.1
Host: sandbox.bca.co.id
Authorization: Bearer [access_token]
Content-Type: application/json
Origin: [yourdomain.com]
X-BCA-Key: [api_key]
X-BCA-Timestamp: [timestamp]
X-BCA-Signature: [signature]

curl "https://sandbox.bca.co.id/fire/transactions/cash-transfer/amend" \
  -H "Authorization: Bearer [access_token]"\
  -H "Content-Type: application/json"\
  -H "Origin: [yourdomain.com]"\
  -H "X-BCA-Key: [api_key]"\
  -H "X-BCA-Timestamp: [timestamp]"\
  -H "X-BCA-Signature: [signature]"\
{
    "Authentication":{
        "CorporateID":"BCAAPI2016",
        "AccessCode":"k1oawj8tygkrY9tBVkt",
        "BranchCode":"BCAAPI01",
        "UserID":"BCAUSERID001",
        "LocalID":"BCA01"
    },
    "AmendmentDetails":{
        "SenderDetails":{
            "FirstName":"ERIK HERNANDEZ CORTES",
            "LastName":"",
            "DateOfBirth":"",
            "Address1":"4TH AVENUE MANHATTAN",
            "Address2":"",
            "City":"NEW YORK",
            "StateID":"",
            "PostalCode":"",
            "CountryID":"US",
            "Mobile":"",
            "IdentificationType":"",
            "IdentificationNumber":""
        },
        "BeneficiaryDetails":{
            "Name":"ADRIANA PEREZ ENRRIQUEZ",
            "DateOfBirth":"",
            "Address1":"MAIN STREET 512",
            "Address2":"",
            "City":"",
            "StateID":"",
            "PostalCode":"",
            "CountryID":"ID",
            "Mobile":"",
            "IdentificationType":"",
            "IdentificationNumber":"",
            "NationalityID":"",
            "Occupation":""
        },
        "TransactionDetails":{
            "SecretQuestion":"",
            "SecretAnswer":"",
            "Description1":"",
            "Description2":""
        }
    },
    "TransactionDetails":{
        "FormNumber":"CT293 IDR2D"
    }
}

Payload:

Field DataType Mandatory Description
Authentication
CorporateID String(6) Y Agen code used to connect to FIRe system
AccessCode String(20) Y Password that will be read by system for each transaction request
BranchCode String(8) Y FI branch code of API client
UserID String(12) Y User ID
LocalID String(15) Y Branch code from FI sub branch of API client
AmendmentDetails
  SenderDetails
   FirstName String(35) Y Sender’s first name
   LastName String(35) N Sender’s last name
   DateOfBirth String(8) N Sender’s date of birth.
Format : ddmmyyyy
   Address1 String(35) Y Sender’s first address
   Address2 String(35) N Sender’s second address
   City String(18) Y Sender’s city
   StateID String(2) N State ID
   PostalCode String(10) N Sender’s postal code
   CountryID String(2) Y Sender’s country initial code.
Example : Indonesia = ID
   Mobile String(20) N Sender’s mobile phone number
   IdentificationType String(2) N Sender’s identity type
   IdentificationNumber String(24) N Sender’s identity number
  BenficiaryDetails
   Name String(35) Y Beneficiary’s name
   DateOfBirth String(8) N Beneficiary’s date of birth.
Format : ddmmyyyy
   Address1 String(35) N Beneficiary’s first address
   Address2 String(35) N Beneficiary’s second address
   City String(35) N Beneficiary’s city
   StateID String(2) State ID
   PostalCode String(10) N Beneficiary’s postal code
   CountryID String(2) N Beneficiary’s country initial code.
Example : Indonesia = ID
   Mobile String(20) N Beneficiary’s mobile phone number
   IdentificationType String(2) N Beneficiary’s identity type
   IdentificationNumber String(24) N Beneficiary’s identity number
   NationalityID String(2) N Country initial code of beneficiary’s nationality.
Example : Indonesia = ID
   Occupation String(30) N Beneficiary occupation
  TransactionDetails
   Description1 String(35) N First Description
   Description2 String(35) N Second Description
   SecretQuestion String(100) N Question
   SecretAnswer String(100) N Answer
TransactionDetails
FormNumber String(16) Y FI Ref


Result of the request will contains following information:

Response:

{
    "SenderDetails":
    {
        "FirstName":"ERIK HERNANDEZ CORTES",
        "LastName":"",
        "DateOfBirth":"",
        "Address1":"4TH AVENUE MANHATTAN",
        "Address2":"",
        "City":"NEW YORK",
        "StateID":"",
        "PostalCode":"",
        "CountryID":"US",
        "Mobile":"",
        "IdentificationType":"",
        "IdentificationNumber":""
    },
    "BeneficiaryDetails":
    {
        "Name":"ADRIANA PEREZ ENRRIQUEZ",
        "DateOfBirth":"",
        "Address1":"MAIN STREET 512",
        "Address2":"",
        "City":"",
        "StateID":"",
        "PostalCode":"",
        "CountryID":"ID",
        "Mobile":"",
        "IdentificationType":"",
        "IdentificationNumber":"",
        "NationalityID":"",
        "Occupation":""
    },
    "TransactionDetails":
    {
        "Description1":"",
        "Description2":"",
        "SecretQuestion":"",
        "SecretAnswer":"",
        "FormNumber":"CT293_IDR2D"
    },
    "StatusTransaction":"0000",
    "StatusMessage":"Success"
}

Response

Field DataType Mandatory Description
StatusTransaction String(4) Y ResponseCode and Sub-ResponseCode of transaction
StatusMessage String(100) Y Description of StatusTransaction
SenderDetails
FirstName String(35) N Sender’s first name
LastName String(35) N Sender’s last name
DateOfBirth String(8) N Sender’s date of birth.
Format : ddmmyyyy
Address1 String(35) N Sender’s first address
Address2 String(35) N Sender’s second address
City String(18) N Sender’s city
StateID String(2) N State ID
PostalCode String(10) N Sender’s postal code
CountryID String(2) N Sender’s country initial code.
Example : Indonesia = ID
Mobile String(20) N Sender’s mobile phone number
IdentificationType String(2) N Sender’s identity type
IdentificationNumber String(24) N Sender’s identity number
BeneficiaryDetails
Name String(35) N Beneficiary’s name
DateOfBirth String(8) N Beneficiary’s date of birth.
Format : ddmmyyyy
Address1 String(35) N Beneficiary’s first address
Address2 String(35) N Beneficiary’s second address
City String(35) N Beneficiary’s city
StateID String(2) N State ID
PostalCode String(10) N Beneficiary’s postal code
CountryID String(2) N Beneficiary’s country initial code.
Example : Indonesia = ID
Mobile String(20) N Beneficiary’s mobile phone number
IdentificationType String(2) N Beneficiary’s identity type. (PP = Passport, ID = Identity, DR = Dr. License)
IdentificationNumber String(24) N Beneficiary’s identity number
NationalityID String(2) N Country initial code of beneficiary’s nationality.
Example : Indonesia = ID
Occupation String(30) N Beneficiary occupation
TransactionDetails
Description1 String(35) N First description
Description2 String(35) N Second description
SecretQuestion String(100) N Question
SecretAnswer String(100) N Answer
FormNumber String(16) N FI Ref

7. Cancel Cash Transfer

Provides service for Cancellation “Cash Transfer” to Non account holder. Yout request must contain following information:

POST https://sandbox.bca.co.id/fire/transactions/cash-transfer/cancel
Request:

POST /fire/transactions/cash-transfer/cancel HTTP/1.1
Host: sandbox.bca.co.id
Authorization: Bearer [access_token]
Content-Type: application/json
Origin: [yourdomain.com]
X-BCA-Key: [api_key]
X-BCA-Timestamp: [timestamp]
X-BCA-Signature: [signature]

curl "https://sandbox.bca.co.id/fire/transactions/cash-transfer/cancel" \
  -H "Authorization: Bearer [access_token]"\
  -H "Content-Type: application/json"\
  -H "Origin: [yourdomain.com]"\
  -H "X-BCA-Key: [api_key]"\
  -H "X-BCA-Timestamp: [timestamp]"\
  -H "X-BCA-Signature: [signature]"\
{
    "Authentication":{
        "CorporateID":"BCAAPI2016",
        "AccessCode":"k6re8tG35hgNODSg3Y",
        "BranchCode":"BCA01",
        "UserID":"BCAUSERID001",
        "LocalID":"40115"
    },
    "TransactionDetails":{
        "FormNumber":"CT293 IDR2D",
        "Amount":"9350000.00",
        "CurrencyID":"IDR"
    }
}


Payload

Field DataType Mandatory Description
Authentication
CorporateID String(6) Y Agent code used to connect to FIRe system
AccessCode String(20) Y Password that will be read by system for each
BranchCode String(8) Y FI branch code of API client
UserID String(12) Y User ID
LocalID String(15) Y Branch code from FI sub branch of API client
TransactionDetails
FormNumber String(16) Y FI Ref
Amount String(20) Y Transaction nominal.
Format: Number, 17.2
CurrencyID String(3) N Currency code


Result of the request will contains following information:

Response:

{
    "TransactionDetails":
    {
        "FormNumber":"CT293_IDR2D",
        "ReleaseDateTime":"2016-04-20T04:00:23+07:00"
    },
    "StatusTransaction":"0000",
    "StatusMessage":"Success"
}


Reponse

Field DataType Mandatory Description
StatusTransaction String(4) Y RespponseCode and Sub-ResponseCode of transaction
StatusMessage String(100) Y Description of StatusTransaction
TransactionDetails
FormNumber String(16) N FI Ref
ReleaseDateTime String(24) Transaction release time.
Format : YYYY-MM-DDThh:mm:ssTZD

Status Transaction

Here is the list of Status Transaction codes that can be returned in success response.

HTTP Code StatusTransaction StatusMessage
200 0000 Success
200 0001 Credited to Beneficiary account
200 0002 Send to other bank
200 0003 Ready to encash
200 0004 Pending by system
200 0005 Already encash
200 0006 Canceled
200 0010 Expired

Virtual Account

1. Inquiry Status Payment

INQUIRY BY REQUEST ID

GET /va/payments?CompanyCode=10111&RequestID=201711101617000000700000000001

Request:

GET /va/payments?CompanyCode=10111&RequestID=201711101617000000700000000001 HTTP/1.1
Host: sandbox.bca.co.id
Authorization: Bearer [access_token]
Content-Type: application/json
Origin: [yourdomain.com]
X-BCA-Key: [api_key]
X-BCA-Timestamp: [timestamp]
X-BCA-Signature: [signature]

curl "https://sandbox.bca.co.id/va/payments?CompanyCode=10111&RequestID=201711101617000000700000000001" \
  -H "Authorization: Bearer [access_token]"\
  -H "Content-Type: application/json"\
  -H "Origin: [yourdomain.com]"\
  -H "X-BCA-Key: [api_key]"\
  -H "X-BCA-Timestamp: [timestamp]"\
  -H "X-BCA-Signature: [signature]"\

Response:

{
  "Transaction Data":
	 [{
		"DetailBills": 
		[{
			"BillReference": "",
			"BillNumber": "12345"
		}],
		"RequestID": "201711100000000000700000000001",
		"TransactionDate": "2017-11-10T16:17:00.000+07:00",
		"PaymentFlagStatus": "Success",
		"Reference": "01234567890",
		"TotalAmount": "100000",
		"PaidAmount": "100000"
	}]
}
INQUIRY BY CUSTOMER NUMBER

/va/payments?CompanyCode=10111&CustomerNumber=12345

Request:

GET /va/payments?CompanyCode=10111&CustomerNumber=12345 HTTP/1.1
Host: sandbox.bca.co.id
Authorization: Bearer [access_token]
Content-Type: application/json
Origin: [yourdomain.com]
X-BCA-Key: [api_key]
X-BCA-Timestamp: [timestamp]
X-BCA-Signature: [signature]

curl "https://sandbox.bca.co.id/va/payments?CompanyCode=10111&CustomerNumber=12345" \
  -H "Authorization: Bearer [access_token]"\
  -H "Content-Type: application/json"\
  -H "Origin: [yourdomain.com]"\
  -H "X-BCA-Key: [api_key]"\
  -H "X-BCA-Timestamp: [timestamp]"\
  -H "X-BCA-Signature: [signature]"\

Response:

{
  "Transaction Data":
	 [{
		"DetailBills": 
		[{
			"BillReference": "",
			"BillNumber": "12345"
		}],
		"RequestID": "201711100000000000700000000001",
		"TransactionDate": "2017-11-10T16:17:00.000+07:00",
		"PaymentFlagStatus": "Success",
		"Reference": "01234567890",
		"TotalAmount": "100000",
		"PaidAmount": "100000"
	},
	{
		"DetailBills":[], 
		"RequestID": "201711100000000000700000000002",
		"TransactionDate": "2017-11-10T16:18:00.000+07:00",
		"PaymentFlagStatus": "Success",
		"Reference": "01234567891",
		"TotalAmount": "500000",
		"PaidAmount": "500000"
	},
	{
		"DetailBills": 
		[{
			"BillReference": "00000000001",
			"BillNumber": ""
		}, 
		{
			"BillReference": "00000000002",
			"BillNumber": ""
		}, 
		{
			"BillReference": "00000000003",
			"BillNumber": ""
		}], 
		"RequestID": "201711100000000000700000000003",
		"TransactionDate": "2017-11-10T16:19:00.000+07:00",
		"PaymentFlagStatus": "Failed",
		"Reference": " ",
		"TotalAmount": "20000",
		"PaidAmount": "20000"
	}]
}

You can see the list of payment status that are owned by the customers. The data will be automatically queried between D-day (hari H) until D-1 day (H-1 / yesterday), with maximum records returned are 10 rows. Your Request must contain following information:

Request

Field Data Type Mandatory Description
CompanyCode String(5) Y BCA create a unique code to identify Company who registered in BCA.
CustomerNumber String(18) Y VA CustomerNumber (the bill number given by the Merchant.
RequestID String(30) Y Unique transaction identifier which generated by BCA and part or the flag payment response.

Result of the request will contains following information:

Response

Field Data Type Description
TransactionData
TransactionDate String(29) Time when customer do the payment.
TotalAmount String(16) Total amount of transaction from merchant
PaidAmount String(16) Total amount of paid transaction by the customer (can be different for multi bills transaction)
PaymentFlagStatus String(10) Status of flagging to merchant.
RequestID String(30) Unique ID generated by BCA
Reference String(15) Reference ID for payment. (only for non multi bills)
DetailBills
BillNumber String(18) Reference ID for each bills in a transaction. Generated by Merchant
BillReference String(15) Reference ID for each bills in a transaction. Generated by BCA. (multi settlement and multi bills)

Errors

BCA API uses following error schema:

{
    "ErrorCode" : "Error Code",
    "ErrorMessage" : {
        "Indonesian" : "Pesan error",
        "English" : "Error message"
        }
}

Here is the list of error codes that can be returned:

HTTP Code Error Code Error Message (Indonesian) Error Message (English)
404 ESB-07-271 Tidak ada transaksi No Transaction
400 ESB-07-279 Tanggal awal lebih kecil dari tanggal buka rekening Start date less than account open date
400 ESB-14-001 HMAC tidak cocok HMAC mismatch
400 ESB-14-002 Permintaan tidak valid Invalid request
400 ESB-14-003 Timestamp tidak valid Invalid timestamp
400 ESB-14-004 Parameter input tidak valid Invalid input parameter
503 ESB-14-005 Sistem sedang dalam maintenance System under maintenance
504 ESB-14-006 Timeout, silahkan periksa mutasi rekening Timeout, please check your account statement
504 ESB-14-007 Timeout Timeout
401 ESB-14-008 client_id/client_secret/grant_type tidak valid Invalid client_id/client_secret/grant_type
401 ESB-14-009 Tidak berhak Unauthorized
200 ESB-30-002 RateType belum di implementasi RateType not yet implemented
400 ESB-82-001 Field [FieldName] harus diisi Missing mandatory field [FieldName]
400 ESB-82-002 CorporateID tidak valid Invalid CorporateID
400 ESB-82-003 TransactionID tidak unik TransactionID not unique
400 ESB-82-004 TransactionDate tidak valid Invalid TransactionDate
403 ESB-82-006 Nominal transaksi melebihi batas maksimum Max amount of transaction is exceeded
400 ESB-82-007 TransactionDate sebelum hari ini TransactionDate is back date
400 ESB-82-008 Rekening perusahaan tidak valid Invalid Company account
400 ESB-82-009 CurrencyCode tidak valid Invalid CurrencyCode
400 ESB-82-010 Format TransactionID tidak valid Invalid TransactionID format
400 ESB-82-011 Amount tidak valid Invalid amount
400 ESB-82-012 Panjang karakter data input tidak valid Invalid input length
400 ESB-82-013 Tipe data input tidak valid Invalid data type
400 ESB-82-014 AccountNumber tidak valid Invalid AccountNumber
403 ESB-82-015 Min Max Amount Exceeded Min Max Amount Exceeded
403 ESB-82-018 Rekening Dormant Account Dormant
402 ESB-82-019 Saldo tidak cukup Insufficient fund
400 ESB-82-020 Tipe rekening tidak valid Invalid Account Type
403 ESB-82-021 Rekening tidak dapat melakukan transaksi Account cannot do transaction
404 ESB-82-022 Rekening tutup Account Closed
500 ESB-82-023 Transaksi gagal Transaction Failed
504 ESB-82-024 Timeout, silahkan periksa mutasi rekening Timeout, please check your account statement
503 ESB-82-025 Sedang diproses, silahkan periksa mutasi rekening In Progress, please check your account statement
503 ESB-82-026 Lewat batas waktu cut off Cut off time is exceeded
400 ESB-99-009 Field [FieldName] harus diisi Missing mandatory field [FieldName]
400 ESB-99-039 Isian input Count tidak valid input for field Count not valid
400 ESB-99-040 Tipe isian field [FieldName] tidak valid Input type for field [FieldName] not valid
403 ESB-99-089 Transaksi berhasil sebagian Transaction success partially
400 ESB-99-112 Input String JSON tidak valid Invalid JSON String Input
400 ESB-99-113 Transaksi ditolak Transaction Rejected
400 ESB-99-127 Transaksi tidak ditemukan Transaction not found
400 ESB-99-128 Panjang field [FieldName] melebihi ketentuan Field [FieldName] exceed limit
400 ESB-99-128 Total input [FieldName] melebihi ketentuan Total [FieldName] input exceed limit
400 ESB-99-132 Data tidak ditemukan No Data Found
400 ESB-99-156 ChannelType tidak valid ChannelType is not valid
400 ESB-99-156 AccountNumber tidak valid Invalid AccountNumber
400 ESB-99-157 Transaksi ditolak Transaction Rejected
400 ESB-99-158 Tanggal berakhir lebih besar dari tanggal hari ini End date more than today
400 ESB-99-158 Tanggal mulai lebih besar dari tanggal hari ini Start date more than today
400 ESB-99-158 Maksimal mutasi rekening yang dipilih 31 hari yang lalu Maximal account statement 31 days ago
400 ESB-99-158 Tanggal mulai lebih besar dari tanggal berakhir Start date more than end date
400 ESB-99-197 Nama atau nomor rekening tidak sesuai Account name/number does not match
400 ESB-99-335 Mata uang tidak valid Invalid Currency
400 ESB-99-339 Tipe Kurs tidak valid Invalid RateType
400 0101 Field [fieldName] is required Field [fieldName] is required
400 0102 Field [fieldName] is larger than expected Field [fieldName] is larger than expected
400 0103 Data type is invalid at field [fieldName] Data type is invalid at field [fieldName]
400 0402 Limit Produk Tidak Cukup Product Limit Not Enough
400 0406 Rekening Penerima Tidak Ditemukan Beneficiary Account Not Found
400 0408 Transaksi Tidak Ditemukan Transaction Not Found
400 0409 Rekening Penerima Tutup Beneficiary Account Closed
400 0412 Bukan Member Switching Non Switching Member
400 0413 Rekening Penerima Tutup Beneficiary Account Closed
500 ESB-99-999 Sistem sedang tidak tersedia System unavailable