Search Result
Introduction
- New API: Internal Account Inquiry
Overview of BCA Sandbox APIs:
Request
Method | Endpoint | Usage |
---|---|---|
POST | /api/oauth/token | Get Access Token for Oauth2.0 |
GET | /banking/v3/corporates/{CorporateID} /accounts/{AccountNumber1},{AccountNumber2},…,{AccountNumber20} | Get your account(s) balance |
GET | /banking/v3/corporates/{CorporateID} /accounts/{AccountNumber}/statements | Get your account statement |
POST | /banking/corporates/transfers | Fund Transfer to another BCA account |
POST | /banking/corporates/transfers/v2/domestic | Fund Transfer to domestic Bank account |
GET | /banking/offline/corporates/accounts/{AccountNumber}/filestatements | Account Statement Offline |
GET | /banking/corporates/transfers/status/{TransactionNumber} | Inquiry Transfer Status |
GET | /banking/corporates/transfers/v2/domestic/beneficiaries/banks/ (beneficiary_bank_code)/accounts/(beneficiary_account_number) | Inquiry Domestic Account |
GET | /general/rate/forex | Foreign Exchange Rate Information |
GET | /general/info-bca/branch | BCA Branch Location |
POST | /fire/accounts/balance | Get balance information |
POST | /fire/accounts | Get beneficiary account’s information |
POST | /fire/transactions | Get status of a transaction |
POST | /fire/transactions/to-account | Transfer funds directly to beneficiary account |
POST | /fire/transactions/cash-transfer | Transfer funds to beneficiary to be taken personally |
PUT | /fire/transactions/cash-transfer/amend | Amend cash transfer transaction’s detail |
POST | /fire/transactions/cash-transfer/cancel | Cancel cash transfer transaction |
POST | /va/payments?CompanyCode=&RequestID= OR /va/payments?CompanyCode=&CustomerNumber= |
Get status of payment by CompanyCode and CustomerNumber or RequestID |
POST | https://www.somesecurities.com/bca/investor-account/statement | Retrieve information of Account Statement of Investor Account for being debited or credited. |
POST | https://www.copartners.com/bca-ku/notif-tolakan | Service for BCA to send notification for rejection of domestic bank transfer. |
POST | https://www.copartners.com/bca-df/disbursement/notification | Service for BCA to send notification of disbursement. |
POST | https://www.copartners.com/bca-df/txn-limit/notification | Service for BCA to send notification of transaction limit update. |
POST | https://www.copartners.com/bca-df/stop-supply/notification | Service for BCA to send notification of transaction limit update. |
POST | /df/invoice | Send your invoice data to BCA |
PUT | /df/invoice | Cancel your invoice data which had been sent to BCA |
POST | /fund-collection/v2 | Add Fund collection |
POST | /account-authorization/registration | Registration Request |
POST | https://copartners.com/account-authorization/notification | Send Notification of Account Authorization Registration status |
GET | /accountauthorization/inquiry/{customer_id_merchant} | Inquiry account authorization status |
POST | /flazz/getKey | Get Session Key (Part of Topup Flazz Co-Partner API) |
POST | /flazz/topup | Send topup request from copartner (Part of Topup Flazz Co-Partner API) |
POST | /flazz/reversal | Send reversal request from copartner (Part of Topup Flazz Co-Partner API) |
POST | /flazz/ack | Send ack (Part of Topup Flazz Co-Partner API) |
Try our APIs using Sandbox. We provide sandbox with dummy and static datas. All the parameter value that can be used to try our sandbox are written on the blue box in this Documentation.
AUTHENTICATION
OAuth2.0
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 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
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 |
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
The outline of the HMAC validation process is as follows:
- Retrieve Timestamp from HTTP Header (X-BCA-Timestamp)
- Retrieve the API Key form HTTP Header (X-BCA-Key)
- Lookup the API Secret corresponding to the received key in internal store
- Retrieve client HMAC from HTTP Header lowercase hexadecimal format (X-BCA-Signature)
- Calculate HMAC using the API Secret as the HMAC secret key
- Compare client HMAC with calculated HMAC
API Key and API Secret are used for hashing HMAC. You can generate API Key and API Secret after sign in and create application.
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 is the URL after the hostname & port number.
- Relative URL alse includes the query string and must begin with a slash character. Example
The timestamp must be presented in ISO8601 format (yyyy-MM-ddTHH:mm:ss.SSSTZD)
Format | Description |
---|---|
yyyy | four-digit year |
MM | two-digit month (01=January, etc.) |
dd | two-digit day of month (01 through 31) |
T | literal ’T’ as date and time separator |
HH | two digits of hour (00 through 23) (am/pm NOT allowed) |
mm | two digits of minute (00 through 59) |
s | two digits of second (00 through 59) |
SSS | three digits representing millisecond (000 through 999) |
TZD | time zone designator (+hh:mm or -hh:mm) |
EXAMPLE
Request
POST EXAMPLE
Data :
- Method : POST
- Relative URL : /banking/corporates/transfers
- Access token : lIWOt2p29grUo59bedBUrBY3pnzqQX544LzYPohcGHOuwn8AUEdUKS
- Request body :
{
"CorporateID" : "BCAAPI2016",
"SourceAccountNumber" : "0201245680",
"TransactionID" : "00000001",
"TransactionDate" : "2016-01-30",
"ReferenceID" : "12345/PO/2016",
"CurrencyCode" : "IDR",
"Amount" : "100000.00",
"BeneficiaryAccountNumber" : "0201245681",
"Remark1" : "Transfer Test",
"Remark2" : "Online Transfer"
}
- Timestamp : 2016-02-03T10:00:00.000+07:00
API Secret : 22a2d25e-765d-41e1-8d29-da68dcb5698b
Lowercase(HexEncode(SHA-256(RequestBody))) : e3cf5797ac4ac02f7dad89ed2c5f5615c9884b2d802a504e4aebb76f45b8bdfb
StringToSign : POST:/banking/corporates/transfers:lIWOt2p29grUo59bedBUrBY3pnzqQX544LzYPohcGHOuwn8AUEdUKS:e3cf5797ac4ac02f7dad89ed2c5f5615c9884b2d802a504e4aebb76f45b8bdfb:2016-02-03T10:00:00.000+07:00
Signature : 69ad66589ade078a30922a0848725cf153aecfcca82eba94e3270285b4a9c604
GET Example:
Data:
- Method : GET
- Relative URL : /banking/v3/corporates/BCAAPI2016/accounts/0201245680/statements?StartDate=2016-09-01&EndDate=2016-09-01
- Access token : lIWOt2p29grUo59bedBUrBY3pnzqQX544LzYPohcGHOuwn8AUEdUKS
- Request body :
- Timestamp : 2016-02-03T10:00:00.000+07:00
API Secret : 22a2d25e-765d-41e1-8d29-da68dcb5698b
Lowercase(HexEncode(SHA-256(RequestBody))) : e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
StringToSign : GET:/banking/v2/corporates/BCAAPI2016/accounts/0201245680/statements?EndDate=2016-09-01&StartDate=2016-09-
01:lIWOt2p29grUo59bedBUrBY3pnzqQX544LzYPohcGHOuwn8AUEdUKS:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855:2016-02-03T10:00:00.000+07:00
Signature : 3ac124303746d222387d4398dddf33201a384aa22137aa08f4d9843c6f467a48
EXAMPLE
Response
Headers
Name | Type | Description |
---|---|---|
Authorization | Alphanumeric | OAuth2.0 Token Format value: Bearer {access_token} |
Content-Type | Alphanumeric | Content of your request body e.g. application/json |
Origin | url | Origin domain e.g. yourdomain.com |
X-BCA-Key | Alphanumeric | Your API Key generated by BCA |
X-BCA-Timestamp | yyyy-MM-ddTHH:mm:ss.SSSTZD (ISO 8601) | Timestamp generated by merchant in ISO 8601 e.g. “2016-02-03T10:00:00.000+07:00” |
X-BCA-Signature | Alphanumeric | Signature, please refer to section above |
Sample request with complete headers:
Request
GET /general/rate/forex HTTP/1.1
Host: sandbox.bca.co.id
Authorization: Bearer a0daAPsGwPDHGMv6MpWzoIPgZvN9YvrSi7xdVI7Jb98638ilM7ila7
Content-Type: application/json
Origin: yourdomain.com
X-BCA-Key: 41138489-1057-4e7e-ab93-9bc97b511cf6
X-BCA-Timestamp: 2016-02-03T10:00:00.000+07:00
X-BCA-Signature: ce20470484c27c0441d7c9dedc7d3e187e5e908df1780c6c389941b779033519
Sample request with complete headers:
Response
AUTHENTICATION SNAP
OAuth2.0 (SNAP)
1. OAuth2.0 (SNAP)
POST /openapi/v1.0/access-token/b2b HTTP/1.1 Host: server.example.com X-TIMESTAMP : DateTime with timezone, which follows the ISO-8601 standard X-CLIENT-KEY : client_id X-SIGNATURE : Signature Asymmetric Content-Type : application/json { "grantType": "client_credentials" } |
Errors
Here is the list of error codes that can be returned.
HTTP Code | Error Code | Error Message (Indonesian) |
---|---|---|
400 | 4007300 | Invalid field format [clientId/clientSecret/grantType] |
400 | 4007300 | Unauthorized. [Connection not allowed] |
400 | 4007301 | invalid field format [X-TIMESTAMP] |
400 | 4007302 | Invalid mandatory field [X-CLIENT-KEY] |
401 | 4017300 | Unauthorized. [Signature] |
401 | 4017300 | Unauthorized. [Unknown client] |
504 | 5047300 | Timeout |
OAuth2.0 (SNAP)
Request
curl https://sandbox.bca.co.id/openapi/v1.0/access-token/b2b \
-H "X-TIMESTAMP: 2022-04-21T17:34:52+07:00" \
-H "X-CLIENT-KEY: 123 \
-H "X-SIGNATURE:
cjCDSRIf8FIXGs28uVFhxBuRhgV/xEnMOxargNqkTwvgMqDMdyEfwqQ2PIFz891K0LE81dgN
b2CEsJrGAG7tRTur68A0YEHpx8iXXWHD40+iSCgBa8o3QsVBB1ryP1d8FV+dMEeixUKw08fh
QCsN1vqIJhPyZFkg2r3Sr8h+dzG4t7ldr7fTkO7wvEFT4LG9kTAEDqPNPW1P8bZqdHZUe6VD
zqlUWO12Zu2wHofuzRjvXXVYDm1/lwhDmdJqVrvi9g8L5/PmLnzGkjcniJlpBGYYkGE0eA25
bOdJEWdaklQjQDrFg+G8Pl4EnY3PXW1/u7ZwGU131mVy1kvUw801Yw== \
-H "Content-Type: application/json \
-d "{
"grantType": "client_credentials"
}"
OAuth2.0 (SNAP)
Response
{
"responseCode": "2007300",
"responseMessage": "Successful",
"accessToken": "7t4tbXnlyn4NABRn0FAhB69CRhxghlPPfPK2l9quE29l4D4k5DLH57,
"tokenType": "bearer",
"expiresIn": "900"
}
Headers (SNAP)
1. Headers
To successfully communicate with BCA Banking Open API, you must provide the following headers in every API request :
Request
Name | Type | Length | Mandatory | Description |
---|---|---|---|---|
Authorization | AN | N/A | Y | Represents access_token of a request, String starts with keyword “Bearer” followed by accessToken |
Content-Type | AN | 16 (Fixed Length) | Y | Content of you request body e.g. application/json |
X-TIMESTAMP |
yyyy-MMddThh:mi:ssTZD (ISO 8601) |
25 (Fixed Length) | Y | Client’s current local time in yyyy-MM-ddTHH:mm:ssTZD format |
X-SIGNATURE |
AN | N/A | Y | Signature Symmetric, please refer to Signature section |
ORIGIN |
N/A | N | Origin Domain www.yourdomain.com | |
X-EXTERNAL-ID |
36 (Max Length) | Y | Numeric String Reference number that should be unique in the same day |
Signature (SNAP)
Signature Asymmetric
Signature asymmetric is used by BCA to verify that your access token request is not altered by attackers.
The outline of the HMAC validation process is as follows:
- Retrieve Timestamp from HTTP Header (X-TIMESTAMP)
- Retrieve the Client Key form HTTP Header (X-CLIENT-KEY)
- Retrieve client HMAC from HTTP Header lowercase base64 format (X-SIGNATURE)
- Calculate HMAC using the Private Key as the HMAC secret key
- 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:
- Retrieve Timestamp from HTTP Header (X-TIMESTAMP)
- Lookup the Client Secret corresponding to the received key in internal store
- Retrieve client HMAC from HTTP Header lowercase base64 format (X-SIGNATURE)
- Calculate HMAC using the Client Secret as the HMAC secret key
- 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 :
- The Relative URL must be URI-encoded according to the following rules:
- Do not URI-encode forward slash ( / ) if it was used as path component.
- 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.
- 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.
- 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.
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 query string parameters must be re-ordered according to the following rules:
- Sorted by parameter name lexicographically
- If there are two or more parameters with the same name, sort them by parameter values.
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) | Y | Statement start date. Format: yyyy-MM-dd |
EndDate | String(10) | Y | Statement end date. Format: yyyy-MM-dd |
Field | DataType | Description |
---|---|---|
ResponseWS | String | Statement request ID |
ResponseWS | String | Response from Co-Partner |
NOTIFICATION ACCOUNT STATEMENT OFFLINE
Request
POST https://www.copartners.com/bca/async/statement
-H "X-Pass-Signature:b9125ab10816f6929d214c96ffca77dfd5a1ea13856362b85eeaeb70155"
-d "{
"RequestID": "h2hauto014_0000000551",
"AccountNumber": "0613004197",
"StartDate": "2019-02-20",
"EndDate": "2019-02-20",
}"
NOTIFICATION ACCOUNT STATEMENT OFFLINE
Response
{
"RequestID" : "h2hauto014_0000000551",
"ResponseWS" : "1",
}
2. Notifikasi Rekening Dana Nasabah
Retrieve information of Account Statement of Investor Account for being debited or credited.
Request:
Field | DataType | Mandatory | Description |
---|---|---|---|
ExternalReference | String(32) | Y | Alphanumeric. Unique reference number for the request sent. |
SeqNumber | String(14) | Y | Numeric. Identifier for the transaction. |
AccountNumber | String(10) | Y | 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. |
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 |
C | Credit Correction | ||
5. | NTAX | D | Tax |
6. | NCHG | D | Admin Fee |
Response:
Field | DataType | Description |
---|---|---|
ResponseWS | String | Flag received status. 0 : request successfully accepted and no internal error 1 : request unsuccessfully accepted and or some internal error occurred |
NOTIFICATION FOR SECURITIES
Request
POST https://www.somesecurities.com/bca/investor-account/statement
{
"ExternalReference":"AAABBBCCCDDDEEEE1234567890123456",
"SeqNumber":"10023",
"AccountNumber":"5421036985",
"Currency":"IDR",
"TxnDate":"08252017 143801",
"TxnType":"NTRF",
"TxnCode":"C",
"AccountDebit":"1704000420",
"AccountCredit":"5421036985",
"TxnAmount":"200000.00",
"OpenBalance":"-150000.00",
"CloseBalance":"+50000.00",
"TxnDesc":"-"
}
NOTIFICATION FOR SECURITIES
Response
{
"ResponseWS":"0"
}
3. Request Mutasi Rekening Bulk
Headers
Field | DataType | Mandatory | Description |
---|---|---|---|
ChannelID | String(5) | Y | Channel Identification Number (Ex: 95051 for KlikBCA Bisnis) |
CredentialID | String(10) | Y | Your Channel Identity (ex: Your KlikBCA Bisnis CorporateID) |
Payload
Field | DataType | Mandatory | Description |
---|---|---|---|
AccountNumber | String(10) | Y | Account Number |
StartDate | String(10) | Y | Start Date of the account statement that you wants to get. Format: yyyy-MM-dd |
EndDate | String(10) | Y | End Date of the account statement that you wants to get. Format: yyyy-MM-dd |
Response
Field | DataType | Description |
---|---|---|
RequestID | String(21) | Statement request ID |
TransactionDate | String(10) | Transcation date. Format: yyyy-MM-dd |
Error
HTTP Code | Error Code | Error Message (Indonesian) | Error Message (English) |
---|---|---|---|
404 | ESB-07-271 | Tidak ada transaksi | No transaction |
400 | ESB-07-279 | Tanggal awal lebih kecil dari tanggal buka rekening | Start date less than account open date |
400 | ESB-14-001 | HMAC tidak cocok | HMAC mismatch |
400 | ESB-14-002 | Permintaan tidak valid | Invalid request |
400 | ESB-14-003 | Timestamp tidak valid | Invalid timestamp |
400 | ESB-14-004 | parameter input tidak valid | Invalid input parameter |
500 | ESB-14-005 | Sistem sedang dalam maintenance | System under maintenance |
504 | ESB-14-006 | Timeout, silakan periksa mutasi rekening | Timeout, please check your account statement |
504 | ESB-14-007 | Timeout | Timeout |
401 | ESB-14-008 | client_id/client_secret/grant_type tidak valid | Invalid client_id/client_secret/grant_type |
401 | ESB-14-009 | Tidak berhak | Unauthorized |
429 | ESB-14-010 | Jumlah permintaan melebihi limit | Limit request exceeded |
400 | ESB-14-015 | Content Type tidak valid | Invalid Content Type |
400 | ESB-14-016 | Format JSON tidak valid | Invalid JSON format |
403 | ESB-14-019 | Koneksi tidak diperbolehkan | Connection not allowed |
400 | ESB-14-020 | Request tidak valid | Invalid Request |
400 | ESB-14-021 | API Key Tidak Valid | API Key Invalid |
400 | ESB-14-022 | API Key/API Secret tidak cocok | API Key/API Secret mismatch |
400 | ESB-82-001 | Field [FieldName] harus diisi | Missing mandatory field [FieldName] |
400 | ESB-82-002 | Corporate Id tidak valid | Invalid CorporateID |
400 | ESB-82-003 | TransactionID tidak unik | TransactionID not unique |
400 | ESB-82-004 | TransactionDate tidak valid | Invalid TransactionDate |
403 | ESB-82-006 | Nominal transaksi melebihi batas maksimum | Max amount transaction is exceeded |
400 | ESB-82-008 | Rekening perusahaan tidak valid | Company account invalid |
400 | ESB-82-009 | CurrencyCode tidak valid | Invalid CurrencyCode |
400 | ESB-82-010 | Format TransactionID tidak valid | Invalid TransactionID format |
400 | ESB-82-011 | Amount tidak valid | Invalid Amount |
400 | ESB-82-012 | Panjang karakter data input tidak valid | Invalid input length |
400 | ESB-82-013 | Tipe data input tidak valid | Invalid data type |
400 | ESB-82-014 | AccountNumber tidak valid | Invalid AccountNumber |
403 | ESB-82-015 | Min Max Amount Execeeded | Min Max Amount Execeeded |
403 | ESB-82-018 | Rekening Dormant | Account Dormant |
402 | ESB-82-019 | Saldo tidak cukup | Insufficient fund |
400 | ESB-82-020 | Tipe rekening tidak valid | Invalid account type |
403 | ESB-82-021 | Rekening tidak dapat melakukan transaksi | Account cannot do transaction |
404 | ESB-82-022 | Rekening tutup | Account closed |
500 | ESB-82-023 | Transaksi gagal | Transaction failed |
504 | ESB-82-024 | Timeout, silakan periksa mutasi rekening | Timeout, please check your account statement |
500 | ESB-82-025 | Sedang diproses, silakan periksa mutasi rekening | In progress, please check your account statement |
500 | ESB-82-026 | Lewat batas waktu cut off | Cut off time is exceeded |
400 | ESB-99-009 | Field [FieldName] harus diisi | Missing mandatory field [FieldName] |
403 | ESB-99-075 | KeyID tidak ditemukan | KeyID is not found |
403 | ESB-99-089 | Transaksi berhasil sebagian | Transaction success partially |
400 | ESB-99-112 | Input string JSON tidak valid | Invalid JSON string input |
400 | ESB-99-113 | Transaksi ditolak | Transaction rejected |
400 | ESB-99-128 | Panjang field [FieldName] melebihi ketentuan | Field [FieldName] exceed limit |
400 | ESB-99-128 | Total input [FieldName] melebihi ketentuan | Total [FieldName] input exceed limit |
400 | ESB-99-156 | ChannelType tidak valid | ChannelType is not valid |
400 | ESB-99-156 | AccountNumber Tidak Valid | Invalid AccountNumber |
400 | ESB-99-157 | Transaksi ditolak | Transaction rejected |
400 | ESB-99-158 | Tanggal berakhir lebih besar dari tanggal hari ini | End date more than today |
400 | ESB-99-158 | Tanggal mulai lebih besar dari tanggal hari ini | Start date more than today |
400 | ESB-99-158 | Maksimal mutasi rekening yang dipilih 31 hari yang lalu | Maximal account statement 31 days ago |
400 | ESB-99-158 | Tanggal mulai lebih besar dari tanggal berakhir | Start date more than end date |
404 | ESB-99-127 | Transaksi tidak ditemukan | Transaction not found |
400 | ESB-99-197 | Nama atau nomor rekening tidak sesuai | Account name/number does not match |
400 | ESB-99-284 | [FieldName] tidak valid | Invalid [FieldName] |
500 | ESB-99-999 | Sistem sedang tidak tersedia | System unavaliable |
GET /banking/offline/corporates/accounts/{AccountNumber}/filestatements
Request
GET /banking/offline/corporates/accounts/0201245680/filestatements?StartDate=2016-06-24&EndDate=2016-06-24 HTTP/1.1
Host: sandbox.bca.co.id
Authorization: Bearer [access_token]
Content-Type: application/json
Origin: [yourdomain.com]
X-BCA-Key: [api_key]
X-BCA-Timestamp: [timestamp]
X-BCA-Signature: [signature]
GET /banking/offline/corporates/accounts/{AccountNumber}/filestatements
Response
{
"RequestID" : "ABCDEFGHIJ_0000000752",
"ResponseWS" : "Request Account Statement Berhasil Diterima dan Sedang
Diproses",
}
4. SNAP Banking Balance Inquiry
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 | Y | Numeric | Registered account number in KlikBCA Bisnis. For BCA, length account number is 10 digit |
Response
Field | DataType | Length Type | Mandatory | Format | Description |
---|---|---|---|---|---|
responseCode | String (7) | Fixed | Y | - | Response code |
responseMessage | String (150) | Max | Y | - | Response description |
referenceNo | String (64) | Max | Y (When the transaction is successful) | Numeric | Transaction identifier on service provider system. Unique each day from BCA Must be filled upon successful transaction With format as follows : yymmddHH (from timestamp, 8 digit) xx (prefix menu, 2 digit) sequence number (8 digit) |
partnerReferenceNo | String (64) | Max | Y | - | Transaction identifier on service customer system *according to the request input |
accountNo | String (32) | Max | N | Numeric | Send by BCA according to the request input. Registered account number in KlikBCA Bisnis. For BCA, length account number is 10 digit. |
name | String (140) | Max | N | Alphanumeric | Send by BCA. Customer account name |
accountInfos | Array of object | Starting and ending balance before the first/last transaction. | |||
amount | Object | Y | Send by BCA. Net amount of the transaction | ||
value | String(16.2) | Max | Y | Numeric | If it’s IDR then value includes 2 decimal digits. BCA will send response amount with format value Numeric (13.2) |
currency | String(3) | Fixed | Y | Alphanumeric | Currency ISO 4217 |
floatAmount | Object | N | Send by BCA. Amount of deposit that is not effective yet (due to holiday, etc) |
||
value | String(16.2) | Max | Y | Numeric | If it’s IDR then value includes 2 decimal digits. BCA will send response amount with format value Numeric (13.2) |
currency | String(3) | Fixed | Y | Alphanumeric | Currency ISO 4217 |
holdAmount | Object | N | Send by BCA. Hold amount that cannot be used |
||
value | String(16.2) | Max | Y | Numeric | If it’s IDR then value includes 2 decimal digits. BCA will send response amount with format value Numeric (13.2) |
currency | String(3) | Fixed | Y | Alphanumeric | Currency ISO 4217 |
availableBalance | Object | Y | Send by BCA. Account balance that can be used for financial transaction |
||
value | String(16.2) | Max | Y | Numeric | If it’s IDR then value includes 2 decimal digits. BCA will send response amount with format value Numeric (13.2) |
currency | String(3) | Fixed | Y | Alphanumeric | Currency ISO 4217 |
Error
HTTP Code | Error Code | Error Message (Indonesian) |
---|---|---|
400 | 4001100 | Bad request |
400 | 4001101 | Invalid Mandatory Field {Field} |
400 | 4001102 | Invalid Field Format {Field} |
401 | 4011100 | Unauthorized. [Reason] |
401 | 4011101 | Invalid token (B2B) |
403 | 4031101 | Feature Not Allowed |
403 | 4031118 | Inactive Account |
404 | 4041111 | Invalid Account |
409 | 4091100 | Conflict |
500 | 5001100 | General Error |
504 | 5041100 | Timeout |
curl –X POST https://sandbox.bca.co.id:8443/openapi/v1.0/balance-inquiry
Request
-H 'CHANNEL-ID':'95051'
-H 'X-PARTNER-ID': 'KBBABCINDO'
-d '{
"partnerReferenceNo": "2020102900000000000001",
"accountNo": "1234567890"
}
curl –X POST https://sandbox.bca.co.id:8443/openapi/v1.0/balance-inquiry
Response
{
"responseCode": "2001100",
"responseMessage": "Successful",
"referenceNo": "2020102977770000000009",
"partnerReferenceNo": "2020102900000000000001",
"accountNo": "1234567890",
"name": "ANDHIKA",
"accountInfos": {
"amount": {
"value": "100000.00",
"currency": "IDR"
},
"floatAmount": {
"value": "500000.00",
"currency": "IDR"
},
"holdAmount": {
"value": "200000.00",
"currency": "IDR"
},
"availableBalance": {
"value": "200000.00",
"currency": "IDR"
}
}
}
5. SNAP Banking Bank Statement
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 | Y | 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.
Response
Field | DataType | Length Type | Mandatory | Format | Description |
---|---|---|---|---|---|
responseCode | String (7) | Fixed | Y | - | Response code |
responseMessage | String (150) | Max | Y | - | Response description |
referenceNo | String (64) | Max | Y (When the transaction is successful) | Numeric | Transaction identifier on service provider system. Unique each day from BCA Must be filled upon successful transaction With format as follows : yymmddHH (from timestamp, 8 digit) xx (prefix menu, 2 digit) sequence number (8 digit) |
partnerReferenceNo | String (64) | Max | Y | - | Transaction identifier on service customer system *according to the request input |
balance | Array of object | Starting and ending balance before the first/last transaction. | |||
amount | Object | Y | Amount of balance | ||
value | String(16.2) | Max | Y | Numeric | If it’s IDR then value includes 2 decimal digits. BCA will send response amount with format value Numeric (13.2) |
currency | String(3) | Fixed | Y | Alphanumeric | Currency ISO 4217 |
dateTime | String(25) | Max | Y | ISODateTime 8601 |
Timestamp of the balance |
startingBalance | Object | N | Starting and ending balance before the first/last transaction | ||
value | String(16.2) | Max | Y | Numeric | If it’s IDR then value includes 2 decimal digits. BCA will send response amount with format value Numeric (13.2) |
currency | String(3) | Fixed | Y | Alphanumeric | Currency ISO 4217 |
dateTime | String(25) | Max | Y | ISODateTime 8601 |
Timestamp of the balance |
endingBalance | Object | N | Starting and ending balance before the first/last transaction | ||
value | String(16.2) | Max | Y | Numeric | If it’s IDR then value includes 2 decimal digits. BCA will send response amount with format value Numeric (13.2) |
currency | String(3) | Fixed | Y | Alphanumeric | Currency ISO 4217 |
dateTime | String(25) | Max | Y | ISODateTime 8601 |
Timestamp of the balance |
totalCreditEntries | Object | N | Total transaction amount with type = CREDIT | ||
numberOfEntries | String (5) | Max | Y | Numeric | Number of entries for credit transaction |
amount | Object | Y | Amount of balance | ||
value | String(16.2) | Max | Y | Numeric | If it’s IDR then value includes 2 decimal digits. BCA will send response amount with format value Numeric (13.2) |
currency | String(3) | Fixed | Y | Alphanumeric | Currency ISO 4217 |
totalDebitEntries | Object | N | Total transaction amount with type =DEBIT | ||
numberOfEntries | String (5) | Max | Y | Numeric | Number of entries for credit transaction |
amount | Object | Y | Amount of balance | ||
value | String(16.2) | Max | Y | Numeric | If it’s IDR then value includes 2 decimal digits. BCA will send response amount with format value Numeric (13.2) |
currency | String(3) | Fixed | Y | Alphanumeric | Currency ISO 4217 |
detailData | Array of object | ||||
endAmount | Object | Y | Net amount of the transaction | ||
value | String(16.2) | Max | Y | Numeric | If it’s IDR then value includes 2 decimal digits. BCA will send response amount with format value Numeric (13.2) |
currency | String(3) | Fixed | Y | Alphanumeric | Currency ISO 4217 |
amount | Object | Y | |||
value | String(16.2) | Max | Y | Numeric | If it’s IDR then value includes 2 decimal digits. BCA will send response amount with format value Numeric (13.2) |
currency | String(3) | Fixed | Y | Alphanumeric | Currency ISO 4217 |
transactionDate | String (25) | Fixed | Y | ISO8601 | Transaction date |
remark | String (256) | Max | Y | - | Remark / transaction description. For BCA, remark is 36 digit divided in 2 field (remark 1 with 18 digit and remark 2 with 18 digit). Filled with data from txn_name and trailer 1-6 |
type | String (6) | Fixed | Y | Alphanumeric | Transaction type CREDIT/DEBIT |
Error
HTTP Code | Error Code | Error Message (Indonesian) |
---|---|---|
400 | 4001402 | Invalid Mandatory Field {Field} |
400 | 4001402 | Invalid Field Format {Field} |
401 | 4011400 | Unauthorized. [Reason] |
401 | 4011401 | Invalid token (B2B) |
403 | 4031401 | Feature Not Allowed |
404 | 4041411 | Invalid Account |
409 | 4091400 | Conflict |
429 | 4291400 | Too Many Requests |
500 | 5001400 | General Error |
504 | 5041400 | Timeout |
curl –X POST https://sandbox.bca.co.id/openapi/v1.0/bank-statement
Request
-H 'CHANNEL-ID':'95051'
-H 'X-PARTNER-ID': 'KBBABCINDO'
-d '
{
"partnerReferenceNo": "2020102900000000000001",
"accountNo": "1234567890",
"fromDateTime": "2021-04-21T00:00:00+07:00",
"toDateTime": "2021-04-21T00:00:00+07:00"
}'
curl –X POST https://sandbox.bca.co.id/openapi/v1.0/bank-statement
Response
{
"responseCode": "2001400",
"responseMessage": "Successful",
"referenceNo": "2020102977770000000009",
"partnerReferenceNo": "2020102900000000000001",
"balance": [
{
"amount": {
"value": "500000.00",
"currency": "IDR",
"dateTime": "2020-12-19T16:03:45+07:00"
},
"startingBalance": {
"value": "500000.00",
"currency": "IDR?",
"dateTime": "2020-12-19T16:03:45+07:00"
},
"endingBalance": {
"value": "500000.00",
"currency": "IDR?",
"dateTime": "2020-12-19T16:03:45+07:00"
}
}],
"totalCreditEntries":
{
"numberOfEntries": "10",
"amount": {
"value": "500000.00",
"currency": "IDR"
}
},
"totalDebitEntries":
{
"numberOfEntries": "10",
"amount": {
"value": "500000.00",
"currency": "IDR"
}
},
"detailData": [
{
"amount":
{
"value": "10000.00",
"currency": "IDR"
},
"transactionDate": "2020-12-18T16:03:45+07:00",
"remark": "TRSF E-BANKING DB 1111/ATRTG/WS95051 09112016123456pencairan merchant SITI KHADIJAH",
"type": "DEBIT",
},
{
"amount":
{
"value": "10000.00",
"currency": "IDR"
},
"transactionDate": "2020-12-18T16:03:45+07:00",
"remark": "BA JASA E-BANKING 0709/FTCHG/WS95321DOM210907115626680PPU_CGAMBIAYA TRANSAKSI",
"type": "DEBIT",
}]
}
Pembukaan Rekening Online
1. BCA Account Opening Notification
This service is used for BCA account opening approval notification.
This feature is not yet available to be accessed via Sandbox
Type | Recommendation |
---|---|
Android | OS version 8.0+ dan Google Chrome version 75+ |
iOS | OS version 12.0+ dan Safari version 12+ |
Request Headers:
Field | Data Type | Mandatory | Description |
---|---|---|---|
X-Pass-Signature | String | 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. Notes: the field name “X-Pass-Signature” can be replaced with any other name depends on BCA’s company partner’s specification. |
Payload (Form Data):
Field | Data Type | Mandatory | Description |
---|---|---|---|
application_id | String (36) | Y | ID Submission Form created by prospective customers |
user_id | String (50) | Y | Prospective customer ID of each merchant This user ID is sent from the merchant when they want to generate a token |
status_date | String (19) | Y | date and time when the poll was success / rejected Format : YYYY-MM-DD HH:MM:SS |
created_date | String (19) | Y | The date when the initial form submission process |
modified_date | String (19) | Y | The date in case of data change such as updating of eform numbers or other things will automatically update the date |
status_id | int | Y | Open account status code Code : 0, 1 |
status_name | String (15) | Y | type of account opening status. depends on the status_id 0 = REJECTED 1 = SUCCESS |
nomor_rekening | String (10) | N | if the customer agrees to the provision of the account to a third party, the customer's account number will be sent |
Response:
Field | Data Type | Description |
---|---|---|
Status | String (7) | The push notification process is success or failed |
Message | String (8) | Response from Co-Partner (“Berhasil”) |
https://www.copartners.com/bca/open-account/notification
Request
POST https://www.copartners.com/bca/open-account/notification
-H "X-Pass-Signature: b9125ab10816f6929d214c96ffca77dfd5a1ea13856362b85eeaeb70155"
-d " {
"user_id":"DD6DC0C5-17ED-4731-8600-B63EEDB126D9",
"application_id":"7C73063B-93EA-4F57-A3bE-2A1F1773DB4F",
"status_date":"2020-08-05 11:03:56",
"created_date":"2020-03-18 09:03:57",
"modified_date":"2020-08-11 11:16:01",
"status_id":"1",
"status_name":"SUCCESS",
"nomor_rekening":"1234567890"
}"
https://www.copartners.com/bca/open-account/notification
Response
{
"Status": "Success",
"Message": "Berhasil"
}
2. BCA Account Opening Status
This service is used for BCA account opening status update for Co-Partners.
This feature is not yet available to be accessed via Sandbox
Type | Recommendation |
---|---|
Android | OS version 8.0+ dan Google Chrome version 75+ |
iOS | OS version 12.0+ dan Safari version 12+ |
Request Headers and URI Params:
Field | Params Type | Data Type | Mandatory | Description |
---|---|---|---|---|
channel-id | Header | String | Y | WSID bcacoid (95171) |
credential-id | Header | String(36) | Y | Registered Merchant ID at bca.co.id |
application-id | Header | String(36) | Y | Application ID that sent from bca.co.id to merchant when successfully submitted form (before uploading document and video call) |
Result of the request will contains following information:
Response:
Field | Data Type | Description |
---|---|---|
merchant_id | String | Merchant ID |
application_id | String (36) | Application ID |
status_name | String (15) | Transaction Status |
status_id | int | Status ID 0 = Rejected 1 = Success 2 = Retry 3 = On-Lock |
created_date | String (19) | The date when the initial form submission process |
modified_date | String (19) | The date in case of data change such as updating of eform numbers or other things will automatically update the date |
status_date | String (19) | Status Date |
nomor_rekening | String (10) | Account Number (If the Customer does not check Account Number Approval, then the Account_Number field will display an empty string (“”)) |
Here is the list of error codes that can be returned.
HTTP Code | Error Code | Error Message (Indonesian) | Error Message (English) | Description |
---|---|---|---|---|
400 | ESB-14-001 | HMAC tidak cocok | HMAC mismatch | 400 |
400 | ESB-14-002 | Permintaan tidak valid | Invalid request | 400 |
400 | ESB-14-003 | Timestamp tidak valid | Invalid timestamp | 400 |
400 | ESB-14-004 | parameter input tidak valid | Invalid input parameter | 400 |
500 | ESB-14-005 | Sistem sedang dalam maintenance | System under maintenance | 500 |
504 | ESB-14-007 | Timeout | Timeout | 504 |
401 | ESB-14-008 | Client_Id/Client_Secret /Grant_Type tidak valid | Invalid Client_Id/Client_Secret /Grant_Type | 401 |
401 | ESB-14-009 | Tidak berhak | Unauthorized | 401 |
404 | ESB-14-011 | Service tidak tersedia | Service doesn't exist | 404 |
401 | ESB-14-012 | Tidak berhak mengakses service ini | Not allowed to access this service | 401 |
401 | ESB-14-014 | ChannelID/CredentialID tidak valid | Invalid ChannelID/CredentialID | 401 |
403 | ESB-14-019 | Koneksi tidak diperbolehkan | Connection not allowed | 403 |
400 | ESB-14-021 | API Key tidak valid | Invalid API Key | 400 |
400 | ESB-14-022 | API Key/API Secret tidak cocok | API Key/API Secret mismatch | 400 |
400 | WBF-04-001 | Header Application Id tidak ada | Header Application Id tidak ada | Get Open Account Approval Status |
400 | WBF-04-002 | Header Credential ID tidak ada | Header Credential ID tidak ada | Get Open Account Approval Status |
400 | WBF-04-003 | Credential ID / Application Id Value tidak sesuai | Credential ID / Application Id Value tidak sesuai | Get Open Account Approval Status |
400 | WBF-04-004 | Data dengan Credential ID dan Application Id tersebut tidak ditemukan | Data dengan Credential ID dan Application Id tersebut tidak ditemukan | Get Open Account Approval Status |
400 | WBF-04-005 | Header Client Id tidak ada | Header Client Id tidak ada | Get Open Account Approval Status |
400 | WBF-04-006 | Data dengan Client ID tersebut tidak ditemukan | Data dengan Client ID tersebut tidak ditemukan | Get Open Account Approval Status |
400 | WBF-99-991 | ex.Message | ex.Message | Pesan global dari sistem |
400 | WBF-99-992 | messages | messages | Pesan global dari sistem |
/open-account/marketplace/status
Request
curl –X GET https://sandbox.bca.co.id/open-account/marketplace/status
-H
'credentialid': F90338EA-853B-4512-AE58-0E72BE2E88ED',
'application-id':'C5276A67-711E-468EBB14-01861D2746C6',
‘channel-id’:’95171’
/open-account/marketplace/status
Response
{
"merchant_id": "F90338EA-853B-4512-AE58-0E72BE2E88ED",
"application_id": "5F7D49A6-E3F7-493A-B255-5906D4E65FD2",
"status_name": "SUCCESS",
"status_id": "1",
"created_date": "2020-08-05 10:28:21",
"modified_date": "2020-08-05 11:03:56",
"status_date": "2020-08-05 11:03:56",
"nomor_rekening": "0842378425"
}
Response Berhasil dan tanpa menampilkan Nomor Rekening
{
"merchant_id": "F90338EA-853B-4512-AE58-0E72BE2E88ED",
"application_id": "5F7D49A6-E3F7-493A-B255-5906D4E65FD2",
"status_name": "SUCCESS",
"status_id": "1",
"created_date": "2020-08-05 10:28:21",
"modified_date": "2020-08-05 11:03:56",
"status_date": "2020-08-05 11:03:56",
"nomor_rekening": ""
}
3. BCA Account Opening Webform
This service is used for Open Account Marketplace.
This feature is not yet available to be accessed via Sandbox
Type | Recommendation |
---|---|
Android | OS version 8.0+ dan Google Chrome version 75+ |
iOS | OS version 12.0+ dan Safari version 12+ |
Request Headers and URI Params:
Field | Params Type | Data Type | Mandatory | Description |
---|---|---|---|---|
channel-id | Header | String | Y | WSID bcacoid (95171) |
credential-id | Header | String(36) | Y | Registered Merchant ID at bca.co.id |
Payload (Form Data):
Field | Data Type | Mandatory | Description |
---|---|---|---|
user_id | String (50) | Y | Registered User Merchant ID |
application_id | String (36) | Conditional | Application ID Not mandatory if activity_code = ‘01’, application_id = ‘’ Mandatory if activity_code = ‘02’, application_id sent from web-view to merchant when successfully submitted form |
activity_code | String (2) | Y | Activity Code ‘01’ = web-view access (consumer profile) ‘02’ = mobile-browser access (open account document and video call capture) |
String (100) | N | Merchant Email | |
mobile_phone | String (15) | N | Merchant Mobile Phone |
full_name | String (100) | N | Merchant Full Name |
Response:
Field | Data Type | Description |
---|---|---|
verification_id | String (36) | Verification ID |
applicant_id | String (36) | Applicant ID |
url_pageview | String | URL Pageview |
application_id | String (40) | Hanya dikirim jika Activity code = 02 Kode unik khusus yang berfungsi sebagai reference code sesi pemrek yang dimasking untuk diinfokan ke copartner |
Here is the list of error codes that can be returned.
HTTP Code | Error Code | Error Message (Indonesian) | Error Message (English) | Description |
---|---|---|---|---|
400 | ESB-14-001 | HMAC tidak cocok | HMAC mismatch | 400 |
400 | ESB-14-002 | Permintaan tidak valid | Invalid request | 400 |
400 | ESB-14-003 | Timestamp tidak valid | Invalid timestamp | 400 |
400 | ESB-14-004 | parameter input tidak valid | Invalid input parameter | 400 |
500 | ESB-14-005 | Sistem sedang dalam maintenance | System under maintenance | 500 |
504 | ESB-14-007 | Timeout | Timeout | 504 |
401 | ESB-14-008 | Client_Id/Client_Secret /Grant_Type tidak valid | Invalid Client_Id/Client_Secret /Grant_Type | 401 |
401 | ESB-14-009 | Tidak berhak | Unauthorized | 401 |
404 | ESB-14-011 | Service tidak tersedia | Service doesn't exist | 404 |
401 | ESB-14-012 | Tidak berhak mengakses service ini | Not allowed to access this service | 401 |
401 | ESB-14-014 | ChannelID/CredentialID tidak valid | Invalid ChannelID/CredentialID | 401 |
403 | ESB-14-019 | Koneksi tidak diperbolehkan | Connection not allowed | 403 |
400 | ESB-14-021 | API Key tidak valid | Invalid API Key | 400 |
400 | ESB-14-022 | API Key/API Secret tidak cocok | API Key/API Secret mismatch | 400 |
400 | WBF-03-001 | The {field-name} field is required. | The {field-name} field is required. | Generate Merchant Token |
400 | WBF-03-002 | Parameter header Credential ID tidak ditemukan | Parameter header Credential ID tidak ditemukan | Generate Merchant Token |
400 | WBF-03-003 | Credential ID Value tidak sesuai | Credential ID Value tidak sesuai | Generate Merchant Token |
400 | WBF-03-004 | Credential ID tidak terdaftar | Credential ID tidak terdaftar | Generate Merchant Token |
400 | WBF-03-005 | Application Id tidak sesuai | Application Id tidak sesuai | Generate Merchant Token |
400 | WBF-03-006 | Application Id tidak ditemukan | Application Id tidak ditemukan | Generate Merchant Token |
400 | WBF-03-007 | Application Id ditolak / berhasil / sedang proses | Application Id ditolak / berhasil / sedang proses | Generate Merchant Token |
400 | WBF-03-008 | Merchant Id dan App Data Id tidak sesuai | Merchant Id dan App Data Id tidak sesuai | Generate Merchant Token |
400 | WBF-03-009 | Telah mencapai batas akses maksimum halaman ini. | Telah mencapai batas akses maksimum halaman ini. | Generate Merchant Token |
400 | WBF-99-991 | ex.Message | ex.Message | Pesan global dari sistem |
400 | WBF-99-992 | messages | messages | Pesan global dari sistem |
/open-account/marketplace/merchants/tokens/generator
Request
curl –X POST https://sandbox.bca.co.id/open-account/marketplace/merchants/tokens/generator
-H 'credential-id':'F90338EA-853B4512-AE58-0E72BE2E88ED', ‘channel-id’:’95171’
–d
'user_id=123456789&application_id=&activity_code=01&email=maiuw@gmail.com&mobile_ph
one=08128084423&full_name=8196047056'
/open-account/marketplace/merchants/tokens/generator
Response
Response (if ActivityCode = 01)
{
"verification_id": "cdec3c69-f549-4b91-bccf-25a3dad2de5a",
"applicant_id": "117f6c7e-ceec-4fde-ab4d-6b628230ed59",
"url_pageview": "http://10.20.212.217:2007/applyonline/bukarekening/form1?MerchantId=F90338EA-853B-4512-AE58-0E72BE2E88ED&ApplicantId=117f6c7e-ceec-4fde-ab4d6b628230ed59&VerificationId=cdec3c69-f549-4b91-bccf-25a3dad2de5a"
"application_id": null
}
Response (if ActivityCode = 02)
{
"verification_id": "cdec3c69-f549-4b91-bccf-25a3dad2de5a",
"applicant_id": "117f6c7e-ceec-4fde-ab4d-6b628230ed59",
"url_pageview": http://10.20.212.217:2007/applyonline/bukarekening/form1?MerchantId=F90338EA-853B-4512-AE58-0E72BE2E88ED&ApplicantId=117f6c7e-ceec-4fde-ab4d6b628230ed59&VerificationId=cdec3c69-f549-4b91-bccf-25a3dad2de5a,
"application_id": "06B440A2-72E7-47E1-B389-1EDFDC9A636D"
}
Virtual Account untuk Biller
1. SNAP Virtual Account Inquiry
This service is used to VA BillPresentment.
This feature is not yet available to be accessed via Sandbox.
Field | Params Type | Data Type | Length Type | Mandatory | Description |
---|---|---|---|---|---|
CHANNEL-ID | Header | String(5) | Y | Channel’ Identifier using WSID BCA Virtual Account (95231) | |
X-PARTNER-ID | Header | String(32) | Y | Partner ID using Company Code VA | |
X-EXTERNAL-ID | Header | String (36) | Y | Numeric String. Reference number that should be unique in the same day |
Payload:
Field | Data Type | Mandatory | Description |
---|---|---|---|
partnerServiceId | String (8) | Y | Derivative of XPARTNER-ID, similar to company code 8 digit left padding space “ “ |
customerNo | String (20) | Y | Unique number (up to 20 digits) |
virtualAccountNo | String (28) | Y | partnerServiceId (8 digit left padding space “ “) + customerNo (up to 20 digit) |
trxDateInit | Date (25) | N | BCA internal system datetime with timezone, which follows the ISO-8601 standard |
channelCode | Numeric (4) | N | Channel code based on ISO 18245 |
inquiryRequestId | String (128) | Y | Unique identifier for this inquiry. Generated by BCA. |
additionalInfo | Object | N | Optional. Additional Information for custom use. Refer to Appendix B for complete list of additionalInfo for Virtual Account |
Response:
Field | Data Type | Mandatory | Description |
---|---|---|---|
responseCode | String (7) | Y | Mandatory in BCA. Response code from Partner, refer to Appendix A for list of response code |
responseMessage | String (150) | Y | Mandatory in BCA. Response message from Partner, refer to Appendix A for list of response code |
virtualAccountData | Object | Y | |
inquiryStatus | String (2) | N | Mandatory in BCA. Status of inquiry, refer to Notes for status values |
inquiryReason | Object | N | Mandatory in BCA. Reason for inquiry Status multi language |
english | String (64) | N | Reason for inquiry Status in English |
indonesia | String (64) | N | Reason for inquiry Status in Bahasa |
partnerServiceId | String (8) | Y | Mandatory in BCA. Derivative of X-PARTNER-ID, similar to company code, 8 digit left padding space “ ” |
customerNo | String (20) | Y | Mandatory in BCA. Unique number (up to 20 digits). |
virtualAccountNo | String (28) | Y | Mandatory in BCA. partnerServiceId (8 digit left padding space “ ”) + customerNo (up to 20 digit) |
virtualAccountName | String (255) | Y | Mandatory in BCA. Customer name |
inquiryRequestId | String (128) | Y | Mandatory in BCA. From Inquiry Request |
totalAmount | Object | N | Mandatory in BCA. |
value | String (16.2) ISO 4217 |
Y | Transaction Amount. Total Amount with 2 decimal |
currency | String (3) | Y | Currency |
subCompany | String (5) | N | Mandatory in BCA. Partner's product code (sub company code). Mandatory for non-multibills transaction. |
billDetails | Array of Objects | N | Array with maximum 24 Objects |
billNo | String (18) | N | Customer bill number generated by Partner |
billDescription | Object | N | Bill Description |
english | String (18) | N | Bill Description in English |
indonesia | String (18) | N | Bill Description in Bahasa |
billSubCompany | String (5) | C | Bill sub company code |
billAmount | Object | N | Amount specific to bill number |
value | String (16.2) ISO 4217 |
Y | Transaction Amount |
currency | String (3) | Y | |
additionalInfo | Object | N | Optional. Additional information for custom use. Refer to Appendix B for complete list of additionalInfo for Virtual Account |
freeTexts | Array of Objects | N | Optional. Array with maximum 9 objects. freeTexts field in inquiry bill should not be greater than 5 |
english | String (32) | N | Will be shown in Channel |
indonesia | String (32) | N | Will be shown in Channel |
additionalInfo | Object | N | Optional. Additional information for custom use. Refer to Appendix B for complete list of additionalInfo for Virtual Account |
Note :
- The final status of inquiry response is not determined by responseCode and responseMessage.
- Status of inquiry will be defined in inquiryStatus and inquiryReason field to be displayed to channel's screen. This field may vary with these values:
00 = Success inquiry, detail bill returned
01 = Failed inquiry, partner must defined reason for this status in InquiryReason field. - BCA will continue to check the inquiryStatus and inquiryReason if the responseCode received is 2002400 and 2022400.
- If the response code is not either 2002400 or 2022400, BCA will on consider the response as failed transaction and will be rejected.
- If the inquiryStatus and inquiryReason field are empty, BCA will consider it a failed transaction and will be rejected.
- If virtualAccountName length > 30, channel will display first 30 characters.
- If any amount field value > 13.2 digit length, BCA will consider it a failed inquiry and error message will be displayed in channel.
- currency of totalAmount and billAmount must be the same. currency field may vary with these values: IDR, USD, SGD
- For multi bills transaction, totalAmount field value can be 0, but for non-multi bills transaction totalAmount field value should be total amount of all the detail bills provided.
- For non multi bils transaction with single settlement, billDetails is optional. If billDetails available then billSubCompany field in billDetails must match with subCompany field value.
- For multi bills and non multi bills transaction with multi settlements,
- billSubCompany & billAmount field is mandatory
- billSubCompany field value must be different for each bill number, used for multiple settlements needs. Product Name and Admin Fee from subCompany 00000 would be used and shown in channel.
- billNo and billDescription field value are defined by co-partner and will be displayed in BCA channel’s screen
- subCompany and billSubCompany value must be registered in BCA, else transaction will be rejected.
- freeTexts field defined by partner and will be displayed in channel's screen. This field must be defined in two languages, The occurences for freeTexts field in inquiry bill should not be greater than 5.
- feeAmount field will be ignored. feeAmount will refer to company profile data registered in BCA's system.
- virtualAccountTrxType will be ignored. will refer to company profile data (bill type: YV/NV/YF) registered in BCA's system.
- billDetails should not be greater than 5
- channelCode field may vary with these values based on ISO 18245:
- 6010 = Teller (Financial institutions - manual cash disbursements)
- 6011 = eBanking (Financial institutions - automated cash disbursements)
- inquiryRequestId is unique from BCA for each transaction.
- the usage of additional info is to be discussed with BCA first.
Expected Response from Partner.
Scenario | responseCode | responseMessage | inquiryStatus |
---|---|---|---|
Access Token Invalid | 4012401 | "Invalid Token (B2B)" | - |
Unauthorized . Signature | 4012400 | "Unauthorized. [Signature]" | - |
Unauthorized . stringToSign | 4012400 | "Unauthorized. [Signature]" | - |
Unauthorized . Unknown Client | 4012400 | "Unauthorized. [Unknown client]" | - |
Missing Mandatory Field {} …, etc | 4002402 | "Invalid Mandatory Field {........}" | 01 |
Invalid Field Format {} .., etc | 4002401 | "Invalid Field Format {........}" | 01 |
Cannot use the same X-EXTERNAL-ID | 4092400 | "Conflict" | 01 |
Input no Virtual Account Valid | 2002400 | "Success" | 01 |
Input no Virtual Account Valid sudah lunas | 4042414 | "Paid Bill" | 01 |
Input no Virtual Account Valid kadaluarsa | 4042419 | "Invalid Bill/Virtual Account" | 01 |
Input no Virtual Account tidak terdaftar | 4042412 | "Invalid Bill/Virtual Account [Reason]" | 01 |
Request Parsing Error | 4002400 | "Bad Request" | 01 |
Response Parsing Error | 4002400 | "Bad Request" | 01 |
curl –X POST https://copartners.com/openapi/v1.0/transfer-va/inquiry
Request
-H 'CHANNEL-ID':'95231'
-H 'X-PARTNER-ID': '12345'
-H 'X-EXTERNAL-ID': '123456789012345678901234567890123456'
-d '
{
"partnerServiceId": " 12345",
"customerNo": "123456789012345678",
"virtualAccountNo": " 12345123456789012345678",
"trxDateInit": "2022-02-12T17:29:57+07:00",
"channelCode": 6011,
"additionalInfo": {},
"inquiryRequestId": "202202110909311234500001136962"
}'
curl –X POST https://copartners.com/openapi/v1.0/transfer-va/inquiry
Response
Sample for single settlement (non multi bills) transaction:
{
"responseCode": "2002400",
"responseMessage": "Successful",
"virtualAccountData":
{
"inquiryStatus": "00",
"inquiryReason": {
"english": "Success",
"indonesia": "Sukses"
},
"partnerServiceId": " 12345",
"customerNo": "123456789012345678",
"virtualAccountNo": " 12345123456789012345678",
"virtualAccountName": "Jokul Doe",
"inquiryRequestId": "202202110909314440200001136962",
"totalAmount": {
"value": "100000.00",
"currency": "IDR"
},
"subCompany": "00000",
"billDetails": [
{
"billNo": "123456789012345678",
"billDescription": {
"english": "Maintenance",
"indonesia": "Pemeliharaan"
},
"billSubCompany": "00000",
"billAmount": {
"value": "100000.00",
"currency": "IDR"
}
}],
"freeTexts": [
{
"english": "Free text",
"indonesia": "Tulisan bebas"
}],
"virtualAccountTrxType": "C",
"feeAmount": {
"value": "",
"currency": ""
},
"additionalInfo": {
"additionalInfo1": {
"label": {
"indonesia": "Unit",
"english": "Unit"
},
"value": {
"indonesia": "10C",
"english": "10C"
}
},
"additionalInfo2": {
"label": {
"indonesia": "Bulan",
"english": "Month"
},
"value": {
"indonesia": "Januari",
"english": "January"
}
}
}
}
}
Sample for multi settlement (non multi bills/multi bills) transaction:
{
"responseCode": "2002400",
"responseMessage": "Successful",
"virtualAccountData":
{
"inquiryStatus": "00",
"inquiryReason":
{
"english": "Success",
"indonesia": "Sukses"
},
"partnerServiceId": " 12345",
"customerNo": "123456789012345678",
"virtualAccountNo": " 12345123456789012345678",
"virtualAccountName": "Jokul Doe",
"inquiryRequestId": "202202110909314440200001136962",
"totalAmount":
{
"value": "100000.00",
"currency": "IDR"
},
"subCompany": "",
"billDetails": [
{
"billNo": "123456789012345678",
"billDescription":
{
"english": "Maintenance",
"indonesia": "Pemeliharaan"
},
"billSubCompany": "00000",
"billAmount":
{
"value": "50000.00",
"currency": "IDR"
}
},
{
"billNo": "223456789012345678",
"billDescription":
{
"english": "Electricity",
"indonesia": "Listrik"
},
"billSubCompany": "00001",
"billAmount":
{
"value": "20000.00",
"currency": "IDR"
}
},
{
"billNo": "323456789012345678",
"billDescription": {
"english": "Water",
"indonesia": "Air"
},
"billSubCompany": "00002",
"billAmount": {
"value": "30000.00",
"currency": "IDR"
}
}
],
"freeTexts": [
{
"english": "Free text",
"indonesia": "Tulisan bebas"
}],
"virtualAccountTrxType": "C",
"feeAmount": {
"value": "",
"currency": ""
},
"additionalInfo": {
"additionalInfo1": {
"label": {
"indonesia": "Unit",
"english": "Unit"
},
"value": {
"indonesia": "10C",
"english": "10C"
}
},
"additionalInfo2": {
"label": {
"indonesia": "Bulan",
"english": "Month"
},
"value": {
"indonesia": "Januari",
"english": "January"
}
}
}
}
}
2. SNAP Virtual Account Inquiry Status
This service is used to VA Payment Status.
This feature is not yet available to be accessed via Sandbox.
Field | Params Type | Data Type | Mandatory | Description |
---|---|---|---|---|
CHANNEL-ID | Header | String(5) | Y | Channel’ Identifier using WSID Virtual Account (95231) |
X-PARTNER-ID | Header | String(32) | Y | Partner ID using Company Code VA |
X- EXTERNAL -ID | Header | String(36) | Y | Reference number that should be unique in the same day |
Payload:
Field | Data Type | Mandatory | Description |
---|---|---|---|
partnerServiceId | String (8) | Y | Derivative of X-PARTNER-ID, similar to company code, 8 digit left padding space “ “ |
customerNo | String (20) | Y | Unique number (up to 20 digits) |
virtualAccountNo | String (28) | Y | partnerServiceId (8 digit left padding space “ “) + customerNo (up to 20 digit) |
paymentRequestId | String (128) | N | Unique identifier from Payment generated by BCA. |
additionalInfo | Object | N | Optional. Additional Information for custom use. Refer to Appendix B for complete list of additionalInfo for Virtual Account |
Response:
Field | Data Type | Mandatory | Description |
---|---|---|---|
responseCode | String (7) | Y | Mandatory In BCA. Response code from Partner, refer to Appendix A for list of response code |
responseMessage | String (150) | Y | Mandatory In BCA. Response message from Partner, refer to Appendix A for list of response message |
virtualAccountData | Object | Y | |
paymentFlagReason | Object | N | Reason for Payment Status multi language |
english | String (200) | N | Reason for inquiry status in English |
indonesia | String (200) | N | Reason for inquiry status in Bahasa |
partnerServiceId | String (8) | Y | Derivative of XPARTNER-ID, similar to company code, 8 digit left padding space “ “ |
customerNo | String (20) | Y | Unique number (up to 20 digit) |
virtualAccountNo | String (28) | Y | partnerServiceId (8 digit left padding space “ “) + customerNo (up to 20 digit) |
inquiryRequestId | String (128) | Y | Unique identifier from Inquiry |
paymentRequestId | String (128) | C | Unique identifier for this Payment from BCA. Mandatory if payment happened. |
paidAmount | Object | N | |
value | String (16.2) ISO 4217 |
Y | Paid amount with 2 decimal |
currency | String (3) | Y | Currency |
totalAmount | Object | N | - |
value | String (16.2) ISO 4217 |
Y | Transaction Amount. Total Amount from Inquiry with 2 decimal |
currency | String (3) | Y | Currency |
transactionDate | Date (25) | N | Payment datetime when the payment happened |
referenceNo | String (15) | N | Payment auth code generated by BCA |
paymentFlagStatus | String (2) | N | Status for Payment Flag |
billDetails | Array of Objects | N | Array with maximum 24 Objects |
billNo | String (18) | N | Bill number from Partner |
billDescription | Object | N | Bill Description |
english | String (18) | N | Bill Description in English |
indonesia | String (18) | N | Bill Description in Bahasa |
billSubCompany | String (5) | N | Partner’s product code |
billAmount | Object | N | Nominal inputted by Customer with 2 decimal |
value | String (16.2) ISO 4217 | Y | Transaction Amount. Total Amount from Inquiry with 2 decimal |
currency | String (3) | Y | Currency |
additionalInfo | Object | N | Optional. Additional Information for customer use for each bill. Refer to Appendix B for complete list of additionalInfo for Virtual Account |
billReferenceNo | Numeric (15) | N | Bill auth code generated by BCA |
status | String (2) | N | Payment status for specific Bill |
reason | Object | N | Reason for Payment Status for specific Bill multi language |
english | String (64) | N | Reason for Payment Status for specific Bill in English |
indonesia | String (64) | N | Reason for Payment Status for specific Bill in Bahasa |
additionalInfo | Object | N | Optional. Additional Information for customer use for each bill. Refer to Appendix B for complete list of additionalInfo for Virtual Account |
Note :
- Inquiry payment status can only be requested if the payment flag transaction has been made.
- The available payment (transaction) status are D-day and D-1 transaction.
- The key for inquiry payment status can either be
- partnerServiceId + customerNo
- virtualAccountNo
- paymentRequestId
- If all keys are filled in, then the payment status will be enquired based on the paymentRequestID.
- If using partnerServiceId + customerNo or virtualAccountNo as the key, then the payment status will be enquired based on the most recent transaction using that partnerServiceId + customerNo or virtualAccountNo.
- The final status of payment flag is not determined by responseCode and responseMessage.
- Status for payment flag will be defined in paymentFlagStatus and paymentFlagReason field.
Here is the list of error codes that can be returned.
HTTP Code | Error Code | Error Message |
---|---|---|
400 | 4002600 | Bad Request |
400 | 4002601 | Invalid Field Format {field name} |
400 | 4002602 | Invalid Mandatory Field {field name} |
401 | 4012600 | Unauthorized. [Reason] |
401 | 4012601 | Invalid token (B2B) |
404 | 4042601 | Transaction Not Found |
500 | 5002600 | Internal Server Error |
504 | 5042600 | Timeout |
curl –X POST https://sandbox.bca.co.id/openapi/v1.0/transfer-va/status
Request
-H 'CHANNEL-ID':'95231'
-H 'X-PARTNER-ID': '12345’
-H 'X-EXTERNAL-ID': '123456789012345678901234567890123456’
-d '
{
"partnerServiceId":" 00012345",
"customerNo":123456789012345678,
"virtualAccountNo":" 00012345123456789012345678",
"paymentRequestId":"202202111031031234500001136962",
"additionalInfo":{}
}'
curl –X POST https://sandbox.bca.co.id/openapi/v1.0/transfer-va/status
Response
"Sample for single settlement (non multi bills) transaction:"
{
"responseCode": "2002600",
"responseMessage": "Success",
"virtualAccountData": {
"paymentFlagStatus": "00",
"paymentFlagReason": {
"indonesia": "BERHASIL",
"english": "SUCCESS"
},
"partnerServiceId": " 12345",
"customerNo": "123456789012345678",
"virtualAccountNo": " 12345123456789012345678",
"inquiryRequestId": "202202111031031234500001136962",
"paymentRequestId": "202202111031031234500001136962",
"paidAmount": {
"value": "100000.00",
"currency": "IDR"
},
"totalAmount": {
"value": "100000.00",
"currency": "IDR"
},
"transactionDate": "2022-02-11T10:16:04+07:00",
"referenceNo": "00113696201",
"billDetails": [
{
"billNo": "123456789012345678",
"billDescription": {
"english": "Maintenance",
"indonesia": "Pemeliharaan"
},
"billSubCompany": "00000",
"billAmount": {
"value": "100000.00",
"currency": "IDR"
},
"additionalInfo": {},
"billReferenceNo": "00113696201",
"status": "00",
"reason": {
"english": "Success",
"indonesia": "Sukses"
}
}
],
}
}
Sample for multi settlement (non multi bills/multi bills) transaction:
{
"responseCode": "2002600",
"responseMessage": "Success",
"virtualAccountData": {
"paymentFlagStatus": "00",
"paymentFlagReason": {
"indonesia": "BERHASIL",
"english": "SUCCESS"
},
"partnerServiceId": " 12345",
"customerNo": "123456789012345678",
"virtualAccountNo": " 12345123456789012345678",
"inquiryRequestId": "202202111031031234500001136962",
"paymentRequestId": "202202111031031234500001136962",
"paidAmount": {
"value": "100000.00",
"currency": "IDR"
},
"totalAmount": {
"value": "100000.00",
"currency": "IDR"
},
"transactionDate": "2022-02-11T10:16:04+07:00",
"referenceNo": "",
"billDetails": [
{
"billNo": "123456789012345678",
"billDescription": {
"english": "Maintenance",
"indonesia": "Pemeliharaan"
},
"billSubCompany": "00000",
"billAmount": {
"value": "50000.00",
"currency": "IDR"
},
"additionalInfo": {},
"billReferenceNo": "00113696201",
"status": "00",
"reason": {
"english": "Success",
"indonesia": "Sukses"
}
},
{
"billNo": "223456789012345678",
"billDescription": {
"english": "Electricity",
"indonesia": "Listrik"
},
"billSubCompany": "00001",
"billAmount": {
"value": "20000.00",
"currency": "IDR"
},
"additionalInfo": {},
"billReferenceNo": "00213696201",
"status": "00",
"reason": {
"english": "Success",
"indonesia": "Sukses"
}
},
{
"billNo": "323456789012345678",
"billDescription": {
"english": "Water",
"indonesia": "Air"
},
"billSubCompany": "00002",
"billAmount": {
"value": "30000.00",
"currency": "IDR"
},
"additionalInfo": {},
"billReferenceNo": "00313696201",
"status": "00",
"reason": {
"english": "Success",
"indonesia": "Sukses"
}
}
],
}
}
3. SNAP Virtual Account Payment
This service is used to VA Payment Flag.
This feature is not yet available to be accessed via Sandbox.
Field | Params Type | Data Type | Length Type | Mandatory | Description |
---|---|---|---|---|---|
CHANNEL-ID | Header | String(5) | Y | Channel’ Identifier using WSID BCA Virtual Account (95231) | |
X-PARTNER-ID | Header | String(32) | Y | Partner ID using Company Code VA | |
X-EXTERNAL-ID | Header | String (36) | Y | Numeric String. Reference number that should be unique in the same day |
Payload:
Field | Data Type | Mandatory | Description |
---|---|---|---|
partnerServiceId | String (8) | Y | Derivative of X-PARTNER-ID, similar to company code, 8 digit left padding space “ “ |
customerNo | String (20) | Y | Unique number (up to 20 digits) |
virtualAccountNo | String (28) | Y | partnerServiceId (8 digit left padding space “ “) + customerNo (up to 20 digit) |
virtualAccountName | String (255) | N | Customer name |
paymentRequestId | String (128) | Y | Unique identifier generated by BCA. If payment comes from the Inquiry process, this value must be the same with inquiryRequestId. |
channelCode | Numeric (4) | N | Channel code based on ISO 18245 |
hashedSourceAccountNo | String (32) | N | Optional. Source account number in hash |
sourceBankCode | String (3) | N | Optional. Source account bank code |
paidAmount | Object | Y | - |
value | String (16.2) ISO 4217 |
Y | Paid Amount with 2 decimal |
currency | String (3) | Y | Currency |
referenceNo | String (64) | N | Payment auth code generated by BCA |
flagAdvise | String (1) | N | Status is this a retry notification. (Default value: N) |
subCompany | String (5) | N | Sub Company code generated by Partner |
billDetails | Array of Objects | N | Array with maximum 24 Objects |
billNo | String (18) | N | From Inquiry Response |
billDescription | JSON Object | N | From Inquiry Response |
english | String (18) | N | From Inquiry Response |
indonesia | String (18) | N | From Inquiry Response |
billSubCompany | String (5) | N | From Inquiry Response |
billAmount | Objects | N | |
value | String (16.2) ISO 4217 | Y | Transaction Amount. From Inquiry Response |
currency | String (3) | Y | Currency |
billReferenceNo | Numeric (15) | N | From Inquiry Response |
additionalInfo | Object | N | Optional. Additional information for custom use. Refer to Appendix B for complete list of additionalInfo for Virtual Account |
Note :
- totalAmount field value will be same with totalAmount field value returned from partner when BCA do inquiry list of bils.
- paymentRequestID corresponds to inquiryRequestID for each transaction (one pair of inquiry and payment)
- paidAmount field value will be total amount paid by customer through BCA.
- For multi bills transaction, paidAmount field value might be different with totalAmount field value. For non multi bills transaction, paidAmount field value will be same with totalAmount field value.
- currency must be same for totalAmount, billAmount, and paidAmount. currency field may vary with these values: IDR, SGD, USD.
- For multi bills and non multi bills transaction with multi settlements,
- billSubCompany field is mandatory.
- billSubCompany field value must be different for each bill number and billReferenceNo field value will be different for each bill number. referenceNo and subCompany field value will be blank for multi settlement transaction. Transaction would be settled according to each billSubCompany field value.
- flagAdvice field may vary with these values: N= new request for payment flag; Y= advice request (retry flag) for payment flag.
- billDetails should not be more than 5. BCA will returns only bills that customer choose to pay in payment flag request to partner.
- channelCode field may vary with these values :
- 6010 = Teller (Financial institutions - manual cash disbursements)
- 6011 = eBanking (Financial institutions - automated cash disbursements)
Response:
Field | Data Type | Mandatory | Description |
---|---|---|---|
responseCode | String (7) | Y | Mandatory In BCA. Response code from Partner, refer to Appendix A for list of response code |
responseMessage | String (150) | Y | Mandatory in BCA. Response message from Partner, refer to Appendix A for list of response code |
virtualAccountData | Object | Y | |
paymentFlagReason | Object | N | Mandatory in BCA. Reason for Payment Status multi language |
english | String (200) | N | Reason for inquiry status in English |
indonesia | String (200) | N | Reason for inquiry status in Bahasa |
partnerServiceId | String (8) | Y | Mandatory in BCA. Derivative of XPARTNER-ID, similar to company code, 8 digit left padding space “ “ |
customerNo | String (20) | Y | Mandatory in BCA. Unique number (up to 20 digit) |
virtualAccountNo | String(28) | Y | Mandatory in BCA. partnerServiceId (8 digit left padding space “ “) + customerNo (up to 20 digit) |
virtualAccountName | String (255) | Y | Mandatory in BCA. Customer name |
paymentRequestId | String (128) | Y | Mandatory in BCA. Payment request id from request payload |
paidAmount | Object | N | Mandatory in BCA. |
value | String (16.2) ISO 4217 |
Y | Transaction Amount. From Payment Request |
currency | String (3) | Y | Currency |
totalAmount | Object | N | Mandatory in BCA. |
value | String (16.2) ISO 4217 |
Y | Transaction Amount. From Payment Request |
currency | String (3) | Y | Currency |
trxDateTime | Date (25) | N | Mandatory in BCA. From Payment Request |
referenceNo | String (15) | N | From Payment Request |
paymentFlagStatus | String (2) | N | Mandatory in BCA. Status for Payment Flag from Partner |
billDetails | Array of Objects | N | Array with maximum 24 Objects |
billerReferenceId | String (64) | N | From Inquiry Response |
billNo | String (18) | N | From Inquiry Response |
billDescription | Object | N | From Inquiry Response |
english | String (18) | N | From Inquiry Response |
indonesia | String (18) | N | From Inquiry Response |
billSubCompany | String (5) | N | From Inquiry Response |
billAmount | Object | N | From Inquiry Response |
value | String (16.2) ISO 4217 | Y | Transaction Amount. From Payment Request |
currency | String (3) | Y | Currency |
additionalInfo | Object | N | Additional Information for custom use in each bill. Refer to Appendix B for complete list of additionalInfo for Virtual Account |
status | String (2) | N | Payment status for specific Bill |
reason | Object | N | Reason for Payment Status for specific Bill multi language |
english | String (64) | N | Reason for Payment Status for specific Bill in English |
indonesia | String (64) | N | Reason for Payment Status for specific Bill in Bahasa |
freeTexts | Array of Objects | N | Optional. Array with maximum 9 Objects |
english | String (32) | N | Will be shown in Channel |
indonesia | String (32) | N | Will be shown in Channel |
additionalInfo | Object | N | Additional Information for custom use. Refer to Appendix B for complete list of additionalInfo for Virtual Account |
Note :
- The final status of payment flag response is not determined by responseCode and responseMessage.
- Status for payment flag will be defined in paymentFlagStatus and paymentFlagReason field to be displayed to channel's screen. This field may vary with these values:
00 = success payment flag
01 = Reject payment flag by partner, partner must defined reason for this status in paymentFlagReason field values in two languages.
02 = Timeout payment flag between switcher to partner. If company's reconciliation type are reversal or force settle, transaction with status 02 will be considered as success transaction. (payment flag status other than 00,01,02 will be considered as 01) - BCA will continue to check the paymentFlagStatus and paymentFlagReason field if the responseCode received is 2002500 and 2022500.
- If the response code is not either 2002500 or 2022500, BCA will consider the response as failed transaction and will be rejected.
- For responseCode, paymentFlagStatus and status inside billdetail, this is condition for timeout :
responseCode | paymentFlagStatus | status inside billdetail | Final Status |
---|---|---|---|
N | N | N | Timeout |
N | Y | Y | Timeout |
Y (Success) | N | N | Timeout |
Y (Failed) | N | N | Failed |
- For multi bills and non multi bills transaction with multi settlement, billSubCompany field value must be different for each bill number. paymentFlagStatus field shows the final status for all bills. Status and reason defined in billDetails must be the same for all bills, and also contain the same status and reason as paymentFlagStatus and paymentFlagReason field.
- If virtualAccountName length is greater than 30, then only first 30 character will be displayed on channel's screen
- totalAmount field value will be same with totalAmount field value returned from partner when BCA do inquiry list of bills.
- paymentRequestID is the same value with inquiryRequestID from BCA for each transaction.
- paidAmount field value will be total amount paid by customer through BCA.
- For multi bills transaction, paidAmount field value might be different with totalAmount field value. For non multi bills transaction, paidAmount field value will be same with totalAmount field value.
- currency must be same for totalAmount, billAmount, and paidAmount. currency field may vary with these values: IDR, SGD, USD.
- freeTexts field defined by partner and will be displayed in channel's screen. This field must be defined in two languages. The occurences of freeTexts field in payment flag should not be greater than 9
- If a system error occurs and causing BCA to send double flagging request with the same X-EXTERNAL-ID and paymentRequestId, then partner can send responseCode
"4042518" and responseMessage "Inconsistent Request", with paymentFlagStatus and paymentFlagReason according to the results of the first request - If BCA sends a flagging request with the same X-EXTERNAL-ID but a different paymentRequestId, then partner can send responseCode "4092500" and responseMessage "Conflict".
- The usage of additional info is to be discussed with BCA first.
Expected Response from Partner.
Scenario | responseCode | responseMessage | paymentFlagStatus |
---|---|---|---|
Access Token Invalid | 4012501 | "Invalid Token (B2B)" | - |
Unauthorized . Signature | 4012500 | "Unauthorized. [Signature]" | - |
Unauthorized . stringToSign | 4012500 | "Unauthorized. [Signature]" | - |
Unauthorized . Unknown Client | 4012500 | "Unauthorized. [Unknown client]" | - |
Missing Mandatory Field {} …, etc | 4002502 | "Invalid Mandatory Field {........}" | 01 |
Invalid Field Format {} .., etc | 4002501 | "Invalid Field Format {........}" | 01 |
Cannot use the same X-EXTERNAL-ID | 4092500 | "Conflict" | 01 |
Input no Virtual Account Valid | 2002500 | "Success" | 00 |
Input no Virtual Account Valid sudah lunas | 4042514 | "Paid Bill" | 01 |
Duplicate XEXTERNAL-ID and paymentRequestId | 4042518 | "Inconsistent Request" | 00/01 |
Input no Virtual Account Valid kadaluarsa | 4042519 | "Invalid Bill/Virtual Account" | 01 |
Input no Virtual Account tidak terdaftar | 4042512 | "Invalid Bill/Virtual Account [Reason]" | 01 |
Request Parsing Error | 4002500 | "Bad Request" | 01 |
Response Parsing Error | 4002500 | "Bad Request" | 01 |
curl –X POST https://copartners.com/openapi/v1.0/transfer-va/payment
Request
-H 'CHANNEL-ID':'95231'
-H 'X-PARTNER-ID': '12345'
-H 'X-EXTERNAL-ID': '123456789012345678901234567890123456'
-d '
{
"partnerServiceId": " 12345",
"customerNo": "123456789012345678",
"virtualAccountNo": " 12345123456789012345678",
"virtualAccountName": "Jokul Doe",
"paymentRequestId": "202202111031031234500001136962",
"channelCode": 6011,
"paidAmount": {
"value": "100000.00",
"currency": "IDR"
},
"referenceNo": "00113696201",
"flagAdvise": "N",
"subCompany": "00000",
"billDetails": [
{
"billNo": "123456789012345678",
"billDescription": {
"english": "Maintenance",
"indonesia": "Pemeliharaan"
},
"billSubCompany": "00000",
"billAmount": {
"value": "100000.00",
"currency": "IDR"
},
"additionalInfo": {},
"billReferenceNo": "00113696201"
}
],
"additionalInfo": {}
}'
Sample for multi settlement (non multi bills/multi bills) transaction:
-H 'CHANNEL-ID':'95231'
-H 'X-PARTNER-ID': '12345'
-H 'X-EXTERNAL-ID': '123456789012345678901234567890123456'
-d '
{
"partnerServiceId": " 12345",
"customerNo": "123456789012345678",
"virtualAccountNo": " 12345123456789012345678",
"virtualAccountName": "Jokul Doe",
"paymentRequestId": "202202111031031234500001136962",
"channelCode": 6011,
"hashedSourceAccountNo": "",
"sourceBankCode": "014",
"paidAmount": {
"value": "100000.00",
"currency": "IDR"
},
"cumulativePaymentAmount": null,
"paidBills": "",
"totalAmount": {
"value": "100000.00",
"currency": "IDR"
},
"trxDateTime": "2022-02-12T17:29:57+07:00",
"referenceNo": "",
"flagAdvise": "N",
"subCompany": "",
"billDetails": [
{
"billNo": "123456789012345678",
"billDescription": {
"english": "Maintenance",
"indonesia": "Pemeliharaan"
},
"billSubCompany": "00000",
"billAmount": {
"value": "50000.00",
"currency": "IDR"
},
"additionalInfo": {},
"billReferenceNo": "00113696201"
},
{
"billNo": "223456789012345678",
"billDescription": {
"english": "Electricity",
"indonesia": "Listrik"
},
"billSubCompany": "00001",
"billAmount": {
"value": "20000.00",
"currency": "IDR"
},
"additionalInfo": {},
"billReferenceNo": "00213696201"
},
{
"billNo": "323456789012345678",
"billDescription": {
"english": "Water",
"indonesia": "Air"
},
"billSubCompany": "00002",
"billAmount": {
"value": "30000.00",
"currency": "IDR"
},
"additionalInfo": {},
"billReferenceNo": "00313696201"
}
],
"additionalInfo": {}
}'
curl –X POST https://copartners.com/openapi/v1.0/transfer-va/payment
Response
{
"responseCode": "2002500",
"responseMessage": "Successful",
"virtualAccountData": {
"paymentFlagReason": {
"english": "Success",
"indonesia": "Sukses"
},
"partnerServiceId": " 12345",
"customerNo": "123456789012345678",
"virtualAccountName": "Jokul Doe",
"paymentRequestId": "202202111031031234500001136962",
"paidAmount": {
"value": "100000.00",
"currency": "IDR"
},
"totalAmount": {
"value": "100000.00",
"currency": "IDR"
},
"trxDateTime": "2022-02-12T17:29:57+07:00",
"referenceNo": "00113696201",
"paymentFlagStatus": "00",
"billDetails": [
{
"billerReferenceId": "00113696201",
"billNo": "123456789012345678",
"billDescription": {
"english": "Maintenance",
"indonesia": "Pemeliharaan"
},
"billSubCompany": "00000",
"billAmount": {
"value": "100000.00",
"currency": "IDR"
},
"additionalInfo": {},
"status": "00",
"reason": {
"english": "Success",
"indonesia": "Sukses"
}
}
],
}
"additionalInfo":
{
"additionalInfo1":
{
"label":
{
"indonesia": "Unit",
"english": "Unit"
},
"value":
{
"indonesia": "10C",
"english": "10C"
}
},
"additionalInfo2":
{
"label":
{
"indonesia": "Bulan",
"english": "Month"
},
"value":
{
"indonesia": "Januari",
"english": "January"
}
}
}
}
Sample for multi settlement (non multi bills/multi bills) transaction:
{
"responseCode": "2002500",
"responseMessage": "Successful",
"virtualAccountData": {
"paymentFlagReason": {
"english": "Success",
"indonesia": "Sukses"
},
"partnerServiceId": " 12345",
"virtualAccountNo": " 12345123456789012345678",
"virtualAccountName": "Jokul Doe",
"paymentRequestId": "202202111031031234500001136962",
"paidAmount": {
"value": "100000.00",
"currency": "IDR"
},
"totalAmount": {
"value": "100000.00",
"currency": "IDR"
},
"trxDateTime": "2022-02-12T17:29:57+07:00",
"referenceNo": "",
"paymentFlagStatus": "00",
"billDetails": [
{
"billerReferenceId": "00113696201",
"billNo": "123456789012345678",
"billDescription": {
"english": "Maintenance",
"indonesia": "Pemeliharaan"
},
"billSubCompany": "00000",
"billAmount": {
"value": "50000.00",
"currency": "IDR"
},
"additionalInfo": {},
"status": "00",
"reason": {
"english": "Success",
"indonesia": "Sukses"
}
},
{
"billerReferenceId": "00213696201",
"billNo": "223456789012345678",
"billDescription": {
"english": "Electricity",
"indonesia": "Listrik"
},
"billSubCompany": "00001",
"billAmount": {
"value": "20000.00",
"currency": "IDR"
},
"additionalInfo": {},
"status": "00",
"reason": {
"english": "Success",
"indonesia": "Sukses"
}
},
{
"billerReferenceId": "00313696201",
"billNo": "323456789012345678",
"billDescription": {
"english": "Water",
"indonesia": "Air"
},
"billSubCompany": "00002",
"billAmount": {
"value": "30000.00",
"currency": "IDR"
},
"additionalInfo": {},
"status": "00",
"reason": {
"english": "Success",
"indonesia": "Sukses"
}
}
],
}
"additionalInfo":
{
"additionalInfo1":
{
"label":
{
"indonesia": "Unit",
"english": "Unit"
},
"value":
{
"indonesia": "10C",
"english": "10C"
}
},
"additionalInfo2":
{
"label":
{
"indonesia": "Bulan",
"english": "Month"
},
"value":
{
"indonesia": "Januari",
"english": "January"
}
}
}
}
Transfer ke Rekening Virtual Account BCA
1. SNAP Virtual Account Inquiry Payment to VA from Intrabank
This service is used to VA transfer BillPresentment.
Field | Params Type | Data Type | Length Type | Mandatory | Description |
---|---|---|---|---|---|
CHANNEL-ID | Header | String(5) | Y | Channel’ Identifier using WSID KlikBCA Bisnis (95051) | |
X-PARTNER-ID | Header | String(32) | Y | 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)). |
Response:
Field | Data Type | Length Type | Mandatory | Format | Description |
---|---|---|---|---|---|
responseCode | String (7) | Fixed | Y | - | Response code |
responseMessage | String (150) | Max | Y | - | Response message description |
virtualAccountData | Object | Y | |||
virtualAccountNo | String (28) | Max | Y | Alphanumeric | partnerServiceId (8 digit left padding space) + customerNo (up to 20 digits) |
virtualAccountName | String (255) | Max | Y | Alphanumeric | Customer name |
totalAmount | Array of Objects | N | |||
value | String (16.2) | Max | Y | Send by BCA. Total amount with 2 decimal In BCA, totalAmount max length is 13.2 digits. |
|
currency | String (3) | Fixed | Y | ISO-4217 | Send by BCA. Currency of amount based on ISO 4217 |
billDetails | Array of Objects | N | Array with maximum 24 Objects | ||
billDescription | Object | N | Send by BCA. Bill Description |
||
english | String (18) | Max | N | Alphanumeric | Send by BCA. Bill Description in English |
indonesia | String (18) | Max | N | Alphanumeric | Send by BCA Bill Description in Bahasa |
billAmount | Array of Objects | N | |||
value | String (16.2) | N | Send by BCA. Transaction amount. Nominal inputted by Customer with 2 decimal In BCA, billAmount max length is 13.2 digits. |
||
currency | String (3) | Max | Y | ISO-4217 | Currency |
additionalInfo | String | Max | N | Alphanumeric | Additional information for custom use for each bill |
freeTexts | String | N | Send by BCA. Array with maximum 25 objects |
||
english | String (32) | Max | N | Alphanumeric | Will be shown in Channel |
indonesia | String (32) | Max | N | Alphanumeric | Will be shown in Channel |
virtualAccountTrxType | String (1) | Fixed | N | Type of Virtual Account that send by BCA is the highlighted transaction type. 1. Closed Payment (C): Tagihan muncul, harus dibayar sesuai tagihan (Fixed Bill) 2. Open Payment (O): Tagihan tidak muncul (No Bill) 3. Partial (I): Sisa tagihan 4. Minimum (M): Dibayar hanya sekali dengan nominal minimum namun tidak boleh lebih kecil dari tagihan. 5. Maximum (L): Dibayar hanya sekali, tidak boleh lebih besar dari tagihan, dan tagihan muncul 6. Open Minimum (N): Dibayar berkali2 dengan nominal minimum namun tidak boleh lebih kecil dari tagihan dan muncul tagihannya. 7. Open Maximum (X): Dibayar berkali2 dengan nominal maksimum (cumulative) namun tidak boleh lebih besar dari tagihan dan muncul tagihannya. 8. Bill Variable (V): Bisa dibayar sekail, bisa lebih besar / lebih kecil dari tagihan, dan tagihan muncul. 9. Multi Bill Variable (W) |
|
feeAmount | Array of Object | N | |||
value | String (16.2) | Max | Y | Send by BCA. Nominal inputted by customer with 2 decimal. In BCA, totalAmount max length is 13.2 digits. |
|
currency | String (3) | Fixed | Y | ISO-4217 | Currency |
productName | String (30) | Max | N | Alphanumeric | Send by BCA. Product category |
Here is the list of error codes that can be returned.
HTTP Code | Error Code | Error Message |
---|---|---|
400 | 4003200 | Bad request |
400 | 4003201 | Invalid Field Format {field name} |
400 | 4003202 | Invalid Mandatory Field {field name} |
401 | 4013200 | Invalid token (B2B) |
401 | 4013201 | Unauthorized. [Reason] |
403 | 4033201 | Feature Not Allowed |
404 | 4043212 | Invalid Bill |
404 | 4043214 | Paid Bills |
409 | 4093211 | Conflict |
429 | 4293200 | Too Many Requests |
500 | 5003200 | General Error |
500 | 5003200 | Internal Server Error |
504 | 5043200 | Timeout |
curl –X POST https://sandbox.bca.co.id/openapi/v1.0/transfer-va/inquiry-intrabank
Request
-H 'CHANNEL-ID':'95051'
-H 'X-PARTNER-ID': '1234567890'
-H 'X-EXTERNAL-ID': '41807553358950093184162180797837'
-d '
{
"virtualAccountNo" : " 0008899912345678901234567890",
"amount" : {
"value" : "50000.00",
"currency" : "IDR"
}
}'
curl –X POST https://sandbox.bca.co.id/openapi/v1.0/transfer-va/inquiry-intrabank
Response
{
"responseCode": "2003200",
"responseMessage": "Successful",
"virtualAccountData": {
"virtualAccountNo": "0008889912345678901234567890",
"virtualAccountName": "Jokul Doe",
"totalAmount": {
"value" : "88000.00",
"currency" : "IDR"
},
"billDetails": [
{
"billDescription": {
"english": "Maintenance",
"indonesian": "Pemeliharaan"
},
"billAmount": {
"value" : "88000.00",
"currency" : "IDR"
}
}
],
freeTexts": [
{
"english": "Free text",
"indonesia": "Tulisan bebas"
}
],
"virtualAccountTrxType": "C",
"feeAmount": {
"value" : "1000.00",
"currency" : "IDR"
},
"productName": "OVO"
}
}
2. SNAP Virtual Account Notification Payment to VA from Intrabank
This service is used to Notification VA transfer.
Field | Params Type | Data Type | Mandatory | Format | Description |
---|---|---|---|---|---|
CHANNEL-ID | Header | String(5) | Y | 95051 | Channel’ Identifier using WSID KlikBCA Bisnis (95051) |
X-PARTNER-ID | Header | String(32) | Y | - | 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 |
Response:
Field | Data Type | Length Type | Mandatory | Format | Description |
---|---|---|---|---|---|
responseCode | String (7) | Fixed | Y | - | Response code |
responseMessage | String (150) | Max | Y | - | Response description |
virtualAccountData | Object | Y | |||
virtualAccountNo | String (28) | Max | Y | Alphanumeric | Mandatory in BCA according to request input. partnerServiceId (8 digit left padding space) + customerNo (up to 20 digits). In BCA, virtualAccountNo max length is 26 (partnerServiceId (8 digits) + customerNo (18 digits)). |
partnerReferenceNo | String (128) | Max | Y | - | Mandatory in BCA according to request input. From Payment request |
The following structure should be returned only when not-success with additional related HTTP status of the response if applicable.
The copartners define the responseCode by themselves. For the multi-languageresponseMessage, it allowed to use same value if multi-language are not possible
{ "responseCode" : "Error Code", "responseMessage" : "Error Message", "virtualAccountData": { "virtualAccountNo": "", "partnerReferenceNo": "" } } |
curl –X POST https://copartners.com/openapi/v1.0/transfer-va/notify-payment-intrabank
Request
-H 'CHANNEL-ID':'95051'
-H 'X-PARTNER-ID': 'KBCABCINDO'
-H 'X-EXTERNAL-ID': '41807553358950093184162180797837'
-d '
{
"virtualAccountNo": " 8889912345678901234567890",
"partnerReferenceNo": "12345678",
"trxDateTime": "2020-12-21T10:30:24+07:00",
"paymentStatus": "Success",
"paymentFlagReason": {
"english": "Success",
"indonesia": "Sukses"
}
}'
curl –X POST https://copartners.com/openapi/v1.0/transfer-va/notify-payment-intrabank
Response
{
"responseCode": 2003400,
"responseMessage": "Successful",
"virtualAccountData": {
"virtualAccountNo": " 8889912345678901234567890",
"partnerReferenceNo": "12345678"
}
}
3. SNAP Virtual Account Payment to VA from Intrabank
This service is used to VA transfer.
Field | Params Type | Data Type | Length Type | Mandatory | Format | Description |
---|---|---|---|---|---|---|
CHANNEL-ID | Header | String(5) | Fixed | Y | 95051 | Channel’ Identifier using WSID KlikBCA Bisnis (95051) |
X-PARTNER-ID | Header | String(32) | Max | Y | 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 |
Response:
Field | Data Type | Length Type | Mandatory | Format | Description |
---|---|---|---|---|---|
responseCode | String (7) | Fixed | Y | - | Response code |
responseMessage | String (150) | Max | Y | - | Response message description |
virtualAccountData | Object | Y | |||
virtualAccountNo | String (28) | Max | Y | Alphanumeric | partnerServiceId (8 digit left padding space) + customerNo (up to 20 digits) |
virtualAccountName | String (255) | Max | Y | Alphanumeric | Customer name |
virtualAccountEmail | String (255) | Max | N | Customer email | |
sourceAccountNo | String (32) | Max | N | - | Source account number |
partnerReferenceNo | String (128) | Max | Y | - | From Payment request |
referenceNo | String (128) | Max | N | Numeric | Generated by PJP |
paidAmount | Object | N | - | ||
value | String (16.2) | Max | Y | Send by BCA according to the request input. From Payment request with max length (13.2). |
|
currency | String (3) | Fixed | Y | ISO-4217 | Send by BCA according to the request input. Currency from Payment request. |
paidAmount | Object | N | |||
value | String (16.2) | Max | Y | Send by BCA according to the request input. From Payment request with max length (13.2). |
|
currency | String (3) | Fixed | Y | ISO-4217 | Send by BCA. Currency |
trxDateTime | Date (25) | Max | N | From Payment Request | |
billDetails | Array of Objects | N | Array with maximum 24 Objects | ||
billDescription | JSON Object | N | Bill Description | ||
english | String (18) | Max | N | Alphanumeric | Bill Description in English |
indonesia | String (18) | Max | N | Alphanumeric | Bill Description in Bahasa |
billAmount | Array of Objects | N | |||
value | String (16.2) | N | Send by BCA. Nominal inputted by Customer with 2 decimal In BCA, billAmount max length is (13.2) digits. |
||
currency | String (3) | Max | Y | ISO-4217 | Currency |
freeTexts | Array of Objects | N | - | From Inquiry response | |
english | String (32) | Max | N | Alphanumeric | From Inquiry response |
indonesia | String (32) | Max | N | Alphanumeric | From Inquiry response |
feeAmount | Object | N | |||
value | String (16.2) | Max | Y | Send by BCA. Nominal inputted by customer with 2 decimal. In BCA, totalAmount max length is 13.2 digits. |
|
currency | String (3) | Fixed | Y | ISO-4217 | Send by BCA. Currency |
productName | String (30) | Max | N | Alphanumeric | Send by BCA. Product category |
Here is the list of error codes that can be returned.
HTTP Code | Error Code | Error Message |
---|---|---|
400 | 4003300 | Bad request |
400 | 4003301 | Invalid Field Format {field name} |
400 | 4003302 | Invalid Mandatory Field {field name} |
401 | 4013300 | Unauthorized. [Reason] |
401 | 4013301 | Invalid token (B2B) |
403 | 4033301 | Feature Not Allowed |
403 | 4033302 | Exceeds Transaction Amount Limit |
403 | 4033304 | Activity Count Limit Exceeded |
404 | 4043312 | Invalid Bill |
404 | 4043314 | Paid Bills |
409 | 4093311 | Conflict |
429 | 4293300 | Too Many Requests |
500 | 5003301 | Internal Server Error |
500 | 5003300 | General Error |
504 | 5043300 | Timeout |
curl –X POST https://sandbox.bca.co.id/openapi/v1.0/transfer-va/payment-intrabank
Request
-H 'CHANNEL-ID':'95051'
-H 'X-PARTNER-ID': 'KBCABCINDO'
-H 'X-EXTERNAL-ID': '41807553358950093184162180797837'
-d '
{
"virtualAccountNo": " 00088999123456789012345678900008899912345678901234567890",
"virtualAccountEmail": "john@email.com",
"sourceAccountNo": "1234567890",
"partnerReferenceNo": "12345678",
"paidAmount": {
"value": "50000.00",
"currency": "IDR"
}
"trxDateTime": "2020-12-21T10:30:24+07:00"
}'
curl –X POST https://sandbox.bca.co.id/openapi/v1.0/transfer-va/payment-intrabank
Response
{
"responseCode": 2023300,
"responseMessage": "Request In Progress",
"virtualAccountData":
{
"virtualAccountNo": "0008889912345678901234567890",
"virtualAccountName": "Jokul Doe",
"virtualAccountEmail": "john@email.com",
"sourceAccountNo": "1234567890",
"partnerReferenceNo": "12345678",
"referenceNo": "12345678901234",
"paidAmount":
{
"value": "55000.00",
"currency": "IDR"
},
"totalAmount":
{
"value": "55000.00",
"currency": "IDR"
},
"trxDateTime": "2020-12-21T10:30:24+07:00",
"billDetails": [
{
"billDescription":
{
"english": "Maintenance",
"indonesia": "Pemeliharaan"
},
"billAmount": [
{
"value": "55000.00",
"currency": "IDR"
}]
}],
"freeTexts": [
{
"english": "Free text",
"Indonesia": "Tulisan bebas"
}
],
"feeAmount":
{
"value": "5000.00",
"currency": "IDR"
},
"productName": "OVO"
}
}
QRIS MPM
1. SNAP QR MPM Generate QR
This service is used to generate QRIS.
Field | Params Type | Data Type | Length Type | Mandatory | Description |
---|---|---|---|---|---|
CHANNEL-ID | Header | String(5) | Fixed | Y | Channel’s identifier using EDC’s WSID (95251) |
X-PARTNER-ID | Header | String(36) | Max | Y | Length data in BCA = 15 Unique ID for a partner - Merchant Reguler: MerchantID (9) - Merchant Partnership: PartnerName (15) |
Payload:
Field | Data Type | Length Type | Mandatory | Format | Description |
---|---|---|---|---|---|
partnerReferenceNo | String(64) | Max | N | Alphanumeric | Mandatory in BCA. Transaction identifier on service from partner |
amount | Object | N | Mandatory in BCA. Net amount of the (exclude convenience fee) |
||
value | String (16.2) |
Max | Y | Numeric 10000.00 | Length data in BCA = 13.2 BCA will send response amount with format value Numeric (13.2) Example : IDR 10.000,- will be placed with 10000.00 |
currency | String (3) |
Fixed | Y | ISO 4217 IDR |
Currency code |
merchantId |
String (64) |
Max | N | Numeric | Mandatory in BCA. Length in BCA data = 9 Merchant ID from BCA - Merchant direct : merchantID - Merchant facilitator : merchantID - Merchant aggregator : merchantID partner aggregator |
subMerchantId |
String (32) |
Max | N | Alphanumeric | Conditional in BCA submerchantID for Merchant partner aggregator only |
terminalId |
String (16) |
Max | N | Alphanumeric | Mandatory in BCA Terminal ID Length data in BCA = 8 Can be : - TID BCA (merchant direct) - TID non BCA (merchant aggregator/facilitator) |
validityPeriod | String (25) | Max | N | 2009-07-03T12:08:56 +07:00 | Optional in BCA The time when the QRIS valid Minimal : created time + 5 mins Maximal : created time + 120 mins If blank, default expired time : 60 mins |
additionalInfo |
Object | N | Additional Information |
||
convenienceFee | String (10.2) |
Max | N | Numeric | Convenience fee or tips |
partnerMerchantType | String (4) |
Max | N | Alphanumeric | Conditional in BCA for Merchant partner only |
terminalLocationName | String (25) |
Max | N | Alphanumeric | Conditional in BCA Merchant name for Merchant partner aggregator only |
Response:
Field | DataType | Length Type | Mandatory | Format | Description |
---|---|---|---|---|---|
responseCode |
String(7) | Fixed | Y | AAABBCC |
Error code to identify transaction status (success or failed) Format: AAAABBCC AAA : HTTP Code BB : Service Code CC : Case Code Service Code Generate QRIS : 47 Example : 2004700 |
responseMessage |
String (150) |
Max | Y | Alphanumeric | Error message in English Example : successful |
referenceNo | String (64) |
Max | N | Alphanumeric | Conditional in BCA length data in BCA : 36 Transaction identifier on service provider system (generate by QR server) #created if request generate QR from merchant is valid |
partnerReferenceNo |
String (64) | N | Alphanumeric | Transaction identifier on service from partner |
|
qrImage |
String | Max | N | Alphanumeric | Length = unlimited Encode string (Base64) from QR image QR String MPM #created if generate QR Success only |
merchantName |
String (25) |
Max | N | Alphanumeric | Mandatory in BCA Merchant name for print receipt (outlet name) |
terminalId |
String (8) |
N |
Alphanumeric |
Mandatory in BCA Length data in BCA = 8 terminalId BCA/non BCA |
HTTP Code | Error Code | Error Message |
---|---|---|
400 | 4004700 | Bad request |
400 | 4004701 | Invalid Field Format {field name} |
400 | 4004702 | Invalid Mandatory Field {field name} |
401 | 4014700 | Unauthorized. [Reason] |
401 | 4014701 | Invalid token (B2B) |
404 | 4044708 | Invalid Merchant |
404 | 4044701 | Transaction Not Found |
403 | 4034706 | Feature Not Allowed At This Time |
404 | 4044718 | Inconsistent Request [X-PARTNER-ID & merchantID not match] |
409 | 4094700 | Conflict X-EXTERNAL-ID |
409 | 4094701 | Duplicate partnerReferenceNo |
500 | 5004700 | General Error |
500 | 5004701 | Internal Server Error |
504 | 5044700 | Timeout |
curl –X POST https://sandbox.bca.co.id/openapi/v1.0/qr/qr-mpm-generate
Request
-H 'CHANNEL-ID':'95251'
-H 'X-PARTNER-ID': '1234567890'
-d '
{
"partnerReferenceNo": "2020102900000000000001",
"amount": {
"value": "100000.00",
"currency": "IDR"
},
"merchantId": "23489182303312",
"subMerchantId": "23489182303312",
"storeId": null,
"terminalId": "213141251124",
"validityPeriod": "2022-04-08T10:10:10+07:00",
"additionalInfo": {
"convenienceFee": "0.00",
"partnerMerchantType": "SA",
"terminalLocationName": "Bakso Malang"
}
}'
curl –X POST https://sandbox.bca.co.id/openapi/v1.0/qr/qr-mpm-generate
Response
{
"responseCode": "2004700",
"responseMessage": "Request has been processed successfully",
"referenceNo": "43057a74-e179-49ed-b119-b004a3d522ec",
"partnerReferenceNo": "2020102900000000000001"
"qrImage":
"iVBORw0KGgoAAAANSUhEUgAAASwAAAF8CAYAAAB184aCAAAW2klEQVR42u3dv67tRhUH4CN4FEq6pKJJkS
41kXgboE2Xt0DwGCmSBsEDpE9xlSJVqKIDc9FCw8je2/aeGc/Y30+ycnPO/uttf2fN2mP77f0/+dfPP1ssF
svQS8pb+sePHz5YIRaLZdgljHrL9RIRGTHhFLBEBFgiIsASEWCJiABLRARYIgIsERFgiYgAS0SAJSICLBER
YIkIsEREgCUi7x9PnZKW2DEFWCLD7ogJq++++PLdvggskWnACrQEWCJDJ2H1/aefQwtYInPskD989fX/Ki0
BlsiwSVjFsrfSSveJpj2wRKTpjpjyyzfffkQqRyv9N7/No+Fk3BZYItJlh4zhYOCVo/UMrKsPI4ElMihaCa
pA66dPPlscHsb/J9Ditlfel28BVv6+4t9XH+vLvMnxydGKSmsJrbwiW0MNWAPnj3/68/uvfv3r99/89ncf/
7u0iIy4Q8a3hAmghFSJVvr32nAwel/llZKBN9VIfK8BK/x+XbS+rsbTE74AFrGmT1kdaL7
//8g//9/P0/2lJFenf//HPxY0kv/+zyjXfjuKx976+pdfxSsUQr+PZfc/eB+IQnbSO07/zuVhlpZX/PJarz
5K/BVjRz4ol9bWWfv5oyR/31WXtsWL913yOR6977XexfvI+SHmbRzt//vOt/cLAqnx9Ca6jw/u117FUeYyy
/cfryPtYecO9HBpGz6oE62qV1a3AKhvvo4LV4jnynT7WRwAUlU9+n1hXS9jlaMT2kq/DfBhSfuFRru+y+l1
63nJdpNuk58h/Fqdk2bOO0/su31P+sxEq87xyioOiS6xiKauvqzbcLw9WDCuWqoM7gRXvcwmC/N/5Trt22y
UIS5iWHi8qqHTbJZziscr3kD92+nfaRmN4l6OV3+bZ+4rhb37buE362SithLVJpOVSonb13t7lK6wRwVoaZ
q39/FWwAotyiBSVZnnfsn9UDlmXIIt1WVZze4at8VpzYMrHS78rK+ZYZ9H3KcFaqyKXqq6RkkMVUxZyqMom
fDlxVIU1MV5LYO25z9Gm7FrlsBesR3/1t7ympceMybPljl32i8r3kHb4tA7X+k5ltVNWWIHSsx5Wuu3S+ss
fr3zdUW2tvY74fVlhrQ1Jz0zZx8qBWlryCacBXNwfWDcFa2/Wduq9Q8ItTedHn1/a8cvKIh5zqdoqH6uEI+
6bT9ANVNd6SnlFG8O7RyiWQ9p43qUvK0qwSoyXqqmlIeFo2TIkzKutvAoLtIB1EbCWNv5nmDyaOb+0LN3+U
YVVa9j57LOM13X0EKVa20qrbe6Vxx1pP0ifT47Powprqa812vsBVgWw8r5Iz4Z4r6a7zLljRspJoc+WpeMN
gXUhsPJhDLBk1B310ZAwx+rq68GQsOhntB6uPXqOFt8SjjTcOqtKmeG9lftg/u9nw8GrNdeBtQBWavQmtNI
Sc3Mi8fNYHj3WEhjpsdP6TP+NyY3x72cVVvnca8tSQ38NrHTbWF49tU66/6iHPcV7jI07
//+tiW8Qa72eo7P0Y7spK6ul6Qw5cOWXFrGtp5/NfkIA3xI++Au7tD6ezZxemjaw9jw1qqItYK0dWvPKTvh
Kw75l4rOIuWRl5bxnndaouPZ8tvmRAzF1JMcqoIoGfPxBLCfjxv/HvLQAa89xncAaCKyY37O07K2w8tuvTU
dYWq+PwIpqLyq
//ODk/GePJr4GLPls/3waw9JUgzi0Jp+RHvOt8m8V84Og8zli+dSJeK58R8only4dppM/b1Qm5W3i9/G45S
TX/FvZfKpEDm1ZZZc/y19zer/le8q/rFk7ZrWcOLsl+TpfmjQalVTcbum+8VnlaOXvo1blCKyOYB1piD+a1
/MMrbW/aq37ZDFsjMeMsyCUc5rKQ1eWpmQsTQLNf54eNyaExuPlw9Zy540dc+l54/HiNjmWS69nDayluVb5
8+aPl8/DerQuypn4W9/TVrDS/cvTxiwdYRDz2OJ3OVA5WHE7YF0YrKXqZwtYe9Dq0XQvwSorv7U5YuW/y4O
kyyFhPF753vOKrjzrwtrhNWWlWSL2DIMclmdD97x6evT+8/eRg5wP4Zbe0x6w4rXEcz1qTQQ8AVs+LMz/ne
MFLGA93BDXJpGeAVY+E3wJ1zgPVg5TPvN9Dax8580xyQ9/KRHPh2b5ELIEKx4jXtdesJaeN15zDm78f/wsH
/7mz5FXjUtgxetdu/9WsGKIWw7t8jNhlBVUOfzLYYrPKH+8mffzW4D16Nu0veeqWvoruuc5c7SWUFw6rGXv
kp8+J6+wlr4hWquwtoAV6yJ+X1Yw+fPFcGfr8+brOh92PgOrPMRmCY+8Ystfc3l40lLFnD9HgLf2+K9UWLF
zxjA2r7RyoGLJvwApK6m8NwisC2apyplx3eRgnfnHYulsEaN93iM8RglKDlb++M8O1M7BKoeMwLogVo8qrD
M36KNgbX3uR7crpzBsPdVwPpR65fl7rr+962tp3zl6Guf8m8L8IO2ygloDKz1vCVY5jNTDukHfa7YPNDZS5
7WfKzHMzOGKvlZ8rtFHWwN0bbJsPs0FWBcHa9R186yfNfsGerfKfs9trnzBVGCJXBCxO64TYImADlgiAiBg
iQiwgCUiwBIRAZaIAEtEBFgiIsASEWCJiABLRARYIgIsERFgiYgAS0SAJSICLBERYIkIsEREgCUiAiwRAZa
ICLBERIAlIsASEQHW3fP29rZpeXa/R4999HePbvPq+936WgRYMjlYe1F7BavamABLgHVBwPb+fisER6qumq
CcARYQgSUn7Fxbh4hrj1XzsYElwJLDfadnQL3S79qz028dzu65z6Pbvjq8FmDJYGDtgaAFWM+qvKNfNGx5v
8AClgDr8Ps52ms7ehtDQmCJIeHhYeGrYO19bGABSyYEq/Zj7xkOAkuAdWOwWkxrODKf68hrqDkk3Po6gTUp
WH/569+slYnB2rtTPmtw197ha/eitvwMWBcF68cPH96/++LL9x+++vr/qq34twpsDrAeDY9qAPTKN2t7hm1
r/bUa3xJuuZ9MAtZPn3z28b+/fPOtNTQpWGs7fq1+2Cs79xpGW25Tax5W7fckJw0JAyxoichUYAVahoIiMv
SQsERLpSUiw1dYsXz/6efQEpHxKyxoichUFVaOlp6WiEwBlkpLRKYYEkJLRKarsJbQMkwUkWErrByttUN5R
ESGAitHS0Rk2CFhuZSVlojIcBVWiZaIyBRgLR1/qOoSkeGGhEtowUpEhq6w9LREZKoKy+lpRGQ6sMyKF5Ep
hoRrB02ruERk2ArL8FBEpgIrVViGhyIyxZBQT0tEphoSOtODiExXYeVopecUEekCVqqS0v1eWVRYItJlSJh
XSPm0hWcIQUpEuldYR4d0Do4WkVMrLBGRIcGKeVXAEpHLDwl75e3trely5mt+dL8az3308feso63vr/V6P/
rcLbabGbdZQ0JgAQtYwAIWsIAFLEPCCcDq8Zg1NvoaO9ks+NeArgUgvbebUZ5bhQUsYAELWCosYAELWMACF
rCABSxDwvHAGrW53eL9nLnR1/gMtkJXA4k9n3/rpvtI26wKC1jAAhawgAUsYAHLkHDCQ3N6f/g95+vU6m/V
eM21n/soKC124hafCbBUWMACFrBUWCosYAELWMACFrCABSxDwlE+/Bo7RAtIWzSwezaiH922FfjAmrzCAha
wgAUsFRawgAUsYAFrrENzep+iZpR+UOv7nX3KlRrP4dAcQ0JgAQtYKixgAQtYwAIWsIAFLGDde0jY43SztU
8vc+bvakDd+3dXW89OkXzjCgtYwAKWme7AAhawgGVIeOW02InP7K20fl1nnl6mxalhxJAQWMAC1p3Acql6Y
AELWCosARawgAWs13aIGo313k3Q1lcPPtpQ7n0sYe3XXAv72nPcWvzOkBBYwAIWsFRYwAIWsIB10x5Wjw+4
9c5fA7PWPZgeO3jL991jjl6Ls52ahwUsYAELWCosYAELWMBSYXXfyVrs/D3P0NkCrNavq0U/rda20fN1tfh
8gAUsYAELWIaEwAIWsFRYwAIWsIAFrPGa7j0vsnn2fKcj66XWDlFjblKNpnuP+U49zyTb+4+NISGwgAUsYP
WosGY8WwOwgAUsFdZlkKq90fS+KGntnb/H3LHWn/eZ/c0zD79xaA6wgAUsYBkSAgtYwAKWCgtYwAKWCus6Z
xzteZqQHjtZ62MQe5/ttDWCrY/na7EuW78uQ0JgAQtYwDIkBBawgKXCchGKLn2kGv2GWpCeeTHOMw97aT2n
qfUpa+5y8VRgAQtYwDIkBBawgAUsFRawgAUsYL27ak43lHrstDXAOrNJ3fpYwh7rsnbD/+j6ukXTHVjAAha
wDAmBBSxgAUuFVQ+D1jtZj/fWugfXAsSep/Fp0Yuq8V5bbJdXjYOfgQUsYAELWMACFrAMCYEFLGABy8HPdZ
rIszdWz7zyc++m+KhXVGr9ZQ2wgAUsYAHLkBBYwAIWsCpUWHc642jrw0fORnbUq+bU7iP2wL/FYTW9L8iqw
gIWsIAFLGABC1jAcrYGYAELWMBSYc0D26ggzn6K5Baot25gt77ado/XCSxgAQtYwDIkBBawgAUsTfcuZ7ds
jeVIc6FqH+7Tu2fZAv+ef0hdSPVmBz8DC1jAMiQEFrCABSxDQmABC1jAuu3Bzy0+4DPnWvU8Pu0Kp5cZZd2
2+GN21Qa8aQ3AAhawgAUsYAELWIaEL2wkPR6z55k9e181pwV0tT+Dsw/NqfFa7njaGBUWsIAFLGABC1jAAt
Z0Q8KrX0j1KCi1ezd6WO16ha23qRZ/SGeYiqHCAhawgUsFRawgAUsYAELWMACliFhu6b7mVdlqbXj9IT66O
tq0Ziu8SVFrZ2/9SFWrbdZFRawgAUsYAELWMAC1q3B2jskTLPdf/nm22ne7KhnGKjVIxnlQqq1HrP1mUp7g
9UaTofmPFl++Orrqd4ssIAFrJtWWOl2cR9gAQtYwBoSrHwYmO6jwgIWsIA17JAwDQNng6rlh996wz4blJbN
8h7H1I365cNIF3+9JFizNdiBBSxg3RSsK2AFLGAB6wZgRXP96kjVGvOfeTGJnuuyBZY95z61OsXPKIfmXBW
z1aZ7qqrSv/NvAWeEC1jAAtb79ZvuCawrnK8dWMAC1sXBukK/CljAAtYNhoQJq5l7Vq0bsHs2jBZN3Su/rq
PYHAX+zFO8zH6B12EqrCsHWMACFrCABSxgAasvWGk4eEWwzuwxjHTFlhl6WC3A6r0N1T40p/d6VmEBC1jAA
hawgAUsYAELWMACFrCANTZeIx0L1/pqPqOulxo7YO8vVq6wvQELWMACFrCABSxgAQtYeljNd/4WvaIe86Rq
v65Rr07U+nX1/kN31QALWMACFrCABSxgAQtYwAIWsIAFrDob7Aw72V2PJexxCqHWpzPqfbokYAELWMACFrC
ABSxgAevCePXsYdVCY9QLqdZ4P63PCNoCy9b9zVYXXQUWsIAFLGABC1jAAhawgAUsYAELWHM24Ee9+m5vZF
t/gVFrfY1yhe0WV6c+ui5r3A9YwAIWsIAFLGABC1jAulFajPlr96l69DBaH5ozw2lUzjxtUI9+oHlYwAIWs
IAFLGABC1jAAlaXjbtnn6I1WGdflLT1Z9x6akHrz8qVn4EFLGABC1jAAhawgAUsYAELWMC6JlK1Gq1HHqM1
Li3eT63n7gnRFcA686yywAIWsIAFLGABC1jAAtaNwKqxQW29X4+dpXavq/f8pxr3m/GMoz36tcACFrCABSx
gAQtYwAIWsIAFLGABa068Wh3P1XoDatHUPWtHbfG7FvC0+GPWAlkXUgUWsIAFLGABC1jAAhawumPWYqPpeW
GG3ocMtd7Jzu7X9DzTqkNzgAUsYAELWMACFrCABSxgAQtYwLofUkd3ghbHGZ658/c+lrA2zj3+gNX+DHpfx
BdYwAIWsIAFLGABC1jAuilYPU7V0fNwldYX4Dy7H9gSmlYXpa3dbzIPC1jAAhawgAUsYAELWMACFrCABSxg
1djQzwSr1g5Se/5Zj7ljrZFtvW30/kIGWMACFrCABSxgAQtYwALWsIe5tL6CSu++S4+e35nr8swzjjo0B1j
AAhawgAUsYAELWMACFrCABSxXzWkNZGt4Wh
//NuqxhC0+n54Itvgy4KoNeWABC1jAAhawgAUsYAHrhP7J0Q22xtJjY27dPxm1h9Ua59Y9ph4XugUWsIAFL
GABC1jAAhawgAUsYAELWGM1vlujUev1t/7dmTtx79OxtF5fZ2+LwAIWsIAFLGABC1jAAhawuvfFZtj5z3z8
3r211j3MFj3G3usPWMACFrCABSxgAQtYwALWUD2znhfxPApprefuufO36CP2/qN3d9iABSxgAQtYwAIWsIA
FLGABC1jAMg9rTDRanO1y62uu9b5b/64Flq138N7r6yoBFrCABSxgAQtYwAIWsDr1Cno+ZuuLHPS4wGfvnk
zrPxK1X2OPnh+wgAUsYAELWMACFrCABSxgAQtYwLomWC12zp6A1Lpfz3XZ+upBPY4lrAGRYwmBBSxgAQtYw
AIWsIAFrFuD1fsiFEfWUYuLeNY6k2jPXmQtJM48dApYwAIWsIAFLGABC1jAAhawgAUsYAHr1Y2mRdO19/GP
rXFp3bSu9RnX/nzOvFArsIAFLGABC1jAAhawgHVxsHr2EVr0bkbqYfXeyXpCfeZFT8/8wwMsYAELWMACFrC
ABSxgAQtYwAIWsM4Bq/cpkls3Vs+88nOtpnvvz6fGdlPjD2TvK38DC1jAAhawOiEFLGABC1gqLBGRVlj98N
XX/wUZWCIyMlbfffHl+/effq7CEpFx8+OHDx+x+umTzz6CpcISkSHzyzfffkQqYQUsERlu6FcOAQMrYInIc
FClpOZ6DhWwRGSaygpYIjIMVmnJm+trC7BE5NSqKqVsrgNLRIZEa61fBSwRGQ6rLZXV7cDacgxgy+dueb8j
j7/nGMS1+259zFd+t+X93eX0wFcE61nP6tZgtdjItzzOaGBtXRd7YM9/XuJz9HePcNz6exkXK2Dt3KnXdpy
1v/rlz5YqkbX7bdnhH91vy+223H8rWHur0EeP+ervnr0PYM0bYFUAa8vOumVnKW+zF5BnsOyFam9Vs/X5Wo
G1FV5gGRIC60kP7NHOsnabGmBteQ1bh6l70N0ynOsJ1h6gBVi3r7D2DmmODKeO9ppe7Wm1GtrVBuuO1+UzJ
NR07wJWiyFhDbCO9qXOBusVoEWFNQVYe6Y1PGu6PxsqrQ259jTdnz32M9iOfLu2ZYpBr2kNW6soYKmwRESA
JSJiSCgiKiwREWCJiCEhsEREhSUiosISEWABS0QMCUVEVFgiosIClogAS0Tk8HDQkFBEVFgics0qp6x4ei/
AEpFdYKWrLic4zlj2XJMQWCI3T2C1B40zF2CJ3DR7r7oMLBE5ZSg4U1UFLJEbY5UqqxmxApbIjaCaubICls
jNqqrZ+lXAErkZVCnpm8ArYAUskYvnSlgBS+TCldVVhoHAErlwfvzw4WFzfWbEgCVyocoqLVerqoAlclGsZ
p+2ACyRG2S2YwKBJXLTyuqKzXVgiVy0sroLVsASmayayv878zGBwBK5CVrPpi0AS0SGyJ2xApbIZEPBO/Wr
gCUyKVZ3a64DS2RSrO40bQFYIhPnzv0qYIlMlDtOWwCWyIRDwSPX7AOWiHSN5jqwRKaoqmC1Day0roAlAqu
5wEqzaAMui8XSZ0nN9dSzOrqknThfjtzn6P3OeI0fwQrpLRZLnyUKBNlXjab8GxpTVlC0LW3pAAAAAElFTk
SuQmCC",
"merchantName": "Baso Malang",
"terminalId": "21314125",
}
2. SNAP QR MPM Payment Notify
This service is used to Notification QRIS.
Field | Params Type | Data Type | Mandatory | Description |
---|---|---|---|---|
CHANNEL-ID | Header | String(5) | Y | Channel’s identifier using EDC’s WSID (95251) |
X-PARTNER-ID | Header | String(36) | Y | Length data in BCA = 15 Unique ID for a partner - Merchant Reguler: MerchantID (9) - Merchant Partnership : Partner Name (15) |
X-EXTERNAL-ID |
Header | String(36) | Y | ID that should be unique per co-partner per service in the same day |
Payload:
Field | Data Type | Length Type | Mandatory | Format | Description |
---|---|---|---|---|---|
originalReferenceNo | String(64) | Max | Y | Alphanumeric | Transaction identifier on service provider system length in BCA: 36 |
originalPartnerReferenceNo | String(64) | Max | N | Alphanumeric | Mandatory in BCA Transaction identifier on service consumer system (Transction ID partner) |
latestTransactionStatus | String (2) | Fixed | Y | Numeric | Mandatory in BCA Transaction Status recorded in DB QR Server 00 - Success : transaction is paid 01 - Initiated 02 - Paying 03 - Pending : transaction is recorded, but still unpaid or inquiry to EAI timeout 04 - Refunded 05 - Canceled 06 - Failed : transaction failed, because QR Expired 07 - Not found This data must be informed on the proof of the transaction provided to the customer |
customerNumber | String(64) | Max | N | Numeric | Mandatory in BCA if transaction is successful length in BCA: 19 Buyer card number (customer_pan), will be used to calculate transaction limit. Mandatory if payment requires limit validation (i.e. payment from mBCA) This data must be informed on the proof of the transaction provided to the customer |
destinationNumber | String(25) | N | Numeric | Mandatory in BCA if transaction is successful length in BCA: 19 Merchant identifier This data must be informed on the proof of the transaction provided to the customer |
|
destinationAccountName | String(25) | N | Alphanumeric | Mandatory in BCA if transaction is successful merchant name |
|
amount | Object | N | Mandatory in BCA if transaction is successful Net amount of the transaction. (exclude convenience fee) This data must be informed on the proof of the transaction provided to the customer |
||
value | String (16.2) |
Max | Y | Numeric 10000.00 | Length data in BCA = 13.2 BCA will send response amount with format value Numeric (13.2) Example : IDR 10.000,- will be placed with 10000.00 |
currency | String (3) |
Y | Alphanumeric |
Currency code |
|
additionalInfo | Object | N | Mandatory field only if transaction is successful | ||
referenceNumber | String (12) | Y | Alphanumeric |
Unique ID for tracing | |
transactionDate | String (25) | Y | Numeric | Transaction date with format YYYY-MM-DDThh:mm:ssTZD Example: 2020-12-21T10:30:24+07:00 This data must be informed on the proof of the transaction provided to the customer |
|
approvalCode | String (6) |
Y | Alphanumeric | Approval code from host for success transaction | |
payerPhoneNumber | String (16) |
N | Alphanumeric | Buyer phone number to be shown in both buyer and seller account statement |
|
batchNumber | String(6) | Y | Numeric | Transaction batch number recorded in QRIS Server | |
convenienceFee | String(10.2) | N | Numeric | Convenience fee or tips This data must be informed on the proof of the transaction provided to the customer |
|
issuerReferenceNumber | String(12) | Y | Numeric | RRN QRIS This data must be informed on the proof of the transaction provided to the customer |
|
payerName | String(30) | N | Alphanumeric | Buyer name This data must be informed on the proof of the transaction provided to the customer |
|
issuerName | String(26) | Y | Alphanumeric | Issuer name This data must be informed on the proof of the transaction provided to the customer |
|
acquirerName | String(3) | Y | Alphanumeric | Acquirer name = BCA This data must be informed on the proof of the transaction provided to the customer |
|
merchantInfo | Array of Object | ||||
terminalId | String(8) | Y | Alphanumeric | Terminal ID | |
merchantId | String(15) | Y | Numeric | Merchant ID in BCA - Merchant direct: merchantID - Merchant facilitator: merchantID - Merchant aggregator: merchantID partner aggregator |
|
city | String(13) | Y | Alphanumeric | Merchant city | |
postalCode | String(10) | Y | Numeric | Merchant postal code | |
country | String(2) | Y | Alphanumeric | Merchant location country | |
String | N | Alphanumeric | Merchant e-mail address | ||
paymentChannelName | String(10) | Y | Alphanumeric | - Sakuku - Debit - Switching - Paylater |
Response:
Field | DataType | Length Type | Mandatory | Format | Description |
---|---|---|---|---|---|
responseCode |
String(7) | Fixed | Y | AAABBCC |
Error code to identify transaction status (success or failed) Format: AAABBCC AAA : HTTP Code BB : Service Code CC : Case Code Service Code Notification Payment QRIS : 52 Example: 2005200 Response from copartner |
responseMessage |
String (150) |
Max | Y | Alphanumeric | Error message in English Example : successful |
The copartners define the responseCode by themselves. For the multi-language responseMessage, it allowed to use same value if multi-language are not possible
{ "responseCode" : "Error Code", "responseMessage" : "Error Message" } |
curl –X POST https://copartners.com/openapi/v1.0/qr-mpm-notify
Request
-H 'CHANNEL-ID':'95251'
-H 'X-PARTNER-ID': '123456789'
-H 'X-EXTERNAL-ID': '41807553358950093184162180797837'
-d '
{
"originalReferenceNo": "43057a74-e179-49ed-b119-b004a3d522ec",
"originalPartnerReferenceNo": "2020102900000000000001",
"latestTransactionStatus": "00",
"transactionStatusDesc": "success",
"customerNumber": "6281388370001",
"destinationNumber": "8377388292",
"destinationAccountName": "John Doe",
"amount": {
"value": "50000.00",
"currency": "IDR"
},
"additionalInfo": {
"referenceNumber": "022411000106",
"transactionDate": "2020-12-23T08:43:11+07:00",
"approvalCode": "ATTRT0",
"payerPhoneNumber": "08174964450",
"batchNumber": "000004",
"convenienceFee": "0.00",
"issuerReferenceNumber": "000013101103",
"payerName": "DEV Apos",
"issuerName": "BCA",
"acquirerName": "BCA",
"merchantNnfo": {
"terminalId": "DTESTDRA",
"merchantId": "000885123456789",
"city": "JAKARTA PUSAT",
"postalCode": "10310",
"country": "ID",
"email": "",
"paymentChannelName": "Sakuku"
}
}
}'
curl –X POST https://copartners.com/openapi/v1.0/qr-mpm-notify
Response
{
"responseCode": "2005200",
"responseMessage": "Successful"
}
3. SNAP QR MPM Query Payment
This service is used to inquiry transaction status.
Field | Params Type | Data Type | Mandatory | Description |
---|---|---|---|---|
CHANNEL-ID | Header | String(5) | Y | Channel’s identifier using EDC’s WSID (95251) |
X-PARTNER-ID | Header | String(36) | Y | Length data in BCA = 15 Unique ID for a partner - Merchant Reguler: MerchantID (9) - Merchant Partnership : Partner Name (15) |
Payload:
Field | Data Type | Length Type | Mandatory | Format | Description |
---|---|---|---|---|---|
originalReferenceNo | String(64) | Max | N | Alphanumeric | Mandatory in BCA length data: 36 in BCA Transaction identifier on service provider system (generate by QR Server) Response from API Generate QR |
originalPartnerReferenceNo | String(64) | Max | N | Alphanumeric | Mandatory in BCA Transaction identifier on service from partner |
serviceCode | String(2) | Fixed | Y | Numeric | Transaction type indicator (service code of the original transaction request) Example: serviceCodegenerate QR = 47 |
merchantId | String(64) | Max | N | Numeric | Mandatory in BCA Length in BCA data = 9 Merchant ID from BCA - Merchant direct: merchantID - Merchant facilitator: merchantID - Merchant aggregator: merchantID partner aggregator |
subMerchantId | String(32) | Max | N | Alphanumeric | Conditional in BCA submerchantID for Merchant partner aggregator only (passthrough from merchant) |
additionalInfo | Object | N | Additional Information | ||
partnerMerchantType | String(4) | Max | N | Alphanumeric | Conditional in BCA for Merchant partner only |
terminalId | String (8) | Max | Y | Alphanumeric | Length data in BCA = 8 Can be : - Terminal ID BCA (merchant direct) - Terminal ID non BCA (merchant aggregator / facilitator) |
Response:
Field | Data Type | Length Type | Mandatory | Format | Description |
---|---|---|---|---|---|
responseCode | String(7) | Fixed | Y | AAABBCC | Error code to identify transaction status (success or failed) format : AAABBCC AAA : HTTP Code BB : Service Code CC : Case Code Service Code Inquiry Payment QRIS : 51 Example: 2005100 |
responseMessage | String(150) | Max | Y | Alphanumeric | Error message in English Example: successful |
originalReferenceNo | String(64) | Max | N | Alphanumeric | Mandatory in BCA
length in BCA: 36 Transaction identifier on service provider system (generate by QR Server) |
originalPartnerReferenceNo | String(64) | Max | N | Alphanumeric | Mandatory in BCA Transaction identifier on service from partner |
originalExternalId | String(36) | Fixed | N | Numeric | Mandatory in BCA ID that should be unique per co-partner per service in the same day |
serviceCode | String(2) | Fixed | Y | Numeric | Transaction type indicator (service code of the original transaction request) Example: serviceCode generate QR = 47 |
latestTransactionStatus | String (2) | Fixed | Y | Numeric | Mandatory in BCA Transaction Status recorded in DB QR Server 00 - Success : transaction is paid 01 - Initiated 02 - Paying 03 - Pending : transaction is recorded, but still unpaid 04 - Refunded : transaction is successfully refunded 05 - Canceled 06 - Failed : transaction failed, because QR Expired 07 - Not found This data must be informed on the proof of the transaction provided to the customer |
transactionStatusDesc | String (50) | Max | N | Alphanumeric | Mandatory in BCA Show description of transaction status Example: - Success (transaction Success) - Pending (Unpaid Transaction) - Failed (QR Expired) - Refunded (Partial Refund) |
paidTime | String (255) | Max | N | YYYY-MM-DDThh:mm:ssTZD | Mandatory in BCA if transaction is successful Transaction date ISO8601 Example: 2020-12-21T10:30:24+07:00 This data must be informed on the proof of the transaction provided to the customer |
Amount | Object | N | Mandatory in BCA if transaction is successful "amount": { "value": "10000.00", "currency": "IDR" } |
||
value | String (16.2) | Max | Y | Numeric 10000.00 | length in BCA = 13.2 Net amount of the transaction BCA will send response amount with format value Numeric (13.2) Examlple: IDR 10.000,- will be placed with 10000.00 |
currency | String(3) | Fixed | Y | IDR | Currency code |
terminalId | String (16) | Max | N | Alphanumeric | Mandatory in BCA if transaction is successful length data in BCA : 8 Terminal ID BCA/non BCA |
additionalInfo | Object | N | Mandatory field only if transaction is successful | ||
referenceNumber | String (12) | Y | Alphanumeric | Unique ID for tracing | |
approvalCode | String (6) | Y | Alphanumeric | Approval code from host for success transaction | |
payerPhoneNumber | String (13) | N | Alphanumeric | Buyer phone number to be shown in both buyer and seller account statement | |
batchNumber | String (6) | Y | Numeric | Transaction batch number recorded in QRIS Server | |
convenienceFee | String (10.2) | N | Numeric | Convenience fee or tips This data must be informed on the proof of the transaction provided to the customer |
|
customerPan | String (19) | Y | Numeric | Buyer card number (customer_pan), will be used to calculate transaction limit. Mandatory if payment requires limit validation (i.e. payment from mBCA) This data must be informed on the proof of the transaction provided to the customer |
|
issuerReferenceNumber | String (12) | Y | Numeric | RRN QRIS This data must be informed on the proof of the transaction provided to the customer |
|
payerName | String (30) | Y | Alphanumeric | Buyer name This data must be informed on the proof of the transaction provided to the customer |
|
issuerName | String (26) | Y | Alphanumeric | Issuer name This data must be informed on the proof of the transaction provided to the customer |
|
acquirerName | String (3) | Y | Alphanumeric | Acquirer name = BCA This data must be informed on the proof of the transaction provided to the customer |
|
merchantInfo | Array of Object | Mandatory in BCA (except field email) if transaction is successful | |||
merchantId | String (64) | Y | Numeric | Mandatory in BCA Length data = 15 in BCA Example: 000 855 MID(9) Merchant ID transaction - Merchant direct : merchantID - merchant facilitator : merchantID - merchant aggregator : merchantID partner aggregator |
|
merchantPan | String (19) | Y | Numeric | Merchant identifier This data must be informed on the proof of the transaction provided to the customer |
|
name | String (25) | Y | Alphanumeric | Merchant name | |
city | String (13) | Y | Alphanumeric | Merchant city | |
postalCode | String (10) | Y | Numeric | Merchant postal code | |
country | String (2) | Y | Alphanumeric | Merchant location country | |
String (30) | N | Alphanumeric | Merchant e-mail address | ||
paymentChannelName | String (10) | Y | Alphanumeric | - Sakuku - Debit - Switching - Paylater |
HTTP Code | Error Code | Error Message |
---|---|---|
400 | 4005100 | Bad request |
400 | 4005101 | Invalid Field Format {field name} |
400 | 4005102 | Invalid Mandatory Field {field name} |
401 | 4015100 | Unauthorized. [Reason] |
401 | 4015101 | Invalid token (B2B) |
403 | 4035100 | Transaction Expired |
403 | 4035106 | Feature Not Allowed At This Time |
404 | 4045108 | Invalid Merchant |
404 | 4045101 | Transaction Not Found |
404 | 4045118 | Inconsistent Request [X-PARTNER-ID & merchantID not match] |
409 | 4095100 | Conflict X-EXTERNAL-ID |
500 | 5005100 | General Error |
500 | 5005101 | Internal Server Error |
504 | 5045100 | Timeout |
curl –X POST https://sandbox.bca.co.id/openapi/v1.0/qr/qr-mpm-query
Request
-H 'CHANNEL-ID':'95251'
-H 'X-PARTNER-ID': '1234567890'
-d '
{
"originalPartnerReferenceNo": "2020102900000000000001",
"originalReferenceNo": "2020102977770000000009",
"serviceCode": "51",
"merchantId": "23489182303312",
"subMerchantId": "23489182303312",
"additionalInfo": {
"terminalId": "DTESTDRA",
"partnerMerchantType": "SA"
}
}'
curl –X POST https://sandbox.bca.co.id/openapi/v1.0/qr/qr-mpm-query
Response
{
"responseCode": "2005100",
"responseMessage": "Success",
"originalPartnerReferenceNo": "2020102900000000000001",
"originalReferenceNo": "43057a74-e179-49ed-b119-b004a3d522ec",
"originalExternalId": "30443786930722726463280097920912",
"serviceCode": "47",
"latestTransactionStatus": "00",
"transactionStatusDesc": "Success (transaction Success)",
"paidTime": "2020-12-23T08:43:11+07:00",
"amount": {
"value": "50000.00",
"currency": "IDR"
},
"terminalId": "DTESTDRA",
"additionalInfo": {
"referenceNumber": "022411000106",
"approvalCode": "ATTRT0",
"payerPhoneNumber": "08174964450",
"batchNumber": "000004",
"convenienceFee": "0.00",
"issuerReferenceNumber": "000013101103",
"payerName": "DEV Apos",
"customerPan": "9360001430000131018",
"issuerName": "BCA",
"acquirerName": "BCA",
"merchantInfo": {
"merchantId": "000885000333456",
"merchantPan": "9360001430003334569",
"name": "FDM DUMMY MAGENTA TOKO",
"city": "JAKARTA PUSAT",
"postalCode": "10310",
"country": "ID",
"email": "",
"paymentChannelName": "Sakuku"
}
}
}
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.
Field | Params Type | Data Type | Length Type | Mandatory | Description |
---|---|---|---|---|---|
CHANNEL-ID | Header | String(5) | Fixed | Y | Mandatory in BCA. Channel’ Identifier using WSID Shared Biller (95391) |
X-PARTNER-ID | Header | String(32) | Max | Y | Mandatory in BCA. Partner ID (Mitra ID) |
X-EXTERNAL-ID | Header | String(36) | Max | Y | Mandatory in BCA. Reference number that should be unique in the same day |
Payload:
Field | Data Type | Length Type | Mandatory | Format | Description |
---|---|---|---|---|---|
virtualAccountNo | String (28) | Max | Y | Alphanumeric | Mandatory in BCA. partnerServiceId (8 digit left padding space) + customerNo (up to 20 digit). In BCA, virtualAccountNo max length is 26 (partnerServiceId(8 digits) + customerNo(18 digits)). |
inquiryRequestId | String (128) | Max | N | Alphanumeric | Mandatory in BCA. Unique identifier for inquiry. Generated by BCA from inquiry response. |
Note:
- Transaction can be queried between D-day (hari H) until D-1 day (H-1 / yesterday).
- paymentRequestID is the same value with inquiryRequestID from BCA for each transaction.
- For inquiry payment status, can use just one keyword (customerNo or inquiryRequestId/paymentRequestID) as filter criteria.
Result of the request will contains following information:
Response:
Field | Data Type | Length Type | Mandatory | Format | Description |
---|---|---|---|---|---|
responseCode | String (7) | Fixed | Y | Numeric | Mandatory in BCA. Response code: HTTP Code + Service Code + Case Code |
responseMessage | String (150) | Max | Y | Alphanumeric | Mandatory in BCA. Response description |
paymentRequestId | String (128) | Max | N | Alphanumeric | Mandatory in BCA. Unique identifier for payment. Generated by BCA and has the same value with inquiryRequestI d. |
virtualAccountNo | String (28) | Max | Y | Alphanumeric | Mandatory in BCA. partnerServiceId (8 digit left padding space) + customerNo (up to 20 digit) In BCA, virtualAccountNo max length is 9 (partnerServiceId(8 digits)+customerNo(18 digits)). |
paymentFlagReason | Object | - | N | - | Mandatory in BCA. Reason for Payment Status from Biller in multi language |
english | String (64) | Max | N | Alphanumeric | Reason for inquiry status in English |
indonesia | String (64) | Max | N | Alphanumeric | Reason for inquiry status in Bahasa |
inquiryRequestId | String (128) | Max | N | Alphanumeric | Mandatory in BCA. Inquiry identifier for inquiry. Generated by BCA from inquiry response. |
paidAmount | Objects | - | N | - | Mandatory in BCA. |
value | String (16,2) | Max | Y | Decimal | Paid amount with 2 decimal. In BCA, totalAmount max length is 13.2 digits |
currency | String (3) | Fixed | Y | ISO-4217 | Currency of amount based on ISO 4217 |
trxDateTime | Date(25) | Fixed | N | ISO-8601 | Mandatory in BCA. BCA internal system datetime with timezone, which follows the ISO-8601 standard |
transactionDate | Date(25) | Fixed | N | ISO-8601 | Mandatory in BCA. Payment datetime when the payment happened |
paymentFlagStatus | String (2) | Fixed | N | Numeric | Mandatory in BCA. Status for payment flag, This field may vary with these values: 00 : success transaction 01 : transaction in progress 99 : failed transaction |
billDetails | Array of Objects | - | N | - | Array with maximum 24 Objects |
billNo | String (18) | Max | N | Alphanumeric | Bill number that customer choose to pay. From Payment Request |
billDescription | Object | - | N | - | Bill Description |
english | String (18) | Max | N | Alphanumeric | Bill Description in English |
indonesia | String (18) | Max | N | Alphanumeric | Bill Description in Bahasa |
billSubCompany | String (5) | Max | N | Alphanumeric | Biller’s product code |
billAmount | Objects | - | N | - | |
value | String (16,2) | Max | Y | Decimal | Transaction amount for specific bill. Nominal inputted by Customer with 2 decimal In BCA, billAmount max length is 13.2 digits. |
currency | String (3) | Fixed | Y | ISO-4217 | Currency |
additionalInfo | Object | - | N | - | Additional Information for customer use for each bill |
freeTexts | Array of Objects | - | N | - | Array with maximum 9 Objects send by BCA. |
english | String (32) | Max | N | Alphanumeric | Will be shown in Channel |
indonesia | String (32) | Max | N | Alphanumeric | Will be shown in Channel |
- The final status of payment flag is not determined by responseCode and responseMessage.
- Status for payment flag will be defined in paymentFlagStatus and paymentFlagReason field. This field may vary with these values:
00 = success transaction
01 = transaction in progress
99 = failed transaction
- If the paymentFlagStatus is 01, the result will be defined after reconciliation process.
- If the reconciliation results show that the transaction was successfully settled, the paymentFlagStatus will contains 00.
- If the reconciliation results show a refund transaction, the paymentFlagStatus will contains 99.
- ResponseCode 4042601 shows request inquiry status is failed, because the transaction data is not available/not recorded at BCA, the paymentFlagStatus will be empty.
Here is the list of error codes that can be returned.
HTTP Code | Error Code | Error Message |
---|---|---|
200 | 2002600 | Successful |
400 | 4002601 | Invalid Field Format {Field Name} |
400 | 4002602 | Invalid Mandatory Field {Field Name} |
400 | 4002600 | Bad request |
401 | 4012600 | Unauthorized. [Reason] |
401 | 4012601 | Invalid token (B2B) |
403 | 4032601 | Feature Not Allowed |
404 | 4042601 | Transaction Not Found |
404 | 4042616 | Partner Not Found |
409 | 4092600 | Conflict |
500 | 5002600 | General Error |
500 | 5002601 | Internal Server Error |
/openapi/shared-biller/v1.0/transfer-va/status
Request
curl –X POST https://sandbox.bca.co.id/openapi/shared-biller/v1.0/transfer-va/status
-H 'CHANNEL-ID': '95391'
-H 'X-PARTNER-ID': '676767'
-H 'X-EXTERNAL-ID': '123456789'
-d '
{
"partnerServiceId": "03013",
"customerNo": "123456789012345678",
"virtualAccountNo": "00003013123456789012345678",
"inquiryRequestId": "202209161033070301300001197441"
} '
/openapi/shared-biller/v1.0/transfer-va/status
Response
{
"responseCode": "2002600",
"responseMessage": "Successful",
"virtualAccountData": {
"paymentFlagReason": {
"english": "Transaction Success",
"indonesia": "Transaksi Berhasil"
},
"partnerServiceId": " 21180",
"customerNo": "22203",
"virtualAccountNo": " 2118022203",
"inquiryRequestId": "202307311953292118000043785288",
"paymentRequestId": "202307311953292118000043785288",
"paidAmount": {
"value": "803000.00",
"currency": "IDR"
},
"paidBills": "",
"totalAmount": {
"value": "",
"currency": ""
},
"trxDateTime": "2023-07-31T19:57:18+07:00",
"transactionDate": "2023-07-31T19:53:29+07:00",
"referenceNo": "",
"paymentType": "",
"flagAdvise": "",
"paymentFlagStatus": "00",
"billDetails": [
{
"billCode": "",
"billNo": "00011114",
"billName": "",
"billShortName": "",
"billDescription": {
"english": "Pencil",
"indonesia": "Pensil"
},
"billSubCompany": "00003",
"billAmount": {
"value": "803000.00",
"currency": "IDR"
},
"additionalInfo": "",
"billReferenceNo": "",
"status": "",
"reason": {
"english": "",
"indonesia": ""
}
}
],
"freeTexts": [
{
"english": "ABCDEFGHIJKLM ENGLISH FREETEXT 1",
"indonesia": "ABCDEFGHIJ INDONESIAN FREETEXT 1"
},
{
"english": "ABCDEFGHIJKLM ENGLISH FREETEXT 1",
"indonesia": "ABCDEFGHIJ INDONESIAN FREETEXT 1"
},
{
"english": "ABCDEFGHIJKLM ENGLISH FREETEXT 1",
"indonesia": "ABCDEFGHIJ INDONESIAN FREETEXT 1"
},
{
"english": "ABCDEFGHIJKLM ENGLISH FREETEXT 1",
"indonesia": "ABCDEFGHIJ INDONESIAN FREETEXT 1"
},
{
"english": "ABCDEFGHIJKLM ENGLISH FREETEXT 1",
"indonesia": "ABCDEFGHIJ INDONESIAN FREETEXT 1"
},
{
"english": "ABCDEFGHIJKLM ENGLISH FREETEXT 1",
"indonesia": "ABCDEFGHIJ INDONESIAN FREETEXT 1"
},
{
"english": "ABCDEFGHIJKLM ENGLISH FREETEXT 1",
"indonesia": "ABCDEFGHIJ INDONESIAN FREETEXT 1"
},
{
"english": "ABCDEFGHIJKLM ENGLISH FREETEXT 1",
"indonesia": "ABCDEFGHIJ INDONESIAN FREETEXT 1"
},
{
"english": "ABCDEFGHIJKLM ENGLISH FREETEXT 1",
"indonesia": "ABCDEFGHIJ INDONESIAN FREETEXT 1"
}
],
"additionalInfo": ""
}
}
2. SNAP Shared Biller Inquiry Payment to VA from Intrabank
This service is used for billing inquiry to biller.
This feature is not yet available to be accessed via Sandbox.
Field | Params Type | Data Type | Length Type | Mandatory | Description |
---|---|---|---|---|---|
CHANNEL-ID | Header | String(5) | Fixed | Y | Mandatory in BCA. Channel’ Identifier using WSID Shared Biller (95391) |
X-PARTNER-ID | Header | String(32) | Max | Y | 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 |
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 |
1. BCA will response virtualAccountTrxType value only for one of these value:
- O (Open Payment) = (non Multi Bill - No Bill) Bill amount is not displayed,customer may enter paid amount freely
- C (Closed Payment) = (non Multi Bill - Fixed Bill)
Bill amount is displayed, customer must pay according to the displayed amount
If more than one bill is displayed, customer must pay all displayed bills & total amount for all bills
- V (Bill Variable) = (non Multi Bill - Variable Bill) Bill amount is displayed, customer may enter paid amount freely
- I (Partial) = (Flexible Multi Bill - Fixed Bill)
More than one bill may be displayed, customer may choose more than one of the displayed bills to pay
Bill amount is displayed, customer must pay according to the displayed amount in each bill
Total of paid amount is equal to the sum of chosen bills
- W (Variable Multi Bill) = (Multi Bill - Fixed Bill)
More than one bill may be displayed, customer may choose only one of the displayed bills to pay
Bill amount is displayed, customer must pay according to the displayed amount of the chosen bill
2. Currency only available for IDR
Here is the list of error codes that can be returned.
HTTP Code | Error Code | Error Message |
---|---|---|
200 | 2003200 | Successful |
400 | 4003201 | Invalid Field Format {Field Name} |
400 | 4003202 | Invalid Mandatory Field {Field Name} |
400 | 4003200 | Bad request |
401 | 4013200 | Unauthorized. [Reason] |
401 | 4013201 | Invalid token (B2B) |
403 | 4033201 | Feature Not Allowed |
404 | 4043208 | Invalid Merchant |
404 | 4043212 | Invalid Bill. [Reason] (Reason is defined by Biller) |
404 | 4043214 | Paid Bills |
404 | 4043216 | Partner Not Found |
404 | 4043218 | Inconsistent Request |
409 | 4093200 | Conflict |
500 | 5003200 | General Error |
500 | 5003201 | Internal Server Error |
/openapi/shared-biller/v1.0/transfer-va/inquiry-intrabank
Request
curl –X POST https://sandbox.bca.co.id/openapi/shared-biller/v1.0/transfer-va/inquiry-intrabank
-H 'CHANNEL-ID': '95391'
-H 'X-PARTNER-ID': '676767'
-H 'X-EXTERNAL-ID': '123456789'
-d '
{
"partnerServiceId": " 03013",
"customerNo": "123456789012345678",
"partnerReferenceNo": "1122334455",
"virtualAccountNo": " 00003013123456789012345678",
"trxDateTime": "2022-09-16T10:33:07+07:00"
}'
/openapi/shared-biller/v1.0/transfer-va/inquiry-intrabank
Response
{
"responseCode": "2003200",
"responseMessage": "Successful",
"virtualAccountData": {
"inquiryStatus": "",
"inquiryReason": {
"english": "",
"indonesia": ""
},
"partnerServiceId": " 21180",
"partnerReferenceNo": "90903200114",
"customerNo": "22203",
"virtualAccountNo": " 2118022203",
"virtualAccountName": "Customer Name",
"virtualAccountEmail": "",
"virtualAccountPhone": "",
"sourceAccountNo": "",
"sourceAccountType": "",
"inquiryRequestId": "202307311953292118000043785288",
"totalAmount": {
"value": "8045000.00",
"currency": "IDR"
},
"billDetails": [
{
"billCode": "",
"billNo": "00011111",
"billName": "",
"billShortName": "",
"billDescription": {
"english": "Pencil",
"indonesia": "Pensil"
},
"billSubCompany": "00000",
"billAmount": {
"value": "800000.00",
"currency": "IDR"
},
"billAmountLabel": "",
"billAmountValue": "800000.00",
"additionalInfo": []
},
{
"billCode": "",
"billNo": "00011112",
"billName": "",
"billShortName": "",
"billDescription": {
"english": "Book",
"indonesia": "Buku"
},
"billSubCompany": "00001",
"billAmount": {
"value": "801000.00",
"currency": "IDR"
},
"billAmountLabel": "",
"billAmountValue": "801000.00",
"additionalInfo": []
},
{
"billCode": "",
"billNo": "00011113",
"billName": "",
"billShortName": "",
"billDescription": {
"english": "Bag",
"indonesia": "Tas"
},
"billSubCompany": "00002",
"billAmount": {
"value": "802000.00",
"currency": "IDR"
},
"billAmountLabel": "",
"billAmountValue": "802000.00",
"additionalInfo": []
},
{
"billCode": "",
"billNo": "00011114",
"billName": "",
"billShortName": "",
"billDescription": {
"english": "Pencil",
"indonesia": "Pensil"
},
"billSubCompany": "00003",
"billAmount": {
"value": "803000.00",
"currency": "IDR"
},
"billAmountLabel": "",
"billAmountValue": "803000.00",
"additionalInfo": []
},
{
"billCode": "",
"billNo": "00011115",
"billName": "",
"billShortName": "",
"billDescription": {
"english": "Book",
"indonesia": "Tas"
},
"billSubCompany": "00004",
"billAmount": {
"value": "804000.00",
"currency": "IDR"
},
"billAmountLabel": "",
"billAmountValue": "804000.00",
"additionalInfo": []
},
{
"billCode": "",
"billNo": "00011110",
"billName": "",
"billShortName": "",
"billDescription": {
"english": "Bag",
"indonesia": "Pensil"
},
"billSubCompany": "00005",
"billAmount": {
"value": "805000.00",
"currency": "IDR"
},
"billAmountLabel": "",
"billAmountValue": "805000.00",
"additionalInfo": []
},
{
"billCode": "",
"billNo": "00011116",
"billName": "",
"billShortName": "",
"billDescription": {
"english": "Pencil",
"indonesia": "Pencil"
},
"billSubCompany": "00006",
"billAmount": {
"value": "806000.00",
"currency": "IDR"
},
"billAmountLabel": "",
"billAmountValue": "806000.00",
"additionalInfo": []
},
{
"billCode": "",
"billNo": "00011117",
"billName": "",
"billShortName": "",
"billDescription": {
"english": "Book",
"indonesia": "Buku"
},
"billSubCompany": "00007",
"billAmount": {
"value": "807000.00",
"currency": "IDR"
},
"billAmountLabel": "",
"billAmountValue": "807000.00",
"additionalInfo": []
},
{
"billCode": "",
"billNo": "00011118",
"billName": "",
"billShortName": "",
"billDescription": {
"english": "Bag",
"indonesia": "Tas"
},
"billSubCompany": "00008",
"billAmount": {
"value": "808000.00",
"currency": "IDR"
},
"billAmountLabel": "",
"billAmountValue": "808000.00",
"additionalInfo": []
},
{
"billCode": "",
"billNo": "00011119",
"billName": "",
"billShortName": "",
"billDescription": {
"english": "Pencil",
"indonesia": "Pensil"
},
"billSubCompany": "00009",
"billAmount": {
"value": "809000.00",
"currency": "IDR"
},
"billAmountLabel": "",
"billAmountValue": "809000.00",
"additionalInfo": []
}
],
"freeTexts": [
{
"english": "free text english",
"indonesia": "free text indonesia"
}
],
"virtualAccountTrxType": "W",
"feeAmount": {
"value": "0.00",
"currency": "IDR"
},
"productName": "Limit VA",
"additionalInfo": ""
}
}
3. SNAP Shared Biller Payment to VA from Intrabank
This service is to make payment to biller
This feature is not yet available to be accessed via Sandbox.
Field | Params Type | Data Type | Length Type | Mandatory | Description |
---|---|---|---|---|---|
CHANNEL-ID | Header | String(5) | Fixed | Y | Mandatory in BCA. Channel’ Identifier using WSID Shared Biller (95391) |
X-PARTNER-ID | Header | String(32) | Max | Y | 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 |
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 |
1. currency only available for IDR
2. paymentRequestID is the same value with inquiryRequestID from BCA for each transaction.
Here is the list of error codes that can be returned.
HTTP Code | Error Code | Error Message |
---|---|---|
200 | 2003300 | Successful |
202 | 2023300 | Request In Progress |
400 | 4003301 | Invalid Field Format {Field Name} |
400 | 4003302 | Invalid Mandatory Field {Field Name} |
400 | 4003300 | Bad request |
401 | 4013300 | Unauthorized. [Reason] |
401 | 4013301 | Invalid token (B2B) |
403 | 4033201 | Feature Not Allowed |
403 | 4033302 | Exceeds Transaction Amount Limit |
403 | 4033316 | Suspend Transaction |
404 | 4043208 | Invalid Merchant |
404 | 4043313 | Invalid Amount |
404 | 4043212 | Invalid Bill. [Reason] (Reason is defined by Biller) |
404 | 4043214 | Paid Bills |
404 | 4043216 | Partner Not Found |
404 | 4043218 | Inconsistent Request |
409 | 4093200 | Conflict |
500 | 5003200 | General Error |
500 | 5003201 | Internal Server Error |
/openapi/shared-biller/v1.0/transfer-va/payment-intrabank
Request
curl –X POST https://sandbox.bca.co.id/openapi/shared-biller/v1.0/transfer-va/payment-intrabank
-H 'CHANNEL-ID': '95391'
-H 'X-PARTNER-ID': '676767'
-H 'X-EXTERNAL-ID': '123456789'
-d '
{
"partnerServiceId": " 21180",
"customerNo": "123456789012345678",
"referenceNo": "12345",
"virtualAccountNo": " 00003013123456789012345678",
"inquiryRequestId": "202209161033070301300001197441",
"partnerReferenceNo": "23123123",
"paidAmount": {
"value": "803000.00",
"currency": "IDR"
},
"trxDateTime": "2023-07-31T15:08:24+07:00",
"billDetails": [
{
"billcode": "",
"billNo": "00011114",
"billName": "",
"billShortName": "",
"billDescription": {
"english": "Pencil",
"indonesia": "Pensil"
},
"billSubCompany": "00003",
"billAmount": {
"value": "803000.00",
"currency": "IDR"
},
"additionalInfo": "",
"billReferenceNo": ""
}
],
"freeText": [
{
"english": "eating",
"indonesia": "makan"
}
],
"additionalInfo": "alalalala"
}'
/openapi/shared-biller/v1.0/transfer-va/payment-intrabank
Response
{
"responseCode": "2003300",
"responseMessage": "Successful",
"virtualAccountData": {
"paymentFlagReason": {
"english": "",
"indonesia": ""
},
"partnerServiceId": " 21180",
"customerNo": "22203",
"virtualAccountNo": " 2118022203",
"virtualAccountName": "",
"virtualAccountEmail": "",
"virtualAccountPhone": "",
"sourceAccountNo": "",
"sourceAccountType": "",
"inquiryRequestId": "202307311953292118000043785288",
"paymentRequestId": "202307311953292118000043785288",
"partnerReferenceNo": "5555614",
"referenceNo": "",
"paidAmount": {
"value": "803000.00",
"currency": "IDR"
},
"paidBills": "",
"totalAmount": {
"value": "",
"currency": ""
},
"trxDateTime": "",
"journalNum": "",
"paymentType": "",
"flagAdvise": "",
"billDetails": [
{
"billCode": "",
"billNo": "00011114",
"billName": "",
"billShortName": "",
"billDescription": {
"english": "Pencil",
"indonesia": "Pensil"
},
"billSubCompany": "00003",
"billAmount": {
"value": "803000.00",
"currency": "IDR"
},
"additionalInfo": "",
"status": "",
"reason": {
"english": "",
"indonesia": ""
}
}
],
"freeTexts": [
{
"english": "ABCDEFGHIJKLM ENGLISH FREETEXT 1",
"indonesia": "ABCDEFGHIJ INDONESIAN FREETEXT 1"
},
{
"english": "ABCDEFGHIJKLM ENGLISH FREETEXT 2",
"indonesia": "ABCDEFGHIJ INDONESIAN FREETEXT 2"
},
{
"english": "ABCDEFGHIJKLM ENGLISH FREETEXT 3",
"indonesia": "ABCDEFGHIJ INDONESIAN FREETEXT 3"
},
{
"english": "ABCDEFGHIJKLM ENGLISH FREETEXT 4",
"indonesia": "ABCDEFGHIJ INDONESIAN FREETEXT 4"
},
{
"english": "ABCDEFGHIJKLM ENGLISH FREETEXT 5",
"indonesia": "ABCDEFGHIJ INDONESIAN FREETEXT 5"
},
{
"english": "ABCDEFGHIJKLM ENGLISH FREETEXT 6",
"indonesia": "ABCDEFGHIJ INDONESIAN FREETEXT 6"
},
{
"english": "ABCDEFGHIJKLM ENGLISH FREETEXT 7",
"indonesia": "ABCDEFGHIJ INDONESIAN FREETEXT 7"
},
{
"english": "ABCDEFGHIJKLM ENGLISH FREETEXT 8",
"indonesia": "ABCDEFGHIJ INDONESIAN FREETEXT 8"
},
{
"english": "ABCDEFGHIJKLM ENGLISH FREETEXT 9",
"indonesia": "ABCDEFGHIJ INDONESIAN FREETEXT 9"
}
],
"feeAmount": {
"value": "",
"currency": ""
},
"productName": "",
"additionalInfo": ""
}
}
Transfer Dana
1. SNAP Banking External Account Inquiry
This service is used to inquiry account external.
This feature is not yet available to be accessed via Sandbox.
Field | Params Type | Data Type | Length Type | Mandatory | Description |
---|---|---|---|---|---|
CHANNEL-ID | Header | String(5) | Fixed | Y | Channel ID using KlikBCA Bisnis's WSID (95051) |
X-PARTNER-ID | Header | String(10) | Fixed | Y | Corporate ID |
X-EXTERNAL-ID | Header | String(32) | Max | Y | Numeric String. Reference number that should be unique in the same day |
Payload:
Field | Data Type | Length Type | Mandatory | Format | Description |
---|---|---|---|---|---|
partnerReferenceNo | String (64) | Max | Y | - | Mandatory in BCA. Transaction identifier on service consumer system |
beneficiaryBankCode | String (8) | Max | Y | Alphanumeric | Mandatory in BCA. Beneficiary Bank Code. Beneficiary bank code. In BCA using SWIFT Code or 3 digit bank code (if destination doesn't have SWIFT Code). Beneficiary Bank Code can be checked on KBB menu: Miscellaneous > Information > Bank Code List |
beneficiaryAccountNo | String (34) | Max | Y | Alphanumeric | Mandatory in BCA. Beneficiary Account If inquiryService = 1 (Switcher) max length = 28 If inquiryService = 2 (BI-FAST) max length = 34 |
additionalInfo | Object | Y | |||
sourceAccountNo | String (10) | Fixed | C | Numeric | Mandatory in BCA if inquiry using BI-FAST Source Account |
inquiryService | String (1) | Fixed | Y | Numeric | Fill in according to the transfer transaction that will be used 1: Inquiry via Switcher 2: Inquiry via BI-FAST |
amount | object | C | |||
value | String (13,2) | Max | C | Decimal | This field conditional and will mandatory if inquiryService = 2 (BI-FAST) Net amount of the transaction. if it's IDR then value includes 2 decimal digits. In BCA, max length = 13.2 |
currency | String(3) | Fixed | C | ISO-4217 | This field conditional and will mandatory if inquiryService = 2 (BI-FAST) Currency (IDR) |
purposeCode | String (5) | Max | C | Numeric | This field conditional and will mandatory if inquiryService = 2 (BI-FAST) Purpose Code 01 = Investment / Investasi 02 = Transfer of Wealth / Pemindahan Dana 03 = Purchase / Pembelian 99 = Others / Lainnya |
Response:
Field | Data Type | Length Type | Mandatory | Format | Description |
---|---|---|---|---|---|
partnerReferenceNo | String (64) | Max | Y | - | Send by BCA according to the request input. Transaction identifier on service consumer system |
responseCode | String (7) | Fixed | Y | Alphanumeric | Response code to identify transaction status. Format : AAABBCC AAA : HTTP BB : Service Code CC : Case Code Example: 2001600 |
responseMessage | String (150) | Max | Y | Alphanumeric | Response description |
referenceNo | String (64) | Max | C | Numeric | Send by BCA. Transaction identifier on service provider system. Must be filled upon successful transaction Unique each day from BCA. Must be filled upon successful transaction. |
benefiaryAcco untName | String (100) | Max | Y | - | Send by BCA. Beneficiary Account Name |
beneficiaryAccountNo | String (34) | Max | Y | - | Send by BCA according to the request input. Beneficiary account number |
beneficiaryBankCode | String (8) | Max | Y | - | Send by BCA according to the request input. Beneficiary Bank Code. In BCA using SWIFT Code or 3 digit bank code (if destination doesn’t have SWIFT Code) Beneficiary Bank Code can be checked on KBB menu: Miscellaneous > Information > Bank Code Lis |
Here is the list of error codes that can be returned.
HTTP Code | Error Code | Error Message | Condition |
---|---|---|---|
200 | 2001600 | Successful | Transaction successful. |
400 | 4001601 | Invalid Field Format {field} | The data you entered does not match the format requirements. |
400 | 4001602 | Invalid Mandatory Field {Field} | Mandatory field should be fulfilled. |
401 | 4011600 | Unauthorized. [Reason] | Invalid Signature/Unknown Client/Connection Not Allowed. |
401 | 4011601 | Invalid token (B2B) | Access Token Not Exist/Access Token Expired/Token is Invalid. |
403 | 4031601 | Feature Not Allowed | Feature Not Allowed. Please make sure you registered this feature in your partnership data. |
404 | 4041602 | Invalid Routing | Your transaction amount exceeds your company limit |
404 | 4041611 | Invalid Account | The account used in transaction not valid |
409 | 4091600 | Conflict | Cannot use same X-EXTERNAL-ID in the same day. |
500 | 5001600 | General Error | General Error. |
504 | 5041600 | Timeout | Transaction timeout. |
curl –X POST https://sandbox.bca.co.id/openapi/v2.0/account-inquiry-external
Request
curl –X POST https://sandbox.bca.co.id/openapi/v2.0/account-inquiry-external
-H 'Content-type:application/json'
-H 'Authorization:Bearer gp9HjjEj813Y9JGoqwOeOPWbnt4CUpvIJbU1mMU4a11MNDZ7Sg5u9a'
-H 'X-TIMESTAMP:2020-12-21T10:30:24+07:00'
-H 'X-SIGNATURE:85be817c55b2c135157c7e89f52499bf0c25ad6eeebe04a986e8c862561b19a5'
-H 'ORIGIN:www.hostname.com'
-H 'X-PARTNER-ID:KBCABCINDO'
-H 'X-EXTERNAL-ID:28910000006578499987546738976812'
-H 'CHANNEL-ID:95051'
-d '
{
"beneficiaryBankCode": "BRINIDJA",
"beneficiaryAccountNo": "888801000157508",
"partnerReferenceNo": "2020102900000000000001",
"additionalInfo": {
"inquiryService": "1",
}
}'
External Account Inquiry V2 using BI-FAST:
curl –X POST https://sandbox.bca.co.id/openapi/v2.0/account-inquiry-external
-H 'Content-type:application/json'
-H 'Authorization:Bearer gp9HjjEj813Y9JGoqwOeOPWbnt4CUpvIJbU1mMU4a11MNDZ7Sg5u9a'
-H 'X-TIMESTAMP:2020-12-21T10:30:24+07:00'
-H 'X-SIGNATURE:85be817c55b2c135157c7e89f52499bf0c25ad6eeebe04a986e8c862561b19a5'
-H 'ORIGIN:www.hostname.com'
-H 'X-PARTNER-ID:KBCABCINDO'
-H 'X-EXTERNAL-ID:28910000006578499987546738976812'
-H 'CHANNEL-ID:95051'
-d '
{
"beneficiaryBankCode": "002",
"beneficiaryAccountNo": "888801000157508",
"partnerReferenceNo": "2020102900000000000001",
"additionalInfo": {
"sourceAccountNo": "0123456789",
"inquiryService": "2",
"amount": {
"value": "10000.00",
"currency": "IDR"
},
"purposeCode": "02"
}
}'
curl –X POST https://sandbox.bca.co.id/openapi/v2.0/account-inquiry-external
Response
{
"partnerReferenceNo": "2020102900000000000001",
"responseCode": "2001600",
"responseMessage": "Successful",
"referenceNo": "2020102977770000000009",
"beneficiaryAccountName": "Yories Yolanda",
"beneficiaryAccountNo": "888801000157508",
"beneficiaryBankCode": "BRINIDJA"
}
SNAP Banking External Account Inquiry V2 uses following error sample schema:
-H 'Content-type:application/json'
-H 'X-TIMESTAMP:2020-12-21T10:30:24+07:00'
{
"partnerReferenceNo": "2020102900000000000001",
"responseCode": "4001601",
"responseMessage": "Invalid Field Format beneficiaryAccountNo",
"referenceNo": "",
"beneficiaryAccountName": "",
"beneficiaryAccountNo": "888801000157508",
"beneficiaryBankCode": "BRINIDJA"
}
2. SNAP Banking Interbank Transfer
Introduction
With SNAP Banking Interbank transfer, you can perform fund transfer to other domestic bank by using Switcher/BI-FAST service. The source of fund transfer must be from your own account on your KlikBCA Bisnis. SNAP Banking Interbank Transfer transaction amount limit will follow KlikBCA Bisnis’s rules about transaction amount limit in the following menu: Miscellaneous > Information > Transaction Limit Usage > Funds Transfer to Domestic BCA thru LLG, ONLINE and BI FAST Maximum Limit per day per corporate
SNAP Banking Interbank Transfer frequency limit will follow KlikBCA Bisnis’s rules about frequency limit in the following menu: Miscellaneous > Information > Transaction Limit Usage > Funds Transfer to Domestic Bank thru LLG, ONLINE and BI FAST Maximum Number of Transaction per day per corporate
This feature is not yet available to be accessed via Sandbox.
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(10) | Max | Y | Corporate ID |
X-EXTERNAL-ID | Header | String(32) | Max | Y | Numeric String. Reference number that should be unique in the same day. |
Payload:
Field | Data Type | Length Type | Mandatory | Format | Description |
---|---|---|---|---|---|
partnerReferenceNo | String (64) | Max | Y | - | Transaction identifier on service consumer system |
amount | Object | Y | - | ||
value | String (13.2) | Max | Y | Decimal | Net amount of the transaction. If it’s IDR then value includes 2 decimal digits. |
currency | String (3) | Fixed | Y | ISO-4217 | Currency |
beneficiaryAccountName | String (100) | Max | Y | - | Beneficiary Account Name |
beneficiaryAccountNo | String (34) | Max | Y | - | Beneficiary Account |
beneficiaryBankCode | String(8) | Max | Y | SWIFT Code/3 digit bank code | Beneficiary Bank Code. In BCA using SWIFT Code or 3 digit bank code (if destination doesn’t have SWIFT Code). Beneficiary Bank Code can be checked on KBB menu : Miscellaneous > Information > Bank Code List |
beneficiaryEmail | String(50) | Max | N | abc@domain.com | Beneficiary Email. Only one email address can be submitted. |
sourceAccountNo | String (10) | Fixed | Y | Numeric | This response will be sent according to the request input. Source Account. |
transactionDate | String (25) | Max | Y | ISO-8601 | Mandatory in BCA. Transaction date |
additionalInfo | Object | Y | |||
transferType | String (1) | Fixed | Y | 1 = Transfer via switcher 2 = Transfer via BIFAST |
|
purposeCode | String (5) | Max | N | Mandatory if transferType = 2 Purpose Code as defined in techdoc BI 01 = Investment/Investasi 02 = Transfer of Wealth/Pemindahan Dana 03 = Purchase/Pembelian 99 = Others/Lainnya |
Response:
Field | Data Type | Length Type | Mandatory | Format | Description |
---|---|---|---|---|---|
partnerReferenceNo | String(64) | Max | N | Numeric | This response will be sent according to the request input. Transaction identifier on sevice consumer system. |
responseCode | String (7) | Fixed | Y | Numeric | Response code |
responseMessage | String(150) | Max | Y | Alphanumeric | Response description |
referenceNo | String (64) | Max | C | Numeric | Will be sent when the transaction is successful as transaction identifier on service provider system. referenceNo = timestamp(6, yymmdd) + prefix menu(2) + sequence(6). prefix menu=kode fitur=02. sequence number unique each day. |
amount | Object | Y | |||
value | String (13.2) | Max | Y | Decimal | This response will be sent according to the request input. Net amount of the transaction. If it’s IDR then value includes 2 decimal digits. |
currency | String (3) | Fixed | Y | ISO-4217 | This response will be sent according to the request input. Currency. |
beneficiaryAccountNo | String (34) | Max | Y | Numeric | This response will be sent according to the request input. Beneficiary account number. |
beneficiaryBankCode | String (8) | Max | N | SWIFT Code/3 digit bank code | This response will be sent according to the request input. Beneficiary Bank Code. In BCA using SWIFT Code or 3 digit bank code (if destination doesn’t have SWIFT Code). Beneficiary Bank Code can be checked on KBB menu : Miscellaneous > Information > Bank Code List |
sourceAccountNo | String (19) | Max | N | - | Send by BCA according to the request input. Source account |
additionalInfo | |||||
bifastId | String (18) | Fixed | C | Alphanumeric | Will be sent when the transaction is successful and transferType = 2. |
Here is the list of error codes that can be returned.
HTTP Code | Error Code | Error Message | Condition | Transaction Status |
---|---|---|---|---|
400 | 4001800 | Bad request | General request failed error. | |
400 | 4001801 | Invalid Field Format {field} | The data you entered does not match the format requirements. | |
400 | 4001802 | Invalid Mandatory Field {Field Name} | Mandatory field should be fulfilled. | |
401 | 4011800 | Unauthorized. [Reason] | Invalid Signature/Unknown Client/Connection Not Allowed. | |
401 | 4011801 | Invalid token (B2B) | Access Token Not Exist/Access Token Expired/Token is Invalid. | |
403 | 4031802 | Exceeds Transaction Amount Limit | Your transaction amount exceeds your company limit. Please check your Company Limit at KlikBCA Bisnis. | |
403 | 4031804 | Activity Count Limit Exceeded | Too many request, Exceeds Transaction Frequency Limit. Please check your Company Limit at KlikBCA Bisnis. | |
403 | 4031814 | Insufficient Funds | Your balance in source account less than the amount of transfer you perform. | |
403 | 4031801 | Feature Not Allowed | The feature is not allowed to use. Please make sure you registered this feature in your partnership data. | |
403 | 4031815 | Transaction not permitted | BI-FAST service for selected Beneficiary Bank is currently unavailable. Please choose another transfer service. | |
404 | 4041803 | Bank Not Supported By Switch | Bank not supported by BI-FAST. | |
404 | 4041811 | Invalid Account | The account used in transaction not valid (do not exist/closed/cant be used for transactions). | |
404 | 4041813 | Invalid Amount | Wrong amount input. | |
404 | 4041802 | Invalid Routing | Connection problem to Switcher. | |
409 | 4091800 | Conflict | X-EXTERNAL-ID duplicate. | |
429 | 4291800 | Too Many Requests | Maximum transaction limit exceeded. | |
500 | 5001800 | General Error | Wrong request field input. Internal system/external BI-FAST service is currently under maintenance. Please use other BCA transfer services. | |
500 | 5001801 | Internal Server Error | Unknown internal server failure, please retry the process again. | |
504 | 5041800 | Timeout | Your transaction timeout |
If you get responseCode 5001801 (Unknown Error/Unknown internal server failure, please retry the process again) from BCA, please make sure to check your account statement before retry the transaction.
curl –X POST https://sandbox.bca.co.id/openapi/v2.0/transfer-interbank
Request
Request Interbank Transfer via Switcher Sample
-H 'CHANNEL-ID':'95051'
-H 'X-PARTNER-ID': 'KBBABCINDO'
-H 'X-EXTERNAL-ID': '28910000006578499987546738976812'
-d '
{
"partnerReferenceNo": "2020102900000000000001",
"amount": {
"value": "10000.00",
"currency": "IDR"
},
"beneficiaryAccountName": "Yories Yolanda",
"beneficiaryAccountNo": "888801000157508",
"beneficiaryBankCode": "BRINIDJA",
"beneficiaryEmail": "yories.yolanda@work.bri.co.id",
"sourceAccountNo": "0123456789",
"transactionDate": "2020-12-21T14:36:11+07:00"
"additionalInfo": {
"transferType": "1",
"purposeCode": ""
}
}'
Request Interbank Transfer via BI-FAST Sample
-H 'CHANNEL-ID':'95051'
-H 'X-PARTNER-ID': 'KBBABCINDO'
-H 'X-EXTERNAL-ID': '28910000006578499987546738976812'
-d '
{
"partnerReferenceNo": "2020102900000000000001",
"amount": {
"value": "10000.00",
"currency": "IDR"
},
"beneficiaryAccountName": "Yories Yolanda",
"beneficiaryAccountNo": "888801000157508",
"beneficiaryBankCode": "BRINDIJA",
"beneficiaryEmail": "yories.yolanda@work.bri.co.id",
"sourceAccountNo": "0123456789",
"transactionDate": "2020-12-21T14:36:11+07:00",
"additionalInfo": {
"transferType": "2",
"purposeCode": "02"
}
}
curl –X POST https://sandbox.bca.co.id/openapi/v2.0/transfer-interbank
Response
Response Sample
{
"responseCode": "2001800",
"responseMessage": "Successful",
"referenceNo": "2020102977770000000009",
"partnerReferenceNo": "2020102900000000000001",
"amount": {
"value": "10000.00",
"currency": "IDR"
},
"beneficiaryAccountNo": "888801000157508",
"beneficiaryBankCode": "BRINDIJA",
"sourceAccountNo": "0123456789"
}
Error Sample
-H 'Content-type': 'application/json'
-H 'X-TIMESTAMP': '2020-12-17T13:50:04+07:00'
{
"responseCode": "4001801",
"responseMessage": "Invalid Field Format beneficiaryAccountNo",
"referenceNo": "",
"partnerReferenceNo": "2020102900000000000001",
"amount": {
"value": "10000.00",
"currency": "IDR"
},
"beneficiaryAccountNo": "888801000157508",
"beneficiaryBankCode": " BRINIDJA",
"sourceAccountNo": "0123456789"
"additionalInfo": {
"transferType": "1",
"purposeCode": ""
}
}
3. SNAP Banking Internal Account Inquiry
This service is used to inquiry BCA account.
This feature is not yet available to be accessed via Sandbox.
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(10) | Fixed | Y | 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 |
Response:
Field | Data Type | Length Type | Mandatory | Format | Description |
---|---|---|---|---|---|
responseCode | String (7) | Fixed | Y | Numeric | Response code |
responseMessage | String (150) | Max | Y | Alphanumeric | Response description |
referenceNo | String (64) | Max | Y | Numeric | This response will be sent as transaction identifier on service provider system. Must be filled upon successful transaction. |
partnerReferenceNo | String (64) | Max | N | Numeric | This response will be sent according to the request input. Transaction identifier on service consumer system |
beneficiaryAccountName | String (100) | Max | Y | Alphanumeric & Special Character | This response will be sent according to the request input. Beneficiary Account Name. The name returned is the name displayed on the channel, which have 24 digit characters. There is no special character validation, but the special characters displayed are: | @ # $ % ¬ & * ( ) _ + - = ¢ ! \ { } ] ; : , . / < > ? ` ^ |
beneficiaryAccountNo | String (10) | Fixed | Y | Numeric | This response will be sent according to the request input. Beneficiary account number. |
Here is the list of error codes that can be returned.
HTTP Code | Error Code | Error Message | Condition |
---|---|---|---|
400 | 4001500 | Bad request | General request failed error. |
400 | 4001501 | Invalid Field Format {field name} | The data you entered does not match the format requirements. |
400 | 4001502 | Invalid Mandatory Field {field name} | Mandatory field should be fulfilled. |
401 | 4011500 | Unauthorized. [Reason] | Invalid Signature/Unknown Client/Connection Not Allowed. |
401 | 4011501 | Invalid token (B2B) | Access Token Not Exist/Access Token Expired/Token is Invalid. |
403 | 4031501 | Feature Not Allowed | The feature is not allowed to use. Please make sure you registered this feature in your partnership data. |
409 | 4091500 | Conflict | X-EXTERNAL-ID duplicate. |
403 | 4031518 | Inactive Account | Indicates inactive account |
404 | 4041511 | Invalid Account | The account used in transaction not valid (do not exist/can’t be used for transactions). |
500 | 5001500 | General Error | Wrong request field input. |
500 | 5001501 | Internal Server Error | Unknown internal server failure, please retry the process again. |
504 | 5041500 | Timeout | Your transaction timeout. |
curl –X POST https://sandbox.bca.co.id/openapi/v1.0/account-inquiry-internal
Request
-H 'Content-type': 'application/json'
-H 'Authorization': 'Bearer gp9HjjEj813Y9JGoqwOeOPWbnt4CUpvIJbU1mMU4a11MNDZ7Sg5u9a'
-H 'X-TIMESTAMP': '2020-12-17T13:50:04+07:00'
-H 'X-SIGNATURE': '85be817c55b2c135157c7e89f52499bf0c25ad6eeebe04a986e8c862561b19a5'
-H 'ORIGIN': 'www.hostname.com'
-H 'CHANNEL-ID':'95051'
-H 'X-PARTNER-ID': 'KBBABCINDO'
-H 'X-EXTERNAL-ID': '28910000006578499987546738976812'
-d '
{
"partnerReferenceNo": "202010290000000001",
"beneficiaryAccountNo": "8010001575"
}
curl –X POST https://sandbox.bca.co.id/openapi/v1.0/account-inquiry-internal
Response
-H 'Content-type': 'application/json'
-H 'X-TIMESTAMP': '2020-12-17T13:50:04+07:00'
{
"responseCode": "2001500",
"responseMessage": "Successful",
"referenceNo": "202010297777000009",
"partnerReferenceNo": "202010290000000001",
"beneficiaryAccountName": "Yories Yolanda",
"beneficiaryAccountNo": "8010001575"
}
4. SNAP Banking Intrabank Transfer
This service is used to transfer BCA.
This feature is not yet available to be accessed via Sandbox.
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 | Data Type | Length Type | Mandatory | Format | Description |
---|---|---|---|---|---|
partnerReferenceNo | String (64) | Max | Y | - | Mandatory in BCA. Transaction identifier on service consumer system For transfers that begin with beneficiary account number inquiry using the SNAP Banking Internal Account Inquiry, it is required to use the same partnerReferenceNo with SNAP Banking Internal Account Inquiry that has been done. |
beneficiaryEmail | String (50) | Max | N | abc@domain.com | Optional in BCA. Beneficiary Email |
amount | Object | Y | Numeric | Mandatory in BCA. Net amount of the transaction |
|
value | String (16.2) | Max | Y | Decimal | Mandatory in BCA. If it’s IDR then value includes 2 decimal digits. BCA will send response amount with format value Numeric (13.2) |
currency | String (3) | Fixed | Y | ISO-4217 | Mandatory in BCA. Account currency type |
beneficiaryAccountNo | String (34) | Max | Y | Numeric | Mandatory in BCA. Beneficiary Account Number registered in BCA. For BCA, length account number is 10 digit |
remark | String (50) | Max | N | Optional in BCA. Remark/transac tion description. For BCA, remark is 36 digit divided in 2 field (remark 1 with 18 digit and remark 2 with 18 digit) with no special character |
|
sourceAccountNo | String (19) | Max | Y | Numeric | sourceAccountNo registered in BCA. For BCA, length account number is 10 digit |
transactionDate | String (25) | Max | Y | ISODateTime ISO-8601 |
Mandatory in BCA. Transaction date |
additionalInfo | Object | N | Additional information | ||
economicActivity | String (60) | Max | Y (if the beneficiaryAccountNumber are WNA citizenship) |
- | For details, please check on the Economic Activity table below |
transactionPurpose | String (2) | Fixed | Y (if the currency of beneficiaryAccountNumber are in SGD or USD) |
Numeric | 01 Pembelian barang / Purchase of Goods 02 Pembelian jasa / Purchase of Service 03 Pembayaran hutang / Debt Payment 04 Pembayaran pajak / Tax Payment 05 Impor / Import 06 Biaya Perjalanan Luar Negeri / Business Travel Expenses 07 Biaya remunerasi pegawai / Remuneration Expenses 08 Biaya administrasi / Administration Fee 09 Biaya overhead / Overhead Expenses 10 Simpanan dalam valas / Saving 11 Investasi Pembelian Obligasi Korporasi / Purchase of Corporate Bonds 12 Investasi Pembelian Surat Berharga Negara (SBN) / Purchase of Government Securities 13 Investasi Penyertaan Langsung / Direct Capital Investment 14 Penambahan modal kerja / Working Capital 15 Telah mendapat ijin BI / Approved by BI |
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 :
|
WNA | WNA | B :
|
Choose one of the economic activities according to the transaction needs.
Here is the list of error codes that can be returned.
HTTP Code | Error Code | Error Message |
---|---|---|
400 | 4001700 | Bad request |
400 | 4001702 | Invalid Mandatory Field {Field} |
400 | 4001701 | Invalid Field Format {Field} |
401 | 4011700 | Unauthorized. [Reason] |
401 | 4011701 | Invalid token (B2B) |
403 | 4031701 | Feature Not Allowed |
403 | 4031718 | Inactive Account |
403 | 4031702 | Exceeds Transaction Amount Limit |
403 | 4031704 | Activity Count Limit Exceeded |
403 | 4031714 | Insufficient Funds |
404 | 4041713 | Invalid Amount |
404 | 4041711 | Invalid Account |
409 | 4091700 | Conflict |
429 | 4291700 | Too Many Requests |
500 | 5001700 | General Error |
500 | 5001701 | Internal Server Error |
504 | 5041700 | Timeout |
If you get responseCode 5001701 (Internal Server Error) from BCA, please make sure to check your account statement before retry the transaction.
curl –X POST https://sandbox.bca.co.id/openapi/v1.0/transfer-intrabank
Request
-H 'CHANNEL-ID':'95051'
-H 'X-PARTNER-ID': 'KBBABCINDO'
-d '
{
"partnerReferenceNo": "2020102900000000000001",
"amount": {
"value": "10000.00",
"currency": "IDR"
},
"beneficiaryAccountNo": "888801000157508",
"beneficiaryEmail": "yories.yolanda@work.co.id",
"remark": "remark test",
"sourceAccountNo": "888801000157508",
"transactionDate": "2020-12-21T10:30:24+07:00",
"additionalInfo": {
"economicActivity": "Biaya Hidup Pihak Asing",
"transactionPurpose": "01"
}
}
curl –X POST https://sandbox.bca.co.id/openapi/v1.0/transfer-intrabank
Response
{
"responseCode": "2001700",
"responseMessage": "Successful",
"referenceNo": "2020102977770000000009",
"partnerReferenceNo": "2020102900000000000001",
"amount": {
"value": "10000.00",
"currency": "IDR"
},
"beneficiaryAccountNo": "888801000157508",
"sourceAccountNo": "888801000157508",
"transactionDate": "2020-12-21T10:30:24+07:00",
"additionalInfo": {
"economicActivity": "Biaya Hidup Pihak Asing",
"transactionPurpose": "01"
}
}
5. SNAP Banking Notify RTGS
This service is used to Transfer RTGS Notification.
This feature is not yet available to be accessed via Sandbox.
Field | Params Type | Data Type | Length Type | Mandatory | Description |
---|---|---|---|---|---|
CHANNEL-ID | Header | String(5) | Fixed | Y | Channel’ Identifier |
X-PARTNER-ID | Header | String(32) | Max | Y | 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 “(“ |
Response:
Field | Data Type | Length Type | Mandatory | Format | Description |
---|---|---|---|---|---|
responseCode | String (7) | Fixed | Y | - | Response code |
responseMessage | String(150) | Max | Y | - | Response description |
curl –X POST https://copartners.com/openapi/v1.0/transfer-rtgs/notify
Request
-H 'CHANNEL-ID':'95051'
-H 'X-PARTNER-ID': 'KBCABCINDO'
-d '
{
"originalPartnerReferenceNo": "2020102900000000000001",
"originalReferenceNo": "2020102977770000000009",
"originalExternalId": "10052019",
"latestTransactionStatus": "00",
"amount": {
"value": "10000.00",
"currency": "IDR"
},
"beneficiaryAccountName": "Yories Yolanda",
"beneficiaryAccountNo": "888801000003301",
"beneficiaryBankCode": "002",
"sourceAccountNo": "1234567890",
"transactionDate": "2020-12-21T14:06:21+07:000",
"additionalInfo": {
"rejectStatusID": "Nomor rekening tidak terdaftar",
"rejectStatusEN": "Account number is not registered",
"traceNo": "(DAC8"
}
}'
curl –X POST https://copartners.com/openapi/v1.0/transfer-rtgs/notify
Response
{
"responseCode": "2007600",
"responseMessage": "Successful"
}
6. SNAP Banking Notify SKNBI
This service is used to Transfer SKN Notification.
This feature is not yet available to be accessed via Sandbox.
Field | Params Type | Data Type | Mandatory | Description |
---|---|---|---|---|
CHANNEL-ID | Header | String(5) | Y | Channel’ Identifier |
X-PARTNER-ID | Header | String(32) | Y | 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 “(“ |
Response:
Field | Data Type | Length Type | Mandatory | Format | Description |
---|---|---|---|---|---|
responseCode | String (7) | Fixed | Y | - | Response code |
responseMessage | String(150) | Max | Y | - | Response description |
curl –X POST https://copartners.com/openapi/v1.0/transfer-skn/notify
Request
-H 'CHANNEL-ID':'95051'
-H 'X-PARTNER-ID': 'KBCABCINDO'
-d '
{
"originalPartnerReferenceNo": "2020102900000000000001",
"originalReferenceNo": "2020102977770000000009",
"originalExternalId": "10052019",
"latestTransactionStatus": "00",
"amount": {
"value": "10000.00",
"currency": "IDR"
},
"beneficiaryAccountName": "Yories Yolanda",
"beneficiaryAccountNo": "888801000003301",
"beneficiaryBankCode": "002",
"sourceAccountNo": "1234567890",
"transactionDate": "2020-12-21T14:06:21+07:000",
"additionalInfo": {
"rejectStatusID": "Nomor rekening tidak terdaftar",
"rejectStatusEN": "Account number is not registered",
"traceNo": "(DAC8"
}
}'
curl –X POST https://copartners.com/openapi/v1.0/transfer-skn/notify
Response
{
"responseCode": "2007500",
"responseMessage": "Successful"
}
7. SNAP Banking RTGS Transfer
This service is used to transfer RTGS.
This feature is not yet available to be accessed via Sandbox.
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 | 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 |
Response:
Field | Data Type | Length Type | Mandatory | Format | Description |
---|---|---|---|---|---|
partnerReferenceNo | String(64) | Max | N | - | Send by BCA according to the request input. Transaction identifier on sevice consumer system |
responseCode | String (7) | Fixed | Y | - | Response code |
responseMessage | String(150) | Max | Y | - | Response description |
referenceNo | String (64) | Max | N | Numeric | Send by BCA. Transaction identifier on service provider system. Must be filled upon successful transaction. |
amount | Object | Y | |||
value | String (16.2) | Max | Y | Decimal | Send by BCA according to the request input. Net amount of the transaction. If it’s IDR then value includes 2 decimal digits. In BCA, max length = 13.2 |
currency | String (3) | Fixed | Y | ISO-4217 | Send by BCA according to the request input. Currency |
beneficiaryAccountName | String (100) | Max | Y | - | Send by BCA according to the request input. Beneficiary Account Name |
beneficiaryAccountNo | String (34) | Max | Y | Numeric | Send by BCA according to the request input. Beneficiary accoun |
beneficiaryBankCode | String (8) | Max | N | BCA : SWIFT | Send by BCA according to the request input. Beneficiary Bank Code |
sourceAccountNo | String (19) | Max | N | - | Send by BCA according to the request input. Source account. For BCA account 10 digits |
traceNo | String (16) | Max | N | - | Send by BCA. Number for tracking to destination bank. In BCA, traceNo = ppu_number with prefix “(” and the length is 5 |
transactionDate | String (25) | Max | Y | ISO-8601 | Send by BCA according to the request input. Transaction date |
transactionStatus | String (2) | Fixed | Y | Numeric |
00 - Success 03 – Pending 06 – Failed |
Here is the list of error codes that can be returned.
HTTP Code | Error Code | Error Message |
---|---|---|
400 | 4002200 | Bad request |
400 | 4002201 | Invalid Field Format {field} |
400 | 4002202 | Invalid Mandatory Field {Field} |
401 | 4012200 | Unauthorized. [Reason] |
401 | 4012201 | Invalid token (B2B) |
403 | 4032201 | Feature Not Allowed |
403 | 4032202 | Exceeds Transaction Amount Limit |
403 | 4032204 | Activity Count Limit Exceeded |
403 | 4032206 | Feature Not Allowed At This Time. The transaction has exceeded time limit for today processing |
403 | 4032206 | Feature Not Allowed At This Time. Transfer service to other bank is temporarily closed |
403 | 4032214 | Insufficient Funds |
403 | 4032218 | Inactive Account |
404 | 4042211 | Invalid Account |
404 | 4042213 | Invalid Amount |
404 | 4041802 | Invalid Routing |
409 | 4092200 | Conflict |
500 | 5002201 | Internal Server Error |
504 | 5042200 | Timeout |
If you get responseCode 5002201 (Unknown Error/Unknown internal server failure, please retry the process again) from BCA, please make sure to check your account statement before retry the transaction.
curl –X POST https://sandbox.bca.co.id/openapi/v1.0/transfer-rtgs
Request
-H 'CHANNEL-ID':'95051'
-H 'X-PARTNER-ID': 'KBBABCINDO'
-d '
{
"partnerReferenceNo": "2020102900000000000001",
"amount": {
"value": "10000.00",
"currency": "IDR"
},
"beneficiaryAccountName": "Yories Yolanda",
"beneficiaryAccountNo": "888801000157508",
"beneficiaryAddress": "Palembang",
"beneficiaryBankCode": "002",
"beneficiaryCustomerResidence": "1",
"beneficiaryCustomerType": "1",
"beneficiaryEmail": "yories.yolanda@work.bri.co.id",
"remark": "remark test",
"sourceAccountNo": "1234567899",
"transactionDate": "2020-12-21T14:36:11+07:00"
}'
curl –X POST https://sandbox.bca.co.id/openapi/v1.0/transfer-rtgs
Response
{
"responseCode": "2002200",
"responseMessage": "Request has been processed successfully",
"referenceNo": "2020102977770000000009",
"partnerReferenceNo": "2020102900000000000001",
"amount": {
"value": "10000.00",
"currency": "IDR"
},
"beneficiaryAccountName": "Yories Yolanda",
"beneficiaryAccountNo": "888801000157508",
"beneficiaryBankCode": "002",
"sourceAccountNo": "1234567899",
"traceNo": "(DAC8",
"transactionDate": "2020-12-21T14:36:11+07:00",
"transactionStatus": "00"
}
8. SNAP Banking SKNBI Transfer
This service is used to transfer SKN.
This feature is not yet available to be accessed via Sandbox.
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 | 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 |
Response:
Field | Data Type | Length Type | Mandatory | Format | Description |
---|---|---|---|---|---|
partnerReferenceNo | String(64) | Max | N | - | Send by BCA according to the request input. Transaction identifier on service consumer system |
responseCode | String (7) | Fixed | Y | - | Response code |
responseMessage | String(150) | Max | Y | - | Response description |
referenceNo | String (64) | Max | N | Numeric | Send by BCA. Transaction identifier on service provider system. Must be filled upon successful transaction. |
amount | Object | Y | |||
value | String (16.2) | Max | Y | Decimal | Send by BCA according to the request input. Net amount of the transaction. If it’s IDR then value includes 2 decimal digits. In BCA, max length = 13.2 |
currency | String (3) | Fixed | Y | ISO-4217 | Send by BCA according to the request input. Currency |
beneficiaryAccountName | String (100) | Max | Y | - | Send by BCA according to the request input. Beneficiary Account Name |
beneficiaryAccountNo | String (34) | Max | Y | Numeric | Send by BCA according to the request input. Beneficiary accoun |
beneficiaryBankCode | String (8) | Max | N | BCA : SWIFT | Send by BCA according to the request input. Beneficiary Bank Code |
sourceAccountNo | String (19) | Max | N | - | Send by BCA according to the request input. Source account. For BCA account 10 digits |
traceNo | String (16) | Max | N | - | Send by BCA. Number for tracking to destination bank. In BCA, traceNo = ppu_number with prefix “(” and the length is 5 |
transactionDate | String (25) | Max | Y | ISO-8601 | Send by BCA according to the request input. Transaction date |
transactionStatus | String (2) | Fixed | Y | Numeric |
00 - Success 03 – Pending 06 – Failed |
Here is the list of error codes that can be returned.
HTTP Code | Error Code | Error Message |
---|---|---|
400 | 4002300 | Bad request |
400 | 4002301 | Invalid Field Format {field} |
400 | 4002302 | Invalid Mandatory Field {Field} |
401 | 4012300 | Unauthorized. [Reason] |
401 | 4012301 | Invalid token (B2B) |
403 | 4032301 | Feature Not Allowed |
403 | 4032302 | Exceeds Transaction Amount Limit |
403 | 4032304 | Activity Count Limit Exceeded |
403 | 4032306 | Feature Not Allowed At This Time. The transaction has exceeded time limit for today processing |
403 | 4032306 | Feature Not Allowed At This Time. Transfer service to other bank is temporarily closed |
403 | 4032314 | Insufficient Funds |
403 | 4032318 | Inactive Account |
404 | 4042311 | Invalid Account |
404 | 4042313 | Invalid Amount |
404 | 4041802 | Invalid Routing |
409 | 4092300 | Conflict |
500 | 5002301 | Internal Server Error |
504 | 5042300 | Timeout |
If you get responseCode 5002301 (Unknown Error/Unknown internal server failure, please retry the process again) from BCA, please make sure to check your account statement before retry the transaction.
curl –X POST https://sandbox.bca.co.id/openapi/v1.0/transfer-skn
Request
-H 'CHANNEL-ID':'95051'
-H 'X-PARTNER-ID': 'KBBABCINDO'
-d '
{
"partnerReferenceNo": "2020102900000000000001",
"amount": {
"value": "10000.00",
"currency": "IDR"
},
"beneficiaryAccountName": "Yories Yolanda",
"beneficiaryAccountNo": "888801000157508",
"beneficiaryAddress": "Palembang",
"beneficiaryBankCode": "002",
"beneficiaryCustomerResidence": "1",
"beneficiaryCustomerType": "1",
"beneficiaryEmail": "yories.yolanda@work.bri.co.id",
"remark": "remark test",
"sourceAccountNo": "1234567899",
"transactionDate": "2020-12-21T14:36:11+07:00"
}'
curl –X POST https://sandbox.bca.co.id/openapi/v1.0/transfer-skn
Response
{
"responseCode": "2002300",
"responseMessage": "Request has been processed successfully",
"referenceNo": "2020102977770000000009",
"partnerReferenceNo": "2020102900000000000001",
"amount": {
"value": "10000.00",
"currency": "IDR"
},
"beneficiaryAccountName": "Yories Yolanda",
"beneficiaryAccountNo": "888801000157508",
"beneficiaryBankCode": "002",
"sourceAccountNo": "1234567899",
"traceNo": "(DAC8",
"transactionDate": "2020-12-21T14:36:11+07:00",
"transactionStatus": "00",
}
9. SNAP Banking Transaction Status Inquiry
This service is used to transfer BCA.
This feature is not yet available to be accessed via Sandbox.
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 |
X-EXTERNAL-ID | Header | String(32) | Max | Y | Numeric String. Reference number that should be unique in the same day. |
Payload:
Field | Data Type | Length Type | Mandatory | Format | Description |
---|---|---|---|---|---|
originalPartnerReferenceNo | String (64) | Max | N | - | Original transaction identifier on service from partner |
originalExternalId | String (32) | Max | Y | Numeric | Original External-ID on header message |
serviceCode | String (2) | Fixed | Y | Numeric |
Transaction type indicator (service code of the original transaction request) Service code of original transaction that can be requested 17 : Service Intrabank Transfer 18 : Service Interbank Transfer 22 : Service Interbank Transfer RTGS 23 : Service Interbank Transfer SKN 33 : Service Payment to VA from Intrabank |
transactionDate | String (25) | Max | Y | ISODateTime ISO-8601 |
Transfer Transaction date |
Note :
Transaction Status Inquiry can only make inquiries on the status of the transaction below via Open API.
- Intrabank Transfer
- Interbank Transfer
- RTGS Transfer
- SKNBI Transfer
- Payment to VA from Intrabank
Transaction that can be inquired are only valid for the past 31 days.
Response:
Field | Data Type | Length Type | Mandatory | Format | Description |
---|---|---|---|---|---|
responseCode | String (7) | Fixed | Y | - | Response code |
responseMessage | String(150) | Max | Y | - | Response description |
originalReferenceNo | String (64) | Max | N | Numeric | Original transaction identifier on service provider system. Only mandatory if original transaction is successful. |
originalPartnerReferenceNo | String (64) | Max | N | - | This response will be sent according to the request input.
Original transaction identifier on service customer system |
originalExternalId | String (32) | Max | N | Numeric | This response will be sent according to the request input.
Original External-ID on header message |
serviceCode | String (2) | Fixed | Y | Numeric | This response will be sent according to the request input.
Transaction type indicator (service code of the original transaction request) Service code of original transaction that can be checked 17 : Service Intrabank Transfer 18 : Service Interbank Transfer 22 : Service Interbank Transfer RTGS 23 : Service Interbank Transfer SKN 33 : Service Payment to VA |
transactionDate | String (25) | Max | N | ISODateTime ISO-8601 |
This response will be sent according to the request input.
Transaction date |
amount | Object | - | Y | - | Net amount of the transaction |
value | String (13.2) | Max | Y | Numeric | If it’s IDR then value includes 2 decimal digits. BCA will send response amount with format value Numeric (13.2) |
currency | String (3) | Fixed | Y | ISO-4217 | Currency of the amount |
beneficiaryAccountNo | String (34) | Max | Y | Numeric | Beneficiary account number |
beneficiaryBankCode | String (8) | Max | N | SWIFT Code/ 3 digit bank code |
Beneficiary Bank Code. In BCA using SWIFT Code or 3 digit bank code (if destination doesn’t have SWIFT Code). Beneficiary Bank Code can be checked on KBB menu : Miscellaneous > Information > Bank Code List |
referenceNumber | String (30) | Max | N | Numeric |
Transaction identifier on service provider system. Unique each day from BCA Must be filled upon successful transaction. |
sourceAccountNo | String (10) | Max | Y | Numeric | Source Account Number. |
latestTransactionStatus | String (2) | Fixed | Y | Numeric |
Transfer status code that sent is the highlighted status code. 00 - Success 03 - Pending 06 – Failed |
transactionStatusDesc | String(50) | Max | N | Description status transaction 00 : Transaction Success 03 : Transaction In Progress 06 : Response message from failed transaction |
HTTP Code | Error Code | Error Message | Condition |
---|---|---|---|
400 | 4003600 | Bad request | General request failed error. |
400 | 4003601 | Invalid Field Format {field} | The data you entered does not match the format requirements. |
400 | 4003602 | Invalid Mandatory Field {Field} | Mandatory field should be fulfilled. |
401 | 4013600 | Unauthorized. [Reason] | Invalid Signature/Unknown Client/Connection Not Allowed. |
401 | 4013601 | Invalid token (B2B) | Access Token Not Exist/Access Token Expired/Token is Invalid. |
403 | 4033601 | Feature Not Allowed | The feature is not allowed to use. Please make sure you registered this feature in your partnership data. |
404 | 4043601 | Transaction not found | Transaction not found. |
409 | 4093600 | Conflict | X-EXTERNAL-ID duplicate. |
429 | 4293600 | Too Many Requests | Maximum transaction limit exceeded. |
500 | 5003600 | General Error | Wrong request field input. |
500 | 5003601 | Internal Server Error | Unknown internal server failure, please retry the process again. |
504 | 5043600 | Timeout | Your transaction timeout. |
curl –X POST https://sandbox.bca.co.id/openapi/v1.0/transfer/status
Request
-H 'CHANNEL-ID':'95051'
-H 'X-PARTNER-ID': 'KBBABCINDO'
-H 'X-EXTERNAL-ID': '28910000006578499987546738976812'
-d '
{
"originalPartnerReferenceNo": "2020102900000000000001",
"originalExternalId": "30443786930722726463280097920912",
"serviceCode": "17",
"transactionDate": "2023-02-02T00:00:00+07:00"
}'
curl –X POST https://sandbox.bca.co.id/openapi/v1.0/transfer/status
Response
Inquiry Successful Status Transaction
-H 'Content-type': 'application/json'
-H 'X-TIMESTAMP': '2020-12-17T13:50:04+07:00'
{
"responseCode": "2003600",
"responseMessage": "Successful",
"originalReferenceNo": "2010297777000009",
"originalPartnerReferenceNo": "2020102900000000000001",
"originalExternalId": "30443786930722726463280097920912",
"serviceCode": "17",
"transactionDate": "2023-02-02T00:00:00+07:00",
"amount": {
"value": "10000.00",
"currency": "IDR"
},
"beneficiaryAccountNo": "888801000157508",
"beneficiaryBankCode": "BRINIDJA",
"referenceNumber": "10052019",
"sourceAccountNo": "888801000157508",
"latestTransactionStatus": "00",
"transactionStatusDesc": "Transaction Success"
}
Inquiry Pending/Failed Status Transaction
-H 'Content-type': 'application/json'
-H 'X-TIMESTAMP': '2020-12-17T13:50:04+07:00'
{
"responseCode": "2003600",
"responseMessage": "Successful",
"originalReferenceNo": "",
"originalPartnerReferenceNo": "2020102900000000000001",
"originalExternalId": "30443786930722726463280097920912",
"serviceCode": "17",
"transactionDate": "2023-02-02T00:00:00+07:00",
"amount": {
"value": "10000.00",
"currency": "IDR"
},
"beneficiaryAccountNo": "888801000157508",
"beneficiaryBankCode": "BRINIDJA",
"referenceNumber": "10052019",
"sourceAccountNo": "888801000157508",
"latestTransactionStatus": "03",
"transactionStatusDesc": "Transaction in Progress"
}
Collection
1. Account Debiting Consent Notification
Your Request must contain following information:
Request
Field | Data Type | Mandatory | Length Type | Format | Description |
---|---|---|---|---|---|
request_id | String(33) | Y | 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) | N | Max Length | - | |
indonesia | String(50) | N | Max Length | - |
Field | DataType | Mandatory | Description |
---|---|---|---|
request_id | String(33) | Y (if SKPR Digital) | Request ID if SKPR Digital |
response_ws | String(1) | Y | Response 0 = Success 1 = Failed |
POST https://copartners.com/account-authorization/notification
Request
SKPR Digital Success
POST https://copartners.com/account-authorization/notification
-d '{
"request_id" : "A2AAB46BE91573E6E05400144FFED17AB",
"customer_id_merchant" : "081818181818181",
"customer_name" : "nama pelanggan",
"db_account_no" : "0611112221",
"status" : "01"
} '
Request for registration SKPR Digital (failed)
POST https://copartners.com/account-authorization/notification
-d '{
"request_id" : "A2AAB46BE91573E6E05400144FFED17AB",
"customer_id_merchant" : "081818181818181",
"customer_name" : "nama pelanggan",
"status" : "02",
"reason" : {
"english" : "Invalid Account",
"indonesia" : "Rekening tidak valid"
}
} '
Request for delete SKPR Digital (success)
POST https://copartners.com/account-authorization/notification
-d '{
"request_id" : "A2AAB46BE91573E6E05400144FFED17AB",
"customer_id_merchant" : "081818181818181",
"customer_name" : "nama pelanggan",
"db_account_no" : "0611112221",
"status" : "03"
} '
Request for delete SKPR Digital (failed)
POST https://copartners.com/account-authorization/notification -d '{
"customer_id_merchant" : "081818181818181",
"db_account_no" : "0611112221",
"status" : "04",
"reason" : {
"english" : "Invalid Account",
"indonesia" : "Rekening tidak valid"
}
} '
Request for delete SKPR Conventional (success)
POST https://copartners.com/account-authorization/notification
-d '{
"customer_id_merchant" : "081818181818181",
"db_account_no" : "0611112221",
"status" : "03"
} '
Request for delete SKPR Conventional (failed)
POST https://copartners.com/account-authorization/notification
-d '{
"customer_id_merchant" : "081818181818181",
"db_account_no" : "0611112221",
"status" : "04",
"reason" : {
"english" : "Invalid Account",
"indonesia" : "Rekening tidak valid"
}
} '
POST https://copartners.com/account-authorization/notification
Response
Response for SKPR Digital
{
"request_id" : "A2AAB46BE91573E6E05400144FFED17AB”,
"response_ws" : "0"
}
Response for SKPR Conventional
{
"response_ws" : "0"
}
2. Add Fund Collection
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) | Y | Sender's Transaction Reference ID. Format: Numeric. |
RequestType | String(2) | Y | B = With Blocking, NB = Without Blocking. Format: B or NB. |
DebitedAccount | String(10) | O | Account to be debited, please make sure you have authority to debit the account. Mandatory ONLY IF RequestType = NB (Without Blocking). Otherwise must left empty. Format: Numeric. |
Amount | String(16) | Y | Maximum length is 16, include decimal amount. Format: Numeric, 13.2 |
Currency | String(3) | Y | Currently is IDR only. |
CreditedAccount | String(10) | Y | Account to be credited. Must be registered as own account at KlikBCA Bisnis. |
EffectiveDate | String(10) | Y | Transaction Effective Date. Max : 366 days. Format: yyyy-MM-dd. |
TransactionDate | String(10) | Y | The date of the Transaction. Format: yyyy-MM-dd. |
Remark1 | String(18) | Y | Transfer remark for receiver. |
Remark2 | String(18) | Y | Transfer remark for receiver. |
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 |
HTTP Code | Error Code | Error Message (Indonesian) | Error Message (English) | Additional Information |
---|---|---|---|---|
400 | ESB-07-575 | Sistem BCA sedang dalam pemeliharaan | BCA system on maintenance | System under maintenance. |
400 | ESB-14-001 | HMAC tidak cocok | HMAC mismatch | Please check generate signature process. |
400 | ESB-14-002 | Permintaan tidak valid | Invalid request | Invalid request. |
400 | ESB-14-003 | Timestamp tidak valid | Invalid timestamp | Invalid timestamp format. |
500 | ESB-14-005 | Sistem sedang dalam maintenance | System under maintenance | System under maintenance. |
401 | ESB-14-008 | client_id/client_secret/grant _type tidak valid | Invalid client_id/client_secret/grant_ty pe | Invalid client_id/client_secret/grant_ty pe. |
401 | ESB-14-009 | Tidak berhak | Unauthorized | Invalid Signature/Unknown Client/Connection Not Allowed. |
429 | ESB-14-010 | Jumlah permintaan melebihi limit | Limit request exceeded | Limit request exceeded. |
404 | ESB-14-011 | Service tidak ada | Service doesn't exist | Invalid service, please check service’s URI. |
401 | ESB-14-012 | Tidak berhak mengakses service ini | Not allowed to access this service | The feature is not allowed to use. Please make sure you registered this feature in your partnership data. |
401 | ESB-14-014 | ChannelID/CredentialID tidak valid | Invalid ChannelID/CredentialID | Channel ID : 95051 Credential ID : KlikBCA Bisnis Corporate ID. |
400 | ESB-14-015 | Content Type tidak valid | Invalid Content Type | Invalid Content Type |
400 | ESB-14-016 | Format JSON tidak valid | Invalid JSON format | Invalid JSON format. |
504 | ESB-14-023 | Koneksi Timeout. Silakan cek transaksi kembali untuk memastikan keberhasilan transaksi Anda. | Connection timeout. Please reinquiry your transaction to ensure transaction status. | Please check your account statement before retry the transaction. |
400 | ESB-82-003 | TransactionID tidak unik | TransactionID not unique | Please provide unique TransactionID. |
400 | ESB-82-006 | Nominal Transaksi melebihi Limit Maksimum | Transaction amount is greater than Maximum Limit Allowed | Your transaction amount exceeds your company limit. Please check your Company Limit at KlikBCA Bisnis. |
400 | ESB-82-007 | Tanggal efektif lebih kecil dari tanggal hari ini | Effective Date is smaller than today | Effective Date is smaller than today. |
400 | ESB-82-015 | Nominal transaksi kurang dari Limit Minimum | Transaction amount is smaller than Minimum Limit Allowed | Your transaction amount below your company limit. Please check your Company Limit at KlikBCA Bisnis. |
400 | ESB-82-019 | Saldo tidak cukup | Insufficient fund | Account balance insufficient for the transaction. |
400 | ESB-82-027 | Amount harus lebih dari nol | Amount must be greater than zero | Amount must be greater than zero |
400 | ESB-82-030 | Untuk Request Type: B, field DebitedAccount tidak diperlukan | For Request Type: B, field DebitedAccount is not necessary | DebitedAccount field only for Request type : NB. |
400 | ESB-82-031 | Frekuensi transaksi telah melebihi batas maksimum | Transaction frequency has exceeded the maximum number | Too many request, Exceeds Transaction Frequency Limit. Please check your Company Limit at KlikBCA Bisnis. |
400 | ESB-82-177 | Tidak memiliki kuasa debet atas rekening debet | Not authorized to debit the debited account | Authorization to debit the debited account is not found in the system. Please make sure you have authority to debit the account. |
400 | ESB-82-178 | Rekening tidak aktif | Inactive Account | The credited or debited account cannot be used for transaction. The account may be closed or blocked. |
400 | ESB-99-009 | Field (0) harus diisi | Missing mandatory field (0) | Mandatory field must be filled. |
400 | ESB-99-022 | 2 Format alamat email tidak sesuai | Email address format is not valid | Check your email address format. Valid email address example : example@email.com. |
400 | ESB-99-040 | Tipe isian field (0) tidak valid | Input type for field (0) not valid | Please refer to request format above. |
400 | ESB-99-112 | Input string JSON tidak valid | Invalid JSON string input | Please check JSON string input |
400 | ESB-99-128 | Panjang field (0) melebihi ketentuan | Field (0) exceed limit | Please refer to request format above. |
400 | ESB-99-155 | Mata uang harus IDR | Currency must in IDR | The currency must in IDR. |
400 | ESB-99-173 | Format tanggal tidak sesuai | Invalid date format | Valid date format : yyyy-MM-dd |
400 | ESB-99-211 | Panjang field (0) tidak valid | Invalid (0) field length | Please check field length according to request-response format above. |
400 | ESB-99-376 | Format (0) tidak sesuai | Invalid field (0) format | Amount format is not valid. Please refer to request format above. |
400 | ESB-99-407 | Nomor rekening tidak terdaftar sebagai rekening operasional | Account number not registered as operational account | Please make sure the credited account already registered as operational account in KlikBCA Bisnis. |
400 | ESB-99-524 | ReferenceID sudah ada | ReferenceID already exists | ReferenceID already exists. |
400 | ESB-99-533 | Field (0) harus numerik | Field (0) should be numeric | Only use numeric format. |
400 | ESB-99-573 | TransactionDate harus diisi dengan tanggal hari ini | Transaction Date must be filled with today's date | Transaction Date must be filled with today's date. |
400 | ESB-99-670 | Jenis transaksi tidak diijinkan | Transaction Type not allowed | Please make sure your KlikBCA Bisnis package has AutoCollection Satuan features. |
400 | ESB-99-676 | Status blokir tidak aktif | Hold status is inactive | Hold status is inactive. |
400 | ESB-99-677 | Rekening Invalid | Invalid Account | Account not found. |
400 | ESB-99-999 | Sistem sedang tidak tersedia | System unavailable | System unavailable at the moment. |
400 | ESB-99-999 | Koneksi Timeout. Silakan cek transaksi kembali untuk memastikan keberhasilan transaksi Anda. | Connection timeout. Please reinquiry your transaction to ensure transaction status. | Please check your account statement before retry the transaction. |
POST /fund-collection/v2
Request
POST /fund-collection/v2 HTTP/1.1
Host: sandbox.bca.co.id
-H "ChannelID:95051"
-H "CredentialID:ABCDEFGHIJ"
-d "{
"TransactionID" : "0000000001",
"ReferenceNumber" : "1111111110",
"RequestType" : "NB",
"DebitedAccount" : "1234567890",
"Amount" : "100200300.00",
"Currency" : "IDR",
"CreditedAccount" : "1234567891",
"EffectiveDate" : "2018-02-15",
"TransactionDate" : "2018-02-15",
"Remark1" : "Testing block 1",
"Remark2" : "Testing block 2",
"Email" : "beneficiary@mail.com"
}"
POST /fund-collection/v2
Response
{
"TransactionID" : "0000000001",
"ReferenceID"" : "1111111110",
"DebitedAccount" : "1234567890",
"Amount" : "100200300.00",
"Currency" : "IDR",
"CreditedAccount" : "1234567891",
"EffectiveDate" : "2018-02-15",
"TransactionDate" : "2018-02-15"
"Status"" : "TRAN SUCCESSFUL",
}
3. Inquiry Status Kuasa Pendebetan Rekening
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) | Y | 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 |
HTTP Code | Error Code | Error Message (Indonesian) | Error Message (English) |
---|---|---|---|
400 | 3-2-100 | ID pelanggan harus diisi | Customer ID cannot be empty |
400 | 3-2-100 | ID pelanggan tidak valid | Invalid customer ID |
400 | 3-2-100 | Nama pelanggan harus diisi | Customer name cannot be empty |
400 | 3-2-100 | Nama pelanggan tidak valid | Invalid customer name |
400 | 3-2-100 | Tipe debit harus diisi | Debit type cannot be empty |
400 | 3-2-100 | Tipe debit tidak valid | Invalid debit type |
400 | 3-2-100 | Jumlah pembayaran harus diisi | Amount cannot be empty |
400 | 3-2-100 | Jumlah pembayaran tidak valid | Invalid amount |
400 | 3-2-101 | Kode perusahaan tidak valid | Invalid company code |
400 | 3-2-300 | Registrasi Kuasa Debet telah melebihi batas maksimal. Silahkan hubungi Halo BCA untuk informasi lebih lanjut |
Account Authorization registrastion already exceed the limit. Please contact Halo BCA for the further information |
400 | 3-2-307 | ID pelanggan sudah aktif | Customer ID already active |
400 | 3-2-325 | Data pelanggan tidak ditemukan | Customer data not found |
400 | 3-2-300 | Transaksi tidak dapat diproses. Silahkan ulangi beberapa saat lagi | Transaction cannot be completed. Please try again later |
400 | 3-2-998 | Transaksi gagal. Silahkan ulangi beberapa saat lagi | Transaction failed. Please try again later. |
400 | 3-2-999 | Transaksi tidak dapat diproses. Silahkan ulangi beberapa saat lagi | Transaction cannot be completed. Please try again later |
GET /account-authorization/inquiry/{customer_id_merchant}
Request
GET /account-authorization/inquiry/081818181818181 HTTP/1.1
Host: sandbox.bca.co.id
Authorization: Bearer [access_token]
Content-Type: application/json
Origin: [yourdomain.com]
X-BCA-Key: [api_key]
X-BCA-Timestamp: [timestamp]
X-BCA-Signature: [signature]
ChannelID: [channelID]
CredentialID: [credentialID]
GET /account-authorization/inquiry/{customer_id_merchant}
Response
{
"customer_id_merchant" : "081818181818181",
"skpr_pending" : [
{
"request_id" : "A9DB1D7A9CE804C5E05400144FFED17A"",
"status" : "03""
},
{
"request_id" : "A9DB1D7A9CE704C5E05400144FFED17A"",
"status" : "02"",
"failed_date" : "2020-07-06"
}
],
"skpr_active" : [
{
"skpr_id" : "A7C6791C9ADC6CB9E05400144FFED17A"",
"db_account_no" : "0250995514"",
"active_date" : "2020-06-11"
}
]
}
4. Pencabutan Kuasa Pendebetan Rekening
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) | Y | Customer Account No |
Response
Field | DataType | Mandatory | Description |
---|---|---|---|
customer_id_merchant | String(15) | Y | Customer ID Merchant |
db_account_no | String(10) | Y | Customer Account No |
status | String(11) | Y | Default status “In Progress” |
HTTP Code | Error Code | Error Message (Indonesian) | Error Message (English) |
---|---|---|---|
400 | 3-2-100 | ID pelanggan harus diisi | Customer ID cannot be empty |
400 | 3-2-100 | ID pelanggan tidak valid | Invalid customer ID |
400 | 3-2-100 | Nama pelanggan harus diisi | Customer name cannot be empty |
400 | 3-2-100 | Nama pelanggan tidak valid | Invalid customer name |
400 | 3-2-100 | Tipe debit harus diisi | Debit type cannot be empty |
400 | 3-2-100 | Tipe debit tidak valid | Invalid debit type |
400 | 3-2-100 | Jumlah pembayaran harus diisi | Amount cannot be empty |
400 | 3-2-100 | Jumlah pembayaran tidak valid | Invalid amount |
400 | 3-2-101 | Kode perusahaan tidak valid | Invalid company code |
400 | 3-2-300 | Registrasi Kuasa Debet telah melebihi batas maksimal. Silahkan hubungi Halo BCA untuk informasi lebih lanjut |
Account Authorization registrastion already exceed the limit. Please contact Halo BCA for the further information |
400 | 3-2-307 | ID pelanggan sudah aktif | Customer ID already active |
400 | 3-2-325 | Data pelanggan tidak ditemukan | Customer data not found |
400 | 3-2-300 | Transaksi tidak dapat diproses. Silahkan ulangi beberapa saat lagi | Transaction cannot be completed. Please try again later |
400 | 3-2-998 | Transaksi gagal. Silahkan ulangi beberapa saat lagi | Transaction failed. Please try again later. |
400 | 3-2-999 | Transaksi tidak dapat diproses. Silahkan ulangi beberapa saat lagi | Transaction cannot be completed. Please try again later |
DELETE /accountauthorization/customer/832789861532974/account-number/51421329865
Request
curl –X DELETE https://sandbox.bca.co.id/accountauthorization/customer/832789861532974/account-number/51421329865
-H 'channel-id':'95051'
-H 'credential-id': '00000001'
DELETE /accountauthorization/customer/832789861532974/account-number/51421329865
Response
{
"customer_id_merchant": "832789861532974",
"db_account_no": "51421329865",
"status" : "In Progress"
}
5. Pendaftaran Kuasa Pendebetan rekening
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 | Y | 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 | N | Merchant logo URL to display on webview |
Response
Field | DataType | Mandatory | Description |
---|---|---|---|
request_id | String(33) | Y | 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 |
HTTP Code | Error Code | Error Message (Indonesian) | Error Message (English) |
---|---|---|---|
400 | 3-2-100 | ID pelanggan harus diisi | Customer ID cannot be empty |
400 | 3-2-100 | ID pelanggan tidak valid | Invalid customer ID |
400 | 3-2-100 | Nama pelanggan harus diisi | Customer name cannot be empty |
400 | 3-2-100 | Nama pelanggan tidak valid | Invalid customer name |
400 | 3-2-100 | Tipe debit harus diisi | Debit type cannot be empty |
400 | 3-2-100 | Tipe debit tidak valid | Invalid debit type |
400 | 3-2-100 | Jumlah pembayaran harus diisi | Amount cannot be empty |
400 | 3-2-100 | Jumlah pembayaran tidak valid | Invalid amount |
400 | 3-2-101 | Kode perusahaan tidak valid | Invalid company code |
400 | 3-2-300 | Registrasi Kuasa Debet telah melebihi batas maksimal. Silahkan hubungi Halo BCA untuk informasi lebih lanjut |
Account Authorization registrastion already exceed the limit. Please contact Halo BCA for the further information |
400 | 3-2-307 | ID pelanggan sudah aktif | Customer ID already active |
400 | 3-2-325 | Data pelanggan tidak ditemukan | Customer data not found |
400 | 3-2-300 | Transaksi tidak dapat diproses. Silahkan ulangi beberapa saat lagi | Transaction cannot be completed. Please try again later |
400 | 3-2-998 | Transaksi gagal. Silahkan ulangi beberapa saat lagi | Transaction failed. Please try again later. |
400 | 3-2-999 | Transaksi tidak dapat diproses. Silahkan ulangi beberapa saat lagi | Transaction cannot be completed. Please try again later |
POST /account-authorization/registration
Request
POST /account-authorization/registration HTTP/1.1
Host: sandbox.bca.co.id
Authorization: Bearer [access_token]
Content-Type: application/json
Origin: [yourdomain.com]
X-BCA-Key: [api_key]
X-BCA-Timestamp: [timestamp]
X-BCA-Signature: [signature]
ChannelID: [channelID]
CredentialID: [credentialID]
{
"customer_id_merchant" : "081818181818181",
"identifications" : [
{"type":"1","identification" : "nama pelanggan"},
{"type":"2","identification" : "V"},
{"type":"3","identification" : "0"},
],
"merchant_logo_url" : "https://logo.com/",
}
POST /account-authorization/registration
Response
{
"request_id" : "A2AAB46BE91573E6E05400144FFED17A",
"random_string"" : "L1APowN4R3uM1CiY",
"expired_date" : "1586226654111",
"created_date" : "1586224854111"
}
OneKlik
1. SNAP OneKlik Account Binding
This service is used to pre-processing OneKlik Registration by Generating OneKlik Registration Web Token.
Field | Params Type | Data Type | Length Type | Mandatory | Description |
---|---|---|---|---|---|
CHANNEL-ID | Header | String(5) | Y | Channel’s identifier (95251) | |
X-PARTNER-ID | Header | String(36) | Y | 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 |
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 |
HTTP Code | Error Code | Error Message |
---|---|---|
200 | 2000700 | Successful |
400 | 4000700 | Bad request |
400 | 4000701 | Invalid Field Format {field name} |
400 | 4000702 | Invalid Mandatory Field {field name} |
401 | 4010701 | Invalid token (B2B) |
401 | 4010700 | Unauthorized. [Reason] |
403 | 4030701 | Feature Not Allowed |
403 | 4030704 | Activity Count Limit Exceeded |
404 | 4040708 | Invalid Merchant |
500 | 5000700 | General Error |
500 | 5000700 | Internal Server Error |
504 | 5040700 | Timeout |
curl –X POST https://sandbox.bca.co.id/openapi/oneklik/v1.0/registration-account-binding
Request
DEVICE WEB
-H 'CHANNEL-ID':'95221'
-H 'X-PARTNER-ID': '61123'
-H 'X-EXTERNAL-ID': 'ef343939477c4f19b01c7600ca487bc8'
-H 'X-IP-ADDRESS': '123.123.123.123'
-H 'X-DEVICE-ID': 'WEB||Mozilla/5.0 (Windows NT 10.0; Win64; x64)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36'
-d '
{
"merchantId": "61123",
"additionalData": {
"userId": "customer01"
},
"additionalInfo": {
"additionalInfo": "customer01@gmail.com",
"merchantLogoUrl": " https://png.pngtree.com/pngvector/20190223/ourmid/pngtree-vector-picture-icon-png-image_695350.jpg"
}
}'
DEVICE ANDROID/IOS
-H 'CHANNEL-ID':'95221'
-H 'X-PARTNER-ID': '61123'
-H 'X-EXTERNAL-ID': 'ef343939477c4f19b01c7600ca487bc8'
-H 'X-IP-ADDRESS': '123.123.123.123'
-H 'X-DEVICE-ID': '84723551-f7f0-452b-b9a5-b0f270752761||Mozilla/5.0 (iPhone; CPU
iPhone OS 14_8_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko)
Mobile/15E148'
-d '
{
"merchantId": "61123",
"additionalData": {
"userId": "customer01"
},
"additionalInfo": {
"additionalInfo": "customer01@gmail.com",
"merchantLogoUrl": " https://png.pngtree.com/pngvector/20190223/ourmid/pngtree-vector-picture-icon-png-image_695350.jpg"
}
}'
curl –X POST https://sandbox.bca.co.id/openapi/oneklik/v1.0/registration-account-binding
Response
{
"responseCode": "2000700",
"responseMessage": "Successful",
"referenceNo": "37f89370b5034db0a283130c231dd27b",
"additionalInfo": {
"requestId": "2c90c800702d1234017033ab9a060003",
"randomString": "g4BoEz43jfjVvAvN"
}
}
2. SNAP OneKlik Account Binding Inquiry
This service is used to inquiry OneKlik Account Binding Status.
Field | Params Type | Data Type | Length Type | Mandatory | Description |
---|---|---|---|---|---|
CHANNEL-ID | Header | String(5) | Y | Channel’s identifier (95221) | |
X-PARTNER-ID | Header | String(36) | Y | 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 |
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 |
HTTP Code | Error Code | Error Message |
---|---|---|
200 | 2000800 | Successful |
400 | 4000800 | Bad request |
400 | 4000801 | Invalid Field Format {field name} |
400 | 4000802 | Invalid Mandatory Field {field name} |
401 | 4010801 | Invalid token (B2B) |
401 | 4010800 | Unauthorized. [Reason] |
403 | 4030801 | Feature Not Allowed |
404 | 4040808 | Invalid Merchant |
500 | 5000800 | General Error |
500 | 5000800 | Internal Server Error |
504 | 5040800 | Timeout |
With userId: curl –X POST https://sandbox.bca.co.idopenapi/oneklik/v1.0/registration-account-inquiry With requestIds: curl –X POST https://sandbox.bca.co.id/openapi/oneklik/v1.0/registration-accountbinding
Request
WITH userId
curl –X POST https://sandbox.bca.co.id/openapi/oneklik/v1.0/registration-account-inquiry
-H 'CHANNEL-ID':'95221'
-H 'X-PARTNER-ID': '61123'
-H 'X-EXTERNAL-ID': 'ef343939477c4f19b01c7600ca487bc8'
-d '
{
"additionalInfo": {
"userId": "customer01"
}
}'
WITH requestIds
curl –X POST https://sandbox.bca.co.id/openapi/oneklik/v1.0/registration-accountbinding
-H 'CHANNEL-ID':'95221'
-H 'X-PARTNER-ID': '61123'
-H 'X-EXTERNAL-ID': 'ef343939477c4f19b01c7600ca487bc8'
-d '
{
"additionalInfo": {
"requestIds": [
"2c90c800702d1234017033ab9a060003",
"2c90c800702d1234017033ab9a060004",
"2c90c800702d1234017033ab9a060005",
"2c90c800702d1234017033ab9a060006"
]
}
}'
With userId: curl –X POST https://sandbox.bca.co.idopenapi/oneklik/v1.0/registration-account-inquiry With requestIds: curl –X POST https://sandbox.bca.co.id/openapi/oneklik/v1.0/registration-accountbinding
Response
WITH userId
{
"responseCode": "2000800",
"responseMessage": "Successful",
"referenceNo": "37f89370b5034db0a283130c231dd27b",
"additionalInfo": {
"accountData": [
{
"xcoId": "a6fe3266cafd4cddbe3d77e1a9855634",
"credentialType": "DC",
"credentialNumber": "************1234",
"maxLimit": "1000000",
"userId": "customer01",
"merchantId": "61123",
"createdDate": "2022-01-03T01:07:51+07:00",
"status": "ACT"
},
{
"xcoId": "76feef3439394cddbe3d77e1a98556ab",
"credentialType": "DC",
"credentialNumber": "************5678",
"maxLimit": "1000000",
"userId": "customer01",
"merchantId": "61123",
"createdDate": "2022-01-03T01:10:49+07:00",
"status": "BLK"
}
]
}
}
WITH requestIds
{
"responseCode": "2000800",
"responseMessage": "Successful",
"referenceNo": "37f89370b5034db0a283130c231dd27b",
"additionalInfo": {
"accountData": [
{
"requestId": "2c90c800702d1234017033ab9a060003",
"xcoId": "a6fe3266cafd4cddbe3d77e1a9855634",
"credentialType": "DC",
"credentialNumber": "************1234",
"maxLimit": "1000000",
"userId": "customer01",
"merchantId": "61123",
"createdDate": "2022-01-03T01:02:03+07:00",
"status": "ACT"
},
{
"requestId": "2c90c800702d1234017033ab9a060004",
"userId": "customer02",
"merchantId": "61123",
"createdDate": "2022-01-03T01:05:25+07:00",
"status": "REG"
},
{
"requestId": "2c90c800702d1234017033ab9a060005",
"userId": "customer03",
"merchantId": "61123",
"createdDate": "2022-01-03T01:10:09+07:00",
"status": "EXP"
},
{
"requestId": "2c90c800702d1234017033ab9a060006",
"status": "-"
}
]
}
}
3. SNAP OneKlik Account Unbinding
This service is used to unbinding OneKlik Account.
Field | Params Type | Data Type | Length Type | Mandatory | Description |
---|---|---|---|---|---|
CHANNEL-ID | Header | String(5) | Y | Channel’s identifier (95221) | |
X-PARTNER-ID | Header | String(36) | Y | 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 |
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. |
HTTP Code | Error Code | Error Message |
---|---|---|
200 | 2000900 | Successful |
400 | 4000900 | Bad request |
400 | 4000901 | Invalid Field Format {field name} |
400 | 4000902 | Invalid Mandatory Field {field name} |
401 | 4010901 | Invalid token (B2B) |
401 | 4010900 | Unauthorized. [Reason] |
403 | 4030901 | Feature Not Allowed |
404 | 4040911 | Invalid Card/Account/Customer |
500 | 5000900 | General Error |
500 | 5000900 | Internal Server Error |
504 | 5040900 | Timeout |
curl –X POST https://sandbox.bca.co.id/openapi/oneklik/v1.0/registration-account-unbinding
Request
-H 'CHANNEL-ID':'95221'
-H 'X-PARTNER-ID': '61123'
-H 'X-EXTERNAL-ID': 'ef343939477c4f19b01c7600ca487bc8'
-d '
{
"merchantId": "61123",
"additionalInfo": {
"xcoId": "a6fe3266cafd4cddbe3d77e1a9855634"
}
}'
curl –X POST https://sandbox.bca.co.id/openapi/oneklik/v1.0/registration-account-unbinding
Response
{
"responseCode": "2000900",
"responseMessage": "Successful",
"referenceNo": "37f89370b5034db0a283130c231dd27b",
"unlinkResult": "success",
"additionalInfo": {
"xcoId": "a6fe3266cafd4cddbe3d77e1a9855634"
}
}
4. SNAP OneKlik Direct Debit Payment
This service is used to pre-processing OneKlik Registration by Generating OneKlik Registration Web Token.
Field | Params Type | Data Type | Length Type | Mandatory | Description |
---|---|---|---|---|---|
CHANNEL-ID | Header | String(5) | Y | Channel’s identifier (95221) | |
X-PARTNER-ID | Header | String(36) | Y | 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 |
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 |
HTTP Code | Error Code | Error Message |
---|---|---|
200 | 2005400 | Successful |
202 | 2025400 | Request In Progress |
400 | 4005400 | Bad request |
400 | 4005401 | Invalid Field Format {field name} |
400 | 4005402 | Invalid Mandatory Field {field name} |
401 | 4015401 | Invalid token (B2B) |
401 | 4015400 | Unauthorized. [Reason] |
403 | 4035401 | Feature Not Allowed |
403 | 4035414 | Insufficient Funds |
403 | 4035402 | Exceeds Transaction Amount Limit |
403 | 4035412 | OTP Lifetime Expired |
403 | 4035418 | Inactive Card/Account/Customer |
404 | 4045411 | Invalid Card/Account/Customer |
404 | 4045408 | Invalid Merchant |
404 | 4045406 | Need to Request OTP |
404 | 4045412 | Invalid Bill/Virtual Account total additionalInfo billDetails subBillAmount does not match transAmount.value |
404 | 4045412 | Invalid Bill/Virtual Account adminFee.value does not match |
404 | 4045412 | Invalid Bill/Virtual Account transAmount.value below transaction amount limit |
404 | 4045412 | Invalid Bill/Virtual Account transAmount.value above transaction amount limit |
409 | 4095401 | Duplicate partnerReferenceNo |
500 | 5005400 | General Error |
500 | 5005400 | Internal Server Error |
504 | 5045400 | Timeout |
curl –X POST https://sandbox.bca.co.id/openapi/oneklik/v1.0/debit/payment-host-to-host
Request
Without OTP – without Subcompany – device type WEB
-H 'CHANNEL-ID':'95221'
-H 'X-PARTNER-ID': '61123'
-H 'X-EXTERNAL-ID': 'ef343939477c4f19b01c7600ca487bc8'
-H 'X-IP-ADDRESS': '123.123.123.123'
-H 'X-DEVICE-ID': 'WEB||Mozilla/5.0 (Windows NT 10.0; Win64; x64)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36'
-d '
{
"partnerReferenceNo": "202010290000000001",
"merchantId": "61123",
"payOptionDetails": [
{
"payMethod": "ONEKLIK",
"payOption": "ONEKLIK_BCA",
"transAmount": {
"value": "100000.00",
"currency": "IDR"
},
"feeAmount": {
"value": "1000.00",
"currency": "IDR"
}
}
],
"additionalInfo": {
"userId": "customer01",
"customerName": "John Smith",
"description": "Payment for phone billing",
"paymentType": "FULL",
"transactionTime": "2020-10-29T00:00:01+07:00",
"xcoId": " a6fe3266cafd4cddbe3d77e1a9855634",
"billDetails": [
{
"subCompanyCode": "00000",
"subBillAmount": "99000.00"
}
]
}
}'
With OTP – with Subcompany – device type MOBILE (iOS/Android)
-H 'CHANNEL-ID':'95051'
-H 'X-PARTNER-ID': '61123'
-H 'X-EXTERNAL-ID': 'ef343939477c4f19b01c7600ca487bc8'
-H 'X-IP-ADDRESS': '123.123.123.123'
-H 'X-DEVICE-ID': '84723551-f7f0-452b-b9a5-b0f270752761||Mozilla/5.0 (iPhone; CPU
iPhone OS 14_8_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko)
Mobile/15E148'
-d '
{
"partnerReferenceNo": "202010290000000001",
"merchantId": "61123",
"chargeToken": "1a6418f60dad46b9bdb2216d1a641186",
"otp": "123456",
"payOptionDetails": [
{
"payMethod": "ONEKLIK",
"payOption": "ONEKLIK_BCA",
"transAmount": {
"value": "100000.00",
"currency": "IDR"
},
"feeAmount": {
"value": "1000.00",
"currency": "IDR"
}
}
],
"additionalInfo": {
"userId": "customer01",
"customerName": "John Smith",
"description": "Payment for phone billing",
"paymentType": "FULL",
"transactionTime": "2020-10-29T00:00:01+07:00",
"xcoId": " a6fe3266cafd4cddbe3d77e1a9855634",
"billDetails": [
{
"subCompanyCode": "00000",
"subBillAmount": "50000.00"
},
{
"subCompanyCode": "12345",
"subBillAmount": "49000.00"
}
]
}
}'
curl –X POST https://sandbox.bca.co.id/openapi/oneklik/v1.0/debit/payment-host-to-host
Response
{
"responseCode": "2005400",
"responseMessage": "Successful",
"referenceNo": "37f89370b5034db0a283130c231dd27b",
"partnerReferenceNo": "202010290000000001",
"additionalInfo": {
"status": "SUCCESS",
"billAmount": "100000.00",
"paidAmount": "100000.00"
}
DEVICE IS DIFFERENT
{
"responseCode": "4045406",
"responseMessage": "Need to Request OTP",
"partnerReferenceNo": "202010290000000001",
"additionalInfo": {
"status": "DEVICE IS DIFFERENT",
"msisdnList": [
{
"phoneId": "b5da903138c748a38264cea0424a191e",
"phoneNumber": "0812XXXXX29"
},
{
"phoneId": "2648cd3b308d4037bf4a3e75cc8988c9",
"phoneNumber": "0817XXXXXX55"
}
]
}
}
5. SNAP OneKlik Direct Debit Payment Status
This service is used to inquiry OneKlik transaction status.
Field | Params Type | Data Type | Length Type | Mandatory | Description |
---|---|---|---|---|---|
CHANNEL-ID | Header | String(5) | Y | Channel’s identifier (95251) | |
X-PARTNER-ID | Header | String(36) | Y | 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” |
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 |
HTTP Code | Error Code | Error Message |
---|---|---|
200 | 2005500 | Successful |
400 | 4005500 | Bad request |
400 | 4005501 | Invalid Field Format {field name} |
400 | 4005502 | Invalid Mandatory Field {field name} |
401 | 4015501 | Invalid token (B2B) |
401 | 4015500 | Unauthorized. [Reason] |
403 | 4035501 | Feature Not Allowed |
403 | 4035518 | Inactive Card/Account/Customer |
404 | 4045511 | Invalid Card/Account/Customer |
404 | 4045508 | Invalid Merchant |
500 | 5005500 | General Error |
500 | 5005500 | Internal Server Error |
504 | 5045500 | Timeout |
curl –X POST https://sandbox.bca.co.id/openapi/oneklik/v1.0/debit/status
Request
-H 'CHANNEL-ID':'95221'
-H 'X-PARTNER-ID': '61123'
-H 'X-EXTERNAL-ID': 'ef343939477c4f19b01c7600ca487bc8'
-d '
{
"originalPartnerReferenceNo": "202010290000000001",
"serviceCode": "54"
}'
curl –X POST https://sandbox.bca.co.id/openapi/oneklik/v1.0/debit/status
Response
{
"responseCode": "2005500",
"responseMessage": "Successful",
"originalReferenceNo": "37f89370b5034db0a283130c231dd27b",
"originalPartnerReferenceNo": "202010290000000001",
"serviceCode": "54",
"latestTransactionStatus": "00",
"transAmount": {
"value": "100000.00",
"currency": "IDR"
},
"feeAmount": {
"value": "1000.00",
"currency": "IDR"
},
"paidTime": "2020-10-29T00:00:04+07:00",
"additionalInfo": {
"paidAmount": "100000.00"
}
}
Success – Timeout Transaction
{
"responseCode": "2005500",
"responseMessage": "Successful",
"originalReferenceNo": "37f89370b5034db0a283130c231dd27b",
"originalPartnerReferenceNo": "202010290000000001",
"serviceCode": "54",
"latestTransactionStatus": "06",
"transAmount": {
"value": "100000.00",
"currency": "IDR"
},
"feeAmount": {
"value": "1000.00",
"currency": "IDR"
},
"paidTime": "2020-10-29T00:00:04+07:00",
"additionalInfo": {
"paidAmount": "100000.00",
"isTimeout": "Y"
}
}
Success – Initiated Transaction (Need OTP)
{
"responseCode": "2005500",
"responseMessage": "Successful",
"originalReferenceNo": "37f89370b5034db0a283130c231dd27b",
"originalPartnerReferenceNo": "202010290000000001",
"serviceCode": "54",
"latestTransactionStatus": "06",
"transAmount": {
"value": "100000.00",
"currency": "IDR"
},
"feeAmount": {
"value": "1000.00",
"currency": "IDR"
},
"paidTime": "2020-10-29T00:00:04+07:00",
"additionalInfo": {
"chargeToken": "1a6418f60dad46b9bdb2216d1a641186"
}
}
6. SNAP OneKlik Inquiry OTP
This service is used to inquiry list of phone numbers that can be used to send OTP.
Field | Params Type | Data Type | Length Type | Mandatory | Description |
---|---|---|---|---|---|
CHANNEL-ID | Header | String(5) | Y | Channel’s identifier (95221) | |
X-PARTNER-ID | Header | String(36) | Y | 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 |
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 |
HTTP Code | Error Code | Error Message |
---|---|---|
200 | 2008500 | Successful |
400 | 4008500 | Bad request |
400 | 4008501 | Invalid Field Format {field name} |
400 | 4008502 | Invalid Mandatory Field {field name} |
401 | 4018501 | Invalid token (B2B) |
401 | 4018500 | Unauthorized. [Reason] |
403 | 4038501 | Feature Not Allowed |
403 | 4038518 | Inactive Card/Account/Customer |
404 | 4048511 | Invalid Card/Account/Customer |
500 | 5008500 | General Error |
500 | 5008500 | Internal Server Error |
504 | 5048500 | Timeout |
curl –X POST https://sandbox.bca.co.id/openapi/oneklik/v1.0/payment/inquiry-phone-number
Request
-H 'CHANNEL-ID':'95221'
-H 'X-PARTNER-ID': '61123'
-H 'X-EXTERNAL-ID': 'ef343939477c4f19b01c7600ca487bc8'
-d '
{
"merchantId": "61123",
"additionalInfo": {
"userId": "customer01",
"xcoId": "a6fe3266cafd4cddbe3d77e1a9855634"
}
}'
curl –X POST https://sandbox.bca.co.id/openapi/oneklik/v1.0/payment/inquiry-phone-number
Response
{
"responseCode": "2008500",
"responseMessage": "Successful",
"additionalInfo": {
"msisdnList": [
{
"phoneId": "b5da903138c748a38264cea0424a191e",
"phoneNumber": "0812XXXXX29"
},
{
"phoneId": "2648cd3b308d4037bf4a3e75cc8988c9",
"phoneNumber": "0817XXXXXX55"
}
]
}
}
7. SNAP OneKlik Notify Registration/Delete
This service is used to inquiry list of phone numbers that can be used to send OTP.
Field | Params Type | Data Type | Length Type | Mandatory | Description |
---|---|---|---|---|---|
CHANNEL-ID | Header | String(5) | Y | Channel’s identifier (95221) | |
X-PARTNER-ID | Header | String(32) | Y | 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 |
Response:
Field | Data Type | Length Type | Mandatory | Format | Description |
---|---|---|---|---|---|
responseCode | String (7) | Y | Numeric | Response code | |
responseMessage | String (150) | Y | Alphanumeric | Response message description | |
referenceNo | String (32) | C | Alphanumeric | Response reference from copartner. Filled if the response was success | |
additionalInfo | Object | C | Filled upon transaction with responseCode success | ||
xcoId | String (32) | Y | Alphanumeric | XCO ID | |
responseWs | String (16) | Y | Alphanumeric | Response: 0 = Success 1 = Failed |
POST https://copartners.com/oneklik/v2.0/notification
Request
Request (Activation Notification)
-H 'CHANNEL-ID':'95221'
-H 'X-PARTNER-ID':'61123'
-H 'X-EXTERNAL-ID': 'ef343939477c4f19b01c7600ca487bc8'
-d ' {
"additionalInfo":{
"requestd":" 2c909de773e578f80173e600b7950018",
"xcoId":" 2c909de773e578f80173e600b7950019",
"createdDate":"2022-01-03T01:02:03+07:00",
"credentialNumber":"************1234",
"credentialType":"DC",
"maxLimit":"100000",
"userId":"customer01",
"status":"ACT"
}
}'
Request (Delete Account Notification)
-H 'CHANNEL-ID':'95221'
-H 'X-PARTNER-ID':'61123'
-H 'X-EXTERNAL-ID': 'ef343939477c4f19b01c7600ca487bc8'
-d ' {
"additionalInfo":{
"xcoId":" 2c909de773e578f80173e600b7950019",
"createdDate":"2022-01-03T01:02:03+07:00",
"userId":"customer01",
"status":"DEL"
}
}'
POST https://copartners.com/oneklik/v2.0/notification
Response
{
"responseCode": "2008600",
"responseMessage": "Successful",
"referenceNo": "37f89370b5034db0a283130c231dd27b",
"additionalInfo": {
"xcoId": "2c90c800702d1234017033ab9a060003",
"responseWs": "0"
}
}
8. SNAP OneKlik OTP
This service is used to generate and send OTP to customer phone to authorize payment.
Field | Params Type | Data Type | Length Type | Mandatory | Description |
---|---|---|---|---|---|
CHANNEL-ID | Header | String(5) | Y | Channel’s identifier (95221) | |
X-PARTNER-ID | Header | String(36) | Y | 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 |
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 |
HTTP Code | Error Code | Error Message |
---|---|---|
200 | 2008100 | Successful |
400 | 4008100 | Bad request |
400 | 4008101 | Invalid Field Format {field name} |
400 | 4008102 | Invalid Mandatory Field {field name} |
401 | 4018101 | Invalid token (B2B) |
401 | 4018100 | Unauthorized. [Reason] |
403 | 4038101 | Feature Not Allowed |
403 | 4038118 | Inactive Card/Account/Customer |
404 | 4048111 | Invalid Card/Account/Customer |
404 | 4048108 | Invalid Merchant |
429 | 4298100 | Too Many Requests |
500 | 5005100 | General Error |
500 | 5008500 | Internal Server Error |
504 | 5048500 | Timeout |
curl –X POST https://sandbox.bca.co.id/openapi/oneklik/v1.0/otp
Request
-H 'CHANNEL-ID':'95221'
-H 'X-PARTNER-ID': '61123'
-H 'X-EXTERNAL-ID': 'ef343939477c4f19b01c7600ca487bc8'
-d '
{
"journeyId": "ef343939477c4f19b01c7600ca487bc8",
"bankCardToken": "a6fe3266cafd4cddbe3d77e1a9855634",
"merchantId": "61123",
"partnerReferenceNo": "202010290000000001",
"trxDateTime": "2020-10-29T00:00:01+07:00",
"additionalInfo": {
"userId": "customer01",
"transAmount": {
"value": "100000.00",
"currency": "IDR"
},
"phoneId": "b5da903138c748a38264cea0424a191e"
}
}'
curl –X POST https://sandbox.bca.co.id/openapi/oneklik/v1.0/otp
Response
SUCCESS
{
"responseCode": "2008100",
"responseMessage": "Successful",
"chargeToken": "1a6418f60dad46b9bdb2216d1a641186",
"additionalInfo": {
"xcoId": "a6fe3266cafd4cddbe3d77e1a9855634",
"phoneId": "b5da903138c748a38264cea0424a191e",
"merchantId": "61123"
}
}
TIMEOUT
{
"responseCode": "5048100",
"responseMessage": "Timeout",
"chargeToken": "1a6418f60dad46b9bdb2216d1a641186",
"additionalInfo": {
"xcoId": "a6fe3266cafd4cddbe3d77e1a9855634",
"phoneId": "b5da903138c748a38264cea0424a191e",
"merchantId": "61123"
}
}
Valuta Asing
1. Info Kurs
Get information about Foreign Currency Exchange Rate for applicable currencies in BCA. The exchange rate are divide into four types eRate (Electronic Rate), TT (Telegrafic Transfer), TC (Travellers Cheque) and BN (Bank Notes).
Query String Parameters:
Field | DataType | Mandatory | Description |
---|---|---|---|
CurrencyCode | String | N | Known currency code. For multiple currencies use comma separated. Following are the known foreign currency in BCA. AUD - Australia Dollar BND - Bruneian Dollar CAD - Canadian Dollar CHF - Francs CNY - China Yuan DKK - Danish Krone EUR - Euro GBP - Great Britain Poundsterling HKD - Hongkong Dollar JPY - Japan Yen KRW - Korea Won NOK - Norwegian Krone NZD - New Zealand Dollar PHP - Phillipine Peso SAR - Saudi Riyal SEK - Swedish Krona SGD - Singapore Dollar THB - Thailand Baht TWD - Taiwan Dollar USD - US Dollar If the field was left empty, it will considered as “all know currencies”. |
RateType | String | Y | The type for the desired rate. eRate (electronic Rate) TT (Telegrafic Transfer) TC (Travellers Cheque) BN (Bank Notes) If the field was left empty, it will considered as “all rate type”. |
Response:
Field | DataType | Description |
---|---|---|
InvalidRateType | String | If the request contains valid and invalid rate types in single request, the invalid rate will be list down in this field. |
InvalidCurrencyCode | String | If the request contains valid and invalid currency code in single request, the invalid currency code will be list down in this field. |
Currencies | ||
CurrencyCode | String (3) | The currency code. e.g. IDR, USD, JPY |
RateDetail | ||
RateType | String (5) | Must be among erate, tt, tc, bn . |
Buy | String (13) | In format 6.6 .When the currency has no value for this field, it will be set to "-" . |
Sell | String (13) | In format 6.6 .When the currency has no value for this field, it will be set to "-" . |
LastUpdate | String (19) | In format YYYY-MM-DDTHH24:Mi:SS .SSSZ.When the currency has no value for this type, it will be set to "-" . |
Error
HTTP Code | Error Code | Error Message (Indonesian) | Error Message (English) |
---|---|---|---|
404 | ESB-07-271 | Tidak ada transaksi | No transaction |
400 | ESB-07-279 | Tanggal awal lebih kecil dari tanggal buka rekening | Start date less than account open date |
400 | ESB-14-001 | HMAC tidak cocok | HMAC mismatch |
400 | ESB-14-002 | Permintaan tidak valid | Invalid request |
400 | ESB-14-003 | Timestamp tidak valid | Invalid timestamp |
400 | ESB-14-004 | parameter input tidak valid | Invalid input parameter |
500 | ESB-14-005 | Sistem sedang dalam maintenance | System under maintenance |
504 | ESB-14-006 | Timeout, silakan periksa mutasi rekening | Timeout, please check your account statement |
504 | ESB-14-007 | Timeout | Timeout |
401 | ESB-14-008 | client_id/client_secret/grant_type tidak valid | Invalid client_id/client_secret/grant_type |
401 | ESB-14-009 | Tidak berhak | Unauthorized |
429 | ESB-14-010 | Jumlah permintaan melebihi limit | Limit request exceeded |
404 | ESB-14-011 | Service tidak ada | Service doesn’t exist |
401 | ESB-14-012 | Tidak berhak mengakses service ini | Not allowed to access this service |
400 | ESB-99-009 | Field Latitude harus diisi | Missing Mandatory field Latitude |
400 | ESB-99-009 | Field Longitude harus diisi | Missing Mandatory field Longitude |
400 | ESB-99-039 | Isian input field Count tidak valid | Input for field Count not valid |
400 | ESB-99-040 | Tipe isian field Count tidak valid | Input type for field Count not valid |
400 | ESB-99-040 | Tipe isian field Latitude tidak valid | Input type for field Latitude not valid |
400 | ESB-99-040 | Tipe isian field Longitude tidak valid | Input type for field Longitude not valid |
400 | ESB-99-040 | Tipe isian field Radius tidak valid | Input type for field Radius not valid |
400 | ESB-99-132 | Data tidak ditemukan | No Data Found |
400 | ESB-99-335 | Mata uang tidak valid | Invalid CurrencyCode |
400 | ESB-99-339 | Tipe Kurs tidak valid | Invalid RateType |
400 | ESB-99-392 | Nilai SearchBy tidak valid | Invalid SearchBy value |
400 | ESB-99-460 | Panjang input Value tidak valid | Input Value minimal length invalid |
500 | ESB-99-999 | Sistem sedang tidak tersedia | System unavaliable |
Info Kurs
Request
GET /general/rate/forex?CurrencyCode=USD,JPY,XXX&RateType=erate,tt,yy HTTP/1.1
Host: sandbox.bca.co.id
Authorization: Bearer [access_token]
Content-Type: application/json
Origin: [yourdomain.com]
X-BCA-Key: [api_key]
X-BCA-Timestamp: [timestamp]
X-BCA-Signature: [signature]
Info Kurs
Response
{
"Currencies": [{
"CurrencyCode": "USD",
"RateDetail": [{
"RateType": "erate"
"Buy": 17500.00,
"Sell": 17000.00,
"LastUpdate": "2015-09-04T19:45:44.234+07:00",
},
{
"RateType": "tt"
"Buy": 12000.00,
"Sell": 12300.00,
"LastUpdate": "2015-09-04T19:45:44.234+07:00",
}]
},
{
"CurrencyCode": "JPY",
"RateDetail": [{
"RateType": "erate"
"Buy": 121.00,
"Sell": 122.00,
"LastUpdate": "2015-09-04T19:45:44.234+07:00",
},
{
"RateType": "tt"
"Buy": -,
"Sell": -,
"LastUpdate": "-",
}]
}],
"InvalidRateType":"yy"
"InvalidCurrency":"XXX"
}
2. Rate Management
Inquiry exchange rate to be used on Forex Transaction API
Additional Headers:
Field | Data Type | Mandatory | Description |
---|---|---|---|
channel-id | String(5) | Y | Channel Identification Number (Ex: 95057 for JVALAS) |
credential-id | String(10) | Y | CIN/CIS Example : 01234567890 |
Path Parameters:
Field | DataType | Mandatory | Description |
---|---|---|---|
cis | String(10) | Y | Customer number |
currency-code | String(3) | Y | 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 | Y | Param2 for decide Valas or Outward Remmitance (OR) |
Result of the request will contains following information:
Response:
Field | DataType | Description |
---|---|---|
currency_code | String(3) | The currency code. e.g. IDR, USD, JPY |
buy | String (13) | In format number(6.6). When the currency has no value for this field, it will be set to “-“. |
sell | String (13) | In format number(6.6). When the currency has no value for this field, it will be set to “-“. |
session_id | String (50) |
Error
HTTP Code | Error Code | Error Message (Indonesian) | Error Message (English) |
---|---|---|---|
404 | ESB-07-271 | Tidak ada transaksi | No transaction |
400 | ESB-07-279 | Tanggal awal lebih kecil dari tanggal buka rekening | Start date less than account open date |
400 | ESB-14-001 | HMAC tidak cocok | HMAC mismatch |
400 | ESB-14-002 | Permintaan tidak valid | Invalid request |
400 | ESB-14-003 | Timestamp tidak valid | Invalid timestamp |
400 | ESB-14-004 | parameter input tidak valid | Invalid input parameter |
500 | ESB-14-005 | Sistem sedang dalam maintenance | System under maintenance |
504 | ESB-14-006 | Timeout, silakan periksa mutasi rekening | Timeout, please check your account statement |
504 | ESB-14-007 | Timeout | Timeout |
401 | ESB-14-008 | client_id/client_secret/grant_type tidak valid | Invalid client_id/client_secret/grant_type |
401 | ESB-14-009 | Tidak berhak | Unauthorized |
429 | ESB-14-010 | Jumlah permintaan melebihi limit | Limit request exceeded |
404 | ESB-14-011 | Service tidak ada | Service doesn’t exist |
401 | ESB-14-012 | Tidak berhak mengakses service ini | Not allowed to access this service |
400 | ESB-99-009 | Field Latitude harus diisi | Missing Mandatory field Latitude |
400 | ESB-99-009 | Field Longitude harus diisi | Missing Mandatory field Longitude |
400 | ESB-99-039 | Isian input field Count tidak valid | Input for field Count not valid |
400 | ESB-99-040 | Tipe isian field Count tidak valid | Input type for field Count not valid |
400 | ESB-99-040 | Tipe isian field Latitude tidak valid | Input type for field Latitude not valid |
400 | ESB-99-040 | Tipe isian field Longitude tidak valid | Input type for field Longitude not valid |
400 | ESB-99-040 | Tipe isian field Radius tidak valid | Input type for field Radius not valid |
400 | ESB-99-132 | Data tidak ditemukan | No Data Found |
400 | ESB-99-335 | Mata uang tidak valid | Invalid CurrencyCode |
400 | ESB-99-339 | Tipe Kurs tidak valid | Invalid RateType |
400 | ESB-99-392 | Nilai SearchBy tidak valid | Invalid SearchBy value |
400 | ESB-99-460 | Panjang input Value tidak valid | Input Value minimal length invalid |
500 | ESB-99-999 | Sistem sedang tidak tersedia | System unavaliable |
GET /rate/management/customers/{cis}/currenc ies/{currency_code}
Request
GET
https://sandbox.bca.co.id/rate/management/customers/00000002120/currencies/USD?settle
ment-type=VALAS
-H "channel-id" : "95057"
-H "credential-id" : "00000002120"
GET /rate/management/customers/{cis}/currenc ies/{currency_code}
Response
{
"currency_code": "USD",
"buy": "14058",
"sell": "14068",
"session_id": "rHaaVK4vNlb713GMmdXFXB94MSfhZMwjL+Uqv9EKqwIpA1CGKcOF36IWHaa0DKqaBK6Im1mvzCRg9HMHUZ550w=="
}
3. Transaksi Valas
You can send fund transfer forex instructions to BCA using this service. The source of fund transfer must be from your corporate's own deposit account. The recipient may be any deposit account within domestic bank include BCA.
Additional Headers:
Field | Data Type | Mandatory | Description |
---|---|---|---|
channel-id | String(5) | Y | Channel Identification Number (Ex: 95057 for JVALAS) |
credential-id | String(10) | Y | CIN/CIS Example : 01234567890 |
Path Parameters:
Field | DataType | Mandatory | Description |
---|---|---|---|
cis | String(10) | Y | Customer number |
currency-code | String(3) | Y | 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 | Y | 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 | N | Number of branches to search, in Integer. Maximum value = 20. |
SearchBy | String | N | 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 |
Response:
Field | DataType | Description |
---|---|---|
atm_details | Array of Object | The object that hold information of the ATM. |
WSID | String | ATM wsid |
Type | String | ATM type eg: ATM Tarik Tunai ATM Non-Tunai ATM Setor Tarik |
Name | String | ATM name |
Address | String | ATM full address |
City | String | ATM city |
Country | String | ATM country |
Latitude | String | ATM latitude |
Longitude | String | ATM longitude |
Distance | String | ATM distance from client location in meters |
Error
HTTP Code | Error Code | Error Message (Indonesian) | Error Message (English) |
---|---|---|---|
404 | ESB-07-271 | Tidak ada transaksi | No transaction |
400 | ESB-07-279 | Tanggal awal lebih kecil dari tanggal buka rekening | Start date less than account open date |
400 | ESB-14-001 | HMAC tidak cocok | HMAC mismatch |
400 | ESB-14-002 | Permintaan tidak valid | Invalid request |
400 | ESB-14-003 | Timestamp tidak valid | Invalid timestamp |
400 | ESB-14-004 | parameter input tidak valid | Invalid input parameter |
500 | ESB-14-005 | Sistem sedang dalam maintenance | System under maintenance |
504 | ESB-14-006 | Timeout, silakan periksa mutasi rekening | Timeout, please check your account statement |
504 | ESB-14-007 | Timeout | Timeout |
401 | ESB-14-008 | client_id/client_secret/grant_type tidak valid | Invalid client_id/client_secret/grant_type |
401 | ESB-14-009 | Tidak berhak | Unauthorized |
429 | ESB-14-010 | Jumlah permintaan melebihi limit | Limit request exceeded |
404 | ESB-14-011 | Service tidak ada | Service doesn’t exist |
401 | ESB-14-012 | Tidak berhak mengakses service ini | Not allowed to access this service |
400 | ESB-99-009 | Field Latitude harus diisi | Missing Mandatory field Latitude |
400 | ESB-99-009 | Field Longitude harus diisi | Missing Mandatory field Longitude |
400 | ESB-99-039 | Isian input field Count tidak valid | Input for field Count not valid |
400 | ESB-99-040 | Tipe isian field Count tidak valid | Input type for field Count not valid |
400 | ESB-99-040 | Tipe isian field Latitude tidak valid | Input type for field Latitude not valid |
400 | ESB-99-040 | Tipe isian field Longitude tidak valid | Input type for field Longitude not valid |
400 | ESB-99-040 | Tipe isian field Radius tidak valid | Input type for field Radius not valid |
400 | ESB-99-132 | Data tidak ditemukan | No Data Found |
400 | ESB-99-335 | Mata uang tidak valid | Invalid CurrencyCode |
400 | ESB-99-339 | Tipe Kurs tidak valid | Invalid RateType |
400 | ESB-99-392 | Nilai SearchBy tidak valid | Invalid SearchBy value |
400 | ESB-99-460 | Panjang input Value tidak valid | Input Value minimal length invalid |
500 | ESB-99-999 | Sistem sedang tidak tersedia | System unavaliable |
GET /general/info-bca/atm?SearchBy= &Latitude=&Longitude=&Value=&Radius=&Count=
Request
GET /general/info-bca/atm?Latitude=6.1900718&Longitude=106.797190 HTTP/1.1
Host: sandbox.bca.co.id
Authorization: Bearer [access_token]
Content-Type: application/json
Origin: [yourdomain.com]
X-BCA-Key: [api_key]
X-BCA-Timestamp: [timestamp]
X-BCA-Signature: [signature]
GET /general/info-bca/atm?SearchBy= &Latitude=&Longitude=&Value=&Radius=&Count=
Response
{
"atm_details": [
{
"WSID": "69715",
"Type": "ATM",
"Name": "221U-Mayapada Tower 2"
"Address": "Jl. Jend. Sudirman Kav.28, Jakarta 12920",
"City": "Jakarta Selatan",
"Country": "INDONESIA",
"Latitude": "-6.2112194",
"Longitude": "106.8201026",
"Distance": ""8243.97"
},
{
"WSID": "84034",
"Type": "ATM",
"Name": "221U-Mayapada Tower 2"
"Address": "Jl. Jend. Sudirman Kav.28, Jakarta 12920",
"City": "Jakarta Selatan",
"Country": "INDONESIA",
"Latitude": "-6.2112194",
"Longitude": "106.8201026",
"Distance": ""8243.97"
},
{
"WSID": "69765",
"Type": "ATM",
"Name": "2748-Prudential Tower 2"
"Address": "Jl. Jend. Sudirman Kav.79 Jakarta Selatan",
"City": "Jakarta Selatan",
}
]
}
2. Lokasi Cabang BCA
Get information about nearest branch location by distance, address, city or branch type.
Query String Parameters:
Field | DataType | Mandatory | Description |
---|---|---|---|
Latitude | String | Y | In format number( (-)3.12 ) Latitude of client location, possible for minus signed value. |
Longitude | String | Y | In format number( (-)3.12 ) Longitude of client location, possible for minus signed value. |
Count | String | N | 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 |
Response:
Field | DataType | Description |
---|---|---|
BranchDetails | Array of Object | The object that hold information of the branch. |
Type | String | Branch type eg. KCU, KCP |
Name | String | Branch name |
Address | String | Branch full address |
City | String | Branch city |
Country | String | Branch country |
Latitude | String | Branch latitude |
Longitude | String | Branch longitude |
Distance | String | Branch distance from client location in meters |
E-Branch | String | “Y” if e-branch reservation is available otherwise it will be set to “N” |
WeekendBankingOperation | String | The name of the day of weekend, “Saturday”, “Sunday” and “Saturday&Sunday” |
Error
HTTP Code | Error Code | Error Message (Indonesian) | Error Message (English) |
---|---|---|---|
404 | ESB-07-271 | Tidak ada transaksi | No transaction |
400 | ESB-07-279 | Tanggal awal lebih kecil dari tanggal buka rekening | Start date less than account open date |
400 | ESB-14-001 | HMAC tidak cocok | HMAC mismatch |
400 | ESB-14-002 | Permintaan tidak valid | Invalid request |
400 | ESB-14-003 | Timestamp tidak valid | Invalid timestamp |
400 | ESB-14-004 | parameter input tidak valid | Invalid input parameter |
500 | ESB-14-005 | Sistem sedang dalam maintenance | System under maintenance |
504 | ESB-14-006 | Timeout, silakan periksa mutasi rekening | Timeout, please check your account statement |
504 | ESB-14-007 | Timeout | Timeout |
401 | ESB-14-008 | client_id/client_secret/grant_type tidak valid | Invalid client_id/client_secret/grant_type |
401 | ESB-14-009 | Tidak berhak | Unauthorized |
429 | ESB-14-010 | Jumlah permintaan melebihi limit | Limit request exceeded |
404 | ESB-14-011 | Service tidak ada | Service doesn’t exist |
401 | ESB-14-012 | Tidak berhak mengakses service ini | Not allowed to access this service |
400 | ESB-99-009 | Field Latitude harus diisi | Missing Mandatory field Latitude |
400 | ESB-99-009 | Field Longitude harus diisi | Missing Mandatory field Longitude |
400 | ESB-99-039 | Isian input field Count tidak valid | Input for field Count not valid |
400 | ESB-99-040 | Tipe isian field Count tidak valid | Input type for field Count not valid |
400 | ESB-99-040 | Tipe isian field Latitude tidak valid | Input type for field Latitude not valid |
400 | ESB-99-040 | Tipe isian field Longitude tidak valid | Input type for field Longitude not valid |
400 | ESB-99-040 | Tipe isian field Radius tidak valid | Input type for field Radius not valid |
400 | ESB-99-132 | Data tidak ditemukan | No Data Found |
400 | ESB-99-335 | Mata uang tidak valid | Invalid CurrencyCode |
400 | ESB-99-339 | Tipe Kurs tidak valid | Invalid RateType |
400 | ESB-99-392 | Nilai SearchBy tidak valid | Invalid SearchBy value |
400 | ESB-99-460 | Panjang input Value tidak valid | Input Value minimal length invalid |
500 | ESB-99-999 | Sistem sedang tidak tersedia | System unavaliable |
GET /general/info-bca/branch
Request
GET /general/info-bca/branch?Latitude=-6.137235&Longitude=106.824928 HTTP/1.1
Host: sandbox.bca.co.id
Authorization: Bearer [access_token]
Content-Type: application/json
Origin: [yourdomain.com]
X-BCA-Key: [api_key]
X-BCA-Timestamp: [timestamp]
X-BCA-Signature: [signature]
GET /general/info-bca/branch
Response
{
"BranchDetails": [
{
"Type": "KCP",
"Name": "Mangga Dua Mal",
"Address": "Mangga Dua Mal No. RM. 49, Jl. Mangga Dua Raya,,,",
"City": "Jakarta Pusat",
"Country": "INDONESIA",
"Latitude": "-6.137235",
"Longitude": "106.824928",
"Distance": "0"
"E-Branch": "N"
"WeekendBankingOperation": "Saturday&Sunday"
},
{
"Type": "KCP",
"Name": "Mangga Dua",
"Address": "Pst. Perd. Grosir Psr Pagi Lt. 2 Bl. KA No. 001A-B,002 & 012, Jl. Arteri M.D.,,",
"City": "Jakarta Utara",
"Country": "INDONESIA",
"Latitude": "-6.133801",
"Longitude": "106.822994",
"Distance": "437.63"
"E-Branch": "N"
"WeekendBankingOperation": "-"
}
]
}
Financing
1. Batal Faktur
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) | Y | Transaction ID unique per request (using UTC+07 Time Zone format). Must be 20 in length |
TransactionDate | String(10) | Y | Transaction date. Format: yyyyMM-dd. Must be today’s date |
ReferenceID | String(30) | Y | Sender’s invoice number. Must be same as previous created sender’s invoice number. |
DistributorCode | String(20) | Y | Distributor Code. Format: Alphanumeric and Special Character |
Amount | String(16) | Y | Transfer Amount. Format: Number, 13.2. Must be same as previous created invoice transfer amount |
CurrencyCode | String(3) | Y | Currency Code. Format: Alphanumeric |
PrincipalCode | String(11) | Y | Principal Code. Must be 11 in length. Format: Numeric |
SubPrincipalCode | String(11) | Y | Sub Principal Code. Must be 11 in length. Disbursement to Sub Principal only. Format: Numeric. |
DisburseDate | String(10) | Y | Transaction date. Format: yyyy-MM-dd. Must be same as previous created invoice disburse date |
Response
Field | DataType | Description |
---|---|---|
TransactionID | String(20) | Transaction ID unique per request (using UTC+07 Time Zone format). Must be 20 in length |
TransactionDate | String(10) | Transaction date. Format: yyyy-MM-dd. Must be today’s date |
ReferenceID | String(30) | Sender’s invoice number. Must be unique |
DistributorCode | String(20) | Distributor Code. Format: Alphanumeric and Special Character |
Amount | String(16) | Transfer Amount. Format: Number, 13.2 |
CurrencyCode | String(3) | Currency Code. Format: Alphanumeric |
PrincipalCode | String(11) | Principal Code. Must be 11 in length. Format: Numeric |
SubPrincipalCode | String(11) | Sub Principal Code. Must be 11 in length. Disbursement to Sub Principal only. Format: Numeric. |
DisburseDate | String(10) | Transaction date. Format: yyyy-MM-dd |
Error
HTTP Code | Error Code | Error Message (Indonesian) | Error Message (English) |
---|---|---|---|
400 | ESB-01-005 | Data tidak ditemukan | No Data Found |
400 | ESB-11-005 | Kode mata uang tidak vaild | Currency not valid |
400 | ESB-11-038 | Prinsipal tidak aktif | Principal is inactive |
400 | ESB-11-040 | Distributor tidak aktif | Distributor is not active |
400 | ESB-14-001 | HMAC tidak cocok | HMAC mismatch |
400 | ESB-14-002 | Permintaan tidak valid | Invalid request |
400 | ESB-14-003 | Timestamp tidak valid | Invalid timestamp |
500 | ESB-14-005 | Sistem sedang dalam maintenance | System under maintenance |
504 | ESB-14-007 | Timeout | Timeout |
401 | ESB-14-008 | client_id/client_secret/grant_type tidak valid | Invalid client_id/client_secret/grant_type |
401 | ESB-14-009 | Tidak berhak | Unauthorized |
429 | ESB-14-010 | Jumlah permintaan melebihi limit | Limit request exceeded |
404 | ESB-14-011 | Service tidak ada | Service doesn’t exist |
401 | ESB-14-012 | Tidak berhak mengakses service ini | Not allowed to access this service |
504 | ESB-14-013 | Timeout. Silakan melakukan transaksi kembali | Timeout. Please retry your transaction |
400 | ESB-14-015 | Content Type tidak valid | Invalid Content Type |
400 | ESB-14-016 | Format JSON tidak valid | Invalid JSON format |
400 | ESB-82-002 | Corporate ID tidak valid | Invalid Corporate ID |
400 | ESB-82-003 | TransactionID tidak unik | TransactionID not unique |
400 | ESB-82-026 | Lewat batas waktu cut off | Cut off time is exceeded |
400 | ESB-99-009 | Field (0) harus diisi | Missing mandatory field (0) |
400 | ESB-99-113 | Transaksi ditolak | Transaction rejected |
400 | ESB-99-128 | Panjang field (0) melebihi ketentuan | Field (0) exceed limit |
400 | ESB-99-284 | (0) tidak valid | Invalid (0) |
400 | ESB-99-524 | ReferenceID sudah diproses pada tanggal (entry_date) | ReferenceID already processed by (entry_date) |
400 | ESB-99-559 | Timeout. Silakan melakukan transaksi kembali | Timeout. Please retry your transaction |
400 | ESB-99-568 | SubprincipalCode tidak terdaftar | SubprincipalCode is not registered |
400 | ESB-99-569 | Tidak terdaftar untuk fitur Distributor Financing | Not registered for Distributor Financing features |
400 | ESB-99-573 | TransactionDate harus diisi dengan tanggal hari ini | Transaction Date must be filled with today's date |
400 | ESB-99-655 | Subprinsipal tidak aktif | Subprincipal is inactive |
PUT /df/invoice
Request
PUT df/invoice HTTP/1.1
Host: sandbox.bca.co.id
Authorization: Bearer [access_token]
Content-Type: application/json
Origin: [yourdomain.com]
X-BCA-Key: [api_key]
X-BCA-Timestamp: [timestamp]
X-BCA-Signature: [signature]
ChannelID: [channelID]
CredentialID: [credentialID]
{
"TransactionID" : "ABCDEFGHIJ0123456789",
"TransactionDate" : "2018-02-15",
"ReferenceID" : "INV0000001",
"DistributorCode"" : "ABCDE-12345",
"Amount" : "100000000.00",
"CurrencyCode" : "IDR",
"PrincipalCode"" : "00000000001",
"DisburseDate"" : "2018-02-30",
}
PUT /df/invoice
Response
{
"TransactionID" : "ABCDEFGHIJ0123456789",
"TransactionDate" : "2018-02-15",
"ReferenceID"" : "INV0000001",
"DistributorCode" : "ABCDE-12345",
"Amount" : "100000000.00",
"CurrencyCode" : "IDR",
"PrincipalCode" : "00000000001",
"SubPrincipalCode" : "",
"DisburseDate" : "2018-02-30"
}
2. Kirim Faktur
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) | Y | Transaction ID unique per request (using UTC+07 Time Zone format). Must be 20 in length |
TransactionDate | String(10) | Y | Transaction date. Format: yyyyMM-dd. Must be today’s date |
ReferenceID | String(30) | Y | Sender’s invoice number. Must be unique |
DistributorCode | String(20) | Y | Distributor Code. Format: Alphanumeric and Special Character |
Amount | String(16) | Y | Transfer Amount. Format: Number, 13.2 |
CurrencyCode | String(3) | Y | Currency Code. Format: Alphanumeric |
PrincipalCode | String(11) | Y | Principal Code. Must be 11 in length. Format: Numeric |
SubPrincipalCode | String(11) | Y | Sub Principal Code. Must be 11 in length. Disbursement to Sub Principal only. Format: Numeric. |
DisburseDate | String(10) | Y | Transaction date. Format: yyyyMM-dd |
Response
Field | DataType | Description |
---|---|---|
TransactionID | String(20) | Transaction ID unique per request (using UTC+07 Time Zone format). Must be 20 in length |
TransactionDate | String(10) | Transaction date. Format: yyyy-MM-dd. Must be today’s date |
ReferenceID | String(30) | Sender’s invoice number. Must be unique |
DistributorCode | String(20) | Distributor Code. Format: Alphanumeric and Special Character |
Amount | String(16) | Transfer Amount. Format: Number, 13.2 |
CurrencyCode | String(3) | Currency Code. Format: Alphanumeric |
PrincipalCode | String(11) | Principal Code. Must be 11 in length. Format: Numeric |
SubPrincipalCode | String(11) | Sub Principal Code. Must be 11 in length. Disbursement to Sub Principal only. Format: Numeric. |
DisburseDate | String(10) | Transaction date. Format: yyyy-MM-dd |
Error
HTTP Code | Error Code | Error Message (Indonesian) | Error Message (English) |
---|---|---|---|
400 | ESB-01-005 | Data tidak ditemukan | No Data Found |
400 | ESB-11-005 | Kode mata uang tidak vaild | Currency not valid |
400 | ESB-11-038 | Prinsipal tidak aktif | Principal is inactive |
400 | ESB-11-040 | Distributor tidak aktif | Distributor is not active |
400 | ESB-14-001 | HMAC tidak cocok | HMAC mismatch |
400 | ESB-14-002 | Permintaan tidak valid | Invalid request |
400 | ESB-14-003 | Timestamp tidak valid | Invalid timestamp |
500 | ESB-14-005 | Sistem sedang dalam maintenance | System under maintenance |
504 | ESB-14-007 | Timeout | Timeout |
401 | ESB-14-008 | client_id/client_secret/grant_type tidak valid | Invalid client_id/client_secret/grant_type |
401 | ESB-14-009 | Tidak berhak | Unauthorized |
429 | ESB-14-010 | Jumlah permintaan melebihi limit | Limit request exceeded |
404 | ESB-14-011 | Service tidak ada | Service doesn’t exist |
401 | ESB-14-012 | Tidak berhak mengakses service ini | Not allowed to access this service |
504 | ESB-14-013 | Timeout. Silakan melakukan transaksi kembali | Timeout. Please retry your transaction |
400 | ESB-14-015 | Content Type tidak valid | Invalid Content Type |
400 | ESB-14-016 | Format JSON tidak valid | Invalid JSON format |
400 | ESB-82-002 | Corporate ID tidak valid | Invalid Corporate ID |
400 | ESB-82-003 | TransactionID tidak unik | TransactionID not unique |
400 | ESB-82-026 | Lewat batas waktu cut off | Cut off time is exceeded |
400 | ESB-99-009 | Field (0) harus diisi | Missing mandatory field (0) |
400 | ESB-99-113 | Transaksi ditolak | Transaction rejected |
400 | ESB-99-128 | Panjang field (0) melebihi ketentuan | Field (0) exceed limit |
400 | ESB-99-284 | (0) tidak valid | Invalid (0) |
400 | ESB-99-524 | ReferenceID sudah diproses pada tanggal (entry_date) | ReferenceID already processed by (entry_date) |
400 | ESB-99-559 | Timeout. Silakan melakukan transaksi kembali | Timeout. Please retry your transaction |
400 | ESB-99-568 | SubprincipalCode tidak terdaftar | SubprincipalCode is not registered |
400 | ESB-99-569 | Tidak terdaftar untuk fitur Distributor Financing | Not registered for Distributor Financing features |
400 | ESB-99-573 | TransactionDate harus diisi dengan tanggal hari ini | Transaction Date must be filled with today's date |
400 | ESB-99-655 | Subprinsipal tidak aktif | Subprincipal is inactive |
POST /df/invoice
Request
POST df/invoice HTTP/1.1
Host: sandbox.bca.co.id
Authorization: Bearer [access_token]
Content-Type: application/json
Origin: [yourdomain.com]
X-BCA-Key: [api_key]
X-BCA-Timestamp: [timestamp]
X-BCA-Signature: [signature]
ChannelID: [channelID]
CredentialID: [credentialID]
{
"TransactionID" : "ABCDEFGHIJ0123456789",
"TransactionDate" : "2018-02-15",
"ReferenceID" : "INV0000001",
"DistributorCode"" : "ABCDE-12345",
"Amount" : "100000000.00",
"CurrencyCode" : "IDR",
"PrincipalCode"" : "00000000001",
"DisburseDate"" : "2018-02-30",
}
POST /df/invoice
Response
{
"TransactionID" : "ABCDEFGHIJ0123456789",
"TransactionDate" : "2018-02-15",
"ReferenceID"" : "INV0000001",
"DistributorCode" : "ABCDE-12345",
"Amount" : "100000000.00",
"CurrencyCode" : "IDR",
"PrincipalCode" : "00000000001",
"SubPrincipalCode" : "",
"DisburseDate" : "2018-02-30"
}
3. Notifikasi Pembayaran Faktur
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) | Y | UUID as unique ID for every request |
TransactionDate | String(10) | Y | Transaction date. Format: yyyyMM-dd. Must be today’s date |
ReferenceID | String(30) | Y | Invoice number. Must be unique |
DistributorCode | String(20) | Y | Distributor Code. Format: Alphanumeric and Special Character |
Amount | String(16) | Y | Transfer Amount. Format: Number, 13.2 |
CurrencyCode | String(3) | Y | Currency Code. Format: Alphanumeric |
PrincipalCode | String(11) | Y | Principal Code. Must be 11 in length. Format: Numeric |
SubPrincipalCode | String(11) | Y | Sub Principal Code. Format : Numeric |
DisburseDate | String(10) | Y | Transaction date. Format: yyyy-MM-dd |
Response
Field | DataType | Description |
---|---|---|
TransactionID | String(20) | Same TransactionID from request. It’s a UUID |
TransactionDate | String(10) | Transaction date. Format: yyyy-MM-dd. Must be today’s date |
ReferenceID | String(30) | Invoice number. Must be unique |
DistributorCode | String(20) | Distributor Code. Format: Alphanumeric and Special Character |
Amount | String(16) | Transfer Amount. Format: Number, 13.2 |
CurrencyCode | String(3) | Currency Code. Format: Alphanumeric |
PrincipalCode | String(11) | Principal Code. Must be 11 in length. Format: Numeric |
SubPrincipalCode | String(11) | Sub Principal Code. Must be 11 in length. Disbursement to Sub Principal only. Format: Numeric. |
DisburseDate | String(10) | Transaction date. Format: yyyy-MM-dd |
POST https://www.copartners.com/bca-df/disbursement/notification
Request
POST https://www.copartners.com/bca-df/disbursement/notification HTTP/1.1
X-Pass-Signature: b9125ab10816f6929d214c96ffca77dfd5a1ea13856362b85eeaeb70155
{
"TransactionID" : "65d5dd3474b44c5abbb0ce1cb5ff563f",",
"TransactionDate" : "2018-02-15",
"ReferenceID"" : "INV001923",",
"PrincipalCode"" : "00000000001",
"SubPrincipalCode"" : "",
"DistributorCode" : "ABCDE-12345",
"Amount" : "100000000.00",
"CurrencyCode" : "IDR",
}
POST https://www.copartners.com/bca-df/disbursement/notification
Response
{
"TransactionID" : "65d5dd3474b44c5abbb0ce1cb5ff563f",",
"TransactionDate" : "2018-02-15",
"ReferenceID"" : "INV001923",",
"PrincipalCode"" : "00000000001",
"SubPrincipalCode"" : "00000000001",
"DistributorCode" : "ABCDE-12345",
"Amount" : "100000000.00",
"CurrencyCode" : "IDR",
}
4. Notifikasi Pembayaran Pinjaman
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) | Y | UUID as unique ID for every request |
DistributorCode | String(20) | Y | Distributor Code. Format: Alphanumeric and Special Character |
PrincipalCode | String(11) | Y | Principal Code. Format: Numeric |
Amount | String(16) | Y | Transfer Amount. Minus sign ( - ) is applied for corrective payment. Format: Number, 13.2. |
TransactionDate | String(10) | Y | Transaction date. Format: yyyy-MM-dd |
Response
Field | DataType | Description |
---|---|---|
TransactionID | String(32) | Same TransactionID from request. It’s a UUID |
DistributorCode | String(20) | Same Distributor Code from request. |
POST https://www.copartners.com/bca-df/txn-limit/notification
Request
POST https://www.copartners.com/bca-df/txn-limit/notification HTTP/1.1
X-Pass-Signature: b9125ab10816f6929d214c96ffca77dfd5a1ea13856362b85eeaeb70155
{
"TransactionID" : "65d5dd3474b44c5abbb0ce1cb5ff563f",",
"PrincipalCode"" : "00000000001",
"DistributorCode"" : "ABCDE-12345",
"Amount" : "100000000.00",
"TransactionDate" : "2018-02-15",
}
POST https://www.copartners.com/bca-df/txn-limit/notification
Response
{
"TransactionID" : "65d5dd3474b44c5abbb0ce1cb5ff563f",",
"DistributorCode" : "ABCDE-12345",
}
5. Notifikasi Status Fasilitas Kredit
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) | Y | UUID as unique ID for every request |
DistributorCode | String(20) | Y | Distributor Code. Format: Alphanumeric and Special Character |
PrincipalCode | String(11) | Y | Principal Code. Must be 11 in length. Format: Numeric |
StopSupplyFlag | String(1) | Y | 0 : Stop (Distributor Non-Aktif/Wanprestasi); 1: Open (Distributor Aktif) |
TransactionDate | String(10) | Y | Transaction date. Format: yyyy-MM-dd |
Response
Field | DataType | Description |
---|---|---|
TransactionID | String(32) | Same TransactionID from request. It’s a UUID |
DistributorCode | String(20) | Same Distributor Code from request. |
POST https://www.copartners.com/bca-df/stop-supply/notification
Request
POST https://www.copartners.com/bca-df/stop-supply/notification HTTP/1.1
X-Pass-Signature: b9125ab10816f6929d214c96ffca77dfd5a1ea13856362b85eeaeb70155
{
"TransactionID" : "65d5dd3474b44c5abbb0ce1cb5ff563f",",
"DistributorCode"" : "ABCDE-12345",
"PrincipalCode"" : "00000000001",
"TransactionDate" : "2018-02-15",
"StopSupplyFlag"" : "1",
}
POST https://www.copartners.com/bca-df/stop-supply/notification
Response
{
"TransactionID" : "65d5dd3474b44c5abbb0ce1cb5ff563f",",
"DistributorCode" : "ABCDE-12345",
}
FIRE
1. Amandemen Kiriman Uang Tunai
Payload
Field | DataType | Mandatory | Description |
Authentication | |||
CorporateID | String(6) | Y | Agen code used to connect to FIRe system |
AccessCode | String(20) | Y | Password that will be read by system for each transaction request |
BranchCode | String(8) | Y | FI branch code of API client |
UserID | String(12) | Y | User ID |
LocalID | String(15) | Y | Branch code from FI sub branch of API client |
AmendmentDetails | |||
SenderDetails | |||
FirstName | String(35) | Y | Sender’s first name |
LastName | String(35) | N | Sender’s last name |
DateOfBirth | String(8) | N | Sender’s date of birth. Format : ddmmyyyy |
Address1 | String(35) | Y | Sender’s first address |
Address2 | String(35) | N | Sender’s second address |
City | String(18) | Y | Sender’s city |
StateID | String(2) | N | State ID |
PostalCode | String(10) | N | Sender’s postal code |
CountryID | String(2) | Y | Sender’s country initial code. Example : Indonesia =ID |
Mobile | String(20) | N | Sender’s mobile phone number |
IdentificationType | String(2) | N | Sender’s identity type |
IdentificationNumber | String(24) | N | Sender’s identity number |
BenficiaryDetails | |||
Name | String(35) | Y | Beneficiary’s name |
DateOfBirth | String(8) | N | Beneficiary’s date of birth. Format : ddmmyyyy |
Address1 | String(35) | N | Beneficiary’s first address |
Address2 | String(35) | N | Beneficiary’s second address |
City | String(35) | N | Beneficiary’s city |
StateID | String(2) | State ID | |
PostalCode | String(10) | N | Beneficiary’s postal code |
CountryID | String(2) | N | Beneficiary’s country initial code. Example : Indonesia =ID |
Mobile | String(20) | N | Beneficiary’s mobile phone number |
IdentificationType | String(2) | N | Beneficiary’s identity type |
IdentificationNumber | String(24) | N | Beneficiary’s identity number |
NationalityID | String(2) | N | Country initial code of beneficiary’s nationality. Example : Indonesia =ID |
Occupation | String(30) | N | Beneficiary occupation |
TransactionDetails | |||
Description1 | String(35) | N | First Description |
Description2 | String(35) | N | Second Description |
SecretQuestion | String(100) | N | Question |
SecretAnswer | String(100) | N | Answer |
TransactionDetails | |||
FormNumber | String(16) | Y | FI Ref |
Result of the request will contains following information:
Response
Field | DataType | Mandatory | Description |
StatusTransaction | String(4) | Y | ResponseCode and Sub-ResponseCode of transaction |
StatusMessage | String(100) | Y | Description of StatusTransaction |
SenderDetails | |||
FirstName | String(35) | N | Sender’s first name |
LastName | String(35) | N | Sender’s last name |
DateOfBirth | String(8) | N | Sender’s date of birth. Format : ddmmyyyy |
Address1 | String(35) | N | Sender’s first address |
Address2 | String(35) | N | Sender’s second address |
City | String(18) | N | Sender’s city |
StateID | String(2) | N | State ID |
PostalCode | String(10) | N | Sender’s postal code |
CountryID | String(2) | N | Sender’s country initial code. Example : Indonesia =ID |
Mobile | String(20) | N | Sender’s mobile phone number |
IdentificationType | String(2) | N | Sender’s identity type |
IdentificationNumber | String(24) | N | Sender’s identity number |
BeneficiaryDetails | |||
Name | String(35) | N | Beneficiary’s name |
DateOfBirth | String(8) | N | Beneficiary’s date of birth. Format : ddmmyyyy |
Address1 | String(35) | N | Beneficiary’s first address |
Address2 | String(35) | N | Beneficiary’s second address |
City | String(35) | N | Beneficiary’s city |
StateID | String(2) | N | State ID |
PostalCode | String(10) | N | Beneficiary’s postal code |
CountryID | String(2) | N | Beneficiary’s country initial code. |
Example : Indonesia =ID | |||
Mobile | String(20) | N | Beneficiary’s mobile phone number |
IdentificationType | String(2) | N | Beneficiary’s identity type. (PP = Passport, ID = Identity, DR = Dr. License) |
IdentificationNumber | String(24) | N | Beneficiary’s identity number |
NationalityID | String(2) | N | Country initial code of beneficiary’s nationality. Example : Indonesia =ID |
Occupation | String(30) | N | Beneficiary occupation |
TransactionDetails | |||
Description1 | String(35) | N | First description |
Description2 | String(35) | N | Second description |
SecretQuestion | String(100) | N | Question |
SecretAnswer | String(100) | N | Answer |
FormNumber | String(16) | N | FI Ref |
Error
HTTP Code | Error Code | Error Message (Indonesian) | Error Message (English) |
---|---|---|---|
400 | ESB-14-001 | HMAC tidak cocok | HMAC mismatch |
400 | ESB-14-002 | Permintaan tidak valid | Invalid request |
400 | ESB-14-003 | Timestamp tidak valid | Invalid timestamp |
400 | ESB-14-004 | Parameter input tidak valid | Invalid input parameter |
503 | ESB-14-005 | Sistem sedang dalam maintenance | System under maintenance |
504 | ESB-14-006 | Timeout, silakan periksa mutasi rekening | Timeout, please check your account statement |
504 | ESB-14-007 | Timeout | Timeout |
401 | ESB-14-008 | client_id/client_secret/grant_type tidak valid | Invalid client_id/client_secret/grant_type |
401 | ESB-14-009 | Tidak berhak | Unauthorized |
429 | ESB-14-010 | Jumlah permintaan melebihi limit | Limit request exceeded |
404 | ESB-14-011 | Service tidak ada | Service doesn't exist |
401 | ESB-14-012 | Tidak berhak mengakses service ini | Not allowed to access this service |
400 | 0101 | Field [fieldName] is required | Field [fieldName] is required |
400 | 0102 | Field [fieldName] is larger than expected | Field [fieldName] is larger than expected |
400 | 0103 | Data type is invalid at field [fieldName] | Data type is invalid at field [fieldName] |
409 | 0201 | Ref pengirim sama | Same Sender Ref |
409 | 0202 | PIN sudah pernah dipakai | PIN already in used |
400 | 0203 | Format mata uang tidak valid | Invalid Currency format |
400 | 0204 | BIC Code tidak valid | Invalid BIC Code |
400 | 0205 | ABA Code tidak valid | Invalid ABA Code |
400 | 0206 | CHIPS Code tidak valid | Invalid CHIPS Code |
400 | 0207 | NID Code tidak valid | Invalid NID Code |
400 | 0208 | Country Code untuk NID Code tidak valid | Invalid Country Code for NID Code |
401 | 0302 | Access Code salah | Wrong Access Code |
400 | 0303 | Branch Code tidak ditemukan | Unknown Branch Code |
400 | 0304 | User ID tidak ditemukan | Unknown User ID |
401 | 0306 | Tidak berhak | Not Authorized Privilege |
400 | 0401 | PRODUK/MATA UANG TIDAK DITEMUKAN | PRODUCT/CURRENCY NOT FOUND |
400 | 0402 | LIMIT PRODUK TIDAK CUKUP | PRODUCT LIMIT NOT ENOUGH |
400 | 0403 | LIMIT RELEASER TIDAK CUKUP | LIMIT RELEASER NOT ENOUGH |
400 | 0404 | ERROR PDN LIMIT | ERROR PDN LIMIT |
400 | 0405 | GAGAL VALIDASI REKENING PENERIMA | FAILED TO VALIDATE BENEFICIARY ACCOUNT |
400 | 0406 | REKENING PENERIMA TIDAK VALID | INVALID BENEFICIARY ACCOUNT |
400 | 0407 | SALDO TIDAK CUKUP | INSUFFICIENT FUND |
404 | 0408 | TRANSAKSI TIDAK DITEMUKAN | TRANSACTION NOT FOUND |
400 | 0409 | REKENING PENERIMA TUTUP | CLOSED BENEFICIARY ACCOUNT |
500 | 0410 | TRANSAKSI TIDAK DAPAT DIPROSES | TRANSACTION CAN NOT BE PROCESSED |
400 | 0412 | BUKAN MEMBER SWITCHING | NON SWITCHING MEMBER |
400 | 0413 | REKENING TIDAK VALID | INVALID ACCOUNT NUMBER |
400 | 0414 | DITOLAK KARENA SALDO TIDAK CUKUP | REJECT DUE INSUFFICIENT FUND |
503 | 0415 | DITOLAK KARENA CUT OFF SISTEM BCA | REJECT DUE TO CUT OFF SYSTEM BCA |
500 | 0901 | Error Database | Error Database |
503 | 0902 | Sistem sedang dalam maintenance | System Under Maintenance |
503 | 0903 | Awal hari error | Begin of Day Error |
500 | 0999 | Error sistem | System error |
PUT https://sandbox.bca.co.id/fire/transaction/cash-transfer/amend
Request
POST /fire/transactions/cash-transfer/amend HTTP/1.1
Host: sandbox.bca.co.id
Authorization: Bearer [access_token]
Content-Type: application/json
Origin: [yourdomain.com]
X-BCA-Key: [api_key]
X-BCA-Timestamp: [timestamp]
X-BCA-Signature: [signature]
{
"Authentication":{
"CorporateID":"ABCDE",
"AccessCode":"k1oawj8tygkrY9tBVkt",
"BranchCode":"BCAAPI01",
"UserID":"BCAUSERID001",
"LocalID":"BCA01"
},
"AmendmentDetails":{
"SenderDetails":{
"FirstName":"ERIK HERNANDEZ CORTES",
"LastName":"",
"DateOfBirth":"",
"Address1":"4TH AVENUE MANHATTAN",
"Address2":"",
"City":"NEW YORK",
"StateID":"",
"PostalCode":"",
"CountryID":"US",
"Mobile":"",
"IdentificationType":"",
"IdentificationNumber":""
},
"BeneficiaryDetails":{
"Name":"ADRIANA PEREZ ENRRIQUEZ",
"DateOfBirth":"",
"Address1":"MAIN STREET 512",
"Address2":"",
"City":"",
"StateID":"",
"PostalCode":"",
"CountryID":"ID",
"Mobile":"",
"IdentificationType":"",
"IdentificationNumber":"",
"NationalityID":"",
"Occupation":""
},
"TransactionDetails":{
"SecretQuestion":"",
"SecretAnswer":"",
"Description1":"",
"Description2":""
}
},
"TransactionDetails":{
"FormNumber":"CT293 IDR2D"
}
}
PUT https://sandbox.bca.co.id/fire/transaction/cash-transfer/amend
Response
{
"SenderDetails":
{
"FirstName":"ERIK HERNANDEZ CORTES",
"LastName":"",
"DateOfBirth":"",
"Address1":"4TH AVENUE MANHATTAN",
"Address2":"",
"City":"NEW YORK",
"StateID":"",
"PostalCode":"",
"CountryID":"US",
"Mobile":"",
"IdentificationType":"",
"IdentificationNumber":""
},
"BeneficiaryDetails":
{
"Name":"ADRIANA PEREZ ENRRIQUEZ",
"DateOfBirth":"",
"Address1":"MAIN STREET 512",
"Address2":"",
"City":"",
"StateID":"",
"PostalCode":"",
"CountryID":"ID",
"Mobile":"",
"IdentificationType":"",
"IdentificationNumber":"",
"NationalityID":"",
"Occupation":""
},
"TransactionDetails":
{
"Description1":"",
"Description2":"",
"SecretQuestion":"",
"SecretAnswer":"",
"FormNumber":"CT293_IDR2D"
},
"StatusTransaction":"0000",
"StatusMessage":"Success"
}
2. Informasi Rekening Penerima
Your request must contain following information:
Payload
Field | DataType | Mandatory | Description |
---|---|---|---|
Authentication | |||
CorporateID | String(6) | Y | Agent code used to connect to FIRe system |
AccessCode | String(20) | Y | Password that will be read by system for each transaction request |
BranchCode | String(8) | Y | FI branch code of API client |
UserID | String(12) | Y | UserID |
LocalID | String(15) | Y | Branch code from FI sub branch of API client |
BeneficiaryDetails | |||
BankCodeType | String(3) | Y | Beneficiary’s SWIFT code type from PY04 table. (BIC, NID, CHP (CHIPS), ABA, NAM(NAME)) |
BankCodeValue | String(23) | Y | |
AccountNumber | String(34) | Y | Beneficiary bank’s account number |
Result of the request will contains following information:
Response
Field | DataType | Mandatory | Description |
---|---|---|---|
BeneficiaryDetails | |||
ServerBeneAccountName | String(35) | N | Name of beneficiary according to application (bank / switcher) |
StatusTransaction | String(4) | Y | ResponseCode and Sub-ResponseCode of transaction |
StatusMessage | String(100) | Y | Description of StatusTransaction |
Error
HTTP Code | Error Code | Error Message (Indonesian) | Error Message (English) |
---|---|---|---|
400 | ESB-14-001 | HMAC tidak cocok | HMAC mismatch |
400 | ESB-14-002 | Permintaan tidak valid | Invalid request |
400 | ESB-14-003 | Timestamp tidak valid | Invalid timestamp |
400 | ESB-14-004 | Parameter input tidak valid | Invalid input parameter |
503 | ESB-14-005 | Sistem sedang dalam maintenance | System under maintenance |
504 | ESB-14-006 | Timeout, silakan periksa mutasi rekening | Timeout, please check your account statement |
504 | ESB-14-007 | Timeout | Timeout |
401 | ESB-14-008 | client_id/client_secret/grant_type tidak valid | Invalid client_id/client_secret/grant_type |
401 | ESB-14-009 | Tidak berhak | Unauthorized |
429 | ESB-14-010 | Jumlah permintaan melebihi limit | Limit request exceeded |
404 | ESB-14-011 | Service tidak ada | Service doesn't exist |
401 | ESB-14-012 | Tidak berhak mengakses service ini | Not allowed to access this service |
400 | 0101 | Field [fieldName] is required | Field [fieldName] is required |
400 | 0102 | Field [fieldName] is larger than expected | Field [fieldName] is larger than expected |
400 | 0103 | Data type is invalid at field [fieldName] | Data type is invalid at field [fieldName] |
409 | 0201 | Ref pengirim sama | Same Sender Ref |
409 | 0202 | PIN sudah pernah dipakai | PIN already in used |
400 | 0203 | Format mata uang tidak valid | Invalid Currency format |
400 | 0204 | BIC Code tidak valid | Invalid BIC Code |
400 | 0205 | ABA Code tidak valid | Invalid ABA Code |
400 | 0206 | CHIPS Code tidak valid | Invalid CHIPS Code |
400 | 0207 | NID Code tidak valid | Invalid NID Code |
400 | 0208 | Country Code untuk NID Code tidak valid | Invalid Country Code for NID Code |
401 | 0302 | Access Code salah | Wrong Access Code |
400 | 0303 | Branch Code tidak ditemukan | Unknown Branch Code |
400 | 0304 | User ID tidak ditemukan | Unknown User ID |
401 | 0306 | Tidak berhak | Not Authorized Privilege |
400 | 0401 | PRODUK/MATA UANG TIDAK DITEMUKAN | PRODUCT/CURRENCY NOT FOUND |
400 | 0402 | LIMIT PRODUK TIDAK CUKUP | PRODUCT LIMIT NOT ENOUGH |
400 | 0403 | LIMIT RELEASER TIDAK CUKUP | LIMIT RELEASER NOT ENOUGH |
400 | 0404 | ERROR PDN LIMIT | ERROR PDN LIMIT |
400 | 0405 | GAGAL VALIDASI REKENING PENERIMA | FAILED TO VALIDATE BENEFICIARY ACCOUNT |
400 | 0406 | REKENING PENERIMA TIDAK VALID | INVALID BENEFICIARY ACCOUNT |
400 | 0407 | SALDO TIDAK CUKUP | INSUFFICIENT FUND |
404 | 0408 | TRANSAKSI TIDAK DITEMUKAN | TRANSACTION NOT FOUND |
400 | 0409 | REKENING PENERIMA TUTUP | CLOSED BENEFICIARY ACCOUNT |
500 | 0410 | TRANSAKSI TIDAK DAPAT DIPROSES | TRANSACTION CAN NOT BE PROCESSED |
400 | 0412 | BUKAN MEMBER SWITCHING | NON SWITCHING MEMBER |
400 | 0413 | REKENING TIDAK VALID | INVALID ACCOUNT NUMBER |
400 | 0414 | DITOLAK KARENA SALDO TIDAK CUKUP | REJECT DUE INSUFFICIENT FUND |
503 | 0415 | DITOLAK KARENA CUT OFF SISTEM BCA | REJECT DUE TO CUT OFF SYSTEM BCA |
500 | 0901 | Error Database | Error Database |
503 | 0902 | Sistem sedang dalam maintenance | System Under Maintenance |
503 | 0903 | Awal hari error | Begin of Day Error |
500 | 0999 | Error sistem | System error |
POST https://sandbox.bca.co.id/fire/accounts
Request
POST /fire/accounts HTTP/1.1
Host: sandbox.bca.co.id
Authorization: Bearer [access_token]
Content-Type: application/json
Origin: [yourdomain.com]
X-BCA-Key: [api_key]
X-BCA-Timestamp: [timestamp]
X-BCA-Signature: [signature]
{
"Authentication":{
"CorporateID":"POSTID",
"AccessCode":"jSvazuvEnz2mavv1wj6L",
"BranchCode":"POSTID01",
"UserID":"OPRPOS1",
"LocalID":"2370000"
},
"BeneficiaryDetails":{
"BankCodeType":"BIC",
"BankCodeValue":"CENAIDJAXXX",
"AccountNumber":"0106666011"
}
}
POST https://sandbox.bca.co.id/fire/accounts
Response
{
"BeneficiaryDetails":
{
"ServerBeneAccountName":"ERWINA TAUFIK"
},
"StatusTransaction":"0000",
"StatusMessage":"Success"
}
3. Informasi Saldo Rekening Mitra
Your request must contain following information:
Payload
Field | DataType | Mandatory | Description |
---|---|---|---|
Authentication | |||
CorporateID | String(6) | Y | Agent code used to connect to FIRe system |
AccessCode | String(20) | Y | Password that will be read by system for each transaction request |
BranchCode | String(8) | Y | FI branch code of API client |
UserId | String(12) | Y | User ID |
LocalId | String(15) | Y | Branch code from FI sub branch of API client |
FIDetails | |||
AccountNumber | String(34) | Y | FI sender's account number thar registered in FIRe |
Response
Field | DataType | Mandatory | Description |
---|---|---|---|
StatusTransaction | String(4) | Y | ResponseCode and Sub-ResponseCode of transaction |
StatusMessage | String(100) | Y | Description of StatusTransaction |
FIDetails | |||
CurrencyID | String(3) | Y | FI sender’s currency that registered in FIRe |
AccountBalance | String(20) | Y | FI sender’s account balance that registered in FIRe. Format : number(17.2) |
Error
HTTP Code | Error Code | Error Message (Indonesian) | Error Message (English) |
---|---|---|---|
400 | ESB-14-001 | HMAC tidak cocok | HMAC mismatch |
400 | ESB-14-002 | Permintaan tidak valid | Invalid request |
400 | ESB-14-003 | Timestamp tidak valid | Invalid timestamp |
400 | ESB-14-004 | Parameter input tidak valid | Invalid input parameter |
503 | ESB-14-005 | Sistem sedang dalam maintenance | System under maintenance |
504 | ESB-14-006 | Timeout, silakan periksa mutasi rekening | Timeout, please check your account statement |
504 | ESB-14-007 | Timeout | Timeout |
401 | ESB-14-008 | client_id/client_secret/grant_type tidak valid | Invalid client_id/client_secret/grant_type |
401 | ESB-14-009 | Tidak berhak | Unauthorized |
429 | ESB-14-010 | Jumlah permintaan melebihi limit | Limit request exceeded |
404 | ESB-14-011 | Service tidak ada | Service doesn't exist |
401 | ESB-14-012 | Tidak berhak mengakses service ini | Not allowed to access this service |
400 | 0101 | Field [fieldName] is required | Field [fieldName] is required |
400 | 0102 | Field [fieldName] is larger than expected | Field [fieldName] is larger than expected |
400 | 0103 | Data type is invalid at field [fieldName] | Data type is invalid at field [fieldName] |
409 | 0201 | Ref pengirim sama | Same Sender Ref |
409 | 0202 | PIN sudah pernah dipakai | PIN already in used |
400 | 0203 | Format mata uang tidak valid | Invalid Currency format |
400 | 0204 | BIC Code tidak valid | Invalid BIC Code |
400 | 0205 | ABA Code tidak valid | Invalid ABA Code |
400 | 0206 | CHIPS Code tidak valid | Invalid CHIPS Code |
400 | 0207 | NID Code tidak valid | Invalid NID Code |
400 | 0208 | Country Code untuk NID Code tidak valid | Invalid Country Code for NID Code |
401 | 0302 | Access Code salah | Wrong Access Code |
400 | 0303 | Branch Code tidak ditemukan | Unknown Branch Code |
400 | 0304 | User ID tidak ditemukan | Unknown User ID |
401 | 0306 | Tidak berhak | Not Authorized Privilege |
400 | 0401 | PRODUK/MATA UANG TIDAK DITEMUKAN | PRODUCT/CURRENCY NOT FOUND |
400 | 0402 | LIMIT PRODUK TIDAK CUKUP | PRODUCT LIMIT NOT ENOUGH |
400 | 0403 | LIMIT RELEASER TIDAK CUKUP | LIMIT RELEASER NOT ENOUGH |
400 | 0404 | ERROR PDN LIMIT | ERROR PDN LIMIT |
400 | 0405 | GAGAL VALIDASI REKENING PENERIMA | FAILED TO VALIDATE BENEFICIARY ACCOUNT |
400 | 0406 | REKENING PENERIMA TIDAK VALID | INVALID BENEFICIARY ACCOUNT |
400 | 0407 | SALDO TIDAK CUKUP | INSUFFICIENT FUND |
404 | 0408 | TRANSAKSI TIDAK DITEMUKAN | TRANSACTION NOT FOUND |
400 | 0409 | REKENING PENERIMA TUTUP | CLOSED BENEFICIARY ACCOUNT |
500 | 0410 | TRANSAKSI TIDAK DAPAT DIPROSES | TRANSACTION CAN NOT BE PROCESSED |
400 | 0412 | BUKAN MEMBER SWITCHING | NON SWITCHING MEMBER |
400 | 0413 | REKENING TIDAK VALID | INVALID ACCOUNT NUMBER |
400 | 0414 | DITOLAK KARENA SALDO TIDAK CUKUP | REJECT DUE INSUFFICIENT FUND |
503 | 0415 | DITOLAK KARENA CUT OFF SISTEM BCA | REJECT DUE TO CUT OFF SYSTEM BCA |
500 | 0901 | Error Database | Error Database |
503 | 0902 | Sistem sedang dalam maintenance | System Under Maintenance |
503 | 0903 | Awal hari error | Begin of Day Error |
500 | 0999 | Error sistem | System error |
POST https://sandbox.bca.co.id/fire/accounts/balance
Request
POST /fire/accounts/balance HTTP/1.1
Host: sandbox.bca.co.id
Authorization: Bearer [access_token]
Content-Type: application/json
Origin: [yourdomain.com]
X-BCA-Key: [api_key]
X-BCA-Timestamp: [timestamp]
X-BCA-Signature: [signature]
{
"Authentication":{
"CorporateID":"POSTID",
"AccessCode":"jSvazuvEnz2mavv1wj6L",
"BranchCode":"POSTID01",
"UserID":"OPRPOS1,
"LocalID":"40115"
},
"FIDetails":{
"AccountNumber":"0012323008"
}
}
POST https://sandbox.bca.co.id/fire/accounts/balance
Response
{
"FIDetails":
{
"CurrencyID":"USD",
"AccountBalance":"228277.56"
},
"StatusTransaction":"0000",
"StatusMessage":"Success"
}
4. Informasi Status Kiriman Uang
Request
Field | DataType | Mandatory | Description |
---|---|---|---|
Authentication | |||
CorporateID | String(6) | Y | Agent code used to connect to FIRe system |
AccessCode | String(20) | Y | Password that will be read by system for each transaction request |
BranchCode | String(8) | Y | FI branch code of API client |
UserID |
String(12) | Y | User ID |
LocalID |
String(15) | Y | Branch code from FI sub branch of API client |
TransactionDetails | |||
InquiryBy | String(1) | Y | N : PIN NON F : Form Number B : BCARef Number |
InquiryValue | String(35) | Y | Value for PIN NON/Form Number/ BCARef Number |
Response
Field
|
DataType | Mandatory | Description |
StatusTransaction | String(4) | Y | ResponseCode and Sub-ResponseCode of transction |
StatusMessage | String(100) | Y | Description of StatusTransaction |
SenderDetails | |||
FirstName | String(35) | N | Sender’s first name |
LastName | String(35) | N | Sender’s last name |
BeneficiaryDetails | |||
Name | String(35) | N | Beneficiary’s name |
BankCodeType | String(3) | N | Beneficiary’s SWIFT code type from PY04 table. (BIC, NID, CHP(CHIPS), ABA, NAM(NAME)) |
BankCodeValue | String(23) | N | Value for SWIFT code type |
AccountNumber | String(34) | N | Beneficiary bank’s account number |
TransactionDetails | |||
AmountPaid | String(20) | N | Transaction value. |
Format: Number(17.2) | |||
CurrencyID | String(3) | N | Currency code |
ReleaseDateTime | String(24) | N | Transaction request time by FI |
LocalID | String(15) | N | Local ID of Last Processed Non-Inquiry Transaction |
FormNumber | String(16) | N | FI Ref |
ReferenceNumber | String(25) | N | Ref number FI/BCA |
PIN | String(35) | N | Personal Identification Number for encashment |
Description1 | String(35) | N | First Description |
Description2 | String(35) | N | Second description |
Error
HTTP Code | Error Code | Error Message (Indonesian) | Error Message (English) |
---|---|---|---|
400 | ESB-14-001 | HMAC tidak cocok | HMAC mismatch |
400 | ESB-14-002 | Permintaan tidak valid | Invalid request |
400 | ESB-14-003 | Timestamp tidak valid | Invalid timestamp |
400 | ESB-14-004 | Parameter input tidak valid | Invalid input parameter |
503 | ESB-14-005 | Sistem sedang dalam maintenance | System under maintenance |
504 | ESB-14-006 | Timeout, silakan periksa mutasi rekening | Timeout, please check your account statement |
504 | ESB-14-007 | Timeout | Timeout |
401 | ESB-14-008 | client_id/client_secret/grant_type tidak valid | Invalid client_id/client_secret/grant_type |
401 | ESB-14-009 | Tidak berhak | Unauthorized |
429 | ESB-14-010 | Jumlah permintaan melebihi limit | Limit request exceeded |
404 | ESB-14-011 | Service tidak ada | Service doesn't exist |
401 | ESB-14-012 | Tidak berhak mengakses service ini | Not allowed to access this service |
400 | 0101 | Field [fieldName] is required | Field [fieldName] is required |
400 | 0102 | Field [fieldName] is larger than expected | Field [fieldName] is larger than expected |
400 | 0103 | Data type is invalid at field [fieldName] | Data type is invalid at field [fieldName] |
409 | 0201 | Ref pengirim sama | Same Sender Ref |
409 | 0202 | PIN sudah pernah dipakai | PIN already in used |
400 | 0203 | Format mata uang tidak valid | Invalid Currency format |
400 | 0204 | BIC Code tidak valid | Invalid BIC Code |
400 | 0205 | ABA Code tidak valid | Invalid ABA Code |
400 | 0206 | CHIPS Code tidak valid | Invalid CHIPS Code |
400 | 0207 | NID Code tidak valid | Invalid NID Code |
400 | 0208 | Country Code untuk NID Code tidak valid | Invalid Country Code for NID Code |
401 | 0302 | Access Code salah | Wrong Access Code |
400 | 0303 | Branch Code tidak ditemukan | Unknown Branch Code |
400 | 0304 | User ID tidak ditemukan | Unknown User ID |
401 | 0306 | Tidak berhak | Not Authorized Privilege |
400 | 0401 | PRODUK/MATA UANG TIDAK DITEMUKAN | PRODUCT/CURRENCY NOT FOUND |
400 | 0402 | LIMIT PRODUK TIDAK CUKUP | PRODUCT LIMIT NOT ENOUGH |
400 | 0403 | LIMIT RELEASER TIDAK CUKUP | LIMIT RELEASER NOT ENOUGH |
400 | 0404 | ERROR PDN LIMIT | ERROR PDN LIMIT |
400 | 0405 | GAGAL VALIDASI REKENING PENERIMA | FAILED TO VALIDATE BENEFICIARY ACCOUNT |
400 | 0406 | REKENING PENERIMA TIDAK VALID | INVALID BENEFICIARY ACCOUNT |
400 | 0407 | SALDO TIDAK CUKUP | INSUFFICIENT FUND |
404 | 0408 | TRANSAKSI TIDAK DITEMUKAN | TRANSACTION NOT FOUND |
400 | 0409 | REKENING PENERIMA TUTUP | CLOSED BENEFICIARY ACCOUNT |
500 | 0410 | TRANSAKSI TIDAK DAPAT DIPROSES | TRANSACTION CAN NOT BE PROCESSED |
400 | 0412 | BUKAN MEMBER SWITCHING | NON SWITCHING MEMBER |
400 | 0413 | REKENING TIDAK VALID | INVALID ACCOUNT NUMBER |
400 | 0414 | DITOLAK KARENA SALDO TIDAK CUKUP | REJECT DUE INSUFFICIENT FUND |
503 | 0415 | DITOLAK KARENA CUT OFF SISTEM BCA | REJECT DUE TO CUT OFF SYSTEM BCA |
500 | 0901 | Error Database | Error Database |
503 | 0902 | Sistem sedang dalam maintenance | System Under Maintenance |
503 | 0903 | Awal hari error | Begin of Day Error |
500 | 0999 | Error sistem | System error |
POST https://sandbox.bca.co.id/fire/transactions
Request
POST /fire/transactions HTTP/1.1
Host: sandbox.bca.co.id
Authorization: Bearer [access_token]
Content-Type: application/json
Origin: [yourdomain.com]
X-BCA-Key: [api_key]
X-BCA-Timestamp: [timestamp]
X-BCA-Signature: [signature]
{
"Authentication":{
"CorporateID":"ABCDE",
"AccessCode":"iAepe8QGv39mTbuFrXN1",
"BranchCode":"ABCDE01",
"UserID":"ABCDEO003",
"LocalID":"ABCDE01"
},
"TransactionDetails":{
"InquiryBy":"N",
"InquiryValue":"0247986325"
}
}
POST https://sandbox.bca.co.id/fire/transactions
Response
5. Kiriman Uang ke Rekening Bank
Payload
Field | DataType | Mandatory | Description |
Authentication | |||
CorporateID | String(6) | Y | Agent code used to connect to FIRe system |
AccessCode | String(20) | Y | Password that will be read by system for each transaction request |
BranchCode | String(8) | Y | FI branch code of API client |
UserID | String(12) | Y | User ID |
LocalID | String(15) | Y | Branch code from FI sub branch of API client |
SenderDetails | |||
FirstName | String(35) | Y | Sender’s first name |
LastName | String(35) | N | Sender’s last name |
DateOfBirth | String(8) | N | Sender’s date of birth. Format : ddmmyyyy |
Address1 | String(35) | Y | Sender’s first address |
Address2 | String(35) | N | Sender’s second address |
City | String(18) | Y | Sender’s city |
StateID | String(2) | N | State ID |
PostalCode | String(10) | N | Sender’s postal code |
CountryID | String(2) | Y | Sender’s country initial code. Example: Indonesia =ID |
Mobile | String(20) | N | Sender’s mobile phone number |
IdentificationType | String(2) | N | Sender’s identity type (PP = Passport, ID = identity, DR = Dr. License) |
IdentificationNumber | String(24) | N | Sender’s identity number |
AccountNumber | String(34) | N | Sender’s account number |
BeneficiaryDetails | |||
Name | String(35) | Y | Beneficiary’s name |
DateOfBirth | String(8) | N | Beneficiary’s date of birth. Format : ddmmyyyy |
Address1 | String(35) | N | Beneficiary’s first address |
Address2 | String(35) | N | Beneficiary’s second address |
City | String(35) | N | Beneficiary’s city |
StateID | String(2) | N | Beneficiary’s state ID |
PostalCode | String(10) | N | Beneficiary’s postal code |
CountryID | String(2) | Y | Beneficiary’s country initial code. Example : Indonesia =ID |
Mobile | String(20) | N | Beneficiary’s mobile phone number |
IdentificationType | String(2) | N | Beneficiary’s identity type. (PP = Passport, ID = identity, DR = Dr. License) |
IdentificationNumber | String(24) | N | Beneficiary’s identity number |
NationalityID | String(2) | N | Country initial code of beneficiary’s nationality. Example = Indonesia =ID |
Occupation | String(30) | N | Beneficiary occupation |
BankCodeType | String(3) | Y | Beneficiary’s SWIFT code type from PY04 table. (BIC, NID, CHP(CHIPS), ABA, NAM(NAME)) |
BankCodeValue | String(23) | Y | Value of SWIFT Code |
BankCountryID | String(2) | Y | Beneficiary bank’s country code |
BankAddress | String(35) | N | Beneficiary bank’s address |
BankCity | String(35) | N | Beneficiary bank’s city |
AccountNumber | String(34) | Y | Beneficiary bank’s account number |
TransactionDetails | |||
CurrencyID | String(3) | Y | Transaction currency between FI and FIRe based on contract (setting FI Country in TPS) |
Amount | String(20) | Y | Transaction nominal. Format: Number, 17.2 |
PurposeCode | String(3) | Y | Transaction purpuse: 011 EXPORT 012 IMPORT 030 BUSINESS/PRIVATE TRIP 040 EDUCATION 150 WORKER’S REMMITANCE 161 TAX AND FINE 162 GRANT 999 OTHERS |
Description1 | String(35) | N | First description |
Description2 | String(35) | N | Second description |
DetailOfCharges | String(3) | Y | Charges(SHA / OUR) |
SourceOfFund | String(100) | N | Source of transaction fund |
FormNumber | String(16) | Y | FI Ref |
Result of the request will contains following information:
Response
Field | DataType | Mandatory | Description |
BeneficiaryDetails | |||
Name | String(35) | N | Beneficiary’s name |
AccountNumber | String(34) | N | Beneficiary bank’s account number |
ServerBeneAccountName | String(35) | N | Name of beneficiary according to application (bank / switcher) |
TransactionDetails | |||
CurrencyID | String(3) | N | Transaction currency between FI and FIRe based on contract (setting FI Country in TPS) |
Amount | String(20) | N | Transaction nominal. Format: Number 17.2 |
Description1 | String(35) | N | First Description |
Description2 | String(35) | N | Second Description |
FormNumber | String(16) | N | FI Ref |
ReferenceNumber | String(25) | N | FI Ref |
ReleaseDateTime | String(24) | N | Transaction release time. Format : YYYY-MM-DDThh:mm:ssTZD |
StatusTransaction | String(4) | Y | ResponseCode and Sub-ResponseCode of transaction |
StatusMessage | String(100) | Y | Description of StatusTransaction |
Error
HTTP Code | Error Code | Error Message (Indonesian) | Error Message (English) |
---|---|---|---|
400 | ESB-14-001 | HMAC tidak cocok | HMAC mismatch |
400 | ESB-14-002 | Permintaan tidak valid | Invalid request |
400 | ESB-14-003 | Timestamp tidak valid | Invalid timestamp |
400 | ESB-14-004 | Parameter input tidak valid | Invalid input parameter |
503 | ESB-14-005 | Sistem sedang dalam maintenance | System under maintenance |
504 | ESB-14-006 | Timeout, silakan periksa mutasi rekening | Timeout, please check your account statement |
504 | ESB-14-007 | Timeout | Timeout |
401 | ESB-14-008 | client_id/client_secret/grant_type tidak valid | Invalid client_id/client_secret/grant_type |
401 | ESB-14-009 | Tidak berhak | Unauthorized |
429 | ESB-14-010 | Jumlah permintaan melebihi limit | Limit request exceeded |
404 | ESB-14-011 | Service tidak ada | Service doesn't exist |
401 | ESB-14-012 | Tidak berhak mengakses service ini | Not allowed to access this service |
400 | 0101 | Field [fieldName] is required | Field [fieldName] is required |
400 | 0102 | Field [fieldName] is larger than expected | Field [fieldName] is larger than expected |
400 | 0103 | Data type is invalid at field [fieldName] | Data type is invalid at field [fieldName] |
409 | 0201 | Ref pengirim sama | Same Sender Ref |
409 | 0202 | PIN sudah pernah dipakai | PIN already in used |
400 | 0203 | Format mata uang tidak valid | Invalid Currency format |
400 | 0204 | BIC Code tidak valid | Invalid BIC Code |
400 | 0205 | ABA Code tidak valid | Invalid ABA Code |
400 | 0206 | CHIPS Code tidak valid | Invalid CHIPS Code |
400 | 0207 | NID Code tidak valid | Invalid NID Code |
400 | 0208 | Country Code untuk NID Code tidak valid | Invalid Country Code for NID Code |
401 | 0302 | Access Code salah | Wrong Access Code |
400 | 0303 | Branch Code tidak ditemukan | Unknown Branch Code |
400 | 0304 | User ID tidak ditemukan | Unknown User ID |
401 | 0306 | Tidak berhak | Not Authorized Privilege |
400 | 0401 | PRODUK/MATA UANG TIDAK DITEMUKAN | PRODUCT/CURRENCY NOT FOUND |
400 | 0402 | LIMIT PRODUK TIDAK CUKUP | PRODUCT LIMIT NOT ENOUGH |
400 | 0403 | LIMIT RELEASER TIDAK CUKUP | LIMIT RELEASER NOT ENOUGH |
400 | 0404 | ERROR PDN LIMIT | ERROR PDN LIMIT |
400 | 0405 | GAGAL VALIDASI REKENING PENERIMA | FAILED TO VALIDATE BENEFICIARY ACCOUNT |
400 | 0406 | REKENING PENERIMA TIDAK VALID | INVALID BENEFICIARY ACCOUNT |
400 | 0407 | SALDO TIDAK CUKUP | INSUFFICIENT FUND |
404 | 0408 | TRANSAKSI TIDAK DITEMUKAN | TRANSACTION NOT FOUND |
400 | 0409 | REKENING PENERIMA TUTUP | CLOSED BENEFICIARY ACCOUNT |
500 | 0410 | TRANSAKSI TIDAK DAPAT DIPROSES | TRANSACTION CAN NOT BE PROCESSED |
400 | 0412 | BUKAN MEMBER SWITCHING | NON SWITCHING MEMBER |
400 | 0413 | REKENING TIDAK VALID | INVALID ACCOUNT NUMBER |
400 | 0414 | DITOLAK KARENA SALDO TIDAK CUKUP | REJECT DUE INSUFFICIENT FUND |
503 | 0415 | DITOLAK KARENA CUT OFF SISTEM BCA | REJECT DUE TO CUT OFF SYSTEM BCA |
500 | 0901 | Error Database | Error Database |
503 | 0902 | Sistem sedang dalam maintenance | System Under Maintenance |
503 | 0903 | Awal hari error | Begin of Day Error |
500 | 0999 | Error sistem | System error |
POST https://sandbox.bca.co.id/fire/transactions/to-account
Request
POST /fire/transactions/to-account HTTP/1.1
Host: sandbox.bca.co.id
Authorization: Bearer [access_token]
Content-Type: application/json
Origin: [yourdomain.com]
X-BCA-Key: [api_key]
X-BCA-Timestamp: [timestamp]
X-BCA-Signature: [signature]
{
"Authentication": {
"CorporateID": "CORP1",
"AccessCode": "Ya9wn025GgaKkcbDsTvR",
"BranchCode": "BRANCH01",
"UserID": "USERID0001",
"LocalID": "LOCAL001"
},
"SenderDetails": {
"FirstName": "First Name",
"LastName": "",
"DateOfBirth": "",
"Address1": "Taman Cibaduyut RT1",
"Address2": "",
"City": "Kab Bandung",
"StateID": "",
"PostalCode": "",
"CountryID": "ID",
"Mobile": "",
"IdentificationType": "",
"IdentificationNumber": "",
"AccountNumber": ""
},
"BeneficiaryDetails": {
"Name": "RAFI ZULFIKAR MUSTAQIM",
"DateOfBirth": "",
"Address1": "",
"Address2": "",
"City": "",
"StateID": "",
"PostalCode": "",
"CountryID": "ID",
"Mobile": "",
"IdentificationType": "",
"IdentificationNumber": "",
"NationalityID": "",
"Occupation": "",
"BankCodeType": "BIC",
"BankCodeValue": "CENAIDJAXXX",
"BankCountryID": "ID",
"BankAddress": "",
"BankCity": "",
"AccountNumber": "0106666011"
},
"TransactionDetails": {
"CurrencyID": "IDR",
"Amount": "100000",
"PurposeCode": "550",
"Description1": "",
"Description2": "",
"DetailOfCharges": "OUR",
"SourceOfFund": "",
"FormNumber": "56559859607940"
}
}
POST https://sandbox.bca.co.id/fire/transactions/to-account
Response
{
"BeneficiaryDetails":
{
"Name":"monica gupt",
"AccountNumber":"0106666011",
"ServerBeneAccountName":"monica gupt"
},
"TransactionDetails":
{
"CurrencyID":"IDR",
"Amount":"10000000",
"Description1":"",
"Description2":"",
"FormNumber":"7632605701245868",
"ReferenceNumber":"IDPYID01000INA17030000057",
"ReleaseDateTime":"2017-10-30T10:37:47.380+07:00"
},
"StatusTransaction":"0000",
"StatusMessage":"Success"
}
6. Pembatalan Kiriman Uang Tunai
Payload
Field | DataType | Mandatory | Description |
Authentication | |||
CorporateID | String(6) | Y | Agent code used to connect to FIRe system |
AccessCode | String(20) | Y | Password that will be read by system for each |
BranchCode | String(8) | Y | FI branch code of API client |
UserID | String(12) | Y | User ID |
LocalID | String(15) | Y | Branch code from FI sub branch of API client |
TransactionDetails | |||
FormNumber | String(16) | Y | FI Ref |
Amount | String(20) | Y | Transaction nominal. Format: Number, 17.2 |
CurrencyID | String(3) | N | Currency code |
Result of the request will contains following information:
Response
Field | DataType | Mandatory | Description |
StatusTransaction | String(4) | Y | RespponseCode and Sub-ResponseCode of transaction |
StatusMessage | String(100) | Y | Description of StatusTransaction |
TransactionDetails | |||
FormNumber | String(16) | N | FI Ref |
ReleaseDateTime | String(24) | Transaction release time. Format : YYYY-MM-DDThh:mm:ssTZD |
Error
HTTP Code | Error Code | Error Message (Indonesian) | Error Message (English) |
---|---|---|---|
400 | ESB-14-001 | HMAC tidak cocok | HMAC mismatch |
400 | ESB-14-002 | Permintaan tidak valid | Invalid request |
400 | ESB-14-003 | Timestamp tidak valid | Invalid timestamp |
400 | ESB-14-004 | Parameter input tidak valid | Invalid input parameter |
503 | ESB-14-005 | Sistem sedang dalam maintenance | System under maintenance |
504 | ESB-14-006 | Timeout, silakan periksa mutasi rekening | Timeout, please check your account statement |
504 | ESB-14-007 | Timeout | Timeout |
401 | ESB-14-008 | client_id/client_secret/grant_type tidak valid | Invalid client_id/client_secret/grant_type |
401 | ESB-14-009 | Tidak berhak | Unauthorized |
429 | ESB-14-010 | Jumlah permintaan melebihi limit | Limit request exceeded |
404 | ESB-14-011 | Service tidak ada | Service doesn't exist |
401 | ESB-14-012 | Tidak berhak mengakses service ini | Not allowed to access this service |
400 | 0101 | Field [fieldName] is required | Field [fieldName] is required |
400 | 0102 | Field [fieldName] is larger than expected | Field [fieldName] is larger than expected |
400 | 0103 | Data type is invalid at field [fieldName] | Data type is invalid at field [fieldName] |
409 | 0201 | Ref pengirim sama | Same Sender Ref |
409 | 0202 | PIN sudah pernah dipakai | PIN already in used |
400 | 0203 | Format mata uang tidak valid | Invalid Currency format |
400 | 0204 | BIC Code tidak valid | Invalid BIC Code |
400 | 0205 | ABA Code tidak valid | Invalid ABA Code |
400 | 0206 | CHIPS Code tidak valid | Invalid CHIPS Code |
400 | 0207 | NID Code tidak valid | Invalid NID Code |
400 | 0208 | Country Code untuk NID Code tidak valid | Invalid Country Code for NID Code |
401 | 0302 | Access Code salah | Wrong Access Code |
400 | 0303 | Branch Code tidak ditemukan | Unknown Branch Code |
400 | 0304 | User ID tidak ditemukan | Unknown User ID |
401 | 0306 | Tidak berhak | Not Authorized Privilege |
400 | 0401 | PRODUK/MATA UANG TIDAK DITEMUKAN | PRODUCT/CURRENCY NOT FOUND |
400 | 0402 | LIMIT PRODUK TIDAK CUKUP | PRODUCT LIMIT NOT ENOUGH |
400 | 0403 | LIMIT RELEASER TIDAK CUKUP | LIMIT RELEASER NOT ENOUGH |
400 | 0404 | ERROR PDN LIMIT | ERROR PDN LIMIT |
400 | 0405 | GAGAL VALIDASI REKENING PENERIMA | FAILED TO VALIDATE BENEFICIARY ACCOUNT |
400 | 0406 | REKENING PENERIMA TIDAK VALID | INVALID BENEFICIARY ACCOUNT |
400 | 0407 | SALDO TIDAK CUKUP | INSUFFICIENT FUND |
404 | 0408 | TRANSAKSI TIDAK DITEMUKAN | TRANSACTION NOT FOUND |
400 | 0409 | REKENING PENERIMA TUTUP | CLOSED BENEFICIARY ACCOUNT |
500 | 0410 | TRANSAKSI TIDAK DAPAT DIPROSES | TRANSACTION CAN NOT BE PROCESSED |
400 | 0412 | BUKAN MEMBER SWITCHING | NON SWITCHING MEMBER |
400 | 0413 | REKENING TIDAK VALID | INVALID ACCOUNT NUMBER |
400 | 0414 | DITOLAK KARENA SALDO TIDAK CUKUP | REJECT DUE INSUFFICIENT FUND |
503 | 0415 | DITOLAK KARENA CUT OFF SISTEM BCA | REJECT DUE TO CUT OFF SYSTEM BCA |
500 | 0901 | Error Database | Error Database |
503 | 0902 | Sistem sedang dalam maintenance | System Under Maintenance |
503 | 0903 | Awal hari error | Begin of Day Error |
500 | 0999 | Error sistem | System error |
POST https://sandbox.bca.co.id/fire/transactions/cash-transfer/cancel
Request
POST /fire/transactions/cash-transfer/cancel HTTP/1.1
Host: sandbox.bca.co.id
Authorization: Bearer [access_token]
Content-Type: application/json
Origin: [yourdomain.com]
X-BCA-Key: [api_key]
X-BCA-Timestamp: [timestamp]
X-BCA-Signature: [signature]
{
"Authentication":{
"CorporateID":"BCAAPI",
"AccessCode":"k6re8tG35hgNODSg3Y",
"BranchCode":"BCA01",
"UserID":"BCAUSERID001",
"LocalID":"40115"
},
"TransactionDetails":{
"FormNumber":"CT293 IDR2D",
"Amount":"9350000.00",
"CurrencyID":"IDR"
}
}
POST https://sandbox.bca.co.id/fire/transactions/cash-transfer/cancel
Response
{
"TransactionDetails":
{
"FormNumber":"CT293_IDR2D",
"ReleaseDateTime":"2016-04-20T04:00:23+07:00"
},
"StatusTransaction":"0000",
"StatusMessage":"Success"
}
7. Transaksi Kiriman Uang Tunai
Your request must contain following information:
Payload
Field | DataType | Mandatory | Description |
Authentication | |||
CorporateID | String(6) | Y | Agent code used to connect to FIRe system |
AccessCode | String(20) | Y | Password that will be read by system for each transaction request |
BranchCode | String(8) | Y | FI branch code of API client |
UserID | String(12) | Y | User ID |
LocalID | String(15) | Y | Branch code from FI sub branch of API client |
SenderDetails | |||
FirstName | String(35) | Y | Sender’s first name |
LastName | String(35) | N | Sender’s last name |
DateOfBirth | String(8) | N | Sender’s date of birth. Format : ddmmyyyy |
Address1 | String(35) | Y | Sender’s first address |
Address2 | String(35) | N | Sender’s second address |
City | String(18) | Y | Sender’s city |
StateID | String(2) | N | Sender’s state ID |
PostalCode | String(10) | N | Sender’s postal code |
CountryID | String(2) | Y | Sender’s country initial code. Example : Indonesia = ID |
Mobile | String(20) | N | Sender’s mobile phone number |
IdentificationType | String(2) | N | Sender’s identity type. (PP = Passport, ID = Identity, DR = Dr. License) |
IdentificationNumber | String(24) | N | Sender’s identity number |
BeneficiaryDetails | |||
Name | String(35) | Y | Beneficiary’s name |
DateOfBirth | String(8) | N | Beneficiary’s date of birth. Format : ddmmyyyy |
Address1 | String(35) | N | Beneficiary’s first address |
Address2 | String(35) | N | Beneficiary’s second address |
City | String(35) | N | Beneficiary’s city |
StateID | String(2) | N | Beneficiary’s state ID |
PostalCode | String(10) | N | Beneficiary’s postal code |
CountryID | String(2) | Y | Beneficiary’s country initial code. Example : Indonesia = ID |
Mobile | String(20) | N | Beneficiary’s mobile phone number |
IdentificationType | String(2) | N | Beneficiary’s identity type. (PP = Passport, ID = Identity, DR = Dr. License) |
IdentificationNumber | String(24) | N | Beneficiary’s identity number |
NationalityID | String(2) | N | Country initial code of beneficiary’s nationality. Example : Indonesia = ID |
Occupation | String(30) | N | Beneficiary occupation |
TransactionDetails | |||
PIN | String(35) | N | Transaction PIN number. If not available, BCA will provide it |
SecretQuestion | String(100) | N | Questions |
SecretAnswer | String(100) | N | Answers |
CurrencyID | String(3) | Y | Transaction currency between FI and FIRe based on contract (setting FI Country in TPS) |
Amount | String(20) | Y | Transaction nominal. Format: number(17,2) |
PurposeCode | String(3) | Y | Transaction purpose. 011 EXPORT 012 IMPORT 030 BUSINESS/PRIVATE TRIP 040 EDUCATION 150 WORKER’S REMMITANCE 161 TAX AND FINE 162 GRANT 999 OTHERS |
Description1 | String(35) | N | First description |
Description2 | String(35) | N | Second description |
DetailOfCharges | String(3) | Y | Charges (SHA / OUR) |
SourceOfFund | String(100) | Y | Source of transaction fund |
FormNumber | String(16) | Y | FI Ref |
Response
Field | DataType | Mandatory | Description |
StatusTransaction | String(4) | Y | ResponseCode and Sub- ResponseCode of transaction |
StatusMessage | String(100) | Y | Description of StatusTransaction |
BeneficiaryDetails | |||
Name | String(35) | N | Beneficiary’s name |
TransactionDetails | |||
PIN | String(35) | N | Transaction PIN number. If not available, BCA will provide it |
CurrencyID | String(3) | N | Transaction currency between FI and FIRe based on contract |
(setting FI Country in TPS) | |||
Amount | String(20) | N | Transaction nominal |
Description1 | String(35) | N | First description |
Description2 | String(35) | N | Second description |
FormNumber | String(16) | N | FI Ref |
ReferenceNumber | String(25) | N | FI Ref |
ReleaseDateTime | String(24) | N | Transaction release time. Format : YYYY-MM-DDThh:mm:ssTZD |
Error
HTTP Code | Error Code | Error Message (Indonesian) | Error Message (English) |
---|---|---|---|
400 | ESB-14-001 | HMAC tidak cocok | HMAC mismatch |
400 | ESB-14-002 | Permintaan tidak valid | Invalid request |
400 | ESB-14-003 | Timestamp tidak valid | Invalid timestamp |
400 | ESB-14-004 | Parameter input tidak valid | Invalid input parameter |
503 | ESB-14-005 | Sistem sedang dalam maintenance | System under maintenance |
504 | ESB-14-006 | Timeout, silakan periksa mutasi rekening | Timeout, please check your account statement |
504 | ESB-14-007 | Timeout | Timeout |
401 | ESB-14-008 | client_id/client_secret/grant_type tidak valid | Invalid client_id/client_secret/grant_type |
401 | ESB-14-009 | Tidak berhak | Unauthorized |
429 | ESB-14-010 | Jumlah permintaan melebihi limit | Limit request exceeded |
404 | ESB-14-011 | Service tidak ada | Service doesn't exist |
401 | ESB-14-012 | Tidak berhak mengakses service ini | Not allowed to access this service |
400 | 0101 | Field [fieldName] is required | Field [fieldName] is required |
400 | 0102 | Field [fieldName] is larger than expected | Field [fieldName] is larger than expected |
400 | 0103 | Data type is invalid at field [fieldName] | Data type is invalid at field [fieldName] |
409 | 0201 | Ref pengirim sama | Same Sender Ref |
409 | 0202 | PIN sudah pernah dipakai | PIN already in used |
400 | 0203 | Format mata uang tidak valid | Invalid Currency format |
400 | 0204 | BIC Code tidak valid | Invalid BIC Code |
400 | 0205 | ABA Code tidak valid | Invalid ABA Code |
400 | 0206 | CHIPS Code tidak valid | Invalid CHIPS Code |
400 | 0207 | NID Code tidak valid | Invalid NID Code |
400 | 0208 | Country Code untuk NID Code tidak valid | Invalid Country Code for NID Code |
401 | 0302 | Access Code salah | Wrong Access Code |
400 | 0303 | Branch Code tidak ditemukan | Unknown Branch Code |
400 | 0304 | User ID tidak ditemukan | Unknown User ID |
401 | 0306 | Tidak berhak | Not Authorized Privilege |
400 | 0401 | PRODUK/MATA UANG TIDAK DITEMUKAN | PRODUCT/CURRENCY NOT FOUND |
400 | 0402 | LIMIT PRODUK TIDAK CUKUP | PRODUCT LIMIT NOT ENOUGH |
400 | 0403 | LIMIT RELEASER TIDAK CUKUP | LIMIT RELEASER NOT ENOUGH |
400 | 0404 | ERROR PDN LIMIT | ERROR PDN LIMIT |
400 | 0405 | GAGAL VALIDASI REKENING PENERIMA | FAILED TO VALIDATE BENEFICIARY ACCOUNT |
400 | 0406 | REKENING PENERIMA TIDAK VALID | INVALID BENEFICIARY ACCOUNT |
400 | 0407 | SALDO TIDAK CUKUP | INSUFFICIENT FUND |
404 | 0408 | TRANSAKSI TIDAK DITEMUKAN | TRANSACTION NOT FOUND |
400 | 0409 | REKENING PENERIMA TUTUP | CLOSED BENEFICIARY ACCOUNT |
500 | 0410 | TRANSAKSI TIDAK DAPAT DIPROSES | TRANSACTION CAN NOT BE PROCESSED |
400 | 0412 | BUKAN MEMBER SWITCHING | NON SWITCHING MEMBER |
400 | 0413 | REKENING TIDAK VALID | INVALID ACCOUNT NUMBER |
400 | 0414 | DITOLAK KARENA SALDO TIDAK CUKUP | REJECT DUE INSUFFICIENT FUND |
503 | 0415 | DITOLAK KARENA CUT OFF SISTEM BCA | REJECT DUE TO CUT OFF SYSTEM BCA |
500 | 0901 | Error Database | Error Database |
503 | 0902 | Sistem sedang dalam maintenance | System Under Maintenance |
503 | 0903 | Awal hari error | Begin of Day Error |
500 | 0999 | Error sistem | System error |
POST https://sandbox.bca.co.id/fire/transactions/cash-transfer
Request
POST /fire/transactions/cash-transfer HTTP/1.1
Host: sandbox.bca.co.id
Authorization: Bearer [access_token]
Content-Type: application/json
Origin: [yourdomain.com]
X-BCA-Key: [api_key]
X-BCA-Timestamp: [timestamp]
X-BCA-Signature: [signature]
{
"Authentication": {
"CorporateID": "PYTHSG",
"AccessCode": "wArjfChZjj9dC3eJqz0X",
"BranchCode": "PYTHSG01",
"UserID": "PYTHSGAPI1",
"LocalID": "PYTHSGAPI1"
},
"SenderDetails": {
"FirstName": "Sutirah Binti",
"LastName": "Hadi Suwito",
"DateOfBirth": "",
"Address1": "20 Pine Grove 06-02, Singapore",
"Address2": "Singapore",
"City": "SINGAPORE",
"StateID": "",
"PostalCode": "",
"CountryID": "SG",
"Mobile": "",
"IdentificationType": "ID",
"IdentificationNumber": "7729902",
"AccountNumber": ""
},
"BeneficiaryDetails": {
"Name": "HADI SUWITO",
"DateOfBirth": "",
"Address1": "",
"Address2": "",
"City": "",
"StateID": "",
"PostalCode": "",
"CountryID": "ID",
"Mobile": "",
"IdentificationType": "",
"IdentificationNumber": "",
"NationalityID": "",
"Occupation": "",
"BankCodeType": "",
"BankCodeValue": "",
"BankCountryID": "",
"BankAddress": "",
"BankCity": "",
"AccountNumber": ""
},
"TransactionDetails": {
"PIN": "P2HBCA5581412",
"CurrencyID": "IDR",
"Amount": "5870890",
"PurposeCode": "011",
"Description1": "",
"Description2": "",
"DetailOfCharges": "OUR",
"SourceOfFund": "SOF",
"FormNumber": "5581412"
}
}
POST https://sandbox.bca.co.id/fire/transactions/cash-transfer
Response
{
"BeneficiaryDetails":
{
"Name":"TEST"
},
"TransactionDetails":
{
"PIN":"477634423",
"CurrencyID":"IDR",
"Amount":"150000.00",
"Description1":"",
"Description2":"",
"FormNumber":"477634423",
"ReferenceNumber":"CITIID01000NON16040000099",
"ReleaseDateTime":""
},
"StatusTransaction":"0003",
"StatusMessage":"Ready to Encash"
}
Top Up Flazz
1. Top Up Flazz Mobile Operating System
To be able to use this feature, the following 5 API services must be accessed by the client:
a. Get Session Key
Your Request must contain following information:
Request Headers and URI Params
Field | Params Type | DataType | Mandatory | Description |
---|---|---|---|---|
channel-id | Header | String | Y | 95381 (WSID FLAZZ) |
credential-id | Header | String(36) | Y | Copartner-id |
Payload (Form Data)
Field | Data Type | Mandatory | Description |
---|---|---|---|
reference_id | String(12) | Y | Reference ID is datetime transaction in milisecond (unix time), requires only the first 12 digits and the same reference_id must be carried in 1 service API set for Top Up Flazz. Ex : 969677130000 Unique per transaction |
request_data | String(198) | Y | Request data stream |
Response
Field | DataType | Mandatory | Description |
---|---|---|---|
response_data | String(198) | N | Response data stream |
transaction_id | String (16) | N | transaction_id |
b. Send topup request from merchant
Your Request must contain following information:
Request Headers and URI Params
Field | Params Type | DataType | Mandatory | Description |
---|---|---|---|---|
channel-id | Header | String | Y | 95381 (WSID FLAZZ) |
credential-id | Header | String(36) | Y | Copartner-id |
Payload (Form Data)
Field | Data Type | Mandatory | Description |
---|---|---|---|
reference_id | String(12) | Y | Reference ID is datetime transaction in milisecond (unix time), requires only the first 12 digits and the same reference_id must be carried in 1 service API set for Top Up Flazz. Ex : 969677130000 Unique per transaction |
request_data | String(448) | Y | Request data stream |
Response
Field | DataType | Mandatory | Description |
---|---|---|---|
response_data | String(350) | N | Response data stream |
ref_no | String(6) | N | ref no |
transaction_id | String (16) | N | transaction_id |
c. Reversal
Your Request must contain following information:
Request Headers and URI Params
Field | Params Type | DataType | Mandatory | Description |
---|---|---|---|---|
channel-id | Header | String | Y | 95381 (WSID FLAZZ) |
credential-id | Header | String(36) | Y | Copartner-id |
Payload (Form Data)
Field | Data Type | Mandatory | Description |
---|---|---|---|
reference_id | String(12) | Y | Reference ID is datetime transaction in milisecond (unix time), requires only the first 12 digits and the same reference_id must be carried in 1 service API set for Top Up Flazz. Ex : 969677130000 Unique per transaction |
request_data | String(544) | Y | Request data stream |
Response
Field | DataType | Mandatory | Description |
---|---|---|---|
response_data | String | N | Response data stream |
transaction_id | String (16) | N | transaction_id |
d.ACK
Your Request must contain following information:
Request Headers and URI Params
Field | Params Type | DataType | Mandatory | Description |
---|---|---|---|---|
channel-id | Header | String | Y | 95381 (WSID FLAZZ) |
credential-id | Header | String(36) | Y | Copartner-id |
Payload (Form Data)
Field | Data Type | Mandatory | Description |
---|---|---|---|
reference_id | String(12) | Y | Reference ID is datetime transaction in milisecond (unix time), requires only the first 12 digits and the same reference_id must be carried in 1 service API set for Top Up Flazz. Ex : 969677130000 Unique per transaction |
request_data | String(544) | Y | Request data stream |
Response
Field | DataType | Mandatory | Description |
---|---|---|---|
response_data | String | N | Response data stream |
transaction_id | String (16) | N | transaction_id |
e.Card Verification
Your Request must contain following information:
Request Headers and URI Params
Field | Params Type | DataType | Mandatory | Description |
---|---|---|---|---|
channel-id | Header | String | Y | 95381 (WSID FLAZZ) |
credential-id | Header | String(36) | Y | Copartner-id |
Payload (Form Data)
Field | Data Type | Mandatory | Description |
---|---|---|---|
reference_id | String(12) | Y | Reference ID is datetime transaction in milisecond (unix time), requires only the first 12 digits and the same reference_id must be carried in 1 service API set for Top Up Flazz. Ex : 969677130000 Unique per transaction |
request_data | String(16) | Y | Request data from online merchants to check Flazz card number |
Field | DataType | Mandatory | Description |
---|---|---|---|
response_data | String(17) | N | Flazz card number
|
Here is the list of error codes that can be returned.
HTTP Code | Error Code | Error Message (Indonesian) | Error Message (English) | Description |
---|---|---|---|---|
400 | ESB-14-001 | HMAC tidak cocok | HMAC mismatch | 400 |
400 | ESB-14-002 | Permintaan tidak valid | Invalid request | 400 |
400 | ESB-14-003 | Timestamp tidak valid | Invalid timestamp | 400 |
400 | ESB-14-004 | parameter input tidak valid | Invalid input parameter | 400 |
500 | ESB-14-005 | Sistem sedang dalam maintenance | System under maintenance | 500 |
504 | ESB-14-007 | Timeout | Timeout | 504 |
401 | ESB-14-008 | Client_Id/Client_Secret /Grant_Type tidak valid | Invalid Client_Id/Client_Secret /Grant_Type | 401 |
401 | ESB-14-009 | Tidak berhak | Unauthorized | 401 |
404 | ESB-14-011 | Service tidak tersedia | Service doesn't exist | 404 |
401 | ESB-14-012 | Tidak berhak mengakses service ini | Not allowed to access this service | 401 |
401 | ESB-14-014 | ChannelID/CredentialID tidak valid | Invalid ChannelID/CredentialID | 401 |
400 | ESB-14-015 | Content Type tidak valid | Invalid Content Type | 400 |
400 | ESB-14-016 | Format JSON tidak valid | Invalid JSON format | 400 |
400 | ESB-14-021 | API Key tidak valid | Invalid API Key | 400 |
400 | ESB-14-022 | API Key/API Secret tidak cocok | API Key/API Secret mismatch | 400 |
504 | ESB-14-023 | Koneksi Timeout. Silakan cek transaksi kembali untuk memastikan keberhasilan transaksi Anda | Connection timeout. Please reinquiry your transaction to ensure transaction status | 504 |
400 | 0002 | Transaksi Gagal | Transaction Failed | Copartner is not registered |
400 | 0012 | Transaksi Gagal | Transaction Failed | Copartner is blocked |
400 | 0022 | Transaksi Gagal | Transaction Failed | Copartner max retry exceeded |
400 | 0032 | Transaksi Gagal | Transaction Failed | Copartner session key not exist |
400 | 1012 | Kartu Error | Card Error | Check expired date failed |
400 | 1022 | Transaksi gagal, nominal Top Up kurang dari minimum | Transaction failed, Top Up amount less than minimum | Check min amount failed |
400 | 1032 | Transaksi gagal, nominal Top Up melebihi saldo maksimum | Transaction failed, Top Up amount exceeds maximum balance | Check max balance failed |
400 | 1052 | Transaksi gagal | Transaction failed | Check mandatory field failed |
400 | 1062 | Transaksi gagal | Transaction failed | Parse request data failed |
400 | 1102 | Transaksi gagal | Transaction failed | Duplicate transaction |
400 | 1122 | Transaksi gagal | Transaction failed | Check original data failed |
400 | 1132 | Transaksi gagal | Transaction failed | Check tid failed |
400 | 1142 | Transaksi gagal | Transaction failed | Check mid failed |
400 | 1152 | Kartu error | Card error | Card blacklisted |
400 | 1202 | Transaksi gagal | Transaction failed | TID and MID doesn’t exist |
400 | 3013 | Transaksi gagal | Transaction failed | Check topup limit timeout failed |
400 | 3023 | Transaksi gagal | Transaction failed | Request topup debit timeout failed |
400 | 3045 | Transaksi gagal | Transaction failed | Check atuf timeout failed |
400 | 4662 | Transaksi tidak dapat diproses. Silahkan coba beberapa saat lagi. | Transaction can not be processed. Please try again later. | Error dari EAI apabila terjadi koneksi timeout saat memanggil ke service lain. |
400 | 4045 | Maaf, transaksi anda tidak dapat diproses | Sorry, your transaction can not be processed | Identifier Channel tidak diizinkan mengakses |
400 | 4009 | Field (0) harus diisi | Missing mandatory field (0) | Field (0) harus diisi |
400 | 4038 | Panjang field (0) tidak valid | Field (0) length not valid | Panjang field (0) tidak valid |
400 | 4039 | Isian input (0) tidak valid | Input for field (0) not valid | Isian input (0) tidak valid |
400 | 4112 | Inputan String JSON tidak valid | Invalid JSON String input | Format JSON input invalid |
400 | 4113 | Transaksi ditolak | Transaction rejected | ClientID tidak dapat mengakses ke service |
400 | 4414 | Transaksi gagal | Transaction failed | Gagal saat konversi(format data yang diterima tidak sesuai) |
400 | 4415 | Transaksi gagal | Transaction failed | Record yang ingin dihapus tidak ada. |
400 | 4416 | Transaksi gagal | Transaction failed | File Limit TopUp tidak ada |
400 | 4417 | Transaksi gagal | Transaction failed | File Limit TopUp tidak bisa dibuka |
400 | 4418 | Transaksi gagal | Transaction failed | File Limit TopUp tidak bisa dibaca |
400 | 4419 | Transaksi gagal | Transaction failed | Record sudah ada ketika tambah record baru |
400 | 4420 | Transaksi gagal | Transaction failed | Record tidak ada ketika Change/Update |
400 | 4421 | Transaksi gagal | Transaction failed | Gagal menulis record |
400 | 4422 | Transaksi gagal | Transaction failed | Gagal hapus record |
400 | 4423 | Transaksi gagal | Transaction failed | FIID yang dikirimkan tidak sesuai/data FIID tidak ada |
400 | 4424 | Transaksi gagal | Transaction failed | Transaksi code tidak sesuai(sesuai dengan data element 91) |
400 | 4425 | Transaksi gagal | Transaction failed | FIID tidak terdaftar |
400 | 4426 | Transaksi gagal | Transaction failed | File request tidak sesuai(sesuai dengan data element 101) |
400 | 4428 | Transaksi gagal | Transaction failed | Gagal ketika mencoba mencari nomor kartu |
400 | 4429 | Transaksi gagal, jumlah top up melebihi limit bulanan | Transaction failed, Top Up amount exceeds monthly limit | Limit kartu Flazz habis. |
400 | 4430 | Transaksi gagal | Transaction failed | Unik id tidak ditemukan |
400 | 4431 | Transaksi gagal | Transaction failed | Koneksi saat dari atau ke b24 terputus |
400 | 4432 | Transaksi gagal | Transaction failed | Koneksi saat dari atau ke b24d itolak |
400 | 4414 | Transaksi gagal | Transaction failed | Gagal saat konversi(format data yang diterima tidak sesuai) |
400 | 4415 | Transaksi gagal | Transaction failed | Record yang ingin dihapus tidak ada. |
400 | 4416 | Transaksi gagal | Transaction failed | File Limit TopUp tidak ada |
400 | 4417 | Transaksi gagal | Transaction failed | File Limit TopUp tidak bisa dibuka |
400 | 4418 | Transaksi gagal | Transaction failed | File Limit TopUp tidak bisa dibaca |
400 | 4419 | Transaksi gagal | Transaction failed | Record sudah ada ketika tambah record baru |
400 | 4420 | Transaksi gagal | Transaction failed | Record tidak ada ketika Change/Update |
400 | 4421 | Transaksi gagal | Transaction failed | Gagal menulis record |
400 | 4422 | Transaksi gagal | Transaction failed | Gagal hapus record |
400 | 4423 | Transaksi gagal | Transaction failed | FIID yang dikirimkan tidak sesuai/data FIID tidak ada |
400 | 4424 | Transaksi gagal | Transaction failed | Transaksi code tidak sesuai(sesuai dengan data element 91) |
400 | 4425 | Transaksi gagal | Transaction failed | FIID tidak terdaftar |
400 | 4426 | Transaksi gagal | Transaction failed | File request tidak sesuai(sesuai dengan data element 101) |
400 | 4427 | Transaksi gagal | Transaction failed | Category selain C,F,T,R. |
400 | 4428 | Transaksi gagal | Transaction failed | Gagal ketika mencoba mencari nomor kartu |
400 | 4429 | Transaksi gagal, kartu sumber dana lebih dari limit | Transaction failed, card for source of founds is over limit | Limit habis kartu akses habis |
400 | 4430 | Transaksi gagal | Transaction failed | Unik id tidak ditemukan |
400 | 4431 | Transaksi gagal | Transaction failed | Koneksi saat dari atau ke b24 terputus |
400 | 4432 | Transaksi gagal | Transaction failed | Koneksi saat dari atau ke b24 ditolak |
400 | 0000 | Transaksi Berhasil | Transaction Success | Transaksi berhasil |
400 | 5202 | Transaksi 0 rupiah | Transaction amount 0 | Transaksi 0 Rupiah |
400 | 5204 | Maaf saldo tidak mencukupi | Sorry your balance is not enough | Maaf saldo tidak mencukupi |
400 | 5206 | Rekening ditolak | Account Rejected | Rekening ditolak |
400 | 5700 | Maaf transaksi harus IDR | Sorry, currency must IDR | Maaf transaksi harus IDR |
400 | 5701 | Rekening ditolak | Account Rejected | Rekening ditolak |
400 | 5702 | Maaf rekening sudah tidak aktif | Sorry, your account is dormant | Maaf rekening sudah tidak aktif |
400 | 5711 | Maaf rekening anda masuk daftar hitam | Sorry, your account is blacklist | Rekening anda diblokir/masuk daftar hitam |
400 | 5999 | Sistem sedang tidak tersedia | System unavailable | Sistem sedang tidak tersedia |
POST /flazz/
Request
REQUEST FOR GET SESSION KEY
POST https://sandbox.bca.co.id/flazz/v2/getKey HTTP/1.1
Host: sandbox.bca.co.id
Authorization: Bearer [access_token]
Content-Type: application/json
Origin: [yourdomain.com]
X-BCA-Key: [api_key]
X-BCA-Timestamp: [timestamp]
X-BCA-Signature: [signature]
ChannelID: [channelID]
CredentialID: [credentialID]
{
"reference_id" : "123456789012",
"request_data" : "01010000202001171513224553594230303031454D424341303031885000015999824E180B6E8227061B4E8A275E3D373702021B4B5E821B063D4E0B370627024E843D3D274B181B8A1B375E4E8A4E020B203"
}
REQUEST FOR TOP UP REQUEST
POST https://sandbox.bca.co.id/flazz/v2/topup HTTP/1.1
Host: sandbox.bca.co.id
Authorization: Bearer [access_token]
Content-Type: application/json
Origin: [yourdomain.com]
X-BCA-Key: [api_key]
X-BCA-Timestamp: [timestamp]
X-BCA-Signature: [signature]
ChannelID: [channelID]
CredentialID: [credentialID]
{
"reference_id" : "123456789012",
"request_data" : "01010024014500280000003800311900000000102020020317152011013049124553594230303031454D4243413030318850000159996E8282370684824E5E02848A8482188A064B06064E0627278A184B4E4E828A3D848A4B82028402064B8206023D1C0B1C1B0B826E1C063D6E185E6E0B4E821B844B37273718064E82024B4E1B0282185E4B37273718064E82024B4E1B0282185E4B37273718064E82024B4E1B0282185E4E0B3D181C4E1B27026E3D5E6E186E1B8A1C3D273782028A068A274B3D0B826E1AE5BCBB7C0226A4DB8C"
}
REQUEST FOR REVERSAL
POST https://sandbox.bca.co.id/flazz/v2/reversal HTTP/1.1
Host: sandbox.bca.co.id
Authorization: Bearer [access_token]
Content-Type: application/json
Origin: [yourdomain.com]
X-BCA-Key: [api_key]
X-BCA-Timestamp: [timestamp]
X-BCA-Signature: [signature]
ChannelID: [channelID]
CredentialID: [credentialID]
{
"reference_id" : "123456789012",
"request_data" : ""01010024014500010036938400291613000000102020012315164520013049124553594230303031454D424341303031885000015999275E6E824B1B4E021B1B1C4E0606023D4E844E5E8A021B6E8A4B4B1C6E4E6E8A4E5E8A82826E374B1B1B0218188A068482061C278A5E0B180B8A6E8A3D0B8A823784186E0B4E8237024E020B6E02825E1B8A020B270B82270227378202183D846E84824E021B4B844B82273D02183D5E5E8A061C6E06068A8A061B024B1B3D4B068A1C02020B6E824E8A371B1C064E8A3D4B84270682278A5E84374E37061C843D4B84270682278A5E84374E37061C843D4B84270682278A5E84374E37061C84C0396097845AD44C26CC"
}
REQUEST FOR ACK
POST https://sandbox.bca.co.id/flazz/v2/ack HTTP/1.1
Host: sandbox.bca.co.id
Authorization: Bearer [access_token]
Content-Type: application/json
Origin: [yourdomain.com]
X-BCA-Key: [api_key]
X-BCA-Timestamp: [timestamp]
X-BCA-Signature: [signature]
ChannelID: [channelID]
CredentialID: [credentialID]
{
"reference_id" : "123456789012",
"request_data" : ""01010024014500010036938400291613000000102020012315164520013049124553594230303031454D424341303031885000015999275E6E824B1B4E021B1B1C4E0606023D4E844E5E8A021B6E8A4B4B1C6E4E6E8A4E5E8A82826E374B1B1B0218188A068482061C278A5E0B180B8A6E8A3D0B8A823784186E0B4E8237024E020B6E02825E1B8A020B270B82270227378202183D846E84824E021B4B844B82273D02183D5E5E8A061C6E06068A8A061B024B1B3D4B068A1C02020B6E824E8A371B1C064E8A3D4B84270682278A5E84374E37061C843D4B84270682278A5E84374E37061C843D4B84270682278A5E84374E37061C84C0396097845AD44C26CC"
}
REQUEST FOR CARD VERIFICATION
POST https://api.klikbca.com/flazz/v2/cardver
-H channel-id 95381
-H credential-id 00ESBY0001
-H Authorization Bearer LYQG93kCXeQCwUWbhYcv5fnrRHum1esgN7nlIl3xmOWhfPIuicXzb9
-H X-BCA-Key fd2bd8c5-ff4d-41b6-8905-f0264f5c6b4f
-H X-BCA-Signature 652ce6723d7a0272c40d5812b3b16ecdaa689b74a04d6d859ed5ffcd7b233e2a
-H X-BCA-Timestamp 2020-02-18T09:27:31.198+07:00
-d {
"reference_id": "123456789012",
"request_data": " 0145007206508575"
}
POST /flazz/
Response
RESPONSE FOR GET SESSION KEY
{
"response_data" : ""01010000202001171513224553594230303031454D4243413030318850000159996DD3D35D3422B7B022CF34B7B0CD6D34345DB07A7ACFA45DCFD3B7A4D3A46DA4CFB0D3D35334B0347D6E537A347A5DCDABB",
"transaction_id": "1234567800000000"
}
RESPONSE FOR REQUEST TOP UP
{
"response_data" : "01240145002800000038000000100000000000160230202002191019275D5D6E5DB05D6D7A7DCF7A22227A6EB07D5D3422CD68CF6853A4A4CDB77AD35DD334347AB7A45DB7D33434B06D68D3D334B7CF7D92D35D34A46E7AD3B7CF34685D34CF34A453D36EB75DD368B76EA4925D34CF34A453D36EB75DD368B76EA4925D34CF34A453D36EB75DD368B76EA4925D34CF34A453D36EB75DD368B76EA4925D34CF34A453D36EB75DD368B76EA492F8B2",
"ref_no": "777777",
"transaction_id": "0000112233445566"
}
RESPONSE FOR REVERSAL
{
"response_data": null,
"transaction_id": "1234567800000000"
}
RESPONSE FOR CARD VERIFICATION
{
"response_data" : "01450072065085750"
}
RESPONSE FOR ACK
{
"response_data" : "null"
"transaction_id": "1234567800000000"
}
Error Schema
{
"error_code" : "Error code",
"error_message" : {
"indonesian" : "Error Message (Indonesian)",
"english" : " Error Message (English)"
}
}
2. Top Up Flazz Non Mobile Operating System
To be able to use this feature, the following 4 API services must be accessed by the client:
a. Get Session Key
Your Request must contain following information:
Request Headers and URI Params
Field | Params Type | DataType | Mandatory | Description |
---|---|---|---|---|
channel-id | Header | String | Y | 95381 (WSID FLAZZ) |
credential-id | Header | String(36) | Y | Copartner-id |
Payload (Form Data)
Field | Data Type | Mandatory | Description |
---|---|---|---|
reference_id | String(12) | Y | Reference ID is datetime transaction in milisecond (unix time), requires only the first 12 digits and the same reference_id must be carried in 1 service API set for Top Up Flazz. Ex : 969677130000 Unique per transaction |
request_data | String(166) | Y | Request data stream |
Response
Field | DataType | Mandatory | Description |
---|---|---|---|
response_data | String(166) | N | Response data stream |
b. Send topup request from merchant
Your Request must contain following information:
Request Headers and URI Params
Field | Params Type | DataType | Mandatory | Description |
---|---|---|---|---|
channel-id | Header | String | Y | 95381 (WSID FLAZZ) |
credential-id | Header | String(36) | Y | Copartner-id |
Payload (Form Data)
Field | Data Type | Mandatory | Description |
---|---|---|---|
reference_id | String(12) | Y | Reference ID is datetime transaction in milisecond (unix time), requires only the first 12 digits and the same reference_id must be carried in 1 service API set for Top Up Flazz. Ex : 969677130000 Unique per transaction |
request_data | String(416) | Y | Request data stream |
Response
Field | DataType | Mandatory | Description |
---|---|---|---|
response_data | String(350) | N | Response data stream |
c. Reversal
Your Request must contain following information:
Request Headers and URI Params
Field | Params Type | DataType | Mandatory | Description |
---|---|---|---|---|
channel-id | Header | String | Y | 95381 (WSID FLAZZ) |
credential-id | Header | String(36) | Y | Copartner-id |
Payload (Form Data)
Field | Data Type | Mandatory | Description |
---|---|---|---|
reference_id | String(12) | Y | Reference ID is datetime transaction in milisecond (unix time), requires only the first 12 digits and the same reference_id must be carried in 1 service API set for Top Up Flazz. Ex : 969677130000 Unique per transaction |
request_data | String(512) | Y | Request data stream |
Response
Field | DataType | Mandatory | Description |
---|---|---|---|
response_data | String | N | Response data stream |
d.ACK
Your Request must contain following information:
Request Headers and URI Params
Field | Params Type | DataType | Mandatory | Description |
---|---|---|---|---|
channel-id | Header | String | Y | 95381 (WSID FLAZZ) |
credential-id | Header | String(36) | Y | Copartner-id |
Payload (Form Data)
Field | Data Type | Mandatory | Description |
---|---|---|---|
reference_id | String(12) | Y | Reference ID is datetime transaction in milisecond (unix time), requires only the first 12 digits and the same reference_id must be carried in 1 service API set for Top Up Flazz. Ex : 969677130000 Unique per transaction |
request_data | String(512) | Y | Request data stream |
Response
Field | DataType | Mandatory | Description |
---|---|---|---|
response_data | String | N | Response data stream |
Here is the list of error codes that can be returned.
HTTP Code | Error Code | Error Message (Indonesian) | Error Message (English) | Description |
---|---|---|---|---|
400 | ESB-14-001 | HMAC tidak cocok | HMAC mismatch | 400 |
400 | ESB-14-002 | Permintaan tidak valid | Invalid request | 400 |
400 | ESB-14-003 | Timestamp tidak valid | Invalid timestamp | 400 |
400 | ESB-14-004 | parameter input tidak valid | Invalid input parameter | 400 |
500 | ESB-14-005 | Sistem sedang dalam maintenance | System under maintenance | 500 |
504 | ESB-14-007 | Timeout | Timeout | 504 |
401 | ESB-14-008 | Client_Id/Client_Secret /Grant_Type tidak valid | Invalid Client_Id/Client_Secret /Grant_Type | 401 |
401 | ESB-14-009 | Tidak berhak | Unauthorized | 401 |
404 | ESB-14-011 | Service tidak tersedia | Service doesn't exist | 404 |
401 | ESB-14-012 | Tidak berhak mengakses service ini | Not allowed to access this service | 401 |
401 | ESB-14-014 | ChannelID/CredentialID tidak valid | Invalid ChannelID/CredentialID | 401 |
403 | ESB-14-019 | Koneksi tidak diperbolehkan | Connection not allowed | 403 |
400 | ESB-14-021 | API Key tidak valid | Invalid API Key | 400 |
400 | ESB-14-022 | API Key/API Secret tidak cocok | API Key/API Secret mismatch | 400 |
400 | 0002 | Transaksi Gagal | Transaction Failed | Copartner is not registered |
400 | 0012 | Transaksi Gagal | Transaction Failed | Copartner is blocked |
400 | 0022 | Transaksi Gagal | Transaction Failed | Copartner max retry exceeded |
400 | 0032 | Transaksi Gagal | Transaction Failed | Copartner session key not exist |
400 | 1012 | Kartu Error | Card Error | Check expired date failed |
400 | 1022 | Transaksi gagal, nominal Top Up kurang dari minimum | Transaction failed, Top Up amount less than minimum | Check min amount failed |
400 | 1032 | Transaksi gagal, nominal Top Up melebihi saldo maksimum | Transaction failed, Top Up amount exceeds maximum balance | Check max balance failed |
400 | 1052 | Transaksi gagal | Transaction failed | Check mandatory field failed |
400 | 1062 | Transaksi gagal | Transaction failed | Parse request data failed |
400 | 1102 | Transaksi gagal | Transaction failed | Duplicate transaction |
400 | 1122 | Transaksi gagal | Transaction failed | Check original data failed |
400 | 1132 | Transaksi gagal | Transaction failed | Check tid failed |
400 | 1142 | Transaksi gagal | Transaction failed | Check mid failed |
400 | 1152 | Kartu error | Card error | Card blacklisted |
400 | 3013 | Transaksi gagal | Transaction failed | Check topup limit timeout failed |
400 | 3023 | Transaksi gagal | Transaction failed | Request topup debit timeout failed |
400 | 3045 | Transaksi gagal | Transaction failed | Check atuf timeout failed |
400 | 4662 | Transaksi tidak dapat diproses. Silahkan coba beberapa saat lagi. | Transaction can not be processed. Please try again later. | Error dari EAI apabila terjadi koneksi timeout saat memanggil ke service lain. |
400 | 4045 | Maaf, transaksi anda tidak dapat diproses | Sorry, your transaction can not be processed | Identifier Channel tidak diizinkan mengakses |
400 | 4009 | Field (0) harus diisi | Missing mandatory field (0) | Field (0) harus diisi |
400 | 4038 | Panjang field (0) tidak valid | Field (0) length not valid | Panjang field (0) tidak valid |
400 | 4039 | Isian input (0) tidak valid | Input for field (0) not valid | Isian input (0) tidak valid |
400 | 4112 | Inputan String JSON tidak valid | Invalid JSON String input | Format JSON input invalid |
400 | 4113 | Transaksi ditolak | Transaction rejected | ClientID tidak dapat mengakses ke service |
400 | 4414 | Transaksi gagal | Transaction failed | Gagal saat konversi(format data yang diterima tidak sesuai) |
400 | 4415 | Transaksi gagal | Transaction failed | Record yang ingin dihapus tidak ada. |
400 | 4416 | Transaksi gagal | Transaction failed | File Limit TopUp tidak ada |
400 | 4417 | Transaksi gagal | Transaction failed | File Limit TopUp tidak bisa dibuka |
400 | 4418 | Transaksi gagal | Transaction failed | File Limit TopUp tidak bisa dibaca |
400 | 4419 | Transaksi gagal | Transaction failed | Record sudah ada ketika tambah record baru |
400 | 4420 | Transaksi gagal | Transaction failed | Record tidak ada ketika Change/Update |
400 | 4421 | Transaksi gagal | Transaction failed | Gagal menulis record |
400 | 4422 | Transaksi gagal | Transaction failed | Gagal hapus record |
400 | 4423 | Transaksi gagal | Transaction failed | FIID yang dikirimkan tidak sesuai/data FIID tidak ada |
400 | 4424 | Transaksi gagal | Transaction failed | Transaksi code tidak sesuai(sesuai dengan data element 91) |
400 | 4425 | Transaksi gagal | Transaction failed | FIID tidak terdaftar |
400 | 4426 | Transaksi gagal | Transaction failed | File request tidak sesuai(sesuai dengan data element 101) |
400 | 4428 | Transaksi gagal | Transaction failed | Gagal ketika mencoba mencari nomor kartu |
400 | 4429 | Transaksi gagal, jumlah top up melebihi limit bulanan | Transaction failed, Top Up amount exceeds monthly limit | Limit kartu Flazz habis. |
400 | 4430 | Transaksi gagal | Transaction failed | Unik id tidak ditemukan |
400 | 4431 | Transaksi gagal | Transaction failed | Koneksi saat dari atau ke b24 terputus |
400 | 4432 | Transaksi gagal | Transaction failed | Koneksi saat dari atau ke b24d itolak |
400 | 4414 | Transaksi gagal | Transaction failed | Gagal saat konversi(format data yang diterima tidak sesuai) |
400 | 4415 | Transaksi gagal | Transaction failed | Record yang ingin dihapus tidak ada. |
400 | 4416 | Transaksi gagal | Transaction failed | File Limit TopUp tidak ada |
400 | 4417 | Transaksi gagal | Transaction failed | File Limit TopUp tidak bisa dibuka |
400 | 4418 | Transaksi gagal | Transaction failed | File Limit TopUp tidak bisa dibaca |
400 | 4419 | Transaksi gagal | Transaction failed | Record sudah ada ketika tambah record baru |
400 | 4420 | Transaksi gagal | Transaction failed | Record tidak ada ketika Change/Update |
400 | 4421 | Transaksi gagal | Transaction failed | Gagal menulis record |
400 | 4422 | Transaksi gagal | Transaction failed | Gagal hapus record |
400 | 4423 | Transaksi gagal | Transaction failed | FIID yang dikirimkan tidak sesuai/data FIID tidak ada |
400 | 4424 | Transaksi gagal | Transaction failed | Transaksi code tidak sesuai(sesuai dengan data element 91) |
400 | 4425 | Transaksi gagal | Transaction failed | FIID tidak terdaftar |
400 | 4426 | Transaksi gagal | Transaction failed | File request tidak sesuai(sesuai dengan data element 101) |
400 | 4427 | Transaksi gagal | Transaction failed | Category selain C,F,T,R. |
400 | 4428 | Transaksi gagal | Transaction failed | Gagal ketika mencoba mencari nomor kartu |
400 | 4429 | Transaksi gagal, kartu sumber dana lebih dari limit | Transaction failed, card for source of founds is over limit | Limit habis kartu akses habis |
400 | 4430 | Transaksi gagal | Transaction failed | Unik id tidak ditemukan |
400 | 4431 | Transaksi gagal | Transaction failed | Koneksi saat dari atau ke b24 terputus |
400 | 4432 | Transaksi gagal | Transaction failed | Koneksi saat dari atau ke b24 ditolak |
400 | 0000 | Transaksi Berhasil | Transaction Success | Transaksi berhasil |
400 | 5202 | Transaksi 0 rupiah | Transaction amount 0 | Transaksi 0 Rupiah |
400 | 5204 | Maaf saldo tidak mencukupi | Sorry your balance is not enough | Maaf saldo tidak mencukupi |
400 | 5206 | Rekening ditolak | Account Rejected | Rekening ditolak |
400 | 5700 | Maaf transaksi harus IDR | Sorry, currency must IDR | Maaf transaksi harus IDR |
400 | 5701 | Rekening ditolak | Account Rejected | Rekening ditolak |
400 | 5702 | Maaf rekening sudah tidak aktif | Sorry, your account is dormant | Maaf rekening sudah tidak aktif |
400 | 5711 | Maaf rekening anda masuk daftar hitam | Sorry, your account is blacklist | Rekening anda diblokir/masuk daftar hitam |
400 | 5999 | Sistem sedang tidak tersedia | System unavailable | Sistem sedang tidak tersedia |
POST /flazz/
Request
REQUEST FOR GET SESSION KEY
POST /flazz/getKey HTTP/1.1
Host: sandbox.bca.co.id
Authorization: Bearer [access_token]
Content-Type: application/json
Origin: [yourdomain.com]
X-BCA-Key: [api_key]
X-BCA-Timestamp: [timestamp]
X-BCA-Signature: [signature]
ChannelID: [channelID]
CredentialID: [credentialID]
{
"reference_id" : "123456789012",
"request_data" : "01010000202001171513224553594230303031454D424341303031885000015999824E180B6E8227061B4E8A275E3D373702021B4B5E821B063D4E0B370627024E843D3D274B181B8A1B375E4E8A4E020B203"
}
REQUEST FOR TOP UP REQUEST
POST /flazz/topup HTTP/1.1
Host: sandbox.bca.co.id
Authorization: Bearer [access_token]
Content-Type: application/json
Origin: [yourdomain.com]
X-BCA-Key: [api_key]
X-BCA-Timestamp: [timestamp]
X-BCA-Signature: [signature]
ChannelID: [channelID]
CredentialID: [credentialID]
{
"reference_id" : "123456789012",
"request_data" : "01010024014500280000003800311900000000102020020317152011013049124553594230303031454D4243413030318850000159996E8282370684824E5E02848A8482188A064B06064E0627278A184B4E4E828A3D848A4B82028402064B8206023D1C0B1C1B0B826E1C063D6E185E6E0B4E821B844B37273718064E82024B4E1B0282185E4B37273718064E82024B4E1B0282185E4B37273718064E82024B4E1B0282185E4E0B3D181C4E1B27026E3D5E6E186E1B8A1C3D273782028A068A274B3D0B826E1AE5BCBB7C0226A4DB8C"
}
REQUEST FOR REVERSAL
POST /flazz/reversal HTTP/1.1
Host: sandbox.bca.co.id
Authorization: Bearer [access_token]
Content-Type: application/json
Origin: [yourdomain.com]
X-BCA-Key: [api_key]
X-BCA-Timestamp: [timestamp]
X-BCA-Signature: [signature]
ChannelID: [channelID]
CredentialID: [credentialID]
{
"reference_id" : "123456789012",
"request_data" : ""01010024014500010036938400291613000000102020012315164520013049124553594230303031454D424341303031885000015999275E6E824B1B4E021B1B1C4E0606023D4E844E5E8A021B6E8A4B4B1C6E4E6E8A4E5E8A82826E374B1B1B0218188A068482061C278A5E0B180B8A6E8A3D0B8A823784186E0B4E8237024E020B6E02825E1B8A020B270B82270227378202183D846E84824E021B4B844B82273D02183D5E5E8A061C6E06068A8A061B024B1B3D4B068A1C02020B6E824E8A371B1C064E8A3D4B84270682278A5E84374E37061C843D4B84270682278A5E84374E37061C843D4B84270682278A5E84374E37061C84C0396097845AD44C26CC"
}
REQUEST FOR ACK
POST /flazz/ack HTTP/1.1
Host: sandbox.bca.co.id
Authorization: Bearer [access_token]
Content-Type: application/json
Origin: [yourdomain.com]
X-BCA-Key: [api_key]
X-BCA-Timestamp: [timestamp]
X-BCA-Signature: [signature]
ChannelID: [channelID]
CredentialID: [credentialID]
{
"reference_id" : "123456789012",
"request_data" : ""01010024014500010036938400291613000000102020012315164520013049124553594230303031454D424341303031885000015999275E6E824B1B4E021B1B1C4E0606023D4E844E5E8A021B6E8A4B4B1C6E4E6E8A4E5E8A82826E374B1B1B0218188A068482061C278A5E0B180B8A6E8A3D0B8A823784186E0B4E8237024E020B6E02825E1B8A020B270B82270227378202183D846E84824E021B4B844B82273D02183D5E5E8A061C6E06068A8A061B024B1B3D4B068A1C02020B6E824E8A371B1C064E8A3D4B84270682278A5E84374E37061C843D4B84270682278A5E84374E37061C843D4B84270682278A5E84374E37061C84C0396097845AD44C26CC"
}
POST /flazz/
Response
RESPONSE FOR GET SESSION KEY
{
"response_data" : ""01010000202001171513224553594230303031454D4243413030318850000159996DD3D35D3422B7B022CF34B7B0CD6D34345DB07A7ACFA45DCFD3B7A4D3A46DA4CFB0D3D35334B0347D6E537A347A5DCDABB"
}
RESPONSE FOR REQUEST TOP UP
{
"response_data" : "01240145002800000038000000100000000000160230202002191019275D5D6E5DB05D6D7A7DCF7A22227A6EB07D5D3422CD68CF6853A4A4CDB77AD35DD334347AB7A45DB7D33434B06D68D3D334B7CF7D92D35D34A46E7AD3B7CF34685D34CF34A453D36EB75DD368B76EA4925D34CF34A453D36EB75DD368B76EA4925D34CF34A453D36EB75DD368B76EA4925D34CF34A453D36EB75DD368B76EA4925D34CF34A453D36EB75DD368B76EA492F8B2"
}
RESPONSE FOR REVERSAL
{
"response_data" : "null"
}
RESPONSE FOR ACK
{
"response_data" : "null"
}