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  Add Fund collection
 POST  /fund-blockingAdd data fund blocking  Add data fund blocking
 PUT  /fund-blocking  Update data fund blocking
 PUT  /fund-blocking/release  Release/cancel data fund blocking
 GET  /fund-blocking  Inquiry data fund blocking
 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
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
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
Response

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

Kuasa Pendebetan Rekening

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
Response
2. 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
Response
3. 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
Response
4. 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
Response

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 user
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 for list of response code
responseMessage String (150) Y Mandatory in BCA. Response message from Partner, refer to Appendix 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) N Mandatory in BCA. partnerServiceId (8 digit left padding space “ ”) + customerNo (up to 20 digit) 
   virtualAccountName String (255) N 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 N Optional. Additional information for custom use. Refer to Appendix C 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

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
Response
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.
Result of the request will contains following information:

Response:
 
Field Data Type Mandatory  Description
responseCode String (7) Y Response code
responseMessage String (150) Y Response description
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 Array of Objects 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
   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 

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
Response
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 user.

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)
  • 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.
  • 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 for list of response code
responseMessage String (150) Y Mandatory in BCA. Response message from Partner, refer to Appendix 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 Array of Objects 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 C 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 C 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
  • If the paymentFlagStatus and paymentFlagReason field are empty, BCA will be treated as a timeout condition.
  • 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".

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 "Bill has been paid"  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
Request Parsing Error 4002500 "Bad Request"  01
curl –X POST https://copartners.com/openapi/v1.0/transfer-va/payment
Request
Response

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

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 Unique ID for a partner (MerchantID/ID Partner)
- Merchant direct : MerchantID
- Merchant Facilitator : ID partner facilitator
- Merchant Integrator : ID partner integrator
- Merchant Aggregator : ID partner aggregator 

Payload:
 
Field Data Type Length Type Mandatory  Format Description
partnerReferenceNo String(64)  Max  N Numeric  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 integrator : 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 = 16
Can be :
- TID BCA (merchant integrator/direct)
- TID non BCA (merchant aggregator/facilitator)
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 Numeric 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 Numeric 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 (16) 
  N
Alphanumeric
Mandatory in BCA
Length data in BCA : 16 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]
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
Response
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) Unique ID for a partner (MerchantID/ID Partner)
- Merchant direct : MerchantID
- Merchant Facilitator : ID partner facilitator
- Merchant Integrator : ID partner integrator
- Merchant Aggregator : ID partner aggregator 
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 Numeric  Transaction identifier on service provider system
length in BCA: 36
originalPartnerReferenceNo String(64) Max  N Numeric  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 (14)   Y Numeric Transaction date with format
YYYY-MMDDThh:mm:ss.sssTZD
Example: 2020-12- 21T10:30:24.000+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 custome
     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 integrator: 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: AAAABBCC
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","
additionalInfo ": "null"
}

 


curl –X POST https://copartners.com/openapi/v1.0/qr-mpm-notify
Request
Response
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) Unique ID for a partner (MerchantID/ID Partner)
- Merchant direct : MerchantID
- Merchant Facilitator : ID partner facilitator
- Merchant Integrator : ID partner integrator
- Merchant Aggregator : ID partner aggregator 

Payload:
 
Field Data Type Length Type Mandatory  Format Description
originalReferenceNo String(64)  Max  N Numeric  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 Numeric  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: serviceCode query payment QR = 51
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 integrator: 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 (16)  Max Y Alphanumeric Mandatory in BCA
length data in BCA : 16
Can be :
- Terminal ID BCA (merchant integrator / 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 Numeric  Mandatory in BCA 
length in BCA: 36
Transaction identifier on service provider system (generate by QR Server
originalPartnerReferenceNo String(64) Max  N Numeric  Mandatory in BCA
Transaction identifier on service consumer system (Transction ID 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 query payment QR = 51
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
transactionStatusDesc String (50)  Max N Alphanumeric Mandatory in BCA
Show description of transaction status
Example:
- Success (transaction Success)
- Pending (Unpaid Transaction)
- Failed (QR Expired)
paidTime String (255) Max N YYYY-MMDDThh:mm:ss.sssTZ D  Mandatory in BCA if transaction is successful
Transaction date ISO8601
Example: 2020-12- 21T10:30:24.000+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 : 16 
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)   N 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 integrator : 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]
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
Response

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.
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 
400 4002600 invalid timestamp format [X-TIMESTAMP] 
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
Response
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:
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 availabe 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 
400 4003200 invalid timestamp format [X-TIMESTAMP] 
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/transferva/inquiry-intrabank
Request
Response
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 availabe 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 
400 4003300 invalid timestamp format [X-TIMESTAMP] 
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/transferva/payment-intrabank
Request
Response

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’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
beneficiaryBankCode String (8) Max Y Numeric Mandatory in BCA. Beneficiary Bank Code.
In BCA using SWIFT Code or 3 digit bank code (if destination doesn’t have SWIFT Code)
beneficiaryAccountNo String (34) Max Y Numeric Mandatory in BCA.
Beneficiary Account
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 Numeric Response code
responseMessage String (150) Max Y - Response description
referenceNo String (64) Max C Numeric Send by BCA.
Transaction identifier on service provider system.
Must be filled upon successful transaction
benefiaryAcco untName String (100)  Max Y - Send by BCA.
Beneficiary Account Name
beneficiaryAccountNo String (34)  Max Y Numeric Send by BCA according to the request input.
Beneficiary account number
beneficiaryBankCode String (8) Max N Numeric 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)


Here is the list of error codes that can be returned. 
HTTP Code Error Code Error Message
400 4001600 Bad request
400 4001601 Invalid Field Format {field}
400 4001602 Invalid Mandatory Field {Field}
401 4011600 Unauthorized. [Reason]
401 4011601 Invalid token (B2B)
403 4031601 Feature Not Allowed
404 4041602 Invalid Routing
404 4041611 Invalid Account 
409 4091600 Conflict
500 5001600 General Error
504 5041600 Timeout


curl –X POST https://sandbox.bca.co.id/openapi/v1.0/account-inquiry-external
Request
Response
2. SNAP Banking Interbank Transfer

This service is used to transfer fund to other banks via switching & BI-FAST services

 

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
beneficiaryBankCode String(8) Max Y - Mandatory in BCA.
Beneficiary Bank Code. In BCA using SWIFT Code or 3 digit bank code (if destination doesn’t have SWIFT Code)
beneficiaryEmail String(50) Max N abc@domain.com Optional in BCA.
Beneficiary Email
sourceAccountNo String (19) Max Y Numeric Mandatory in BCA. Source Account.
Source Account. For BCA, length account number is 10 digit. 
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 C   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 - 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 according to the request input.
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
beneficiaryAccountNo String (34)  Max Y Numeric Send by BCA according to the request input.
Beneficiary account number
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


Here is the list of error codes that can be returned. 
HTTP Code Error Code Error Message
400 4001800 Bad request
400 4001801 Invalid Field Format {field}
400 4001802 Invalid Mandatory Field {Field}
401 4011800 Unauthorized. [Reason]
401 4011801 Invalid token (B2B)
403 4031802 Exceeds Transaction Amount Limit
403 4031804 Activity Count Limit Exceeded
403 4031814 Insufficient Funds
403 4031801 Feature Not Allowed 
404 4041803 Bank Not Supported By Switch
404 4041811 Invalid Account
404 4041813 Invalid Amount 
404 4041802 Invalid Routing 
409 4091800 Conflict
500 5001801 Internal Server Error
504 5041800 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
Response
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
Response
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.
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
Response
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
Response
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
Response
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
Response
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
Response
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 

Payload:
 
Field Data Type Length Type Mandatory  Format Description
originalPartnerReferenceNo String (64) Max N - Mandatory in BCA.
Original transaction identifier on service from partner
originalReferenceNo String (64) Max N Numeric Optional in BCA.
Original transaction identifier on service provider system (from BCA)
originalExternalId String (32) Max N Numeric Mandatory in BCA.
Original External-ID on header message
serviceCode String (2) Fixed Y Numeric Mandatory in BCA.
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 N ISODateTime
ISO-8601
Mandatory in BCA.
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 Send by BCA according to the request input.
Original transaction identifier on service provider system.
originalPartnerReferenceNo String (64) Max N - Send by BCA according to the request input.
Original transaction identifier on service customer system
originalExternalId String (32) Max N Numeric Send by BCA according to the request input.
Original External-ID on header message
serviceCode String (2) Fixed Y Numeric Send by BCA 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
Send by BCA according to the request input.
Transaction date
amount Object - N - Send by BCA.
Net amount of the transaction
value String (16.2) Max Y Numeric Send by 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 Send by BCA.
Currency of the amount
beneficiaryAccountNo String (34) Max Y Numeric Send by BCA.
Beneficiary account number
beneficiaryBankCode String (8) Max N Alphanumeric Send by BCA for domestic transfer only.
Beneficiary Bank Code, can be sent as follows
1. As swift code
2. As 3 digit bank code
3. Blank, if the bank is inactive/closed
referenceNumber String (30) Max Y Numeric Send by BCA.
Transaction identifier on service provider system.
Unique each day from BCA Must be filled upon successful transaction.
sourceAccountNo String (19) Max Y Numeric Send by BCA.
Source Account Number. If it’s BCA account number, the length is 10 digit.
latestTransactionStatus String (2) Fixed Y Numeric 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
400 4003600 Bad request
400 4003601 Invalid Field Format {field}
400 4003602 Invalid Mandatory Field {Field}
401 4013600 Unauthorized. [Reason]
401 4013601 Invalid token (B2B)
403 4033601 Feature Not Allowed
404 4043601 Transaction not found
409 4093600 Conflict
500 5003600 General Error
504 5043600 Timeout
curl –X POST https://sandbox.bca.co.id/openapi/v1.0/transfer/status
Request
Response

Collection

1. 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, must registered at KlikBCA Bisnis.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
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


POST /fund-collection
Request
Response
2. Batal Blokir Dana
This service is used to request release or cancelation on existing. No request cut off time applied so you can add new release request anytime.

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 Existing unique data from Corporate. Format: Numeric.
ReferenceNumber String(14) Existing sender's Transaction Reference ID. Format: Numeric.
RequestType String(2)  Y D = Request Cancel Blocking.

Response
Field DataType Description
TransactionID String(18) Unique data from Corporate. Format: Numeric.
ReferenceNumber String(14) Sender's Transaction Reference ID. Format: Numeric.
DebitedAccount String(10) Account to be debited, must registered at KlikBCA Bisnis. Format: Numeric.
Amount String(13,2) Total length is 15, include decimal amount. Format: Numeric, 13.2
Currency String(3) Currently is IDR only.
TransactionDate String(10) The date of the Transaction Performed get by system. Format: yyyy-MM-dd.
Status String(10) Transaction status


Error
HTTP Code Error Code Error Message (Indonesian) Error Message (English)
400 ESB-07-086 Rekening tutup Account closed
400 ESB-07-087 Rekening Dormant Account Dormant
400 ESB-07-089 Rekening tidak terdaftar Account not registered
400 ESB-07-090 Rekening tidak dapat digunakan untuk transaksi Account cannot be used for transaction
400 ESB-11-138 Update Gagal Failed to update
400 ESB-11-139 Delete Gagal Failed to delete
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
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
401 ESB-14-014 ChannelID/CredentialID tidak valid Invalid ChannelID/CredentialID
400 ESB-14-015 Content Type tidak valid Invalid Content Type
400 ESB-14-016 Format JSON tidak valid 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.
400 ESB-82-003 TransactionID tidak unik TransactionID not unique
402 ESB-82-019 Saldo tidak cukup Insufficient fund
400 ESB-99-009 Field (0) harus diisi Missing mandatory field (0)
400 ESB-99-022 Format alamat email tidak sesuai Email address format is not valid
400 ESB-99-040 Tipe isian field (0) tidak valid Input type for field (0) not valid
400 ESB-99-112 Input string JSON tidak valid Invalid JSON string input
400 ESB-99-113 Transaksi ditolak Transaction rejected
400 ESB-99-125 Format tanggal tidak valid Invalid date format
400 ESB-99-128 Panjang field (0) melebihi ketentuan Field (0) exceed limit
400 ESB-99-155 Mata uang harus IDR Currency must in IDR
400 ESB-99-173 Format tanggal tidak sesuai Invalid date format
400 ESB-99-211 Panjang field (0) tidak valid Invalid (0) field length
400 ESB-99-376 Format (0) tidak sesuai Invalid field (0) format
400 ESB-99-395 Tidak ada transaksi No transaction found
400 ESB-99-533 Field (0) harus numerik Field (0) should be numeric
400 ESB-99-573 TransactionDate harus diisi dengan tanggal hari ini Transaction Date must be filled with today's date
400 ESB-99-669 Transaksi tidak dapat diproses Transaction cannot be processed
400 ESB-99-670 Jenis transaksi tidak diijinkan Transaction Type not allowed
400 ESB-99-671 Reference Number sedang digunakan oleh transaksi lain Reference Number is still used for another transactions
400 ESB-99-672 Tanggal kadaluarsa lebih kecil dari tanggal hari ini Expiry Date is smaller than today
400 ESB-99-673 Tanggal kadaluarsa melebihi batas maksimum Expiry Date exceeds maximum limit
400 ESB-99-674 Gagal membuat reference number Failed Generate Reference Number
400 ESB-99-675 Gagal memperbaharui data Failed to update data
400 ESB-99-676 Status Blokir tidak aktif Hold status is inactive
400 ESB-99-677 Rekening tidak terdaftar Account not registered
400 ESB-99-678 Kata kunci pencarian tidak valid Invalid inquiry keyword
400 ESB-99-999 Sistem sedang tidak tersedia System unavailable
500 ESB-99-999 Koneksi Timeout. Silakan cek transaksi kembali untuk memastikan keberhasilan transaksi Anda. Connection timeout. Please reinquiry your transaction to ensure transaction status.
POST /fund-collection
Request
Response
3. Blokir Dana
This service is used to request new blocking on some amount of money from your destination bank account. No request cut off time applied so you can add new blocking request anytime. Every blocking request has its own expiry date.

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 A = Request Add Blocking. Format: Alphabet.
DebitedAccount String(10) O Account to be debited, must registered at KlikBCA Bisnis. Format: Numeric.
Amount String(13,2)  Y Total length is 15, include decimal amount. Format: Numeric, 13.2
Currency String(3)  Y Currently is IDR only.
ExpiredDate String(10) Y Transaction Expired 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.
DebitedAccount String(10) Account to be debited, must registered at KlikBCA Bisnis. Format: Numeric.
Amount String(13,2) Total length is 15, include decimal amount. Format: Numeric, 13.2
Currency String(3) Currently is IDR only.
TransactionDate String(10) The date of the Transaction Performed get by system. Format: yyyy-MM-dd.
Status String(10) Transaction status


Error
HTTP Code Error Code Error Message (Indonesian) Error Message (English)
400 ESB-07-086 Rekening tutup Account closed
400 ESB-07-087 Rekening Dormant Account Dormant
400 ESB-07-089 Rekening tidak terdaftar Account not registered
400 ESB-07-090 Rekening tidak dapat digunakan untuk transaksi Account cannot be used for transaction
400 ESB-11-138 Update Gagal Failed to update
400 ESB-11-139 Delete Gagal Failed to delete
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
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
401 ESB-14-014 ChannelID/CredentialID tidak valid Invalid ChannelID/CredentialID
400 ESB-14-015 Content Type tidak valid Invalid Content Type
400 ESB-14-016 Format JSON tidak valid 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.
400 ESB-82-003 TransactionID tidak unik TransactionID not unique
402 ESB-82-019 Saldo tidak cukup Insufficient fund
400 ESB-99-009 Field (0) harus diisi Missing mandatory field (0)
400 ESB-99-022 Format alamat email tidak sesuai Email address format is not valid
400 ESB-99-040 Tipe isian field (0) tidak valid Input type for field (0) not valid
400 ESB-99-112 Input string JSON tidak valid Invalid JSON string input
400 ESB-99-113 Transaksi ditolak Transaction rejected
400 ESB-99-125 Format tanggal tidak valid Invalid date format
400 ESB-99-128 Panjang field (0) melebihi ketentuan Field (0) exceed limit
400 ESB-99-155 Mata uang harus IDR Currency must in IDR
400 ESB-99-173 Format tanggal tidak sesuai Invalid date format
400 ESB-99-211 Panjang field (0) tidak valid Invalid (0) field length
400 ESB-99-376 Format (0) tidak sesuai Invalid field (0) format
400 ESB-99-395 Tidak ada transaksi No transaction found
400 ESB-99-533 Field (0) harus numerik Field (0) should be numeric
400 ESB-99-573 TransactionDate harus diisi dengan tanggal hari ini Transaction Date must be filled with today's date
400 ESB-99-669 Transaksi tidak dapat diproses Transaction cannot be processed
400 ESB-99-670 Jenis transaksi tidak diijinkan Transaction Type not allowed
400 ESB-99-671 Reference Number sedang digunakan oleh transaksi lain Reference Number is still used for another transactions
400 ESB-99-672 Tanggal kadaluarsa lebih kecil dari tanggal hari ini Expiry Date is smaller than today
400 ESB-99-673 Tanggal kadaluarsa melebihi batas maksimum Expiry Date exceeds maximum limit
400 ESB-99-674 Gagal membuat reference number Failed Generate Reference Number
400 ESB-99-675 Gagal memperbaharui data Failed to update data
400 ESB-99-676 Status Blokir tidak aktif Hold status is inactive
400 ESB-99-677 Rekening tidak terdaftar Account not registered
400 ESB-99-678 Kata kunci pencarian tidak valid Invalid inquiry keyword
400 ESB-99-999 Sistem sedang tidak tersedia System unavailable
500 ESB-99-999 Koneksi Timeout. Silakan cek transaksi kembali untuk memastikan keberhasilan transaksi Anda. Connection timeout. Please reinquiry your transaction to ensure transaction status.
POST /fund-collection
Request
Response
4. Informasi Transaksi Blokir Dana
This service is used to request inquiry fund blocking. No request cut off time applied so you can inquiry fund blocking request anytime.

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
SearchBy String(15) Y There are 3 options to inquiry block status which are :
- TransactionID
- ReferenceNumber
- DebitedAccount
Value String(20) Value to be inquired based on the “SearchBy” parameter.

Response
Field DataType Description
FundBlockDetails  Array of Object  The object that hold information of the FundBlockDetails. 
TransactionID String(18) Unique data from Corporate. Format: Numeric.
ReferenceNumber String(14) Sender's Transaction Reference ID. Format: Numeric.
DebitedAccount String(10) Account to be debited, must registered at KlikBCA Bisnis. Format: Numeric.
Amount Blocked String(13,2) Total length is 15, include decimal amount. Format: Numeric, 13.2
TransactionDate String(10)  The date of the Transaction Performed get by system. Format: yyyy-MM-dd. 
ExpiredDate  String(10)  The date of the Blocking Fund will expired. Format: yyyy-MM-dd. 
Currency String(3) Currently is IDR only.
Remark1 String(18) Transfer remark for receiver.
Remark2  String(18)  Transfer remark for receiver. 
Email String(254) Email address of beneficiary (blocked account’s owner).


Error
HTTP Code Error Code Error Message (Indonesian) Error Message (English)
400 ESB-07-086 Rekening tutup Account closed
400 ESB-07-087 Rekening Dormant Account Dormant
400 ESB-07-089 Rekening tidak terdaftar Account not registered
400 ESB-07-090 Rekening tidak dapat digunakan untuk transaksi Account cannot be used for transaction
400 ESB-11-138 Update Gagal Failed to update
400 ESB-11-139 Delete Gagal Failed to delete
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
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
401 ESB-14-014 ChannelID/CredentialID tidak valid Invalid ChannelID/CredentialID
400 ESB-14-015 Content Type tidak valid Invalid Content Type
400 ESB-14-016 Format JSON tidak valid 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.
400 ESB-82-003 TransactionID tidak unik TransactionID not unique
402 ESB-82-019 Saldo tidak cukup Insufficient fund
400 ESB-99-009 Field (0) harus diisi Missing mandatory field (0)
400 ESB-99-022 Format alamat email tidak sesuai Email address format is not valid
400 ESB-99-040 Tipe isian field (0) tidak valid Input type for field (0) not valid
400 ESB-99-112 Input string JSON tidak valid Invalid JSON string input
400 ESB-99-113 Transaksi ditolak Transaction rejected
400 ESB-99-125 Format tanggal tidak valid Invalid date format
400 ESB-99-128 Panjang field (0) melebihi ketentuan Field (0) exceed limit
400 ESB-99-155 Mata uang harus IDR Currency must in IDR
400 ESB-99-173 Format tanggal tidak sesuai Invalid date format
400 ESB-99-211 Panjang field (0) tidak valid Invalid (0) field length
400 ESB-99-376 Format (0) tidak sesuai Invalid field (0) format
400 ESB-99-395 Tidak ada transaksi No transaction found
400 ESB-99-533 Field (0) harus numerik Field (0) should be numeric
400 ESB-99-573 TransactionDate harus diisi dengan tanggal hari ini Transaction Date must be filled with today's date
400 ESB-99-669 Transaksi tidak dapat diproses Transaction cannot be processed
400 ESB-99-670 Jenis transaksi tidak diijinkan Transaction Type not allowed
400 ESB-99-671 Reference Number sedang digunakan oleh transaksi lain Reference Number is still used for another transactions
400 ESB-99-672 Tanggal kadaluarsa lebih kecil dari tanggal hari ini Expiry Date is smaller than today
400 ESB-99-673 Tanggal kadaluarsa melebihi batas maksimum Expiry Date exceeds maximum limit
400 ESB-99-674 Gagal membuat reference number Failed Generate Reference Number
400 ESB-99-675 Gagal memperbaharui data Failed to update data
400 ESB-99-676 Status Blokir tidak aktif Hold status is inactive
400 ESB-99-677 Rekening tidak terdaftar Account not registered
400 ESB-99-678 Kata kunci pencarian tidak valid Invalid inquiry keyword
400 ESB-99-999 Sistem sedang tidak tersedia System unavailable
500 ESB-99-999 Koneksi Timeout. Silakan cek transaksi kembali untuk memastikan keberhasilan transaksi Anda. Connection timeout. Please reinquiry your transaction to ensure transaction status.
5. Ubah Blokir Dana
This service is used to request update on existing blocking data. No request cut off time applied so you can add new update request anytime. Only several data that can be updated.

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 Existing unique data from Corporate. Format: Numeric.
ReferenceNumber String(14) Existing sender's Transaction Reference ID. Format: Numeric.
RequestType String(2)  Y U = Request Update Blocking. Format: Alphabet.
Amount String(13,2)  Y Updatable. Total length is 15, include decimal amount. Format: Numeric, 13.2
Currency String(3)  Y Currently is IDR only.
ExpiredDate String(10) Y Updatable. Transaction Expired 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 Updatable. Transfer remark for receiver.
Remark2 String(18)  Y Updatable. Transfer remark for receiver.
Email String(254)  Y Updatable. 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.
DebitedAccount String(10) Account to be debited, must registered at KlikBCA Bisnis. Format: Numeric.
Amount String(13,2) Total length is 15, include decimal amount. Format: Numeric, 13.2
Currency String(3) Currently is IDR only.
TransactionDate String(10) The date of the Transaction Performed get by system. Format: yyyy-MM-dd.
Status String(10) Transaction status


Error
HTTP Code Error Code Error Message (Indonesian) Error Message (English)
400 ESB-07-086 Rekening tutup Account closed
400 ESB-07-087 Rekening Dormant Account Dormant
400 ESB-07-089 Rekening tidak terdaftar Account not registered
400 ESB-07-090 Rekening tidak dapat digunakan untuk transaksi Account cannot be used for transaction
400 ESB-11-138 Update Gagal Failed to update
400 ESB-11-139 Delete Gagal Failed to delete
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
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
401 ESB-14-014 ChannelID/CredentialID tidak valid Invalid ChannelID/CredentialID
400 ESB-14-015 Content Type tidak valid Invalid Content Type
400 ESB-14-016 Format JSON tidak valid 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.
400 ESB-82-003 TransactionID tidak unik TransactionID not unique
402 ESB-82-019 Saldo tidak cukup Insufficient fund
400 ESB-99-009 Field (0) harus diisi Missing mandatory field (0)
400 ESB-99-022 Format alamat email tidak sesuai Email address format is not valid
400 ESB-99-040 Tipe isian field (0) tidak valid Input type for field (0) not valid
400 ESB-99-112 Input string JSON tidak valid Invalid JSON string input
400 ESB-99-113 Transaksi ditolak Transaction rejected
400 ESB-99-125 Format tanggal tidak valid Invalid date format
400 ESB-99-128 Panjang field (0) melebihi ketentuan Field (0) exceed limit
400 ESB-99-155 Mata uang harus IDR Currency must in IDR
400 ESB-99-173 Format tanggal tidak sesuai Invalid date format
400 ESB-99-211 Panjang field (0) tidak valid Invalid (0) field length
400 ESB-99-376 Format (0) tidak sesuai Invalid field (0) format
400 ESB-99-395 Tidak ada transaksi No transaction found
400 ESB-99-533 Field (0) harus numerik Field (0) should be numeric
400 ESB-99-573 TransactionDate harus diisi dengan tanggal hari ini Transaction Date must be filled with today's date
400 ESB-99-669 Transaksi tidak dapat diproses Transaction cannot be processed
400 ESB-99-670 Jenis transaksi tidak diijinkan Transaction Type not allowed
400 ESB-99-671 Reference Number sedang digunakan oleh transaksi lain Reference Number is still used for another transactions
400 ESB-99-672 Tanggal kadaluarsa lebih kecil dari tanggal hari ini Expiry Date is smaller than today
400 ESB-99-673 Tanggal kadaluarsa melebihi batas maksimum Expiry Date exceeds maximum limit
400 ESB-99-674 Gagal membuat reference number Failed Generate Reference Number
400 ESB-99-675 Gagal memperbaharui data Failed to update data
400 ESB-99-676 Status Blokir tidak aktif Hold status is inactive
400 ESB-99-677 Rekening tidak terdaftar Account not registered
400 ESB-99-678 Kata kunci pencarian tidak valid Invalid inquiry keyword
400 ESB-99-999 Sistem sedang tidak tersedia System unavailable
500 ESB-99-999 Koneksi Timeout. Silakan cek transaksi kembali untuk memastikan keberhasilan transaksi Anda. Connection timeout. Please reinquiry your transaction to ensure transaction status.
POST /fund-collection
Request
Response

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

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

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

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