Kunjungi bca.co.id

Search Result

Introduction

API Updated: April 3rd, 2023
  • New API: Internal Account Inquiry

Overview of BCA Sandbox APIs:

Request
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 /banking/corporates/transfers/v2/domestic  Fund Transfer to domestic Bank account
 GET  /banking/offline/corporates/accounts/{AccountNumber}/filestatements  Account Statement Offline
 GET  /banking/corporates/transfers/status/{TransactionNumber}  Inquiry Transfer Status
 GET  /banking/corporates/transfers/v2/domestic/beneficiaries/banks/ (beneficiary_bank_code)/accounts/(beneficiary_account_number) Inquiry Domestic Account 
 GET  /general/rate/forex  Foreign Exchange Rate Information
 GET  /general/info-bca/branch  BCA Branch 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
 POST  https://www.somesecurities.com/bca/investor-account/statement  Retrieve information of Account Statement of Investor Account for being debited or credited.
 POST  https://www.copartners.com/bca-ku/notif-tolakan  Service for BCA to send notification for rejection of domestic bank transfer.
 POST  https://www.copartners.com/bca-df/disbursement/notification  Service for BCA to send notification of disbursement.
 POST  https://www.copartners.com/bca-df/txn-limit/notification  Service for BCA to send notification of transaction limit update.
 POST  https://www.copartners.com/bca-df/stop-supply/notification  Service for BCA to send notification of transaction limit update.
 POST  /df/invoice  Send your invoice data to BCA
 PUT  /df/invoice  Cancel your invoice data which had been sent to BCA
 POST  /fund-collection/v2  Add Fund collection
 POST  /account-authorization/registration  Registration Request
 POST  https://copartners.com/account-authorization/notification  Send Notification of Account Authorization Registration status
 GET  /accountauthorization/inquiry/{customer_id_merchant}  Inquiry account authorization status
 POST  /flazz/getKey  Get Session Key
(Part of Topup Flazz Co-Partner API)
 POST  /flazz/topup  Send topup request from copartner
(Part of Topup Flazz Co-Partner API)
 POST  /flazz/reversal  Send reversal request from copartner
(Part of Topup Flazz Co-Partner API)
 POST  /flazz/ack  Send ack
(Part of Topup Flazz Co-Partner API)

Try our APIs using Sandbox. We provide sandbox with dummy and static datas. All the parameter value that can be used to try our sandbox are written on the blue box in this Documentation.


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.

client_secret dan client_id are used for authentication using OAuth 2.0. You can generate client_id and client_secret after sign in and create application.


Do not share your client_secret! This token act like password, keep it secret and secure, should anyone obtain this information, immediately reset or revoke your client_secret.


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.

Access token must be stored in a secure storage!
Since access_token is portable which mean that once its obtained any request with valid credentials will be considered valid, any agent (mobile device, web browser, or server) could call API requests.


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
 
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  
Request
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.

API Key and API Secret are used for hashing HMAC. You can generate API Key and API Secret after sign in and create application.

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

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

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

HTTP Method

  • HTTP Method is HTTP Method such as GET, POST, PUT, PATCH, DELETE.
  • HTTP Method must be given in upper case.
Relative URL
  • Relative URL is the URL after the hostname & port number.
  • Relative URL alse includes the query string and must begin with a slash character. Example
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)
 s  two digits of second (00 through 59)
 SSS  three digits representing millisecond (000 through 999)
 TZD  time zone designator (+hh:mm or -hh:mm)

EXAMPLE

Request

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

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

EXAMPLE

Response

Headers

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

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

Sample request with complete headers:

Request

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

Sample request with complete headers:

Response

AUTHENTICATION SNAP

OAuth2.0 (SNAP)

1. OAuth2.0 (SNAP)
The BCA Corporate Banking API is using OAuth 2 as the authorization framework. To access all the services you’ll need the access token with grantType=client_credentials. To get the access token, you need to be authorized by client_id. To learn more about the OAuth 2 authorization framework you can read the rfc6749 documentation (https://tools.ietf.org/html/rfc6749).

POST /openapi/v1.0/access-token/b2b HTTP/1.1
Host: server.example.com
X-TIMESTAMP : DateTime with timezone, which follows the ISO-8601 standard
X-CLIENT-KEY : client_id
X-SIGNATURE : Signature Asymmetric
Content-Type : application/json
{
          "grantType": "client_credentials"
}
Errors

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

HTTP Code Error Code Error Message (Indonesian)
400 4007300 Invalid field format [clientId/clientSecret/grantType]
400 4007300 Unauthorized. [Connection not allowed]
400 4007301 invalid field format [X-TIMESTAMP]
400 4007302 Invalid mandatory field [X-CLIENT-KEY]
401 4017300 Unauthorized. [Signature]
401 4017300 Unauthorized. [Unknown client]
504 5047300 Timeout

OAuth2.0 (SNAP)

Request

curl https://sandbox.bca.co.id/openapi/v1.0/access-token/b2b \
-H "X-TIMESTAMP: 2022-04-21T17:34:52+07:00" \
-H "X-CLIENT-KEY: 123 \
-H "X-SIGNATURE:
cjCDSRIf8FIXGs28uVFhxBuRhgV/xEnMOxargNqkTwvgMqDMdyEfwqQ2PIFz891K0LE81dgN
b2CEsJrGAG7tRTur68A0YEHpx8iXXWHD40+iSCgBa8o3QsVBB1ryP1d8FV+dMEeixUKw08fh
QCsN1vqIJhPyZFkg2r3Sr8h+dzG4t7ldr7fTkO7wvEFT4LG9kTAEDqPNPW1P8bZqdHZUe6VD
zqlUWO12Zu2wHofuzRjvXXVYDm1/lwhDmdJqVrvi9g8L5/PmLnzGkjcniJlpBGYYkGE0eA25
bOdJEWdaklQjQDrFg+G8Pl4EnY3PXW1/u7ZwGU131mVy1kvUw801Yw== \
-H "Content-Type: application/json \
 -d "{
 "grantType": "client_credentials"
 }"

OAuth2.0 (SNAP)

Response

{
 "responseCode": "2007300",
 "responseMessage": "Successful",
"accessToken": "7t4tbXnlyn4NABRn0FAhB69CRhxghlPPfPK2l9quE29l4D4k5DLH57,
"tokenType": "bearer",
"expiresIn": "900"
}

Headers (SNAP)

1. Headers

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

Request
Name Type Length   Mandatory Description
Authorization AN N/A Y Represents access_token of a request, String starts with keyword “Bearer” followed by accessToken 
Content-Type AN 16 (Fixed Length) Y Content of you request body e.g. application/json
X-TIMESTAMP
yyyy-MMddThh:mi:ssTZD (ISO 8601)
25 (Fixed Length) Y Client’s current local time in yyyy-MM-ddTHH:mm:ssTZD format 
X-SIGNATURE
AN N/A Y Signature Symmetric, please refer to Signature section 
ORIGIN

N/A N Origin Domain www.yourdomain.com 
X-EXTERNAL-ID

36 (Max Length) Y Numeric String Reference number that should be unique in the same day  

Signature (SNAP)

Signature Asymmetric

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

The outline of the HMAC validation process is as follows:

  1. Retrieve Timestamp from HTTP Header (X-TIMESTAMP)
  2. Retrieve the Client Key form HTTP Header (X-CLIENT-KEY)
  3. Retrieve client HMAC from HTTP Header lowercase base64 format (X-SIGNATURE)
  4. Calculate HMAC using the Private Key as the HMAC secret key
  5. Compare client HMAC with calculated HMAC

If HMAC hash comparison is invalid API Gateway will return a HTTP 401 error code together with the following error message on JSON format:

{
       "responseCode" : "4017300",
       "responseMessage" : "Unathorized. [Signature]"
}

If the HMAC calculation is successful and the calculated value matches the value received from the client, the signature is considered valid.

Generate Signature Asymmetric

SHA256withRSA is used to generate the signature with your Private Key as the key

X-SIGNATURE = SHA256withRSA(PrivateKey, StringToSign) 

Note = X-SIGNATURE should be encoded by Base64

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

StringToSign = client_ID+"|"+X-TIMESTAMP 

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

Note : Partner need to send their public key in x.509 format for BCA to use when verifying signature
Sample public key in x.509 format :

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAomV+Vm1xlRXanmh108Kusls7SSKec0oCejtc9QG Obpd4RnQ+7gihm2k6etnSNP7b+XrpY+fBkiQNaBInii9M10kW9Bhf/M9GH/edL3IqnzDNSi7tcoQgnO7h8x mzLNWHTjtR6bkrsdBS5dry6htotaF5KXomuoYgztCdGDOa0W20aeLzYSXIoW7s/Ay5yIXt0xaXTll3/bmez leguFPnwQZq5EqZFWlUZvutDi+f2l9rTRY0Fb64y+VAf+mnIbEovGqsPEeF/p97YWxcY7CWm8NsT0lwBVOt kmEl967Brz5yvEObF5bJgVodi6mNVsN1ki0MCitIhYO8shcE7eUilQIDAQAB
-----END PUBLIC KEY-----


Signature Symmetric

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

The outline of the HMAC validation process is as follows:

  1. Retrieve Timestamp from HTTP Header (X-TIMESTAMP)
  2. Lookup the Client Secret corresponding to the received key in internal store
  3. Retrieve client HMAC from HTTP Header lowercase base64 format (X-SIGNATURE)
  4. Calculate HMAC using the Client Secret as the HMAC secret key
  5. Compare client HMAC with calculated HMAC
 

If HMAC hash comparison is invalid API Gateway will return a HTTP 401 error code together with the following error message on JSON format:

{
       "responseCode" : "401xx00",
       "responseMessage" : " Unauthorized. [Signature]",
       "data" : {}
}
 

Note : xx -> customize to each service code

If the HMAC calculation is successful and the calculated value matches the value received from the client, the signature is considered valid.

Generate Signature Symmetric

SHA-512 HMAC is used to generate the signature with your Client Secret as the key.

X-SIGNATURE = HMAC-SHA512(ClientSecret, StringToSign) 

Note = X-SIGNATURE should be encoded by Base64

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

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

HexEncode are optional to use, use it if the SHA-256 returns a binary stream.

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

HTTP Method
  • HTTP Method is HTTP Method such as GET, POST, PUT, PATCH, DELETE.
  • HTTP Method must be given in upper case.
Relative URL
  • Relative URL is the URL after the hostname & port number.
  • Relative URL also includes the query string and must begin with a slash character. Example :
  • Full URL Relative URL
    https://example.com/api/v2/sample?param1=value /api/v2/sample?param1=value1&pa ram2=value2 
    https://example.com or https://example.com/ /
  • The Relative URL must be URI-encoded according to the following rules:
    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. As for RFC 3986, means that comma that appear in the value of query params or path params should be encoded too when generating Signature.
    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.
  • The query string parameters must be re-ordered according to the following rules:
    1. Sorted by parameter name lexicographically
    2. If there are two or more parameters with the same name, sort them by parameter values.
    3. Relative URL Sorted Relative URL
      /api/v2/sample?A-param=value1&Zparam=value2&B-param=value3  /api/v2/sample?A-param=value1&Bparam=value3&Z-param=value2 
AccessToken
  • AccessToken is an OAuth 2 access token retrieved from the HTTP “Authorization” header.
  • AccessToken has a validity time of 900 seconds
RequestBody
  • RequestBody need to be hashed with SHA-256.
  • Before hashed with SHA-256, RequestBody must to convert to MinifyJSON (remove whitespace except for the key or value json)
  • If the RequestBody is empty, set it to empty string. .
Timestamp

The timestamp must be presented in ISO8601 format (YYYY-MM-DDThh:mm:ssTZD)
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)
TZD = time zone designator (Z or +hh:mm or –hh:mm)




API Services

Informasi Rekening

1. Notification Account Statement Offline

Service for BCA to send notification that File Statement is ready to download.


Request:
 
Field DataType Mandatory  Description
RequestID String(21) Y ID for every request
AccountNumber String(10) Y Requested Account Number
StartDate String(10) Statement start date. Format: yyyy-MM-dd
EndDate String(10)  Y  Statement end date. Format: yyyy-MM-dd
Response:
 
Field DataType Description
ResponseWS  String Statement request ID
 ResponseWS String  Response from Co-Partner 

NOTIFICATION ACCOUNT STATEMENT OFFLINE

Request

POST https://www.copartners.com/bca/async/statement

-H "X-Pass-Signature:b9125ab10816f6929d214c96ffca77dfd5a1ea13856362b85eeaeb70155"
-d "{
"RequestID": "h2hauto014_0000000551",
"AccountNumber": "0613004197",
"StartDate": "2019-02-20",
"EndDate": "2019-02-20",
}"

NOTIFICATION ACCOUNT STATEMENT OFFLINE

Response

{
    "RequestID" : "h2hauto014_0000000551",
    "ResponseWS" : "1",    
}
2. Notifikasi Rekening Dana Nasabah

Retrieve information of Account Statement of Investor Account for being debited or credited.


Request:
 
Field DataType Mandatory  Description
ExternalReference String(32) Y Alphanumeric. Unique reference number for the request sent.
SeqNumber String(14) Y Numeric. Identifier for the transaction.
AccountNumber String(10) Numeric. The investor account number.
 Currency String(3)  Y  Currently always set to IDR 
TxnDate  String(15)  Y  Numeric. In format ”mmddyyyy hhmmss”. 
TxnType  String(4) Y  Refer to table Transaction Type 
TxnCode  String(1)  Y  D/C indicate debit or credit transaction. 
AccountDebit  String(23)  Y  Numeric. The debited account (source of fund). 
AccountCredit  String(23)  Y  Numeric. The credited account (transfer destination account). 
TxnAmount  String(13.2)  Y  Numeric. Money nominal of the transfer. 
OpenBalance  String(13.2)  Y  Numeric. Possible signed amount with - / + symbol. 
CloseBalance  String(13.2)  Y  Numeric. Possible signed amount with - / + symbol. 
TxnDesc  String(90)  Y  Any description. 
Result of the request will contains following information:

 
 No. Transaction Type Transaction Code Description
 1. NTRF  D Fund Transfer from KlikBCA Bisnis
MFTS – Auto collection from KlikBCA Bisnis 
     C Fund Transfer from KlikBCA Bisnis, KlikBCA Individu, m-BCA, BCA by Phone, ATM, ATM Kiosk
MFTS – Auto credit from KlikBCA Bisnis
Cash deposit, Fund Transfer, Credit Note from Branch
Deposit Clearing 
 2. NINT C Interest
Giro Service
 3. NREV D Credit Reversal
 4. NKOR D Debit Correction
    Credit Correction 
 5. NTAX D Tax
 6. NCHG D Admin Fee
When Transaction Type (TxnType) value is NREV, the value of External Reference (ExternalReference) will be the same with the reversed transaction (the original transaction with same ExternalReference number but TxnType is NTRF).

Response:
 
Field DataType Description
ResponseWS  String Flag received status.
0 : request successfully accepted and no internal error
1 : request unsuccessfully accepted and or some internal error occurred

NOTIFICATION FOR SECURITIES

Request

POST https://www.somesecurities.com/bca/investor-account/statement
{
"ExternalReference":"AAABBBCCCDDDEEEE1234567890123456",
"SeqNumber":"10023",
"AccountNumber":"5421036985",
"Currency":"IDR",
"TxnDate":"08252017 143801",
"TxnType":"NTRF",
"TxnCode":"C",
"AccountDebit":"1704000420",
"AccountCredit":"5421036985",
"TxnAmount":"200000.00",
"OpenBalance":"-150000.00",
"CloseBalance":"+50000.00",
"TxnDesc":"-"
}

NOTIFICATION FOR SECURITIES

Response

{
    "ResponseWS":"0"
}
3. Request Mutasi Rekening Bulk
You can get your bulk statement in form of file for a period up to 7 days. Your Request must contain following information:

Headers
Field DataType Mandatory Description
ChannelID String(5) Y Channel Identification Number (Ex: 95051 for KlikBCA Bisnis) 
CredentialID String(10) Y Your Channel Identity (ex: Your KlikBCA Bisnis CorporateID)

Payload
Field DataType  Mandatory Description
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
Response
Field DataType Description
RequestID String(21) Statement request ID
TransactionDate String(10) Transcation date. Format: yyyy-MM-dd


Error
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
500 ESB-14-005 Sistem sedang dalam maintenance System under maintenance
504 ESB-14-006 Timeout, silakan 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
429 ESB-14-010 Jumlah permintaan melebihi limit Limit request exceeded
400 ESB-14-015 Content Type tidak valid Invalid Content Type
400 ESB-14-016 Format JSON tidak valid Invalid JSON format
403 ESB-14-019 Koneksi tidak diperbolehkan Connection not allowed
400 ESB-14-020 Request tidak valid Invalid Request
400 ESB-14-021 API Key Tidak Valid API Key Invalid
400 ESB-14-022 API Key/API Secret tidak cocok API Key/API Secret mismatch
400 ESB-82-001 Field [FieldName] harus diisi Missing mandatory field [FieldName]
400 ESB-82-002 Corporate Id 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 transaction is exceeded
400 ESB-82-008 Rekening perusahaan tidak valid Company account invalid
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 Execeeded Min Max Amount Execeeded
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, silakan periksa mutasi rekening Timeout, please check your account statement
500 ESB-82-025 Sedang diproses, silakan periksa mutasi rekening In progress, please check your account statement
500 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]
403 ESB-99-075 KeyID tidak ditemukan KeyID is not found
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-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-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
404 ESB-99-127 Transaksi tidak ditemukan Transaction not found
400 ESB-99-197 Nama atau nomor rekening tidak sesuai Account name/number does not match
400 ESB-99-284 [FieldName] tidak valid Invalid [FieldName]
500 ESB-99-999 Sistem sedang tidak tersedia System unavaliable

GET /banking/offline/corporates/accounts/{AccountNumber}/filestatements

Request

GET /banking/offline/corporates/accounts/0201245680/filestatements?StartDate=2016-06-24&EndDate=2016-06-24 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]

GET /banking/offline/corporates/accounts/{AccountNumber}/filestatements

Response

{
    "RequestID" : "ABCDEFGHIJ_0000000752",
    "ResponseWS" : "Request Account Statement Berhasil Diterima dan Sedang
Diproses",    
}
4. SNAP Banking Balance Inquiry
This service is used to inquiry account balance.

Additional Headers and URI Params
Field Params Type Data Type Length Type Mandatory Description
CHANNEL-ID Header String (5) Fixed Y Channel’s identifier using WSID KlikBCA Bisnis (95051)
X-PARTNER-ID Header String (32) Max Y Corporate ID


Payload
Field DataType Length Type  Mandatory Format Description
partnerReferenceNo String(64) Max  Y - Transaction identifier on service customer system 
accountNo String(16) Max Numeric Registered account number in KlikBCA Bisnis. For BCA, length account number is 10 digit
Result of the request will contains following information:

Response
Field DataType Length Type Mandatory Format Description
responseCode String (7) Fixed Y - Response code
responseMessage String (150) Max Y - Response description 
referenceNo String (64) Max Y (When the transaction is successful) Numeric Transaction identifier on service provider system. Unique each day from BCA
Must be filled upon successful transaction
With format as follows : yymmddHH (from timestamp, 8 digit) xx (prefix menu, 2 digit) sequence number (8 digit) 
partnerReferenceNo String (64) Max Y - Transaction identifier on service customer system
*according to the request input
accountNo String (32) Max N Numeric Send by BCA according to the request input.
Registered account number in KlikBCA Bisnis. For BCA, length account number is 10 digit.
name String (140) Max N Alphanumeric Send by BCA. Customer account name
accountInfos Array of object       Starting and ending balance before the first/last transaction.
   amount Object   Y   Send by BCA. Net amount of the transaction
      value String(16.2) Max Y Numeric If it’s IDR then value includes 2 decimal digits.
BCA will send response amount with format value Numeric (13.2)
      currency String(3) Fixed Y Alphanumeric Currency ISO 4217
   floatAmount Object   N   Send by BCA.
Amount of deposit that is not effective yet (due to holiday, etc)
      value String(16.2) Max Y Numeric If it’s IDR then value includes 2 decimal digits.
BCA will send response amount with format value Numeric (13.2)
      currency String(3) Fixed Y Alphanumeric Currency ISO 4217
   holdAmount Object   N   Send by BCA.
Hold amount that cannot be used
      value String(16.2) Max Y Numeric If it’s IDR then value includes 2 decimal digits.
BCA will send response amount with format value Numeric (13.2)
      currency String(3) Fixed Y Alphanumeric Currency ISO 4217
   availableBalance Object   Y   Send by BCA.
Account balance that can be used for financial transaction
      value String(16.2) Max Y Numeric If it’s IDR then value includes 2 decimal digits.
BCA will send response amount with format value Numeric (13.2)
      currency String(3) Fixed Y Alphanumeric Currency ISO 4217


Error
HTTP Code Error Code Error Message (Indonesian)
400 4001100 Bad request
400 4001101 Invalid Mandatory Field {Field}
400 4001102 Invalid Field Format {Field}
401 4011100 Unauthorized. [Reason]
401 4011101 Invalid token (B2B) 
403 4031101 Feature Not Allowed
403 4031118 Inactive Account
404 4041111 Invalid Account
409 4091100 Conflict
500 5001100 General Error
504 5041100 Timeout

curl –X POST https://sandbox.bca.co.id:8443/openapi/v1.0/balance-inquiry

Request

-H 'CHANNEL-ID':'95051'
-H 'X-PARTNER-ID': 'KBBABCINDO'
-d '{
 "partnerReferenceNo": "2020102900000000000001",
 "accountNo": "1234567890"
}

curl –X POST https://sandbox.bca.co.id:8443/openapi/v1.0/balance-inquiry

Response

{
 "responseCode": "2001100",
 "responseMessage": "Successful",
 "referenceNo": "2020102977770000000009",
 "partnerReferenceNo": "2020102900000000000001",
 "accountNo": "1234567890",
 "name": "ANDHIKA",
 "accountInfos": {
 "amount": {
 "value": "100000.00",
 "currency": "IDR"
 },
 "floatAmount": {
 "value": "500000.00",
 "currency": "IDR"
 },
 "holdAmount": {
 "value": "200000.00",
 "currency": "IDR"
 },
 "availableBalance": {
 "value": "200000.00",
 "currency": "IDR"
 }
}
}
5. SNAP Banking Bank Statement
This service is used to inquiry account statement.

Additional Headers and URI Params
Field Params Type Data Type Length Type Mandatory Description
CHANNEL-ID Header String (5) Fixed Y Channel’s identifier using WSID KlikBCA Bisnis (95051)
X-PARTNER-ID Header String (32) Max Y Corporate ID


Payload
Field DataType Length Type  Mandatory Format Description
partnerReferenceNo String(64) Max  Y - Transaction identifier on service customer system 
accountNo String(16) Max Numeric Registered account number in KlikBCA Bisnis. For BCA, length account number is 10 digit
fromDateTime Date (25) Max  Y ISODateTime ISO-8601 Starting time range
Default : NOW (DESCENDING) or NOW -1 year (ASCENDING)
(must be filled YYYYMMDDT00:00:00+07:00)
For BCA, only provide data for NOW - 31 days
toDateTime Date (25) Max  Y ISODateTime ISO-8601 Ending time range
Default : NOW (DESCENDING) or NOW – 1 year (ASCENDING)
(must be filled YYYYMMDDT00:00:00+07:00)
For BCA, only provide data for NOW – 31 days 

Account mutations appear in the order of the newest transaction to the oldest transaction.
The maximum number of mutations that can be withdrawn in 1x request is 9000.
If fromDateTime and toDateTime are inputted on the request for a holiday date, then the mutation that will be displayed is the mutation from the request date to the date of the next working day.

Result of the request will contains following information:

Response
Field DataType Length Type Mandatory Format Description
responseCode String (7) Fixed Y - Response code
responseMessage String (150) Max Y - Response description 
referenceNo String (64) Max Y (When the transaction is successful) Numeric Transaction identifier on service provider system. Unique each day from BCA
Must be filled upon successful transaction
With format as follows : yymmddHH (from timestamp, 8 digit) xx (prefix menu, 2 digit) sequence number (8 digit) 
partnerReferenceNo String (64) Max Y - Transaction identifier on service customer system
*according to the request input
balance Array of object       Starting and ending balance before the first/last transaction.
   amount Object   Y   Amount of balance
      value String(16.2) Max Y Numeric If it’s IDR then value includes 2 decimal digits.
BCA will send response amount with format value Numeric (13.2)
      currency String(3) Fixed Y Alphanumeric Currency ISO 4217
      dateTime String(25) Max Y ISODateTime
8601
Timestamp of the balance
   startingBalance Object   N   Starting and ending balance before the first/last transaction 
      value String(16.2) Max Y Numeric If it’s IDR then value includes 2 decimal digits.
BCA will send response amount with format value Numeric (13.2)
      currency String(3) Fixed Y Alphanumeric Currency ISO 4217
      dateTime String(25) Max Y ISODateTime
8601
Timestamp of the balance
   endingBalance Object   N   Starting and ending balance before the first/last transaction 
      value String(16.2) Max Y Numeric If it’s IDR then value includes 2 decimal digits.
BCA will send response amount with format value Numeric (13.2)
      currency String(3) Fixed Y Alphanumeric Currency ISO 4217
      dateTime String(25) Max Y ISODateTime
8601
Timestamp of the balance
totalCreditEntries Object   N   Total transaction amount with type = CREDIT
   numberOfEntries String (5) Max Y Numeric Number of entries for credit transaction
   amount Object   Y   Amount of balance
      value String(16.2) Max Y Numeric If it’s IDR then value includes 2 decimal digits.
BCA will send response amount with format value Numeric (13.2)
      currency String(3) Fixed Y Alphanumeric Currency ISO 4217
totalDebitEntries Object   N   Total transaction amount with type =DEBIT
   numberOfEntries String (5) Max Y Numeric Number of entries for credit transaction
   amount Object   Y   Amount of balance
      value String(16.2) Max Y Numeric If it’s IDR then value includes 2 decimal digits.
BCA will send response amount with format value Numeric (13.2)
      currency String(3) Fixed Y Alphanumeric Currency ISO 4217
detailData Array of object        
   endAmount Object   Y   Net amount of the transaction 
      value String(16.2) Max Y Numeric If it’s IDR then value includes 2 decimal digits.
BCA will send response amount with format value Numeric (13.2)
      currency String(3) Fixed Y Alphanumeric Currency ISO 4217
   amount Object   Y    
      value String(16.2) Max Y Numeric If it’s IDR then value includes 2 decimal digits.
BCA will send response amount with format value Numeric (13.2)
      currency String(3) Fixed Y Alphanumeric Currency ISO 4217
   transactionDate String (25) Fixed Y ISO8601 Transaction date
   remark String (256) Max Y - Remark / transaction description. For BCA, remark is 36 digit divided in 2 field (remark 1 with 18 digit and remark 2 with 18 digit).
Filled with data from txn_name and trailer 1-6
   type String (6) Fixed Y Alphanumeric Transaction type CREDIT/DEBIT


Error
HTTP Code Error Code Error Message (Indonesian)
400 4001402 Invalid Mandatory Field {Field}
400 4001402 Invalid Field Format {Field}
401 4011400 Unauthorized. [Reason]
401 4011401 Invalid token (B2B) 
403 4031401 Feature Not Allowed
404 4041411 Invalid Account
409 4091400 Conflict
429 4291400 Too Many Requests
500 5001400 General Error
504 5041400 Timeout

curl –X POST https://sandbox.bca.co.id/openapi/v1.0/bank-statement

Request

-H 'CHANNEL-ID':'95051'
-H 'X-PARTNER-ID': 'KBBABCINDO'
-d '
{
	"partnerReferenceNo": "2020102900000000000001",
	"accountNo": "1234567890",
	"fromDateTime": "2021-04-21T00:00:00+07:00",
	"toDateTime": "2021-04-21T00:00:00+07:00"
}'

curl –X POST https://sandbox.bca.co.id/openapi/v1.0/bank-statement

Response

{
	"responseCode": "2001400",
	"responseMessage": "Successful",
	"referenceNo": "2020102977770000000009",
	"partnerReferenceNo": "2020102900000000000001",
	"balance": [
	{
		"amount": {
			"value": "500000.00",
			"currency": "IDR",
			"dateTime": "2020-12-19T16:03:45+07:00"
		},
		"startingBalance": {
			"value": "500000.00",
			"currency": "IDR?",
			"dateTime": "2020-12-19T16:03:45+07:00"
		},
		"endingBalance": {
			"value": "500000.00",
			"currency": "IDR?",
			"dateTime": "2020-12-19T16:03:45+07:00"
		}
	}],
	"totalCreditEntries": 
	{
		"numberOfEntries": "10",
		"amount": {
			"value": "500000.00",
			"currency": "IDR"
		}
	},
	"totalDebitEntries": 
	{
		"numberOfEntries": "10",
		"amount": {
			"value": "500000.00",
			"currency": "IDR"
		}
	},
	"detailData": [
	{
		"amount": 
		{
			"value": "10000.00",
			"currency": "IDR"
		},
		"transactionDate": "2020-12-18T16:03:45+07:00",
		"remark": "TRSF E-BANKING DB 1111/ATRTG/WS95051 09112016123456pencairan merchant SITI KHADIJAH",
		"type": "DEBIT", 
	},
	{
		"amount": 
		{
			"value": "10000.00",
			"currency": "IDR"
		},
		"transactionDate": "2020-12-18T16:03:45+07:00",
		"remark": "BA JASA E-BANKING 0709/FTCHG/WS95321DOM210907115626680PPU_CGAMBIAYA TRANSAKSI",
		"type": "DEBIT",
	}]
}

Pembukaan Rekening Online

1. BCA Account Opening Notification

This service is used for BCA account opening approval notification.

This feature is not yet available to be accessed via Sandbox

Recommended Specification:
Type Recommendation
Android OS version 8.0+ dan Google Chrome version 75+
iOS OS version 12.0+ dan Safari version 12+

Request Headers:
Field Data Type Mandatory Description
X-Pass-Signature String This is a header field, use to replace the “Pass” field on everybody payload that contains signature.
This field occurred on every BCA request to Copartner’s API.
Notes: the field name “X-Pass-Signature” can be replaced with any other name depends on BCA’s company partner’s specification.

Payload (Form Data):
 
Field Data Type Mandatory  Description
application_id String (36) Y ID Submission Form created by prospective customers
user_id String (50) Y Prospective customer ID of each merchant
This user ID is sent from the merchant when they want to generate a token
status_date String (19) Y date and time when the poll was success / rejected
Format : YYYY-MM-DD HH:MM:SS
created_date String (19) Y The date when the initial form submission process
modified_date String (19) Y The date in case of data change such as updating of eform numbers or other things will automatically update the date
status_id int Y Open account status code
Code : 0, 1
status_name String (15) Y type of account opening status. depends on the status_id
0 = REJECTED
1 = SUCCESS
nomor_rekening String (10) N if the customer agrees to the provision of the account to a third party, the customer's account number will be sent 
Result of the request will contains following information:

Response:
 
Field Data Type Description
Status String (7) The push notification process is success or failed
Message String (8) Response from Co-Partner (“Berhasil”)

https://www.copartners.com/bca/open-account/notification

Request

POST https://www.copartners.com/bca/open-account/notification
-H "X-Pass-Signature: b9125ab10816f6929d214c96ffca77dfd5a1ea13856362b85eeaeb70155"
-d " {
	"user_id":"DD6DC0C5-17ED-4731-8600-B63EEDB126D9",
	"application_id":"7C73063B-93EA-4F57-A3bE-2A1F1773DB4F",
	"status_date":"2020-08-05 11:03:56",
	"created_date":"2020-03-18 09:03:57",
	"modified_date":"2020-08-11 11:16:01",
	"status_id":"1",
	"status_name":"SUCCESS",
	"nomor_rekening":"1234567890"
}"

https://www.copartners.com/bca/open-account/notification

Response

{
	"Status": "Success",
	"Message": "Berhasil"
}
2. BCA Account Opening Status

This service is used for BCA account opening status update for Co-Partners.

This feature is not yet available to be accessed via Sandbox

Recommended Specification:
Type Recommendation
Android OS version 8.0+ dan Google Chrome version 75+
iOS OS version 12.0+ dan Safari version 12+

Request Headers and URI Params:
Field Params Type Data Type Mandatory Description
channel-id Header String WSID bcacoid (95171)
credential-id Header String(36) Registered Merchant ID at bca.co.id
application-id Header String(36) Y Application ID that sent from bca.co.id to merchant when successfully submitted form (before uploading document and video call) 

Result of the request will contains following information:

Response:
 
Field Data Type Description
merchant_id String Merchant ID 
application_id String (36) Application ID
status_name String (15) Transaction Status
status_id int Status ID
0 = Rejected
1 = Success
2 = Retry
3 = On-Lock
created_date String (19) The date when the initial form submission process
modified_date String (19) The date in case of data change such as updating of eform numbers or other things will automatically update the date 
status_date String (19) Status Date
nomor_rekening String (10) Account Number (If the Customer does not check Account Number Approval, then the Account_Number field will display an empty string (“”))

Here is the list of error codes that can be returned. 
HTTP Code Error Code Error Message (Indonesian) Error Message (English)   Description
400 ESB-14-001 HMAC tidak cocok HMAC mismatch 400
400 ESB-14-002 Permintaan tidak valid Invalid request 400
400 ESB-14-003 Timestamp tidak valid Invalid timestamp 400
400 ESB-14-004 parameter input tidak valid  Invalid input parameter 400
500 ESB-14-005 Sistem sedang dalam maintenance System under maintenance 500
504 ESB-14-007 Timeout Timeout 504
401 ESB-14-008 Client_Id/Client_Secret /Grant_Type tidak valid Invalid Client_Id/Client_Secret /Grant_Type 401
401 ESB-14-009 Tidak berhak Unauthorized 401
404 ESB-14-011 Service tidak tersedia Service doesn't exist 404
401 ESB-14-012 Tidak berhak mengakses service ini Not allowed to access this service 401
401 ESB-14-014 ChannelID/CredentialID tidak valid Invalid ChannelID/CredentialID  401
403 ESB-14-019 Koneksi tidak diperbolehkan Connection not allowed  403
400 ESB-14-021 API Key tidak valid Invalid API Key 400
400 ESB-14-022 API Key/API Secret tidak cocok API Key/API Secret mismatch  400
400 WBF-04-001 Header Application Id tidak ada Header Application Id tidak ada Get Open Account Approval Status
400 WBF-04-002 Header Credential ID tidak ada Header Credential ID tidak ada Get Open Account Approval Status
400 WBF-04-003 Credential ID / Application Id Value tidak sesuai Credential ID / Application Id Value tidak sesuai Get Open Account Approval Status
400 WBF-04-004 Data dengan Credential ID dan Application Id tersebut tidak ditemukan Data dengan Credential ID dan Application Id tersebut tidak ditemukan Get Open Account Approval Status
400 WBF-04-005 Header Client Id tidak ada Header Client Id tidak ada Get Open Account Approval Status
400 WBF-04-006 Data dengan Client ID tersebut tidak ditemukan Data dengan Client ID tersebut tidak ditemukan Get Open Account Approval Status
400 WBF-99-991 ex.Message  ex.Message  Pesan global dari sistem
400 WBF-99-992 messages messages Pesan global dari sistem


/open-account/marketplace/status

Request

curl –X GET https://sandbox.bca.co.id/open-account/marketplace/status 
-H 
'credentialid': F90338EA-853B-4512-AE58-0E72BE2E88ED', 
'application-id':'C5276A67-711E-468EBB14-01861D2746C6', 
‘channel-id’:’95171’

/open-account/marketplace/status

Response

{
	"merchant_id": "F90338EA-853B-4512-AE58-0E72BE2E88ED",
	"application_id": "5F7D49A6-E3F7-493A-B255-5906D4E65FD2",
	"status_name": "SUCCESS",
	"status_id": "1",
	"created_date": "2020-08-05 10:28:21",
	"modified_date": "2020-08-05 11:03:56",
	"status_date": "2020-08-05 11:03:56",
	"nomor_rekening": "0842378425"
}

Response Berhasil dan tanpa menampilkan Nomor Rekening
{
	"merchant_id": "F90338EA-853B-4512-AE58-0E72BE2E88ED",
	"application_id": "5F7D49A6-E3F7-493A-B255-5906D4E65FD2",
	"status_name": "SUCCESS",
	"status_id": "1",
	"created_date": "2020-08-05 10:28:21",
	"modified_date": "2020-08-05 11:03:56",
	"status_date": "2020-08-05 11:03:56",
	"nomor_rekening": ""
}
3. BCA Account Opening Webform

This service is used for Open Account Marketplace.

This feature is not yet available to be accessed via Sandbox

Recommended Specification:
Type Recommendation
Android OS version 8.0+ dan Google Chrome version 75+
iOS OS version 12.0+ dan Safari version 12+

Request Headers and URI Params:
Field Params Type Data Type Mandatory Description
channel-id Header String WSID bcacoid (95171)
credential-id Header String(36) Registered Merchant ID at bca.co.id

Payload (Form Data):
 
Field Data Type Mandatory  Description
user_id String (50) Y Registered User Merchant ID
application_id String (36) Conditional Application ID
Not mandatory if activity_code = ‘01’, application_id = ‘’
Mandatory if activity_code = ‘02’,
application_id sent from web-view to merchant when successfully submitted form 
activity_code String (2) Y Activity Code
‘01’ = web-view access (consumer profile)
‘02’ = mobile-browser access (open account document and video call capture) 
email String (100) N Merchant Email
mobile_phone String (15) N Merchant Mobile Phone
full_name String (100) N Merchant Full Name
Result of the request will contains following information:

Response:
 
Field Data Type Description
verification_id String (36) Verification ID
applicant_id String (36) Applicant ID
url_pageview String URL Pageview
application_id String (40) Hanya dikirim jika Activity code = 02
Kode unik khusus yang berfungsi sebagai reference code sesi pemrek yang dimasking untuk diinfokan ke copartner

Here is the list of error codes that can be returned. 
HTTP Code Error Code Error Message (Indonesian) Error Message (English)   Description
400 ESB-14-001 HMAC tidak cocok HMAC mismatch 400
400 ESB-14-002 Permintaan tidak valid Invalid request 400
400 ESB-14-003 Timestamp tidak valid Invalid timestamp 400
400 ESB-14-004 parameter input tidak valid  Invalid input parameter 400
500 ESB-14-005 Sistem sedang dalam maintenance System under maintenance 500
504 ESB-14-007 Timeout Timeout 504
401 ESB-14-008 Client_Id/Client_Secret /Grant_Type tidak valid Invalid Client_Id/Client_Secret /Grant_Type 401
401 ESB-14-009 Tidak berhak Unauthorized 401
404 ESB-14-011 Service tidak tersedia Service doesn't exist 404
401 ESB-14-012 Tidak berhak mengakses service ini Not allowed to access this service 401
401 ESB-14-014 ChannelID/CredentialID tidak valid Invalid ChannelID/CredentialID  401
403 ESB-14-019 Koneksi tidak diperbolehkan Connection not allowed  403
400 ESB-14-021 API Key tidak valid Invalid API Key 400
400 ESB-14-022 API Key/API Secret tidak cocok API Key/API Secret mismatch  400
400 WBF-03-001 The {field-name} field is required. The {field-name} field is required. Generate Merchant Token
400 WBF-03-002 Parameter header Credential ID tidak ditemukan Parameter header Credential ID tidak ditemukan Generate Merchant Token
400 WBF-03-003 Credential ID Value tidak sesuai Credential ID Value tidak sesuai Generate Merchant Token
400 WBF-03-004 Credential ID tidak terdaftar Credential ID tidak terdaftar Generate Merchant Token
400 WBF-03-005 Application Id tidak sesuai Application Id tidak sesuai Generate Merchant Token
400 WBF-03-006 Application Id tidak ditemukan Application Id tidak ditemukan Generate Merchant Token
400 WBF-03-007 Application Id ditolak / berhasil / sedang proses  Application Id ditolak / berhasil / sedang proses  Generate Merchant Token
400 WBF-03-008 Merchant Id dan App Data Id tidak sesuai Merchant Id dan App Data Id tidak sesuai Generate Merchant Token
400 WBF-03-009 Telah mencapai batas akses maksimum halaman ini. Telah mencapai batas akses maksimum halaman ini. Generate Merchant Token
400 WBF-99-991 ex.Message  ex.Message  Pesan global dari sistem
400 WBF-99-992 messages messages Pesan global dari sistem


/open-account/marketplace/merchants/tokens/generator

Request

curl –X POST https://sandbox.bca.co.id/open-account/marketplace/merchants/tokens/generator 
-H 'credential-id':'F90338EA-853B4512-AE58-0E72BE2E88ED', ‘channel-id’:’95171’ 
–d
'user_id=123456789&application_id=&activity_code=01&email=maiuw@gmail.com&mobile_ph
one=08128084423&full_name=8196047056'

/open-account/marketplace/merchants/tokens/generator

Response

Response (if ActivityCode = 01)
{
	"verification_id": "cdec3c69-f549-4b91-bccf-25a3dad2de5a",
	"applicant_id": "117f6c7e-ceec-4fde-ab4d-6b628230ed59",
	"url_pageview": "http://10.20.212.217:2007/applyonline/bukarekening/form1?MerchantId=F90338EA-853B-4512-AE58-0E72BE2E88ED&ApplicantId=117f6c7e-ceec-4fde-ab4d6b628230ed59&VerificationId=cdec3c69-f549-4b91-bccf-25a3dad2de5a"
	"application_id": null
}

Response (if ActivityCode = 02)
{
	"verification_id": "cdec3c69-f549-4b91-bccf-25a3dad2de5a",
	"applicant_id": "117f6c7e-ceec-4fde-ab4d-6b628230ed59",
	"url_pageview": http://10.20.212.217:2007/applyonline/bukarekening/form1?MerchantId=F90338EA-853B-4512-AE58-0E72BE2E88ED&ApplicantId=117f6c7e-ceec-4fde-ab4d6b628230ed59&VerificationId=cdec3c69-f549-4b91-bccf-25a3dad2de5a,
	"application_id": "06B440A2-72E7-47E1-B389-1EDFDC9A636D"
}

Virtual Account untuk Biller

1. SNAP Virtual Account Inquiry

This service is used to VA BillPresentment.

This feature is not yet available to be accessed via Sandbox.

 

Additional Headers:
Field Params Type Data Type  Length Type Mandatory Description
CHANNEL-ID Header String(5)   Channel’ Identifier using WSID BCA Virtual Account (95231) 
X-PARTNER-ID Header String(32)   Partner ID using Company Code VA
X-EXTERNAL-ID Header String (36)   Y Numeric String. Reference number that should be unique in the same day

Payload:
 
Field Data Type Mandatory  Description
partnerServiceId String (8)  Y Derivative of XPARTNER-ID, similar to company code
8 digit left padding space “ “
customerNo String (20) Y Unique number (up to 20 digits)
virtualAccountNo String (28) Y partnerServiceId (8 digit left padding space “ “) + customerNo (up to 20 digit)
trxDateInit Date (25) N BCA internal system datetime with timezone, which follows the ISO-8601 standard
channelCode Numeric (4) N Channel code based on ISO 18245
inquiryRequestId String (128)  Y Unique identifier for this inquiry. Generated by BCA. 
additionalInfo Object N Optional. Additional Information for custom use. Refer to Appendix B for complete list of additionalInfo for Virtual Account
Result of the request will contains following information:

Response:
 
Field Data Type Mandatory  Description
responseCode String (7) Y Mandatory in BCA. Response code from Partner, refer to Appendix A for list of response code
responseMessage String (150) Y Mandatory in BCA. Response message from Partner, refer to Appendix A for list of response code
virtualAccountData Object Y  
   inquiryStatus String (2) N Mandatory in BCA. Status of inquiry, refer to Notes for status values 
   inquiryReason Object N Mandatory in BCA. Reason for inquiry Status multi language
      english String (64) N Reason for inquiry Status in English
      indonesia String (64) N Reason for inquiry Status in Bahasa
   partnerServiceId String (8) Y Mandatory in BCA. Derivative of X-PARTNER-ID, similar to company code, 8 digit left padding space “ ”
   customerNo String (20) Y Mandatory in BCA. Unique number (up to 20 digits). 
   virtualAccountNo String (28) Y Mandatory in BCA. partnerServiceId (8 digit left padding space “ ”) + customerNo (up to 20 digit) 
   virtualAccountName String (255) Y Mandatory in BCA. Customer name 
   inquiryRequestId String (128) Y Mandatory in BCA. From Inquiry Request 
   totalAmount Object N Mandatory in BCA.
      value String (16.2)
ISO 4217
Y Transaction Amount. Total Amount with 2 decimal
      currency String (3) Y Currency
   subCompany String (5) N Mandatory in BCA. Partner's product code (sub company code). Mandatory for non-multibills transaction.
billDetails Array of Objects N Array with maximum 24 Objects
   billNo String (18) N Customer bill number generated by Partner
   billDescription Object N Bill Description
      english String (18) N Bill Description in English
      indonesia String (18) N Bill Description in Bahasa
   billSubCompany String (5) C Bill sub company code
   billAmount Object N Amount specific to bill number
      value String (16.2)
ISO 4217
Y Transaction Amount
      currency String (3)  Y  
      additionalInfo  Object Optional. Additional information for custom use. Refer to Appendix B for complete list of additionalInfo for Virtual Account
freeTexts Array of Objects N Optional. Array with maximum 9 objects. freeTexts field in inquiry bill should not be greater than 5
    english  String (32)  N  Will be shown in Channel
    indonesia  String (32)  Will be shown in Channel
additionalInfo  Object  N  Optional. Additional information for custom use. Refer to Appendix B for complete list of additionalInfo for Virtual Account

Note :

  • The final status of inquiry response is not determined by responseCode and responseMessage.
  • Status of inquiry will be defined in inquiryStatus and inquiryReason field to be displayed to channel's screen. This field may vary with these values:
    00 = Success inquiry, detail bill returned
    01 = Failed inquiry, partner must defined reason for this status in InquiryReason field.
  • BCA will continue to check the inquiryStatus and inquiryReason if the responseCode received is 2002400 and 2022400.
  • If the response code is not either 2002400 or 2022400, BCA will on consider the response as failed transaction and will be rejected.
  • If the inquiryStatus and inquiryReason field are empty, BCA will consider it a failed transaction and will be rejected.
  • If virtualAccountName length > 30, channel will display first 30 characters.
  • If any amount field value > 13.2 digit length, BCA will consider it a failed inquiry and error message will be displayed in channel. 
  • currency of totalAmount and billAmount must be the same. currency field may vary with these values: IDR, USD, SGD
  • For multi bills transaction, totalAmount field value can be 0, but for non-multi bills transaction totalAmount field value should be total amount of all the detail bills provided.
  • For non multi bils transaction with single settlement, billDetails is optional. If billDetails available then billSubCompany field in billDetails must match with subCompany field value.
  • For multi bills and non multi bills transaction with multi settlements,
    • billSubCompany & billAmount field is mandatory
    • billSubCompany field value must be different for each bill number, used for multiple settlements needs. Product Name and Admin Fee from subCompany 00000 would be used and shown in channel.
  • billNo and billDescription field value are defined by co-partner and will be displayed in BCA channel’s screen
  • subCompany and billSubCompany value must be registered in BCA, else transaction will be rejected.
  • freeTexts field defined by partner and will be displayed in channel's screen. This field must be defined in two languages, The occurences for freeTexts field in inquiry bill should not be greater than 5.
  • feeAmount field will be ignored. feeAmount will refer to company profile data registered in BCA's system.
  • virtualAccountTrxType will be ignored. will refer to company profile data (bill type: YV/NV/YF) registered in BCA's system.
  • billDetails should not be greater than 5
  • channelCode field may vary with these values based on ISO 18245:
    • 6010 = Teller (Financial institutions - manual cash disbursements)
    • 6011 = eBanking (Financial institutions - automated cash disbursements)
  • inquiryRequestId is unique from BCA for each transaction.
  • the usage of additional info is to be discussed with BCA first.

Expected Response from Partner. 
Scenario responseCode responseMessage inquiryStatus
Access Token Invalid 4012401 "Invalid Token (B2B)" -
Unauthorized . Signature 4012400 "Unauthorized. [Signature]"  -
Unauthorized . stringToSign 4012400 "Unauthorized. [Signature]"  -
Unauthorized . Unknown Client 4012400 "Unauthorized. [Unknown client]" -
Missing Mandatory Field {} …, etc 4002402 "Invalid Mandatory Field {........}"  01
Invalid Field Format {} .., etc 4002401 "Invalid Field Format {........}"  01
Cannot use the same X-EXTERNAL-ID 4092400 "Conflict"  01
Input no Virtual Account Valid 2002400 "Success"  01
Input no Virtual Account Valid sudah lunas  4042414 "Paid Bill"  01
Input no Virtual Account Valid kadaluarsa 4042419 "Invalid Bill/Virtual Account"  01
Input no Virtual Account tidak terdaftar 4042412 "Invalid Bill/Virtual Account [Reason]"  01
Request Parsing Error 4002400 "Bad Request" 01
Response Parsing Error 4002400 "Bad Request" 01

curl –X POST https://copartners.com/openapi/v1.0/transfer-va/inquiry

Request

-H 'CHANNEL-ID':'95231'
-H 'X-PARTNER-ID': '12345'
-H 'X-EXTERNAL-ID': '123456789012345678901234567890123456'
-d '
{
	"partnerServiceId": " 12345",
	"customerNo": "123456789012345678",
	"virtualAccountNo": " 12345123456789012345678",
	"trxDateInit": "2022-02-12T17:29:57+07:00",
	"channelCode": 6011,
	"additionalInfo": {},
	"inquiryRequestId": "202202110909311234500001136962"
}'

curl –X POST https://copartners.com/openapi/v1.0/transfer-va/inquiry

Response

Sample for single settlement (non multi bills) transaction:

{
	"responseCode": "2002400",
	"responseMessage": "Successful",
	"virtualAccountData": 
	{
		"inquiryStatus": "00",
		"inquiryReason": {
			"english": "Success",
			"indonesia": "Sukses"
		},
		"partnerServiceId": " 12345",
		"customerNo": "123456789012345678",
		"virtualAccountNo": " 12345123456789012345678",
		"virtualAccountName": "Jokul Doe",
		"inquiryRequestId": "202202110909314440200001136962",
		"totalAmount": {
			"value": "100000.00",
			"currency": "IDR"
		},
		"subCompany": "00000",
		"billDetails": [
		{
			"billNo": "123456789012345678",
			"billDescription": {
				"english": "Maintenance",
				"indonesia": "Pemeliharaan"
			},
			"billSubCompany": "00000",
			"billAmount": {
				"value": "100000.00",
				"currency": "IDR"
			}
		}],
		"freeTexts": [
		{
			"english": "Free text",
			"indonesia": "Tulisan bebas"
		}],
		"virtualAccountTrxType": "C",
		"feeAmount": {
			"value": "",
			"currency": ""
		},
		"additionalInfo": {
			"additionalInfo1": {
				"label": {
					"indonesia": "Unit",
					"english": "Unit"
				},
				"value": {
					"indonesia": "10C",
					"english": "10C"
				}
			},
			"additionalInfo2": {
				"label": {
					"indonesia": "Bulan",
					"english": "Month"
				},
				"value": {
					"indonesia": "Januari",
					"english": "January"
				}
			}
		}
	}
}

Sample for multi settlement (non multi bills/multi bills) transaction:

{
	"responseCode": "2002400",
	"responseMessage": "Successful",
	"virtualAccountData": 
	{
		"inquiryStatus": "00",
		"inquiryReason": 
		{
			"english": "Success",
			"indonesia": "Sukses"
		},
		"partnerServiceId": " 12345",
		"customerNo": "123456789012345678",
		"virtualAccountNo": " 12345123456789012345678",
		"virtualAccountName": "Jokul Doe",
		"inquiryRequestId": "202202110909314440200001136962",
		"totalAmount": 
		{
			"value": "100000.00",
			"currency": "IDR"
		},
		"subCompany": "",
		"billDetails": [
		{
			"billNo": "123456789012345678",
			"billDescription": 
			{
				"english": "Maintenance",
				"indonesia": "Pemeliharaan"
			},
			"billSubCompany": "00000",
			"billAmount": 
			{
				"value": "50000.00",
				"currency": "IDR"
			}
		},
		{
			"billNo": "223456789012345678",
			"billDescription": 
			{
				"english": "Electricity",
				"indonesia": "Listrik"
			},
			"billSubCompany": "00001",
			"billAmount": 
			{
				"value": "20000.00",
				"currency": "IDR"
			}
		},
		{
			"billNo": "323456789012345678",
			"billDescription": {
				"english": "Water",
				"indonesia": "Air"
			},
			"billSubCompany": "00002",
			"billAmount": {
				"value": "30000.00",
				"currency": "IDR"
			}
		}
		],
		"freeTexts": [
		{
			"english": "Free text",
			"indonesia": "Tulisan bebas"
		}],
		"virtualAccountTrxType": "C",
		"feeAmount": {
			"value": "",
			"currency": ""
		},
		"additionalInfo": {
			"additionalInfo1": {
				"label": {
					"indonesia": "Unit",
					"english": "Unit"
				},
				"value": {
					"indonesia": "10C",
					"english": "10C"
				}
			},
			"additionalInfo2": {
				"label": {
					"indonesia": "Bulan",
					"english": "Month"
				},
				"value": {
					"indonesia": "Januari",
					"english": "January"
				}
			}
		}
	}
}
2. SNAP Virtual Account Inquiry Status

This service is used to VA Payment Status.

This feature is not yet available to be accessed via Sandbox.

 

Additional Headers:
Field Params Type Data Type Mandatory Description
CHANNEL-ID Header String(5) Channel’ Identifier using WSID Virtual Account (95231)
X-PARTNER-ID Header String(32) Partner ID using Company Code VA
X- EXTERNAL -ID Header String(36) Y Reference number that should be unique in the same day

Payload:
 
Field Data Type Mandatory  Description
partnerServiceId String (8)  Y Derivative of X-PARTNER-ID, similar to company code, 8 digit left padding space “ “
customerNo String (20) Y Unique number (up to 20 digits)
virtualAccountNo String (28) Y partnerServiceId (8 digit left padding space “ “) + customerNo (up to 20 digit)
paymentRequestId String (128) N Unique identifier from Payment generated by BCA.
 additionalInfo Object N Optional. Additional Information for custom use. Refer to Appendix B for complete list of additionalInfo for Virtual Account
Result of the request will contains following information:

Response:
 
Field Data Type Mandatory  Description
responseCode String (7) Y Mandatory In BCA. Response code from Partner, refer to Appendix A for list of response code
responseMessage String (150) Y Mandatory In BCA. Response message from Partner, refer to Appendix A for list of response message
virtualAccountData Object Y  
   paymentFlagReason Object N Reason for Payment Status multi language
      english String (200) N Reason for inquiry status in English
      indonesia String (200) N Reason for inquiry status in Bahasa 
   partnerServiceId String (8) Y Derivative of XPARTNER-ID, similar to company code, 8 digit left padding space “ “
   customerNo String (20) Y Unique number (up to 20 digit)
   virtualAccountNo String (28) Y partnerServiceId (8 digit left padding space “ “) + customerNo (up to 20 digit) 
   inquiryRequestId String (128) Y Unique identifier from Inquiry
   paymentRequestId String (128) C Unique identifier for this Payment from BCA. Mandatory if payment happened. 
   paidAmount Object N  
      value String (16.2) 
ISO 4217 
Y Paid amount with 2 decimal
      currency String (3) Y Currency
    totalAmount  Object N -
      value String (16.2) 
ISO 4217 
Y Transaction Amount. Total Amount from Inquiry with 2 decimal
      currency String (3) Y Currency
   transactionDate Date (25) N Payment datetime when the payment happened
   referenceNo String (15) N Payment auth code generated by BCA
   paymentFlagStatus String (2) N Status for Payment Flag
   billDetails Array of Objects N Array with maximum 24 Objects 
      billNo String (18) N Bill number from Partner
      billDescription Object N Bill Description
         english String (18) N Bill Description in English
         indonesia String (18) N Bill Description in Bahasa
      billSubCompany String (5)  N Partner’s product code 
      billAmount Object N Nominal inputted by Customer with 2 decimal
         value String (16.2) ISO 4217 Y Transaction Amount. Total Amount from Inquiry with 2 decimal
         currency String (3)  Y Currency
      additionalInfo  Object N Optional. Additional Information for customer use for each bill. Refer to Appendix B for complete list of additionalInfo for Virtual Account
      billReferenceNo Numeric (15) N Bill auth code generated by BCA
      status String (2) N Payment status for specific Bill
      reason Object N Reason for Payment Status for specific Bill multi language
         english String (64) N Reason for Payment Status for specific Bill in English
         indonesia String (64) N Reason for Payment Status for specific Bill in Bahasa 
 additionalInfo  Object  N Optional. Additional Information for customer use for each bill. Refer to Appendix B for complete list of additionalInfo for Virtual Account 

Note :

  • Inquiry payment status can only be requested if the payment flag transaction has been made.
  • The available payment (transaction) status are D-day and D-1 transaction.
  • The key for inquiry payment status can either be
    • partnerServiceId + customerNo
    • virtualAccountNo
    • paymentRequestId
  • If all keys are filled in, then the payment status will be enquired based on the paymentRequestID.
  • If using partnerServiceId + customerNo or virtualAccountNo as the key, then the payment status will be enquired based on the most recent transaction using that partnerServiceId + customerNo or virtualAccountNo.
  • The final status of payment flag is not determined by responseCode and responseMessage.
  • Status for payment flag will be defined in paymentFlagStatus and paymentFlagReason field.

Here is the list of error codes that can be returned. 
HTTP Code  Error Code Error Message
400 4002600 Bad Request
400 4002601 Invalid Field Format {field name}
400 4002602 Invalid Mandatory Field {field name}
401 4012600 Unauthorized. [Reason]
401 4012601 Invalid token (B2B)
404 4042601 Transaction Not Found
500 5002600 Internal Server Error 
504 5042600 Timeout

curl –X POST https://sandbox.bca.co.id/openapi/v1.0/transfer-va/status

Request

-H 'CHANNEL-ID':'95231'
-H 'X-PARTNER-ID': '12345’
-H 'X-EXTERNAL-ID': '123456789012345678901234567890123456’
-d '
{
	"partnerServiceId":" 00012345",
	"customerNo":123456789012345678,
	"virtualAccountNo":" 00012345123456789012345678",
    "paymentRequestId":"202202111031031234500001136962",
	"additionalInfo":{}
}'

curl –X POST https://sandbox.bca.co.id/openapi/v1.0/transfer-va/status

Response

"Sample for single settlement (non multi bills) transaction:"

{
	"responseCode": "2002600",
	"responseMessage": "Success",
	"virtualAccountData": {
		"paymentFlagStatus": "00",
		"paymentFlagReason": {
			"indonesia": "BERHASIL",
			"english": "SUCCESS"
		},
		"partnerServiceId": " 12345",
		"customerNo": "123456789012345678",
		"virtualAccountNo": " 12345123456789012345678",
		"inquiryRequestId": "202202111031031234500001136962",
		"paymentRequestId": "202202111031031234500001136962",
		"paidAmount": {
			"value": "100000.00",
			"currency": "IDR"
		},
		"totalAmount": {
			"value": "100000.00",
			"currency": "IDR"
		},
		"transactionDate": "2022-02-11T10:16:04+07:00",
		"referenceNo": "00113696201",
		"billDetails": [
		{
			"billNo": "123456789012345678",
			"billDescription": {
				"english": "Maintenance",
				"indonesia": "Pemeliharaan"
			},
			"billSubCompany": "00000",
			"billAmount": {
				"value": "100000.00",
				"currency": "IDR"
			},
			"additionalInfo": {},
			"billReferenceNo": "00113696201",
			"status": "00",
			"reason": {
				"english": "Success",
				"indonesia": "Sukses"
			}
		}
		],
	}
}

Sample for multi settlement (non multi bills/multi bills) transaction:
{
	"responseCode": "2002600",
	"responseMessage": "Success",
	"virtualAccountData": {
		"paymentFlagStatus": "00",
		"paymentFlagReason": {
			"indonesia": "BERHASIL",
			"english": "SUCCESS"
		},
		"partnerServiceId": " 12345",
		"customerNo": "123456789012345678",
		"virtualAccountNo": " 12345123456789012345678",
		"inquiryRequestId": "202202111031031234500001136962",
		"paymentRequestId": "202202111031031234500001136962",
		"paidAmount": {
			"value": "100000.00",
			"currency": "IDR"
		},
		"totalAmount": {
			"value": "100000.00",
			"currency": "IDR"
		},
		"transactionDate": "2022-02-11T10:16:04+07:00",
		"referenceNo": "",
		"billDetails": [
		{
			"billNo": "123456789012345678",
			"billDescription": {
				"english": "Maintenance",
				"indonesia": "Pemeliharaan"
			},
			"billSubCompany": "00000",
			"billAmount": {
				"value": "50000.00",
				"currency": "IDR"
			},
			"additionalInfo": {},
			"billReferenceNo": "00113696201",
			"status": "00",
			"reason": {
				"english": "Success",
				"indonesia": "Sukses"
			}
		},
		{
			"billNo": "223456789012345678",
			"billDescription": {
				"english": "Electricity",
				"indonesia": "Listrik"
			},
			"billSubCompany": "00001",
			"billAmount": {
				"value": "20000.00",
				"currency": "IDR"
			},
			"additionalInfo": {},
			"billReferenceNo": "00213696201",
			"status": "00",
			"reason": {
				"english": "Success",
				"indonesia": "Sukses"
			}
		},
		{
			"billNo": "323456789012345678",
			"billDescription": {
				"english": "Water",
				"indonesia": "Air"
			},
			"billSubCompany": "00002",
			"billAmount": {
				"value": "30000.00",
				"currency": "IDR"
			},
			"additionalInfo": {},
			"billReferenceNo": "00313696201",
			"status": "00",
			"reason": {
				"english": "Success",
				"indonesia": "Sukses"
			}
		}
		],
	}
}
3. SNAP Virtual Account Payment

This service is used to VA Payment Flag.

This feature is not yet available to be accessed via Sandbox.

 

Additional Headers:
Field Params Type Data Type  Length Type Mandatory Description
CHANNEL-ID Header String(5)   Channel’ Identifier using WSID BCA Virtual Account (95231)
X-PARTNER-ID Header String(32)   Partner ID using Company Code VA
X-EXTERNAL-ID Header String (36)    Y Numeric String. Reference number that should be unique in the same day

Payload:
 
Field Data Type Mandatory  Description
partnerServiceId String (8)  Y Derivative of X-PARTNER-ID, similar to company code, 8 digit left padding space “ “ 
customerNo String (20) Y Unique number (up to 20 digits)
virtualAccountNo String (28) Y partnerServiceId (8 digit left padding space “ “) + customerNo (up to 20 digit)
virtualAccountName String (255)  N Customer name
paymentRequestId String (128) Y Unique identifier generated by BCA. If payment comes from the Inquiry process, this value must be the same with inquiryRequestId.
channelCode Numeric (4)  N Channel code based on ISO 18245
hashedSourceAccountNo String (32) N Optional. Source account number in hash
sourceBankCode String (3) N Optional. Source account bank code
paidAmount Object Y -
   value String (16.2)
ISO 4217
Y Paid Amount with 2 decimal
   currency String (3) Y Currency
referenceNo String (64) N Payment auth code generated by BCA
flagAdvise String (1) N Status is this a retry notification. (Default value: N)
subCompany String (5) N Sub Company code generated by Partner
billDetails Array of Objects N Array with maximum 24 Objects
   billNo String (18) N From Inquiry Response
   billDescription JSON Object N From Inquiry Response
      english String (18) N From Inquiry Response
      indonesia String (18) N From Inquiry Response
   billSubCompany String (5) N From Inquiry Response
   billAmount Objects N  
      value String (16.2) ISO 4217  Y Transaction Amount. From Inquiry Response
      currency String (3) Y Currency
   billReferenceNo Numeric (15) N From Inquiry Response
additionalInfo Object N Optional. Additional information for custom use. Refer to Appendix B for complete list of additionalInfo for Virtual Account

Note :

  • totalAmount field value will be same with totalAmount field value returned from partner when BCA do inquiry list of bils.
  • paymentRequestID corresponds to inquiryRequestID for each transaction (one pair of inquiry and payment)
  • paidAmount field value will be total amount paid by customer through BCA.
  • For multi bills transaction, paidAmount field value might be different with totalAmount field value. For non multi bills transaction, paidAmount field value will be same with totalAmount field value.
  • currency must be same for totalAmount, billAmount, and paidAmount. currency field may vary with these values: IDR, SGD, USD.
  • For multi bills and non multi bills transaction with multi settlements,
    • billSubCompany field is mandatory.
    • billSubCompany field value must be different for each bill number and billReferenceNo field value will be different for each bill number. referenceNo and subCompany field value will be blank for multi settlement transaction. Transaction would be settled according to each billSubCompany field value.
  • flagAdvice field may vary with these values: N= new request for payment flag; Y= advice request (retry flag) for payment flag.
  • billDetails should not be more than 5. BCA will returns only bills that customer choose to pay in payment flag request to partner.
  • channelCode field may vary with these values : 
    • 6010 = Teller (Financial institutions - manual cash disbursements)
    • 6011 = eBanking (Financial institutions - automated cash disbursements)
Result of the request will contains following information:

Response:
 
Field Data Type Mandatory  Description
responseCode String (7) Y Mandatory In BCA. Response code from Partner, refer to Appendix A for list of response code
responseMessage String (150) Y Mandatory in BCA. Response message from Partner, refer to Appendix A for list of response code 
virtualAccountData Object Y  
   paymentFlagReason Object N Mandatory in BCA. Reason for Payment Status multi language
      english String (200) N Reason for inquiry status in English
      indonesia String (200) N Reason for inquiry status in Bahasa 
   partnerServiceId String (8) Y Mandatory in BCA. Derivative of XPARTNER-ID, similar to company code, 8 digit left padding space “ “
   customerNo String (20) Y Mandatory in BCA. Unique number (up to 20 digit)
   virtualAccountNo String(28) Y Mandatory in BCA. partnerServiceId (8 digit left padding space “ “) + customerNo (up to 20 digit)
   virtualAccountName String (255) Y Mandatory in BCA. Customer name
   paymentRequestId String (128) Y Mandatory in BCA. Payment request id from request payload
   paidAmount Object N Mandatory in BCA.
      value String (16.2) 
ISO 4217 
Y Transaction Amount. From Payment Request 
      currency String (3) Y Currency
    totalAmount  Object N Mandatory in BCA.
      value String (16.2) 
ISO 4217 
Y Transaction Amount. From Payment Request
      currency String (3) Y Currency
   trxDateTime Date (25) N Mandatory in BCA. From Payment Request
   referenceNo String (15) N From Payment Request
   paymentFlagStatus String (2) N Mandatory in BCA. Status for Payment Flag from Partner
   billDetails Array of Objects N Array with maximum 24 Objects 
      billerReferenceId String (64) N From Inquiry Response
      billNo String (18) N From Inquiry Response
      billDescription Object N From Inquiry Response
         english String (18) N From Inquiry Response
         indonesia String (18) N From Inquiry Response
      billSubCompany String (5)  N From Inquiry Response
      billAmount Object N From Inquiry Response
         value String (16.2) ISO 4217 Y Transaction Amount. From Payment Request
         currency String (3)  Y Currency
      additionalInfo Object N Additional Information for custom use in each bill. Refer to Appendix B for complete list of additionalInfo for Virtual Account
   status String (2) N Payment status for specific Bill
   reason Object N Reason for Payment Status for specific Bill multi language
      english String (64) N Reason for Payment Status for specific Bill in English
      indonesia String (64) N Reason for Payment Status for specific Bill in Bahasa 
freeTexts Array of Objects  N Optional. Array with maximum 9 Objects
   english String (32) N Will be shown in Channel
   indonesia String (32) N Will be shown in Channel
additionalInfo Object N Additional Information for custom use. Refer to Appendix B for complete list of additionalInfo for Virtual Account

Note :

  • The final status of payment flag response is not determined by responseCode and responseMessage.
  • Status for payment flag will be defined in paymentFlagStatus and paymentFlagReason field to be displayed to channel's screen. This field may vary with these values:
    00 = success payment flag
    01 = Reject payment flag by partner, partner must defined reason for this status in paymentFlagReason field values in two languages.
    02 = Timeout payment flag between switcher to partner. If company's reconciliation type are reversal or force settle, transaction with status 02 will be considered as success transaction. (payment flag status other than 00,01,02 will be considered as 01)
  • BCA will continue to check the paymentFlagStatus and paymentFlagReason field if the responseCode received is 2002500 and 2022500.
  • If the response code is not either 2002500 or 2022500, BCA will consider the response as failed transaction and will be rejected.
  • For responseCode, paymentFlagStatus and status inside billdetail, this is condition for timeout :
responseCode paymentFlagStatus status inside billdetail Final Status 
N N N Timeout
N Y Y Timeout
Y (Success) N N Timeout
Y (Failed) N N Failed
  • For multi bills and non multi bills transaction with multi settlement, billSubCompany field value must be different for each bill number. paymentFlagStatus field shows the final status for all bills. Status and reason defined in billDetails must be the same for all bills, and also contain the same status and reason as paymentFlagStatus and paymentFlagReason field.
  • If virtualAccountName length is greater than 30, then only first 30 character will be displayed on channel's screen
  • totalAmount field value will be same with totalAmount field value returned from partner when BCA do inquiry list of bills.
  • paymentRequestID is the same value with inquiryRequestID from BCA for each transaction.
  • paidAmount field value will be total amount paid by customer through BCA.
  • For multi bills transaction, paidAmount field value might be different with totalAmount field value. For non multi bills transaction, paidAmount field value will be same with totalAmount field value.
  • currency must be same for totalAmount, billAmount, and paidAmount. currency field may vary with these values: IDR, SGD, USD.
  • freeTexts field defined by partner and will be displayed in channel's screen. This field must be defined in two languages. The occurences of freeTexts field in payment flag should not be greater than 9
  • If a system error occurs and causing BCA to send double flagging request with the same X-EXTERNAL-ID and paymentRequestId, then partner can send responseCode
    "4042518" and responseMessage "Inconsistent Request", with paymentFlagStatus and paymentFlagReason according to the results of the first request
  • If BCA sends a flagging request with the same X-EXTERNAL-ID but a different paymentRequestId, then partner can send responseCode "4092500" and responseMessage "Conflict".
  • The usage of additional info is to be discussed with BCA first.

Expected Response from Partner. 
Scenario responseCode responseMessage paymentFlagStatus
Access Token Invalid 4012501 "Invalid Token (B2B)" -
Unauthorized . Signature 4012500 "Unauthorized. [Signature]" -
Unauthorized . stringToSign 4012500 "Unauthorized. [Signature]" -
Unauthorized . Unknown Client  4012500 "Unauthorized. [Unknown client]" -
Missing Mandatory Field {} …, etc 4002502 "Invalid Mandatory Field {........}"  01
Invalid Field Format {} .., etc 4002501 "Invalid Field Format {........}"  01
Cannot use the same X-EXTERNAL-ID 4092500 "Conflict"  01
Input no Virtual Account Valid 2002500 "Success"  00
Input no Virtual Account Valid sudah lunas 4042514 "Paid Bill"  01
Duplicate XEXTERNAL-ID and paymentRequestId 4042518 "Inconsistent Request" 00/01
Input no Virtual Account Valid kadaluarsa 4042519 "Invalid Bill/Virtual Account" 01
Input no Virtual Account tidak terdaftar 4042512 "Invalid Bill/Virtual Account [Reason]"  01
Request Parsing Error 4002500 "Bad Request"  01
Response Parsing Error 4002500 "Bad Request"  01

curl –X POST https://copartners.com/openapi/v1.0/transfer-va/payment

Request

-H 'CHANNEL-ID':'95231'
-H 'X-PARTNER-ID': '12345'
-H 'X-EXTERNAL-ID': '123456789012345678901234567890123456'

-d '
{
	"partnerServiceId": " 12345",
	"customerNo": "123456789012345678",
	"virtualAccountNo": " 12345123456789012345678",
	"virtualAccountName": "Jokul Doe",
	"paymentRequestId": "202202111031031234500001136962",
	"channelCode": 6011,
	"paidAmount": {
		"value": "100000.00",
		"currency": "IDR"
	},
	"referenceNo": "00113696201",
	"flagAdvise": "N",
	"subCompany": "00000",
	"billDetails": [
	{
		"billNo": "123456789012345678",
		"billDescription": {
			"english": "Maintenance",
			"indonesia": "Pemeliharaan"
		},
		"billSubCompany": "00000",
		"billAmount": {
			"value": "100000.00",
			"currency": "IDR"
		},
		"additionalInfo": {},
		"billReferenceNo": "00113696201"
	}
	],
	"additionalInfo": {}
}'

Sample for multi settlement (non multi bills/multi bills) transaction:

-H 'CHANNEL-ID':'95231'
-H 'X-PARTNER-ID': '12345'
-H 'X-EXTERNAL-ID': '123456789012345678901234567890123456'

-d '
{
	"partnerServiceId": " 12345",
	"customerNo": "123456789012345678",
	"virtualAccountNo": " 12345123456789012345678",
	"virtualAccountName": "Jokul Doe",
	"paymentRequestId": "202202111031031234500001136962",
	"channelCode": 6011,
	"hashedSourceAccountNo": "",
	"sourceBankCode": "014",
	"paidAmount": {
		"value": "100000.00",
		"currency": "IDR"
	},
	"cumulativePaymentAmount": null,
	"paidBills": "",
		"totalAmount": {
		"value": "100000.00",
		"currency": "IDR"
	},
	"trxDateTime": "2022-02-12T17:29:57+07:00",
	"referenceNo": "",
	"flagAdvise": "N",
	"subCompany": "",
	"billDetails": [
	{
		"billNo": "123456789012345678",
		"billDescription": {
			"english": "Maintenance",
			"indonesia": "Pemeliharaan"
		},
		"billSubCompany": "00000",
		"billAmount": {
			"value": "50000.00",
			"currency": "IDR"
		},
		"additionalInfo": {},
		"billReferenceNo": "00113696201"
	},
	{
		"billNo": "223456789012345678",
		"billDescription": {
			"english": "Electricity",
			"indonesia": "Listrik"
		},
		"billSubCompany": "00001",
		"billAmount": {
			"value": "20000.00",
			"currency": "IDR"
		},
		"additionalInfo": {},
		"billReferenceNo": "00213696201"
	},
	{
		"billNo": "323456789012345678",
		"billDescription": {
			"english": "Water",
			"indonesia": "Air"
		},
		"billSubCompany": "00002",
		"billAmount": {
			"value": "30000.00",
			"currency": "IDR"
		},
		"additionalInfo": {},
		"billReferenceNo": "00313696201"
	}
	],
	"additionalInfo": {}
}'

curl –X POST https://copartners.com/openapi/v1.0/transfer-va/payment

Response

{
	"responseCode": "2002500",
	"responseMessage": "Successful",
	"virtualAccountData": {
		"paymentFlagReason": {
			"english": "Success",
			"indonesia": "Sukses"
		},
		"partnerServiceId": " 12345",
		"customerNo": "123456789012345678",
		"virtualAccountName": "Jokul Doe",
		"paymentRequestId": "202202111031031234500001136962",
		"paidAmount": {
			"value": "100000.00",
			"currency": "IDR"
		},
		"totalAmount": {
			"value": "100000.00",
			"currency": "IDR"
		},
		"trxDateTime": "2022-02-12T17:29:57+07:00",
		"referenceNo": "00113696201",
		"paymentFlagStatus": "00",
		"billDetails": [
		{
			"billerReferenceId": "00113696201",
			"billNo": "123456789012345678",
			"billDescription": {
				"english": "Maintenance",
				"indonesia": "Pemeliharaan"
			},
			"billSubCompany": "00000",
			"billAmount": {
				"value": "100000.00",
				"currency": "IDR"
			},
			"additionalInfo": {},
			"status": "00",
			"reason": {
				"english": "Success",
				"indonesia": "Sukses"
			}
		}
		],
	}
	"additionalInfo": 
	{
		"additionalInfo1": 
		{
			"label": 
			{
				"indonesia": "Unit",
				"english": "Unit"
			},
			"value": 
			{
				"indonesia": "10C",
				"english": "10C"
			}
		},
		"additionalInfo2": 
		{
			"label": 
			{
				"indonesia": "Bulan",
				"english": "Month"
			},
			"value": 
			{
				"indonesia": "Januari",
				"english": "January"
			}
		}
	}
}


Sample for multi settlement (non multi bills/multi bills) transaction:

{
	"responseCode": "2002500",
	"responseMessage": "Successful",
	"virtualAccountData": {
		"paymentFlagReason": {
			"english": "Success",
			"indonesia": "Sukses"
		},
		"partnerServiceId": " 12345",
		"virtualAccountNo": " 12345123456789012345678",
		"virtualAccountName": "Jokul Doe",
		"paymentRequestId": "202202111031031234500001136962",
		"paidAmount": {
			"value": "100000.00",
			"currency": "IDR"
		},
		"totalAmount": {
			"value": "100000.00",
			"currency": "IDR"
		},
		"trxDateTime": "2022-02-12T17:29:57+07:00",
		"referenceNo": "",
		"paymentFlagStatus": "00",
		"billDetails": [
		{
			"billerReferenceId": "00113696201",
			"billNo": "123456789012345678",
			"billDescription": {
				"english": "Maintenance",
				"indonesia": "Pemeliharaan"
			},
			"billSubCompany": "00000",
			"billAmount": {
				"value": "50000.00",
				"currency": "IDR"
			},
			"additionalInfo": {},
			"status": "00",
			"reason": {
				"english": "Success",
				"indonesia": "Sukses"
			}
		},
		{
			"billerReferenceId": "00213696201",
			"billNo": "223456789012345678",
			"billDescription": {
				"english": "Electricity",
				"indonesia": "Listrik"
			},
			"billSubCompany": "00001",
			"billAmount": {
				"value": "20000.00",
				"currency": "IDR"
			},
			"additionalInfo": {},
			"status": "00",
			"reason": {
				"english": "Success",
				"indonesia": "Sukses"
			}
		},
		{
			"billerReferenceId": "00313696201",
			"billNo": "323456789012345678",
			"billDescription": {
				"english": "Water",
				"indonesia": "Air"
			},
			"billSubCompany": "00002",
			"billAmount": {
				"value": "30000.00",
				"currency": "IDR"
			},
			"additionalInfo": {},
			"status": "00",
			"reason": {
				"english": "Success",
				"indonesia": "Sukses"
			}
		}
		],
	}
	"additionalInfo": 
	{
		"additionalInfo1": 
		{
			"label": 
			{
				"indonesia": "Unit",
				"english": "Unit"
			},
			"value": 
			{
				"indonesia": "10C",
				"english": "10C"
			}
		},
		"additionalInfo2": 
		{
			"label": 
			{
				"indonesia": "Bulan",
				"english": "Month"
			},
			"value": 
			{
				"indonesia": "Januari",
				"english": "January"
			}
		}
	}
}

Transfer ke Rekening Virtual Account BCA

1. SNAP Virtual Account Inquiry Payment to VA from Intrabank

This service is used to VA transfer BillPresentment.

 
Additional Headers:
Field Params Type Data Type  Length Type Mandatory Description
CHANNEL-ID Header String(5)   Channel’ Identifier using WSID KlikBCA Bisnis (95051)
X-PARTNER-ID Header String(32)   Partner ID using Corporate ID KlikBCA Bisnis
X-EXTERNAL-ID Header String (32)   Y Numeric String.
Reference number that should be unique in the same day

Payload:
 
Field Data Type Length Type Mandatory  Format Description
virtualAccountNo String (28) Max Y Alphanumeric Mandatory in BCA.
partnerServiceId (8 digit left padding space) + customerNo (up to 20 digit)
In BCA, virtualAccountNo max length is 26 (partnerServiceId(8 digits)+customerNo(18 digits)).
Result of the request will contains following information:

Response:
 
Field Data Type Length Type Mandatory  Format Description
responseCode String (7) Fixed Y - Response code
responseMessage String (150) Max Y - Response message description
virtualAccountData Object   Y    
   virtualAccountNo String (28) Max Y Alphanumeric partnerServiceId (8 digit left padding space) + customerNo (up to 20 digits)
   virtualAccountName String (255) Max Y Alphanumeric Customer name
   totalAmount Array of Objects   N    
      value String (16.2) Max Y   Send by BCA.
Total amount with 2 decimal
In BCA, totalAmount max length is 13.2 digits.
      currency String (3) Fixed Y ISO-4217 Send by BCA.
Currency of amount based on ISO 4217 
   billDetails Array of Objects   N   Array with maximum 24 Objects 
      billDescription Object   N   Send by BCA.
Bill Description
         english String (18) Max N Alphanumeric Send by BCA.
Bill Description in English
         indonesia String (18) Max N Alphanumeric Send by BCA
Bill Description in Bahasa
      billAmount Array of Objects   N    
         value String (16.2)    N   Send by BCA.
Transaction amount. Nominal inputted by Customer with 2 decimal
In BCA, billAmount max length is 13.2 digits. 
         currency String (3)  Max Y ISO-4217 Currency
      additionalInfo String  Max N Alphanumeric  Additional information for custom use for each bill
   freeTexts String   N   Send by BCA.
Array with maximum 25 objects
      english String (32) Max N Alphanumeric Will be shown in Channel 
      indonesia String (32) Max N Alphanumeric Will be shown in Channel 
   virtualAccountTrxType String (1) Fixed N   Type of Virtual Account that send by BCA is the highlighted transaction type.
1. Closed Payment (C): Tagihan muncul, harus dibayar sesuai tagihan (Fixed Bill)
2. Open Payment (O): Tagihan tidak muncul (No Bill)
3. Partial (I): Sisa tagihan
4. Minimum (M): Dibayar hanya sekali dengan nominal minimum namun tidak boleh lebih kecil dari tagihan.
5. Maximum (L): Dibayar hanya sekali, tidak boleh lebih besar dari tagihan, dan tagihan muncul
6. Open Minimum (N): Dibayar berkali2 dengan nominal minimum namun tidak boleh lebih kecil dari tagihan dan muncul tagihannya.
7. Open Maximum (X): Dibayar berkali2 dengan nominal maksimum (cumulative) namun tidak boleh lebih besar dari tagihan dan muncul tagihannya.
8. Bill Variable (V): Bisa dibayar sekail, bisa lebih besar / lebih kecil dari tagihan, dan tagihan muncul.
9. Multi Bill Variable (W)
   feeAmount Array of Object   N    
      value String (16.2) Max Y   Send by BCA.
Nominal inputted by customer with 2 decimal.
In BCA, totalAmount max length is 13.2 digits. 
      currency String (3) Fixed Y ISO-4217 Currency
   productName String (30)  Max N Alphanumeric Send by BCA.
Product category

Here is the list of error codes that can be returned. 
HTTP Code Error Code Error Message
400 4003200 Bad request
400 4003201 Invalid Field Format {field name} 
400 4003202 Invalid Mandatory Field {field name}
401 4013200 Invalid token (B2B)
401 4013201 Unauthorized. [Reason] 
403 4033201 Feature Not Allowed
404 4043212 Invalid Bill
404 4043214 Paid Bills
409 4093211 Conflict
429 4293200 Too Many Requests 
500 5003200 General Error
500 5003200 Internal Server Error
504 5043200 Timeout

curl –X POST https://sandbox.bca.co.id/openapi/v1.0/transfer-va/inquiry-intrabank

Request

-H 'CHANNEL-ID':'95051'
-H 'X-PARTNER-ID': '1234567890'
-H 'X-EXTERNAL-ID': '41807553358950093184162180797837'
-d '
{
	"virtualAccountNo" : " 0008899912345678901234567890",
	"amount" : {
		"value" : "50000.00",
		"currency" : "IDR"
	}
}'

curl –X POST https://sandbox.bca.co.id/openapi/v1.0/transfer-va/inquiry-intrabank

Response

{
	"responseCode": "2003200",
	"responseMessage": "Successful",
	"virtualAccountData": {
		"virtualAccountNo": "0008889912345678901234567890",
		"virtualAccountName": "Jokul Doe",
		"totalAmount": {
			"value" : "88000.00",
			"currency" : "IDR"
		},
		"billDetails": [
		{
			"billDescription": {
				"english": "Maintenance",
				"indonesian": "Pemeliharaan"
			},
			"billAmount": {
				"value" : "88000.00",
				"currency" : "IDR"
			}
		}
		],
		freeTexts": [
		{
			"english": "Free text",
			"indonesia": "Tulisan bebas"
		}
		],
		"virtualAccountTrxType": "C",
		"feeAmount": {
			"value" : "1000.00",
			"currency" : "IDR"
		},
		"productName": "OVO"
	}
}
2. SNAP Virtual Account Notification Payment to VA from Intrabank

This service is used to Notification VA transfer.

 
Additional Headers:
Field Params Type Data Type Mandatory Format Description
CHANNEL-ID Header String(5) 95051 Channel’ Identifier using WSID KlikBCA Bisnis (95051)
X-PARTNER-ID Header String(32) - Partner client id using KlikBCA Bisnis’s Corporate ID
X-EXTERNAL-ID Header String(32) Y Alphanumeric Numeric String. Reference number that should be unique in the same day

Payload:
 
Field Data Type Mandatory  Format Description
virtualAccountNo String (28) Y Alphanumeric Send by BCA. partnerServiceId (8 digit left padding space) + customerNo (up to 20 digits)
In BCA, virtualAccountNo max length is 26 (partnerServiceId (8 digits) + customerNo (18 digits)).
partnerReferenceNo String (128) Y - Send by BCA.
Unique identifier for this Payment.
Generated by Partner. In BCA, partnerReferenceNo max length is 64 digits.
trxDateTime Date (25) N - Send by BCA.
PJP internal system datetime with timezone, which follows the ISO-8601 standard 
paymentStatus String (20) N Alphanumeric Send by BCA.
Status of payment request
paymentFlagReason Objects N - Reason for Payment Status multi language 
   english String (200) N Alphanumeric Send by BCA.
Reason for Payment Status in English
   indonesia String (200) N Alphanumeric Send by BCA.
Reason for Payment Status in Bahasa 
Result of the request will contains following information:

Response:
 
Field Data Type Length Type Mandatory  Format Description
responseCode String (7) Fixed Y - Response code
responseMessage String (150) Max Y - Response description
virtualAccountData Object   Y    
   virtualAccountNo String (28) Max Y Alphanumeric Mandatory in BCA according to request input.
partnerServiceId (8 digit left padding space) + customerNo (up to 20 digits).
In BCA, virtualAccountNo max length is 26 (partnerServiceId (8 digits) + customerNo (18 digits)).
   partnerReferenceNo String (128) Max Y - Mandatory in BCA according to request input.
From Payment request 

The following structure should be returned only when not-success with additional related HTTP status of the response if applicable.
The copartners define the responseCode by themselves. For the multi-languageresponseMessage, it allowed to use same value if multi-language are not possible

{
"responseCode" : "Error Code",
"responseMessage" : "Error Message",
"virtualAccountData":
{
"virtualAccountNo": "",
"partnerReferenceNo": ""
}
}

curl –X POST https://copartners.com/openapi/v1.0/transfer-va/notify-payment-intrabank

Request

-H 'CHANNEL-ID':'95051'
-H 'X-PARTNER-ID': 'KBCABCINDO'
-H 'X-EXTERNAL-ID': '41807553358950093184162180797837'
-d '
{
	"virtualAccountNo": " 8889912345678901234567890",
	"partnerReferenceNo": "12345678",
	"trxDateTime": "2020-12-21T10:30:24+07:00",
	"paymentStatus": "Success",
	"paymentFlagReason": {
		"english": "Success",
		"indonesia": "Sukses"
	}
}'

curl –X POST https://copartners.com/openapi/v1.0/transfer-va/notify-payment-intrabank

Response

{
	"responseCode": 2003400,
	"responseMessage": "Successful",
	"virtualAccountData": {
		"virtualAccountNo": " 8889912345678901234567890",
		"partnerReferenceNo": "12345678"
	}
}
3. SNAP Virtual Account Payment to VA from Intrabank

This service is used to VA transfer.

 
Additional Headers:
Field Params Type Data Type  Length Type Mandatory Format Description
CHANNEL-ID Header String(5) Fixed 95051 Channel’ Identifier using WSID KlikBCA Bisnis (95051)
X-PARTNER-ID Header String(32) Max   Partner client id using KlikBCA Bisnis’s WSID (95051)

Payload:
 
Field Data Type Length Type Mandatory  Format Description
virtualAccountNo String (28) Max Y Alphanumeric Mandatory in BCA.
partnerServiceId (8 digit left padding space) + customerNo (up to 20 digit)
In BCA, virtualAccountNo max length is 26 (partnerServiceId(8 digits)+customerNo(18 digits)).
virtualAccountEmail String (255) Max N - Optional BCA
Customer email with max length is 255 digits.
sourceAccountNo String (32) Max N Numeric Source account number
partnerReferenceNo String (128) Max Y - Mandatory in BCA.
Unique identifier for this Payment. Generated by PJP
paidAmount Object   Y    
   value String (16.2) Max Y   Mandatory in BCA.
Paid amount with 2 decimal In BCA, partnerReferen ceNumber max length is 13.2 digits
   currency String (3) Fixed Y ISO-4217 Mandatory in BCA.
Currency of amount based on ISO 4217
trxDateTime Date (25) Fixed N - Mandatory in BCA.
PJP internal system datetime with timezone, which follows the ISO-8601 standard
Result of the request will contains following information:

Response:
 
Field Data Type Length Type Mandatory  Format Description
responseCode String (7) Fixed Y - Response code
responseMessage String (150) Max Y - Response message description
virtualAccountData Object   Y    
   virtualAccountNo String (28) Max Y Alphanumeric partnerServiceId (8 digit left padding space) + customerNo (up to 20 digits)
   virtualAccountName String (255) Max Y Alphanumeric Customer name
   virtualAccountEmail String (255) Max N   Customer email
   sourceAccountNo String (32) Max N - Source account number
   partnerReferenceNo String (128) Max Y - From Payment request
   referenceNo String (128) Max N Numeric Generated by PJP
   paidAmount Object   N   -
      value String (16.2) Max Y   Send by BCA according to the request input.
From Payment request with max length (13.2). 
      currency String (3) Fixed Y ISO-4217 Send by BCA according to the request input.
Currency from Payment request.
   paidAmount Object   N    
      value String (16.2) Max Y   Send by BCA according to the request input.
From Payment request with max length (13.2).
      currency String (3) Fixed Y ISO-4217 Send by BCA.
Currency
   trxDateTime Date (25) Max N   From Payment Request 
   billDetails Array of Objects   N   Array with maximum 24 Objects 
      billDescription JSON Object   N   Bill Description
         english String (18) Max N Alphanumeric Bill Description in English
         indonesia String (18) Max N Alphanumeric Bill Description in Bahasa
      billAmount Array of Objects   N    
         value String (16.2)    N   Send by BCA.
Nominal inputted by Customer with 2 decimal
In BCA, billAmount max length is (13.2) digits.
         currency String (3)  Max Y ISO-4217 Currency
   freeTexts Array of Objects   N - From Inquiry response
      english String (32) Max N Alphanumeric From Inquiry response
      indonesia String (32) Max N Alphanumeric From Inquiry response
   feeAmount Object   N    
      value String (16.2) Max Y   Send by BCA.
Nominal inputted by customer with 2 decimal.
In BCA, totalAmount max length is 13.2 digits. 
      currency String (3) Fixed Y ISO-4217 Send by BCA.
Currency
   productName String (30)  Max N Alphanumeric Send by BCA.
Product category

Here is the list of error codes that can be returned. 
HTTP Code Error Code Error Message
400 4003300 Bad request
400 4003301 Invalid Field Format {field name} 
400 4003302 Invalid Mandatory Field {field name}
401 4013300 Unauthorized. [Reason]
401 4013301 Invalid token (B2B)
403 4033301 Feature Not Allowed
403 4033302 Exceeds Transaction Amount Limit
403 4033304 Activity Count Limit Exceeded
404 4043312 Invalid Bill
404 4043314 Paid Bills
409 4093311 Conflict
429 4293300 Too Many Requests 
500 5003301 Internal Server Error
500 5003300 General Error
504 5043300 Timeout

curl –X POST https://sandbox.bca.co.id/openapi/v1.0/transfer-va/payment-intrabank

Request

-H 'CHANNEL-ID':'95051'
-H 'X-PARTNER-ID': 'KBCABCINDO'
-H 'X-EXTERNAL-ID': '41807553358950093184162180797837'
-d '
{
	"virtualAccountNo": " 00088999123456789012345678900008899912345678901234567890",
	"virtualAccountEmail": "john@email.com",
	"sourceAccountNo": "1234567890",
	"partnerReferenceNo": "12345678",
	"paidAmount": {
		"value": "50000.00",
		"currency": "IDR"
	}
	 "trxDateTime": "2020-12-21T10:30:24+07:00"
}'

curl –X POST https://sandbox.bca.co.id/openapi/v1.0/transfer-va/payment-intrabank

Response

{
	"responseCode": 2023300,
	"responseMessage": "Request In Progress",
	"virtualAccountData": 
	{
		"virtualAccountNo": "0008889912345678901234567890",
		"virtualAccountName": "Jokul Doe",
		"virtualAccountEmail": "john@email.com",
		"sourceAccountNo": "1234567890",
		"partnerReferenceNo": "12345678",
		"referenceNo": "12345678901234",
		"paidAmount": 
		{
			"value": "55000.00",
			"currency": "IDR"
		},
		"totalAmount": 
		{
			"value": "55000.00",
			"currency": "IDR"
		},
		"trxDateTime": "2020-12-21T10:30:24+07:00",
		"billDetails": [
		{
			"billDescription": 
			{
				"english": "Maintenance",
				"indonesia": "Pemeliharaan"
			},
			"billAmount": [
			{
				"value": "55000.00",
				"currency": "IDR"
			}]
		}],
		"freeTexts": [
		{
			"english": "Free text",
			"Indonesia": "Tulisan bebas"
		}
		],
		"feeAmount": 
		{
			"value": "5000.00",
			"currency": "IDR"
		},
		"productName": "OVO"
	}
}

QRIS MPM

1. SNAP QR MPM Generate QR

This service is used to generate QRIS.

 
Additional Headers:
Field Params Type Data Type Length Type Mandatory Description
CHANNEL-ID Header String(5) Fixed Channel’s identifier using EDC’s WSID (95251)
X-PARTNER-ID Header String(36) Max Length data in BCA = 15
Unique ID for a partner
- Merchant Reguler: MerchantID (9) 
- Merchant Partnership: PartnerName (15) 

Payload:
 
Field Data Type Length Type Mandatory  Format Description
partnerReferenceNo String(64)  Max  N Alphanumeric  Mandatory in BCA.
Transaction identifier on service from partner
amount Object   N   Mandatory in BCA.

Net amount of the (exclude convenience fee)
     value String (16.2)
Max  Numeric 10000.00  Length data in BCA = 13.2
BCA will send response amount with format value Numeric (13.2)
Example : IDR 10.000,- will be placed with 10000.00 
     currency String (3)
Fixed Y ISO 4217 IDR
Currency code
merchantId
String (64)
Max N Numeric Mandatory in BCA.
Length in BCA data = 9
Merchant ID from BCA
- Merchant direct : merchantID
- Merchant facilitator : merchantID 
- Merchant aggregator : merchantID partner aggregator 
subMerchantId
String (32)
Max N Alphanumeric Conditional in BCA
submerchantID for Merchant partner aggregator only 
terminalId
String (16)
Max N Alphanumeric Mandatory in BCA
Terminal ID
Length data in BCA = 8
Can be :
- TID BCA (merchant direct)
- TID non BCA (merchant aggregator/facilitator)
 validityPeriod String (25) Max N 2009-07-03T12:08:56 +07:00 Optional in BCA
The time when the QRIS valid
Minimal : created time + 5 mins
Maximal : created time + 120 mins
If blank, default expired time : 60 mins
additionalInfo
Object   N   Additional Information
     convenienceFee String (10.2)
Max N Numeric Convenience fee or tips
     partnerMerchantType String (4)
Max N Alphanumeric Conditional in BCA for Merchant partner only
     terminalLocationName String (25)
Max N Alphanumeric Conditional in BCA
Merchant name for Merchant partner aggregator only
Result of the request will contains following information:

Response:
 
Field DataType Length Type Mandatory Format Description
responseCode
String(7)  Fixed Y AAABBCC
Error code to identify transaction status (success or failed)
Format: AAAABBCC
AAA : HTTP Code
BB : Service Code
CC : Case Code Service Code Generate QRIS : 47 Example : 2004700
responseMessage
String (150)
Max Y Alphanumeric Error message in English
Example : successful
referenceNo String (64)
Max N Alphanumeric Conditional in BCA length data in BCA : 36
Transaction identifier on service provider system (generate by QR server) #created if request generate QR from merchant is valid
partnerReferenceNo
String (64)    N Alphanumeric Transaction identifier on service from partner
qrImage
String Max N Alphanumeric Length = unlimited
Encode string (Base64) from QR image QR String MPM
#created if generate QR Success only
merchantName
String (25)
Max N Alphanumeric Mandatory in BCA
Merchant name for print receipt (outlet name)
terminalId
String (8) 
  N
Alphanumeric
Mandatory in BCA
Length data in BCA = 8
terminalId BCA/non BCA
Error
HTTP Code Error Code Error Message
400 4004700 Bad request
400 4004701 Invalid Field Format {field name}
400 4004702 Invalid Mandatory Field {field name}
401 4014700 Unauthorized. [Reason]
401 4014701 Invalid token (B2B)
404 4044708 Invalid Merchant
404 4044701 Transaction Not Found
403 4034706 Feature Not Allowed At This Time
404 4044718 Inconsistent Request [X-PARTNER-ID & merchantID not match]
409  4094700 Conflict X-EXTERNAL-ID 
409  4094701  Duplicate partnerReferenceNo 
500 5004700 General Error
500 5004701 Internal Server Error
504 5044700 Timeout

curl –X POST https://sandbox.bca.co.id/openapi/v1.0/qr/qr-mpm-generate

Request

-H 'CHANNEL-ID':'95251'
-H 'X-PARTNER-ID': '1234567890'
-d '
{
 "partnerReferenceNo": "2020102900000000000001",
 "amount": {
	"value": "100000.00",
	"currency": "IDR"
 },
 "merchantId": "23489182303312",
 "subMerchantId": "23489182303312",
 "storeId": null,
 "terminalId": "213141251124",
 "validityPeriod": "2022-04-08T10:10:10+07:00",
 "additionalInfo": {
	 "convenienceFee": "0.00",
	 "partnerMerchantType": "SA",
	 "terminalLocationName": "Bakso Malang"
 }
}'

curl –X POST https://sandbox.bca.co.id/openapi/v1.0/qr/qr-mpm-generate

Response

{
	"responseCode": "2004700",
	"responseMessage": "Request has been processed successfully",
	"referenceNo": "43057a74-e179-49ed-b119-b004a3d522ec",
	"partnerReferenceNo": "2020102900000000000001"
	"qrImage":
		"iVBORw0KGgoAAAANSUhEUgAAASwAAAF8CAYAAAB184aCAAAW2klEQVR42u3dv67tRhUH4CN4FEq6pKJJkS
		41kXgboE2Xt0DwGCmSBsEDpE9xlSJVqKIDc9FCw8je2/aeGc/Y30+ycnPO/uttf2fN2mP77f0/+dfPP1ssF
		svQS8pb+sePHz5YIRaLZdgljHrL9RIRGTHhFLBEBFgiIsASEWCJiABLRARYIgIsERFgiYgAS0SAJSICLBER
		YIkIsEREgCUi7x9PnZKW2DEFWCLD7ogJq++++PLdvggskWnACrQEWCJDJ2H1/aefQwtYInPskD989fX/Ki0
		BlsiwSVjFsrfSSveJpj2wRKTpjpjyyzfffkQqRyv9N7/No+Fk3BZYItJlh4zhYOCVo/UMrKsPI4ElMihaCa
		pA66dPPlscHsb/J9Ditlfel28BVv6+4t9XH+vLvMnxydGKSmsJrbwiW0MNWAPnj3/68/uvfv3r99/89ncf/
		7u0iIy4Q8a3hAmghFSJVvr32nAwel/llZKBN9VIfK8BK/x+XbS+rsbTE74AFrGmT1kdaL7
		//8g//9/P0/2lJFenf//HPxY0kv/+zyjXfjuKx976+pdfxSsUQr+PZfc/eB+IQnbSO07/zuVhlpZX/PJarz
		5K/BVjRz4ol9bWWfv5oyR/31WXtsWL913yOR6977XexfvI+SHmbRzt//vOt/cLAqnx9Ca6jw/u117FUeYyy
		/cfryPtYecO9HBpGz6oE62qV1a3AKhvvo4LV4jnynT7WRwAUlU9+n1hXS9jlaMT2kq/DfBhSfuFRru+y+l1
		63nJdpNuk58h/Fqdk2bOO0/su31P+sxEq87xyioOiS6xiKauvqzbcLw9WDCuWqoM7gRXvcwmC/N/5Trt22y
		UIS5iWHi8qqHTbJZziscr3kD92+nfaRmN4l6OV3+bZ+4rhb37buE362SithLVJpOVSonb13t7lK6wRwVoaZ
		q39/FWwAotyiBSVZnnfsn9UDlmXIIt1WVZze4at8VpzYMrHS78rK+ZYZ9H3KcFaqyKXqq6RkkMVUxZyqMom
		fDlxVIU1MV5LYO25z9Gm7FrlsBesR3/1t7ympceMybPljl32i8r3kHb4tA7X+k5ltVNWWIHSsx5Wuu3S+ss
		fr3zdUW2tvY74fVlhrQ1Jz0zZx8qBWlryCacBXNwfWDcFa2/Wduq9Q8ItTedHn1/a8cvKIh5zqdoqH6uEI+
		6bT9ANVNd6SnlFG8O7RyiWQ9p43qUvK0qwSoyXqqmlIeFo2TIkzKutvAoLtIB1EbCWNv5nmDyaOb+0LN3+U
		YVVa9j57LOM13X0EKVa20qrbe6Vxx1pP0ifT47Powprqa812vsBVgWw8r5Iz4Z4r6a7zLljRspJoc+WpeMN
		gXUhsPJhDLBk1B310ZAwx+rq68GQsOhntB6uPXqOFt8SjjTcOqtKmeG9lftg/u9nw8GrNdeBtQBWavQmtNI
		Sc3Mi8fNYHj3WEhjpsdP6TP+NyY3x72cVVvnca8tSQ38NrHTbWF49tU66/6iHPcV7jI07
		//+tiW8Qa72eo7P0Y7spK6ul6Qw5cOWXFrGtp5/NfkIA3xI++Au7tD6ezZxemjaw9jw1qqItYK0dWvPKTvh
		Kw75l4rOIuWRl5bxnndaouPZ8tvmRAzF1JMcqoIoGfPxBLCfjxv/HvLQAa89xncAaCKyY37O07K2w8tuvTU
		dYWq+PwIpqLyq
		//ODk/GePJr4GLPls/3waw9JUgzi0Jp+RHvOt8m8V84Og8zli+dSJeK58R8only4dppM/b1Qm5W3i9/G45S
		TX/FvZfKpEDm1ZZZc/y19zer/le8q/rFk7ZrWcOLsl+TpfmjQalVTcbum+8VnlaOXvo1blCKyOYB1piD+a1
		/MMrbW/aq37ZDFsjMeMsyCUc5rKQ1eWpmQsTQLNf54eNyaExuPlw9Zy540dc+l54/HiNjmWS69nDayluVb5
		8+aPl8/DerQuypn4W9/TVrDS/cvTxiwdYRDz2OJ3OVA5WHE7YF0YrKXqZwtYe9Dq0XQvwSorv7U5YuW/y4O
		kyyFhPF753vOKrjzrwtrhNWWlWSL2DIMclmdD97x6evT+8/eRg5wP4Zbe0x6w4rXEcz1qTQQ8AVs+LMz/ne
		MFLGA93BDXJpGeAVY+E3wJ1zgPVg5TPvN9Dax8580xyQ9/KRHPh2b5ELIEKx4jXtdesJaeN15zDm78f/wsH
		/7mz5FXjUtgxetdu/9WsGKIWw7t8jNhlBVUOfzLYYrPKH+8mffzW4D16Nu0veeqWvoruuc5c7SWUFw6rGXv
		kp8+J6+wlr4hWquwtoAV6yJ+X1Yw+fPFcGfr8+brOh92PgOrPMRmCY+8Ystfc3l40lLFnD9HgLf2+K9UWLF
		zxjA2r7RyoGLJvwApK6m8NwisC2apyplx3eRgnfnHYulsEaN93iM8RglKDlb++M8O1M7BKoeMwLogVo8qrD
		M36KNgbX3uR7crpzBsPdVwPpR65fl7rr+962tp3zl6Guf8m8L8IO2ygloDKz1vCVY5jNTDukHfa7YPNDZS5
		7WfKzHMzOGKvlZ8rtFHWwN0bbJsPs0FWBcHa9R186yfNfsGerfKfs9trnzBVGCJXBCxO64TYImADlgiAiBg
		iQiwgCUiwBIRAZaIAEtEBFgiIsASEWCJiABLRARYIgIsERFgiYgAS0SAJSICLBERYIkIsEREgCUiAiwRAZa
		ICLBERIAlIsASEQHW3fP29rZpeXa/R4999HePbvPq+936WgRYMjlYe1F7BavamABLgHVBwPb+fisER6qumq
		CcARYQgSUn7Fxbh4hrj1XzsYElwJLDfadnQL3S79qz028dzu65z6Pbvjq8FmDJYGDtgaAFWM+qvKNfNGx5v
		8AClgDr8Ps52ms7ehtDQmCJIeHhYeGrYO19bGABSyYEq/Zj7xkOAkuAdWOwWkxrODKf68hrqDkk3Po6gTUp
		WH/569+slYnB2rtTPmtw197ha/eitvwMWBcF68cPH96/++LL9x+++vr/qq34twpsDrAeDY9qAPTKN2t7hm1
		r/bUa3xJuuZ9MAtZPn3z28b+/fPOtNTQpWGs7fq1+2Cs79xpGW25Tax5W7fckJw0JAyxoichUYAVahoIiMv
		SQsERLpSUiw1dYsXz/6efQEpHxKyxoichUFVaOlp6WiEwBlkpLRKYYEkJLRKarsJbQMkwUkWErrByttUN5R
		ESGAitHS0Rk2CFhuZSVlojIcBVWiZaIyBRgLR1/qOoSkeGGhEtowUpEhq6w9LREZKoKy+lpRGQ6sMyKF5Ep
		hoRrB02ruERk2ArL8FBEpgIrVViGhyIyxZBQT0tEphoSOtODiExXYeVopecUEekCVqqS0v1eWVRYItJlSJh
		XSPm0hWcIQUpEuldYR4d0Do4WkVMrLBGRIcGKeVXAEpHLDwl75e3trely5mt+dL8az3308feso63vr/V6P/
		rcLbabGbdZQ0JgAQtYwAIWsIAFLEPCCcDq8Zg1NvoaO9ks+NeArgUgvbebUZ5bhQUsYAELWCosYAELWMACF
		rCABSxDwvHAGrW53eL9nLnR1/gMtkJXA4k9n3/rpvtI26wKC1jAAhawgAUsYAHLkHDCQ3N6f/g95+vU6m/V
		eM21n/soKC124hafCbBUWMACFrBUWCosYAELWMACFrCABSxDwlE+/Bo7RAtIWzSwezaiH922FfjAmrzCAha
		wgAUsFRawgAUsYAFrrENzep+iZpR+UOv7nX3KlRrP4dAcQ0JgAQtYKixgAQtYwAIWsIAFLGDde0jY43SztU
		8vc+bvakDd+3dXW89OkXzjCgtYwAKWme7AAhawgGVIeOW02InP7K20fl1nnl6mxalhxJAQWMAC1p3Acql6Y
		AELWCosARawgAWs13aIGo313k3Q1lcPPtpQ7n0sYe3XXAv72nPcWvzOkBBYwAIWsFRYwAIWsIB10x5Wjw+4
		9c5fA7PWPZgeO3jL991jjl6Ls52ahwUsYAELWCosYAELWMBSYXXfyVrs/D3P0NkCrNavq0U/rda20fN1tfh
		8gAUsYAELWIaEwAIWsFRYwAIWsIAFrPGa7j0vsnn2fKcj66XWDlFjblKNpnuP+U49zyTb+4+NISGwgAUsYP
		WosGY8WwOwgAUsFdZlkKq90fS+KGntnb/H3LHWn/eZ/c0zD79xaA6wgAUsYBkSAgtYwAKWCgtYwAKWCus6Z
		xzteZqQHjtZ62MQe5/ttDWCrY/na7EuW78uQ0JgAQtYwDIkBBawgKXCchGKLn2kGv2GWpCeeTHOMw97aT2n
		qfUpa+5y8VRgAQtYwDIkBBawgAUsFRawgAUsYL27ak43lHrstDXAOrNJ3fpYwh7rsnbD/+j6ukXTHVjAAha
		wDAmBBSxgAUuFVQ+D1jtZj/fWugfXAsSep/Fp0Yuq8V5bbJdXjYOfgQUsYAELWMACFrAMCYEFLGABy8HPdZ
		rIszdWz7zyc++m+KhXVGr9ZQ2wgAUsYAHLkBBYwAIWsCpUWHc642jrw0fORnbUq+bU7iP2wL/FYTW9L8iqw
		gIWsIAFLGABC1jAcrYGYAELWMBSYc0D26ggzn6K5Baot25gt77ado/XCSxgAQtYwDIkBBawgAUsTfcuZ7ds
		jeVIc6FqH+7Tu2fZAv+ef0hdSPVmBz8DC1jAMiQEFrCABSxDQmABC1jAuu3Bzy0+4DPnWvU8Pu0Kp5cZZd2
		2+GN21Qa8aQ3AAhawgAUsYAELWIaEL2wkPR6z55k9e181pwV0tT+Dsw/NqfFa7njaGBUWsIAFLGABC1jAAt
		Z0Q8KrX0j1KCi1ezd6WO16ha23qRZ/SGeYiqHCAhawgUsFRawgAUsYAELWMACliFhu6b7mVdlqbXj9IT66O
		tq0Ziu8SVFrZ2/9SFWrbdZFRawgAUsYAELWMAC1q3B2jskTLPdf/nm22ne7KhnGKjVIxnlQqq1HrP1mUp7g
		9UaTofmPFl++Orrqd4ssIAFrJtWWOl2cR9gAQtYwBoSrHwYmO6jwgIWsIA17JAwDQNng6rlh996wz4blJbN
		8h7H1I365cNIF3+9JFizNdiBBSxg3RSsK2AFLGAB6wZgRXP96kjVGvOfeTGJnuuyBZY95z61OsXPKIfmXBW
		z1aZ7qqrSv/NvAWeEC1jAAtb79ZvuCawrnK8dWMAC1sXBukK/CljAAtYNhoQJq5l7Vq0bsHs2jBZN3Su/rq
		PYHAX+zFO8zH6B12EqrCsHWMACFrCABSxgAasvWGk4eEWwzuwxjHTFlhl6WC3A6r0N1T40p/d6VmEBC1jAA
		hawgAUsYAELWMACFrCANTZeIx0L1/pqPqOulxo7YO8vVq6wvQELWMACFrCABSxgAQtYeljNd/4WvaIe86Rq
		v65Rr07U+nX1/kN31QALWMACFrCABSxgAQtYwAIWsIAFrDob7Aw72V2PJexxCqHWpzPqfbokYAELWMACFrC
		ABSxgAevCePXsYdVCY9QLqdZ4P63PCNoCy9b9zVYXXQUWsIAFLGABC1jAAhawgAUsYAELWHM24Ee9+m5vZF
		t/gVFrfY1yhe0WV6c+ui5r3A9YwAIWsIAFLGABC1jAulFajPlr96l69DBaH5ozw2lUzjxtUI9+oHlYwAIWs
		IAFLGABC1jAAlaXjbtnn6I1WGdflLT1Z9x6akHrz8qVn4EFLGABC1jAAhawgAUsYAELWMC6JlK1Gq1HHqM1
		Li3eT63n7gnRFcA686yywAIWsIAFLGABC1jAAtaNwKqxQW29X4+dpXavq/f8pxr3m/GMoz36tcACFrCABSx
		gAQtYwAIWsIAFLGABa068Wh3P1XoDatHUPWtHbfG7FvC0+GPWAlkXUgUWsIAFLGABC1jAAhawumPWYqPpeW
		GG3ocMtd7Jzu7X9DzTqkNzgAUsYAELWMACFrCABSxgAQtYwLofUkd3ghbHGZ658/c+lrA2zj3+gNX+DHpfx
		BdYwAIWsIAFLGABC1jAuilYPU7V0fNwldYX4Dy7H9gSmlYXpa3dbzIPC1jAAhawgAUsYAELWMACFrCABSxg
		1djQzwSr1g5Se/5Zj7ljrZFtvW30/kIGWMACFrCABSxgAQtYwALWsIe5tL6CSu++S4+e35nr8swzjjo0B1j
		AAhawgAUsYAELWMACFrCABSxXzWkNZGt4Wh
		//NuqxhC0+n54Itvgy4KoNeWABC1jAAhawgAUsYAHrhP7J0Q22xtJjY27dPxm1h9Ua59Y9ph4XugUWsIAFL
		GABC1jAAhawgAUsYAELWGM1vlujUev1t/7dmTtx79OxtF5fZ2+LwAIWsIAFLGABC1jAAhawuvfFZtj5z3z8
		3r211j3MFj3G3usPWMACFrCABSxgAQtYwALWUD2znhfxPApprefuufO36CP2/qN3d9iABSxgAQtYwAIWsIA
		FLGABC1jAMg9rTDRanO1y62uu9b5b/64Flq138N7r6yoBFrCABSxgAQtYwAIWsDr1Cno+ZuuLHPS4wGfvnk
		zrPxK1X2OPnh+wgAUsYAELWMACFrCABSxgAQtYwLomWC12zp6A1Lpfz3XZ+upBPY4lrAGRYwmBBSxgAQtYw
		AIWsIAFrFuD1fsiFEfWUYuLeNY6k2jPXmQtJM48dApYwAIWsIAFLGABC1jAAhawgAUsYAHr1Y2mRdO19/GP
		rXFp3bSu9RnX/nzOvFArsIAFLGABC1jAAhawgHVxsHr2EVr0bkbqYfXeyXpCfeZFT8/8wwMsYAELWMACFrC
		ABSxgAQtYwAIWsM4Bq/cpkls3Vs+88nOtpnvvz6fGdlPjD2TvK38DC1jAAhawOiEFLGABC1gqLBGRVlj98N
		XX/wUZWCIyMlbfffHl+/effq7CEpFx8+OHDx+x+umTzz6CpcISkSHzyzfffkQqYQUsERlu6FcOAQMrYInIc
		FClpOZ6DhWwRGSaygpYIjIMVmnJm+trC7BE5NSqKqVsrgNLRIZEa61fBSwRGQ6rLZXV7cDacgxgy+dueb8j
		j7/nGMS1+259zFd+t+X93eX0wFcE61nP6tZgtdjItzzOaGBtXRd7YM9/XuJz9HePcNz6exkXK2Dt3KnXdpy
		1v/rlz5YqkbX7bdnhH91vy+223H8rWHur0EeP+ervnr0PYM0bYFUAa8vOumVnKW+zF5BnsOyFam9Vs/X5Wo
		G1FV5gGRIC60kP7NHOsnabGmBteQ1bh6l70N0ynOsJ1h6gBVi3r7D2DmmODKeO9ppe7Wm1GtrVBuuO1+UzJ
		NR07wJWiyFhDbCO9qXOBusVoEWFNQVYe6Y1PGu6PxsqrQ259jTdnz32M9iOfLu2ZYpBr2kNW6soYKmwRESA
		JSJiSCgiKiwREWCJiCEhsEREhSUiosISEWABS0QMCUVEVFgiosIClogAS0Tk8HDQkFBEVFgics0qp6x4ei/
		AEpFdYKWrLic4zlj2XJMQWCI3T2C1B40zF2CJ3DR7r7oMLBE5ZSg4U1UFLJEbY5UqqxmxApbIjaCaubICls
		jNqqrZ+lXAErkZVCnpm8ArYAUskYvnSlgBS+TCldVVhoHAErlwfvzw4WFzfWbEgCVyocoqLVerqoAlclGsZ
		p+2ACyRG2S2YwKBJXLTyuqKzXVgiVy0sroLVsASmayayv878zGBwBK5CVrPpi0AS0SGyJ2xApbIZEPBO/Wr
		gCUyKVZ3a64DS2RSrO40bQFYIhPnzv0qYIlMlDtOWwCWyIRDwSPX7AOWiHSN5jqwRKaoqmC1Day0roAlAqu
		5wEqzaAMui8XSZ0nN9dSzOrqknThfjtzn6P3OeI0fwQrpLRZLnyUKBNlXjab8GxpTVlC0LW3pAAAAAElFTk
		SuQmCC",
	 "merchantName": "Baso Malang",
	 "terminalId": "21314125",
}
2. SNAP QR MPM Payment Notify

This service is used to Notification QRIS.

 
Additional Headers:
Field Params Type Data Type Mandatory Description
CHANNEL-ID Header String(5) Channel’s identifier using EDC’s WSID (95251)
X-PARTNER-ID Header String(36) Length data in BCA = 15
Unique ID for a partner 
- Merchant Reguler: MerchantID (9)
- Merchant Partnership : Partner Name (15)
X-EXTERNAL-ID
Header String(36) Y ID that should be unique per co-partner per service in the same day 

Payload:
 
Field Data Type Length Type Mandatory  Format Description
originalReferenceNo String(64)  Max  Y Alphanumeric  Transaction identifier on service provider system
length in BCA: 36
originalPartnerReferenceNo String(64) Max  N Alphanumeric  Mandatory in BCA
Transaction identifier on service consumer system (Transction ID partner) 
latestTransactionStatus String (2) Fixed Y Numeric Mandatory in BCA
Transaction Status recorded in DB QR Server
00 - Success : transaction is paid
01 - Initiated
02 - Paying
03 - Pending : transaction is recorded, but still unpaid or inquiry to EAI timeout
04 - Refunded
05 - Canceled
06 - Failed : transaction failed, because QR Expired
07 - Not found This data must be informed on the proof of the transaction provided to the customer
customerNumber String(64) Max N Numeric Mandatory in BCA if transaction is successful 
length in BCA: 19
Buyer card number (customer_pan), will be used to calculate transaction limit.
Mandatory if payment requires limit validation (i.e. payment from mBCA)
This data must be informed on the proof of the transaction provided to the customer 
destinationNumber String(25)   N Numeric Mandatory in BCA if transaction is successful
length in BCA: 19
Merchant identifier
This data must be informed on the proof of the transaction provided to the customer
destinationAccountName String(25)   N Alphanumeric Mandatory in BCA if transaction is successful

merchant name
amount Object   N   Mandatory in BCA if transaction is successful
Net amount of the transaction. (exclude convenience fee)
This data must be informed on the proof of the transaction provided to the customer

     value String (16.2)
Max  Numeric 10000.00  Length data in BCA = 13.2
BCA will send response amount with format value Numeric (13.2)
Example : IDR 10.000,- will be placed with 10000.00 
     currency String (3)
  Y Alphanumeric
Currency code
additionalInfo Object   N   Mandatory field only if transaction is successful
     referenceNumber String (12)   Y Alphanumeric
Unique ID for tracing
     transactionDate String (25)   Y Numeric Transaction date with format
YYYY-MM-DDThh:mm:ssTZD 
Example: 2020-12-21T10:30:24+07:00 
This data must be informed on the proof of the transaction provided to the customer
     approvalCode String (6)
  Y Alphanumeric Approval code from host for success transaction
     payerPhoneNumber String (16)
  N Alphanumeric Buyer phone number to be shown in both buyer and seller account statement
     batchNumber String(6)   Y Numeric Transaction batch number recorded in QRIS Server
     convenienceFee String(10.2)   N Numeric Convenience fee or tips
This data must be informed on the proof of the transaction provided to the customer
     issuerReferenceNumber String(12)   Y Numeric RRN QRIS
This data must be informed on the proof of the transaction provided to the customer
     payerName String(30)   N Alphanumeric Buyer name
This data must be informed on the proof of the transaction provided to the customer
     issuerName String(26)   Y Alphanumeric Issuer name
This data must be informed on the proof of the transaction provided to the customer
     acquirerName String(3)   Y Alphanumeric Acquirer name = BCA
This data must be informed on the proof of the transaction provided to the customer
     merchantInfo Array of Object        
          terminalId String(8)   Y Alphanumeric Terminal ID
          merchantId String(15)   Y Numeric Merchant ID in BCA
- Merchant direct: merchantID
- Merchant facilitator: merchantID
- Merchant aggregator: merchantID partner aggregator
          city String(13)   Y Alphanumeric Merchant city
          postalCode String(10)   Y Numeric Merchant postal code
          country String(2)   Y Alphanumeric Merchant location country
          email String   N Alphanumeric Merchant e-mail address
          paymentChannelName String(10)   Y Alphanumeric - Sakuku
- Debit
- Switching
- Paylater
Result of the request will contains following information:

Response:
 
Field DataType Length Type Mandatory Format Description
responseCode
String(7)  Fixed Y AAABBCC
Error code to identify transaction status (success or failed)
Format: AAABBCC
AAA : HTTP Code
BB : Service Code
CC : Case Code
Service Code Notification Payment QRIS : 52 Example: 2005200 Response from copartner
responseMessage
String (150)
Max Y Alphanumeric Error message in English
Example : successful
The following structure should be returned only when not-success with additional related HTTP status of the response if applicable.
The copartners define the responseCode by themselves. For the multi-language responseMessage, it allowed to use same value if multi-language are not possible

{
"responseCode" : "Error Code",
"responseMessage" : "Error Message"
}

 


curl –X POST https://copartners.com/openapi/v1.0/qr-mpm-notify

Request

-H 'CHANNEL-ID':'95251'
-H 'X-PARTNER-ID': '123456789'
-H 'X-EXTERNAL-ID': '41807553358950093184162180797837'
-d '
{
	"originalReferenceNo": "43057a74-e179-49ed-b119-b004a3d522ec",
	"originalPartnerReferenceNo": "2020102900000000000001",
	"latestTransactionStatus": "00",
	"transactionStatusDesc": "success",
	"customerNumber": "6281388370001",
	"destinationNumber": "8377388292",
	"destinationAccountName": "John Doe",
	"amount": {
		"value": "50000.00",
		"currency": "IDR"
	},
	"additionalInfo": {
		"referenceNumber": "022411000106",
		"transactionDate": "2020-12-23T08:43:11+07:00",
		"approvalCode": "ATTRT0",
		"payerPhoneNumber": "08174964450",
		"batchNumber": "000004",
		"convenienceFee": "0.00",
		"issuerReferenceNumber": "000013101103",
		"payerName": "DEV Apos",
		"issuerName": "BCA",
		"acquirerName": "BCA",
		"merchantNnfo": {
			"terminalId": "DTESTDRA",
			"merchantId": "000885123456789",
			"city": "JAKARTA PUSAT",
			"postalCode": "10310",
			"country": "ID",
			"email": "",
			"paymentChannelName": "Sakuku"
		}
	}
}'

curl –X POST https://copartners.com/openapi/v1.0/qr-mpm-notify

Response

{
 "responseCode": "2005200",
 "responseMessage": "Successful"
}
3. SNAP QR MPM Query Payment

This service is used to inquiry transaction status.

 
Additional Headers:
Field Params Type Data Type Mandatory Description
CHANNEL-ID Header String(5) Channel’s identifier using EDC’s WSID (95251)
X-PARTNER-ID Header String(36) Length data in BCA = 15
Unique ID for a partner
- Merchant Reguler: MerchantID (9)
- Merchant Partnership : Partner Name (15) 

Payload:
 
Field Data Type Length Type Mandatory  Format Description
originalReferenceNo String(64)  Max  N Alphanumeric  Mandatory in BCA
length data: 36 in BCA
Transaction identifier on service provider system (generate by QR Server) Response from API Generate QR
originalPartnerReferenceNo String(64) Max  N Alphanumeric  Mandatory in BCA
Transaction identifier on service from partner
serviceCode String(2) Fixed Y Numeric  Transaction type indicator (service code of the original transaction request)
Example: serviceCodegenerate QR = 47
merchantId String(64) Max N Numeric Mandatory in BCA
Length in BCA data = 9
Merchant ID from BCA
- Merchant direct: merchantID
- Merchant facilitator: merchantID
- Merchant aggregator: merchantID partner aggregator
subMerchantId String(32) Max N Alphanumeric Conditional in BCA
submerchantID for Merchant partner aggregator only (passthrough from merchant)
additionalInfo Object   N   Additional Information
     partnerMerchantType String(4) Max N Alphanumeric Conditional in BCA for Merchant partner only
     terminalId String (8)  Max Y Alphanumeric Length data in BCA = 8 
Can be :
- Terminal ID BCA (merchant direct)
- Terminal ID non BCA (merchant aggregator / facilitator) 
Result of the request will contains following information:

Response:
 
Field Data Type Length Type Mandatory  Format Description
responseCode String(7) Fixed Y AAABBCC Error code to identify transaction status (success or failed)
format : AAABBCC
AAA : HTTP Code
BB : Service Code
CC : Case Code
Service Code Inquiry Payment QRIS : 51
Example: 2005100
responseMessage String(150) Max Y Alphanumeric Error message in English
Example: successful
originalReferenceNo String(64)  Max  N Alphanumeric  Mandatory in BCA 
length in BCA: 36
Transaction identifier on service provider system (generate by QR Server)
originalPartnerReferenceNo String(64) Max  N Alphanumeric  Mandatory in BCA
Transaction identifier on service from partner
originalExternalId String(36) Fixed N Numeric  Mandatory in BCA
ID that should be unique per co-partner per service in the same day
serviceCode String(2) Fixed Y Numeric Transaction type indicator (service code of the original transaction request)
Example: serviceCode generate QR = 47
latestTransactionStatus String (2) Fixed Y Numeric Mandatory in BCA
Transaction Status recorded in DB QR Server
00 - Success : transaction is paid
01 - Initiated
02 - Paying
03 - Pending : transaction is recorded, but still unpaid
04 - Refunded : transaction is successfully refunded
05 - Canceled
06 - Failed : transaction failed, because QR Expired
07 - Not found
This data must be informed on the proof of the transaction provided to the customer
transactionStatusDesc String (50)  Max N Alphanumeric Mandatory in BCA
Show description of transaction status
Example:
- Success (transaction Success)
- Pending (Unpaid Transaction)
- Failed (QR Expired)
- Refunded (Partial Refund)
paidTime String (255) Max N YYYY-MM-DDThh:mm:ssTZD Mandatory in BCA if transaction is successful
Transaction date ISO8601
Example: 2020-12-21T10:30:24+07:00 
This data must be informed on the proof of the transaction provided to the customer 
Amount Object N     Mandatory in BCA if transaction is successful
"amount": {
       "value": "10000.00",
       "currency": "IDR"
}
     value String (16.2)  Max Y Numeric 10000.00 length in BCA = 13.2
Net amount of the transaction
BCA will send response amount with format value Numeric (13.2)
Examlple: IDR 10.000,- will be placed with 10000.00 
     currency String(3) Fixed Y IDR Currency code
terminalId String (16) Max N Alphanumeric Mandatory in BCA if transaction is successful
length data in BCA : 8
Terminal ID BCA/non BCA
additionalInfo Object   N   Mandatory field only if transaction is successful
     referenceNumber String (12)   Y Alphanumeric Unique ID for tracing
     approvalCode String (6)   Y Alphanumeric Approval code from host for success transaction
     payerPhoneNumber String (13)   N Alphanumeric Buyer phone number to be shown in both buyer and seller account statement
     batchNumber String (6)   Y Numeric Transaction batch number recorded in QRIS Server
     convenienceFee String (10.2)   N Numeric Convenience fee or tips
This data must be informed on the proof of the transaction provided to the customer
     customerPan String (19)   Y Numeric Buyer card number (customer_pan), will be used to calculate transaction limit.
Mandatory if payment requires limit validation (i.e. payment from mBCA)
This data must be informed on the proof of the transaction provided to the customer 
     issuerReferenceNumber String (12)   Y Numeric RRN QRIS
This data must be informed on the proof of the transaction provided to the customer
     payerName String (30)   Y Alphanumeric Buyer name
This data must be informed on the proof of the transaction provided to the customer
     issuerName String (26)   Y Alphanumeric Issuer name
This data must be informed on the proof of the transaction provided to the customer 
     acquirerName String (3)   Y Alphanumeric Acquirer name = BCA
This data must be informed on the proof of the transaction provided to the customer
     merchantInfo Array of Object       Mandatory in BCA (except field email) if transaction is successful
          merchantId String (64)    Y Numeric Mandatory in BCA
Length data = 15 in BCA
Example: 000 855 MID(9)
Merchant ID transaction
- Merchant direct : merchantID
- merchant facilitator : merchantID  
- merchant aggregator : merchantID partner aggregator 
          merchantPan String (19)   Y Numeric Merchant identifier
This data must be informed on the proof of the transaction provided to the customer
          name String (25)    Y Alphanumeric Merchant name
          city String (13)    Y Alphanumeric Merchant city
postalCode String (10)   Y Numeric Merchant postal code
country String (2)   Y Alphanumeric Merchant location country
email String (30)   N Alphanumeric Merchant e-mail address
paymentChannelName String (10)   Y Alphanumeric - Sakuku
- Debit
- Switching
- Paylater 
Here is the list of error codes that can be returned. 
HTTP Code Error Code Error Message
400 4005100 Bad request
400 4005101 Invalid Field Format {field name} 
400 4005102 Invalid Mandatory Field {field name}
401 4015100 Unauthorized. [Reason]
401 4015101 Invalid token (B2B)
403 4035100 Transaction Expired
403 4035106 Feature Not Allowed At This Time
404 4045108 Invalid Merchant
404 4045101 Transaction Not Found
404 4045118 Inconsistent Request [X-PARTNER-ID & merchantID not match]
409  4095100  Conflict X-EXTERNAL-ID 
500 5005100 General Error
500 5005101 Internal Server Error
504 5045100 Timeout

curl –X POST https://sandbox.bca.co.id/openapi/v1.0/qr/qr-mpm-query

Request

-H 'CHANNEL-ID':'95251'
-H 'X-PARTNER-ID': '1234567890'
-d '
{
	"originalPartnerReferenceNo": "2020102900000000000001",
	"originalReferenceNo": "2020102977770000000009",
	"serviceCode": "51",
	"merchantId": "23489182303312",
	"subMerchantId": "23489182303312",
	"additionalInfo": {
		"terminalId": "DTESTDRA",
		"partnerMerchantType": "SA"
	}
}'

curl –X POST https://sandbox.bca.co.id/openapi/v1.0/qr/qr-mpm-query

Response

{
	"responseCode": "2005100",
	"responseMessage": "Success",
	"originalPartnerReferenceNo": "2020102900000000000001",
	"originalReferenceNo": "43057a74-e179-49ed-b119-b004a3d522ec",
	"originalExternalId": "30443786930722726463280097920912",
	"serviceCode": "47",
	"latestTransactionStatus": "00",
	"transactionStatusDesc": "Success (transaction Success)",
	"paidTime": "2020-12-23T08:43:11+07:00",
	"amount": {
		"value": "50000.00",
		"currency": "IDR"
	},
	"terminalId": "DTESTDRA",
	"additionalInfo": {
		"referenceNumber": "022411000106",
		"approvalCode": "ATTRT0",
		"payerPhoneNumber": "08174964450",
		"batchNumber": "000004",
		"convenienceFee": "0.00",
		"issuerReferenceNumber": "000013101103",
		"payerName": "DEV Apos",
		"customerPan": "9360001430000131018",
		"issuerName": "BCA",
		"acquirerName": "BCA",
		"merchantInfo": {
			"merchantId": "000885000333456",
			"merchantPan": "9360001430003334569",
			"name": "FDM DUMMY MAGENTA TOKO",
			"city": "JAKARTA PUSAT",
			"postalCode": "10310",
			"country": "ID",
			"email": "",
			"paymentChannelName": "Sakuku"
		}
	}
}

Shared Biller BCA

1. Shared Biller Transaction Status Inquiry

This service is used for inquiry payment status.

This feature is not yet available to be accessed via Sandbox.

Additional Headers:
Field Params Type Data Type  Length Type Mandatory Description
CHANNEL-ID Header String(5) Fixed Mandatory in BCA. Channel’ Identifier using WSID Shared Biller (95391)
X-PARTNER-ID Header String(32) Max Mandatory in BCA. Partner ID (Mitra ID)
X-EXTERNAL-ID Header String(36) Max Y Mandatory in BCA. Reference number that should be unique in the same day

Payload:
 
Field Data Type Length Type Mandatory  Format Description
virtualAccountNo String (28) Max Y Alphanumeric Mandatory in BCA. partnerServiceId (8 digit left padding space) + customerNo (up to 20 digit). In BCA, virtualAccountNo max length is 26 (partnerServiceId(8 digits) + customerNo(18 digits)).
inquiryRequestId String (128) Max N Alphanumeric Mandatory in BCA. Unique identifier for inquiry. Generated by BCA from inquiry response.

Note: 

- Transaction can be queried between D-day (hari H) until D-1 day (H-1 / yesterday). 

- paymentRequestID is the same value with inquiryRequestID from BCA for each transaction. 

- For inquiry payment status, can use just one keyword (customerNo or inquiryRequestId/paymentRequestID) as filter criteria. 



Result of the request will contains following information:

Response:
 
Field Data Type Length Type Mandatory  Format Description
responseCode String (7) Fixed Y Numeric Mandatory in BCA. Response code: HTTP Code + Service Code + Case Code 
responseMessage String (150) Max Y Alphanumeric Mandatory in BCA. Response description
paymentRequestId String (128) Max N Alphanumeric Mandatory in BCA. Unique identifier for payment. Generated by BCA and has the same value with inquiryRequestI d.
virtualAccountNo String (28) Max Y Alphanumeric Mandatory in BCA. partnerServiceId (8 digit left padding space) + customerNo (up to 20 digit) In BCA, virtualAccountNo max length is 9 (partnerServiceId(8 digits)+customerNo(18 digits)).
paymentFlagReason Object - N - Mandatory in BCA. Reason for Payment Status from Biller in multi language
english String (64)  Max N Alphanumeric Reason for inquiry status in English
indonesia String (64)  Max N Alphanumeric Reason for inquiry status in Bahasa
inquiryRequestId String (128) Max N Alphanumeric Mandatory in BCA. Inquiry identifier for inquiry. Generated by BCA from inquiry response. 
paidAmount Objects - N - Mandatory in BCA.
value String (16,2) Max Y Decimal Paid amount with 2 decimal. In BCA, totalAmount max length is 13.2 digits
currency String (3) Fixed Y ISO-4217 Currency of amount based on ISO 4217 
trxDateTime Date(25) Fixed N ISO-8601 Mandatory in BCA. BCA internal system datetime with timezone, which follows the ISO-8601 standard 
transactionDate Date(25) Fixed N ISO-8601 Mandatory in BCA. Payment datetime when the payment happened
paymentFlagStatus String (2) Fixed N Numeric Mandatory in BCA. Status for payment flag, This field may vary with these values: 00 : success transaction 01 : transaction in progress 99 : failed transaction
billDetails Array of Objects - N - Array with maximum 24 Objects
billNo String (18) Max N Alphanumeric Bill number that customer choose to pay. From Payment Request 
billDescription Object - N - Bill Description
english String (18) Max N Alphanumeric Bill Description in English
indonesia String (18) Max N Alphanumeric Bill Description in Bahasa
billSubCompany String (5) Max N Alphanumeric Biller’s product code
billAmount Objects - N -  
value String (16,2) Max Y Decimal Transaction amount for specific bill. Nominal inputted by Customer with 2 decimal In BCA, billAmount max length is 13.2 digits.
currency String (3) Fixed Y ISO-4217 Currency
additionalInfo Object - N - Additional Information for customer use for each bill
freeTexts Array of Objects - N - Array with maximum 9 Objects send by BCA.
english String (32) Max N Alphanumeric Will be shown in Channel 
indonesia String (32) Max N Alphanumeric Will be shown in Channel 
Note:
- The final status of payment flag is not determined by responseCode and responseMessage.
- Status for payment flag will be defined in paymentFlagStatus and paymentFlagReason field. This field may vary with these values:
00 = success transaction
01 = transaction in progress
99 = failed transaction
- If the paymentFlagStatus is 01, the result will be defined after reconciliation process.
- If the reconciliation results show that the transaction was successfully settled, the paymentFlagStatus will contains 00.
- If the reconciliation results show a refund transaction, the paymentFlagStatus will contains 99.
- ResponseCode 4042601 shows request inquiry status is failed, because the transaction data is not available/not recorded at BCA, the paymentFlagStatus will be empty.

Here is the list of error codes that can be returned. 
HTTP Code Error Code Error Message
200 2002600 Successful
400 4002601 Invalid Field Format {Field Name}
400 4002602 Invalid Mandatory Field {Field Name}
400 4002600 Bad request 
401 4012600 Unauthorized. [Reason]
401 4012601 Invalid token (B2B)
403 4032601 Feature Not Allowed
404 4042601 Transaction Not Found
404 4042616 Partner Not Found
409 4092600 Conflict
500 5002600 General Error
500 5002601 Internal Server Error 


/openapi/shared-biller/v1.0/transfer-va/status

Request

curl –X POST https://sandbox.bca.co.id/openapi/shared-biller/v1.0/transfer-va/status
-H 'CHANNEL-ID': '95391'
-H 'X-PARTNER-ID': '676767'
-H 'X-EXTERNAL-ID': '123456789'
-d '
{
	"partnerServiceId": "03013",
	"customerNo": "123456789012345678",
	"virtualAccountNo": "00003013123456789012345678",
	"inquiryRequestId": "202209161033070301300001197441"
} '

/openapi/shared-biller/v1.0/transfer-va/status

Response

{
	"responseCode": "2002600",
	"responseMessage": "Successful",
	"virtualAccountData": {
		"paymentFlagReason": {
			"english": "Transaction Success",
			"indonesia": "Transaksi Berhasil"
		},
		"partnerServiceId": " 21180",
		"customerNo": "22203",
		"virtualAccountNo": " 2118022203",
		"inquiryRequestId": "202307311953292118000043785288",
		"paymentRequestId": "202307311953292118000043785288",
		"paidAmount": {
			"value": "803000.00",
			"currency": "IDR"
		},
		"paidBills": "",
		"totalAmount": {
			"value": "",
			"currency": ""
		},
		"trxDateTime": "2023-07-31T19:57:18+07:00",
		"transactionDate": "2023-07-31T19:53:29+07:00",
		"referenceNo": "",
		"paymentType": "",
		"flagAdvise": "",
		"paymentFlagStatus": "00",
		"billDetails": [
		{
			"billCode": "",
			"billNo": "00011114",
			"billName": "",
			"billShortName": "",
			"billDescription": {
			"english": "Pencil",
			"indonesia": "Pensil"
			},
			"billSubCompany": "00003",
			"billAmount": {
				"value": "803000.00",
				"currency": "IDR"
			},
			"additionalInfo": "",
			"billReferenceNo": "",
			"status": "",
			"reason": {
				"english": "",
				"indonesia": ""
			}
		}
		],
		"freeTexts": [
		{
			"english": "ABCDEFGHIJKLM ENGLISH FREETEXT 1",
			"indonesia": "ABCDEFGHIJ INDONESIAN FREETEXT 1"
		},
		{
			"english": "ABCDEFGHIJKLM ENGLISH FREETEXT 1",
			"indonesia": "ABCDEFGHIJ INDONESIAN FREETEXT 1"
		},
		{
			"english": "ABCDEFGHIJKLM ENGLISH FREETEXT 1",
			"indonesia": "ABCDEFGHIJ INDONESIAN FREETEXT 1"
		},
		{
			"english": "ABCDEFGHIJKLM ENGLISH FREETEXT 1",
			"indonesia": "ABCDEFGHIJ INDONESIAN FREETEXT 1"
		},
		{
			"english": "ABCDEFGHIJKLM ENGLISH FREETEXT 1",
			"indonesia": "ABCDEFGHIJ INDONESIAN FREETEXT 1"
		},
		{
			"english": "ABCDEFGHIJKLM ENGLISH FREETEXT 1",
			"indonesia": "ABCDEFGHIJ INDONESIAN FREETEXT 1"
		},
		{
			"english": "ABCDEFGHIJKLM ENGLISH FREETEXT 1",
			"indonesia": "ABCDEFGHIJ INDONESIAN FREETEXT 1"
		},
		{
			"english": "ABCDEFGHIJKLM ENGLISH FREETEXT 1",
			"indonesia": "ABCDEFGHIJ INDONESIAN FREETEXT 1"
		},
		{
			"english": "ABCDEFGHIJKLM ENGLISH FREETEXT 1",
			"indonesia": "ABCDEFGHIJ INDONESIAN FREETEXT 1"
		}
		],
		"additionalInfo": ""
	}
}
2. SNAP Shared Biller Inquiry Payment to VA from Intrabank

This service is used for billing inquiry to biller.

This feature is not yet available to be accessed via Sandbox.

Additional Headers:
Field Params Type Data Type  Length Type Mandatory Description
CHANNEL-ID Header String(5) Fixed Mandatory in BCA. Channel’ Identifier using WSID Shared Biller (95391)
X-PARTNER-ID Header String(32) Max Mandatory in BCA. Partner ID (Mitra ID)
X-EXTERNAL-ID Header String(36) Max Y Mandatory in BCA. Reference number that should be unique in the same day

Payload:
 
Field Data Type Length Type Mandatory  Format Description
partnerReferenceNo String (128) Max N Alphanumeric Mandatory in BCA. Unique identifier for this Payment. Generated by Mitra (channel-transactionID)
virtualAccountNo String (28) Max Y Alphanumeric Mandatory in BCA. partnerServiceId (8 digit left padding space) + customerNo (up to 20 digit). In BCA, virtualAccountNo max length is 26 (partnerServiceId(8 digits) + customerNo(18 digits)).
trxDateTime Date(25) Max N ISO-8601 Mandatory in BCA. Mitra internal system datetime with timezone, which follows the ISO-8601 standard
additionalInfo Object - N - Optional in BCA. Additional Information for custom use 
Result of the request will contains following information:

Response:
 
Field Data Type Length Type Mandatory  Format Description
responseCode String (7) Fixed Y Numeric Mandatory in BCA. Response code: HTTP Code + Service Code + Case Code 
responseMessage String (150) Max Y Alphanumeric Mandatory in BCA. Response description
virtualAccountData Object - Y -  
partnerReferenceNo String (128) Max N Alphanumeric Mandatory in BCA. From Inquiry Request (channeltransaction-ID)
virtualAccountNo String (28) Max Y Alphanumeric Mandatory in BCA. partnerServiceI d (8 digit left padding space) + customerNo (up to 20 digit) In BCA, virtualAccountNo max length is 26. 9 (partnerServiceId(8 digits)+customerNo(18 digits)).
virtualAccountName String (255) Max Y Alphanumeric Mandatory in BCA. Customer name
inquiryRequestId String (128) Max N Alphanumeric Mandatory in BCA. Unique identifier for inquiry. Generated by BCA.
totalAmount Objects - N -  
value String (16,2) Max Y Decimal Mandatory in BCA. Send by BCA. Total amount with 2 decimal In BCA, totalAmount max length is 13.2 digits.
currency String(3) Fixed Y ISO-4217 Mandatory in BCA. Currency of amount Send by BCA. Currency of amount based on ISO 4217. Currency only available for IDR
billDetails Array of Objects - N - Optional in BCA. Array with maximum 24 Objects
billNo String (18) Max N Alphanumeric Bill number from Biller
billDescription Object - N - Send by BCA. Bill Description
english String (18) Max N Alphanumeric Send by BCA. Bill Description in English
indonesia String(18) Max N Alphanumeric Send by BCA. Bill Description in Bahasa
billSubCompany String(5) Max N Alphanumeric Biller’s product code 
billAmount Object - N -  
value String (16,2) Max Y Decimal Send by BCA. Transaction amount for specific bill. Nominal inputted by Customer with 2 decimal In BCA, billAmount max length is 13.2 digits
currency String (3) Fixed Y ISO-4217 Currency
additionalInfo Object - N - Additional Information for custom use for each bill
freeTexts Array of Objects - N - Optional in BCA. Array with maximum 5 Objects send by BCA.
english String (32)  Max N Alphanumeric Will be shown in Channel 
indonesia String (32)  Max N Alphanumeric Will be shown in Channel 
virtualAccountTrxType String(1) Fixed N Alphanumeric Mandatory in BCA. Type of Virtual Account.
BCA will response virtualAccountT rxType value only for one of these value: - O - Open Payment - C - Closed Payment - V - Bill Variable -I - Partial -W- Multi Bill Variable
productName String(30) Max N Alphanumeric Mandatory in BCA. Send by BCA. Product Category
Note:
1. BCA will response virtualAccountTrxType value only for one of these value:
- O (Open Payment) = (non Multi Bill - No Bill) Bill amount is not displayed,customer may enter paid amount freely
- C (Closed Payment) = (non Multi Bill - Fixed Bill)
 Bill amount is displayed, customer must pay according to the displayed amount
 If more than one bill is displayed, customer must pay all displayed bills & total amount for all bills
- V (Bill Variable) = (non Multi Bill - Variable Bill) Bill amount is displayed, customer may enter paid amount freely
- I (Partial) = (Flexible Multi Bill - Fixed Bill)
 More than one bill may be displayed, customer may choose more than one of the displayed bills to pay
 Bill amount is displayed, customer must pay according to the displayed amount in each bill
 Total of paid amount is equal to the sum of chosen bills
- W (Variable Multi Bill) = (Multi Bill - Fixed Bill)
 More than one bill may be displayed, customer may choose only one of the displayed bills to pay
 Bill amount is displayed, customer must pay according to the displayed amount of the chosen bill  
2. Currency only available for IDR

Here is the list of error codes that can be returned. 
HTTP Code Error Code Error Message
200 2003200 Successful
400 4003201 Invalid Field Format {Field Name}
400 4003202 Invalid Mandatory Field {Field Name}
400 4003200 Bad request 
401 4013200 Unauthorized. [Reason]
401 4013201 Invalid token (B2B)
403 4033201 Feature Not Allowed
404 4043208 Invalid Merchant
404 4043212 Invalid Bill. [Reason] (Reason is defined by Biller) 
404 4043214 Paid Bills
404 4043216 Partner Not Found
404 4043218 Inconsistent Request
409 4093200 Conflict
500 5003200 General Error
500 5003201 Internal Server Error 


/openapi/shared-biller/v1.0/transfer-va/inquiry-intrabank

Request

curl –X POST https://sandbox.bca.co.id/openapi/shared-biller/v1.0/transfer-va/inquiry-intrabank
-H 'CHANNEL-ID': '95391'
-H 'X-PARTNER-ID': '676767'
-H 'X-EXTERNAL-ID': '123456789'
-d '
{
 "partnerServiceId": " 03013",
"customerNo": "123456789012345678",
"partnerReferenceNo": "1122334455",
"virtualAccountNo": " 00003013123456789012345678",
 "trxDateTime": "2022-09-16T10:33:07+07:00"
}'

/openapi/shared-biller/v1.0/transfer-va/inquiry-intrabank

Response

{
	"responseCode": "2003200",
	"responseMessage": "Successful",
	"virtualAccountData": {
		"inquiryStatus": "",
		"inquiryReason": {
			"english": "",
			"indonesia": ""
		},
		"partnerServiceId": " 21180",
		"partnerReferenceNo": "90903200114",
		"customerNo": "22203",
		"virtualAccountNo": " 2118022203",
		"virtualAccountName": "Customer Name",
		"virtualAccountEmail": "",
		"virtualAccountPhone": "",
		"sourceAccountNo": "",
		"sourceAccountType": "",
		"inquiryRequestId": "202307311953292118000043785288",
		"totalAmount": {
			"value": "8045000.00",
			"currency": "IDR"
		},
		"billDetails": [
		{
			"billCode": "",
			"billNo": "00011111",
			"billName": "",
			"billShortName": "",
			"billDescription": {
				"english": "Pencil",
				"indonesia": "Pensil"
			},
			"billSubCompany": "00000",
			"billAmount": {
				"value": "800000.00",
				"currency": "IDR"
			},
			"billAmountLabel": "",
			"billAmountValue": "800000.00",
			"additionalInfo": []
		},
		{
			"billCode": "",
			"billNo": "00011112",
			"billName": "",
			"billShortName": "",
			"billDescription": {
				"english": "Book",
				"indonesia": "Buku"
			},
			"billSubCompany": "00001",
			"billAmount": {
				"value": "801000.00",
				"currency": "IDR"
			},
			"billAmountLabel": "",
			"billAmountValue": "801000.00",
			"additionalInfo": []
		},
		{
			"billCode": "",
			"billNo": "00011113",
			"billName": "",
			"billShortName": "",
			"billDescription": {
				"english": "Bag",
				"indonesia": "Tas"
			},
			"billSubCompany": "00002",
			"billAmount": {
				"value": "802000.00",
				"currency": "IDR"
			},
			"billAmountLabel": "",
			"billAmountValue": "802000.00",
			"additionalInfo": []
		},
		{
			"billCode": "",
			"billNo": "00011114",
			"billName": "",
			"billShortName": "",
			"billDescription": {
				"english": "Pencil",
				"indonesia": "Pensil"
			},
			"billSubCompany": "00003",
			"billAmount": {
				"value": "803000.00",
				"currency": "IDR"
			},
			"billAmountLabel": "",
			"billAmountValue": "803000.00",
			"additionalInfo": []
		},
		{
			"billCode": "",
			"billNo": "00011115",
			"billName": "",
			"billShortName": "",
			"billDescription": {
				"english": "Book",
				"indonesia": "Tas"
			},
			"billSubCompany": "00004",
			"billAmount": {
				"value": "804000.00",
				"currency": "IDR"
			},
			"billAmountLabel": "",
			"billAmountValue": "804000.00",
			"additionalInfo": []
		},
		{
			"billCode": "",
			"billNo": "00011110",
			"billName": "",
			"billShortName": "",
			"billDescription": {
				"english": "Bag",
				"indonesia": "Pensil"
			},
			"billSubCompany": "00005",
			"billAmount": {
				"value": "805000.00",
				"currency": "IDR"
			},
			"billAmountLabel": "",
			"billAmountValue": "805000.00",
			"additionalInfo": []
		},
		{
			"billCode": "",
			"billNo": "00011116",
			"billName": "",
			"billShortName": "",
			"billDescription": {
				"english": "Pencil",
				"indonesia": "Pencil"
			},
			"billSubCompany": "00006",
			"billAmount": {
				"value": "806000.00",
				"currency": "IDR"
			},
			"billAmountLabel": "",
			"billAmountValue": "806000.00",
			"additionalInfo": []
		},
		{
			"billCode": "",
			"billNo": "00011117",
			"billName": "",
			"billShortName": "",
			"billDescription": {
				"english": "Book",
				"indonesia": "Buku"
			},
			"billSubCompany": "00007",
			"billAmount": {
				"value": "807000.00",
				"currency": "IDR"
			},
			"billAmountLabel": "",
			"billAmountValue": "807000.00",
			"additionalInfo": []
		},
		{
			"billCode": "",
			"billNo": "00011118",
			"billName": "",
			"billShortName": "",
			"billDescription": {
				"english": "Bag",
				"indonesia": "Tas"
			},
			"billSubCompany": "00008",
			"billAmount": {
				"value": "808000.00",
				"currency": "IDR"
			},
			"billAmountLabel": "",
			"billAmountValue": "808000.00",
			"additionalInfo": []
		},
		{
			"billCode": "",
			"billNo": "00011119",
			"billName": "",
			"billShortName": "",
			"billDescription": {
				"english": "Pencil",
				"indonesia": "Pensil"
			},
			"billSubCompany": "00009",
			"billAmount": {
				"value": "809000.00",
				"currency": "IDR"
			},
			"billAmountLabel": "",
			"billAmountValue": "809000.00",
			"additionalInfo": []
		}
		],
		"freeTexts": [
		{
			"english": "free text english",
			"indonesia": "free text indonesia"
		}
		],
		"virtualAccountTrxType": "W",
		"feeAmount": {
			"value": "0.00",
			"currency": "IDR"
		},
		"productName": "Limit VA",
		"additionalInfo": ""
	}
}
3. SNAP Shared Biller Payment to VA from Intrabank

This service is to make payment to biller

This feature is not yet available to be accessed via Sandbox.

Additional Headers:
Field Params Type Data Type  Length Type Mandatory Description
CHANNEL-ID Header String(5) Fixed Mandatory in BCA. Channel’ Identifier using WSID Shared Biller (95391)
X-PARTNER-ID Header String(32) Max Mandatory in BCA. Partner ID (Mitra ID)
X-EXTERNAL-ID Header String(36) Max Y Mandatory in BCA. Reference number that should be unique in the same day

Payload:
 
Field Data Type Length Type Mandatory  Format Description
partnerReferenceNo String (128) Max N Alphanumeric Mandatory in BCA. Unique identifier for this Payment. Generated by Mitra (channel-transactionID)
virtualAccountNo String (28) Max Y Alphanumeric Mandatory in BCA. partnerServiceId (8 digit left padding space) + customerNo (up to 20 digit). In BCA, virtualAccountNo max length is 26 (partnerServiceId(8 digits) + customerNo(18 digits)).
inquiryRequestId String (128) Max N Alphanumeric Mandatory in BCA. Inquiry identifier for inquiry. Generated by BCA from inquiry response.
paidAmount Objects - Y -  
value String (16,2) Max Y Decimal Mandatory in BCA. Paid amount with 2 decimal. In BCA, totalAmount max length is 13.2 digits.
currency String (3) Fixed Y ISO-4217 Mandatory in BCA. Currency of amount based on ISO 4217 Currency only available for IDR
trxDateTime Date(25) Max N ISO-8601 Mandatory in BCA. Mitra internal system datetime with timezone, which follows the ISO-8601 standard
billDetails Array of Objects - N - Array with maximum 24 Objects
billNo String (18) Max N Alphanumeric Bill number that customer choose to pay
billDescription Object - N - From Inquiry Response
english String (18) Max N Alphanumeric From Inquiry Response
indonesia String (18) Max N Alphanumeric From Inquiry Response
billSubCompany String (5) Max N Alphanumeric From Inquiry Response
billAmount Objects - N - From Inquiry Response
value String (16,2) Max Y Decimal From Inquiry Response
currency String (3) Fixed Y ISO-4217 From Inquiry Response
additionalInfo Object - N - From Inquiry Response
freeText Array of Objects - N - From Inquiry Response 
english String (32) Max N Alphanumeric From Inquiry Response 
indonesia String (32) Max N Alphanumeric From Inquiry Response 
Result of the request will contains following information:

Response:
 
Field Data Type Length Type Mandatory  Format Description
responseCode String (7) Fixed Y Numeric Mandatory in BCA. Response code: HTTP Code + Service Code + Case Code 
responseMessage String (150) Max Y Alphanumeric Mandatory in BCA. Response description
paymentRequestId String (128) Max N Alphanumeric Mandatory in BCA. Unique identifier for payment. Generated by BCA and has the same value with inquiryRequestI d.
partnerReferenceNo String (128) Max N Alphanumeric Mandatory in BCA. From Inquiry Request (channeltransaction-ID)
virtualAccountNo String (28) Max Y Alphanumeric Mandatory in BCA. partnerServiceI d (8 digit left padding space) + customerNo (up to 20 digit) In BCA, virtualAccountN o max length is 26 Tech. Doc. OpenAPI-Shared-Biller API v1.1| PT. Bank Central Asia, Tbk. 9 (partnerServiceI d(8 digits)+custome rNo(18 digits)).
billDetails Array of Objects - N - Array with maximum 24 Objects
billNo String (18) Max N Alphanumeric Bill number that customer choose to pay
billDescription Object - N - From Inquiry Response
english String (18) Max N Alphanumeric From Inquiry Response
indonesia String (18) Max N Alphanumeric From Inquiry Response
billSubCompany String (5) Max N Alphanumeric From Inquiry Response
billAmount Objects - N - From Inquiry Response
value String (16,2) Max Y Decimal From Inquiry Response
currency String (3) Fixed Y ISO-4217 From Inquiry Response
additionalInfo Object - N - From Inquiry Response
freeTexts Array of Objects - N - Optional in BCA. Array with maximum 9 Objects send by BCA.
english String (32)  Max N Alphanumeric Will be shown in Channel 
indonesia String (32)  Max N Alphanumeric Will be shown in Channel 
Note:
1. currency only available for IDR
2. paymentRequestID is the same value with inquiryRequestID from BCA for each transaction.
Here is the list of error codes that can be returned. 
HTTP Code Error Code Error Message
200 2003300 Successful
202 2023300 Request In Progress
400 4003301 Invalid Field Format {Field Name}
400 4003302 Invalid Mandatory Field {Field Name}
400 4003300 Bad request 
401 4013300 Unauthorized. [Reason]
401 4013301 Invalid token (B2B)
403 4033201 Feature Not Allowed
403 4033302 Exceeds Transaction Amount Limit
403 4033316 Suspend Transaction
404 4043208 Invalid Merchant
404 4043313 Invalid Amount
404 4043212 Invalid Bill. [Reason] (Reason is defined by Biller) 
404 4043214 Paid Bills
404 4043216 Partner Not Found
404 4043218 Inconsistent Request
409 4093200 Conflict
500 5003200 General Error
500 5003201 Internal Server Error 


/openapi/shared-biller/v1.0/transfer-va/payment-intrabank

Request

curl –X POST https://sandbox.bca.co.id/openapi/shared-biller/v1.0/transfer-va/payment-intrabank
-H 'CHANNEL-ID': '95391'
-H 'X-PARTNER-ID': '676767'
-H 'X-EXTERNAL-ID': '123456789'
-d '
{
	"partnerServiceId": " 21180",
	"customerNo": "123456789012345678",
	"referenceNo": "12345",
	"virtualAccountNo": " 00003013123456789012345678",
	"inquiryRequestId": "202209161033070301300001197441",
	"partnerReferenceNo": "23123123",
	"paidAmount": {
		"value": "803000.00",
		"currency": "IDR"
	},
	"trxDateTime": "2023-07-31T15:08:24+07:00",
	"billDetails": [
	{
		"billcode": "",
		"billNo": "00011114",
		"billName": "",
		"billShortName": "",
		"billDescription": {
			"english": "Pencil",
			"indonesia": "Pensil"
		},
		"billSubCompany": "00003",
		"billAmount": {
			"value": "803000.00",
			"currency": "IDR"
		},
		"additionalInfo": "",
		"billReferenceNo": ""
	}
	],
	"freeText": [
		{
			"english": "eating",
			"indonesia": "makan"
		}
	],
	"additionalInfo": "alalalala"
}'

/openapi/shared-biller/v1.0/transfer-va/payment-intrabank

Response

{
	"responseCode": "2003300",
	"responseMessage": "Successful",
	"virtualAccountData": {
		"paymentFlagReason": {
			"english": "",
			"indonesia": ""
		},
		"partnerServiceId": " 21180",
		"customerNo": "22203",
		"virtualAccountNo": " 2118022203",
		"virtualAccountName": "",
		"virtualAccountEmail": "",
		"virtualAccountPhone": "",
		"sourceAccountNo": "",
		"sourceAccountType": "",
		"inquiryRequestId": "202307311953292118000043785288",
		"paymentRequestId": "202307311953292118000043785288",
		"partnerReferenceNo": "5555614",
		"referenceNo": "",
		"paidAmount": {
			"value": "803000.00",
			"currency": "IDR"
		},
		"paidBills": "",
		"totalAmount": {
			"value": "",
			"currency": ""
		},
		"trxDateTime": "",
		"journalNum": "",
		"paymentType": "",
		"flagAdvise": "",
		"billDetails": [
		{
			"billCode": "",
			"billNo": "00011114",
			"billName": "",
			"billShortName": "",
			"billDescription": {
				"english": "Pencil",
				"indonesia": "Pensil"
			},
			"billSubCompany": "00003",
			"billAmount": {
				"value": "803000.00",
				"currency": "IDR"
			},
			"additionalInfo": "",
			"status": "",
			"reason": {
				"english": "",
				"indonesia": ""
			}
		}
		],
		"freeTexts": [
			{
				"english": "ABCDEFGHIJKLM ENGLISH FREETEXT 1",
				"indonesia": "ABCDEFGHIJ INDONESIAN FREETEXT 1"
			},
			{
				"english": "ABCDEFGHIJKLM ENGLISH FREETEXT 2",
				"indonesia": "ABCDEFGHIJ INDONESIAN FREETEXT 2"
			},
			{
				"english": "ABCDEFGHIJKLM ENGLISH FREETEXT 3",
				"indonesia": "ABCDEFGHIJ INDONESIAN FREETEXT 3"
			},
			{
				"english": "ABCDEFGHIJKLM ENGLISH FREETEXT 4",
				"indonesia": "ABCDEFGHIJ INDONESIAN FREETEXT 4"
			},
			{
				"english": "ABCDEFGHIJKLM ENGLISH FREETEXT 5",
				"indonesia": "ABCDEFGHIJ INDONESIAN FREETEXT 5"
			},
			{
				"english": "ABCDEFGHIJKLM ENGLISH FREETEXT 6",
				"indonesia": "ABCDEFGHIJ INDONESIAN FREETEXT 6"
			},
			{
				"english": "ABCDEFGHIJKLM ENGLISH FREETEXT 7",
				"indonesia": "ABCDEFGHIJ INDONESIAN FREETEXT 7"
			},
			{
				"english": "ABCDEFGHIJKLM ENGLISH FREETEXT 8",
				"indonesia": "ABCDEFGHIJ INDONESIAN FREETEXT 8"
			},
			{
				"english": "ABCDEFGHIJKLM ENGLISH FREETEXT 9",
				"indonesia": "ABCDEFGHIJ INDONESIAN FREETEXT 9"
			}
		],
		"feeAmount": {
			"value": "",
			"currency": ""
		},
		"productName": "",
		"additionalInfo": ""
	}
}

Transfer Dana

1. SNAP Banking External Account Inquiry

This service is used to inquiry account external.

 

This feature is not yet available to be accessed via Sandbox.

Additional Headers:
Field Params Type Data Type  Length Type Mandatory Description
CHANNEL-ID Header String(5) Fixed Channel ID using KlikBCA Bisnis's WSID (95051)
X-PARTNER-ID Header String(10) Fixed Corporate ID 
X-EXTERNAL-ID Header String(32) Max Y Numeric String.
Reference number that should be unique in the same day

Payload:
 
Field Data Type Length Type Mandatory  Format Description
partnerReferenceNo String (64) Max Y - Mandatory in BCA.
Transaction identifier on service consumer system
beneficiaryBankCode String (8) Max Y Alphanumeric Mandatory in BCA. Beneficiary Bank Code.
Beneficiary bank code. In BCA using SWIFT Code or 3 digit bank code (if destination doesn't have SWIFT Code). Beneficiary Bank Code can be checked on KBB menu: Miscellaneous > Information > Bank Code List
beneficiaryAccountNo String (34) Max Y Alphanumeric Mandatory in BCA.
Beneficiary Account
If inquiryService = 1 (Switcher) max length = 28
If inquiryService = 2 (BI-FAST) max length = 34
additionalInfo Object   Y    
  sourceAccountNo String (10) Fixed C Numeric Mandatory in BCA if inquiry using BI-FAST
Source Account
  inquiryService String (1) Fixed Y Numeric Fill in according to the transfer transaction that will be used
1: Inquiry via Switcher
2: Inquiry via BI-FAST
amount object   C    
   value String (13,2) Max C Decimal This field conditional and will mandatory if inquiryService = 2
(BI-FAST)
Net amount of the transaction. if it's IDR then value includes 2
decimal digits. In BCA, max length = 13.2
 
  currency String(3) Fixed C ISO-4217 This field conditional and will mandatory if inquiryService = 2 (BI-FAST)
Currency (IDR)
purposeCode String (5) Max C Numeric This field conditional and will mandatory if inquiryService = 2 (BI-FAST)
Purpose Code
01 = Investment / Investasi
02 = Transfer of Wealth / Pemindahan Dana
03 = Purchase / Pembelian
99 = Others / Lainnya
Result of the request will contains following information:

Response:
 
Field Data Type Length Type Mandatory  Format Description
partnerReferenceNo String (64) Max Y - Send by BCA according to the request input.
Transaction identifier on service consumer system
responseCode String (7) Fixed Y Alphanumeric Response code to identify transaction status.
Format : AAABBCC
AAA : HTTP
BB : Service Code
CC : Case Code
Example: 2001600
responseMessage String (150) Max Y Alphanumeric Response description
referenceNo String (64) Max C Numeric Send by BCA.
Transaction identifier on service provider system. Must be filled upon successful transaction
Unique each day from BCA. Must be filled upon successful transaction.
benefiaryAcco untName String (100)  Max Y - Send by BCA.
Beneficiary Account Name
beneficiaryAccountNo String (34)  Max Y - Send by BCA according to the request input.
Beneficiary account number
beneficiaryBankCode String (8) Max Y - Send by BCA according to the request input.
Beneficiary Bank Code. In BCA using SWIFT Code or 3 digit bank code (if destination doesn’t have SWIFT Code)
Beneficiary Bank Code can be checked on KBB menu:
Miscellaneous > Information > Bank Code Lis


Here is the list of error codes that can be returned. 
HTTP Code Error Code Error Message Condition
200 2001600 Successful Transaction successful.
400 4001601 Invalid Field Format {field} The data you entered does not match the format requirements. 
400 4001602 Invalid Mandatory Field {Field} Mandatory field should be fulfilled.
401 4011600 Unauthorized. [Reason] Invalid Signature/Unknown Client/Connection Not Allowed. 
401 4011601 Invalid token (B2B) Access Token Not Exist/Access Token Expired/Token is Invalid.
403 4031601 Feature Not Allowed Feature Not Allowed. Please make sure you registered this feature in your partnership data.
404 4041602 Invalid Routing Your transaction amount exceeds your company limit
404 4041611 Invalid Account  The account used in transaction not valid
409 4091600 Conflict Cannot use same X-EXTERNAL-ID in the same day. 
500 5001600 General Error General Error.
504 5041600 Timeout Transaction timeout.


curl –X POST https://sandbox.bca.co.id/openapi/v2.0/account-inquiry-external

Request

curl –X POST https://sandbox.bca.co.id/openapi/v2.0/account-inquiry-external
-H 'Content-type:application/json'
-H 'Authorization:Bearer gp9HjjEj813Y9JGoqwOeOPWbnt4CUpvIJbU1mMU4a11MNDZ7Sg5u9a'
-H 'X-TIMESTAMP:2020-12-21T10:30:24+07:00'
-H 'X-SIGNATURE:85be817c55b2c135157c7e89f52499bf0c25ad6eeebe04a986e8c862561b19a5'
-H 'ORIGIN:www.hostname.com'
-H 'X-PARTNER-ID:KBCABCINDO'
-H 'X-EXTERNAL-ID:28910000006578499987546738976812'
-H 'CHANNEL-ID:95051'
-d '
{
	"beneficiaryBankCode": "BRINIDJA",
	"beneficiaryAccountNo": "888801000157508",
	"partnerReferenceNo": "2020102900000000000001",
	"additionalInfo": {
		"inquiryService": "1",
	}

}'

External Account Inquiry V2 using BI-FAST:

curl –X POST https://sandbox.bca.co.id/openapi/v2.0/account-inquiry-external
-H 'Content-type:application/json'
-H 'Authorization:Bearer gp9HjjEj813Y9JGoqwOeOPWbnt4CUpvIJbU1mMU4a11MNDZ7Sg5u9a'
-H 'X-TIMESTAMP:2020-12-21T10:30:24+07:00'
-H 'X-SIGNATURE:85be817c55b2c135157c7e89f52499bf0c25ad6eeebe04a986e8c862561b19a5'
-H 'ORIGIN:www.hostname.com'
-H 'X-PARTNER-ID:KBCABCINDO'
-H 'X-EXTERNAL-ID:28910000006578499987546738976812'
-H 'CHANNEL-ID:95051'
-d '
{
	"beneficiaryBankCode": "002",
	"beneficiaryAccountNo": "888801000157508",
	"partnerReferenceNo": "2020102900000000000001",
	"additionalInfo": {
		"sourceAccountNo": "0123456789",
		"inquiryService": "2",
		"amount": {
			"value": "10000.00",
			"currency": "IDR"
		},
		"purposeCode": "02"
	}
}'

curl –X POST https://sandbox.bca.co.id/openapi/v2.0/account-inquiry-external

Response

{
	"partnerReferenceNo": "2020102900000000000001",
	"responseCode": "2001600",
	"responseMessage": "Successful",
	"referenceNo": "2020102977770000000009",
	"beneficiaryAccountName": "Yories Yolanda",
	"beneficiaryAccountNo": "888801000157508",
	"beneficiaryBankCode": "BRINIDJA"
}

SNAP Banking External Account Inquiry V2 uses following error sample schema:
-H 'Content-type:application/json'
-H 'X-TIMESTAMP:2020-12-21T10:30:24+07:00'
{
	"partnerReferenceNo": "2020102900000000000001",
	"responseCode": "4001601",
	"responseMessage": "Invalid Field Format beneficiaryAccountNo",
	"referenceNo": "",
	"beneficiaryAccountName": "",
	"beneficiaryAccountNo": "888801000157508",
	"beneficiaryBankCode": "BRINIDJA"
}
2. SNAP Banking Interbank Transfer

Introduction
With SNAP Banking Interbank transfer, you can perform fund transfer to other domestic bank by using Switcher/BI-FAST service. The source of fund transfer must be from your own account on your KlikBCA Bisnis. SNAP Banking Interbank Transfer transaction amount limit will follow KlikBCA Bisnis’s rules about transaction amount limit in the following menu: Miscellaneous > Information > Transaction Limit Usage > Funds Transfer to Domestic BCA thru LLG, ONLINE and BI FAST Maximum Limit per day per corporate
SNAP Banking Interbank Transfer frequency limit will follow KlikBCA Bisnis’s rules about frequency limit in the following menu: Miscellaneous > Information > Transaction Limit Usage > Funds Transfer to Domestic Bank thru LLG, ONLINE and BI FAST Maximum Number of Transaction per day per corporate

This feature is not yet available to be accessed via Sandbox.

Additional Headers:
Field Params Type Data Type  Length Type Mandatory Description
CHANNEL-ID Header String(5) Fixed Channel’s identifier using WSID KlikBCA Bisnis (95051) 
X-PARTNER-ID Header String(10) Max Corporate ID 
X-EXTERNAL-ID Header String(32) Max Y Numeric String. Reference number that should be unique in the same day.

Payload:
 
Field Data Type Length Type Mandatory  Format Description
partnerReferenceNo String (64) Max Y - Transaction identifier on service consumer system
amount Object   Y   -
   value String (13.2) Max Y Decimal Net amount of the transaction.
If it’s IDR then value includes 2 decimal digits. 
   currency String (3) Fixed Y ISO-4217 Currency
beneficiaryAccountName String (100) Max Y - Beneficiary Account Name
beneficiaryAccountNo String (34) Max Y - Beneficiary Account
beneficiaryBankCode String(8) Max Y SWIFT Code/3 digit bank code Beneficiary Bank Code.
In BCA using SWIFT Code or 3 digit bank code (if destination doesn’t have SWIFT Code).
Beneficiary Bank Code can be checked on KBB menu : Miscellaneous > Information > Bank Code List
beneficiaryEmail String(50) Max N abc@domain.com Beneficiary Email. Only one email address can be submitted.
sourceAccountNo String (10) Fixed Y Numeric This response will be sent according to the request input.
Source Account.
transactionDate String (25) Max Y ISO-8601 Mandatory in BCA.
Transaction date
additionalInfo Object   Y    
   transferType String (1) Fixed Y   1 = Transfer via switcher
2 = Transfer via BIFAST 
   purposeCode String (5) Max N   Mandatory if transferType = 2
Purpose Code as defined in techdoc BI
01 = Investment/Investasi
02 = Transfer of Wealth/Pemindahan Dana
03 = Purchase/Pembelian
99 = Others/Lainnya
Result of the request will contains following information:

Response:
 
Field Data Type Length Type Mandatory  Format Description
partnerReferenceNo String(64) Max N Numeric This response will be sent according to the request input. Transaction identifier on sevice consumer system.
responseCode String (7) Fixed Y Numeric Response code
responseMessage String(150) Max Y Alphanumeric Response description
referenceNo String (64) Max C Numeric Will be sent when the transaction is successful as transaction identifier on service provider system.
referenceNo = timestamp(6, yymmdd) + prefix menu(2) + sequence(6).
prefix menu=kode fitur=02.
sequence number unique each day.
amount Object   Y    
   value String (13.2) Max Y Decimal This response will be sent according to the request input. Net amount of the transaction. If it’s IDR then value includes 2 decimal digits. 
   currency String (3) Fixed Y ISO-4217 This response will be sent according to the request input. Currency.
beneficiaryAccountNo String (34)  Max Y Numeric This response will be sent according to the request input. Beneficiary account number. 
beneficiaryBankCode String (8) Max N SWIFT Code/3 digit bank code This response will be sent according to the request input. Beneficiary Bank Code. In BCA using SWIFT Code or 3 digit bank code (if destination doesn’t have SWIFT Code). Beneficiary Bank Code can be checked on KBB menu : Miscellaneous > Information > Bank Code List
sourceAccountNo String (19) Max N - Send by BCA according to the request input.
Source account
additionalInfo          
bifastId String (18) Fixed C Alphanumeric Will be sent when the transaction is successful and transferType = 2. 


Here is the list of error codes that can be returned. 
HTTP Code Error Code Error Message Condition Transaction Status
400 4001800 Bad request General request failed error.  
400 4001801 Invalid Field Format {field} The data you entered does not match the format requirements.  
400 4001802 Invalid Mandatory Field {Field Name} Mandatory field should be fulfilled.   
401 4011800 Unauthorized. [Reason] Invalid Signature/Unknown Client/Connection Not Allowed.  
401 4011801 Invalid token (B2B) Access Token Not Exist/Access Token Expired/Token is Invalid.  
403 4031802 Exceeds Transaction Amount Limit Your transaction amount exceeds your company limit. Please check your Company Limit at KlikBCA Bisnis.  
403 4031804 Activity Count Limit Exceeded Too many request, Exceeds Transaction Frequency Limit. Please check your Company Limit at KlikBCA Bisnis.  
403 4031814 Insufficient Funds Your balance in source account less than the amount of transfer you perform.  
403 4031801 Feature Not Allowed  The feature is not allowed to use. Please make sure you registered this feature in your partnership data.   
403 4031815 Transaction not permitted BI-FAST service for selected Beneficiary Bank is currently unavailable. Please choose another transfer service.  
404 4041803 Bank Not Supported By Switch Bank not supported by BI-FAST.  
404 4041811 Invalid Account The account used in transaction not valid (do not exist/closed/cant be used for transactions).  
404 4041813 Invalid Amount  Wrong amount input.  
404 4041802 Invalid Routing  Connection problem to Switcher.  
409 4091800 Conflict X-EXTERNAL-ID duplicate.  
429 4291800 Too Many Requests Maximum transaction limit exceeded.  
500 5001800 General Error Wrong request field input. Internal system/external BI-FAST service is currently under maintenance. Please use other BCA transfer services.  
500 5001801 Internal Server Error Unknown internal server failure, please retry the process again.  
504 5041800 Timeout Your transaction timeout  

If you get responseCode 5001801 (Unknown Error/Unknown internal server failure, please retry the process again) from BCA, please make sure to check your account statement before retry the transaction.



curl –X POST https://sandbox.bca.co.id/openapi/v2.0/transfer-interbank

Request

Request Interbank Transfer via Switcher Sample 
-H 'CHANNEL-ID':'95051'
-H 'X-PARTNER-ID': 'KBBABCINDO'
-H 'X-EXTERNAL-ID': '28910000006578499987546738976812'
-d '
{
	"partnerReferenceNo": "2020102900000000000001",
	"amount": {
		"value": "10000.00",
		"currency": "IDR"
	},
	"beneficiaryAccountName": "Yories Yolanda",
	"beneficiaryAccountNo": "888801000157508",
	"beneficiaryBankCode": "BRINIDJA",
	"beneficiaryEmail": "yories.yolanda@work.bri.co.id",
	"sourceAccountNo": "0123456789",
	"transactionDate": "2020-12-21T14:36:11+07:00"
	"additionalInfo": {
        "transferType": "1",
        "purposeCode": ""
    }
}'

Request Interbank Transfer via BI-FAST Sample

-H 'CHANNEL-ID':'95051'
-H 'X-PARTNER-ID': 'KBBABCINDO'
-H 'X-EXTERNAL-ID': '28910000006578499987546738976812'

-d '
{
	"partnerReferenceNo": "2020102900000000000001",
	"amount": {
	"value": "10000.00",
	"currency": "IDR"
	},
	"beneficiaryAccountName": "Yories Yolanda",
	"beneficiaryAccountNo": "888801000157508",
	"beneficiaryBankCode": "BRINDIJA",
	"beneficiaryEmail": "yories.yolanda@work.bri.co.id",
	"sourceAccountNo": "0123456789",
	"transactionDate": "2020-12-21T14:36:11+07:00",
	"additionalInfo": {
		"transferType": "2",
		"purposeCode": "02"
	}
}

curl –X POST https://sandbox.bca.co.id/openapi/v2.0/transfer-interbank

Response

Response Sample

{
	"responseCode": "2001800",
	"responseMessage": "Successful",
	"referenceNo": "2020102977770000000009",
	"partnerReferenceNo": "2020102900000000000001",
	"amount": {
		"value": "10000.00",
		"currency": "IDR"
	},
	"beneficiaryAccountNo": "888801000157508",
	"beneficiaryBankCode": "BRINDIJA",
	"sourceAccountNo": "0123456789"
}


Error Sample
-H 'Content-type': 'application/json'
-H 'X-TIMESTAMP': '2020-12-17T13:50:04+07:00'
{
 "responseCode": "4001801",
 "responseMessage": "Invalid Field Format beneficiaryAccountNo",
 "referenceNo": "",
 "partnerReferenceNo": "2020102900000000000001",
 "amount": {
 "value": "10000.00",
 "currency": "IDR"
 },
 "beneficiaryAccountNo": "888801000157508",
 "beneficiaryBankCode": " BRINIDJA",
 "sourceAccountNo": "0123456789"
 "additionalInfo": {
	"transferType": "1",
	"purposeCode": ""
 }

}
3. SNAP Banking Internal Account Inquiry

This service is used to inquiry BCA account.

 

This feature is not yet available to be accessed via Sandbox.

Additional Headers:
Field Params Type Data Type  Length Type Mandatory Description
CHANNEL-ID Header String(5) Fixed Channel’s identifier using WSID KlikBCA Bisnis (95051) 
X-PARTNER-ID Header String(10) Fixed KlikBCA Bisnis’s Corporate ID. 
X-EXTERNAL-ID Header String(32) Max Y Numeric String. Reference number that should be unique in the same day.

Payload:
 
Field Data Type Length Type Mandatory  Format Description
partnerReferenceNo String (64) Max Y Numeric Transaction identifier on service consumer systems. The partnerReferenceNo used in the inquiry transaction must be reused when transferring to the account inquired.
beneficiaryAccountNo String (10) Fixed Y Numeric Beneficiary Account
Result of the request will contains following information:

Response:
 
Field Data Type Length Type Mandatory  Format Description
responseCode String (7) Fixed Y Numeric Response code
responseMessage String (150) Max Y Alphanumeric Response description
referenceNo String (64) Max Y Numeric This response will be sent as transaction identifier on service provider system. Must be filled upon successful transaction. 
partnerReferenceNo String (64) Max N Numeric This response will be sent according to the request input. Transaction identifier on service consumer system
beneficiaryAccountName String (100)  Max Y Alphanumeric & Special Character This response will be sent according to the request input. Beneficiary Account Name.
The name returned is the name displayed on the channel, which have 24 digit characters. There is no special character validation, but the special characters displayed are: | @ # $ % ¬ & * ( ) _ + - = ¢ ! \ { } ] ; : , . / < > ? ` ^
beneficiaryAccountNo String (10)  Fixed Y Numeric This response will be sent according to the request input.
Beneficiary account number.


Here is the list of error codes that can be returned. 
HTTP Code Error Code Error Message Condition
400 4001500 Bad request General request failed error.
400 4001501 Invalid Field Format {field name} The data you entered does not match the format requirements.
400 4001502 Invalid Mandatory Field {field name} Mandatory field should be fulfilled.
401 4011500 Unauthorized. [Reason] Invalid Signature/Unknown Client/Connection Not Allowed.
401 4011501 Invalid token (B2B) Access Token Not Exist/Access Token Expired/Token is Invalid.
403 4031501 Feature Not Allowed The feature is not allowed to use. Please make sure you registered this feature in your partnership data. 
409 4091500 Conflict X-EXTERNAL-ID duplicate.
403 4031518 Inactive Account Indicates inactive account
404 4041511 Invalid Account  The account used in transaction not valid (do not exist/can’t be used for transactions). 
500 5001500 General Error Wrong request field input. 
500 5001501 Internal Server Error  Unknown internal server failure, please retry the process again.
504 5041500 Timeout Your transaction timeout.


curl –X POST https://sandbox.bca.co.id/openapi/v1.0/account-inquiry-internal

Request

-H 'Content-type': 'application/json'
-H 'Authorization': 'Bearer gp9HjjEj813Y9JGoqwOeOPWbnt4CUpvIJbU1mMU4a11MNDZ7Sg5u9a'
-H 'X-TIMESTAMP': '2020-12-17T13:50:04+07:00'
-H 'X-SIGNATURE': '85be817c55b2c135157c7e89f52499bf0c25ad6eeebe04a986e8c862561b19a5'
-H 'ORIGIN': 'www.hostname.com'
-H 'CHANNEL-ID':'95051'
-H 'X-PARTNER-ID': 'KBBABCINDO'
-H 'X-EXTERNAL-ID': '28910000006578499987546738976812'
-d '
{
"partnerReferenceNo": "202010290000000001",
"beneficiaryAccountNo": "8010001575"
}

curl –X POST https://sandbox.bca.co.id/openapi/v1.0/account-inquiry-internal

Response

-H 'Content-type': 'application/json'
-H 'X-TIMESTAMP': '2020-12-17T13:50:04+07:00'
{
"responseCode": "2001500",
"responseMessage": "Successful",
"referenceNo": "202010297777000009",
"partnerReferenceNo": "202010290000000001",
"beneficiaryAccountName": "Yories Yolanda",
"beneficiaryAccountNo": "8010001575"
}
4. SNAP Banking Intrabank Transfer

This service is used to transfer BCA.

 

This feature is not yet available to be accessed via Sandbox.

Additional Headers:
Field Params Type Data Type  Length Type Mandatory Description
CHANNEL-ID Header String(5) Fixed Channel’s identifier using WSID KlikBCA Bisnis (95051) 
X-PARTNER-ID Header String(32) Max Corporate ID 

Payload:
 
Field Data Type Length Type Mandatory  Format Description
partnerReferenceNo String (64) Max Y - Mandatory in BCA.
Transaction identifier on service consumer system

For transfers that begin with beneficiary account number inquiry using the SNAP Banking Internal Account Inquiry, it is required to use the same partnerReferenceNo with SNAP Banking Internal Account Inquiry that has been done.
beneficiaryEmail String (50) Max N abc@domain.com Optional in BCA.
Beneficiary Email
amount Object   Y Numeric Mandatory in BCA.
Net amount of the transaction
   value String (16.2) Max Y Decimal Mandatory in BCA.
If it’s IDR then value includes 2 decimal digits. BCA will send response amount with format value Numeric (13.2)
   currency String (3) Fixed Y ISO-4217 Mandatory in BCA.
Account currency type
beneficiaryAccountNo String (34) Max Y Numeric Mandatory in BCA.
Beneficiary Account Number registered in BCA. For BCA, length account number is 10 digit 
remark String (50) Max N   Optional in BCA.
Remark/transac tion description. For BCA, remark is 36 digit divided in 2 field (remark 1 with 18 digit and remark 2 with 18 digit) with no special character 
sourceAccountNo String (19) Max Y Numeric sourceAccountNo registered in BCA.
For BCA, length account number is 10 digit 
transactionDate String (25) Max Y ISODateTime
ISO-8601
Mandatory in BCA.
Transaction date
additionalInfo Object   N   Additional information
economicActivity String (60) Max Y
(if the
beneficiaryAccountNumber
are WNA citizenship) 
- For details, please check on the Economic Activity table below
transactionPurpose String (2) Fixed Y
(if the currency of beneficiaryAccountNumber
are in SGD or USD)
Numeric 01 Pembelian barang / Purchase of Goods
02 Pembelian jasa / Purchase of Service
03 Pembayaran hutang / Debt Payment
04 Pembayaran pajak / Tax Payment
05 Impor / Import
06 Biaya Perjalanan Luar Negeri / Business Travel Expenses
07 Biaya remunerasi pegawai / Remuneration Expenses
08 Biaya administrasi / Administration Fee
09 Biaya overhead / Overhead Expenses
10 Simpanan dalam valas / Saving
11 Investasi Pembelian Obligasi Korporasi / Purchase of Corporate Bonds
12 Investasi Pembelian Surat Berharga Negara (SBN) / Purchase of Government Securities
13 Investasi Penyertaan Langsung / Direct Capital Investment
14 Penambahan modal kerja / Working Capital
15 Telah mendapat ijin BI / Approved by BI
Result of the request will contains following information:

Response:
 
Field Data Type Length Type Mandatory  Format Description
responseCode String (7) Fixed Y - Response code
responseMessage String (150) Max Y - Response description
referenceNo String (64) Max Y (When the transaction is successful) Numeric Send by BCA.
Transaction identifier on service provider system.
Unique each day from BCA
Must be filled upon successful transaction.
partnerReferenceNo String (64) Max Y - Send by BCA according to the request input.
Transaction identifier on service customer system (unique each day from partner)
amount Object   Y    
   value String (16.2)

Max Y Decimal Send by BCA according to the request input.
If it’s IDR then value includes 2 decimal digits. BCA will send response amount with format value Numeric (13.2)
   currency String (3) Max Y ISO-4217 Send by BCA according to the request input. Currency
beneficiaryAccountNo String (34)  Max Y Numeric Send by BCA according to the request input.
Beneficiary account number
sourceAccountNo String (19) Max Y Numeric Send by BCA according to the request input.
Source account number
transactionDate String (25) Max Y ISODateTime
ISO-8601
Send by BCA according to the request input.
Transaction date 
additionalInfo Object   N   Additional information
   economicActivity String (60) Max Y (if the beneficiaryAccountNumber are WNA citizenship)  - Send by BCA according to the request input.
For details, please check on the Economic Activity table below
   transactionPurpose String (2) Fixed Y (if the currency of beneficiaryAccountNumber are in SGD or USD) Numeric Send by BCA according to the request input.
01 Pembelian barang / Purchase of Goods

02 Pembelian jasa / Purchase of Service
03 Pembayaran hutang / Debt Payment
04 Pembayaran pajak / Tax Payment
05 Impor / Import
06 Biaya Perjalanan Luar Negeri / Business Travel Expenses
07 Biaya remunerasi pegawai / Remuneration Expenses
08 Biaya administrasi / Administration Fee
09 Biaya overhead / Overhead Expenses
10 Simpanan dalam valas / Saving
11 Investasi Pembelian Obligasi Korporasi / Purchase of Corporate Bonds
12 Investasi Pembelian Surat Berharga Negara (SBN) / Purchase of Government Securities
13 Investasi Penyertaan Langsung / Direct Capital Investment
14 Penambahan modal kerja / Working Capital
15 Telah mendapat ijin BI / Approved by BI
Economic Activity Table 
Source Account Destination Account Economic Activity
WNI WNA A :
  • Biaya Hidup Pihak Asing
  • Jual beli barang & jasa di Ind 
  • Pembukaan SKBDN
  • Pembukaan LC Impor dlm Negeri
  • Pembukaan LC Impor dlm Negeri Utang LN & restrukturisasi
  • Surat Berharga (SSB) dalam Rp
  • Penyertaan langsung di Ind
WNA WNA B :
  • Pengalihan milik penyertaan lsg
  • Surat berharga dalam Rp
  • Jual beli barang & jasa di Ind 
  • Biaya hidup pihak asing

Choose one of the economic activities according to the transaction needs.



Here is the list of error codes that can be returned. 
HTTP Code Error Code Error Message
400 4001700 Bad request
400 4001702 Invalid Mandatory Field {Field} 
400 4001701 Invalid Field Format {Field}
401 4011700 Unauthorized. [Reason]
401 4011701 Invalid token (B2B)
403 4031701 Feature Not Allowed
403 4031718 Inactive Account 
403 4031702 Exceeds Transaction Amount Limit
403 4031704 Activity Count Limit Exceeded
403 4031714 Insufficient Funds
404 4041713 Invalid Amount
404 4041711 Invalid Account 
409 4091700 Conflict
429 4291700 Too Many Requests 
500 5001700 General Error
500 5001701 Internal Server Error
504 5041700 Timeout

If you get responseCode 5001701 (Internal Server Error) from BCA, please make sure to check your account statement before retry the transaction.



curl –X POST https://sandbox.bca.co.id/openapi/v1.0/transfer-intrabank

Request

-H 'CHANNEL-ID':'95051'
-H 'X-PARTNER-ID': 'KBBABCINDO'
-d '
{
	"partnerReferenceNo": "2020102900000000000001",
	"amount": {
		"value": "10000.00",
		"currency": "IDR"
	},
	"beneficiaryAccountNo": "888801000157508",
	"beneficiaryEmail": "yories.yolanda@work.co.id",
	"remark": "remark test",
	"sourceAccountNo": "888801000157508",
	"transactionDate": "2020-12-21T10:30:24+07:00",
	"additionalInfo": {
		"economicActivity": "Biaya Hidup Pihak Asing",
		"transactionPurpose": "01"
	}
}

curl –X POST https://sandbox.bca.co.id/openapi/v1.0/transfer-intrabank

Response

{
	"responseCode": "2001700",
	"responseMessage": "Successful",
	"referenceNo": "2020102977770000000009",
	"partnerReferenceNo": "2020102900000000000001",
	"amount": {
		"value": "10000.00",
		"currency": "IDR"
	},
	"beneficiaryAccountNo": "888801000157508",
	"sourceAccountNo": "888801000157508",
	"transactionDate": "2020-12-21T10:30:24+07:00",
	"additionalInfo": {
		"economicActivity": "Biaya Hidup Pihak Asing",
		"transactionPurpose": "01"
	}
}
5. SNAP Banking Notify RTGS

This service is used to Transfer RTGS Notification.

 

This feature is not yet available to be accessed via Sandbox.

Additional Headers:
Field Params Type Data Type  Length Type Mandatory Description
CHANNEL-ID Header String(5) Fixed Channel’ Identifier
X-PARTNER-ID Header String(32) Max Corporate ID 

Payload:
 
Field Data Type Length Type Mandatory  Format Description
originalPartnerReferenceNo String (64) Max N - Sent by BCA
Original transaction identifier on service consumer system
originalReferenceNo String (64) Max N - Sent by BCA
Original transaction identifier on service provider system 
originalExternalId String (19) Max N - Sent by BCA
Original Customer Reference Number
latestTransactionStatus String (2) Fixed Y   Sent by BCA.
BCA only notifies rejection from transactions that have been successfully processed by BCA
00 - Success
01 - Initiated
02 - Paying
03 - Pendin
04 - Refunded
05 - Canceled
06 - Failed
07 - Not found
amount Object   Y    
   value String (16.2) Max Y Decimal Sent by BCA
Net amount of the transaction. If it's IDR then value includes 2 decimal digits.
In BCA, max length = 13.2
   currency String (3) Fixed Y ISO-4217 Sent by BCA.
Currency
beneficiaryAccountName String (100) Max Y - Sent by BCA
Beneficiary Account Name
beneficiaryAccountNo String (34) Max Y - Sent by BCA
Beneficiary Account
beneficiaryBankCode String(8) Max Y - Sent by BCA.
Beneficiary Bank Code. In BCA using SWIFT Code or 3 digit bank code (if destination doesn't have SWIFT Code)
sourceAccountNo String (19) Max Y - Sent by BCA
Source Account. 10 digits for BCA Account.
transactionDate String (25) Max Y ISO-8601 Mandatory in BCA.
Transaction Date, which follows the ISO-8601 standard
additionalInfo Object - Y - Sent by BCA
Additional Info
   rejectStatusID String (100) Max Y - Sent by BCA
Reject Description in Indonesian 
   rejectStatusEN String (100) Max Y - Sent by BCA
Reject Description in English
traceNo String (100) Max Y - Sent by BCA
Number for tracking to destination bank.
In BCA traceNo=ppu_num ber with prefix “(“ 
Result of the request will contains following information:

Response:
 
Field Data Type Length Type Mandatory  Format Description
responseCode String (7) Fixed Y - Response code
responseMessage String(150) Max Y - Response description


curl –X POST https://copartners.com/openapi/v1.0/transfer-rtgs/notify

Request

-H 'CHANNEL-ID':'95051'
-H 'X-PARTNER-ID': 'KBCABCINDO'
-d '
{
 "originalPartnerReferenceNo": "2020102900000000000001",
 "originalReferenceNo": "2020102977770000000009",
 "originalExternalId": "10052019",
 "latestTransactionStatus": "00",
 "amount": {
 "value": "10000.00",
 "currency": "IDR"
 },
 "beneficiaryAccountName": "Yories Yolanda",
 "beneficiaryAccountNo": "888801000003301",
 "beneficiaryBankCode": "002",
 "sourceAccountNo": "1234567890",
 "transactionDate": "2020-12-21T14:06:21+07:000",
 "additionalInfo": {
 "rejectStatusID": "Nomor rekening tidak terdaftar",
 "rejectStatusEN": "Account number is not registered",
 "traceNo": "(DAC8"
}
}'

curl –X POST https://copartners.com/openapi/v1.0/transfer-rtgs/notify

Response

{
 "responseCode": "2007600",
 "responseMessage": "Successful"
 }
6. SNAP Banking Notify SKNBI

This service is used to Transfer SKN Notification.

 

This feature is not yet available to be accessed via Sandbox.

Additional Headers:
Field Params Type Data Type Mandatory Description
CHANNEL-ID Header String(5) Channel’ Identifier
X-PARTNER-ID Header String(32) Corporate ID 

Payload:
 
Field Data Type Length Type Mandatory  Format Description
originalPartnerReferenceNo String (64) Max N - Sent by BCA
Original transaction identifier on service consumer system
originalReferenceNo String (64) Max N - Sent by BCA
Original transaction identifier on service provider system 
originalExternalId String (19) Max N - Sent by BCA
Original Customer Reference Number
latestTransactionStatus String (2) Fixed Y   Sent by BCA.
BCA only notifies rejection from transactions that have been successfully processed by BCA
00 - Success
01 - Initiated
02 - Paying
03 - Pendin
04 - Refunded
05 - Canceled
06 - Failed
07 - Not found
amount Object   Y    
   value String (16.2) Max Y Decimal Sent by BCA
Net amount of the transaction. If it's IDR then value includes 2 decimal digits.
In BCA, max length = 13.2
   currency String (3)
ISO 4217
Fixed Y - Sent by BCA.
Currency
beneficiaryAccountName String (100) Max Y - Sent by BCA
Beneficiary Account Name
beneficiaryAccountNo String (34) Max Y - Sent by BCA
Beneficiary Account
beneficiaryBankCode String(8) Max Y - Sent by BCA.
Beneficiary Bank Code. In BCA using SWIFT Code or 3 digit bank code (if destination doesn't have SWIFT Code)
sourceAccountNo String (19) Max Y - Sent by BCA
Source Account. 10 digits for BCA Account.
transactionDate String (25) Max Y ISO-8601 Mandatory in BCA.
Transaction Date, which follows the ISO-8601 standard
additionalInfo Object - Y - Sent by BCA
Additional Info
   rejectStatusID String (100) Max Y - Sent by BCA
Reject Description in Indonesian 
   rejectStatusEN String (100) Max Y - Sent by BCA
Reject Description in English
traceNo String (100) Max Y - Sent by BCA
Number for tracking to destination bank.
In BCA traceNo=ppu_num ber with prefix “(“ 
Result of the request will contains following information:

Response:
 
Field Data Type Length Type Mandatory  Format Description
responseCode String (7) Fixed Y - Response code
responseMessage String(150) Max Y - Response description


curl –X POST https://copartners.com/openapi/v1.0/transfer-skn/notify

Request

-H 'CHANNEL-ID':'95051'
-H 'X-PARTNER-ID': 'KBCABCINDO'
-d '
{
 "originalPartnerReferenceNo": "2020102900000000000001",
 "originalReferenceNo": "2020102977770000000009",
 "originalExternalId": "10052019",
 "latestTransactionStatus": "00",
 "amount": {
 "value": "10000.00",
 "currency": "IDR"
 },
 "beneficiaryAccountName": "Yories Yolanda",
 "beneficiaryAccountNo": "888801000003301",
 "beneficiaryBankCode": "002",
 "sourceAccountNo": "1234567890",
 "transactionDate": "2020-12-21T14:06:21+07:000",
 "additionalInfo": {
 "rejectStatusID": "Nomor rekening tidak terdaftar",
 "rejectStatusEN": "Account number is not registered",
 "traceNo": "(DAC8"
 }
}'

curl –X POST https://copartners.com/openapi/v1.0/transfer-skn/notify

Response

{
 "responseCode": "2007500",
 "responseMessage": "Successful"
 }
7. SNAP Banking RTGS Transfer

This service is used to transfer RTGS.

 

This feature is not yet available to be accessed via Sandbox.

Additional Headers:
Field Params Type Data Type  Length Type Mandatory Description
CHANNEL-ID Header String(5) Fixed Channel’s identifier using WSID KlikBCA Bisnis (95051) 
X-PARTNER-ID Header String(32) Max Corporate ID 

Payload:
 
Field Data Type Length Type Mandatory  Format Description
partnerReferenceNo String (64) Max Y - Mandatory in BCA.
Transaction identifier on service consumer system
amount Object   Y    
   value String (16.2)  Max Y Decimal Mandatory in BCA. Net amount of the transaction.
If it’s IDR then value includes 2 decimal digits. In BCA, max length = 13.2
   currency String (3) Fixed Y ISO-4217 Mandatory in BCA.
Currency
beneficiaryAccountName String (100) Max Y - Mandatory in BCA.
Beneficiary Account Name
beneficiaryAccountNo String (34) Max Y - Mandatory in BCA.
Beneficiary Account
beneficiaryAddress String (100) Max N - Mandatory in BCA.
Beneficiary Address.
beneficiaryBankCode String(8) Max Y - Mandatory in BCA.
Beneficiary Bank Code. In BCA using SWIFT Code
beneficiaryCustomerResidence String (1) Fixed Y Numeric Mandatory in BCA.
Beneficiary Customer Residence
1. Indonesia
2. Non Indonesia
beneficiaryCustomerType String (1) Fixed Y Numeric Mandatory in BCA.
Beneficiary Customer Type
1. Individual
2. Corporation
3. Government
beneficiaryEmail String(50) Max N abc@domain.com Optional in BCA.
Beneficiary Email
remark String (50)  Max N - Optional in BCA.
Remark/transact ion description.
For BCA, the remark is divided into two parts. The max length of each part is 18. 
sourceAccountNo String (19) Max Y - Mandatory in BCA. Source Account.
For BCA, length account number is 10 digit.
transactionDate String (25) Max Y ISO-8601 Mandatory in BCA.
Transaction date
Result of the request will contains following information:

Response:
 
Field Data Type Length Type Mandatory  Format Description
partnerReferenceNo String(64) Max N - Send by BCA according to the request input. 
Transaction identifier on sevice consumer system
responseCode String (7) Fixed Y - Response code
responseMessage String(150) Max Y - Response description
referenceNo String (64) Max N Numeric Send by BCA.
Transaction identifier on service provider system.
Must be filled upon successful transaction.
amount Object   Y    
   value String (16.2) Max Y Decimal Send by BCA according to the request input.
Net amount of the transaction. If it’s IDR then value includes 2 decimal digits. In BCA, max length = 13.2
   currency String (3) Fixed Y ISO-4217 Send by BCA according to the request input.
Currency
beneficiaryAccountName String (100) Max Y - Send by BCA according to the request input.
Beneficiary Account Name 
beneficiaryAccountNo String (34)  Max Y Numeric Send by BCA according to the request input.
Beneficiary accoun
beneficiaryBankCode String (8) Max N BCA : SWIFT Send by BCA according to the request input.
Beneficiary Bank Code
sourceAccountNo String (19) Max N - Send by BCA according to the request input.
Source account.
For BCA account 10 digits 
traceNo String (16) Max N - Send by BCA.
Number for tracking to destination bank.
In BCA, traceNo = ppu_number with prefix “(” and the length is 5
transactionDate String (25) Max Y ISO-8601 Send by BCA according to the request input.
Transaction date
transactionStatus String (2) Fixed Y Numeric 00 - Success
03 – Pending
06 – Failed


Here is the list of error codes that can be returned. 
HTTP Code Error Code Error Message
400 4002200 Bad request
400 4002201 Invalid Field Format {field}
400 4002202 Invalid Mandatory Field {Field}
401 4012200 Unauthorized. [Reason]
401 4012201 Invalid token (B2B)
403 4032201 Feature Not Allowed
403 4032202 Exceeds Transaction Amount Limit
403 4032204 Activity Count Limit Exceeded
403 4032206 Feature Not Allowed At This Time. The transaction has exceeded time limit for today processing
403 4032206 Feature Not Allowed At This Time. Transfer service to other bank is temporarily closed
403 4032214 Insufficient Funds
403 4032218 Inactive Account
404 4042211 Invalid Account
404 4042213 Invalid Amount 
404 4041802 Invalid Routing 
409 4092200 Conflict
500 5002201 Internal Server Error
504 5042200 Timeout

If you get responseCode 5002201 (Unknown Error/Unknown internal server failure, please retry the process again) from BCA, please make sure to check your account statement before retry the transaction.



curl –X POST https://sandbox.bca.co.id/openapi/v1.0/transfer-rtgs

Request

-H 'CHANNEL-ID':'95051'
-H 'X-PARTNER-ID': 'KBBABCINDO'
-d '
{
	"partnerReferenceNo": "2020102900000000000001",
	"amount": {
		"value": "10000.00",
		"currency": "IDR"
	},
	"beneficiaryAccountName": "Yories Yolanda",
	"beneficiaryAccountNo": "888801000157508",
	"beneficiaryAddress": "Palembang",
	"beneficiaryBankCode": "002",
	"beneficiaryCustomerResidence": "1",
	"beneficiaryCustomerType": "1",
	"beneficiaryEmail": "yories.yolanda@work.bri.co.id",
	"remark": "remark test",
	"sourceAccountNo": "1234567899",
	"transactionDate": "2020-12-21T14:36:11+07:00"
}'

curl –X POST https://sandbox.bca.co.id/openapi/v1.0/transfer-rtgs

Response

{
	"responseCode": "2002200",
	"responseMessage": "Request has been processed successfully",
	"referenceNo": "2020102977770000000009",
	"partnerReferenceNo": "2020102900000000000001",
	"amount": {
		"value": "10000.00",
		"currency": "IDR"
	},
	"beneficiaryAccountName": "Yories Yolanda",
	"beneficiaryAccountNo": "888801000157508",
	"beneficiaryBankCode": "002",
	"sourceAccountNo": "1234567899",
	"traceNo": "(DAC8",
	"transactionDate": "2020-12-21T14:36:11+07:00",
	"transactionStatus": "00"
}
8. SNAP Banking SKNBI Transfer

This service is used to transfer SKN.

 

This feature is not yet available to be accessed via Sandbox.

Additional Headers:
Field Params Type Data Type  Length Type Mandatory Description
CHANNEL-ID Header String(5) Fixed Channel’s identifier using WSID KlikBCA Bisnis (95051) 
X-PARTNER-ID Header String(32) Max Corporate ID 

Payload:
 
Field Data Type Length Type Mandatory  Format Description
partnerReferenceNo String (64) Max Y - Mandatory in BCA.
Transaction identifier on service consumer system
amount Object   Y    
   value String (16.2)   Max Y Decimal Mandatory in BCA. Net amount of the transaction.
If it’s IDR then value includes 2 decimal digits. In BCA, max length = 13.2
   currency String (3) Fixed Y ISO-4217 Mandatory in BCA.
Currency
beneficiaryAccountName String (100) Max Y - Mandatory in BCA.
Beneficiary Account Name
beneficiaryAccountNo String (34) Max Y - Mandatory in BCA.
Beneficiary Account
beneficiaryAddress String (100) Max N - Mandatory in BCA.
Beneficiary Address.
beneficiaryBankCode String(8) Max Y - Mandatory in BCA.
Beneficiary Bank Code. In BCA using SWIFT Code
beneficiaryCustomerResidence String (1) Fixed Y Numeric Mandatory in BCA.
Beneficiary Customer Residence
1. Indonesia
2. Non Indonesia
beneficiaryCustomerType String (1) Fixed Y Numeric Mandatory in BCA.
Beneficiary Customer Type
1. Individual
2. Corporation
3. Government
beneficiaryEmail String(50) Max N abc@domain.com Optional in BCA.
Beneficiary Email
remark String (50)  Max N - Optional in BCA.
Remark/transact ion description.
For BCA, the remark is divided into two parts. The max length of each part is 18. 
sourceAccountNo String (19) Max Y - Mandatory in BCA. Source Account.
For BCA, length account number is 10 digit.
transactionDate String (25) Max Y ISO-8601 Mandatory in BCA.
Transaction date
Result of the request will contains following information:

Response:
 
Field Data Type Length Type Mandatory  Format Description
partnerReferenceNo String(64) Max N - Send by BCA according to the request input. 
Transaction identifier on service consumer system
responseCode String (7) Fixed Y - Response code
responseMessage String(150) Max Y - Response description
referenceNo String (64) Max N Numeric Send by BCA.
Transaction identifier on service provider system.
Must be filled upon successful transaction.
amount Object   Y    
   value String (16.2) Max Y Decimal Send by BCA according to the request input.
Net amount of the transaction. If it’s IDR then value includes 2 decimal digits. In BCA, max length = 13.2
   currency String (3) Fixed Y ISO-4217 Send by BCA according to the request input.
Currency
beneficiaryAccountName String (100) Max Y - Send by BCA according to the request input.
Beneficiary Account Name 
beneficiaryAccountNo String (34)  Max Y Numeric Send by BCA according to the request input.
Beneficiary accoun
beneficiaryBankCode String (8) Max N BCA : SWIFT Send by BCA according to the request input.
Beneficiary Bank Code
sourceAccountNo String (19) Max N - Send by BCA according to the request input.
Source account.
For BCA account 10 digits 
traceNo String (16) Max N - Send by BCA.
Number for tracking to destination bank.
In BCA, traceNo = ppu_number with prefix “(” and the length is 5
transactionDate String (25) Max Y ISO-8601 Send by BCA according to the request input.
Transaction date
transactionStatus String (2) Fixed Y Numeric 00 - Success
03 – Pending
06 – Failed


Here is the list of error codes that can be returned. 
HTTP Code Error Code Error Message
400 4002300 Bad request
400 4002301 Invalid Field Format {field}
400 4002302 Invalid Mandatory Field {Field}
401 4012300 Unauthorized. [Reason]
401 4012301 Invalid token (B2B)
403 4032301 Feature Not Allowed
403 4032302 Exceeds Transaction Amount Limit
403 4032304 Activity Count Limit Exceeded
403 4032306 Feature Not Allowed At This Time. The transaction has exceeded time limit for today processing
403 4032306 Feature Not Allowed At This Time. Transfer service to other bank is temporarily closed
403 4032314 Insufficient Funds
403 4032318 Inactive Account
404 4042311 Invalid Account
404 4042313 Invalid Amount 
404 4041802 Invalid Routing 
409 4092300 Conflict
500 5002301 Internal Server Error
504 5042300 Timeout

If you get responseCode 5002301 (Unknown Error/Unknown internal server failure, please retry the process again) from BCA, please make sure to check your account statement before retry the transaction.



curl –X POST https://sandbox.bca.co.id/openapi/v1.0/transfer-skn

Request

-H 'CHANNEL-ID':'95051'
-H 'X-PARTNER-ID': 'KBBABCINDO'
-d '
{
	"partnerReferenceNo": "2020102900000000000001",
	"amount": {
		"value": "10000.00",
		"currency": "IDR"
	},
	"beneficiaryAccountName": "Yories Yolanda",
	"beneficiaryAccountNo": "888801000157508",
	"beneficiaryAddress": "Palembang",
	"beneficiaryBankCode": "002",
	"beneficiaryCustomerResidence": "1",
	"beneficiaryCustomerType": "1",
	"beneficiaryEmail": "yories.yolanda@work.bri.co.id",
	"remark": "remark test",
	"sourceAccountNo": "1234567899",
	"transactionDate": "2020-12-21T14:36:11+07:00"
}'

curl –X POST https://sandbox.bca.co.id/openapi/v1.0/transfer-skn

Response

{
	"responseCode": "2002300",
	"responseMessage": "Request has been processed successfully",
	"referenceNo": "2020102977770000000009",
	"partnerReferenceNo": "2020102900000000000001",
	"amount": {
		"value": "10000.00",
		"currency": "IDR"
	},
	"beneficiaryAccountName": "Yories Yolanda",
	"beneficiaryAccountNo": "888801000157508",
	"beneficiaryBankCode": "002",
	"sourceAccountNo": "1234567899",
	"traceNo": "(DAC8",
	"transactionDate": "2020-12-21T14:36:11+07:00",
	"transactionStatus": "00",
}
9. SNAP Banking Transaction Status Inquiry

This service is used to transfer BCA.

 

This feature is not yet available to be accessed via Sandbox.

Additional Headers:
Field Params Type Data Type Length Type Mandatory Description
CHANNEL-ID Header String(5) Fixed Channel’s identifier using WSID KlikBCA Bisnis (95051)
X-PARTNER-ID Header String(32) Max Corporate ID 
X-EXTERNAL-ID Header String(32) Max Y Numeric String.
Reference number that should be unique in the same day.

Payload:
 
Field Data Type Length Type Mandatory  Format Description
originalPartnerReferenceNo String (64) Max N - Original transaction identifier on service from partner
originalExternalId String (32) Max Y Numeric Original External-ID on header message
serviceCode String (2) Fixed Y Numeric Transaction type indicator (service code of the original transaction request)
Service code of original transaction that can be requested
17 : Service Intrabank Transfer
18 : Service Interbank Transfer
22 : Service Interbank Transfer RTGS
23 : Service Interbank Transfer SKN
33 : Service Payment to VA from Intrabank
transactionDate String (25) Max Y ISODateTime
ISO-8601
Transfer Transaction date

Note :


Transaction Status Inquiry can only make inquiries on the status of the transaction below via Open API.

  • Intrabank Transfer
  • Interbank Transfer
  • RTGS Transfer
  • SKNBI Transfer
  • Payment to VA from Intrabank

Transaction that can be inquired are only valid for the past 31 days.

Result of the request will contains following information:

Response:
 
Field Data Type Length Type Mandatory  Format Description
responseCode String (7) Fixed Y - Response code
responseMessage String(150) Max Y - Response description
originalReferenceNo String (64) Max N Numeric Original transaction identifier on service provider system.
Only mandatory if original transaction is successful.
originalPartnerReferenceNo String (64) Max N - This response will be sent according to the request input. 
Original transaction identifier on service customer system
originalExternalId String (32) Max N Numeric This response will be sent according to the request input. 
Original External-ID on header message
serviceCode String (2) Fixed Y Numeric This response will be sent according to the request input. 
Transaction type indicator (service code of the original transaction request)
Service code of original transaction that can be checked
17 : Service Intrabank Transfer
18 : Service Interbank Transfer
22 : Service Interbank Transfer RTGS
23 : Service Interbank Transfer SKN
33 : Service Payment to VA
transactionDate String (25) Max N ISODateTime
ISO-8601
This response will be sent according to the request input. 
Transaction date
amount Object - Y - Net amount of the transaction
value String (13.2) Max Y Numeric If it’s IDR then value includes 2 decimal digits. BCA will send response amount with format value Numeric (13.2)
   currency String (3) Fixed Y ISO-4217 Currency of the amount
   beneficiaryAccountNo String (34) Max Y Numeric Beneficiary account number
beneficiaryBankCode String (8) Max N SWIFT Code/
3 digit bank code
Beneficiary Bank Code.
In BCA using SWIFT Code or 3 digit bank code (if destination doesn’t have SWIFT Code).
Beneficiary Bank Code can be checked on KBB menu :
Miscellaneous > Information > Bank Code List
referenceNumber String (30) Max N Numeric Transaction identifier on service provider system.
Unique each day from BCA Must be filled upon successful transaction.
sourceAccountNo String (10) Max Y Numeric Source Account Number.
latestTransactionStatus String (2) Fixed Y Numeric Transfer status code that sent is the highlighted status code.
00 - Success
03 - Pending
06 – Failed
transactionStatusDesc String(50) Max N   Description status transaction
00 : Transaction Success
03 : Transaction In Progress
06 : Response message from failed transaction
Here is the list of error codes that can be returned.

HTTP Code Error Code Error Message Condition
400 4003600 Bad request General request failed error.
400 4003601 Invalid Field Format {field} The data you entered does not match the format requirements. 
400 4003602 Invalid Mandatory Field {Field} Mandatory field should be fulfilled. 
401 4013600 Unauthorized. [Reason] Invalid Signature/Unknown Client/Connection Not Allowed.
401 4013601 Invalid token (B2B) Access Token Not Exist/Access Token Expired/Token is Invalid.
403 4033601 Feature Not Allowed The feature is not allowed to use. Please make sure you registered this feature in your partnership data. 
404 4043601 Transaction not found Transaction not found.
409 4093600 Conflict X-EXTERNAL-ID duplicate.
429 4293600 Too Many Requests Maximum transaction limit exceeded. 
500 5003600 General Error Wrong request field input. 
500 5003601 Internal Server Error Unknown internal server failure, please retry the process again.
504 5043600 Timeout Your transaction timeout.

curl –X POST https://sandbox.bca.co.id/openapi/v1.0/transfer/status

Request

-H 'CHANNEL-ID':'95051'
-H 'X-PARTNER-ID': 'KBBABCINDO'
-H 'X-EXTERNAL-ID': '28910000006578499987546738976812'
-d '
{
	"originalPartnerReferenceNo": "2020102900000000000001",
	"originalExternalId": "30443786930722726463280097920912",
	"serviceCode": "17",
	"transactionDate": "2023-02-02T00:00:00+07:00"
}'

curl –X POST https://sandbox.bca.co.id/openapi/v1.0/transfer/status

Response

Inquiry Successful Status Transaction

-H 'Content-type': 'application/json'
-H 'X-TIMESTAMP': '2020-12-17T13:50:04+07:00'
{
	"responseCode": "2003600",
	"responseMessage": "Successful",
	"originalReferenceNo": "2010297777000009",
	"originalPartnerReferenceNo": "2020102900000000000001",
	"originalExternalId": "30443786930722726463280097920912",
	"serviceCode": "17",
	"transactionDate": "2023-02-02T00:00:00+07:00",
	"amount": {
	"value": "10000.00",
	"currency": "IDR"
	},
	"beneficiaryAccountNo": "888801000157508",
	"beneficiaryBankCode": "BRINIDJA",
	"referenceNumber": "10052019",
	"sourceAccountNo": "888801000157508",
	"latestTransactionStatus": "00",
	"transactionStatusDesc": "Transaction Success"
}

Inquiry Pending/Failed Status Transaction
-H 'Content-type': 'application/json'
-H 'X-TIMESTAMP': '2020-12-17T13:50:04+07:00'
{
	"responseCode": "2003600",
	"responseMessage": "Successful",
	"originalReferenceNo": "",
	"originalPartnerReferenceNo": "2020102900000000000001",
	"originalExternalId": "30443786930722726463280097920912",
	"serviceCode": "17",
	"transactionDate": "2023-02-02T00:00:00+07:00",
	"amount": {
	"value": "10000.00",
	"currency": "IDR"
	},
	"beneficiaryAccountNo": "888801000157508",
	"beneficiaryBankCode": "BRINIDJA",
	"referenceNumber": "10052019",
	"sourceAccountNo": "888801000157508",
	"latestTransactionStatus": "03",
	"transactionStatusDesc": "Transaction in Progress"
}

Collection

1. Account Debiting Consent Notification
Service for BCA to notify Account Authorization Registration Status.

Your Request must contain following information:
Request
Field Data Type  Mandatory  Length Type Format  Description
request_id String(33)  Fix Request ID
customer_id_merchant String(15) Y  Max Length  Number  CustomerID Merchant
customer_name String(30) Y  Max Length  Customer Name
db_account_no String(10)  Y  Fix  Number  Mandatory if the status is 01 and 03
status String(2)  Y  Fix  Number  SKPR Registration Status
“01” = Success Register
“02” = Failed Register
“03” = Success Delete
“04” = Failed Delete
 Reason Object   -  -
english  String(50)   Max Length   
indonesia  String(50)   Max Length  -  
Response
Field DataType Mandatory  Description
request_id String(33)   Y (if SKPR Digital) Request ID if SKPR Digital 
response_ws String(1)   Y Response
0 = Success
1 = Failed

POST https://copartners.com/account-authorization/notification

Request

SKPR Digital Success

POST https://copartners.com/account-authorization/notification
-d '{
"request_id" : "A2AAB46BE91573E6E05400144FFED17AB",
 "customer_id_merchant" : "081818181818181",
 "customer_name" : "nama pelanggan",
 "db_account_no" : "0611112221",
 "status" : "01"
 } '

Request for registration SKPR Digital (failed) 
POST https://copartners.com/account-authorization/notification
-d '{
 "request_id" : "A2AAB46BE91573E6E05400144FFED17AB",
 "customer_id_merchant" : "081818181818181",
 "customer_name" : "nama pelanggan",
 "status" : "02",
 "reason" : {
 "english" : "Invalid Account",
 "indonesia" : "Rekening tidak valid"
 }
 } '

Request for delete SKPR Digital (success)
POST https://copartners.com/account-authorization/notification
-d '{
 "request_id" : "A2AAB46BE91573E6E05400144FFED17AB",
 "customer_id_merchant" : "081818181818181",
 "customer_name" : "nama pelanggan",
 "db_account_no" : "0611112221",
 "status" : "03"
 } '

Request for delete SKPR Digital (failed)
POST https://copartners.com/account-authorization/notification -d '{
"customer_id_merchant" : "081818181818181",
"db_account_no" : "0611112221",
"status" : "04",
"reason" : {
"english" : "Invalid Account",
"indonesia" : "Rekening tidak valid"
}
} '


Request for delete SKPR Conventional (success)
POST https://copartners.com/account-authorization/notification
-d '{
 "customer_id_merchant" : "081818181818181",
 "db_account_no" : "0611112221",
 "status" : "03"
 } '

Request for delete SKPR Conventional (failed)
POST https://copartners.com/account-authorization/notification
-d '{
 "customer_id_merchant" : "081818181818181",
 "db_account_no" : "0611112221",
 "status" : "04",
 "reason" : {
 "english" : "Invalid Account",
 "indonesia" : "Rekening tidak valid"
 }
 } '

POST https://copartners.com/account-authorization/notification

Response

Response for SKPR Digital
{
 "request_id" : "A2AAB46BE91573E6E05400144FFED17AB”,
 "response_ws" : "0"
}

Response for SKPR Conventional
{
 "response_ws" : "0"
}
2. Add Fund Collection
This service is used to collect some amount of money from your destination bank account that have been blocked before.

Your Request must contain following information:
Additional headers
Field DataType Mandatory  Description
ChannelID String(5)  Y Channel’s identifier. Fill it with “95051”.
CredentialID String(10)  Y Channel’s credential (KlikBCA Bisnis Corporate ID)
Request
Field DataType  Mandatory Description
TransactionID String(18) Y Unique data from Corporate. Format: Numeric.
ReferenceNumber String(14) Sender's Transaction Reference ID. Format: Numeric.
RequestType String(2)  Y B = With Blocking, NB = Without Blocking. Format: B or NB.
DebitedAccount String(10) O Account to be debited, please make sure you have authority to debit the account. Mandatory ONLY IF RequestType = NB (Without Blocking). Otherwise must left empty. Format: Numeric.
Amount String(16)  Y Maximum length is 16, include decimal amount. Format: Numeric, 13.2
Currency String(3)  Y Currently is IDR only.
CreditedAccount String(10) Y Account to be credited. Must be registered as own account at KlikBCA Bisnis. 
EffectiveDate  String(10)  Y Transaction Effective Date. Max : 366 days. Format: yyyy-MM-dd.
TransactionDate String(10)  Y The date of the Transaction. Format: yyyy-MM-dd. 
Remark1 String(18) Y Transfer remark for receiver.
Remark2 String(18)  Y Transfer remark for receiver.
Email String(254)  Y Email address of beneficiary (blocked account’s owner).

Response
Field DataType Description
TransactionID String(18) Unique data from Corporate. Format: Numeric.
ReferenceNumber String(14) Sender's Transaction Reference ID. Format: Numeric.
RequestType String(2) B = With Blocking, NB = Without Blocking. Format: B or NB.
DebitedAccount String(10) Account to be debited, must registered at KlikBCA Bisnis.Mandatory ONLY IF RequestType = NB (Without Blocking). Otherwise must left empty. Format: Numeric.
Amount String(16) Maximum length is 16, include decimal amount. Format: Numeric, 13.2
Currency String(3) Currently is IDR only.
CreditedAccount String(10) Account to be credited
EffectiveDate String(10) Transaction Effective Date. Max : 366 days. Format: yyyy-MM-dd.
TransactionDate String(10) The date of the Transaction Performed get by system. Format: yyyy-MM-dd.
Status String(10) Transaction status
Here is the list of error codes that can be returned. 
HTTP Code Error Code Error Message (Indonesian) Error Message (English) Additional Information
400 ESB-07-575  Sistem BCA sedang dalam pemeliharaan BCA system on maintenance System under maintenance. 
400 ESB-14-001 HMAC tidak cocok HMAC mismatch Please check generate signature process.
400 ESB-14-002 Permintaan tidak valid Invalid request  Invalid request.
400 ESB-14-003 Timestamp tidak valid Invalid timestamp Invalid timestamp format. 
500 ESB-14-005 Sistem sedang dalam maintenance System under maintenance System under maintenance.
401 ESB-14-008 client_id/client_secret/grant _type tidak valid Invalid client_id/client_secret/grant_ty pe Invalid client_id/client_secret/grant_ty pe.
401 ESB-14-009 Tidak berhak Unauthorized Invalid Signature/Unknown Client/Connection Not Allowed.
429 ESB-14-010 Jumlah permintaan melebihi limit Limit request exceeded Limit request exceeded.
404 ESB-14-011 Service tidak ada Service doesn't exist Invalid service, please check service’s URI.
401 ESB-14-012 Tidak berhak mengakses service ini Not allowed to access this service The feature is not allowed to use. Please make sure you registered this feature in your partnership data.
401 ESB-14-014 ChannelID/CredentialID tidak valid Invalid ChannelID/CredentialID Channel ID : 95051 Credential ID : KlikBCA Bisnis Corporate ID.
400 ESB-14-015 Content Type tidak valid Invalid Content Type Invalid Content Type
400 ESB-14-016 Format JSON tidak valid Invalid JSON format Invalid JSON format.
504 ESB-14-023 Koneksi Timeout. Silakan cek transaksi kembali untuk memastikan keberhasilan transaksi Anda. Connection timeout. Please reinquiry your transaction to ensure transaction status.  Please check your account statement before retry the transaction.
400 ESB-82-003 TransactionID tidak unik TransactionID not unique Please provide unique TransactionID.
400 ESB-82-006 Nominal Transaksi melebihi Limit Maksimum Transaction amount is greater than Maximum Limit Allowed Your transaction amount exceeds your company limit. Please check your Company Limit at KlikBCA Bisnis.
400 ESB-82-007 Tanggal efektif lebih kecil dari tanggal hari ini Effective Date is smaller than today Effective Date is smaller than today.
400 ESB-82-015 Nominal transaksi kurang dari Limit Minimum Transaction amount is smaller than Minimum Limit Allowed Your transaction amount below your company limit. Please check your Company Limit at KlikBCA Bisnis.
400 ESB-82-019 Saldo tidak cukup Insufficient fund Account balance insufficient for the transaction.
400 ESB-82-027 Amount harus lebih dari nol Amount must be greater than zero Amount must be greater than zero
400 ESB-82-030 Untuk Request Type: B, field DebitedAccount tidak diperlukan For Request Type: B, field DebitedAccount is not necessary DebitedAccount field only for Request type : NB. 
400 ESB-82-031  Frekuensi transaksi telah melebihi batas maksimum Transaction frequency has exceeded the maximum number Too many request, Exceeds Transaction Frequency Limit. Please check your Company Limit at KlikBCA Bisnis.
400 ESB-82-177 Tidak memiliki kuasa debet atas rekening debet Not authorized to debit the debited account Authorization to debit the debited account is not found in the system. Please make sure you have authority to debit the account.
400 ESB-82-178 Rekening tidak aktif Inactive Account The credited or debited account cannot be used for transaction. The account may be closed or blocked.
400 ESB-99-009 Field (0) harus diisi Missing mandatory field (0) Mandatory field must be filled.
400 ESB-99-022 2 Format alamat email tidak sesuai Email address format is not valid Check your email address format. Valid email address example : example@email.com.
400 ESB-99-040 Tipe isian field (0) tidak valid Input type for field (0) not valid Please refer to request format above. 
400 ESB-99-112 Input string JSON tidak valid Invalid JSON string input Please check JSON string input
400 ESB-99-128 Panjang field (0) melebihi ketentuan Field (0) exceed limit Please refer to request format above. 
400 ESB-99-155 Mata uang harus IDR Currency must in IDR The currency must in IDR.
400 ESB-99-173 Format tanggal tidak sesuai Invalid date format Valid date format : yyyy-MM-dd
400 ESB-99-211 Panjang field (0) tidak valid  Invalid (0) field length Please check field length according to request-response format above.
400 ESB-99-376 Format (0) tidak sesuai Invalid field (0) format Amount format is not valid. Please refer to request format above.
400 ESB-99-407 Nomor rekening tidak terdaftar sebagai rekening operasional  Account number not registered as operational account Please make sure the credited account already registered as operational account in KlikBCA Bisnis.
400 ESB-99-524 ReferenceID sudah ada ReferenceID already exists ReferenceID already exists.
400 ESB-99-533 Field (0) harus numerik  Field (0) should be numeric Only use numeric format.
400 ESB-99-573 TransactionDate harus diisi dengan tanggal hari ini  Transaction Date must be filled with today's date Transaction Date must be filled with today's date.
400 ESB-99-670 Jenis transaksi tidak diijinkan Transaction Type not allowed Please make sure your KlikBCA Bisnis package has AutoCollection Satuan features.
400 ESB-99-676 Status blokir tidak aktif Hold status is inactive Hold status is inactive.
400 ESB-99-677 Rekening Invalid Invalid Account Account not found.
400 ESB-99-999 Sistem sedang tidak tersedia System unavailable System unavailable at the moment.
400 ESB-99-999 Koneksi Timeout. Silakan cek transaksi kembali untuk memastikan keberhasilan transaksi Anda. Connection timeout. Please reinquiry your transaction to ensure transaction status. Please check your account statement before retry the transaction.


POST /fund-collection/v2

Request

POST /fund-collection/v2 HTTP/1.1
Host: sandbox.bca.co.id
-H "ChannelID:95051"
-H "CredentialID:ABCDEFGHIJ"
-d "{
"TransactionID" : "0000000001",
"ReferenceNumber" : "1111111110",
"RequestType" : "NB",
"DebitedAccount" : "1234567890",
"Amount" : "100200300.00",
"Currency" : "IDR",
"CreditedAccount" : "1234567891",
"EffectiveDate" : "2018-02-15",
"TransactionDate" : "2018-02-15",
"Remark1" : "Testing block 1",
"Remark2" : "Testing block 2",
"Email" : "beneficiary@mail.com"
}"

POST /fund-collection/v2

Response

{
    "TransactionID" : "0000000001",
    "ReferenceID"" : "1111111110",
    "DebitedAccount" : "1234567890",
    "Amount" : "100200300.00",
    "Currency" : "IDR",
    "CreditedAccount" : "1234567891",
    "EffectiveDate" : "2018-02-15",
    "TransactionDate" : "2018-02-15"
	"Status"" : "TRAN SUCCESSFUL",
}
3. Inquiry Status Kuasa Pendebetan Rekening
This service is used to get account authorization status based on the customer id.

Your Request must contain following information:
Additional headers and URI Params
Field  Params Type DataType Mandatory  Description
ChannelID  Header String(5) Y Channel ID (BCA channel’s identifier).Ex: “95051”.
CredentialID  Header String(10) Y Company Code Auto-Collection
customer_id_merchant   Path String(15) Customer ID in number. Account authorization status that can be inquired is 7 days back from the inquiry date 
Response
Field DataType Description
customer_id_merchant String(15) Customer id from input
skpr_pending Object Account authorization pending list. Shows list of on process/failed account authorization registration
request_id String(33) Request ID. ID when request registration
status String(2) Registration status:
02 = Failed
03 = On process
failed_date  String(10)  Account authorization failed date (only when status = 02)
Format: yyyy-MM-dd 
skpr_active  Object  Account authorization active list. Shows list of active account authorization registration 
skpr_id  String(33)  SKPR ID. ID when request registration 
db_account_no  String(10)  Account number registered 
active_date  String(10)  SKPR active date
Format: yyyy-MM-dd 
Here is the list of error codes that can be returned:

HTTP Code Error Code Error Message (Indonesian) Error Message (English)
400 3-2-100 ID pelanggan harus diisi Customer ID cannot be empty
400 3-2-100  ID pelanggan tidak valid Invalid customer ID
400 3-2-100  Nama pelanggan harus diisi Customer name cannot be empty
400 3-2-100 Nama pelanggan tidak valid Invalid customer name
400  3-2-100  Tipe debit harus diisi  Debit type cannot be empty 
400  3-2-100  Tipe debit tidak valid  Invalid debit type 
400  3-2-100  Jumlah pembayaran harus diisi  Amount cannot be empty 
400  3-2-100  Jumlah pembayaran tidak valid  Invalid amount 
400  3-2-101  Kode perusahaan tidak valid  Invalid company code 
400  3-2-300  Registrasi Kuasa Debet telah melebihi batas maksimal.
Silahkan hubungi Halo BCA untuk informasi lebih lanjut 
Account Authorization registrastion already exceed the limit.
Please contact Halo BCA for the further information 
400  3-2-307  ID pelanggan sudah aktif  Customer ID already active 
400  3-2-325  Data pelanggan tidak ditemukan  Customer data not found 
400  3-2-300  Transaksi tidak dapat diproses. Silahkan ulangi beberapa saat lagi  Transaction cannot be completed. Please try again later 
400  3-2-998  Transaksi gagal. Silahkan ulangi beberapa saat lagi  Transaction failed. Please try again later. 
400  3-2-999  Transaksi tidak dapat diproses. Silahkan ulangi beberapa saat lagi  Transaction cannot be completed. Please try again later 

GET /account-authorization/inquiry/{customer_id_merchant}

Request

GET /account-authorization/inquiry/081818181818181 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]
ChannelID: [channelID]
CredentialID: [credentialID]

GET /account-authorization/inquiry/{customer_id_merchant}

Response

{
    "customer_id_merchant" : "081818181818181",
    "skpr_pending" : [
	{
		"request_id" : "A9DB1D7A9CE804C5E05400144FFED17A"",
		"status" : "03""	
	},
	{
		"request_id" : "A9DB1D7A9CE704C5E05400144FFED17A"",
		"status" : "02"",	
		"failed_date" : "2020-07-06"	
	}
      ],
      "skpr_active" : [
	{
		"skpr_id" : "A7C6791C9ADC6CB9E05400144FFED17A"",
		"db_account_no" : "0250995514"",	
		"active_date" : "2020-06-11"	
	}
      ]
}
4. Pencabutan Kuasa Pendebetan Rekening
Delete your registration Account Authorization.

Your Request must contain following information:
Request Headers and URI Params
Field  Params Type DataType Mandatory  Description
channel-id Header String(5)  Y Channel ID KlikBCA Bisnis 95051
credential-id Header  String(8)  Y Company Code Auto-Collection
customer_id_merchant Path  String(15)   Y Customer ID Merchant 
db_account_no Path  String(10)  Customer Account No 

Response
Field DataType  Mandatory Description
customer_id_merchant String(15) Customer ID Merchant 
db_account_no String(10)  Y Customer Account No 
status String(11)  Y Default status “In Progress”
Here is the list of error codes that can be returned:

HTTP Code Error Code Error Message (Indonesian) Error Message (English)
400 3-2-100 ID pelanggan harus diisi Customer ID cannot be empty
400 3-2-100  ID pelanggan tidak valid Invalid customer ID
400 3-2-100  Nama pelanggan harus diisi Customer name cannot be empty
400 3-2-100 Nama pelanggan tidak valid Invalid customer name
400  3-2-100  Tipe debit harus diisi  Debit type cannot be empty 
400  3-2-100  Tipe debit tidak valid  Invalid debit type 
400  3-2-100  Jumlah pembayaran harus diisi  Amount cannot be empty 
400  3-2-100  Jumlah pembayaran tidak valid  Invalid amount 
400  3-2-101  Kode perusahaan tidak valid  Invalid company code 
400  3-2-300  Registrasi Kuasa Debet telah melebihi batas maksimal.
Silahkan hubungi Halo BCA untuk informasi lebih lanjut 
Account Authorization registrastion already exceed the limit.
Please contact Halo BCA for the further information 
400  3-2-307  ID pelanggan sudah aktif  Customer ID already active 
400  3-2-325  Data pelanggan tidak ditemukan  Customer data not found 
400  3-2-300  Transaksi tidak dapat diproses. Silahkan ulangi beberapa saat lagi  Transaction cannot be completed. Please try again later 
400  3-2-998  Transaksi gagal. Silahkan ulangi beberapa saat lagi  Transaction failed. Please try again later. 
400  3-2-999  Transaksi tidak dapat diproses. Silahkan ulangi beberapa saat lagi  Transaction cannot be completed. Please try again later 

DELETE /accountauthorization/customer/832789861532974/account-number/51421329865

Request

curl –X DELETE https://sandbox.bca.co.id/accountauthorization/customer/832789861532974/account-number/51421329865
-H 'channel-id':'95051'
-H 'credential-id': '00000001'

DELETE /accountauthorization/customer/832789861532974/account-number/51421329865

Response

{
 "customer_id_merchant": "832789861532974",
 "db_account_no": "51421329865",
 "status" : "In Progress"
}
5. Pendaftaran Kuasa Pendebetan rekening
Get your request ID which will be required to access Account Authorization webview.

Your Request must contain following information:
Additional headers
Field DataType Mandatory  Description
ChannelID String(5)  Y Channel ID (BCA channel’s identifier).Ex: “95051”.
CredentialID String(10)  Y Company Code Auto-Collection
Request
Field DataType  Mandatory Description
customer_id_merchant String(15) Y Customer id merchant in number.
identifications Object Customer data
type  Numeric(1)  Y  Customer data type. Type contains numbers 1, 2, and 3.
1 = “Nama Pelanggan”
2 = “Tipe Debit”
3 = “Nominal Pembayaran” 
identification  String(30)  Y  If “type” : “1” then “identification ” : “customer name”.
Example : “identification” : “budi” 
identification  String(1)  Y  If “type” : “2” then “identification ” : “tipe_debit” (F : Fix / V : Variable).
Example : “identification” : “V” 
identification  Numeric(13)  Y  If “type” : “3” then “identification ” :“nominal pembayaran”.
If tipe_debit = V then amount “0”.
If tipe_debit = F the amount “nominal transaksi.
Example : “identification” : “0” 
merchant_logo_url  String  Merchant logo URL to display on webview 

Response
Field DataType  Mandatory Description
request_id String(33) Registration token to open a webview
random_string String(16)  Y Random string used to generate String verification to open webview
expired_date Long(13)  Y Expired date in epoch
created_date Long(13)  Y Created date in epoch
Here is the list of error codes that can be returned:

HTTP Code Error Code Error Message (Indonesian) Error Message (English)
400 3-2-100 ID pelanggan harus diisi Customer ID cannot be empty
400 3-2-100  ID pelanggan tidak valid Invalid customer ID
400 3-2-100  Nama pelanggan harus diisi Customer name cannot be empty
400 3-2-100 Nama pelanggan tidak valid Invalid customer name
400  3-2-100  Tipe debit harus diisi  Debit type cannot be empty 
400  3-2-100  Tipe debit tidak valid  Invalid debit type 
400  3-2-100  Jumlah pembayaran harus diisi  Amount cannot be empty 
400  3-2-100  Jumlah pembayaran tidak valid  Invalid amount 
400  3-2-101  Kode perusahaan tidak valid  Invalid company code 
400  3-2-300  Registrasi Kuasa Debet telah melebihi batas maksimal.
Silahkan hubungi Halo BCA untuk informasi lebih lanjut 
Account Authorization registrastion already exceed the limit.
Please contact Halo BCA for the further information 
400  3-2-307  ID pelanggan sudah aktif  Customer ID already active 
400  3-2-325  Data pelanggan tidak ditemukan  Customer data not found 
400  3-2-300  Transaksi tidak dapat diproses. Silahkan ulangi beberapa saat lagi  Transaction cannot be completed. Please try again later 
400  3-2-998  Transaksi gagal. Silahkan ulangi beberapa saat lagi  Transaction failed. Please try again later. 
400  3-2-999  Transaksi tidak dapat diproses. Silahkan ulangi beberapa saat lagi  Transaction cannot be completed. Please try again later 

POST /account-authorization/registration

Request

POST /account-authorization/registration 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]
ChannelID: [channelID]
CredentialID: [credentialID]

{
    "customer_id_merchant" : "081818181818181",
     "identifications" : [
        {"type":"1","identification" : "nama pelanggan"},
        {"type":"2","identification" : "V"},
	{"type":"3","identification" : "0"},
        ],
    "merchant_logo_url" : "https://logo.com/",
}

POST /account-authorization/registration

Response

{
    "request_id" : "A2AAB46BE91573E6E05400144FFED17A",
    "random_string"" : "L1APowN4R3uM1CiY",
    "expired_date" : "1586226654111",
    "created_date" : "1586224854111"
}

OneKlik

1. SNAP OneKlik Account Binding

This service is used to pre-processing OneKlik Registration by Generating OneKlik Registration Web Token.

 
Additional Headers:
Field Params Type Data Type  Length Type Mandatory Description
CHANNEL-ID Header String(5)   Channel’s identifier (95251)
X-PARTNER-ID Header String(36)   Partner/Merchant Unique ID 
X-EXTERNAL-ID Header String (36)   Y Reference Number from Partner/Merchant
X-DEVICE-ID Header String (400)   Y Customer Device Info Format: {device-id}||{user-agent} device-id :
- Android ID (Android)
- UUID (iOS)
- "WEB" (browser) user-agent : user agent device / browser (max 300 characters)
X-IP-ADDRESS Header String (15)   Y Customer IP Address (IPv4 Format)

Payload:
 
Field Data Type Length Type Mandatory  Format Description
merchantId String (5)   Y   Partner/Merchant Unique ID
additionalData Object   Y    
     userId String (18)   Y   Customer Id from Merchant
additionalInfo Object   Y    
     additionalInfo String (50)   Y   Additional information about customer (phone/email/etc)
     merchantLogoUrl
String (300)   N   Merchant logo URL to show in OneKlik Registration Web
Result of the request will contains following information:

Response:
 
Field Data Type Length Type Mandatory  Format Description
responseCode String (7)   Y   Response code
responseMessage String (150)   Y   Response message description
referenceNo String (32)   Y   Response reference number from OneKlik
additionalInfo Object   C   Filled upon transaction with responseCode success
     requestId String (32)   Y   Request ID to open OneKlik Registration Web
     randomString String (16)   Y   Random String to generate token to open OneKlik Registration Web
Here is the list of error codes that can be returned. 
HTTP Code Error Code Error Message
200 2000700 Successful
400 4000700 Bad request
400 4000701 Invalid Field Format {field name} 
400 4000702 Invalid Mandatory Field {field name}
401 4010701 Invalid token (B2B)
401 4010700 Unauthorized. [Reason] 
403 4030701 Feature Not Allowed
403 4030704 Activity Count Limit Exceeded
404 4040708 Invalid Merchant
500 5000700 General Error
500 5000700 Internal Server Error
504 5040700 Timeout

curl –X POST https://sandbox.bca.co.id/openapi/oneklik/v1.0/registration-account-binding

Request

DEVICE WEB

-H 'CHANNEL-ID':'95221'
-H 'X-PARTNER-ID': '61123'
-H 'X-EXTERNAL-ID': 'ef343939477c4f19b01c7600ca487bc8'
-H 'X-IP-ADDRESS': '123.123.123.123'
-H 'X-DEVICE-ID': 'WEB||Mozilla/5.0 (Windows NT 10.0; Win64; x64)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36'
-d '
{
 "merchantId": "61123",
 "additionalData": {
 "userId": "customer01"
 },
 "additionalInfo": {
 "additionalInfo": "customer01@gmail.com",
 "merchantLogoUrl": " https://png.pngtree.com/pngvector/20190223/ourmid/pngtree-vector-picture-icon-png-image_695350.jpg"
 }
}'

DEVICE ANDROID/IOS

-H 'CHANNEL-ID':'95221'
-H 'X-PARTNER-ID': '61123'
-H 'X-EXTERNAL-ID': 'ef343939477c4f19b01c7600ca487bc8'
-H 'X-IP-ADDRESS': '123.123.123.123'
-H 'X-DEVICE-ID': '84723551-f7f0-452b-b9a5-b0f270752761||Mozilla/5.0 (iPhone; CPU
iPhone OS 14_8_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko)
Mobile/15E148'
-d '
{
 "merchantId": "61123",
 "additionalData": {
 "userId": "customer01"
 },
 "additionalInfo": {
 "additionalInfo": "customer01@gmail.com",
 "merchantLogoUrl": " https://png.pngtree.com/pngvector/20190223/ourmid/pngtree-vector-picture-icon-png-image_695350.jpg"
 }
}'

curl –X POST https://sandbox.bca.co.id/openapi/oneklik/v1.0/registration-account-binding

Response

{
 "responseCode": "2000700",
 "responseMessage": "Successful",
 "referenceNo": "37f89370b5034db0a283130c231dd27b",
 "additionalInfo": {
 "requestId": "2c90c800702d1234017033ab9a060003",
 "randomString": "g4BoEz43jfjVvAvN"
 }
}
2. SNAP OneKlik Account Binding Inquiry

This service is used to inquiry OneKlik Account Binding Status.

 
Additional Headers:
Field Params Type Data Type  Length Type Mandatory Description
CHANNEL-ID Header String(5)   Channel’s identifier (95221)
X-PARTNER-ID Header String(36)   Partner/Merchant Unique ID 
X-EXTERNAL-ID Header String (36)   Y Reference Number from Partner/Merchant

Payload:
 
Field Data Type Length Type Mandatory  Format Description
additionalInfo Object   Y   Must only fill one field : requestIds or userId 
   requestIds Array of String [1..10] @32   C   Request ID to search registration status. Can be filled up to 10 strings 
   userId
String (18)   C   Customer id from merchant
Result of the request will contains following information:

Response:
 
Field Data Type Length Type Mandatory  Format Description
responseCode String (7)   Y   Response code
responseMessage String (150)   Y   Response message description
referenceNo String (32)   C   Response reference number from OneKlik
Filled if response success
additionalInfo Object   C   Filled upon transaction with responseCode success
  requestId String (32)   C   Request ID used when registering account. Only show up when inquiry registration data 
  accountData Array of Object   C   List of account.
Sent if inquiry data successful.
If input filled with requestId then Registration datas. If input filled with userId then Active account datas
   xcoId String (32)   C   Valid OneKlik Identifier when credential successfully registered to BCA.
Only show up when data already active
   credentialType String (2)   C   Credential type.
DC = Debit card
CC = Credit card
   credentialNumber String (16)    C   Customer credential number (masked)
   maxLimit String (9)   C   OneKlik max daily limit registered
   userId String (18)    C   Customer id from merchant
   merchantId String (5)    C   Partner/Merchant Unique ID
   createdDate String   C DateTime Request Id created date.
Format: ISO 8601
Note: registration data can only be inquiried maximum of 7 days
   status String (3)   Y   Registration Status
REG = Registration in progress
EXP = Expired
ACT = Already activated (** does not define the latest account status)
-= not found/already past 7 days

Account Status
ACT = Active
BLK = Temporarily Blocked 
Here is the list of error codes that can be returned. 
HTTP Code Error Code Error Message
200 2000800 Successful
400 4000800 Bad request
400 4000801 Invalid Field Format {field name} 
400 4000802 Invalid Mandatory Field {field name}
401 4010801 Invalid token (B2B)
401 4010800 Unauthorized. [Reason] 
403 4030801 Feature Not Allowed
404 4040808 Invalid Merchant
500 5000800 General Error
500 5000800 Internal Server Error
504 5040800 Timeout

With userId: curl –X POST https://sandbox.bca.co.idopenapi/oneklik/v1.0/registration-account-inquiry With requestIds: curl –X POST https://sandbox.bca.co.id/openapi/oneklik/v1.0/registration-accountbinding

Request

WITH userId

curl –X POST https://sandbox.bca.co.id/openapi/oneklik/v1.0/registration-account-inquiry
-H 'CHANNEL-ID':'95221'
-H 'X-PARTNER-ID': '61123'
-H 'X-EXTERNAL-ID': 'ef343939477c4f19b01c7600ca487bc8'
-d '
{
 "additionalInfo": {
 "userId": "customer01"
 }
}'


WITH requestIds

curl –X POST https://sandbox.bca.co.id/openapi/oneklik/v1.0/registration-accountbinding
-H 'CHANNEL-ID':'95221'
-H 'X-PARTNER-ID': '61123'
-H 'X-EXTERNAL-ID': 'ef343939477c4f19b01c7600ca487bc8'
-d '
{
 "additionalInfo": {
 "requestIds": [
 "2c90c800702d1234017033ab9a060003",
 "2c90c800702d1234017033ab9a060004",
 "2c90c800702d1234017033ab9a060005",
 "2c90c800702d1234017033ab9a060006"
 ]
 }
}'

With userId: curl –X POST https://sandbox.bca.co.idopenapi/oneklik/v1.0/registration-account-inquiry With requestIds: curl –X POST https://sandbox.bca.co.id/openapi/oneklik/v1.0/registration-accountbinding

Response

WITH userId

{
 "responseCode": "2000800",
 "responseMessage": "Successful",
 "referenceNo": "37f89370b5034db0a283130c231dd27b",
 "additionalInfo": {
 "accountData": [
 {
 "xcoId": "a6fe3266cafd4cddbe3d77e1a9855634",
 "credentialType": "DC",
 "credentialNumber": "************1234",
 "maxLimit": "1000000",
 "userId": "customer01",
 "merchantId": "61123",
 "createdDate": "2022-01-03T01:07:51+07:00",
 "status": "ACT"
 },
 {
"xcoId": "76feef3439394cddbe3d77e1a98556ab",
 "credentialType": "DC",
 "credentialNumber": "************5678",
 "maxLimit": "1000000",
 "userId": "customer01",
 "merchantId": "61123",
 "createdDate": "2022-01-03T01:10:49+07:00",
 "status": "BLK"
 }
 ]
 }
}

WITH requestIds

{
 "responseCode": "2000800",
 "responseMessage": "Successful",
 "referenceNo": "37f89370b5034db0a283130c231dd27b",
 "additionalInfo": {
 "accountData": [
 {
 "requestId": "2c90c800702d1234017033ab9a060003",
 "xcoId": "a6fe3266cafd4cddbe3d77e1a9855634",
 "credentialType": "DC",
 "credentialNumber": "************1234",
 "maxLimit": "1000000",
 "userId": "customer01",
 "merchantId": "61123",
 "createdDate": "2022-01-03T01:02:03+07:00",
 "status": "ACT"
 },
 {
 "requestId": "2c90c800702d1234017033ab9a060004",
 "userId": "customer02",
"merchantId": "61123",
 "createdDate": "2022-01-03T01:05:25+07:00",
 "status": "REG"
 },
 {
 "requestId": "2c90c800702d1234017033ab9a060005",
 "userId": "customer03",
 "merchantId": "61123",
 "createdDate": "2022-01-03T01:10:09+07:00",
 "status": "EXP"
 },
 {
 "requestId": "2c90c800702d1234017033ab9a060006",
 "status": "-"
 }
 ]
 }
}
3. SNAP OneKlik Account Unbinding

This service is used to unbinding OneKlik Account.

 
Additional Headers:
Field Params Type Data Type  Length Type Mandatory Description
CHANNEL-ID Header String(5)   Channel’s identifier (95221)
X-PARTNER-ID Header String(36)   Partner/Merchant Unique ID 
X-EXTERNAL-ID Header String (36)   Y Reference Number from Partner/Merchant

Payload:
 
Field Data Type Length Type Mandatory  Format Description
merchantId String (5)   Y   Partner/Merchant Unique ID
additionalInfo Object   Y    
     xcoId String (32)   Y   Valid OneKlik Identifier when credential successfully registered to BCA
Result of the request will contains following information:

Response:
 
Field Data Type Length Type Mandatory  Format Description
responseCode String (7)   Y   Response code
responseMessage String (150)   Y   Response message description
referenceNo String (32)   C   Response reference number from OneKlik
Filled if response success
unlinkResult String (32)    C   Result of Unlinking process.
“success”/”failed”
additionalInfo Object   C   Filled upon transaction with responseCode success
     xcoId String (32)   Y   Valid OneKlik Identifier when credential successfully registered to BCA.
Only show up when data already active.
Here is the list of error codes that can be returned. 
HTTP Code Error Code Error Message
200 2000900 Successful
400 4000900 Bad request
400 4000901 Invalid Field Format {field name} 
400 4000902 Invalid Mandatory Field {field name}
401 4010901 Invalid token (B2B)
401 4010900 Unauthorized. [Reason] 
403 4030901 Feature Not Allowed
404 4040911 Invalid Card/Account/Customer
500 5000900 General Error
500 5000900 Internal Server Error
504 5040900 Timeout

curl –X POST https://sandbox.bca.co.id/openapi/oneklik/v1.0/registration-account-unbinding

Request

-H 'CHANNEL-ID':'95221'
-H 'X-PARTNER-ID': '61123'
-H 'X-EXTERNAL-ID': 'ef343939477c4f19b01c7600ca487bc8'
-d '
{
 "merchantId": "61123",
 "additionalInfo": {
 "xcoId": "a6fe3266cafd4cddbe3d77e1a9855634"
 }
}'

curl –X POST https://sandbox.bca.co.id/openapi/oneklik/v1.0/registration-account-unbinding

Response

{
 "responseCode": "2000900",
 "responseMessage": "Successful",
 "referenceNo": "37f89370b5034db0a283130c231dd27b",
 "unlinkResult": "success",
 "additionalInfo": {
 "xcoId": "a6fe3266cafd4cddbe3d77e1a9855634"
 }
}
4. SNAP OneKlik Direct Debit Payment

This service is used to pre-processing OneKlik Registration by Generating OneKlik Registration Web Token.

 
Additional Headers:
Field Params Type Data Type  Length Type Mandatory Description
CHANNEL-ID Header String(5)   Channel’s identifier (95221)
X-PARTNER-ID Header String(36)   Partner/Merchant Unique ID 
X-EXTERNAL-ID Header String (36)   Y Reference Number from Partner/Merchant
X-DEVICE-ID Header String (400)   Y Customer Device Info Format: {device-id}||{user-agent} device-id :
- Android ID (Android)
- UUID (iOS)
- "WEB" (browser) user-agent : user agent device / browser (max 300 characters)
X-IP-ADDRESS Header String (15)   Y Customer IP Address (IPv4 Format)

Payload:
 
Field Data Type Length Type Mandatory  Format Description
partnerReferenceNo String (18)    Y   Transaction ID from Partner/Merchant
chargeToken String (40)   C   Token to validate OTP. Received from Generate OTP service (service code 81).
Mandatory if otp field filled
otp String (6)   N   OTP from SMS to validate transaction (used on different device / on merchant’s accord)
merchantId String (5)   Y   Partner/Merchant Unique ID 
payOptionDetails Array of Object (1)   Y   Payment options used for this payment
     payMethod String (64)   Y   Payment method. Fill with “ONEKLIK”
     payOption String (64)   Y   Payment option. Fill with “ONEKLIK_BCA”
     transAmount Object   Y   Total billed amount from customer (transaction amount + fee amount)
          value String (16.2)    Y Numeric TransAmount value
          currency String (3)    Y   TransAmount currency 
     feeAmount Object   Y   Fee/Admin Fee for BCA
          value String (16.2)    Y Numeric FeeAmount value
          currency String (3)   Y   FeeAmount currency
additionalInfo Object   Y    
     userId String (18)    Y   Customer Id from Merchant
     customerName String (18)    Y   Customer name from Merchant. If sent more than 18 characters, it will be trimmed to 18 in BCA side
     description String (100)    Y   Transaction description
     paymentType String (7)    Y   Payment Type: FULL = full payment PARTIAL = partial payment
     transactionTime String   Y DateTime Transaction date and time from merchant. Format yyyy-MMddTHH:mm:ssTZD format (ISO 8601 format)
     xcoId String (32)    Y   Valid OneKlik Identifier when credential successfully registered to BCA
     billDetails Array of Object (5)   Y   Bill distributed to specified details
          subBillAmount String (16.2)   Y   Sub Bill amount that will be credited to the specified subCompanyCode
          subCompanyCode String (5)   Y   Sub Company Code. Filled with “00000” if none
Result of the request will contains following information:

Response:
 
Field Data Type Length Type Mandatory  Format Description
responseCode String (7)   Y   Response code
responseMessage String (150)   Y   Response message description
referenceNo String (32)   C   Response reference number from OneKlik appear only on success transaction
partnerReferenceNo String (18)   Y   Transaction ID from merchant 
additionalInfo Object   C   Filled upon transaction with responseCode success
     status String (50)   Y   Transaction status.
“SUCCESS” = transaction success
“DEVICE IS DIFFERENT” = OTP verification is required
     billAmount String (16.2)   C Numeric Total bill amount from merchant.
Appear if status = "SUCCESS" 
     paidAmount String (16.2)   C Numeric Total paid amount from customer.
Appear if status = "SUCCESS"
     msisdnList Array of Object   C   List of phone number to send OTP.
Appear if status = “DEVICE IS DIFFERENT”
          phoneNumber String (15)   Y   Masked customer phone number
          phoneId String (32)   Y   Phone id
Here is the list of error codes that can be returned. 
HTTP Code Error Code Error Message
200 2005400 Successful
202 2025400 Request In Progress
400 4005400 Bad request
400 4005401 Invalid Field Format {field name} 
400 4005402 Invalid Mandatory Field {field name}
401 4015401 Invalid token (B2B)
401 4015400 Unauthorized. [Reason] 
403 4035401 Feature Not Allowed
403 4035414 Insufficient Funds
403 4035402 Exceeds Transaction Amount Limit
403 4035412 OTP Lifetime Expired
403 4035418 Inactive Card/Account/Customer
404 4045411 Invalid Card/Account/Customer
404 4045408 Invalid Merchant 
404 4045406 Need to Request OTP
404 4045412 Invalid Bill/Virtual Account total additionalInfo billDetails subBillAmount does not match transAmount.value
404 4045412 Invalid Bill/Virtual Account adminFee.value does not match
404 4045412 Invalid Bill/Virtual Account transAmount.value below transaction amount limit
404 4045412 Invalid Bill/Virtual Account transAmount.value above transaction amount limit 
409 4095401 Duplicate partnerReferenceNo
500 5005400 General Error
500 5005400 Internal Server Error
504 5045400 Timeout

curl –X POST https://sandbox.bca.co.id/openapi/oneklik/v1.0/debit/payment-host-to-host

Request

Without OTP – without Subcompany – device type WEB

-H 'CHANNEL-ID':'95221'
-H 'X-PARTNER-ID': '61123'
-H 'X-EXTERNAL-ID': 'ef343939477c4f19b01c7600ca487bc8'
-H 'X-IP-ADDRESS': '123.123.123.123'
-H 'X-DEVICE-ID': 'WEB||Mozilla/5.0 (Windows NT 10.0; Win64; x64)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36'
-d '
{
 "partnerReferenceNo": "202010290000000001",
 "merchantId": "61123",
 "payOptionDetails": [
 {
 "payMethod": "ONEKLIK",
 "payOption": "ONEKLIK_BCA",
 "transAmount": {
 "value": "100000.00",
 "currency": "IDR"
 },
 "feeAmount": {
 "value": "1000.00",
 "currency": "IDR"
 }
 }
 ],
 "additionalInfo": {
 "userId": "customer01",
 "customerName": "John Smith",
 "description": "Payment for phone billing",
 "paymentType": "FULL",
 "transactionTime": "2020-10-29T00:00:01+07:00",
 "xcoId": " a6fe3266cafd4cddbe3d77e1a9855634",
 "billDetails": [
 {
 "subCompanyCode": "00000",
 "subBillAmount": "99000.00"
 }
 ]
 }
}'

With OTP – with Subcompany – device type MOBILE (iOS/Android)

-H 'CHANNEL-ID':'95051'
-H 'X-PARTNER-ID': '61123'
-H 'X-EXTERNAL-ID': 'ef343939477c4f19b01c7600ca487bc8'
-H 'X-IP-ADDRESS': '123.123.123.123'
-H 'X-DEVICE-ID': '84723551-f7f0-452b-b9a5-b0f270752761||Mozilla/5.0 (iPhone; CPU
iPhone OS 14_8_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko)
Mobile/15E148'
-d '
{
 "partnerReferenceNo": "202010290000000001",
 "merchantId": "61123",
 "chargeToken": "1a6418f60dad46b9bdb2216d1a641186",
 "otp": "123456",
 "payOptionDetails": [
 {
 "payMethod": "ONEKLIK",
 "payOption": "ONEKLIK_BCA",
 "transAmount": {
 "value": "100000.00",
 "currency": "IDR"
 },
 "feeAmount": {
 "value": "1000.00",
 "currency": "IDR"
 }
 }
 ],
 "additionalInfo": {
 "userId": "customer01",
 "customerName": "John Smith",
 "description": "Payment for phone billing",
 "paymentType": "FULL",
 "transactionTime": "2020-10-29T00:00:01+07:00",
"xcoId": " a6fe3266cafd4cddbe3d77e1a9855634",
 "billDetails": [
 {
 "subCompanyCode": "00000",
 "subBillAmount": "50000.00"
 },
 {
 "subCompanyCode": "12345",
 "subBillAmount": "49000.00"
 }
 ]
 }
}'

curl –X POST https://sandbox.bca.co.id/openapi/oneklik/v1.0/debit/payment-host-to-host

Response

{
 "responseCode": "2005400",
 "responseMessage": "Successful",
 "referenceNo": "37f89370b5034db0a283130c231dd27b",
 "partnerReferenceNo": "202010290000000001",
 "additionalInfo": {
 "status": "SUCCESS",
 "billAmount": "100000.00",
 "paidAmount": "100000.00"
 }


DEVICE IS DIFFERENT

{
 "responseCode": "4045406",
 "responseMessage": "Need to Request OTP",
 "partnerReferenceNo": "202010290000000001",
"additionalInfo": {
 "status": "DEVICE IS DIFFERENT",
 "msisdnList": [
 {
 "phoneId": "b5da903138c748a38264cea0424a191e",
 "phoneNumber": "0812XXXXX29"
 },
 {
 "phoneId": "2648cd3b308d4037bf4a3e75cc8988c9",
 "phoneNumber": "0817XXXXXX55"
 }
 ]
 }
}
5. SNAP OneKlik Direct Debit Payment Status

This service is used to inquiry OneKlik transaction status.

 
Additional Headers:
Field Params Type Data Type  Length Type Mandatory Description
CHANNEL-ID Header String(5)   Channel’s identifier (95251)
X-PARTNER-ID Header String(36)   Partner/Merchant Unique ID 
X-EXTERNAL-ID Header String (36)   Y Reference Number from Partner/Merchant

Payload:
 
Field Data Type Length Type Mandatory  Format Description
originalPartnerReferenceNo String (18)    Y   Transaction ID from Partner/Merchant
serviceCode String (2)   Y   Original transaction service code. Fill with “54”
Result of the request will contains following information:

Response:
 
Field Data Type Length Type Mandatory  Format Description
responseCode String (7)   Y   Response code
responseMessage String (150)   Y   Response message description
originalReferenceNo String (32)   C   Original Response reference number from OneKlik. Filled if response success
originalPartnerReferenceNo String (18)   Y   Transaction ID from merchant 
serviceCode String (2)    Y   Original transaction service code. Filled with "54" (Direct Debit OneKlik)
latestTransactionStatus String (2)   C Numeric 00 - Success
01 - Initiated
02 - Paying
06 - Failed
07 - Not found
transAmount Object   C   Total billed amount from customer (transaction amount + fee amount)
     value String (16.2)   Y Numeric TransAmount value
     currency String (3)    Y   TransAmount currency
feeAmount Object   C   Fee/Admin Fee for BCA
     value String (16.2)   Y Numeric FeeAmount value
     currency String (3)    Y   FeeAmount currency
paidTime String   C DateTime Timestamp when the payment done. Sent in yyyy-MMddTHH:mm:ssTZD format (ISO 8601 format)
additionalInfo Object   C   Filled upon transaction with responseCode success 
     paidAmount String (16.2)   C Numeric Total paid amount from customer.
     isTimeout String (1)    C Y”/”N”  Indicates if status 06 is Timeout or not
     chargeToken String (32)    C   Charge token after Generate OTP for status 01
Here is the list of error codes that can be returned. 
HTTP Code Error Code Error Message
200 2005500 Successful
400 4005500 Bad request
400 4005501 Invalid Field Format {field name} 
400 4005502 Invalid Mandatory Field {field name}
401 4015501 Invalid token (B2B)
401 4015500 Unauthorized. [Reason] 
403 4035501 Feature Not Allowed
403 4035518 Inactive Card/Account/Customer
404 4045511 Invalid Card/Account/Customer
404 4045508 Invalid Merchant
500 5005500 General Error
500 5005500 Internal Server Error
504 5045500 Timeout

curl –X POST https://sandbox.bca.co.id/openapi/oneklik/v1.0/debit/status

Request

-H 'CHANNEL-ID':'95221'
-H 'X-PARTNER-ID': '61123'
-H 'X-EXTERNAL-ID': 'ef343939477c4f19b01c7600ca487bc8'
-d '
{
 "originalPartnerReferenceNo": "202010290000000001",
 "serviceCode": "54"
}'

curl –X POST https://sandbox.bca.co.id/openapi/oneklik/v1.0/debit/status

Response

{
 "responseCode": "2005500",
 "responseMessage": "Successful",
 "originalReferenceNo": "37f89370b5034db0a283130c231dd27b",
 "originalPartnerReferenceNo": "202010290000000001",
 "serviceCode": "54",
 "latestTransactionStatus": "00",
 "transAmount": {
 "value": "100000.00",
 "currency": "IDR"
},
 "feeAmount": {
 "value": "1000.00",
 "currency": "IDR"
 },
 "paidTime": "2020-10-29T00:00:04+07:00",
 "additionalInfo": {
 "paidAmount": "100000.00"
 }
}


Success – Timeout Transaction

{
 "responseCode": "2005500",
 "responseMessage": "Successful",
 "originalReferenceNo": "37f89370b5034db0a283130c231dd27b",
 "originalPartnerReferenceNo": "202010290000000001",
 "serviceCode": "54",
 "latestTransactionStatus": "06",
 "transAmount": {
 "value": "100000.00",
 "currency": "IDR"
 },
 "feeAmount": {
 "value": "1000.00",
 "currency": "IDR"
 },
 "paidTime": "2020-10-29T00:00:04+07:00",
 "additionalInfo": {
 "paidAmount": "100000.00",
 "isTimeout": "Y"
 }
}

Success – Initiated Transaction (Need OTP)
{
 "responseCode": "2005500",
 "responseMessage": "Successful",
 "originalReferenceNo": "37f89370b5034db0a283130c231dd27b",
 "originalPartnerReferenceNo": "202010290000000001",
 "serviceCode": "54",
 "latestTransactionStatus": "06",
 "transAmount": {
 "value": "100000.00",
 "currency": "IDR"
 },
 "feeAmount": {
 "value": "1000.00",
 "currency": "IDR"
 },
 "paidTime": "2020-10-29T00:00:04+07:00",
 "additionalInfo": {
 "chargeToken": "1a6418f60dad46b9bdb2216d1a641186"
 }
}


6. SNAP OneKlik Inquiry OTP

This service is used to inquiry list of phone numbers that can be used to send OTP.

 
Additional Headers:
Field Params Type Data Type  Length Type Mandatory Description
CHANNEL-ID Header String(5)   Channel’s identifier (95221)
X-PARTNER-ID Header String(36)   Partner/Merchant Unique ID 
X-EXTERNAL-ID Header String (36)   Y Reference Number from Partner/Merchant

Payload:
 
Field Data Type Length Type Mandatory  Format Description
merchantId String (5)   Y   Partner/Merchant Unique ID
additionalInfo Object   Y    
     xcoId String (32)   Y   Valid OneKlik Identifier when credential successfully registered to BCA
     userId String (18)   Y   Customer Id from Merchant
Result of the request will contains following information:

Response:
 
Field Data Type Length Type Mandatory  Format Description
responseCode String (7)   Y   Response code
responseMessage String (150)   Y   Response message description
additionalInfo Object   C   Filled upon transaction with responseCode success
    msisdnList Array of Object   Y   List of phone number to send OTP.
          phoneNumber String (15)   Y   Masked customer phone number 
          phoneId String (32)   Y   Phone id
Here is the list of error codes that can be returned. 
HTTP Code Error Code Error Message
200 2008500 Successful
400 4008500 Bad request
400 4008501 Invalid Field Format {field name} 
400 4008502 Invalid Mandatory Field {field name}
401 4018501 Invalid token (B2B)
401 4018500 Unauthorized. [Reason] 
403 4038501 Feature Not Allowed
403 4038518 Inactive Card/Account/Customer
404 4048511 Invalid Card/Account/Customer
500 5008500 General Error
500 5008500 Internal Server Error
504 5048500 Timeout

curl –X POST https://sandbox.bca.co.id/openapi/oneklik/v1.0/payment/inquiry-phone-number

Request

-H 'CHANNEL-ID':'95221'
-H 'X-PARTNER-ID': '61123'
-H 'X-EXTERNAL-ID': 'ef343939477c4f19b01c7600ca487bc8'
-d '
{
 "merchantId": "61123",
 "additionalInfo": {
 "userId": "customer01",
 "xcoId": "a6fe3266cafd4cddbe3d77e1a9855634"
 }
}'

curl –X POST https://sandbox.bca.co.id/openapi/oneklik/v1.0/payment/inquiry-phone-number

Response

{
 "responseCode": "2008500",
 "responseMessage": "Successful",
 "additionalInfo": {
 "msisdnList": [
 {
 "phoneId": "b5da903138c748a38264cea0424a191e",
 "phoneNumber": "0812XXXXX29"
 },
 {
 "phoneId": "2648cd3b308d4037bf4a3e75cc8988c9",
 "phoneNumber": "0817XXXXXX55"
 }
 ]
 }
}
7. SNAP OneKlik Notify Registration/Delete

This service is used to inquiry list of phone numbers that can be used to send OTP.

 
Additional Headers:
Field Params Type Data Type  Length Type Mandatory Description
CHANNEL-ID Header String(5)   Channel’s identifier (95221)
X-PARTNER-ID Header String(32)   Partner/Merchant Unique ID 
X-EXTERNAL-ID Header String (32)   Y Reference Number from Partner/Merchant

Payload:
 
Field Data Type Length Type Mandatory  Format Description
additionalInfo Object   Y    
     requestId String (32)   C Alphanumeric Request ID used when registering account. Only show up when notifying activation data
     xcoId String (32)   Y Alphanumeric Valid OneKlik Identifier when credential successfully registered to BCA.
     credentialType String (2)   C Alphanumeric Credential type.
DC = Debit card
CC = Credit card
     credentialNumber String (16)   C Alphanumeric Customer credential number (masked)
     maxLimit String (9)   C Numeric OneKlik max daily limit registered 
     userId String (18)   Y Alphanumeric Customer id from merchant
     createdDate String   Y DateTime Created / Deleted date. Format: ISO-8601
     status String(3)   Y Alphanumeric OneKlik Account Nofitication Status
ACT = Activated
DEL = Deleted
Result of the request will contains following information:

Response:
 
Field Data Type Length Type Mandatory  Format Description
responseCode String (7)   Y Numeric Response code
responseMessage String (150)   Y Alphanumeric Response message description
referenceNo String (32)   C Alphanumeric Response reference from copartner. Filled if the response was success
additionalInfo Object   C   Filled upon transaction with responseCode success
     xcoId String (32)    Y Alphanumeric XCO ID
     responseWs String (16)   Y Alphanumeric Response:
0 = Success
1 = Failed

POST https://copartners.com/oneklik/v2.0/notification

Request

Request (Activation Notification)

-H 'CHANNEL-ID':'95221'
-H 'X-PARTNER-ID':'61123'
-H 'X-EXTERNAL-ID': 'ef343939477c4f19b01c7600ca487bc8'
-d ' {
 "additionalInfo":{
"requestd":" 2c909de773e578f80173e600b7950018",
"xcoId":" 2c909de773e578f80173e600b7950019",
"createdDate":"2022-01-03T01:02:03+07:00",
"credentialNumber":"************1234",
"credentialType":"DC",
"maxLimit":"100000",
"userId":"customer01",
"status":"ACT"
}
}'

Request (Delete Account Notification)

-H 'CHANNEL-ID':'95221'
-H 'X-PARTNER-ID':'61123'
-H 'X-EXTERNAL-ID': 'ef343939477c4f19b01c7600ca487bc8'
-d ' {
 "additionalInfo":{
"xcoId":" 2c909de773e578f80173e600b7950019",
"createdDate":"2022-01-03T01:02:03+07:00",
"userId":"customer01",
"status":"DEL"
 }
}'

POST https://copartners.com/oneklik/v2.0/notification

Response

{
 "responseCode": "2008600",
 "responseMessage": "Successful",
 "referenceNo": "37f89370b5034db0a283130c231dd27b",
 "additionalInfo": {
 "xcoId": "2c90c800702d1234017033ab9a060003",
 "responseWs": "0"
 }
}
8. SNAP OneKlik OTP

This service is used to generate and send OTP to customer phone to authorize payment.

 
Additional Headers:
Field Params Type Data Type  Length Type Mandatory Description
CHANNEL-ID Header String(5)   Channel’s identifier (95221)
X-PARTNER-ID Header String(36)   Partner/Merchant Unique ID 
X-EXTERNAL-ID Header String (36)   Y Reference Number from Partner/Merchant

Payload:
 
Field Data Type Length Type Mandatory  Format Description
journeyId String (32)   Y   Journey Identifier. Must be equal with XEXTERNAL-ID header
bankCardToken String (32)   Y   Card Token for Payment. Fill with XCOID
merchantId String (5)   Y   Partner/Merchant Unique ID
partnerReferenceNo String (18)   Y   Transaction ID from Partner/Merchant
trxDateTime String   Y DateTime Transaction date and time from merchant. Format yyyy-MMddTHH:mm:ssTZD format (ISO 8601 format)
additionalInfo Object   Y    
     userId String (18)   Y   Customer Id from Merchant
transAmount Object   Y   Total billed amount from customer (transaction amount + fee amount)
     value String (16.2)   Y Numeric TransAmount value
     currency String (3)   Y   TransAmount currency
phoneId String (32)   Y   Phone id
Result of the request will contains following information:

Response:
 
Field Data Type Length Type Mandatory  Format Description
responseCode String (7)   Y   Response code
responseMessage String (150)   Y   Response message description
chargeToken String (32)   C   String code for OTP verification. Sent when response code success / timeout 
additionalInfo Object   C   Filled upon transaction with responseCode success
     xcoId String (32)   Y   Valid Identifier when credential successfully registered to BCA
     phoneId String (32)   Y   Phone id
     merchantId String (5)   Y   Partner/Merchant Unique ID
Here is the list of error codes that can be returned. 
HTTP Code Error Code Error Message
200 2008100 Successful
400 4008100 Bad request
400 4008101 Invalid Field Format {field name} 
400 4008102 Invalid Mandatory Field {field name}
401 4018101 Invalid token (B2B)
401 4018100 Unauthorized. [Reason] 
403 4038101 Feature Not Allowed
403 4038118 Inactive Card/Account/Customer
404 4048111 Invalid Card/Account/Customer
404 4048108 Invalid Merchant
429 4298100 Too Many Requests
500 5005100 General Error
500 5008500 Internal Server Error
504 5048500 Timeout

curl –X POST https://sandbox.bca.co.id/openapi/oneklik/v1.0/otp

Request

-H 'CHANNEL-ID':'95221'
-H 'X-PARTNER-ID': '61123'
-H 'X-EXTERNAL-ID': 'ef343939477c4f19b01c7600ca487bc8'
-d '
{
 "journeyId": "ef343939477c4f19b01c7600ca487bc8",
 "bankCardToken": "a6fe3266cafd4cddbe3d77e1a9855634",
 "merchantId": "61123",
 "partnerReferenceNo": "202010290000000001",
 "trxDateTime": "2020-10-29T00:00:01+07:00",
 "additionalInfo": {
 "userId": "customer01",
 "transAmount": {
 "value": "100000.00",
 "currency": "IDR"
 },
 "phoneId": "b5da903138c748a38264cea0424a191e"
 }
}'

curl –X POST https://sandbox.bca.co.id/openapi/oneklik/v1.0/otp

Response

SUCCESS

{
 "responseCode": "2008100",
 "responseMessage": "Successful",
 "chargeToken": "1a6418f60dad46b9bdb2216d1a641186",
 "additionalInfo": {
 "xcoId": "a6fe3266cafd4cddbe3d77e1a9855634",
 "phoneId": "b5da903138c748a38264cea0424a191e",
 "merchantId": "61123"
 }
}

TIMEOUT

{
 "responseCode": "5048100",
 "responseMessage": "Timeout",
 "chargeToken": "1a6418f60dad46b9bdb2216d1a641186",
 "additionalInfo": {
 "xcoId": "a6fe3266cafd4cddbe3d77e1a9855634",
 "phoneId": "b5da903138c748a38264cea0424a191e",
 "merchantId": "61123"
 }
}

Valuta Asing

1. Info Kurs

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




Error
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
500 ESB-14-005 Sistem sedang dalam maintenance System under maintenance
504 ESB-14-006 Timeout, silakan 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
429 ESB-14-010 Jumlah permintaan melebihi limit Limit request exceeded
404 ESB-14-011 Service tidak ada Service doesn’t exist
401 ESB-14-012 Tidak berhak mengakses service ini Not allowed to access this service
400 ESB-99-009 Field Latitude harus diisi Missing Mandatory field Latitude
400 ESB-99-009 Field Longitude harus diisi Missing Mandatory field Longitude
400 ESB-99-039 Isian input field Count tidak valid Input for field Count not valid
400 ESB-99-040 Tipe isian field Count tidak valid Input type for field Count not valid
400 ESB-99-040 Tipe isian field Latitude tidak valid Input type for field Latitude not valid
400 ESB-99-040 Tipe isian field Longitude tidak valid Input type for field Longitude not valid
400 ESB-99-040 Tipe isian field Radius tidak valid Input type for field Radius not valid
400 ESB-99-132 Data tidak ditemukan No Data Found
400 ESB-99-335 Mata uang tidak valid Invalid CurrencyCode
400 ESB-99-339 Tipe Kurs tidak valid Invalid RateType
400 ESB-99-392 Nilai SearchBy tidak valid Invalid SearchBy value
400 ESB-99-460 Panjang input Value tidak valid Input Value minimal length invalid
500 ESB-99-999 Sistem sedang tidak tersedia System unavaliable

Info Kurs

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]

Info Kurs

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"
}
2. Rate Management

Inquiry exchange rate to be used on Forex Transaction API


Additional Headers:
Field Data Type Mandatory Description
channel-id String(5) Channel Identification Number (Ex: 95057 for JVALAS)
credential-id String(10) CIN/CIS Example : 01234567890

Path Parameters:
 
Field DataType Mandatory  Description
cis  String(10)  Customer number 
currency-code String(3) Foreign currency code.

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”.
Query Parameter
Field Data Type  Mandatory Description
settlement-type String Param2 for decide Valas or Outward Remmitance (OR)

Result of the request will contains following information:

Response:
 
Field DataType Description
currency_code String(3)  The currency code. e.g. IDR, USD, JPY
buy String (13)  In format number(6.6). When the currency has no value for this field, it will be set to “-“.
sell String (13)  In format number(6.6). When the currency has no value for this field, it will be set to “-“.
session_id String (50)   
Error
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
500 ESB-14-005 Sistem sedang dalam maintenance System under maintenance
504 ESB-14-006 Timeout, silakan 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
429 ESB-14-010 Jumlah permintaan melebihi limit Limit request exceeded
404 ESB-14-011 Service tidak ada Service doesn’t exist
401 ESB-14-012 Tidak berhak mengakses service ini Not allowed to access this service
400 ESB-99-009 Field Latitude harus diisi Missing Mandatory field Latitude
400 ESB-99-009 Field Longitude harus diisi Missing Mandatory field Longitude
400 ESB-99-039 Isian input field Count tidak valid Input for field Count not valid
400 ESB-99-040 Tipe isian field Count tidak valid Input type for field Count not valid
400 ESB-99-040 Tipe isian field Latitude tidak valid Input type for field Latitude not valid
400 ESB-99-040 Tipe isian field Longitude tidak valid Input type for field Longitude not valid
400 ESB-99-040 Tipe isian field Radius tidak valid Input type for field Radius not valid
400 ESB-99-132 Data tidak ditemukan No Data Found
400 ESB-99-335 Mata uang tidak valid Invalid CurrencyCode
400 ESB-99-339 Tipe Kurs tidak valid Invalid RateType
400 ESB-99-392 Nilai SearchBy tidak valid Invalid SearchBy value
400 ESB-99-460 Panjang input Value tidak valid Input Value minimal length invalid
500 ESB-99-999 Sistem sedang tidak tersedia System unavaliable

GET /rate/management/customers/{cis}/currenc ies/{currency_code}

Request

GET
https://sandbox.bca.co.id/rate/management/customers/00000002120/currencies/USD?settle
ment-type=VALAS
-H "channel-id" : "95057"
-H "credential-id" : "00000002120"

GET /rate/management/customers/{cis}/currenc ies/{currency_code}

Response

{
 "currency_code": "USD",
 "buy": "14058",
 "sell": "14068",
"session_id": "rHaaVK4vNlb713GMmdXFXB94MSfhZMwjL+Uqv9EKqwIpA1CGKcOF36IWHaa0DKqaBK6Im1mvzCRg9HMHUZ550w=="
}
3. Transaksi Valas

You can send fund transfer forex 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 domestic bank include BCA.


Additional Headers:
Field Data Type Mandatory Description
channel-id String(5) Channel Identification Number (Ex: 95057 for JVALAS)
credential-id String(10) CIN/CIS Example : 01234567890

Path Parameters:
 
Field DataType Mandatory  Description
cis  String(10)  Customer number 
currency-code String(3) Foreign currency code.

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”.
Query Parameter
Field Data Type  Mandatory Description
settlement-type String Param2 for decide Valas or Outward Remmitance (OR)

Result of the request will contains following information:

Response:
 
Field DataType Description
currency_code String(3)  The currency code. e.g. IDR, USD, JPY
buy String (13)  In format number(6.6). When the currency has no value for this field, it will be set to “-“.
sell String (13)  In format number(6.6). When the currency has no value for this field, it will be set to “-“.
session_id String (50)   
Error
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
500 ESB-14-005 Sistem sedang dalam maintenance System under maintenance
504 ESB-14-006 Timeout, silakan 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
429 ESB-14-010 Jumlah permintaan melebihi limit Limit request exceeded
404 ESB-14-011 Service tidak ada Service doesn’t exist
401 ESB-14-012 Tidak berhak mengakses service ini Not allowed to access this service
400 ESB-99-009 Field Latitude harus diisi Missing Mandatory field Latitude
400 ESB-99-009 Field Longitude harus diisi Missing Mandatory field Longitude
400 ESB-99-039 Isian input field Count tidak valid Input for field Count not valid
400 ESB-99-040 Tipe isian field Count tidak valid Input type for field Count not valid
400 ESB-99-040 Tipe isian field Latitude tidak valid Input type for field Latitude not valid
400 ESB-99-040 Tipe isian field Longitude tidak valid Input type for field Longitude not valid
400 ESB-99-040 Tipe isian field Radius tidak valid Input type for field Radius not valid
400 ESB-99-132 Data tidak ditemukan No Data Found
400 ESB-99-335 Mata uang tidak valid Invalid CurrencyCode
400 ESB-99-339 Tipe Kurs tidak valid Invalid RateType
400 ESB-99-392 Nilai SearchBy tidak valid Invalid SearchBy value
400 ESB-99-460 Panjang input Value tidak valid Input Value minimal length invalid
500 ESB-99-999 Sistem sedang tidak tersedia System unavaliable

Informasi Umum

1. Lokasi ATM BCA

Inquiry ATM information, such as, locate the nearest ATM to user or find by ATM Type, Name, Address or City.


Query String Parameters:
 
Field DataType Mandatory  Description
Latitude String Y In format number( (-)3.12 ) Latitude of client location, possible for minus signed value.
Longitude String Y In format number( (-)3.12 ) Longitude of client location, possible for minus signed value.
Count  String  Number of branches to search, in Integer. Maximum value = 20.
SearchBy  String  Possible values: Address/City/Type/Name 
Radius  String  N  Branch distance (in meters) from client location, in Integer. *default = 500 
Value  String  N  Value should be filled in :
- String; If SearchBy = Address or City or Name
- ATM, ANT, or CRM; If SearchBy = Type
Result of the request will contains following information:

Response:
 
Field DataType Description
atm_details Array of Object The object that hold information of the ATM.
WSID String ATM wsid
Type String ATM type eg:
ATM Tarik Tunai
ATM Non-Tunai
ATM Setor Tarik
Name  String  ATM name 
Address String ATM full address
City String ATM city
Country String ATM country
Latitude String ATM latitude
Longitude String  ATM longitude 
Distance  String  ATM distance from client location in meters 




Error
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
500 ESB-14-005 Sistem sedang dalam maintenance System under maintenance
504 ESB-14-006 Timeout, silakan 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
429 ESB-14-010 Jumlah permintaan melebihi limit Limit request exceeded
404 ESB-14-011 Service tidak ada Service doesn’t exist
401 ESB-14-012 Tidak berhak mengakses service ini Not allowed to access this service
400 ESB-99-009 Field Latitude harus diisi Missing Mandatory field Latitude
400 ESB-99-009 Field Longitude harus diisi Missing Mandatory field Longitude
400 ESB-99-039 Isian input field Count tidak valid Input for field Count not valid
400 ESB-99-040 Tipe isian field Count tidak valid Input type for field Count not valid
400 ESB-99-040 Tipe isian field Latitude tidak valid Input type for field Latitude not valid
400 ESB-99-040 Tipe isian field Longitude tidak valid Input type for field Longitude not valid
400 ESB-99-040 Tipe isian field Radius tidak valid Input type for field Radius not valid
400 ESB-99-132 Data tidak ditemukan No Data Found
400 ESB-99-335 Mata uang tidak valid Invalid CurrencyCode
400 ESB-99-339 Tipe Kurs tidak valid Invalid RateType
400 ESB-99-392 Nilai SearchBy tidak valid Invalid SearchBy value
400 ESB-99-460 Panjang input Value tidak valid Input Value minimal length invalid
500 ESB-99-999 Sistem sedang tidak tersedia System unavaliable

GET /general/info-bca/atm?SearchBy= &Latitude=&Longitude=&Value=&Radius=&Count=

Request

GET /general/info-bca/atm?Latitude=6.1900718&Longitude=106.797190 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]

GET /general/info-bca/atm?SearchBy= &Latitude=&Longitude=&Value=&Radius=&Count=

Response

{
    "atm_details": [
      {
        "WSID": "69715",
        "Type": "ATM",
        "Name": "221U-Mayapada Tower 2"
        "Address": "Jl. Jend. Sudirman Kav.28, Jakarta 12920",
        "City": "Jakarta Selatan",
        "Country": "INDONESIA",
        "Latitude": "-6.2112194",
        "Longitude": "106.8201026",
        "Distance": ""8243.97"
      },
      {
        "WSID": "84034",
        "Type": "ATM",
        "Name": "221U-Mayapada Tower 2"
        "Address": "Jl. Jend. Sudirman Kav.28, Jakarta 12920",
        "City": "Jakarta Selatan",
        "Country": "INDONESIA",
        "Latitude": "-6.2112194",
        "Longitude": "106.8201026",
        "Distance": ""8243.97"
      },
      {
        "WSID": "69765",
        "Type": "ATM",
        "Name": "2748-Prudential Tower 2"
        "Address": "Jl. Jend. Sudirman Kav.79 Jakarta Selatan",
        "City": "Jakarta Selatan",
      }
    ]
}
2. Lokasi Cabang BCA

Get information about nearest branch location by distance, address, city or branch type.


Query String Parameters:
 
Field DataType Mandatory  Description
Latitude String Y In format number( (-)3.12 ) Latitude of client location, possible for minus signed value.
Longitude String Y In format number( (-)3.12 ) Longitude of client location, possible for minus signed value.
Count  String  Number of branches to search, in Integer. Maximum value = 20.
Radius  String  N  Branch distance (in meters) from client location, in Integer. *default = 500 
SearchBy  String  N  Possible values: Address/City/Type 
Value  String  N  If SearchBy = Address or City, value should be filled in : String;
If SearchBy = Type, value should be filled with: kcu , kcp, e-branch, weekendbanking 
Result of the request will contains following information:

Response:
 
Field DataType Description
BranchDetails Array of Object The object that hold information of the branch.
Type String Branch type eg. KCU, KCP
Name String Branch name
Address String Branch full address
City String Branch city
Country String Branch country
Latitude String Branch latitude
Longitude String  Branch longitude 
Distance  String  Branch distance from client location in meters 
E-Branch  String  “Y” if e-branch reservation is available otherwise it will be set to “N” 
WeekendBankingOperation  String  The name of the day of weekend, “Saturday”, “Sunday” and “Saturday&Sunday” 




Error
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
500 ESB-14-005 Sistem sedang dalam maintenance System under maintenance
504 ESB-14-006 Timeout, silakan 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
429 ESB-14-010 Jumlah permintaan melebihi limit Limit request exceeded
404 ESB-14-011 Service tidak ada Service doesn’t exist
401 ESB-14-012 Tidak berhak mengakses service ini Not allowed to access this service
400 ESB-99-009 Field Latitude harus diisi Missing Mandatory field Latitude
400 ESB-99-009 Field Longitude harus diisi Missing Mandatory field Longitude
400 ESB-99-039 Isian input field Count tidak valid Input for field Count not valid
400 ESB-99-040 Tipe isian field Count tidak valid Input type for field Count not valid
400 ESB-99-040 Tipe isian field Latitude tidak valid Input type for field Latitude not valid
400 ESB-99-040 Tipe isian field Longitude tidak valid Input type for field Longitude not valid
400 ESB-99-040 Tipe isian field Radius tidak valid Input type for field Radius not valid
400 ESB-99-132 Data tidak ditemukan No Data Found
400 ESB-99-335 Mata uang tidak valid Invalid CurrencyCode
400 ESB-99-339 Tipe Kurs tidak valid Invalid RateType
400 ESB-99-392 Nilai SearchBy tidak valid Invalid SearchBy value
400 ESB-99-460 Panjang input Value tidak valid Input Value minimal length invalid
500 ESB-99-999 Sistem sedang tidak tersedia System unavaliable

GET /general/info-bca/branch

Request

GET /general/info-bca/branch?Latitude=-6.137235&Longitude=106.824928 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]

GET /general/info-bca/branch

Response

{
    "BranchDetails": [
      {
        "Type": "KCP",
        "Name": "Mangga Dua Mal",
        "Address": "Mangga Dua Mal No. RM. 49, Jl. Mangga Dua Raya,,,",
        "City": "Jakarta Pusat",
        "Country": "INDONESIA",
        "Latitude": "-6.137235",
        "Longitude": "106.824928",
        "Distance": "0"
        "E-Branch": "N"
        "WeekendBankingOperation": "Saturday&Sunday"
      },
      {
        "Type": "KCP",
        "Name": "Mangga Dua",
        "Address": "Pst. Perd. Grosir Psr Pagi Lt. 2 Bl. KA No. 001A-B,002 & 012, Jl. Arteri M.D.,,",
        "City": "Jakarta Utara",
        "Country": "INDONESIA",
        "Latitude": "-6.133801",
        "Longitude": "106.822994",
        "Distance": "437.63"
        "E-Branch": "N"
        "WeekendBankingOperation": "-"
      }
    ]
}

Financing

1. Batal Faktur
You can cancel your invoice data which had been sent to BCA using this service, at least 1(one) day before disburse date.

Cut-off time: 08.00 P.M - 04.00 A.M (using UTC+07 Time Zone)

Your Request must contain following information:

Additional Headers
Field DataType Mandatory Description
ChannelID String(5) Y Channel’s identifier. Fill it with “95051”.
CredentialID String(10) Y Channel’s credential (KlikBCA Bisnis Corporate ID)
Request
Field Data Type  Mandatory Description
TransactionID String(20) Transaction ID unique per request (using UTC+07 Time Zone format). Must be 20 in length
TransactionDate String(10) Y  Transaction date. Format: yyyyMM-dd. Must be today’s date 
ReferenceID String(30) Y  Sender’s invoice number. Must be same as previous created sender’s invoice number.
DistributorCode String(20)  Y  Distributor Code. Format: Alphanumeric and Special Character
Amount  String(16)  Y  Transfer Amount. Format: Number, 13.2. Must be same as previous created invoice transfer amount
CurrencyCode  String(3)  Y  Currency Code. Format: Alphanumeric 
PrincipalCode  String(11)  Y  Principal Code. Must be 11 in length. Format: Numeric 
SubPrincipalCode  String(11)  Y  Sub Principal Code. Must be 11 in length. Disbursement to Sub Principal only. Format: Numeric. 
DisburseDate  String(10)  Y  Transaction date. Format: yyyy-MM-dd. Must be same as previous created invoice disburse date
Response
Field DataType Description
TransactionID String(20)  Transaction ID unique per request (using UTC+07 Time Zone format). Must be 20 in length
TransactionDate String(10)  Transaction date. Format: yyyy-MM-dd. Must be today’s date
ReferenceID String(30)  Sender’s invoice number. Must be unique
DistributorCode  String(20)   Distributor Code. Format: Alphanumeric and Special Character
Amount  String(16)   Transfer Amount. Format: Number, 13.2
CurrencyCode  String(3)   Currency Code. Format: Alphanumeric
PrincipalCode  String(11)   Principal Code. Must be 11 in length. Format: Numeric
SubPrincipalCode  String(11)   Sub Principal Code. Must be 11 in length. Disbursement to Sub Principal only. Format: Numeric.
DisburseDate  String(10)   Transaction date. Format: yyyy-MM-dd

Error
HTTP Code Error Code Error Message (Indonesian) Error Message (English)
400 ESB-01-005 Data tidak ditemukan No Data Found
400 ESB-11-005 Kode mata uang tidak vaild Currency not valid
400 ESB-11-038 Prinsipal tidak aktif Principal is inactive
400 ESB-11-040 Distributor tidak aktif Distributor is not active
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
500 ESB-14-005 Sistem sedang dalam maintenance System under maintenance
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
429 ESB-14-010 Jumlah permintaan melebihi limit Limit request exceeded
404 ESB-14-011 Service tidak ada Service doesn’t exist
401 ESB-14-012 Tidak berhak mengakses service ini Not allowed to access this service
504 ESB-14-013 Timeout. Silakan melakukan transaksi kembali Timeout. Please retry your transaction
400 ESB-14-015 Content Type tidak valid Invalid Content Type
400 ESB-14-016 Format JSON tidak valid Invalid JSON format
400 ESB-82-002 Corporate ID tidak valid Invalid Corporate ID
400 ESB-82-003 TransactionID tidak unik TransactionID not unique
400 ESB-82-026 Lewat batas waktu cut off Cut off time is exceeded
400 ESB-99-009 Field (0) harus diisi Missing mandatory field (0)
400 ESB-99-113 Transaksi ditolak Transaction rejected
400 ESB-99-128 Panjang field (0) melebihi ketentuan Field (0) exceed limit
400 ESB-99-284 (0) tidak valid Invalid (0)
400 ESB-99-524 ReferenceID sudah diproses pada tanggal (entry_date) ReferenceID already processed by (entry_date)
400 ESB-99-559 Timeout. Silakan melakukan transaksi kembali Timeout. Please retry your transaction
400 ESB-99-568 SubprincipalCode tidak terdaftar SubprincipalCode is not registered
400 ESB-99-569 Tidak terdaftar untuk fitur Distributor Financing Not registered for Distributor Financing features
400 ESB-99-573 TransactionDate harus diisi dengan tanggal hari ini Transaction Date must be filled with today's date
400 ESB-99-655 Subprinsipal tidak aktif Subprincipal is inactive

PUT /df/invoice

Request

PUT df/invoice 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]
ChannelID: [channelID]
CredentialID: [credentialID]

{
    "TransactionID" : "ABCDEFGHIJ0123456789",
    "TransactionDate" : "2018-02-15",
    "ReferenceID" : "INV0000001",
    "DistributorCode"" : "ABCDE-12345",
    "Amount" : "100000000.00",
    "CurrencyCode" : "IDR",
    "PrincipalCode"" : "00000000001",
    "DisburseDate"" : "2018-02-30",
}

PUT /df/invoice

Response

{
    "TransactionID" : "ABCDEFGHIJ0123456789",
    "TransactionDate" : "2018-02-15",
    "ReferenceID"" : "INV0000001",
    "DistributorCode" : "ABCDE-12345",
    "Amount" : "100000000.00",
    "CurrencyCode" : "IDR",
    "PrincipalCode" : "00000000001",
    "SubPrincipalCode" : "",
    "DisburseDate" : "2018-02-30"
}
2. Kirim Faktur
You can send your invoice data to BCA using this service.
Cut-off time: 08.00 P.M - 04.00 A.M (using UTC+07 Time Zone)
Your Request must contain following information:

Additional Headers
Field DataType Mandatory Description
ChannelID String(5) Y Channel’s identifier. Fill it with “95051”.
CredentialID String(10) Y Channel’s credential (KlikBCA Bisnis Corporate ID)
Payload
Field Data Type  Mandatory Description
TransactionID String(20) Transaction ID unique per request (using UTC+07 Time Zone format). Must be 20 in length
TransactionDate String(10) Y  Transaction date. Format: yyyyMM-dd. Must be today’s date 
ReferenceID String(30) Y  Sender’s invoice number. Must be unique 
DistributorCode String(20)  Y  Distributor Code. Format: Alphanumeric and Special Character
Amount  String(16)  Y  Transfer Amount. Format: Number, 13.2  
CurrencyCode  String(3)  Y  Currency Code. Format: Alphanumeric 
PrincipalCode  String(11)  Y  Principal Code. Must be 11 in length. Format: Numeric 
SubPrincipalCode  String(11)  Y  Sub Principal Code. Must be 11 in length. Disbursement to Sub Principal only. Format: Numeric. 
DisburseDate  String(10)  Y  Transaction date. Format: yyyyMM-dd  
Response
Field DataType Description
TransactionID String(20)  Transaction ID unique per request (using UTC+07 Time Zone format). Must be 20 in length
TransactionDate String(10)  Transaction date. Format: yyyy-MM-dd. Must be today’s date
ReferenceID String(30)  Sender’s invoice number. Must be unique
DistributorCode  String(20)   Distributor Code. Format: Alphanumeric and Special Character
Amount  String(16)   Transfer Amount. Format: Number, 13.2
CurrencyCode  String(3)   Currency Code. Format: Alphanumeric
PrincipalCode  String(11)   Principal Code. Must be 11 in length. Format: Numeric
SubPrincipalCode  String(11)   Sub Principal Code. Must be 11 in length. Disbursement to Sub Principal only. Format: Numeric.
DisburseDate  String(10)   Transaction date. Format: yyyy-MM-dd

Error
HTTP Code Error Code Error Message (Indonesian) Error Message (English)
400 ESB-01-005 Data tidak ditemukan No Data Found
400 ESB-11-005 Kode mata uang tidak vaild Currency not valid
400 ESB-11-038 Prinsipal tidak aktif Principal is inactive
400 ESB-11-040 Distributor tidak aktif Distributor is not active
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
500 ESB-14-005 Sistem sedang dalam maintenance System under maintenance
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
429 ESB-14-010 Jumlah permintaan melebihi limit Limit request exceeded
404 ESB-14-011 Service tidak ada Service doesn’t exist
401 ESB-14-012 Tidak berhak mengakses service ini Not allowed to access this service
504 ESB-14-013 Timeout. Silakan melakukan transaksi kembali Timeout. Please retry your transaction
400 ESB-14-015 Content Type tidak valid Invalid Content Type
400 ESB-14-016 Format JSON tidak valid Invalid JSON format
400 ESB-82-002 Corporate ID tidak valid Invalid Corporate ID
400 ESB-82-003 TransactionID tidak unik TransactionID not unique
400 ESB-82-026 Lewat batas waktu cut off Cut off time is exceeded
400 ESB-99-009 Field (0) harus diisi Missing mandatory field (0)
400 ESB-99-113 Transaksi ditolak Transaction rejected
400 ESB-99-128 Panjang field (0) melebihi ketentuan Field (0) exceed limit
400 ESB-99-284 (0) tidak valid Invalid (0)
400 ESB-99-524 ReferenceID sudah diproses pada tanggal (entry_date) ReferenceID already processed by (entry_date)
400 ESB-99-559 Timeout. Silakan melakukan transaksi kembali Timeout. Please retry your transaction
400 ESB-99-568 SubprincipalCode tidak terdaftar SubprincipalCode is not registered
400 ESB-99-569 Tidak terdaftar untuk fitur Distributor Financing Not registered for Distributor Financing features
400 ESB-99-573 TransactionDate harus diisi dengan tanggal hari ini Transaction Date must be filled with today's date
400 ESB-99-655 Subprinsipal tidak aktif Subprincipal is inactive

POST /df/invoice

Request

POST df/invoice 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]
ChannelID: [channelID]
CredentialID: [credentialID]

{
    "TransactionID" : "ABCDEFGHIJ0123456789",
    "TransactionDate" : "2018-02-15",
    "ReferenceID" : "INV0000001",
    "DistributorCode"" : "ABCDE-12345",
    "Amount" : "100000000.00",
    "CurrencyCode" : "IDR",
    "PrincipalCode"" : "00000000001",
    "DisburseDate"" : "2018-02-30",
}

POST /df/invoice

Response

{
    "TransactionID" : "ABCDEFGHIJ0123456789",
    "TransactionDate" : "2018-02-15",
    "ReferenceID"" : "INV0000001",
    "DistributorCode" : "ABCDE-12345",
    "Amount" : "100000000.00",
    "CurrencyCode" : "IDR",
    "PrincipalCode" : "00000000001",
    "SubPrincipalCode" : "",
    "DisburseDate" : "2018-02-30"
}
3. Notifikasi Pembayaran Faktur
Service for BCA to send notification of disbursement.
Additional Headers
Field DataType Mandatory Description
X-Pass-Signature String(5) Y This is a header field, use to replace the “Pass” field on everybody payload
that contains signature. This field occurred on every BCA request to Copartner’s API.
Request
Field Data Type  Mandatory Description
TransactionID String(20) UUID as unique ID for every request
TransactionDate String(10) Y  Transaction date. Format: yyyyMM-dd. Must be today’s date 
ReferenceID String(30) Y  Invoice number. Must be unique
DistributorCode String(20)  Y  Distributor Code. Format: Alphanumeric and Special Character
Amount  String(16)  Y  Transfer Amount. Format: Number, 13.2
CurrencyCode  String(3)  Y  Currency Code. Format: Alphanumeric 
PrincipalCode  String(11)  Y  Principal Code. Must be 11 in length. Format: Numeric 
SubPrincipalCode  String(11)  Y  Sub Principal Code. Format : Numeric
DisburseDate  String(10)  Y  Transaction date. Format: yyyy-MM-dd
Response
Field DataType Description
TransactionID String(20)  Same TransactionID from request. It’s a UUID
TransactionDate String(10)  Transaction date. Format: yyyy-MM-dd. Must be today’s date
ReferenceID String(30)  Invoice number. Must be unique
DistributorCode  String(20)   Distributor Code. Format: Alphanumeric and Special Character
Amount  String(16)   Transfer Amount. Format: Number, 13.2
CurrencyCode  String(3)   Currency Code. Format: Alphanumeric
PrincipalCode  String(11)   Principal Code. Must be 11 in length. Format: Numeric
SubPrincipalCode  String(11)   Sub Principal Code. Must be 11 in length. Disbursement to Sub Principal only. Format: Numeric.
DisburseDate  String(10)   Transaction date. Format: yyyy-MM-dd

POST https://www.copartners.com/bca-df/disbursement/notification

Request

POST https://www.copartners.com/bca-df/disbursement/notification HTTP/1.1
X-Pass-Signature: b9125ab10816f6929d214c96ffca77dfd5a1ea13856362b85eeaeb70155

{
    "TransactionID" : "65d5dd3474b44c5abbb0ce1cb5ff563f",",
    "TransactionDate" : "2018-02-15",
    "ReferenceID"" : "INV001923",",
    "PrincipalCode"" : "00000000001",
    "SubPrincipalCode"" : "",
    "DistributorCode" : "ABCDE-12345",
    "Amount" : "100000000.00",
    "CurrencyCode" : "IDR",
}

POST https://www.copartners.com/bca-df/disbursement/notification

Response

{
    "TransactionID" : "65d5dd3474b44c5abbb0ce1cb5ff563f",",
    "TransactionDate" : "2018-02-15",
    "ReferenceID"" : "INV001923",",
    "PrincipalCode"" : "00000000001",
    "SubPrincipalCode"" : "00000000001",
    "DistributorCode" : "ABCDE-12345",
    "Amount" : "100000000.00",
    "CurrencyCode" : "IDR",
}
4. Notifikasi Pembayaran Pinjaman
Service for BCA to send notification of transaction limit update.
Additional Headers
Field DataType Mandatory Description
X-Pass-Signature String(5) Y This is a header field, use to replace the “Pass” field on everybody payload
that contains signature. This field occurred on every BCA request to Copartner’s API.
Request
Field Data Type  Mandatory Description
TransactionID String(32) UUID as unique ID for every request
DistributorCode String(20)  Y  Distributor Code. Format: Alphanumeric and Special Character
PrincipalCode  String(11)  Y  Principal Code. Format: Numeric
Amount String(16 Y  Transfer Amount. Minus sign ( - ) is applied for corrective payment. Format: Number, 13.2.
TransactionDate String(10)  Y  Transaction date. Format: yyyy-MM-dd
Response
Field DataType Description
TransactionID String(32)  Same TransactionID from request. It’s a UUID
DistributorCode  String(20)   Same Distributor Code from request.

POST https://www.copartners.com/bca-df/txn-limit/notification

Request

POST https://www.copartners.com/bca-df/txn-limit/notification HTTP/1.1
X-Pass-Signature: b9125ab10816f6929d214c96ffca77dfd5a1ea13856362b85eeaeb70155

{
    "TransactionID" : "65d5dd3474b44c5abbb0ce1cb5ff563f",",
    "PrincipalCode"" : "00000000001",
    "DistributorCode"" : "ABCDE-12345",
    "Amount" : "100000000.00",
    "TransactionDate" : "2018-02-15",
}

POST https://www.copartners.com/bca-df/txn-limit/notification

Response

{
    "TransactionID" : "65d5dd3474b44c5abbb0ce1cb5ff563f",",
    "DistributorCode" : "ABCDE-12345",
}
5. Notifikasi Status Fasilitas Kredit
Service for BCA to send notification of transaction limit update.
Additional Headers
Field DataType Mandatory Description
X-Pass-Signature String(5) Y This is a header field, use to replace the “Pass” field on everybody payload
that contains signature. This field occurred on every BCA request to Copartner’s API.
Request
Field Data Type  Mandatory Description
TransactionID String(32) UUID as unique ID for every request
DistributorCode String(20)  Y  Distributor Code. Format: Alphanumeric and Special Character
PrincipalCode  String(11)  Y  Principal Code. Must be 11 in length. Format: Numeric 
StopSupplyFlag String(1)  Y  0 : Stop (Distributor Non-Aktif/Wanprestasi); 1: Open (Distributor Aktif)
TransactionDate String(10)  Y  Transaction date. Format: yyyy-MM-dd
Response
Field DataType Description
TransactionID String(32)  Same TransactionID from request. It’s a UUID
DistributorCode  String(20)   Same Distributor Code from request.

POST https://www.copartners.com/bca-df/stop-supply/notification

Request

POST https://www.copartners.com/bca-df/stop-supply/notification HTTP/1.1
X-Pass-Signature: b9125ab10816f6929d214c96ffca77dfd5a1ea13856362b85eeaeb70155

{
    "TransactionID" : "65d5dd3474b44c5abbb0ce1cb5ff563f",",
    "DistributorCode"" : "ABCDE-12345",
    "PrincipalCode"" : "00000000001",
    "TransactionDate" : "2018-02-15",
    "StopSupplyFlag"" : "1",
}

POST https://www.copartners.com/bca-df/stop-supply/notification

Response

{
    "TransactionID" : "65d5dd3474b44c5abbb0ce1cb5ff563f",",
    "DistributorCode" : "ABCDE-12345",
}

FIRE

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

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
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


Error
HTTP Code Error Code Error Message (Indonesian) Error Message (English)
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, silakan 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
429 ESB-14-010 Jumlah permintaan melebihi limit Limit request exceeded
404 ESB-14-011 Service tidak ada Service doesn't exist
401 ESB-14-012 Tidak berhak mengakses service ini Not allowed to access this service
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]
409 0201 Ref pengirim sama Same Sender Ref
409 0202 PIN sudah pernah dipakai PIN already in used
400 0203 Format mata uang tidak valid Invalid Currency format
400 0204 BIC Code tidak valid Invalid BIC Code
400 0205 ABA Code tidak valid Invalid ABA Code
400 0206 CHIPS Code tidak valid Invalid CHIPS Code
400 0207 NID Code tidak valid Invalid NID Code
400 0208 Country Code untuk NID Code tidak valid Invalid Country Code for NID Code
401 0302 Access Code salah Wrong Access Code
400 0303 Branch Code tidak ditemukan Unknown Branch Code
400 0304 User ID tidak ditemukan Unknown User ID
401 0306 Tidak berhak Not Authorized Privilege
400 0401 PRODUK/MATA UANG TIDAK DITEMUKAN PRODUCT/CURRENCY NOT FOUND
400 0402 LIMIT PRODUK TIDAK CUKUP PRODUCT LIMIT NOT ENOUGH
400 0403 LIMIT RELEASER TIDAK CUKUP LIMIT RELEASER NOT ENOUGH
400 0404 ERROR PDN LIMIT ERROR PDN LIMIT
400 0405 GAGAL VALIDASI REKENING PENERIMA FAILED TO VALIDATE BENEFICIARY ACCOUNT
400 0406 REKENING PENERIMA TIDAK VALID INVALID BENEFICIARY ACCOUNT
400 0407 SALDO TIDAK CUKUP INSUFFICIENT FUND
404 0408 TRANSAKSI TIDAK DITEMUKAN TRANSACTION NOT FOUND
400 0409 REKENING PENERIMA TUTUP CLOSED BENEFICIARY ACCOUNT
500 0410 TRANSAKSI TIDAK DAPAT DIPROSES TRANSACTION CAN NOT BE PROCESSED
400 0412 BUKAN MEMBER SWITCHING NON SWITCHING MEMBER
400 0413 REKENING TIDAK VALID INVALID ACCOUNT NUMBER
400 0414 DITOLAK KARENA SALDO TIDAK CUKUP REJECT DUE INSUFFICIENT FUND
503 0415 DITOLAK KARENA CUT OFF SISTEM BCA REJECT DUE TO CUT OFF SYSTEM BCA
500 0901 Error Database Error Database
503 0902 Sistem sedang dalam maintenance System Under Maintenance
503 0903 Awal hari error Begin of Day Error
500 0999 Error sistem System error

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]

{
    "Authentication":{
        "CorporateID":"ABCDE",
        "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"
    }
}

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

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"
}
2. Informasi Rekening Penerima
Provides service to Inquiry BCA’s Account name or Other Bank Switching’s Account name.
Your request must contain following information:

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 UserID 
 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
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


Error
HTTP Code Error Code Error Message (Indonesian) Error Message (English)
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, silakan 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
429 ESB-14-010 Jumlah permintaan melebihi limit Limit request exceeded
404 ESB-14-011 Service tidak ada Service doesn't exist
401 ESB-14-012 Tidak berhak mengakses service ini Not allowed to access this service
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]
409 0201 Ref pengirim sama Same Sender Ref
409 0202 PIN sudah pernah dipakai PIN already in used
400 0203 Format mata uang tidak valid Invalid Currency format
400 0204 BIC Code tidak valid Invalid BIC Code
400 0205 ABA Code tidak valid Invalid ABA Code
400 0206 CHIPS Code tidak valid Invalid CHIPS Code
400 0207 NID Code tidak valid Invalid NID Code
400 0208 Country Code untuk NID Code tidak valid Invalid Country Code for NID Code
401 0302 Access Code salah Wrong Access Code
400 0303 Branch Code tidak ditemukan Unknown Branch Code
400 0304 User ID tidak ditemukan Unknown User ID
401 0306 Tidak berhak Not Authorized Privilege
400 0401 PRODUK/MATA UANG TIDAK DITEMUKAN PRODUCT/CURRENCY NOT FOUND
400 0402 LIMIT PRODUK TIDAK CUKUP PRODUCT LIMIT NOT ENOUGH
400 0403 LIMIT RELEASER TIDAK CUKUP LIMIT RELEASER NOT ENOUGH
400 0404 ERROR PDN LIMIT ERROR PDN LIMIT
400 0405 GAGAL VALIDASI REKENING PENERIMA FAILED TO VALIDATE BENEFICIARY ACCOUNT
400 0406 REKENING PENERIMA TIDAK VALID INVALID BENEFICIARY ACCOUNT
400 0407 SALDO TIDAK CUKUP INSUFFICIENT FUND
404 0408 TRANSAKSI TIDAK DITEMUKAN TRANSACTION NOT FOUND
400 0409 REKENING PENERIMA TUTUP CLOSED BENEFICIARY ACCOUNT
500 0410 TRANSAKSI TIDAK DAPAT DIPROSES TRANSACTION CAN NOT BE PROCESSED
400 0412 BUKAN MEMBER SWITCHING NON SWITCHING MEMBER
400 0413 REKENING TIDAK VALID INVALID ACCOUNT NUMBER
400 0414 DITOLAK KARENA SALDO TIDAK CUKUP REJECT DUE INSUFFICIENT FUND
503 0415 DITOLAK KARENA CUT OFF SISTEM BCA REJECT DUE TO CUT OFF SYSTEM BCA
500 0901 Error Database Error Database
503 0902 Sistem sedang dalam maintenance System Under Maintenance
503 0903 Awal hari error Begin of Day Error
500 0999 Error sistem System error

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]

{
    "Authentication":{
        "CorporateID":"POSTID",
        "AccessCode":"jSvazuvEnz2mavv1wj6L",
        "BranchCode":"POSTID01",
        "UserID":"OPRPOS1",
        "LocalID":"2370000"
    },
    "BeneficiaryDetails":{
        "BankCodeType":"BIC",
        "BankCodeValue":"CENAIDJAXXX",
        "AccountNumber":"0106666011"
    }
}

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

Response

{
    "BeneficiaryDetails":
    {
        "ServerBeneAccountName":"ERWINA TAUFIK"
    },
    "StatusTransaction":"0000",
    "StatusMessage":"Success"
}
3. Informasi Saldo Rekening Mitra
Provides service to Inquiry balance for Vostro’s Account.
Your request must contain following information:

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)  User ID
 LocalId String(15)   Branch code from FI sub branch of API client
 FIDetails      
 AccountNumber String(34)  FI sender's account number thar registered in FIRe
Result of the request will contains following information:


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)   FI sender’s currency that registered in FIRe
 AccountBalance String(20)  FI sender’s account balance that registered in FIRe. Format : number(17.2) 


Error
HTTP Code Error Code Error Message (Indonesian) Error Message (English)
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, silakan 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
429 ESB-14-010 Jumlah permintaan melebihi limit Limit request exceeded
404 ESB-14-011 Service tidak ada Service doesn't exist
401 ESB-14-012 Tidak berhak mengakses service ini Not allowed to access this service
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]
409 0201 Ref pengirim sama Same Sender Ref
409 0202 PIN sudah pernah dipakai PIN already in used
400 0203 Format mata uang tidak valid Invalid Currency format
400 0204 BIC Code tidak valid Invalid BIC Code
400 0205 ABA Code tidak valid Invalid ABA Code
400 0206 CHIPS Code tidak valid Invalid CHIPS Code
400 0207 NID Code tidak valid Invalid NID Code
400 0208 Country Code untuk NID Code tidak valid Invalid Country Code for NID Code
401 0302 Access Code salah Wrong Access Code
400 0303 Branch Code tidak ditemukan Unknown Branch Code
400 0304 User ID tidak ditemukan Unknown User ID
401 0306 Tidak berhak Not Authorized Privilege
400 0401 PRODUK/MATA UANG TIDAK DITEMUKAN PRODUCT/CURRENCY NOT FOUND
400 0402 LIMIT PRODUK TIDAK CUKUP PRODUCT LIMIT NOT ENOUGH
400 0403 LIMIT RELEASER TIDAK CUKUP LIMIT RELEASER NOT ENOUGH
400 0404 ERROR PDN LIMIT ERROR PDN LIMIT
400 0405 GAGAL VALIDASI REKENING PENERIMA FAILED TO VALIDATE BENEFICIARY ACCOUNT
400 0406 REKENING PENERIMA TIDAK VALID INVALID BENEFICIARY ACCOUNT
400 0407 SALDO TIDAK CUKUP INSUFFICIENT FUND
404 0408 TRANSAKSI TIDAK DITEMUKAN TRANSACTION NOT FOUND
400 0409 REKENING PENERIMA TUTUP CLOSED BENEFICIARY ACCOUNT
500 0410 TRANSAKSI TIDAK DAPAT DIPROSES TRANSACTION CAN NOT BE PROCESSED
400 0412 BUKAN MEMBER SWITCHING NON SWITCHING MEMBER
400 0413 REKENING TIDAK VALID INVALID ACCOUNT NUMBER
400 0414 DITOLAK KARENA SALDO TIDAK CUKUP REJECT DUE INSUFFICIENT FUND
503 0415 DITOLAK KARENA CUT OFF SISTEM BCA REJECT DUE TO CUT OFF SYSTEM BCA
500 0901 Error Database Error Database
503 0902 Sistem sedang dalam maintenance System Under Maintenance
503 0903 Awal hari error Begin of Day Error
500 0999 Error sistem System error

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]

{
    "Authentication":{
        "CorporateID":"POSTID",
        "AccessCode":"jSvazuvEnz2mavv1wj6L",
        "BranchCode":"POSTID01",
        "UserID":"OPRPOS1,
        "LocalID":"40115"
    },
    "FIDetails":{
        "AccountNumber":"0012323008"
    }
}

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

Response

{
    "FIDetails":
    {
        "CurrencyID":"USD",
        "AccountBalance":"228277.56"
    },
    "StatusTransaction":"0000",
    "StatusMessage":"Success"
}
4. Informasi Status Kiriman Uang
Provides service to Inquiry Transaction that has been submitted before. Your request must contain following information:

Request
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) 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) N : PIN NON
F : Form Number
B : BCARef Number
 InquiryValue String(35) Value for PIN NON/Form Number/ BCARef Number
       
Result of the request will contains following information:

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


Error
HTTP Code Error Code Error Message (Indonesian) Error Message (English)
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, silakan 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
429 ESB-14-010 Jumlah permintaan melebihi limit Limit request exceeded
404 ESB-14-011 Service tidak ada Service doesn't exist
401 ESB-14-012 Tidak berhak mengakses service ini Not allowed to access this service
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]
409 0201 Ref pengirim sama Same Sender Ref
409 0202 PIN sudah pernah dipakai PIN already in used
400 0203 Format mata uang tidak valid Invalid Currency format
400 0204 BIC Code tidak valid Invalid BIC Code
400 0205 ABA Code tidak valid Invalid ABA Code
400 0206 CHIPS Code tidak valid Invalid CHIPS Code
400 0207 NID Code tidak valid Invalid NID Code
400 0208 Country Code untuk NID Code tidak valid Invalid Country Code for NID Code
401 0302 Access Code salah Wrong Access Code
400 0303 Branch Code tidak ditemukan Unknown Branch Code
400 0304 User ID tidak ditemukan Unknown User ID
401 0306 Tidak berhak Not Authorized Privilege
400 0401 PRODUK/MATA UANG TIDAK DITEMUKAN PRODUCT/CURRENCY NOT FOUND
400 0402 LIMIT PRODUK TIDAK CUKUP PRODUCT LIMIT NOT ENOUGH
400 0403 LIMIT RELEASER TIDAK CUKUP LIMIT RELEASER NOT ENOUGH
400 0404 ERROR PDN LIMIT ERROR PDN LIMIT
400 0405 GAGAL VALIDASI REKENING PENERIMA FAILED TO VALIDATE BENEFICIARY ACCOUNT
400 0406 REKENING PENERIMA TIDAK VALID INVALID BENEFICIARY ACCOUNT
400 0407 SALDO TIDAK CUKUP INSUFFICIENT FUND
404 0408 TRANSAKSI TIDAK DITEMUKAN TRANSACTION NOT FOUND
400 0409 REKENING PENERIMA TUTUP CLOSED BENEFICIARY ACCOUNT
500 0410 TRANSAKSI TIDAK DAPAT DIPROSES TRANSACTION CAN NOT BE PROCESSED
400 0412 BUKAN MEMBER SWITCHING NON SWITCHING MEMBER
400 0413 REKENING TIDAK VALID INVALID ACCOUNT NUMBER
400 0414 DITOLAK KARENA SALDO TIDAK CUKUP REJECT DUE INSUFFICIENT FUND
503 0415 DITOLAK KARENA CUT OFF SISTEM BCA REJECT DUE TO CUT OFF SYSTEM BCA
500 0901 Error Database Error Database
503 0902 Sistem sedang dalam maintenance System Under Maintenance
503 0903 Awal hari error Begin of Day Error
500 0999 Error sistem System error

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]

{
    "Authentication":{
        "CorporateID":"ABCDE",
        "AccessCode":"iAepe8QGv39mTbuFrXN1",
        "BranchCode":"ABCDE01",
        "UserID":"ABCDEO003",
        "LocalID":"ABCDE01"
    },
    "TransactionDetails":{
        "InquiryBy":"N",
        "InquiryValue":"0247986325"
    }
}

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

Response

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

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
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


Error
HTTP Code Error Code Error Message (Indonesian) Error Message (English)
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, silakan 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
429 ESB-14-010 Jumlah permintaan melebihi limit Limit request exceeded
404 ESB-14-011 Service tidak ada Service doesn't exist
401 ESB-14-012 Tidak berhak mengakses service ini Not allowed to access this service
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]
409 0201 Ref pengirim sama Same Sender Ref
409 0202 PIN sudah pernah dipakai PIN already in used
400 0203 Format mata uang tidak valid Invalid Currency format
400 0204 BIC Code tidak valid Invalid BIC Code
400 0205 ABA Code tidak valid Invalid ABA Code
400 0206 CHIPS Code tidak valid Invalid CHIPS Code
400 0207 NID Code tidak valid Invalid NID Code
400 0208 Country Code untuk NID Code tidak valid Invalid Country Code for NID Code
401 0302 Access Code salah Wrong Access Code
400 0303 Branch Code tidak ditemukan Unknown Branch Code
400 0304 User ID tidak ditemukan Unknown User ID
401 0306 Tidak berhak Not Authorized Privilege
400 0401 PRODUK/MATA UANG TIDAK DITEMUKAN PRODUCT/CURRENCY NOT FOUND
400 0402 LIMIT PRODUK TIDAK CUKUP PRODUCT LIMIT NOT ENOUGH
400 0403 LIMIT RELEASER TIDAK CUKUP LIMIT RELEASER NOT ENOUGH
400 0404 ERROR PDN LIMIT ERROR PDN LIMIT
400 0405 GAGAL VALIDASI REKENING PENERIMA FAILED TO VALIDATE BENEFICIARY ACCOUNT
400 0406 REKENING PENERIMA TIDAK VALID INVALID BENEFICIARY ACCOUNT
400 0407 SALDO TIDAK CUKUP INSUFFICIENT FUND
404 0408 TRANSAKSI TIDAK DITEMUKAN TRANSACTION NOT FOUND
400 0409 REKENING PENERIMA TUTUP CLOSED BENEFICIARY ACCOUNT
500 0410 TRANSAKSI TIDAK DAPAT DIPROSES TRANSACTION CAN NOT BE PROCESSED
400 0412 BUKAN MEMBER SWITCHING NON SWITCHING MEMBER
400 0413 REKENING TIDAK VALID INVALID ACCOUNT NUMBER
400 0414 DITOLAK KARENA SALDO TIDAK CUKUP REJECT DUE INSUFFICIENT FUND
503 0415 DITOLAK KARENA CUT OFF SISTEM BCA REJECT DUE TO CUT OFF SYSTEM BCA
500 0901 Error Database Error Database
503 0902 Sistem sedang dalam maintenance System Under Maintenance
503 0903 Awal hari error Begin of Day Error
500 0999 Error sistem System error

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]

{
    "Authentication": {
        "CorporateID": "CORP1",
        "AccessCode": "Ya9wn025GgaKkcbDsTvR",
        "BranchCode": "BRANCH01",
        "UserID": "USERID0001",
        "LocalID": "LOCAL001"
    },
    "SenderDetails": {
        "FirstName": "First Name",
        "LastName": "",
        "DateOfBirth": "",
        "Address1": "Taman Cibaduyut RT1",
        "Address2": "",
        "City": "Kab  Bandung",
        "StateID": "",
        "PostalCode": "",
        "CountryID": "ID",
        "Mobile": "",
        "IdentificationType": "",
        "IdentificationNumber": "",
        "AccountNumber": ""
    },
    "BeneficiaryDetails": {
        "Name": "RAFI ZULFIKAR MUSTAQIM",
        "DateOfBirth": "",
        "Address1": "",
        "Address2": "",
        "City": "",
        "StateID": "",
        "PostalCode": "",
        "CountryID": "ID",
        "Mobile": "",
        "IdentificationType": "",
        "IdentificationNumber": "",
        "NationalityID": "",
        "Occupation": "",
        "BankCodeType": "BIC",
        "BankCodeValue": "CENAIDJAXXX",
        "BankCountryID": "ID",
        "BankAddress": "",
        "BankCity": "",
        "AccountNumber": "0106666011"
    },
    "TransactionDetails": {
        "CurrencyID": "IDR",
        "Amount": "100000",
        "PurposeCode": "550",
        "Description1": "",
        "Description2": "",
        "DetailOfCharges": "OUR",
        "SourceOfFund": "",
        "FormNumber": "56559859607940"
    }
}

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

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"
}
6. Pembatalan Kiriman Uang Tunai
Provides service for Cancellation “Cash Transfer” to Non account holder. Yout request must contain following information:

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
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


Error
HTTP Code Error Code Error Message (Indonesian) Error Message (English)
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, silakan 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
429 ESB-14-010 Jumlah permintaan melebihi limit Limit request exceeded
404 ESB-14-011 Service tidak ada Service doesn't exist
401 ESB-14-012 Tidak berhak mengakses service ini Not allowed to access this service
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]
409 0201 Ref pengirim sama Same Sender Ref
409 0202 PIN sudah pernah dipakai PIN already in used
400 0203 Format mata uang tidak valid Invalid Currency format
400 0204 BIC Code tidak valid Invalid BIC Code
400 0205 ABA Code tidak valid Invalid ABA Code
400 0206 CHIPS Code tidak valid Invalid CHIPS Code
400 0207 NID Code tidak valid Invalid NID Code
400 0208 Country Code untuk NID Code tidak valid Invalid Country Code for NID Code
401 0302 Access Code salah Wrong Access Code
400 0303 Branch Code tidak ditemukan Unknown Branch Code
400 0304 User ID tidak ditemukan Unknown User ID
401 0306 Tidak berhak Not Authorized Privilege
400 0401 PRODUK/MATA UANG TIDAK DITEMUKAN PRODUCT/CURRENCY NOT FOUND
400 0402 LIMIT PRODUK TIDAK CUKUP PRODUCT LIMIT NOT ENOUGH
400 0403 LIMIT RELEASER TIDAK CUKUP LIMIT RELEASER NOT ENOUGH
400 0404 ERROR PDN LIMIT ERROR PDN LIMIT
400 0405 GAGAL VALIDASI REKENING PENERIMA FAILED TO VALIDATE BENEFICIARY ACCOUNT
400 0406 REKENING PENERIMA TIDAK VALID INVALID BENEFICIARY ACCOUNT
400 0407 SALDO TIDAK CUKUP INSUFFICIENT FUND
404 0408 TRANSAKSI TIDAK DITEMUKAN TRANSACTION NOT FOUND
400 0409 REKENING PENERIMA TUTUP CLOSED BENEFICIARY ACCOUNT
500 0410 TRANSAKSI TIDAK DAPAT DIPROSES TRANSACTION CAN NOT BE PROCESSED
400 0412 BUKAN MEMBER SWITCHING NON SWITCHING MEMBER
400 0413 REKENING TIDAK VALID INVALID ACCOUNT NUMBER
400 0414 DITOLAK KARENA SALDO TIDAK CUKUP REJECT DUE INSUFFICIENT FUND
503 0415 DITOLAK KARENA CUT OFF SISTEM BCA REJECT DUE TO CUT OFF SYSTEM BCA
500 0901 Error Database Error Database
503 0902 Sistem sedang dalam maintenance System Under Maintenance
503 0903 Awal hari error Begin of Day Error
500 0999 Error sistem System error

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]

{
    "Authentication":{
        "CorporateID":"BCAAPI",
        "AccessCode":"k6re8tG35hgNODSg3Y",
        "BranchCode":"BCA01",
        "UserID":"BCAUSERID001",
        "LocalID":"40115"
    },
    "TransactionDetails":{
        "FormNumber":"CT293 IDR2D",
        "Amount":"9350000.00",
        "CurrencyID":"IDR"
    }
}

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

Response

{
    "TransactionDetails":
    {
        "FormNumber":"CT293_IDR2D",
        "ReleaseDateTime":"2016-04-20T04:00:23+07:00"
    },
    "StatusTransaction":"0000",
    "StatusMessage":"Success"
}
7. Transaksi Kiriman Uang Tunai
Provides service for transaction “Cash Transfer” to Non account holder.
Your request must contain following information:

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


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

Error
HTTP Code Error Code Error Message (Indonesian) Error Message (English)
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, silakan 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
429 ESB-14-010 Jumlah permintaan melebihi limit Limit request exceeded
404 ESB-14-011 Service tidak ada Service doesn't exist
401 ESB-14-012 Tidak berhak mengakses service ini Not allowed to access this service
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]
409 0201 Ref pengirim sama Same Sender Ref
409 0202 PIN sudah pernah dipakai PIN already in used
400 0203 Format mata uang tidak valid Invalid Currency format
400 0204 BIC Code tidak valid Invalid BIC Code
400 0205 ABA Code tidak valid Invalid ABA Code
400 0206 CHIPS Code tidak valid Invalid CHIPS Code
400 0207 NID Code tidak valid Invalid NID Code
400 0208 Country Code untuk NID Code tidak valid Invalid Country Code for NID Code
401 0302 Access Code salah Wrong Access Code
400 0303 Branch Code tidak ditemukan Unknown Branch Code
400 0304 User ID tidak ditemukan Unknown User ID
401 0306 Tidak berhak Not Authorized Privilege
400 0401 PRODUK/MATA UANG TIDAK DITEMUKAN PRODUCT/CURRENCY NOT FOUND
400 0402 LIMIT PRODUK TIDAK CUKUP PRODUCT LIMIT NOT ENOUGH
400 0403 LIMIT RELEASER TIDAK CUKUP LIMIT RELEASER NOT ENOUGH
400 0404 ERROR PDN LIMIT ERROR PDN LIMIT
400 0405 GAGAL VALIDASI REKENING PENERIMA FAILED TO VALIDATE BENEFICIARY ACCOUNT
400 0406 REKENING PENERIMA TIDAK VALID INVALID BENEFICIARY ACCOUNT
400 0407 SALDO TIDAK CUKUP INSUFFICIENT FUND
404 0408 TRANSAKSI TIDAK DITEMUKAN TRANSACTION NOT FOUND
400 0409 REKENING PENERIMA TUTUP CLOSED BENEFICIARY ACCOUNT
500 0410 TRANSAKSI TIDAK DAPAT DIPROSES TRANSACTION CAN NOT BE PROCESSED
400 0412 BUKAN MEMBER SWITCHING NON SWITCHING MEMBER
400 0413 REKENING TIDAK VALID INVALID ACCOUNT NUMBER
400 0414 DITOLAK KARENA SALDO TIDAK CUKUP REJECT DUE INSUFFICIENT FUND
503 0415 DITOLAK KARENA CUT OFF SISTEM BCA REJECT DUE TO CUT OFF SYSTEM BCA
500 0901 Error Database Error Database
503 0902 Sistem sedang dalam maintenance System Under Maintenance
503 0903 Awal hari error Begin of Day Error
500 0999 Error sistem System error

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]

{
    "Authentication": {
        "CorporateID": "PYTHSG",
        "AccessCode": "wArjfChZjj9dC3eJqz0X",
        "BranchCode": "PYTHSG01",
        "UserID": "PYTHSGAPI1",
        "LocalID": "PYTHSGAPI1"
    },
    "SenderDetails": {
        "FirstName": "Sutirah Binti",
        "LastName": "Hadi Suwito",
        "DateOfBirth": "",
        "Address1": "20 Pine Grove  06-02, Singapore",
        "Address2": "Singapore",
        "City": "SINGAPORE",
        "StateID": "",
        "PostalCode": "",
        "CountryID": "SG",
        "Mobile": "",
        "IdentificationType": "ID",
        "IdentificationNumber": "7729902",
        "AccountNumber": ""
    },
    "BeneficiaryDetails": {
        "Name": "HADI SUWITO",
        "DateOfBirth": "",
        "Address1": "",
        "Address2": "",
        "City": "",
        "StateID": "",
        "PostalCode": "",
        "CountryID": "ID",
        "Mobile": "",
        "IdentificationType": "",
        "IdentificationNumber": "",
        "NationalityID": "",
        "Occupation": "",
        "BankCodeType": "",
        "BankCodeValue": "",
        "BankCountryID": "",
        "BankAddress": "",
        "BankCity": "",
        "AccountNumber": ""
    },
    "TransactionDetails": {
        "PIN": "P2HBCA5581412",
        "CurrencyID": "IDR",
        "Amount": "5870890",
        "PurposeCode": "011",
        "Description1": "",
        "Description2": "",
        "DetailOfCharges": "OUR",
        "SourceOfFund": "SOF",
        "FormNumber": "5581412"
    }
}

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

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"
}

Top Up Flazz

1. Top Up Flazz Mobile Operating System
Banking service to make Flazz top up transaction by using Merchant's device/reader/application.
To be able to use this feature, the following 5 API services must be accessed by the client:
a. Get Session Key
 
API service to request session key. Session key is formed by randomly generated key to ensure session security during communication between Merchant and BCA Host.

Your Request must contain following information: 
Request Headers and URI Params
Field  Params Type DataType Mandatory Description
channel-id  Header String Y 95381 (WSID FLAZZ)
credential-id  Header String(36) Y Copartner-id
Payload (Form Data)
Field Data Type  Mandatory Description
reference_id String(12) Reference ID is datetime transaction in milisecond (unix time), requires only the first 12 digits and the same reference_id must be carried in 1 service API set for Top Up Flazz. Ex : 969677130000 Unique per transaction
request_data String(198) Y  Request data stream
Response
Field DataType Mandatory Description
response_data String(198)  N Response data stream
transaction_id String (16) N transaction_id
b. Send topup request from merchant
API service to send Flazz balance top up requests.

Your Request must contain following information: 
Request Headers and URI Params
Field Params Type DataType Mandatory Description
channel-id Header String Y 95381 (WSID FLAZZ)
credential-id Header String(36) Y Copartner-id
Payload (Form Data)
Field Data Type Mandatory Description
reference_id String(12) Y Reference ID is datetime transaction in milisecond (unix time), requires only the first 12 digits and the same reference_id must be carried in 1 service API set for Top Up Flazz. Ex : 969677130000 Unique per transaction
request_data String(448) Y Request data stream
Response
Field DataType Mandatory Description
response_data String(350) N Response data stream

ref_no String(6) N ref no
transaction_id String (16) N transaction_id
c. Reversal
 
API service to send reversal request of Flazz top up

Your Request must contain following information: 
Request Headers and URI Params
Field Params Type DataType Mandatory Description
channel-id Header String Y 95381 (WSID FLAZZ)
credential-id Header String(36) Y Copartner-id
Payload (Form Data)
Field Data Type Mandatory Description
reference_id String(12) Y Reference ID is datetime transaction in milisecond (unix time), requires only the first 12 digits and the same reference_id must be carried in 1 service API set for Top Up Flazz. Ex : 969677130000 Unique per transaction
request_data String(544) Y Request data stream
Response
Field DataType Mandatory Description
response_data String N Response data stream

transaction_id String (16) N transaction_id
d.ACK
 
API service to send ACK requests (Acknowledge) for successful / failed / lost-contact transactions of Flazz top up

Your Request must contain following information: 
Request Headers and URI Params
Field Params Type DataType Mandatory Description
channel-id Header String Y 95381 (WSID FLAZZ)
credential-id Header String(36) Y Copartner-id
Payload (Form Data)
Field Data Type Mandatory Description
reference_id String(12) Y Reference ID is datetime transaction in milisecond (unix time), requires only the first 12 digits and the same reference_id must be carried in 1 service API set for Top Up Flazz. Ex : 969677130000 Unique per transaction
request_data String(544) Y Request data stream
Response
Field DataType Mandatory Description
response_data String N Response data stream

transaction_id String (16) N transaction_id
e.Card Verification
 
API service to send Card Verification requests

Your Request must contain following information: 
Request Headers and URI Params
Field Params Type DataType Mandatory Description
channel-id Header String Y 95381 (WSID FLAZZ)
credential-id Header String(36) Y Copartner-id
Payload (Form Data)
Field Data Type Mandatory Description
reference_id String(12) Y Reference ID is datetime transaction in milisecond (unix time), requires only the first 12 digits and the same reference_id must be carried in 1 service API set for Top Up Flazz. Ex : 969677130000 Unique per transaction
request_data String(16) Y Request data from online merchants to check Flazz card number
Response
Field DataType Mandatory Description
response_data String(17) N Flazz card number

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

HTTP Code Error Code Error Message (Indonesian) Error Message (English) Description
400 ESB-14-001 HMAC tidak cocok HMAC mismatch 400
400 ESB-14-002 Permintaan tidak valid Invalid request 400
400 ESB-14-003 Timestamp tidak valid Invalid timestamp 400
400 ESB-14-004 parameter input tidak valid Invalid input parameter 400
500 ESB-14-005 Sistem sedang dalam maintenance System under maintenance 500
504 ESB-14-007 Timeout Timeout 504
401 ESB-14-008 Client_Id/Client_Secret /Grant_Type tidak valid Invalid Client_Id/Client_Secret /Grant_Type 401
401 ESB-14-009 Tidak berhak Unauthorized 401
404 ESB-14-011 Service tidak tersedia Service doesn't exist 404
401 ESB-14-012 Tidak berhak mengakses service ini Not allowed to access this service 401
401 ESB-14-014 ChannelID/CredentialID tidak valid Invalid ChannelID/CredentialID  401
400 ESB-14-015 Content Type tidak valid  Invalid Content Type 400
400 ESB-14-016 Format JSON tidak valid  Invalid JSON format 400
400 ESB-14-021 API Key tidak valid Invalid API Key 400
400 ESB-14-022 API Key/API Secret tidak cocok API Key/API Secret mismatch 400
504 ESB-14-023 Koneksi Timeout. Silakan cek transaksi kembali untuk memastikan keberhasilan transaksi Anda  Connection timeout. Please reinquiry your transaction to ensure transaction status 504
400 0002 Transaksi Gagal Transaction Failed Copartner is not registered
400 0012 Transaksi Gagal Transaction Failed Copartner is blocked
400 0022 Transaksi Gagal Transaction Failed Copartner max retry exceeded 
400 0032 Transaksi Gagal Transaction Failed Copartner session key not exist
400 1012 Kartu Error Card Error Check expired date failed
400 1022 Transaksi gagal, nominal Top Up kurang dari minimum Transaction failed, Top Up amount less than minimum Check min amount failed
400 1032 Transaksi gagal, nominal Top Up melebihi saldo maksimum Transaction failed, Top Up amount exceeds maximum balance Check max balance failed
400 1052 Transaksi gagal Transaction failed Check mandatory field failed
400 1062 Transaksi gagal Transaction failed Parse request data failed
400 1102 Transaksi gagal Transaction failed Duplicate transaction
400 1122 Transaksi gagal Transaction failed Check original data failed
400 1132 Transaksi gagal Transaction failed Check tid failed
400 1142 Transaksi gagal Transaction failed Check mid failed
400 1152 Kartu error Card error Card blacklisted
400 1202 Transaksi gagal Transaction failed TID and MID doesn’t exist
400 3013 Transaksi gagal Transaction failed Check topup limit timeout failed
400 3023 Transaksi gagal Transaction failed Request topup debit timeout failed
400 3045 Transaksi gagal Transaction failed Check atuf timeout failed
400 4662 Transaksi tidak dapat diproses. Silahkan coba beberapa saat lagi. Transaction can not be processed. Please try again later. Error dari EAI apabila terjadi koneksi timeout saat memanggil ke service lain.
400 4045 Maaf, transaksi anda tidak dapat diproses Sorry, your transaction can not be processed Identifier Channel tidak diizinkan mengakses
400 4009 Field (0) harus diisi Missing mandatory field (0) Field (0) harus diisi
400 4038 Panjang field (0) tidak valid  Field (0) length not valid Panjang field (0) tidak valid
400 4039 Isian input (0) tidak valid Input for field (0) not valid Isian input (0) tidak valid
400 4112 Inputan String JSON tidak valid Invalid JSON String input Format JSON input invalid 
400 4113 Transaksi ditolak Transaction rejected ClientID tidak dapat mengakses ke service
400 4414 Transaksi gagal Transaction failed Gagal saat konversi(format data yang diterima tidak sesuai)
400 4415 Transaksi gagal Transaction failed Record yang ingin dihapus tidak ada.
400 4416 Transaksi gagal Transaction failed File Limit TopUp tidak ada
400 4417 Transaksi gagal Transaction failed File Limit TopUp tidak bisa dibuka 
400 4418 Transaksi gagal Transaction failed File Limit TopUp tidak bisa dibaca
400 4419 Transaksi gagal Transaction failed Record sudah ada ketika tambah record baru 
400 4420 Transaksi gagal Transaction failed Record tidak ada ketika Change/Update
400 4421 Transaksi gagal Transaction failed Gagal menulis record
400 4422 Transaksi gagal Transaction failed Gagal hapus record
400 4423 Transaksi gagal Transaction failed FIID yang dikirimkan tidak sesuai/data FIID tidak ada
400 4424 Transaksi gagal Transaction failed Transaksi code tidak sesuai(sesuai dengan data element 91) 
400 4425 Transaksi gagal Transaction failed FIID tidak terdaftar
400 4426 Transaksi gagal Transaction failed File request tidak sesuai(sesuai dengan data element 101)
400 4428 Transaksi gagal Transaction failed Gagal ketika mencoba mencari nomor kartu
400 4429 Transaksi gagal, jumlah top up melebihi limit bulanan Transaction failed, Top Up amount exceeds monthly limit Limit kartu Flazz habis.
400 4430 Transaksi gagal Transaction failed Unik id tidak ditemukan
400 4431 Transaksi gagal Transaction failed Koneksi saat dari atau ke b24 terputus
400 4432 Transaksi gagal Transaction failed Koneksi saat dari atau ke b24d itolak
400 4414 Transaksi gagal Transaction failed Gagal saat konversi(format data yang diterima tidak sesuai)
400 4415 Transaksi gagal Transaction failed Record yang ingin dihapus tidak ada.
400 4416 Transaksi gagal Transaction failed File Limit TopUp tidak ada
400 4417 Transaksi gagal Transaction failed File Limit TopUp tidak bisa dibuka 
400 4418 Transaksi gagal Transaction failed File Limit TopUp tidak bisa dibaca
400 4419 Transaksi gagal Transaction failed Record sudah ada ketika tambah record baru 
400 4420 Transaksi gagal Transaction failed Record tidak ada ketika Change/Update
400 4421 Transaksi gagal Transaction failed Gagal menulis record 
400 4422 Transaksi gagal Transaction failed Gagal hapus record 
400 4423 Transaksi gagal Transaction failed FIID yang dikirimkan tidak sesuai/data FIID tidak ada
400 4424 Transaksi gagal Transaction failed Transaksi code tidak sesuai(sesuai dengan data element 91) 
400 4425 Transaksi gagal Transaction failed FIID tidak terdaftar
400 4426 Transaksi gagal Transaction failed File request tidak sesuai(sesuai dengan data element 101)
400 4427 Transaksi gagal Transaction failed Category selain C,F,T,R. 
400 4428 Transaksi gagal Transaction failed Gagal ketika mencoba mencari nomor kartu
400 4429 Transaksi gagal, kartu sumber dana lebih dari limit  Transaction failed, card for source of founds is over limit Limit habis kartu akses habis
400 4430 Transaksi gagal Transaction failed Unik id tidak ditemukan
400 4431 Transaksi gagal Transaction failed Koneksi saat dari atau ke b24 terputus
400 4432 Transaksi gagal Transaction failed Koneksi saat dari atau ke b24 ditolak
400 0000 Transaksi Berhasil Transaction Success Transaksi berhasil
400 5202 Transaksi 0 rupiah Transaction amount 0 Transaksi 0 Rupiah
400 5204 Maaf saldo tidak mencukupi  Sorry your balance is not enough  Maaf saldo tidak mencukupi
400 5206 Rekening ditolak Account Rejected Rekening ditolak
400 5700 Maaf transaksi harus IDR Sorry, currency must IDR Maaf transaksi harus IDR
400 5701 Rekening ditolak Account Rejected Rekening ditolak 
400 5702 Maaf rekening sudah tidak aktif Sorry, your account is dormant Maaf rekening sudah tidak aktif
400 5711 Maaf rekening anda masuk daftar hitam Sorry, your account is blacklist Rekening anda diblokir/masuk daftar hitam 
400 5999 Sistem sedang tidak tersedia System unavailable Sistem sedang tidak tersedia

POST /flazz/

Request

REQUEST FOR GET SESSION KEY

POST https://sandbox.bca.co.id/flazz/v2/getKey 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]
ChannelID: [channelID]
CredentialID: [credentialID]
{
    "reference_id" : "123456789012",
    "request_data" : "01010000202001171513224553594230303031454D424341303031885000015999824E180B6E8227061B4E8A275E3D373702021B4B5E821B063D4E0B370627024E843D3D274B181B8A1B375E4E8A4E020B203"
}


REQUEST FOR TOP UP REQUEST 

POST https://sandbox.bca.co.id/flazz/v2/topup 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]
ChannelID: [channelID]
CredentialID: [credentialID]
{
    "reference_id" : "123456789012",
    "request_data" : "01010024014500280000003800311900000000102020020317152011013049124553594230303031454D4243413030318850000159996E8282370684824E5E02848A8482188A064B06064E0627278A184B4E4E828A3D848A4B82028402064B8206023D1C0B1C1B0B826E1C063D6E185E6E0B4E821B844B37273718064E82024B4E1B0282185E4B37273718064E82024B4E1B0282185E4B37273718064E82024B4E1B0282185E4E0B3D181C4E1B27026E3D5E6E186E1B8A1C3D273782028A068A274B3D0B826E1AE5BCBB7C0226A4DB8C"
}


REQUEST FOR REVERSAL

POST https://sandbox.bca.co.id/flazz/v2/reversal 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]
ChannelID: [channelID]
CredentialID: [credentialID]
{
    "reference_id" : "123456789012",
    "request_data" : ""01010024014500010036938400291613000000102020012315164520013049124553594230303031454D424341303031885000015999275E6E824B1B4E021B1B1C4E0606023D4E844E5E8A021B6E8A4B4B1C6E4E6E8A4E5E8A82826E374B1B1B0218188A068482061C278A5E0B180B8A6E8A3D0B8A823784186E0B4E8237024E020B6E02825E1B8A020B270B82270227378202183D846E84824E021B4B844B82273D02183D5E5E8A061C6E06068A8A061B024B1B3D4B068A1C02020B6E824E8A371B1C064E8A3D4B84270682278A5E84374E37061C843D4B84270682278A5E84374E37061C843D4B84270682278A5E84374E37061C84C0396097845AD44C26CC"
}


REQUEST FOR ACK

POST https://sandbox.bca.co.id/flazz/v2/ack 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]
ChannelID: [channelID]
CredentialID: [credentialID]
{
    "reference_id" : "123456789012",
    "request_data" : ""01010024014500010036938400291613000000102020012315164520013049124553594230303031454D424341303031885000015999275E6E824B1B4E021B1B1C4E0606023D4E844E5E8A021B6E8A4B4B1C6E4E6E8A4E5E8A82826E374B1B1B0218188A068482061C278A5E0B180B8A6E8A3D0B8A823784186E0B4E8237024E020B6E02825E1B8A020B270B82270227378202183D846E84824E021B4B844B82273D02183D5E5E8A061C6E06068A8A061B024B1B3D4B068A1C02020B6E824E8A371B1C064E8A3D4B84270682278A5E84374E37061C843D4B84270682278A5E84374E37061C843D4B84270682278A5E84374E37061C84C0396097845AD44C26CC"
}

REQUEST FOR CARD VERIFICATION

POST https://api.klikbca.com/flazz/v2/cardver
-H channel-id 95381
-H credential-id 00ESBY0001
-H Authorization Bearer LYQG93kCXeQCwUWbhYcv5fnrRHum1esgN7nlIl3xmOWhfPIuicXzb9
-H X-BCA-Key fd2bd8c5-ff4d-41b6-8905-f0264f5c6b4f
-H X-BCA-Signature 652ce6723d7a0272c40d5812b3b16ecdaa689b74a04d6d859ed5ffcd7b233e2a
-H X-BCA-Timestamp 2020-02-18T09:27:31.198+07:00
-d {
 "reference_id": "123456789012",
 "request_data": " 0145007206508575"
 }

POST /flazz/

Response

RESPONSE FOR GET SESSION KEY

{
    "response_data" : ""01010000202001171513224553594230303031454D4243413030318850000159996DD3D35D3422B7B022CF34B7B0CD6D34345DB07A7ACFA45DCFD3B7A4D3A46DA4CFB0D3D35334B0347D6E537A347A5DCDABB",
"transaction_id": "1234567800000000"
}

RESPONSE FOR REQUEST TOP UP

{
    "response_data" : "01240145002800000038000000100000000000160230202002191019275D5D6E5DB05D6D7A7DCF7A22227A6EB07D5D3422CD68CF6853A4A4CDB77AD35DD334347AB7A45DB7D33434B06D68D3D334B7CF7D92D35D34A46E7AD3B7CF34685D34CF34A453D36EB75DD368B76EA4925D34CF34A453D36EB75DD368B76EA4925D34CF34A453D36EB75DD368B76EA4925D34CF34A453D36EB75DD368B76EA4925D34CF34A453D36EB75DD368B76EA492F8B2",
"ref_no": "777777",
 "transaction_id": "0000112233445566"
}

RESPONSE FOR REVERSAL

{
"response_data": null,
 "transaction_id": "1234567800000000"
}

RESPONSE FOR CARD VERIFICATION

{
    "response_data" : "01450072065085750"
}

RESPONSE FOR ACK

{
    "response_data" : "null"
    "transaction_id": "1234567800000000"
}

Error Schema
{
"error_code" : "Error code",
"error_message" : {
"indonesian" : "Error Message (Indonesian)",
"english" : " Error Message (English)"
}
}
2. Top Up Flazz Non Mobile Operating System
Banking service to make Flazz top up transaction by using Merchant's device/reader.
To be able to use this feature, the following 4 API services must be accessed by the client:
a. Get Session Key
 
API service to request session key. Session key is formed by randomly generated key to ensure session security during communication between Merchant and BCA Host.

Your Request must contain following information: 
Request Headers and URI Params
Field  Params Type DataType Mandatory Description
channel-id  Header String Y 95381 (WSID FLAZZ)
credential-id  Header String(36) Y Copartner-id
Payload (Form Data)
Field Data Type  Mandatory Description
reference_id String(12) Reference ID is datetime transaction in milisecond (unix time), requires only the first 12 digits and the same reference_id must be carried in 1 service API set for Top Up Flazz. Ex : 969677130000 Unique per transaction
request_data String(166) Y  Request data stream
Response
Field DataType Mandatory Description
response_data String(166)  N Response data stream
b. Send topup request from merchant
 
API service to send Flazz balance top up requests.

Your Request must contain following information: 
Request Headers and URI Params
Field Params Type DataType Mandatory Description
channel-id Header String Y 95381 (WSID FLAZZ)
credential-id Header String(36) Y Copartner-id
Payload (Form Data)
Field Data Type Mandatory Description
reference_id String(12) Y Reference ID is datetime transaction in milisecond (unix time), requires only the first 12 digits and the same reference_id must be carried in 1 service API set for Top Up Flazz. Ex : 969677130000 Unique per transaction
request_data String(416) Y Request data stream
Response
Field DataType Mandatory Description
response_data String(350) N Response data stream

c. Reversal
 
API service to send reversal request of Flazz top up

Your Request must contain following information: 
Request Headers and URI Params
Field Params Type DataType Mandatory Description
channel-id Header String Y 95381 (WSID FLAZZ)
credential-id Header String(36) Y Copartner-id
Payload (Form Data)
Field Data Type Mandatory Description
reference_id String(12) Y Reference ID is datetime transaction in milisecond (unix time), requires only the first 12 digits and the same reference_id must be carried in 1 service API set for Top Up Flazz. Ex : 969677130000 Unique per transaction
request_data String(512) Y Request data stream
Response
Field DataType Mandatory Description
response_data String N Response data stream

d.ACK
 
API service to send ACK requests (Acknowledge) for successful / failed / lost-contact transactions of Flazz top up

Your Request must contain following information: 
Request Headers and URI Params
Field Params Type DataType Mandatory Description
channel-id Header String Y 95381 (WSID FLAZZ)
credential-id Header String(36) Y Copartner-id
Payload (Form Data)
Field Data Type Mandatory Description
reference_id String(12) Y Reference ID is datetime transaction in milisecond (unix time), requires only the first 12 digits and the same reference_id must be carried in 1 service API set for Top Up Flazz. Ex : 969677130000 Unique per transaction
request_data String(512) Y Request data stream
Response
Field DataType Mandatory Description
response_data String N Response data stream


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

HTTP Code Error Code Error Message (Indonesian) Error Message (English) Description
400 ESB-14-001 HMAC tidak cocok HMAC mismatch 400
400 ESB-14-002 Permintaan tidak valid Invalid request 400
400 ESB-14-003 Timestamp tidak valid Invalid timestamp 400
400 ESB-14-004 parameter input tidak valid Invalid input parameter 400
500 ESB-14-005 Sistem sedang dalam maintenance System under maintenance 500
504 ESB-14-007 Timeout Timeout 504
401 ESB-14-008 Client_Id/Client_Secret /Grant_Type tidak valid Invalid Client_Id/Client_Secret /Grant_Type 401
401 ESB-14-009 Tidak berhak Unauthorized 401
404 ESB-14-011 Service tidak tersedia Service doesn't exist 404
401 ESB-14-012 Tidak berhak mengakses service ini Not allowed to access this service 401
401 ESB-14-014 ChannelID/CredentialID tidak valid Invalid ChannelID/CredentialID  401
403 ESB-14-019 Koneksi tidak diperbolehkan Connection not allowed 403
400 ESB-14-021 API Key tidak valid Invalid API Key 400
400 ESB-14-022 API Key/API Secret tidak cocok API Key/API Secret mismatch 400
400 0002 Transaksi Gagal Transaction Failed Copartner is not registered
400 0012 Transaksi Gagal Transaction Failed Copartner is blocked
400 0022 Transaksi Gagal Transaction Failed Copartner max retry exceeded 
400 0032 Transaksi Gagal Transaction Failed Copartner session key not exist
400 1012 Kartu Error Card Error Check expired date failed
400 1022 Transaksi gagal, nominal Top Up kurang dari minimum Transaction failed, Top Up amount less than minimum Check min amount failed
400 1032 Transaksi gagal, nominal Top Up melebihi saldo maksimum Transaction failed, Top Up amount exceeds maximum balance Check max balance failed
400 1052 Transaksi gagal Transaction failed Check mandatory field failed
400 1062 Transaksi gagal Transaction failed Parse request data failed
400 1102 Transaksi gagal Transaction failed Duplicate transaction
400 1122 Transaksi gagal Transaction failed Check original data failed
400 1132 Transaksi gagal Transaction failed Check tid failed
400 1142 Transaksi gagal Transaction failed Check mid failed
400 1152 Kartu error Card error Card blacklisted
400 3013 Transaksi gagal Transaction failed Check topup limit timeout failed
400 3023 Transaksi gagal Transaction failed Request topup debit timeout failed
400 3045 Transaksi gagal Transaction failed Check atuf timeout failed
400 4662 Transaksi tidak dapat diproses. Silahkan coba beberapa saat lagi. Transaction can not be processed. Please try again later. Error dari EAI apabila terjadi koneksi timeout saat memanggil ke service lain.
400 4045 Maaf, transaksi anda tidak dapat diproses Sorry, your transaction can not be processed Identifier Channel tidak diizinkan mengakses
400 4009 Field (0) harus diisi Missing mandatory field (0) Field (0) harus diisi
400 4038 Panjang field (0) tidak valid  Field (0) length not valid Panjang field (0) tidak valid
400 4039 Isian input (0) tidak valid Input for field (0) not valid Isian input (0) tidak valid
400 4112 Inputan String JSON tidak valid Invalid JSON String input Format JSON input invalid 
400 4113 Transaksi ditolak Transaction rejected ClientID tidak dapat mengakses ke service
400 4414 Transaksi gagal Transaction failed Gagal saat konversi(format data yang diterima tidak sesuai)
400 4415 Transaksi gagal Transaction failed Record yang ingin dihapus tidak ada.
400 4416 Transaksi gagal Transaction failed File Limit TopUp tidak ada
400 4417 Transaksi gagal Transaction failed File Limit TopUp tidak bisa dibuka 
400 4418 Transaksi gagal Transaction failed File Limit TopUp tidak bisa dibaca
400 4419 Transaksi gagal Transaction failed Record sudah ada ketika tambah record baru 
400 4420 Transaksi gagal Transaction failed Record tidak ada ketika Change/Update
400 4421 Transaksi gagal Transaction failed Gagal menulis record
400 4422 Transaksi gagal Transaction failed Gagal hapus record
400 4423 Transaksi gagal Transaction failed FIID yang dikirimkan tidak sesuai/data FIID tidak ada
400 4424 Transaksi gagal Transaction failed Transaksi code tidak sesuai(sesuai dengan data element 91) 
400 4425 Transaksi gagal Transaction failed FIID tidak terdaftar
400 4426 Transaksi gagal Transaction failed File request tidak sesuai(sesuai dengan data element 101)
400 4428 Transaksi gagal Transaction failed Gagal ketika mencoba mencari nomor kartu
400 4429 Transaksi gagal, jumlah top up melebihi limit bulanan Transaction failed, Top Up amount exceeds monthly limit Limit kartu Flazz habis.
400 4430 Transaksi gagal Transaction failed Unik id tidak ditemukan
400 4431 Transaksi gagal Transaction failed Koneksi saat dari atau ke b24 terputus
400 4432 Transaksi gagal Transaction failed Koneksi saat dari atau ke b24d itolak
400 4414 Transaksi gagal Transaction failed Gagal saat konversi(format data yang diterima tidak sesuai)
400 4415 Transaksi gagal Transaction failed Record yang ingin dihapus tidak ada.
400 4416 Transaksi gagal Transaction failed File Limit TopUp tidak ada
400 4417 Transaksi gagal Transaction failed File Limit TopUp tidak bisa dibuka 
400 4418 Transaksi gagal Transaction failed File Limit TopUp tidak bisa dibaca
400 4419 Transaksi gagal Transaction failed Record sudah ada ketika tambah record baru 
400 4420 Transaksi gagal Transaction failed Record tidak ada ketika Change/Update
400 4421 Transaksi gagal Transaction failed Gagal menulis record 
400 4422 Transaksi gagal Transaction failed Gagal hapus record 
400 4423 Transaksi gagal Transaction failed FIID yang dikirimkan tidak sesuai/data FIID tidak ada
400 4424 Transaksi gagal Transaction failed Transaksi code tidak sesuai(sesuai dengan data element 91) 
400 4425 Transaksi gagal Transaction failed FIID tidak terdaftar
400 4426 Transaksi gagal Transaction failed File request tidak sesuai(sesuai dengan data element 101)
400 4427 Transaksi gagal Transaction failed Category selain C,F,T,R. 
400 4428 Transaksi gagal Transaction failed Gagal ketika mencoba mencari nomor kartu
400 4429 Transaksi gagal, kartu sumber dana lebih dari limit  Transaction failed, card for source of founds is over limit Limit habis kartu akses habis
400 4430 Transaksi gagal Transaction failed Unik id tidak ditemukan
400 4431 Transaksi gagal Transaction failed Koneksi saat dari atau ke b24 terputus
400 4432 Transaksi gagal Transaction failed Koneksi saat dari atau ke b24 ditolak
400 0000 Transaksi Berhasil Transaction Success Transaksi berhasil
400 5202 Transaksi 0 rupiah Transaction amount 0 Transaksi 0 Rupiah
400 5204 Maaf saldo tidak mencukupi  Sorry your balance is not enough  Maaf saldo tidak mencukupi
400 5206 Rekening ditolak Account Rejected Rekening ditolak
400 5700 Maaf transaksi harus IDR Sorry, currency must IDR Maaf transaksi harus IDR
400 5701 Rekening ditolak Account Rejected Rekening ditolak 
400 5702 Maaf rekening sudah tidak aktif Sorry, your account is dormant Maaf rekening sudah tidak aktif
400 5711 Maaf rekening anda masuk daftar hitam Sorry, your account is blacklist Rekening anda diblokir/masuk daftar hitam 
400 5999 Sistem sedang tidak tersedia System unavailable Sistem sedang tidak tersedia

POST /flazz/

Request

REQUEST FOR GET SESSION KEY

POST /flazz/getKey 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]
ChannelID: [channelID]
CredentialID: [credentialID]
{
    "reference_id" : "123456789012",
    "request_data" : "01010000202001171513224553594230303031454D424341303031885000015999824E180B6E8227061B4E8A275E3D373702021B4B5E821B063D4E0B370627024E843D3D274B181B8A1B375E4E8A4E020B203"
}


REQUEST FOR TOP UP REQUEST 

POST /flazz/topup 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]
ChannelID: [channelID]
CredentialID: [credentialID]
{
    "reference_id" : "123456789012",
    "request_data" : "01010024014500280000003800311900000000102020020317152011013049124553594230303031454D4243413030318850000159996E8282370684824E5E02848A8482188A064B06064E0627278A184B4E4E828A3D848A4B82028402064B8206023D1C0B1C1B0B826E1C063D6E185E6E0B4E821B844B37273718064E82024B4E1B0282185E4B37273718064E82024B4E1B0282185E4B37273718064E82024B4E1B0282185E4E0B3D181C4E1B27026E3D5E6E186E1B8A1C3D273782028A068A274B3D0B826E1AE5BCBB7C0226A4DB8C"
}


REQUEST FOR REVERSAL

POST /flazz/reversal 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]
ChannelID: [channelID]
CredentialID: [credentialID]
{
    "reference_id" : "123456789012",
    "request_data" : ""01010024014500010036938400291613000000102020012315164520013049124553594230303031454D424341303031885000015999275E6E824B1B4E021B1B1C4E0606023D4E844E5E8A021B6E8A4B4B1C6E4E6E8A4E5E8A82826E374B1B1B0218188A068482061C278A5E0B180B8A6E8A3D0B8A823784186E0B4E8237024E020B6E02825E1B8A020B270B82270227378202183D846E84824E021B4B844B82273D02183D5E5E8A061C6E06068A8A061B024B1B3D4B068A1C02020B6E824E8A371B1C064E8A3D4B84270682278A5E84374E37061C843D4B84270682278A5E84374E37061C843D4B84270682278A5E84374E37061C84C0396097845AD44C26CC"
}


REQUEST FOR ACK

POST /flazz/ack 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]
ChannelID: [channelID]
CredentialID: [credentialID]
{
    "reference_id" : "123456789012",
    "request_data" : ""01010024014500010036938400291613000000102020012315164520013049124553594230303031454D424341303031885000015999275E6E824B1B4E021B1B1C4E0606023D4E844E5E8A021B6E8A4B4B1C6E4E6E8A4E5E8A82826E374B1B1B0218188A068482061C278A5E0B180B8A6E8A3D0B8A823784186E0B4E8237024E020B6E02825E1B8A020B270B82270227378202183D846E84824E021B4B844B82273D02183D5E5E8A061C6E06068A8A061B024B1B3D4B068A1C02020B6E824E8A371B1C064E8A3D4B84270682278A5E84374E37061C843D4B84270682278A5E84374E37061C843D4B84270682278A5E84374E37061C84C0396097845AD44C26CC"
}

POST /flazz/

Response

RESPONSE FOR GET SESSION KEY

{
    "response_data" : ""01010000202001171513224553594230303031454D4243413030318850000159996DD3D35D3422B7B022CF34B7B0CD6D34345DB07A7ACFA45DCFD3B7A4D3A46DA4CFB0D3D35334B0347D6E537A347A5DCDABB"
}

RESPONSE FOR REQUEST TOP UP

{
    "response_data" : "01240145002800000038000000100000000000160230202002191019275D5D6E5DB05D6D7A7DCF7A22227A6EB07D5D3422CD68CF6853A4A4CDB77AD35DD334347AB7A45DB7D33434B06D68D3D334B7CF7D92D35D34A46E7AD3B7CF34685D34CF34A453D36EB75DD368B76EA4925D34CF34A453D36EB75DD368B76EA4925D34CF34A453D36EB75DD368B76EA4925D34CF34A453D36EB75DD368B76EA4925D34CF34A453D36EB75DD368B76EA492F8B2"
}

RESPONSE FOR REVERSAL

{
    "response_data" : "null"
}

RESPONSE FOR ACK

{
    "response_data" : "null"
}