NAV
HTTP cURL
  • Home
  • Introduction

    Overview of BCA Sandbox APIs:

    Method Endpoint Usage
    POST /api/oauth/token Get Access Token for Oauth2.0
    GET /banking/v3/corporates/{CorporateID} /accounts/{AccountNumber1},{AccountNumber2},…,{AccountNumber20} Get your account(s) balance
    GET /banking/v3/corporates/{CorporateID} /accounts/{AccountNumber}/statements Get your account statement
    POST /banking/corporates/transfers Fund Transfer to another BCA account
    POST /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
    POST /sakuku-commerce/payments Create payment for Sakuku
    GET /sakuku-commerce/payments /{MerchantID}/{PaymentID} Get Status of Sakuku Transaction
    GET /general/rate/forex Foreign Exchange Rate Information
    GET /general/info-bca/branch BCA Branch Location
    POST /fire/accounts/balance Get balance information
    POST /fire/accounts Get beneficiary account’s information
    POST /fire/transactions Get status of a transaction
    POST /fire/transactions/to-account Transfer funds directly to beneficiary account
    POST /fire/transactions/cash-transfer Transfer funds to beneficiary to be taken personally
    PUT /fire/transactions/cash-transfer/amend Amend cash transfer transaction’s detail
    POST /fire/transactions/cash-transfer/cancel Cancel cash transfer transaction
    POST /va/payments?CompanyCode=&RequestID= OR
    /va/payments?CompanyCode=&CustomerNumber=
    Get status of payment by CompanyCode and CustomerNumber or RequestID
    POST https://www.somesecurities.com/bca/investor-account/statement Retrieve information of Account Statement of Investor Account for being debited or credited.
    POST https://www.copartners.com/bca-ku/notif-tolakan Service for BCA to send notification for rejection of domestic bank transfer.
    POST https://www.copartners.com/bca-df/disbursement/notification Service for BCA to send notification of disbursement.
    POST https://www.copartners.com/bca-df/txn-limit/notification Service for BCA to send notification of transaction limit update.
    POST https://www.copartners.com/bca-df/stop-supply/notification Service for BCA to send notification of transaction limit update.
    POST /df/invoice Send your invoice data to BCA
    PUT /df/invoice Cancel your invoice data which had been sent to BCA
    POST /fund-collection Add Fund collection
    POST /fund-blocking Add data fund blocking
    PUT /fund-blocking Update data fund blocking
    PUT /fund-blocking/release Release/cancel data fund blocking
    GET /fund-blocking Inquiry data fund blocking

    Authentication

    OAuth2.0

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

    Access Token

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

    Obtaining Access Token

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

    Client Credentials Grant

    Access Token

    POST /api/oauth/token

    POST /api/oauth/token HTTP/1.1
    Host: sandbox.bca.co.id
    Authorization: Basic Base64(client_id:client_secret)
    Content-Type: application/x-www-form-urlencoded
    
    grant_type=client_credentials
    
    curl https://sandbox.bca.co.id/api/oauth/token \
      -H "Content-Type: application/x-www-form-urlencoded" \
      -H "Authorization: Basic jk5ZTkyYzgtYzAzNC00YmNhLWE0OTAtYWM4NGI0YTZiMjQxOjNmYWIwNGI1LWM4ODctNGZmMi05OGNkLTE1YjJmYTcyNzA1NA==" \
      -d "grant_type=client_credentials"
    

    Response:

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

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

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

    Request

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

    Request Headers

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

    Payload

    Field Data Type Mandatory Description
    grant_type String Yes value = client_credentials

    Result of the request will contains following information:

    Response

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

    Signature

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

    The outline of the HMAC validation process is as follows:

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

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

    Signature mismatch error

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

    Generate Signature

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

    Signature = HMAC-SHA256(apiSecret, StringToSign)

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

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

    POST Example:

    Data :
      - Method : POST
      - Relative URL : /banking/corporates/transfers
      - Access token : lIWOt2p29grUo59bedBUrBY3pnzqQX544LzYPohcGHOuwn8AUEdUKS
      - Request body :
        { 
        "CorporateID" : "BCAAPI2016",
            "SourceAccountNumber" : "0201245680",
            "TransactionID" : "00000001",
            "TransactionDate" : "2016-01-30",
            "ReferenceID" : "12345/PO/2016",
            "CurrencyCode" : "IDR",
            "Amount" : "100000.00",
            "BeneficiaryAccountNumber" : "0201245681",
            "Remark1" : "Transfer Test",
            "Remark2" : "Online Transfer"
        }
      - Timestamp : 2016-02-03T10:00:00.000+07:00
    
    API Secret : 22a2d25e-765d-41e1-8d29-da68dcb5698b
    
    Lowercase(HexEncode(SHA-256(RequestBody))) : e3cf5797ac4ac02f7dad89ed2c5f5615c9884b2d802a504e4aebb76f45b8bdfb
    
    StringToSign : POST:/banking/corporates/transfers:lIWOt2p29grUo59bedBUrBY3pnzqQX544LzYPohcGHOuwn8AUEdUKS:e3cf5797ac4ac02f7dad89ed2c5f5615c9884b2d802a504e4aebb76f45b8bdfb:2016-02-03T10:00:00.000+07:00
    
    Signature : 69ad66589ade078a30922a0848725cf153aecfcca82eba94e3270285b4a9c604
    
    

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

    GET Example:

    Data:
      - Method : GET
      - Relative URL : /banking/v3/corporates/BCAAPI2016/accounts/0201245680/statements?StartDate=2016-09-01&EndDate=2016-09-01
      - Access token : lIWOt2p29grUo59bedBUrBY3pnzqQX544LzYPohcGHOuwn8AUEdUKS
      - Request body : 
      - Timestamp : 2016-02-03T10:00:00.000+07:00
    
    API Secret : 22a2d25e-765d-41e1-8d29-da68dcb5698b
    
    Lowercase(HexEncode(SHA-256(RequestBody))) : e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
    
    StringToSign : GET:/banking/v2/corporates/BCAAPI2016/accounts/0201245680/statements?EndDate=2016-09-01&StartDate=2016-09-01:lIWOt2p29grUo59bedBUrBY3pnzqQX544LzYPohcGHOuwn8AUEdUKS:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855:2016-02-03T10:00:00.000+07:00
    
    Signature : 3ac124303746d222387d4398dddf33201a384aa22137aa08f4d9843c6f467a48
    
    

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

    HTTP Method

    Relative URL

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

    AccessToken

    RequestBody

    Canonicalization Example.

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

    After canonicalized, the above JSON will become the following.

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

    Timestamp

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

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

    Headers

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

    Sample request with complete headers:

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

    API Services

    Business Banking

    1. Balance Information

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

    Request:

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

    Response:

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

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

    Request

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

    Response

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










    2. Account Statement

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

    Request:

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

    Response:

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

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

    Your Request must contain following information:

    Request

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

    Result of the request will contains following information:

    Response

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





    3. Fund Transfer

    POST /banking/corporates/transfers

    Request:

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

    Response:

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

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

    Payload

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

    Result of the request will contains following information:

    Response

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





    4. Domestic Fund Transfer

    POST /banking/corporates/transfers/v2/domestic

    Request:

    POST /banking/corporates/transfers/v2/domestic 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]
    channel-id: [channel_id]
    credential-id: [credential_id]
    
    {
        "transaction_id" : "00000001",
        "transaction_date" : "2016-01-30",
        "source_account_number" : "0201245680",
        "beneficiary_account_number" : "0201245681",
        "beneficiary_bank_code" : "BRINIDJA",",
        "beneficiary_name" : "Tester",
        "amount" : "100000.00",
        "transfer_type" : "LLG",
        "beneficiary_cust_type" : "1",",
        "beneficiary_cust_residence" : "1",",
        "currency_code" : "IDR",
        "remark1" : "Transfer Test",
        "remark2" : "Online Transfer"
        "beneficiary_email" : "test@123.com"
    }
    
    
    curl "https://sandbox.bca.co.id/banking/corporates/transfers/v2/domestic" \
      -H "Authorization: Bearer [access_token]"\
      -H "Content-Type: application/json"\
      -H "Origin: [yourdomain.com]"\
      -H "X-BCA-Key: [api_key]"\
      -H "X-BCA-Timestamp: [timestamp]"\
      -H "X-BCA-Signature: [signature]"\
      -H "channel-id: [channel_id]"\
      -H "credential-id: [credential_id]"\
    -d '{"transaction_id": "00000001", "transaction_date":"2016-01-30","source_account_number: "0201245680","beneficiary_account_number" : "0201245681","beneficiary_bank_code" : "BRINIDJA","beneficiary_name" : "Tester", "amount" : "100000.00","transfer_type" :"LLG","beneficiary_cust_type" :"1","beneficiary_cust_residence" :"1","currency_code" :"IDR",  "remark1" : "Transfer Test", "remark2" : "Online Transfer"}
    

    Response LLG:

    {
        "transaction_id" : "00000001",
        "transaction_date" : "2016-01-30",
        "filler_ppu_no"" : ""
    }
    

    Response ONL:

    {
        "transaction_id" : "00000001",
        "transaction_date" : "2016-01-30",
    }
    

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

    Headers

    Field Data Type Mandatory Description
    channel-id String Y 95051
    credential-id String Y Your KlikBCA Bisnis CorporateID

    Payload

    Field Data Type Mandatory Description
    transaction_id String(8) Y Transaction ID unique per 90 days (using UTC+07 Time Zone). Format: Number and must be 8 digits
    transaction_date String(10) Y Transaction date. Format: yyyy-MM-dd
    source_account_number String(10) Y Source of Fund Account Number
    beneficiary_account_number String(34) Y Account number to be credited (Destination)
    beneficiary_bank_code String(8) Y Bank Code of account to be credited (destination)
    beneficiary_name String(70) Y Account name to be credited (destination)
    amount String(16) Y Transfer amount. Format: Number, 13.2
    transfer_type String(3) Y ONL (Switching) ; LLG; RTG (RTGS)
    beneficiary_cust_type String(1) Y 1 = Personal 2 = Corporate 3 = Government *mandatory, if transfer_type = LLG/RTG
    beneficiary_cust_residence String(1) Y 1 = Resident 2 = Non Resident *mandatory, if transfer_type = LLG/RTG
    currency_code String(3) Y Currency Code Currently must be filled with ‘IDR’
    remark1 String(18) N Transfer remark for receiver
    remark2 String(18) N Transfer remark for receiver
    beneficiary_email String(300) N Beneficiary email, if the count of beneficiary email is more than 1, use the symbol of | as separator

    Result of the request will contains following information:

    Response

    Field Data Type Description
    transaction_id String(8) Transaction ID unique per 90 days. (Using UTC+07 Time Zone). Format: Number
    transaction_date String(10) Transcation date. Format: yyyy-MM-dd
    filler_ppu_no String(5) LLG/RTG Response Only

    5. Account Statement Offline

    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]
    
    curl "https://sandbox.bca.co.id/banking/offline/corporates/accounts/0201245680/filestatements?StartDate=2016-06-24&EndDate=2016-06-24" \
      -H "Authorization: Bearer [access_token]"\
      -H "Content-Type: application/json"\
      -H "Origin: [yourdomain.com]"\
      -H "X-BCA-Key: [api_key]"\
      -H "X-BCA-Timestamp: [timestamp]"\
      -H "X-BCA-Signature: [signature]"
    

    Response:

    {
        "RequestID" : "ABCDEFGHIJ_0000000752",
        "ResponseWS" : "Request Account Statement Berhasil Diterima dan Sedang
    Diproses",    
    }
    

    You can get your bulk statement in form of file for a period up to 7 days. Your Request must contain following information:

    Headers

    Field Data Type 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 Data Type 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 Data Type Description
    RequestID String(21) Statement request ID
    TransactionDate String

    6. Inquiry Transfer Status

    GET /banking/corporates/transfers/status/{TransactionNumber}

    Request:

    GET /banking/corporates/transfers/status/17071800840035?TransactionDate=2017-07-18&TransferType=BCA 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]
    
    curl "https://sandbox.bca.co.id/banking/corporates/transfers/status/17071800840035?TransactionDate=2017-07-18&TransferType=BCA" \
      -H "Authorization: Bearer [access_token]"\
      -H "Content-Type: application/json"\
      -H "Origin: [yourdomain.com]"\
      -H "X-BCA-Key: [api_key]"\
      -H "X-BCA-Timestamp: [timestamp]"\
      -H "X-BCA-Signature: [signature]"
      -H "ChannelID: [channelID]"\
      -H "CredentialID: [credentialID]"\
    

    Response:

    {
        "transaction_id" : "17071800840035",
        "transaction_date" : "2017-07-18",
        "transfer _type" : "BCA",
        "source_account_number" : "0611081561",
        "beneficiary_account_number" : "0613809551",
        "currency_code" : "IDR",
        "amount" : "275550",  
        "status_code" : "00",
        "reason": {
    		"English": "Transaction on process"
    		"Indonesian": "Transaksi sedang dalam proses",
    	}	
    }
    

    Get fund transfer status. Your Request must contain following information:

    Headers

    Field Data Type 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)

    Path Parameters

    Field Data Type Mandatory Description
    TransactionID String(14) Y Fund Transfer Transaction ID

    Query Parameters

    Field Data Type Mandatory Description
    TransactionDate String(10) Y Fund Transfer Transaction Date. Format: yyyy-MM-dd
    TransferType String(3) Y Fund Transfer Transaction Type BCA, LLG or RTG

    Response

    Field Data Type Description
    transaction_id String(14) Fund Transfer Transaction ID
    transaction_date String (10) Transaction Date
    transaction_type String (3) BCA/LLG/RTG
    source_account_number String (10) Source of Fund Account Number
    beneficiary_account_number String (34) Account number to be credited (destination)
    currency_code String (3) Currency Code
    amount String (13.2) Transfer Amount
    status_code String (2) Transfer Status Code
    00 : Success
    01 : Failed
    02 : Pending
    reason
      english String (50) Transfer Status in English
      indonesia String (50) Transfer Status in Bahasa



    7. Inquiry Domestic Account

    GET /banking/corporates/transfers/v2/domestic/beneficiaries/banks/(beneficiary_bank_code)/accounts/(beneficiary_account_number)

    Request:

    GET /banking/corporates/transfers/v2/domestic/beneficiaries/banks/BNIAIDJA/accounts/1231314113331 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]
    channel-id: [channel_id]
    credential-id: [credential_id]
    
    
    
    curl "https://sandbox.bca.co.id/banking/corporates/transfers/v2/domestic/beneficiaries/banks/BNIAIDJA/accounts/1231314113331" \
      -H "Authorization: Bearer [access_token]"\
      -H "Content-Type: application/json"\
      -H "Origin: [yourdomain.com]"\
      -H "X-BCA-Key: [api_key]"\
      -H "X-BCA-Timestamp: [timestamp]"\
      -H "X-BCA-Signature: [signature]"\
      -H "channel-id: [channel_id]"\
      -H "credential-id: [credential_id]"\
    

    Response :

    {
        "beneficiary_bank_code" : "BNIAIDJA",
        "beneficiary_account_number" : "1231314113331",
        "beneficiary_account_name"" : "Trinawati Eka Putri"
    }
    

    Inquiry Domestic Account service is to get beneficiary account information including beneficiary account name. (This feature is only available for switching bank member)

    Headers

    Field Data Type Mandatory Description
    channel-id String Y 95051
    credential-id String Y Your KlikBCA Bisnis CorporateID

    Path

    Field Data Type Mandatory Description
    beneficiary_account_number String Y Beneficiary Account Number
    beneficiary_bank_code String Y Beneficiary Bank Code

    Result of the request will contains following information:

    Response

    Field Data Type Description
    beneficiary_bank_code String
    beneficiary_account_number String
    beneficiary_account_name String

    Sakuku

    1. Create Payment

    POST /sakuku-commerce/payments

    Request:

    POST /sakuku-commerce/payments HTTP/1.1
    Host: sandbox.bca.co.id
    Authorization: Bearer 45cfc1b6-9483-4265-bbb4-e4f8027cb4ce
    Content-Type: application/json
    Origin: Example.com
    X-BCA-Key: bd818a9b-b5ba-44ed-8fd4-dfe378ac6db5
    X-BCA-Timestamp: 2015-04-29T09:54:00.234+07:00
    X-BCA-Signature: bd818a9bb5ba44ed8fd4dfe378ac6db5
    
    {
         "MerchantID":"89000",
         "MerchantName":"Merchant One",
         "Amount":"100.22",
         "Tax":"0.0",  
         "TransactionID":"156479",  
         "CurrencyCode":"IDR",         
         "RequestDate":"2015-04-29T09:54:00.234+07:00",
         "ReferenceID":"123465798"   
    }
    
    curl "https://sandbox.bca.co.id/payments" \
      -H "Authorization: Bearer [access_token]"\
      -H "Content-Type: application/json"\
      -H "Origin: [yourdomain.com]"\
      -H "X-BCA-Key: [api_key]"\
      -H "X-BCA-Timestamp: [timestamp]"\
      -H "X-BCA-Signature: [signature]"\
    -d '{"MerchantID":"89000", "MerchantName":"Merchant One",
    "Amount":"100.22", "Tax":"0.0", "TransactionID":"156479",  
    "CurrencyCode":"IDR", "RequestDate":"2015-04-29T09:54:0-
    0.234+07:00", "ReferenceID":"123465798"}' 
    

    Response:

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

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

    Request

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

    Result of the request will contains following information:

    Response

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

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

    2. Payment Status

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

    Request:

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

    Response:

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

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

    Request

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

    Your Request will contain following RESPONSE information:

    Response

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

    General Information

    GET /general/rate/forex

    Request:

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

    Response:

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

    1. Foreign Exchange Rate

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

    Query string parameters:

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

    Following are the known foreign currency in BCA.

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


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


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

    Result of the request will contains following information:

    Response

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


    2. Nearest Branch Location

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

    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]
    
    curl "https://sandbox.bca.co.id/general/info-bca/branch?Latitude=-6.137235&Longitude=106.824928" \
      -H "Authorization: Bearer [access_token]"\
      -H "Content-Type: application/json"\
      -H "Origin: [yourdomain.com]"\
      -H "X-BCA-Key: [api_key]"\
      -H "X-BCA-Timestamp: [timestamp]"\
      -H "X-BCA-Signature: [signature]"
    

    Response:

    {
        "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": "-"
          }
        ]
    }
    

    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”

    3. Nearest ATM Location

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

    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]
    
    curl "https://sandbox.bca.co.id/general/info-bca/atm?Latitude=6.1900718&Longitude=106.797190" \
      -H "Authorization: Bearer [access_token]"\
      -H "Content-Type: application/json"\
      -H "Origin: [yourdomain.com]"\
      -H "X-BCA-Key: [api_key]"\
      -H "X-BCA-Timestamp: [timestamp]"\
      -H "X-BCA-Signature: [signature]"
    

    Response:

    {
        "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",
          }
        ]
    }
    

    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

    Fire

    1. TeleTransfer to Account

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

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

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

    Payload

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


    Result of the request will contains following information:

    Response:

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

    Response

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

    2. Inquiry Account

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

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

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

    Payload

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

    Result of the request will contains following information:

    Response:

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

    Response

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

    3. Inquiry Account Balance

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

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

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

    Payload:

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


    Result of the request will contains following information:

    Response:

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

    Response

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

    4. Inquiry Transaction

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

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

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

    Payload:

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


    Result of the request will contains following information:

    Response:

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

    Response

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

    5. TeleTransfer Cash Transfer

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

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

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

    Payload

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

    Result of the request will contains following information:

    Response:

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

    Response

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

    6. Amendment Cash Transfer

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

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

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

    Payload:

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


    Result of the request will contains following information:

    Response:

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

    Response

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

    7. Cancel Cash Transfer

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

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

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

    Payload

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


    Result of the request will contains following information:

    Response:

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

    Reponse

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

    Status Transaction

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

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

    Virtual Account

    1. Inquiry Status Payment

    INQUIRY BY REQUEST ID

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

    Request:

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

    Response:

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

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

    Request:

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

    Response:

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

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

    Request

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

    Result of the request will contains following information:

    Response

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

    Notification

    1. Notification for Securities

    NOTIFICATION FOR SECURITIES

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

    Response:

    {
        "ResponseWS":"0"
    }
    

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

    Request

    Field Data Type 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

    When Transaction Type (TxnType) value is NREV, the value of External Reference (ExternalReference) will be the same with the reversed transaction (the original transaction with same ExternalReference number but TxnType is NTRF).

    Response

    Field Data Type Description
    ResponseWS String Flag received status.
    0 : request successfully accepted and no internal error
    1 : request unsuccessfully accepted and or some internal error occured

    2. Notification for Rejection of Domestic Bank Transfer

    NOTIFICATION FOR REJECTION OF DOMESTIC BANK TRANSFER

    POST https://www.copartners.com/bca-ku/notif-tolakan

    -H "X-Pass-Signature:b9125ab10816f6929d214c96ffca77dfd5a1ea13856362b85eeaeb70155"
    -d "{
    "TransactionID": "31222447",
    "TransactionDate": "2018-07-05",
    "TransferType": "LLG",
    "PPUNumber": "FMLC",
    "AccountNoFrom": "0103007001",
    "AccountNoTo": "03300102020450",
    "ReceiverBankCode": "BRINIDJA",
    "ReceiverName": "Ripngatin",
    "Amount": "1000000.00",
    "RejectCode": "02",
    "RejectStatusID": "Nomor rekening tidak terdaftar",
    "RejectStatusEN": "Account number is not registered"
    }"

    Response:

    {
        "ResponseWS":"1"
    }
    

    Service for BCA to send notification for rejection of domestic bank transfer.

    Request

    Field Data Type Mandatory Description
    TransactionID String(8) Y UUID as unique ID for every request.
    TransactionDate String(10) Y Transaction date. Format: yyyy-MM-dd.
    TransferType String(3) Y Transaction Type. Ex: LLG, RTG.
    PPUNumber String(5) Y PPU Number.
    AccountNoFrom String(10) Y Sender Account Number.
    AccountNoTo String(34) Y Receiver Account Number.
    ReceiverBankCode String(8) Y Receiver Bank SWIFT Code.
    ReceiverName String Y Receiver Name.
    Amount String(16) Y Transfer Amount. Format: Numeric, 13.2.
    RejectStatusID String Y Reject Description in Indonesian.
    RejectStatusEN String Y Reject Description in English.

    Response

    Field Data Type Description
    ResponseWS String Response from Co-Partner

    3. Notification Account Statement Offline

    NOTIFICATION ACCOUNT STATEMENT OFFLINE

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

    Response:

    {
        "RequestID" : "h2hauto014_0000000551",
        "ResponseWS" : "1",    
    }
    

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

    Request

    Field Data Type 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

    Response

    Field Data Type Description
    ResponseWS String Statement request ID
    ResponseWS String Response from Co-Partner

    Financing

    1. Add Invoice

    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",
    }
    
    
    curl "https://sandbox.bca.co.id/df/invoice" \
      -H "Authorization: Bearer [access_token]"\
      -H "Content-Type: application/json"\
      -H "Origin: [yourdomain.com]"\
      -H "X-BCA-Key: [api_key]"\
      -H "X-BCA-Timestamp: [timestamp]"\
      -H "X-BCA-Signature: [signature]"\
      -H ChannelID: [channelID]
      -H CredentialID: [credentialID]
      
    {
        "TransactionID" : "ABCDEFGHIJ0123456789",
        "TransactionDate" : "2018-02-15",
        "ReferenceID"" : "INV0000001",
        "DistributorCode" : "ABCDE-12345",
        "Amount" : "100000000.00",
        "CurrencyCode" : "IDR",
        "PrincipalCode" : "00000000001",
        "DisburseDate" : "2018-02-30"
    }
      
    

    Response:

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

    You can send your invoice data to BCA using this service.

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

    Your Request must contain following information:

    Additional Headers

    Field Data Type 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: yyyy-MM-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: yyyy-MM-dd

    Response

    Field Data Type 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

    2. Cancel Invoice

    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",
    }
    
    
    curl "https://sandbox.bca.co.id/df/invoice" \
      -H "Authorization: Bearer [access_token]"\
      -H "Content-Type: application/json"\
      -H "Origin: [yourdomain.com]"\
      -H "X-BCA-Key: [api_key]"\
      -H "X-BCA-Timestamp: [timestamp]"\
      -H "X-BCA-Signature: [signature]"\
      -H ChannelID: [channelID]
      -H CredentialID: [credentialID]
      
    {
        "TransactionID" : "ABCDEFGHIJ0123456789",
        "TransactionDate" : "2018-02-15",
        "ReferenceID"" : "INV0000001",
        "DistributorCode" : "ABCDE-12345",
        "Amount" : "100000000.00",
        "CurrencyCode" : "IDR",
        "PrincipalCode" : "00000000001",
        "DisburseDate" : "2018-02-30"
    }
      
    

    Response:

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

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

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

    Your Request must contain following information:

    Additional Headers

    Field Data Type 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: yyyy-MM-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) N 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 Data Type 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

    3. Disbursement Notification

    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",
    }
    
    
    curl "https://www.copartners.com/bca-df/disbursement/notification" \
      -H "X-Pass-Signature"b9125ab10816f6929d214c96ffca77dfd5a1ea13856362b85eeaeb70155
      
    {
        "TransactionID" : "65d5dd3474b44c5abbb0ce1cb5ff563f",",
        "TransactionDate" : "2018-02-15",
        "ReferenceID"" : "INV001923",",
        "PrincipalCode"" : "00000000001",
        "SubPrincipalCode"" : "",
        "DistributorCode" : "ABCDE-12345",
        "Amount" : "100000000.00",
        "CurrencyCode" : "IDR",
    }
      
    

    Response:

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

    Service for BCA to send notification of disbursement.

    Additional Headers

    Field Data Type 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
    TransactionDate String(10) Y Transaction date. Format: yyyy-MM-dd
    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 Data Type Description
    TransactionID String(32) Same TransactionID from request. It’s a UUID
    TransactionDate String(10) Transaction date. Format: yyyy-MM-dd
    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

    4. Transaction Limit Update Notification

    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",
    }
    
    
    curl "https://www.copartners.com/bca-df/txn-limit/notification" \
      -H "X-Pass-Signature"b9125ab10816f6929d214c96ffca77dfd5a1ea13856362b85eeaeb70155
      
    {
        "TransactionID" : "65d5dd3474b44c5abbb0ce1cb5ff563f",",
        "PrincipalCode"" : "00000000001",
        "DistributorCode"" : "ABCDE-12345",
        "Amount" : "100000000.00",
        "TransactionDate" : "2018-02-15",
    }
      
    

    Response:

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

    Service for BCA to send notification of transaction limit update.

    Additional Headers

    Field Data Type 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 Format: yyyy-MM-dd.

    Response

    Field Data Type Description
    TransactionID String(32) Same TransactionID from request. It’s a UUID
    DistributorCode String(20) Same Distributor Code from request

    5. Stop Supply Notification

    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",
    }
    
    
    curl "https://www.copartners.com/bca-df/stop-supply/notification" \
      -H "X-Pass-Signature"b9125ab10816f6929d214c96ffca77dfd5a1ea13856362b85eeaeb70155
      
    {
        "TransactionID" : "65d5dd3474b44c5abbb0ce1cb5ff563f",",
        "DistributorCode"" : "ABCDE-12345",
        "PrincipalCode"" : "00000000001",
        "TransactionDate" : "2018-02-15",
        "StopSupplyFlag"" : "1",
    }
      
    

    Response:

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

    Service for BCA to send notification of transaction limit update.

    Additional Headers

    Field Data Type 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
    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 Data Type Description
    TransactionID String(32) Same TransactionID from request. It’s a UUID.
    DistributorCode String(20) Same Distributor Code from request.

    Fund Collection

    1. Add Fund Collection

    POST /fund-collection

    Request:

    POST /fund-collection 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" : "0000000001",
        "ReferenceNumber" : "1111111110",
        "RequestType" : "B",
        "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",
    }
    
    
    curl "https://sandbox.bca.co.id/fund-collection" \
      -H "Authorization: Bearer [access_token]"\
      -H "Content-Type: application/json"\
      -H "Origin: [yourdomain.com]"\
      -H "X-BCA-Key: [api_key]"\
      -H "X-BCA-Timestamp: [timestamp]"\
      -H "X-BCA-Signature: [signature]"\
      -H ChannelID: [channelID]
      -H CredentialID: [credentialID]
      
    {
        "TransactionID" : "0000000001",
        "ReferenceNumber" : "1111111110",
        "RequestType" : "B",
        "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",
    }
      
    

    Response:

    {
        "TransactionID" : "0000000001",
        "ReferenceID"" : "1111111110",
        "DebitedAccount" : "1234567890",
        "Amount" : "100200300.00",
        "Currency" : "IDR",
        "CreditedAccount" : "1234567891",
        "EffectiveDate" : "2018-02-15",
        "TransactionDate" : "2018-02-15"
    	"Status"" : "Success",
    }
    

    This service is used to collect some amount of money from your destination bank account that have been blocked before.

    Your Request must contain following information:

    Additional Headers

    Field Data Type 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(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, must registered at KlikBCA Bisnis.Mandatory ONLY IF RequestType = NB (Without Blocking). Otherwise must left empty. Format: Numeric.
    Amount String(16) Y Maximum length is 16, include decimal amount. Format: Numeric, 13.2
    Currency String(3) Y Currently is IDR only.
    CreditedAccount String(10) Y Account to be credited
    EffectiveDate String(10) Y Transaction Effective Date. Max : 366 days. Format: yyyy-MM-dd.
    TransactionDate String(10) Y The date of the Transaction. Format: yyyy-MM-dd.
    Remark1 String(18)) Y Transfer remark for receiver.
    Remark2 String(18)) Y Transfer remark for receiver.
    Email String(254) Y Email address of beneficiary (blocked account’s owner).

    Response

    Field Data Type 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. 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

    2. Add Fund Block

    POST /fund-collection

    Request:

    POST /fund-blocking 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" : "0000000001",
        "ReferenceNumber" : "1111111110",
        "RequestType" : "A",
        "DebitedAccount"" : "1234567890",
        "Amount" : "100200300.00",
        "Currency" : "IDR",
        "ExpiredDate" : "2018-03-30",
        "TransactionDate" : "2018-02-15",
        "Remark1"" : "Testing block 1",
        "Remark2"" : "Testing block 2",
        "Email"" : "beneficiary@mail.com",
    }
    
    
    curl "https://sandbox.bca.co.id/fund-blocking" \
      -H "Authorization: Bearer [access_token]"\
      -H "Content-Type: application/json"\
      -H "Origin: [yourdomain.com]"\
      -H "X-BCA-Key: [api_key]"\
      -H "X-BCA-Timestamp: [timestamp]"\
      -H "X-BCA-Signature: [signature]"\
      -H ChannelID: [channelID]
      -H CredentialID: [credentialID]
      
    {
        "TransactionID" : "0000000001",
        "ReferenceNumber" : "1111111110",
        "RequestType" : "A",
        "DebitedAccount"" : "1234567890",
        "Amount" : "100200300.00",
        "Currency" : "IDR",
        "ExpiredDate" : "2018-03-30",
        "TransactionDate" : "2018-02-15",
        "Remark1"" : "Testing block 1",
        "Remark2"" : "Testing block 2",
        "Email"" : "beneficiary@mail.com",
    }
      
    

    Response:

    {
        "TransactionID" : "0000000001",
        "ReferenceNumber"" : "1111111110",
        "DebitedAccount" : "1234567890",
        "Amount" : "100200300.00",
        "Currency" : "IDR",
        "TransactionDate" : "2018-02-15"
    	"Status"" : "Success",
    }
    

    This service is used to request new blocking on some amount of money from your destination bank account. No request cut off time applied so you can add new blocking request anytime. Every blocking request has its own expiry date.

    Your Request must contain following information:

    Additional Headers

    Field Data Type 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(18) Y Unique data from Corporate. Format: Numeric.
    ReferenceNumber String(14) Y Sender's Transaction Reference ID. Format: Numeric.
    RequestType String(2) Y A = Request Add Blocking. Format: Alphabet.
    DebitedAccount String(10) Y Account to be debited, must registered at KlikBCA Bisnis. Format: Numeric.
    Amount String(13,2) Y Total length is 15, include decimal amount. Format: Numeric, 13.2
    Currency String(3) Y Currently is IDR only.
    ExpiredDate String(10) Y Transaction Expired Date. Max : 366 days. Format: yyyy-MM-dd.
    TransactionDate String(10) Y The date of the Transaction. Format: yyyy-MM-dd.
    Remark1 String(18)) Y Transfer remark for receiver.
    Remark2 String(18)) Y Transfer remark for receiver.
    Email String(254) Y Email address of beneficiary (blocked account’s owner).

    Response

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

    3. Update Fund Block

    POST /fund-collection

    Request:

    POST /fund-blocking 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" : "0000000001",
        "ReferenceNumber" : "1111111110",
        "RequestType" : "U",
        "Amount" : "200300400.00",
        "Currency" : "IDR",
        "ExpiredDate" : "2018-03-11",
        "TransactionDate" : "2018-02-15",
        "Remark1"" : "Testing updt 1",
        "Remark2"" : "Testing updt 2",
        "Email"" : "beneficiary@mail.com",
    }
    
    
    curl "https://sandbox.bca.co.id/fund-blocking" \
      -H "Authorization: Bearer [access_token]"\
      -H "Content-Type: application/json"\
      -H "Origin: [yourdomain.com]"\
      -H "X-BCA-Key: [api_key]"\
      -H "X-BCA-Timestamp: [timestamp]"\
      -H "X-BCA-Signature: [signature]"\
      -H ChannelID: [channelID]
      -H CredentialID: [credentialID]
      
    {
        "TransactionID" : "0000000001",
        "ReferenceNumber" : "1111111110",
        "RequestType" : "U",
        "Amount" : "200300400.00",
        "Currency" : "IDR",
        "ExpiredDate" : "2018-03-11",
        "TransactionDate" : "2018-02-15",
        "Remark1"" : "Testing updt 1",
        "Remark2"" : "Testing updt 2",
        "Email"" : "beneficiary@mail.com",
    }
      
    

    Response:

    {
        "TransactionID" : "0000000001",
        "ReferenceNumber"" : "1111111110",
        "DebitedAccount" : "1234567890",
        "Amount" : "200300400.00",
        "Currency" : "IDR",
        "TransactionDate" : "2018-02-15"
    	"Status"" : "Success",
    }
    

    This service is used to request update on existing blocking data. No request cut off time applied so you can add new update request anytime. Only several data that can be updated.

    Your Request must contain following information:

    Additional Headers

    Field Data Type 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(18) Y Existing unique data from Corporate. Format: Numeric.
    ReferenceNumber String(14) Y Existing sender's Transaction Reference ID. Format: Numeric.
    RequestType String(2) Y U = Request Update Blocking. Format: Alphabet.
    Amount String(13,2) Y Updatable. Total length is 15, include decimal amount. Format: Numeric, 13.2
    Currency String(3) Y Currently is IDR only.
    ExpiredDate String(10) Y Updatable. Transaction Expired Date. Max : 366 days. Format: yyyy-MM-dd.
    TransactionDate String(10) Y The date of the Transaction. Format: yyyy-MM-dd.
    Remark1 String(18)) Y Updatable. Transfer remark for receiver.
    Remark2 String(18)) Y Updatable. Transfer remark for receiver.
    Email String(254) Y Updatable. Email address of beneficiary (blocked account’s owner).

    Response

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

    4. Release/Cancel Fund Block

    POST /fund-collection

    Request:

    POST /fund-blocking 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" : "0000000001",
        "ReferenceNumber" : "1111111110",
        "RequestType" : "D",
    }
    
    
    curl "https://sandbox.bca.co.id/fund-blocking" \
      -H "Authorization: Bearer [access_token]"\
      -H "Content-Type: application/json"\
      -H "Origin: [yourdomain.com]"\
      -H "X-BCA-Key: [api_key]"\
      -H "X-BCA-Timestamp: [timestamp]"\
      -H "X-BCA-Signature: [signature]"\
      -H ChannelID: [channelID]
      -H CredentialID: [credentialID]
      
    {
        "TransactionID" : "0000000001",
        "ReferenceNumber" : "1111111110",
        "RequestType" : "U",
        "Amount" : "200300400.00",
        "Currency" : "IDR",
        "ExpiredDate" : "2018-03-11",
        "TransactionDate" : "2018-02-15",
        "Remark1"" : "Testing updt 1",
        "Remark2"" : "Testing updt 2",
        "Email"" : "beneficiary@mail.com",
    }
      
    

    Response:

    {
        "TransactionID" : "0000000001",
        "ReferenceNumber"" : "1111111110",
        "DebitedAccount" : "1234567890",
        "Amount" : "200300400.00",
        "Currency" : "IDR",
        "TransactionDate" : "2018-02-15"
    	"Status"" : "Success",
    }
    

    This service is used to request release or cancelation on existing. No request cut off time applied so you can add new release request anytime.

    Your Request must contain following information:

    Additional Headers

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

    Response

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

    5. Inquiry Block Status

    POST /fund-collection

    Request:

    POST /fund-blocking?SearchBy=TransactionID&Value=0000000001 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]
    
    
    curl "https://sandbox.bca.co.id/fund-blocking?SearchBy=TransactionID&Value=0000000001" \
      -H "Authorization: Bearer [access_token]"\
      -H "Content-Type: application/json"\
      -H "Origin: [yourdomain.com]"\
      -H "X-BCA-Key: [api_key]"\
      -H "X-BCA-Timestamp: [timestamp]"\
      -H "X-BCA-Signature: [signature]"\
      -H ChannelID: [channelID]
      -H CredentialID: [credentialID]
      
    

    Response:

    {
        "FundBlockDetails":
    	 [{
    		"TransactionID" : "0000000001",
    		"ReferenceNumber"" : "1111111110",
    		"DebitedAccount" : "1234567890",
    		"AmountBlocked" : "200300400.00",
    		"TransactionDate" : "2018-02-15"
    		"ExpiredDate" : "2018-02-20"
    		"Currency" : "IDR"
    		"Remark1" : "-",
    		"Remark2" : "-",
    		"Email" : "aaa@bbb.com",
    	}]
    }
    

    This service is used to request inquiry fund blocking. No request cut off time applied so you can inquiry fund blocking request anytime.

    Your Request must contain following information:

    Additional Headers

    Field Data Type Mandatory Description
    ChannelID String(5) Y Channel’s identifier. Fill it with “95051”.
    CredentialID String(10) Y Channel’s credential (KlikBCA Bisnis Corporate ID)

    Query Parameters

    Field Data Type Mandatory Description
    SearchBy String(15) Y There are 3 options to inquiry block status which are :
    - TransactionID
    - ReferenceNumber
    - DebitedAccount
    Value String(20) Y Value to be inquired based on the “SearchBy” parameter.

    Response

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

    Errors

    BCA API uses following error schema:

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

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

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