Welcome to Brankas API documentation! We have compiled the details you need to get started with Brankas APIs. Download the API collection, create API keys and start calling to specific product endpoints.
Below is a list of Bank Codes that Brankas Direct uses to determine the originating (source) and beneficiary (destination) banks involved in a fund transfer.
These codes are used to specify the originating bank where the end user’s bank retail banking accounts are held. This is used by the InitiateAccountListing to determine which bank to log the end user into. This is also used by the CreateTransfer endpoint as part of the required parameters for targeting the right originating bank account
Brankas Account Opening provides Marketplace, p2p, fintech, or any 3rd parties platform to provide account opening services in their platform. This allow 3rd parties user access for saving and credit account by banks. By connecting end-user and Banks, Brankas Account Opening enable access over a growing basket of banks and banks products via a single set of APIs.
Brankas Direct provides Fintechs, Corporates and SMEs with an API-driven payment solution that allows users to digitally transact with customers and their end-users. By debiting the customers' online bank accounts and transferring directly to the fintech’s or SME’s payable accounts, Brankas Direct leverages on enterprises that are able to execute fund transfer-based transactions over a growing basket of banks via a single set of APIs.
The Checkout endpoint creates a fund transfer initiation request that the end user can complete via the Brankas Tap. The Checkout endpoint is a fund transfer initiation request specific to the use case where the transaction amount is a predetermined value not defined by the end user, usually determined by an invoice or cart. Direct will create a unique user session on the Brankas Tap keyed to the fund transfer request’s internal transfer_id. The Checkout endpoint will respond with a preformatted URL that the end user must be redirected to in order to authorize the current fund transfer request. The Brankas Client needs to append the returned preformatted URL with their own redirect_uri query parameter where the end user will be sent after they have completed their session on the Brankas Tap.
customer is the end user’s identifying and contact information that allows transactions to be attributed to a specific end user. This can be used by both banks and settlement channels to assist in the resolution of transaction disputes.
reference_id
string
reference_id is an additional identifier, such as a UUID, that corresponds to an invoice, cart, or transaction object. The Brankas Client can use this field to associate the fund transfer request to a corresponding transaction object in its transaction database.
amount
Amount
amount is the transaction amount to be transferred from the source account to the destination account. If minor currency units are supported by a currency, then they are stored as minor units. For example, PHP 100.00 would be represented as “amount.num”: “10000”. Note that amounts are stored as string instead of integers in order to prevent any errors caused by floating point numbers.
from
AccountInfo
from is the source account information. Bank code parameter is optional. If bank code is set in checkout request, then Brankas Tap would show the bank selector page. If it is not set, then Brankas Tap would not show the bank selector page. Bank Codes used in this field follow a different convention from the bank codes used for the destination account in the to object. For the full list of supported bank codes, see Source Account Bank Codes in the Bank Codes section.
memo
string
memo is a merchant defined remarks attached to the transfer in the memo line (e.g. RRN).
destination_account_id
string
destination_account_id is the string ID corresponding to the bank information of the recipient. To get your destination_account_id, register the destination account in Brankas Dashboard > Settings > Direct tab.
client
Client
client contains the relevant information about the client/merchant who uses the checkout flow.
expiry_date_time
Timestamp
expiry_date_time is the expiry time of the created invoice. This parameter will enable merchants to to set their own invoice expiry so that it matches their business process better. Value will be on UTC timestamp. If the field is omitted, default 24 hour expiry time will be placed instead. For example if value equals 2021-05-01T00:00:00Z, the transaction will expire at 01 May 2021 00:00. However if it’s empty, the transaction will expire 24 hours after checkout request is successful.
The type of info relating to a bank transfer account. Please fill in with “BANK”.
bank_code
BankCode
Brankas bank code. Only present when type is BANK. Bank Codes differ depending on whether they are used as the source or the destination of a funds transfer. Bank code parameter is optional. If bank code is set in checkout request, then Brankas Tap would show the bank selector page. If it is not set, then Brankas Tap would not show the bank selector page. For the full list and details on bank codes, please see the Bank Codes section.
country
CountryISO3166
The country where the end user’s bank is based using ISO 3166 Alpha-2 country codes. Currently supports: Indonesia: ID, Philippines: PH, & Thailand: TH.
ReturnURL is the return path for the app redirection after a checkout transaction has been accomplished
fail_url
string
FailURL is the return path for the app redirection after a checkout transaction has failed or hits an error state.
deep_link
bool
If DeepLink is set at “true” it indicates that the client wants to display remember me feature in the bank login form
short_redirect_uri
bool
ShortRedirectURI indicates that the client wanted to have short_redirect_uri generated on the redirect_uri. If the parameter “fname” is set, then the short_redirect_uri would include end user’s first name in the link, e.g. “https://direct.bnk.to/tap/FjTqkP3Q/Sarah”
transaction_id is the unique identifier assigned to the fund transfer request generated by Brankas.
redirect_uri
string
redirect_uri is the URL that end users need to be redirected to in order to authorize the fund transfer and complete the transaction. and complete the transaction.
short_redirect_uri
string
short_redirect_uri is the shortened version of the redirect_uri.
RetrieveTransactions returns the details of transactions. By specifying the transaction_id of the relevant transaction as a query parameter, only the record specific to that transaction will be retrieved. If no transaction_id is specified in the query parameter, the response will return all transaction records and list them from most recent to latest. Retrieved transaction records are paginated.
curl -X GET \
https://direct.sandbox.bnk.to/v1/transaction \
-H 'x-api-key: USE_YOUR_API_KEY'
TransactionID is the transaction firestore document identifier.
org_id
string
OrgID is the organization identifier.
destination_account_id
string
destination_account_id is the string ID corresponding to the bank information of the recipient.
business_info_id
string
business_info_id contains the unique identifier of the business information object.
from
AccountInfo
from is the source account information. Bank code parameter is optional. If bank code is set in checkout request, then Brankas Tap would show the bank selector page. If it is not set, then Brankas Tap would not show the bank selector page. Bank Codes used in this field follow a different convention from the bank codes used for the destination account in the to object. For the full list of supported bank codes, see Source Account Bank Codes in the Bank Codes section.
to
DestinationAccountInfo
to is the destination account information.
amount
Amount
Amount is the transfer amount.
customer
Customer
Customer contains customer information
consent_granted
bool
ConsentGranted is the flag that represents if the user gave the system its consent.
additional_details
AdditionalDetails
additional_details contains the additional optional information related to the transaction.
payment_channel
PaymentChannelType
PaymentChannel is the desired payment channel to use for the fund transfer.
settlement_id
string
SettlementID is the settlement identifier.
reference_id
string
ReferenceID is the client identifier for an invoice object
user_memo
string
UserMemo is the user supplied memo line (e.g. RRN).
bank_memo
string
BankMemo is the bank supplied memo line (e.g. confirmation number).
attempts
int32
Attempts is the count of transactional attempts.
error
string
Error holds the error text if an error occured during the transfer.
status
Status
Status indicates the current status of the transfer.
status_desc
string
StatusDesc contains the description about the status for this transaction.
status_code
string
StatusCode contains the status code for this transaction.
finish
string
Finish is the timestamp the task was completed.
created
string
Created is a timestamp the task was created.
updated
string
Updated is the timestamp the task was modified.
expiry_date_time
string
expiry_date_time is the expiry time of the created invoice. This parameter will enable merchants to to set their own invoice expiry so that it matches their business process better. Value will be on UTC timestamp. If the field is omitted, default 24 hour expiry time will be placed instead.
The type of info relating to a bank transfer account. Please fill in with “BANK”.
bank_code
BankCode
Brankas bank code. Only present when type is BANK. Bank Codes differ depending on whether they are used as the source or the destination of a funds transfer. Bank code parameter is optional. If bank code is set in checkout request, then Brankas Tap would show the bank selector page. If it is not set, then Brankas Tap would not show the bank selector page. For the full list and details on bank codes, please see the Bank Codes section.
country
CountryISO3166
The country where the end user’s bank is based using ISO 3166 Alpha-2 country codes. Currently supports: Indonesia: ID, Philippines: PH, & Thailand: TH.
BankCode is a bank code. Only present when type is BANK.
account_number
string
AccountNumber is a bank account number.
identifier
string
Identifier is a unique account ID, profile ID, or the bank account number and is interpreted based on the account info type.
holder_name
string
HolderName is the name of the account holder. This field is DEPRECATED in favor of the HolderFirstName, HolderMiddleName and HolderLastName which we join to come up with a full name.
holder_first_name
string
HolderFirstName is the first name of the account holder.
holder_middle_name
string
HolderMiddleName is the middle name of the account holder.
holder_last_name
string
HolderLastName is the last name of the account holder.
email_address
string
EmailAddress is the destination user email address.
mobile_country_code
string
MobileCountryCode is the mobile country dial code.
mobile_number
string
MobileNumber is the destination user mobile number.
address_line1
string
AddressLine1 is the user destination address information.
address_line2
string
AddressLine1 is the user destination address additional information.
city
string
City is the user destination residential city.
state
string
State is the user destination residential state.
country
string
Country is the user destination residential country.
QRCodeRawData contains the raw text data that will be used to recreate the QRCode.
account_alias_id
string
AccountAliasID is the alternative identifier of the destination account.
to_address_line1
string
ToAddressLine1 is the user destination address information.
to_address_line2
string
ToAddressLine1 is the user destination address additional information.
to_city
string
ToCity is the user destination residential city.
to_state
string
ToState is the user destination residential state.
to_country
string
ToCountry is the user destination residential country.
terms_of_use_version
string
TermsOfUseVersion is the version number of the terms of use document that the user interacted unto.
privacy_policy_version
string
PrivacyPolicyVersion is the version number of the privacy policy document that the user interacted unto.
user_id_hash
string
UserIdHash is the hash of the end user’s bank code and online banking username used to uniquely identify an end user across clients
user_access_hash
string
UserAccessHash is the hash of the end user’s bank code and online banking credentials used to uniquely identify an end user based on their access credentials
user_account_hash
string
UserAccountHash is the hash of the end user’s bank code and specific bank account used for the transaction used to identify if the end user is using the same or different bank accounts
via
Via
Via indicates fund transfer rail used for the transfer
bank_fee
Amount
BankFee indicates the amount that will be deducted from the end user’s account as a fee from the bank for performing the fund transfer
settlement_identifier
string
SettlementIdentifier contains the primary identifier used by the settlement partner for this type of bank.
settlement_identifier_alias
string
SettlementIdentifierAlias contains the alias or secondary identifier used by the settlement partner for this type of bank.
Brankas Direct supports the sending of callbacks to your pre-registered webhook URL.
The callback to your webhook URL will include both the relevant fund transfer request’s internal transaction_id along with the status of the operation. This can be then used to query the Brankas Direct Transaction Database directly using the RetrieveTransaction endpoint to retrieve all relevant transaction details.
The unique ID assigned to the fund transfer request
status
Int
The resulting final status of the transaction completed by the end user via the Brankas Tap. See status guide below. For the callback, you will receive only the terminal status for the transaction, i.e., Status Codes 2, 3, 11, 12, 13, 14 and 15.
reference_id
String
Any additional identifier, such as a UUID, that corresponds to an invoice, cart, or transaction object. The Brankas Client can use this field to associate the fund transfer request to a corresponding transaction object in its transaction database.
When an end user is redirected back to your application via your specified return_url, it is recommended to retrieve the full details of the transaction_id specified in the callback to your webhook URL. The full transaction details can be queried using the Retrieve Transaction endpoint.
Allows merchants to register bank accounts along with bank credentials before executing a disbursement request. Alternatively, you can access the Brankas Dashboard to create a source bank account with credentials.
Initiates a new disbursement to transfer funds from your source corporate bank account to beneficiaries. Create Disbursement endpoint supports multiple fund transfers within a single disbursement order from a single source of fund or a corporate bank account. For testing purposes, use Brankas sandbox baseURL. For UAT and live disbursement, use Brankas live baseURL. Sandbox and live baseURL are available here.
DisbursementID is an id brankas uniquely generates for this disbursement
reference_id
string
ReferenceID is a reference from the merchant to uniquely identify a disbursement transaction, this should be an idempotent value
type
DisbursementType
Type is the type of disbursement being created
source_account
SourceBankAccountDetails
SourceAccount is the account to send payment from
destination_account
DestinationBankAccountDetails
DestinationAccount is the account to send payment to
destination_amount
Amount
DestinationAmount is the amount to be received by the destination account owner, after calculating the appropriate foreign exchange rate. ‘destination_amount.num’ should be in the lowest denomination for a currency
description
string
Description is what the destination account will see for the disbursement transaction
fees
[]Fee
Fees are the associated fees for the disbursement
external
External
External is a field for all the information returned by the bank’s api regarding a disbursement
status
DisbursementStatus
Status defines the result of the request.
created
Timestamp
Created is a timestamp indicating when the disbursement was created
updated
Timestamp
Updated is a timestamp indicating when the disbursement was last updated
disbursement_request_id
string
DisbursementRequestID is the batch id for the processed disbursement request
note
string
Note is a reasons that cause disbursement invalid
merchant_txn_id
string
MerchantTransactionID is the transaction id from merchant which is used for reconciliation
DisbursementID is an id brankas uniquely generates for this disbursement
reference_id
string
ReferenceID is a reference from the merchant to uniquely identify a disbursement transaction, this should be an idempotent value
type
DisbursementType
Type is the type of disbursement being created
source_account
SourceBankAccountDetails
SourceAccount is the account to send payment from
destination_account
DestinationBankAccountDetails
DestinationAccount is the account to send payment to
destination_amount
Amount
DestinationAmount is the amount to be received by the destination account owner, after calculating the appropriate foreign exchange rate. ‘destination_amount.num’ should be in the lowest denomination for a currency
description
string
Description is what the destination account will see for the disbursement transaction
fees
[]Fee
Fees are the associated fees for the disbursement
external
External
External is a field for all the information returned by the bank’s api regarding a disbursement
status*
DisbursementStatus
Status defines the result of the request.
created
Timestamp
Created is a timestamp indicating when the disbursement was created
updated
Timestamp
Updated is a timestamp indicating when the disbursement was last updated
disbursement_request_id
string
DisbursementRequestID is the batch id for the processed disbursement request
note
string
Note is a reasons that cause disbursement invalid
merchant_txn_id
string
MerchantTransactionID is the transaction id from merchant which is used for reconciliation
*this object is used to determine the final outcome of a transaction
DisbursementID is an id brankas uniquely generates for this disbursement
reference_id
string
ReferenceID is a reference from the merchant to uniquely identify a disbursement transaction, this should be an idempotent value
type
DisbursementType
Type is the type of disbursement being created
source_account
SourceBankAccountDetails
SourceAccount is the account to send payment from
destination_account
DestinationBankAccountDetails
DestinationAccount is the account to send payment to
destination_amount
Amount
DestinationAmount is the amount to be received by the destination account owner, after calculating the appropriate foreign exchange rate. ‘destination_amount.num’ should be in the lowest denomination for a currency
description
string
Description is what the destination account will see for the disbursement transaction
fees
[]Fee
Fees are the associated fees for the disbursement
external
External
External is a field for all the information returned by the bank’s api regarding a disbursement
status
DisbursementStatus
Status defines the result of the request.
created
Timestamp
Created is a timestamp indicating when the disbursement was created
updated
Timestamp
Updated is a timestamp indicating when the disbursement was last updated
disbursement_request_id
string
DisbursementRequestID is the batch id for the processed disbursement request
note
string
Note is a reasons that cause disbursement invalid
merchant_txn_id
string
MerchantTransactionID is the transaction id from merchant which is used for reconciliation
Allows merchants to register a callback url which allows Brankas to send notification of disbursement status updates for the disbursement created by merchants. Alternatively, you can also submit a callback URL from Brankas dashboard on the settings page.
The Brankas SNAP Disbursement service provides businesses and organizations with the ability to automate and manage payments to vendors, employees, and customers. Our robust APIs enable secure, real-time online fund transfers directly from your corporate bank account.
Furthermore, our API simplifies the complexity of building and maintaining custom integrations with numerous different banks by providing a single point of access to a wide network of financial institutions. It also removes the need for businesses to maintain separate balances with a disbursement service provider, streamlining reconciliation and improving cash flow management.
The Brankas SNAP Disburse Service is built upon the National Open API Payment Standard (SNAP), developed by Bank Indonesia (BI). This standard provides merchants with a single point of integration to access various Indonesian financial institutions that have APIs conforming to the SNAP framework.
Key advantages of the Brankas Disbursement service include:
Automated and efficient fund transfers.
Save on costs by making fund disbursements more efficient with market-leading technology. Experience streamlined processes, automated tasks, and financial benefits for your business.
Improved security, compliance, and data protection.
Brankas is ISO 27001 and PCI DSS certified, and undergoes regular audits by financial regulators in Asia regularly.
Quick and seamless onboarding
Enjoy seamless onboarding with our local bank partners. Set up your account within a week and effortlessly.
Use cases include:
Employee payroll
Connect your existing payroll system and automate your payouts, making sure your employees are paid on time and worry-free.
e-Commerce payments
Issue refunds to customers or pay your vendors with automated flows to disburse the money directly to their bank account.
Loan disbursements
Integrate loan disbursements into your underwriting process, allowing borrowers to receive their funds faster and without delays.
Insurance payouts
Settle insurance claims faster and automate payouts to beneficiaries, giving them quicker access to funds when they need it most.
For each of these environments, you will need to create your own Brankas Auth Client that will be used in order to access the SNAP Disbursements service. It consists of a Client ID, Client Name, and Client Secret. These are created via the Brankas Admin Dashboard accessed through the Brankas website.
Authentication and Authorization
Access to the Brankas SNAP Disbursement service is authenticated using the OAuth 2.0 client credentials grant flow. In order to use the API, your application will need to obtain an OAuth 2.0 bearer token you will need to include in subsequent API requests.
This bearer token is obtained by making an authorization request using your client credentials for the specific environment you wish to access.
Authentication Request
The request has a type of “Basic Auth” where your client ID and client secret are encoded using Base64 encoding and included in the Authorization header.
Request Header
Authorization
Base64 encoded string containing Client ID and Client Secret for the environment you are accessing
Content-Type
application/x-www-form-urlencoded
X-TIMESTAMP
Timestamp in ISO 8601
X-CLIENT-ID
Your Client ID
X-SIGNATURE
Using the stringToSign format clientID+ "|" +stringTimestamp and sign with SHA256
The bearer token issued upon successful authentication
responseCode
Response status code. A success has a response code of 2007300
responseMessage
Description of the response code. A success has a response message of Successful
token_type
The type of token issued. Value is bearer
expires_in
Validity period of the bearer token in seconds
Client Credential Security
It is crucial to protect your client credentials (Client ID and Client Secret) to prevent unauthorized access to the Brankas SNAP Disbursement API. Compromised credentials can allow malicious actors to make unauthorized fund transfers, access sensitive data, and disrupt your business operations.
To secure your client credentials, Brankas recommends:
Never embed credentials directly in code
Do not include the client ID and secret directly in your application’s source code. This makes them easily discoverable if the code is compromised (e.g., through source code repository exposure).
Store credentials in secure configuration files
Store credentials in configuration files that are outside of your application’s webroot or version control system. Restrict access to these files using appropriate file system permissions.
Use environment variables
A common practice is to store credentials as environment variables on the server where your application is deployed. This allows you to configure credentials separately from your code.
Use a secrets management solution: For more complex deployments, consider using a dedicated secrets management solution (e.g., HashiCorp Vault, AWS Secrets Manager, Azure Key Vault). These tools provide secure storage, access control, and rotation of sensitive information.
Implement access control
Limit access to the systems and storage locations where credentials are kept. Use the principle of least privilege to grant only the necessary permissions to users and applications.
Secure transmission
Always transmit credentials over secure channels (e.g., HTTPS). Never send them in plain text. The Basic Auth method, while encoding the credentials, still requires HTTPS to prevent interception of the encoded string.
Logging
Avoid logging the client secret. If logging is necessary, ensure that the logs are stored securely and access is strictly controlled.
Be cautious of third-party libraries
When using third-party libraries or SDKs, ensure they handle credentials securely. Check for any known vulnerabilities or security best practices.
The Brankas SNAP Disbursement Service includes endpoints that facilitate fund transfers to your beneficiaries, regardless of the beneficiary account’s bank, verification of beneficiary accounts, as well as endpoints to confirm the processing status of your fund transfers.
The Intra-bank fund transfer endpoint facilitates payments to beneficiary accounts located in the same bank as your (originating) bank account used for the transaction.
This contains the Bearer token necessary to invoke the endpoint. The string should first start with Bearer followed by the Bearer token string Sample: Bearer fa8sjjEj813Y9JGoqwOeOPWbnt4CUpvIJbU1mMU4a11MNDZ7Sg5u9a
Content-type
Y
String
application/json
X-TIMESTAMP
Y
Timestamp
Date time of the request
X-SIGNATURE
Y
String
Using the stringToSign format the following: httpMethod + "|" + endpointUrl + "|" + accessToken + "|" + timestamp + "|" + hex(sha256(requestBody))
X-PARTNER-ID
Y
String
Your Client ID
X-EXTERNAL-ID
Y
String
A unique ID assigned to the transaction that is defined by the client. Used to further uniquely identify the transaction.
CHANNEL-ID
Y
String
A unique ID specific to the bank that the client is transacting from. CIMB: 95052 BCA: 95051
Request Body
Parameter
Required
Type
Description
partnerReferenceNo
Y
String
A client defined Reference Number or unique ID that you can assign to the transaction. This can correspond to an Invoice No. or a Payment Order ID, or some other identifier that you can use to correlate the transaction with another operational ID on your system for traceability and attribution. Ensure that this value is unique to this transaction. This ID is the primary identifier used to query this transaction’s status via the Transaction Status endpoint (see below)
amount
Y
Object
The amount to be transferred to the beneficiary. See amount object below
beneficiaryAccountNo
Y
String
The bank account number of the beneficiary. Note that this bank account must be within the same bank as the bank account that you are using to fund the transaction
beneficiaryEmail
N
String
Email address of the beneficiary
currency
N
String
Currency of the transaction
customerReference
Y
String
An internal identifier used by the client to uniquely identify the beneficiary (counterparty) of the transaction
feeType
N
Timestamp
Holds the type of the transaction fee
remark
Y
Object
Any additional details, remarks, notes, or qualifiers you wish to attach to the transaction to qualify it in the future as part of your FinOps
sourceAccountNo
Y
String
The Brankas assigned ID to the bank account that you will use to fund the transaction
transactionDate
Y
Timestamp
Transaction date ISO 8601
additionalInfo
Y
Object
Additional information required by the bank in order to process the transaction. See the additionalInfo object below
Object: Amount
Parameter
Required
Type
Description
value
Y
String
The net amount of the transaction. If the transaction is in IDR, then value includes 2 decimal digits e.g. IDR 10.000,- will be placed with 10000.00 Ex: “value”: “10000.00”
currency
Y
String
Currency of the transaction. This should be set to: “currency”: “IDR”
Object: additionalInfo
Parameter
Required
Type
Description
beneficiaryBankCode
Y
String
The Brankas ID/code used to identify the beneficiary / acquiring bank for the transaction. As this is an Intra-Bank fund transfer, use the bank code that corresponds to the bank you are transacting from
Brankas response code for the status of the transaction. This status code combines the following into a single code: HTTP Status Code of the request Brankas Service Code for whether the transaction was an intra-bank or inter-bank transaction Brankas code for the status of a transaction. EX: A successful intra bank transaction code is 2001800 HTTP Status Code: 200 Service Code: 18 (Intra-Bank) Transaction Status: 00 (Success)
responseMessage
String
Human readable description of the status
referenceNo
String
Transaction identifier on the service provider’s system. This is typically the bank’s internal identifier assigned to the transaction as part of processing.
partnerReferenceNo
String
The partnerReferenceNo assigned as part of the request
beneficiaryAccountNo
String
The beneficiary bank account specified in the request
transactionDate
Timestamp
Transaction date ISO 8601
additionalInfo
Object
The additionalInfo object specified in the request.
The Inter-bank fund transfer endpoint facilitates payments to beneficiary accounts across different banks. This endpoint should only be used if the beneficiary account you are attempting to disburse funds to are held under a different bank than the source (originating) accountbeing used to fund the payment.
This endpoint is used to perform a disbursement transaction to a single beneficiary.
This contains the Bearer token necessary to invoke the endpoint. The string should first start with Bearer followed by the Bearer token string Sample: Bearer fa8sjjEj813Y9JGoqwOeOPWbnt4CUpvIJbU1mMU4a11MNDZ7Sg5u9a
Content-type
Y
String
application/json
X-TIMESTAMP
Y
Timestamp
Date time of the request
X-SIGNATURE
Y
String
Using the stringToSign format the following: httpMethod + "|" + endpointUrl + "|" + accessToken + "|" + timestamp + "|" + hex(sha256(requestBody))
X-PARTNER-ID
Y
String
Your Client ID
X-EXTERNAL-ID
Y
String
A unique ID assigned to the transaction that is defined by the client. Used to further uniquely identify the transaction.
CHANNEL-ID
Y
String
A unique ID specific to the bank that the client is transacting from. CIMB: 95052 BCA: 95051
Request Body
Parameter
Required
Type
Description
partnerReferenceNo
Y
String
A client defined Reference Number or unique ID that you can assign to the transaction. This can correspond to an Invoice No. or a Payment Order ID, or some other identifier that you can use to correlate the transaction with another operational ID on your system for traceability and attribution. Ensure that this value is unique to this transaction. This ID is the primary identifier used to query this transaction’s status via the Transaction Status endpoint (see below)
amount
Y
Object
The amount to be transferred to the beneficiary. See amount object below
beneficiaryAccountName
Y
String
The name of the beneficiary account holder.
beneficiaryAccountNo
Y
String
The bank account number of the beneficiary.
beneficiaryAddress
N
String
The address of the beneficiary account holder. While not required, it is recommended to supply this parameter for the purposes of transaction traceability and attribution
beneficiaryBankCode
Y
String
The Brankas ID/code used to identify the beneficiary / acquiring bank for the transaction.
beneficiaryBankName
N
String
The human readable name for the beneficiary bank
beneficiaryEmail
N
String
Email address of the beneficiary
customerReference
Y
String
An internal identifier used by the client to uniquely identify the beneficiary (counterparty) of the transaction
sourceAccountNo
Y
String
The Brankas assigned ID to the bank account that you will use to fund the transaction
transactionDate
Y
Timestamp
Transaction date ISO 8601
remark
Y
Object
Any additional details, remarks, notes, or qualifiers you wish to attach to the transaction to qualify it in the future as part of your FinOps
Object: Amount
Parameter
Required
Type
Description
value
Y
String
The net amount of the transaction. If the transaction is in IDR, then value includes 2 decimal digits e.g. IDR 10.000,- will be placed with 10000.00 Ex: “value”: “10000.00”
currency
Y
String
Currency of the transaction. This should be set to: “currency”: “IDR”
Brankas response code for the status of the transaction. This status code combines the following into a single code: HTTP Status Code of the request Brankas Service Code for whether the transaction was an intra-bank or inter-bank transaction Brankas code for the status of a transaction. EX: A successful intra bank transaction code is 2001800 HTTP Status Code: 200 Service Code: 18 (Intra-Bank) Transaction Status: 00 (Success)
responseMessage
String
Description of the status
referenceNo
String
Transaction identifier on the service provider’s system. This is typically the bank’s internal identifier assigned to the transaction as part of processing.
partnerReferenceNo
String
The partnerReferenceNo assigned as part of the request
amount
Object
The amount to be transferred to the beneficiary. See amount object below
beneficiaryBankCode
String
The Brankas ID/code used to identify the beneficiary / acquiring bank for the transaction.
beneficiaryAccountNo
String
The beneficiary bank account specified in the request
currency
String
Currency of the transaction
customerReference
Timestamp
The customerReference specified in the request
sourceAccountNo
String
The Brankas ID for the bank account used to fund the transaction
transactionDate
Timestamp
Transaction date ISO 8601
additionalInfo
Object
The additionalInfo object specified in the request.
Object: Amount
Parameter
Type
Description
value
String
The net amount of the transaction. If the transaction is in IDR, then value includes 2 decimal digits e.g. IDR 10.000,- will be placed with 10000.00 Ex: “value”: “10000.00”
currency
String
Currency of the transaction. This should be set to: “currency”: “IDR”
This contains the Bearer token necessary to invoke the endpoint. The string should first start with Bearer followed by the Bearer token string Sample: Bearer fa8sjjEj813Y9JGoqwOeOPWbnt4CUpvIJbU1mMU4a11MNDZ7Sg5u9a
Content-type
Y
String
application/json
X-TIMESTAMP
Y
Timestamp
Date time of the request
X-SIGNATURE
Y
String
Using the stringToSign format the following: httpMethod + "|" + endpointUrl + "|" + accessToken + "|" + timestamp + "|" + hex(sha256(requestBody))
X-PARTNER-ID
Y
String
Your Client ID
X-EXTERNAL-ID
Y
String
A unique ID assigned to the transaction that is defined by the client. Used to further uniquely identify the transaction.
CHANNEL-ID
Y
String
A unique ID specific to the bank that the client is transacting from. CIMB: 95052 BCA: 95051
Request Body
Parameter
Required
Type
Description
originalPartnerReferenceNo
Y
String
The client assigned partnerReferenceNo used to identify the original transaction
originalReferenceNo
Y
String
The referenceNo assigned by the service provider’s system to the transaction. This is typically a bank-defined unique identifier assigned to the transaction in the response of the original request.
originalExternalID
N
String
The original X-EXTERNAL-ID used in the header of the original disbursement request used to process the transaction CIMB: 95052 BCA: 95051
serviceCode
Y
String
Transaction type indicator (service code of the original transaction request). This depends on whether the transaction was an Intra-bank or Inter-bank fund transfer: Intra-bank: 17 Inter-bank: 18
transactionDate
N
String
The date of the transaction in ISO 8601 format
amount
N
Object
The amount transferred to the beneficiary in the original disbursement request. See amount object below
Object: amount
Parameter
Required
Type
Description
value
N
String
The net amount of the transaction. If the transaction is in IDR, then value includes 2 decimal digits e.g. IDR 10.000,- will be placed with 10000.00 Ex: “value”: “10000.00”
currency
Y
String
Currency of the transaction. This should be set to: “currency”: “IDR”
Brankas response code for the status of the transaction
responseMessage
String
Description of the status
originalPartnerReferenceNo
String
The client assigned partnerReferenceNo used to identify the original transaction
originalReferenceNo
String
The referenceNo assigned by the service provider’s system to the transaction. This is typically a bank-defined unique identifier assigned to the transaction in the response of the original request.
serviceCode
String
Transaction type indicator (service code of the original transaction request)
transactionDate
String
The date of the transaction in ISO 8601 format
amount
Object
The amount transferred to the beneficiary in the original disbursement request. See amount object below
beneficiaryAccountNo
String
The bank account number of the beneficiary of this transaction
beneficiaryBankCode
String
The Brankas internal bank code for the beneficiary bank where the beneficiary bank account is held
currency
String
Currency of the transaction.
referenceNumber
String
Transaction identifier on the service provider’s system for the transaction being queried. This is captured from the response of the original disbursement request used to process the transaction.
sourceAccountNo
String
The unique ID Brankas assigns to the source account used to fund the transaction
latestTransactionStatus
String
The status of the transaction. Statuses are as follows: 00 - Success 01 - Initiated 02 - Paying 03 - Pending 04 - Refunded 05 - Canceled 06 - Failed 07 - Not found
transactionStatusDesc
String
Description of the returned status of the transaction
additionalInfo
Object
Additional information attached to the transaction
This endpoint allows clients to confirm whether a specific bank account within the same bank as their corporate bank account exists. This is used to ensure the correctness of the transaction’s beneficiary details when performing an Inter-bank fund transfer.
This contains the Bearer token necessary to invoke the endpoint. The string should first start with Bearer followed by the Bearer token string Sample: Bearer fa8sjjEj813Y9JGoqwOeOPWbnt4CUpvIJbU1mMU4a11MNDZ7Sg5u9a
Content-type
Y
String
application/json
X-TIMESTAMP
Y
Timestamp
Date time of the request
X-SIGNATURE
Y
String
Using the stringToSign format the following: httpMethod + "|" + endpointUrl + "|" + accessToken + "|" + timestamp + "|" + hex(sha256(requestBody))
X-PARTNER-ID
Y
String
Your Client ID
X-EXTERNAL-ID
Y
String
A unique ID assigned to the transaction that is defined by the client. Used to further uniquely identify the transaction.
CHANNEL-ID
Y
String
A unique ID specific to the bank that the client is transacting from. CIMB: 95052 BCA: 95051
Request Body
Parameter
Required
Type
Description
partnerReferenceNo
N
String
The client assigned partnerReferenceNo used to identify the original transaction
beneficiaryAccountNo
Y
String
The bank account number of the beneficiary.
additionalInfo
N
Object
Additional information required by the bank in order to process the transaction. See the additionalInfo object below
Object: additionalInfo
Parameter
Required
Type
Description
sourceAccountNo
Y
String
One of the client’s bank accounts in the bank where the beneficiary’s bank account is also held. This information is required to determine which payment service provider’s system the inquiry should be routed to as well as to allow them to identify whether the inquiring party can use this service.
Brankas response code for the status of the transaction
responseMessage
String
Description of the status
referenceNo
String
The referenceNo assigned by the service provider’s system to the transaction. This is typically a bank-defined unique identifier assigned to the transaction in the response of the original request.
partnerReferenceNo
String
The client assigned partnerReferenceNo used to identify the original transaction
beneficiaryAccountName
String
The name associated with the bank account queried by this request
beneficiaryAccountNo
String
The bank account number of the intended beneficiary queried by this request
beneficiaryAccountStatus
String
The account status of the intended beneficiary according to the bank
beneficiaryAccountType
String
The account type of the intended beneficiary according to the bank. Optionally returned by the bank if supported. D is for Current Accounts. S is for Savings Accounts
currency
String
Currency of the beneficiary account.
additionalInfo
Object
Additional information required by the bank in order to process the transaction. See the additionalInfo object below
Object: additionalInfo
Parameter
Required
Type
Description
sourceAccountNo
Y
String
One of the client’s bank accounts in the bank where the beneficiary’s bank account is also held. This information is required to determine which payment service provider’s system the inquiry should be routed to as well as to allow them to identify whether the inquiring party can use this service.
Similar to the Internal Account Inquiry endpoint, this endpoint allows clients to confirm whether a specific bank account exists in another bank. This is used to ensure the correctness of the transaction’s beneficiary details when performing an Inter-bank fund transfer.
This contains the Bearer token necessary to invoke the endpoint. The string should first start with Bearer followed by the Bearer token string Sample: Bearer fa8sjjEj813Y9JGoqwOeOPWbnt4CUpvIJbU1mMU4a11MNDZ7Sg5u9a
Content-type
Y
String
application/json
X-TIMESTAMP
Y
Timestamp
Date time of the request
X-SIGNATURE
Y
String
Using the stringToSign format the following: httpMethod + "|" + endpointUrl + "|" + accessToken + "|" + timestamp + "|" + hex(sha256(requestBody))
X-PARTNER-ID
Y
String
Your Client ID
X-EXTERNAL-ID
Y
String
A unique ID assigned to the transaction that is defined by the client. Used to further uniquely identify the transaction.
CHANNEL-ID
Y
String
A unique ID specific to the bank that the client is transacting from. CIMB: 95052 BCA: 95051
Request Body
Parameter
Required
Type
Description
beneficiaryBankCode
Y
String
The Brankas ID/code used to identify the beneficiary / acquiring bank for the transaction. Specify the bank code of the specific bank that holds the intended beneficiary’s account.
beneficiaryAccountNo
Y
String
The bank account number of the beneficiary.
partnerReferenceNo
N
String
The client assigned partnerReferenceNo used to identify the original transaction
additionalInfo
N
Object
Additional information required by the bank in order to process the transaction. See the additionalInfo object below
Object: additionalInfo
Parameter
Required
Type
Description
sourceAccountNo
Y
String
One of the client’s bank accounts in the bank where the beneficiary’s bank account is also held. This information is required to determine which payment service provider’s system the inquiry should be routed to as well as to allow them to identify whether the inquiring party can use this service.
Brankas response code for the status of the transaction
responseMessage
String
Description of the status
referenceNo
String
The referenceNo assigned by the service provider’s system to the transaction. This is typically a bank-defined unique identifier assigned to the transaction in the response of the original request.
partnerReferenceNo
String
The client assigned partnerReferenceNo used to identify the original transaction
beneficiaryAccountName
String
The name associated with the bank account queried by this request
beneficiaryAccountNo
String
The bank account number of the intended beneficiary queried by this request
beneficiaryBankCode
String
The Brankas internal bank code for the beneficiary bank where the beneficiary bank account is held
beneficiaryBankName
String
The human readable name of the bank.
currency
String
Currency of the beneficiary account.
additionalInfo
Object
Additional information required by the bank in order to process the transaction. See the additionalInfo object below
Object: additionalInfo
Parameter
Required
Type
Description
sourceAccountNo
Y
String
One of the client’s bank accounts in the bank where the beneficiary’s bank account is also held. This information is required to determine which payment service provider’s system the inquiry should be routed to as well as to allow them to identify whether the inquiring party can use this service.
Certain endpoints will require the client to submit a serviceCode to specify the transaction’s type. Below is a list of all serviceCode used by the Brankas SNAP Disburse service.
Inter-bank fund transfers require the client to specify the receiving bank wherein the beneficiary’s bank account is held. Below is a list of all Brankas Bank Codes recognized by the beneficiaryBankCode parameter.
Brankas Internal Bank Code
Bank Name
ID_AMAR
BANK AMAR
ID_ANZ
ANZ PANIN
ID_ARTHAGRAHA
BANK ARTHA GRAHA
ID_BANGKOK
BANGKOK BANK
ID_BCA
BCA (BANK CENTRAL ASIA)
ID_BCA_SYR
BCA (BANK CENTRAL ASIA) SYARIAH
ID_BCAD
PT BANK DIGITAL BCA
ID_BEK
ID_BI
BANK INDONESIA
ID_BISNIS_INTL
BANK BISNIS
ID_BJB
BANK BJB
ID_BNI
BANK NEGARA INDONESIA
ID_BNI_SYR
BANK NEGARA INDONESIA
ID_BOA
BANK OF AMERICA
ID_BPD_BALI
BANK PEMBANGUNAN DAERAH BALI
ID_BPD_BANTEN
BANK PEMBANGUNAN DAERAH BANTEN
ID_BPD_BENGKULU
BANK PEMBANGUNAN DAERAH BENGKULU
ID_BRI
BANK RAKYAT INDONESIA
ID_BRI_SYR
BANK RAKYAT SYARIAH
ID_BSI
Bank Syariah Indonesia
ID_BTN
Bank Tabungan Negara
ID_BTN_SYR
Bank Tabungan Negara SYARIAH
ID_BTPN
BANK BTPN
ID_BTPN_SYR
BANK BTPN SYARIAH
ID_BUMI_ARTA
Bank Bumi Arta Indonesia
ID_CAPITAL
BANK CAPITAL
ID_CCB
PT CHINA CONSTRUCTION BANK INDONESIA
ID_CHASE
JP MORGAN
ID_CHINA
BANK OF CHINA (HONG KONG) LIMITED
ID_CIMB
Bank CIMB Niaga Tbk PT
ID_CIMB_SYR
Bank CIMB Niaga SYARIAH
ID_CITI
citibank
ID_COMMONWEALTH
BANK COMMONWEALTH
ID_DBS
Bank DBS Indonesia
ID_DEU_AG
Deutsche Bank AG
ID_DIY
BANK PEMBANGUNAN DAERAH DIY
ID_DIY_SYR
BPD DIY UNIT USAHA SYARIAH
ID_DKI
BANK DKI
ID_DKI_SYR
BANK DKI UNIT USAHA SYARIAH
ID_DNMN
BANK DANAMON
ID_DNMN_SYR
BANK DANAMON SYARIAH
ID_FAMA
BANK FAMA
ID_GANESHA
BANK GANESHA
ID_HSBC
BANK HSBC INDONESIA
ID_IBK
Bank IBK Indonesia
ID_ICBC
Bank ICBC Indonesia
ID_INDEX_SELINDO
BANK INDEX SELINDO
ID_INDIA
BANK OF INDIA INDONESIA
ID_JAGO
BANK JAGO TBK
ID_JAMBI
BANK BPD JAMBI
ID_JASA_JAKARTA
BANK JASA JAKARTA
ID_JATENG
BANK BPD JATENG
ID_JATENG_SYR
BANK BPD JATENG UNIT USAHA SYARIAH
ID_JATIM
BANK JATIM
ID_JATIM_SYR
BANK JATIM UNIT USAHA SYARIAH
ID_JTRUST
BANK JTRUST
ID_KALBAR
BANK BPD KALBAR
ID_KALBAR_SYR
BANK BPD KALBAR UNIT USAHA SYARIAH
ID_KALSEL
BANK BPD KALSEL
ID_KALSEL_SYR
BANK BPD KALSELUNIT USAHA SYARIAH
ID_KALTENG
BANK BPD KALTENG
ID_KALTIM_KALTARA_
BANK BPD KALTIM KALTARA
ID_KEB_HANA
BANK HANA
ID_LAMPUNG
BANK BPD LAMPUNG
ID_MALUKU
BANK BPD MALUKU
ID_MANDIRI
Bank Mandiri
ID_MANDIRI_TASPE
BANK MANDIRI TASPEN
ID_MASPION
BANK MASPION
ID_MAYAPADA
BANK MAYAPADA INTERNATIONAL
ID_MAYBANK
MAYBANK INDONESIA
ID_MAYORA
BANK MAYORA
ID_MEGA
BANK MEGA
ID_MEGA_SYR
BANK SYARIAH MEGA
ID_MESTIKA_DHARM
Bank Mestika Dharma
ID_MIZUHO
BANK MIZUHO
ID_MNC_INTL
BANK MNC INTERNASIONAL
ID_MUAMALAT
BANK MUAMALAT
ID_MUFG
BANK MUFG
ID_MULTI_ARTA
Bank Multiarta Sentosa
ID_NEO
BANK NEO COMMERCE
ID_NOBU
BANK NATIONALNOBU
ID_NTB
BANK BPD NTB
ID_NTT
BANK BPD NTT
ID_OCBC
BANK OCBC NISP
ID_OCBC_SYR
BANK OCBC NISP SYARIAH
ID_OKE
BANK OKE INDONESIA
ID_PAN
BANK BANK PANIN
ID_PAN_SYR
BANK PANIN SYARIAH
ID_PAPUA
BANK BPD PAPUA
ID_PERMATA
BANK PERMATA
ID_PERMATA_SYR
BANK PERMATA SYARIAH
ID_PRIMA_MASTER
BANK PRIMA MASTER
ID_RIAU_KEPRI
BANK BPD Riau Kepri
ID_SBI
BANK SBI INDONESIA
ID_SEA
SEABANK INDONESIA
ID_SINARMAS
BANK SINARMAS
ID_STAN
STANDARD CHARTERED BANK
ID_SULSELBAR
BANK BPD SULSELBAR
ID_SULSELBAR_SYR
BANK SULSELBAR UNIT USAHA SYARIAH
ID_SULUT
BANK BPD SULUT
ID_SUMSEL_BABEL
BANK BPD SUMSEL
ID_SUMSEL_BABEL_SY
BANK BPD SUMSEL UNIT USAHA SYARIAH
ID_SUMUT
BANK BPD SUMUT
ID_SUMUT_SYR
BANK BPD SUMUT UNIT USAHA SYARIAH
ID_UOB
BANK UOB INDONESIA
ID_VICTORIA
BANK VICTORIA
ID_VICTORIA_SYR
BANK VICTORIA SYARIAH
ID_WOORI_SAUDARA
BANK Woori Saudara Indonesia
ID_ACEH_SYR
BANK ACEH SYARIAH
ID_ARTAJASA
BANK JASA JAKARTA
ID_KSEI
BANK Kustodian Sentral Efek Indonesia
ID_LPEI
BANK Lembaga Pembiayaan Ekspor Indonesia (Eximbank)
ID_NET
Bank Aladin Syariah Tbk / Bank Net Indonesia Syariah
value of transaction in this spend category within the time period
time_period
string
n-month duration of spending from the last API-refreshed date
category_type
string
CNP: online & without card transaction within the time period ATM: atm withdrawals within the time period CASH_OR_XBORDER: card & atm transactions outside country of issuance within the time period
Status API will return product status and institution status that are available in Brankas.
Product status represents our API availability. When a product is disabled, although institutions are enabled, connections are non-available.
Institution status (status) represents the Institution’s availability. When an institution is disabled, availability is highly dependent on the institution itself.