Contents

Payment Gateway

API Documentation

Everything you need to integrate deposits, payouts and enquiries against the ₱isoCoin Gateway: the requests, the responses, how to sign them, and the codes they carry.

01

Deposit API

Get started

API Endpoint

POSThttps://payment.pisocoingateway.com/api/v1/deposit

Please refer to the integration guide for the integration testing and live hostname of the payment gateway above for the actual URL.

To use this API, you need API merchant keys. Please contact us at support@pisocoingateway.com to get your own API merchant keys.

Create deposit request

To submit a deposit request you need to make a POST API call to the following URL: https://payment.pisocoingateway.com/api/v1/deposit

Here is a POST request example
{
    "merchant_account": "123456789",
    "merchant_order": "12345",
    "merchant_user_unique_id": "jdelacruz",
    "product_desc": "Digital Product",
    "first_name": "Juan",
    "last_name": "Dela Cruz",
    "address": "Barangay 105, Tondo",
    "city": "Manila",
    "zip_code": "1012",
    "country": "PH",
    "phone": "+639123456789",
    "email": "delacruzjuan@sample.com",
    "amount": 10000,
    "currency": "PHP",
    "ip_address": "192.168.1.1",
    "status_callback_url": "https://callback.sample.com/back/status.php",
    "redirect_back_url": "https://www.sample.com/fe/redirect.php",
    "control": "50eac75f3e4e6b0db92c7b1a585c2410a77cceb9"
}
Successful response example
{
    "url": "https://payment.pisocoingateway.com/portal/pay/transaction?control=e37b0c76fc1c2e3adaebe964e8a6115d"
}

Query parameters in JSON body

FieldTypeDescription
merchant_accountStringMerchant account number, assigned by ₱isoCoin Gateway. 12 bytes max. Mandatory
merchant_orderStringUnique order identifier, defined by Merchant. 12 bytes max. Mandatory
merchant_user_unique_idStringUnique user identifier, defined by user from registration (this param is required in all currencies). Mandatory
amountNumericThe order amount, in non floating format (example: 100075 represents 1000.75 as amount). 10 bytes max. Mandatory
currencyStringTransaction currency, in ISO 4217 format. 3 bytes. Supports PHP, VND, MYR, CNY, THB, INR, IDR, LAK, MXN, PKR, KRW, HKD, TRC20USDT and BEP20USDT. Mandatory
product_descStringBrief product description of the order. 125 bytes max. Mandatory
first_nameStringEnd user first name. 50 bytes max. Mandatory
last_nameStringEnd user last name. 50 bytes max. Mandatory
addressStringEnd user billing address. 50 bytes max. Mandatory
cityStringEnd user billing address, city. 50 bytes max. Mandatory
zip_codeStringEnd user billing address, ZIP code. 10 bytes max. Mandatory
countryStringEnd user billing address, country, in ISO 3166-1 alpha-2 format. 2 bytes. Mandatory
phoneStringEnd user phone number, including country code. 15 bytes max. Mandatory
emailStringEnd user email address. 128 bytes max. Mandatory
ip_addressStringEnd user IP address. 15 bytes max. Mandatory for fraud screening. Mandatory
status_callback_urlStringThe callback URL to post the transaction final results to after payment processing has completed on the bank side. 40 bytes max. Optional
redirect_back_urlStringThe redirection URL to redirect the end user to after payment completed. 40 bytes max. Mandatory
controlStringThe checksum. 40 bytes. Mandatory

Create deposit request control checksum

Note

Never expose the partner_control provided by us to anyone. Doing so will compromise the security of future transactions.

An HMAC SHA-1 message digest is used to ensure data integrity and message authenticity in communication. This message digest is calculated by concatenating the data in the transaction request/response in the correct order, feeding it into the HMAC SHA-1 function using the partner control as the key, and supplying the HMAC SHA-1 result in the control parameter of the transaction request.

To create the checksum, concatenate the values of the following parameters into one string variable in the following order:

merchant_account + amount + currency + first_name + last_name + address + city + zip_code + country + phone + email + merchant_order + product_desc + redirect_back_url

Below is an example to verify the checksum:

merchant_account
123456789
amount
10000
currency
PHP
first_name
Juan
last_name
Dela Cruz
address
Barangay 105, Tondo
city
Manila
zip_code
1012
country
PH
phone
+639123456789
email
delacruzjuan@sample.com
merchant_order
12345
product_desc
Digital Product
redirect_back_url
https://www.sample.com/fe/redirect.php

The complete string for the example data above becomes:

12345678910000PHPJuanDela CruzBarangay 105, TondoManila1012PH+639123456789delacruzjuan@sample.com12345Digital Producthttps://www.sample.com/fe/redirect.php

For this example the partner_control key is D6909744CDF0C6BDC87603900E3EE881. Then hash the string with the HMAC SHA-1 hash function:

hash_hmac('sha1', '12345678910000PHPJuanDela CruzBarangay 105, TondoManila1012PH+639123456789delacruzjuan@sample.com12345Digital Producthttps://www.sample.com/fe/redirect.php', 'D6909744CDF0C6BDC87603900E3EE881')

Supply this string and the partner control as the key to the HMAC SHA-1 function, and supply the result to the control parameter, the last parameter you need to initiate the transaction. In our example, the control parameter becomes:

Control

50eac75f3e4e6b0db92c7b1a585c2410a77cceb9

Deposit callback response

After processing the transaction request, our system redirects the customer back to the merchant website using the redirect_back_url parameter. At the same time, we send the same transaction result via server-to-server communication if status_callback_url contains a valid URL. Most of the parameters simply echo the transaction message, with information about the bank used and the status of the attempted transaction. The table below explains the parameters delivered by HTTP POST request in JSON format.

Callback response example
{
    "transaction_id": "987654321",
    "merchant_order": "12345",
    "amount": "10000",
    "currency": "PHP",
    "bank_transaction_id": "123456789",
    "status": "A0",
    "control": "4cac5b736c357ff073cc50ae2708f333e6066805",
    "message": "Paid / Refunded / Successfully requested."
}

Callback response parameters in JSON body

FieldTypeDescription
transaction_idStringUnique transaction identifier, defined by the ₱isoCoin Gateway system. 10 bytes max.
merchant_orderStringUnique order identifier, defined by Merchant. 12 bytes max.
amountNumericThe order amount, in non floating format (example: 100075 represents 1000.75 as amount). 10 bytes max.
currencyStringTransaction currency, in ISO 4217 format. 3 bytes. Supports PHP, INR, MYR, THB, IDR, VND and CNY.
bank_transaction_idStringUnique identifier of the bank that handles the transaction. 10 bytes max.
statusStringThe status code of the order. Refer to Status codes for the possible values. 4 bytes max.
messageStringThe status message of the order. Refer to Status codes for the possible values. 125 bytes max.
controlStringThe checksum. 40 bytes.

Validate deposit callback control checksum

An HMAC SHA-1 message digest is used to ensure data integrity and message authenticity in communication. This message digest is calculated by concatenating the data in the transaction result in the correct order, using the shared secret (partner_control) as the key, feeding it into the HMAC SHA-1 function and supplying the HMAC SHA-1 result in the control parameter of the response.

To create the checksum from the callback response, concatenate the values of the following parameters into one string variable in the following order:

transaction_id + merchant_order + amount + currency + bank_transaction_id + status

Below is an example to verify the checksum:

transaction_id
987654321
merchant_order
12345
amount
10000
currency
PHP
bank_transaction_id
123456789
status
A0

The complete string for the example data above becomes:

9876543211234510000PHP123456789A0

For this example the partner_control key is D6909744CDF0C6BDC87603900E3EE881. Then hash the string with the HMAC SHA-1 hash function:

hash_hmac('sha1', '9876543211234510000PHP123456789A0', 'D6909744CDF0C6BDC87603900E3EE881')

Compare the result with the control parameter of the callback to verify the authenticity of the response you received. In our example, the control parameter is:

Control

4cac5b736c357ff073cc50ae2708f333e6066805

02

Payout API

Get started

API Endpoint

POSThttps://payment.pisocoingateway.com/api/v1/payout

Please refer to the integration guide for the integration testing and live hostname of the payment gateway above for the actual URL.

To use this API, you need API merchant keys. Please contact us at support@pisocoingateway.com to get your own API merchant keys.

Create payout request

To submit a payout request you need to make a POST API call to the following URL: https://payment.pisocoingateway.com/api/v1/payout

Here is a POST request example
{
    "merchant_order": "12345",
    "merchant_account": "900136",
    "customer_name": "Juan Dela Cruz",
    "bank_province_code": "018040010",
    "bank_city_code": "018040010",
    "bank_code": "GXCHPHM2XXX",
    "bank_branch_address": "Philippines",
    "bank_account_number": "09123456789",
    "amount": 10000,
    "currency": "PHP",
    "id_number": "1234567890",
    "status_callback_url": "https://callback.sample.com/back/status.php",
    "control": "4398812863c88d47a07d3ff174647e35fcb8dd2c"
}

Payout request parameters in JSON body

FieldTypeDescription
merchant_accountStringMerchant account number, assigned by ₱isoCoin Gateway. 12 bytes max. Mandatory
merchant_orderStringUnique order identifier, defined by Merchant. 12 bytes max. Mandatory
amountNumericThe order amount, in non floating format (example: 100075 represents 1000.75 as amount). 10 bytes max. Mandatory
currencyStringTransaction currency, in ISO 4217 format. 3 bytes. Supports PHP, VND, MYR, CNY, THB, INR, IDR, LAK, MXN, PKR, KRW, HKD, TRC20USDT and BEP20USDT. Mandatory
id_numberString20 bytes max. This param is for Pakistan only (JazzCash | EasyPaisa). Mandatory
customer_nameStringCustomer name in the local language. 30 characters max. Mandatory
bank_codeStringBank code. Please refer to Bank codes for the details for PHP, INR, CNY, MYR, VND, THB, LAK and IDR. 10 bytes max. For INR payouts, provide the IFSC code of the client bank account (example: HDFC0003083). Mandatory
bank_province_codeStringProvince code of the account-opening branch (example: 14000). Mandatory
bank_city_codeStringCity code of the account-opening branch (example: 14300). Mandatory
bank_branch_addressStringAddress of the account-opening branch. 50 characters max. Mandatory
bank_account_numberStringBank account number. 20 bytes max. Mandatory
memoStringMessage to the customer about this transaction; may show on the bank statement. 50 characters max. Optional
status_callback_urlStringThe callback URL to post the transaction final results to after payment processing has completed on the bank side. 40 bytes max. Optional
controlStringThe checksum. 40 bytes. Mandatory
Successful response example
{
    "transaction_id": "1103795",
    "merchant_account": "900136",
    "merchant_order": "12345",
    "amount": "10000",
    "currency": "PHP",
    "customer_name": "Juan Dela Cruz",
    "bank_code": "GXCHPHM2XXX",
    "bank_account_number": "09123456789",
    "bank_province_code": "018040010",
    "bank_city_code": "018040010",
    "bank_branch_address": "Philippines",
    "control": "4398812863c88d47a07d3ff174647e35fcb8dd2c",
    "status": "A2",
    "message": "Confirmed. The payment is confirmed and will be acquired."
}

Payout response in JSON format

FieldTypeDescription
transaction_idStringUnique transaction identifier, defined by ₱isoCoin Gateway. 10 bytes max.
merchant_accountStringMerchant account number, assigned by ₱isoCoin Gateway. 12 bytes max.
merchant_orderStringEcho of the merchant_order used in the credit transaction request.
amountNumericEcho of the amount used in the credit transaction request.
currencyStringEcho of the currency used in the credit transaction request.
customer_nameStringEcho of the customer name used in the credit transaction request.
bank_codeStringEcho of the bank code used in the credit transaction request.
bank_province_codeStringEcho of the province code used in the credit transaction request.
bank_city_codeStringEcho of the city code used in the credit transaction request.
bank_branch_addressStringEcho of the address of the account-opening branch used in the credit transaction request.
bank_account_numberStringEcho of the bank account number used in the credit transaction request.
controlStringEcho of the control used in the credit transaction request.
statusStringThe status code of the order. Refer to Status codes for the possible values.
messageStringThe status message of the order. Refer to Status codes for the possible values.

Create payout request control checksum

Note

Never expose the partner_control provided by us to anyone. Doing so will compromise the security of future transactions.

A SHA-1 checksum is used to ensure data integrity and message authenticity in communication. This checksum is calculated by concatenating the data in the transaction request/response in the correct order, appending the shared secret (partner_control) to the end of the concatenated string, feeding it into the SHA-1 function and supplying the SHA-1 result in the control parameter.

For more details of Secure Hash Algorithm 1 (SHA-1), see RFC 3174.

To create the checksum, concatenate the values of the following parameters into one string variable in the following order:

merchant_account + merchant_order + amount + currency + Base64.encode(customer_name) + bank_code + bank_account_number + partner_control

Below is an example to verify the checksum:

merchant_account
900136
merchant_order
12345
amount
10000
currency
PHP
customer_name
Juan Dela Cruz, Base64 encoded as SnVhbiBEZWxhIENydXo=
bank_code
GXCHPHM2XXX
bank_account_number
09123456789
partner_control
73C76D7B2B090C7EEBBA3CFD26782AA0

The complete string for the example data above, before the partner control is appended, becomes:

9001361234510000PHPSnVhbiBEZWxhIENydXo=GXCHPHM2XXX09123456789

For this example the partner_control key is 73C76D7B2B090C7EEBBA3CFD26782AA0. Append it and hash the string with the SHA-1 hash function:

sha1('9001361234510000PHPSnVhbiBEZWxhIENydXo=GXCHPHM2XXX0912345678973C76D7B2B090C7EEBBA3CFD26782AA0')

Supply the result to the control parameter, the last parameter you need to initiate the transaction. In our example, the control parameter becomes:

Control

4398812863c88d47a07d3ff174647e35fcb8dd2c

Payout callback response

Once the payout transaction is processed and funds are sent to the customer bank account, the final transaction result is returned to the merchant if status_callback_url was supplied in the credit transaction request. The merchant shall record the information for future reference and reconciliation. The table below explains the parameters delivered by HTTP POST request in JSON format.

Callback response example
{
    "transaction_id": 1103795,
    "merchant_account": "900136",
    "merchant_order": "12345",
    "amount": 10000,
    "currency": "PHP",
    "customer_name": "Juan Dela Cruz",
    "bank_code": "GXCHPHM2XXX",
    "bank_account_number": "09123456789",
    "status": "A0",
    "message": "Paid / Refunded / Successfully requested.",
    "control": "6b250f6c9c46af61aae0ac012b952065a6fe1140"
}

Callback response parameters in JSON body

FieldTypeDescription
transaction_idStringUnique transaction identifier, defined by the ₱isoCoin Gateway system. 10 bytes max.
merchant_accountStringMerchant account number, assigned by ₱isoCoin Gateway. 12 bytes max.
merchant_orderStringEcho of the unique order identifier, defined by Merchant. 12 bytes max.
amountNumericThe order amount, in non floating format (example: 100075 represents 1000.75 as amount). 10 bytes max.
currencyStringEcho of the currency in the credit transaction request. 3 bytes.
customer_nameStringEcho of the customer name in the transaction request.
bank_codeStringIndicates which bank was used in the payment process; please refer to Bank codes for details. 10 bytes max.
bank_account_numberStringBank account number. 20 bytes max.
statusStringThe status code of the order. Refer to Status codes for the possible values. 4 bytes max.
messageStringThe status message of the order. Refer to Status codes for the possible values. 125 bytes max.
controlStringThe checksum. 40 bytes.

Validate payout callback control checksum

A SHA-1 checksum is used to ensure data integrity and message authenticity in communication. This checksum is calculated by concatenating the data in the transaction request/response in the correct order, appending the shared secret (partner_control) to the end of the concatenated string, feeding it into the SHA-1 function and supplying the SHA-1 result in the control parameter.

To create the checksum from the callback response, concatenate the values of the following parameters into one string variable in the following order:

transaction_id + merchant_account + merchant_order + amount + currency + status + partner_control

Below is an example to verify the checksum:

transaction_id
1103795
merchant_account
900136
merchant_order
12345
amount
10000
currency
PHP
status
A0

The complete string for the example data above, before the partner control is appended, becomes:

11037959001361234510000PHPA0

For this example the partner_control key is 73C76D7B2B090C7EEBBA3CFD26782AA0. Append it and hash the string with the SHA-1 hash function:

sha1('11037959001361234510000PHPA073C76D7B2B090C7EEBBA3CFD26782AA0')

Compare the result with the control parameter of the callback to verify the authenticity of the response you received. In our example, the control parameter is:

Control

6b250f6c9c46af61aae0ac012b952065a6fe1140

03

Enquire API

Get started

API Endpoint

POSThttps://payment.pisocoingateway.com/api/v1/enquire

Please refer to the integration guide for the integration testing and live hostname of the payment gateway above for the actual URL.

To use this API, you need API merchant keys. Please contact us at support@pisocoingateway.com to get your own API merchant keys.

Transaction enquiry

To submit an enquire request you need to make a POST API call to the following URL: https://payment.pisocoingateway.com/api/v1/enquire

Here is a POST request example
{
    "merchant_account": "900136",
    "version": "4",
    "merchant_order": "vi20231129143843",
    "amount": 10000,
    "currency": "PHP",
    "control": "a42329ed1ef1bc148f4e2d1eaeb604506bc6654b"
}
Response example
{
    "transaction_status": {
        "memo": "",
        "status": "A0",
        "message": "Paid / Refunded / Successfully requested."
    },
    "transaction": {
        "merchant_account": "900136",
        "transaction_id": "1103795",
        "merchant_order": "vi20231129143843",
        "amount": "10000",
        "currency": "PHP",
        "bank_account_number": "09123456789",
        "bank_address": "Philippines",
        "bank_code": "SPP_GXCHPHM2"
    },
    "customer": {
        "customer_name": "Juan Dela Cruz",
        "bank_province_code": "018040010",
        "bank_city_code": "018040010"
    }
}

Query parameters in JSON body

FieldTypeDescription
merchant_accountStringMerchant account number, assigned by ₱isoCoin Gateway. 12 bytes max. Mandatory
merchant_orderStringUnique order identifier, defined by Merchant. 12 bytes max. Mandatory
amountNumericThe order amount, in non floating format (example: 100075 represents 1000.75 as amount). 10 bytes max. Must match the initial transaction. Mandatory
currencyStringTransaction currency, in ISO 4217 format. Not all currencies are supported for all merchants. 3 bytes. Supports PHP, INR, MYR, THB, IDR, VND, LAK and CNY. Must match the initial transaction. Mandatory
versionStringThe version number of the transaction enquiry. 1 byte max. 1 enquires a deposit transaction status; 4 enquires a payout transaction status. Mandatory
controlStringThe checksum. 40 bytes. Mandatory

Create enquire request control checksum

Note

Never expose the partner_control provided by us to anyone. Doing so will compromise the security of future transactions.

A SHA-1 checksum is used to ensure data integrity and message authenticity in communication. This checksum is calculated by concatenating the data in the transaction request/response in the correct order, appending the shared secret (partner_control) to the end of the concatenated string, feeding it into the SHA-1 function and supplying the SHA-1 result in the control parameter.

For more details of Secure Hash Algorithm 1 (SHA-1), see RFC 3174.

To create the checksum, concatenate the values of the following parameters into one string variable in the following order:

merchant_account + merchant_order + amount + currency + version + partner_control

Below is an example to verify the checksum:

merchant_account
900136
merchant_order
vi20231129143843
amount
10000
currency
PHP
version
4
partner_control
73C76D7B2B090C7EEBBA3CFD26782AA0

The complete string for the example data above becomes:

900136vi2023112914384310000PHP473C76D7B2B090C7EEBBA3CFD26782AA0

For this example the partner_control key is 73C76D7B2B090C7EEBBA3CFD26782AA0. Then hash the string with the SHA-1 hash function:

sha1('900136vi2023112914384310000PHP473C76D7B2B090C7EEBBA3CFD26782AA0')

Supply the result to the control parameter, the last parameter you need to initiate the enquiry. In our example, the control parameter becomes:

Control

a42329ed1ef1bc148f4e2d1eaeb604506bc6654b

04

Balance Enquiry API

Get started

API Endpoint

POSThttps://payment.pisocoingateway.com/EnquiryBalance

Use this endpoint to retrieve the current available balance per currency for your merchant account.

To use this API, you need API merchant keys. Please contact us at support@pisocoingateway.com to get your own API merchant keys.

Balance enquiry

Submit a POST request with a JSON body to fetch your balance. To submit a balance enquiry request you need to make a POST API call to the following URL: https://payment.pisocoingateway.com/EnquiryBalance

Here is a POST request example (with a real SHA-1 control you can reproduce)
{
    "version": 3,
    "merchant_account": "123456",
    "control": "587da450a255c2cb472877df94cb48b1a6040dd1"
}

Query parameters in JSON body

FieldTypeDescription
merchant_accountStringMerchant account number, assigned by ₱isoCoin Gateway. 12 bytes max. Mandatory
versionNumericAPI version for balance enquiry. Currently supports 3. Mandatory
controlStringChecksum generated via SHA-1 of the concatenated fields (see Create balance enquiry control). 40 bytes. Mandatory
Response example (XML)
<?xml version="1.0" encoding="iso-8859-1"?>
<balance>
    <merchant_account>123456</merchant_account>
    <item>
        <currency>PHP</currency>
        <amount>587.00</amount>
    </item>
</balance>

The response is returned in XML format. Each <item> node represents a currency and its corresponding balance amount. Amounts are represented in standard decimal string format per currency.

Create balance enquiry control

Note

Never expose the partner_control provided by us to anyone. Doing so will compromise the security of future transactions.

For balance enquiry, the control is generated using a SHA-1 hash of the following fields concatenated in this exact order, then hex-encoded:

merchant_account + version + partner_control

Reproducible example:

merchant_account
123456
version
3
partner_control
11112222333344445555666677778888

The complete string becomes:

123456311112222333344445555666677778888

Hash the string using SHA-1 (hex, lowercase). The resulting control is:

Control

587da450a255c2cb472877df94cb48b1a6040dd1

Use this exact value in the sample request above to verify your implementation.

05

Status Codes

Successful status codes

Status codeMeaning
A0Paid / Refunded / Successfully requested.

Pending status codes

Status codeMeaning
A1Authorized. The payment is authorized and awaiting confirmation and acquiring.
A2Confirmed. The payment is confirmed and will be acquired.
A3Authorization / Refund requested.
A4Authorization / Refund not known.
A5Payment requested.
A6Payment processing.
TR00Transaction has been sent to bank. Waiting for answer.

Error status codes

Status codeMeaning
EU1End user session timed out.
EU2End user IP address mismatch.
EU3Invalid session id.
EU4Missing session id.
FI11Missing or invalid bank routing number.
FI12Missing or invalid bank account number.
FI13Missing or invalid bank name.
FI14Insufficient funds.
TR01The credit card has expired.
TR02Card temporarily invalid or under suspicion of fraud.
TR03Operation not permitted for this card or terminal.
TR04Insufficient funds available.
TR05Card not registered.
TR06Card out of service.
TR07Error in authentication of the holder.
TR08Refusal without specifying the reason.
TR09Erroneous expiry date.
TR10Card temporarily invalid or under suspicion of fraud with removal of the card.
TR11Issuing entity not available.
TR12Transaction refused.
TR13Transaction cannot be processed. Fraud score is too high.
TR14Transaction cannot be processed. High risk country.
TR15Transaction cannot be processed. E-mail address is a suspicious credit card fraudster.
TR16Transaction cannot be processed. Credit card issue country and customer country do not match.
TR17Transaction cannot be processed. Same amount has already been charged from this card today.
TR18Transaction cannot be processed. Credit card issue country does not match customer country.
TR19Incomplete or invalid transaction.
TR20Bank system is busy, please try again later.
TR21Transaction cannot be processed. Maximum number of transactions has been reached.
TR30Transaction inserted into database.
TR31Transaction updated.
TR32Merchant total amount increasing limit has been reached.
TR33Merchant IP address not registered.
TR34Transaction timed out.
TR35Failed to log in with the verification code three times and is blacklisted.
TR36Credit card number is blacklisted.
TR37Transaction cannot be processed. Fraud score of this machine is too high.
TR38BIN number is blacklisted.
TR39End user IP address is blacklisted.
TR40Bank issuing country is blacklisted.
TR41User fingerprint is blacklisted.
TR42End user IP is denied.
TR43IP address country does not match billing address country.
TR44User accesses from an anonymous proxy.
TR45User accesses from a transparent proxy.
TR46User accesses from an open proxy.
TR47User spam score is too high.
TR48User fraud score is too high.
TR49User BIN match failed.
TR50User BIN name match failed.
TR51Account owner and card owner mismatch.
TR52Transactions cannot be processed. Time interval between them is too short (to avoid double billing).
TR53User email is blacklisted.
E1This merchant id is not registered in our system.
E2The merchant is not active.
E3The merchant is not set to use the direct entry point.
E4The merchant account does not exist.
E5The merchant account is not active.
E10The checksum submitted is invalid.
E11One or more required fields are missing.
E12Invalid credit card type.
E13Invalid credit card number.
E14Invalid expiration date.
E15Credit card expired.
E16Credit card insert failed.
E17Incorrect format of the card control number CVV2.
E20The country field must be in ISO 3166-1 alpha-2 format.
E21We do not process customers in this country.
E22Email is not a valid e-mail address.
E23The fees could not be retrieved.
E24SSN is not exactly four characters long.
E25SSN is not numeric.
E26Birthday is not a valid date. Must be exactly 6 digits in the format MMDDYY.
E27The Address Verification System check failed. The customer identity could not be verified.
E28The amount must be in integer format.
E29The amount is too big. Please try a lower amount.
E30Limit check failed.
E31Customer's daily limit exceeded.
E32Customer's weekly limit exceeded.
E33Customer's monthly limit exceeded.
E34The amount does not match the minimum requirements.
E35The amount must be greater than zero.
E40Error contacting the bank.
E41Card payment: error upon authorization, or no contact with the bank.
E42Card payment: purchase rejected at the bank, contact the bank.
E43Technical error.
E44Technical error, Netlog system.
E45Technical error, bank system.
E50The function (Order Administration) is not supported.
E51This transaction does not exist.
E52Supplied merchant order does not match the Netlog id.
E53Incorrect merchant order.
E54Transaction already registered and paid. This merchant order is already registered on another transaction.
E55The status of the transaction does not permit the operation.
E56The transaction has been cancelled.
E57The transaction has been discontinued by the purchaser or denied by the bank.
E58Refunding failed.
E59Authorization reversal could not be carried out.
E60Acquiring could not be carried out (capture).
E61Failed, unknown reason.
E71Merchant's daily limit exceeded.
E72Merchant's weekly limit exceeded.
E73Merchant's monthly limit exceeded.
E74Merchant does not belong to aggregating merchant.
ES1Merchant is not set up for the hosted environment.
ES2Invalid callback type specified for hosted environment.
ES3Invalid callback type specified for API environment.
ES4Initial amount invalid.
ES5Invalid initial time unit.
ES6Invalid initial time period length.
ES7Invalid rebill time unit.
ES8Invalid rebill time period length.
ES9Initial period specified, but no rebilling.
ES10Invalid one time billing time period length.
ES11Invalid one time billing time unit.
ES12One time billing period specified and rebilling at the same time is illogical.
ES13Missing success URL.
ES14Missing merchant id.
ES15Missing transaction id.
ES16Invalid transaction amount.
ES17Invalid initial amount.
ES18Invalid transaction currency.
ES22Missing or invalid API version.
ES23Invalid merchant specified.
ES24Rebilling API invoked with rebilling period and/or period length missing.
ES25Missing first name.
ES26Missing last name.
ES27Missing address line.
ES28Missing Social Security Number.
ES29Missing city.
ES30Missing country.
ES31Missing state. Required when processing US cardholders.
ES32Missing phone number.
ES33Invalid phone number format.
ES34Missing mobile phone number.
ES35Invalid mobile phone number format.
ES36Missing email address.
ES37Missing amount.
ES38Missing credit card type.
ES39Missing credit card number.
ES40Missing expiry month.
ES41Expiry month must be numeric and contain two characters.
ES42Missing expiry year.
ES43Expiry year must be numeric and contain two characters.
ES44Missing CVV2.
ES45Missing IP address.
ES46Missing checksum.
ES47Missing zip code.
ES48Missing birthday.
ES49Invalid IP address.
ES137Missing merchant_user_unique_id.

06

Payout Supporting Bank Codes

Philippines supported bank codes

Bank codeEnglish name
ALKBPHM2XXXAllBank, Inc.
AUBKPHMMXXXAsia United Bank
BNORPHMMXXXBanco De Oro Unibank Inc (BDO)
MRTCPHM1XXXBangko Mabuhay
PABIPHMMXXXBank Of Commerce
BOPIPHMMXXXBank Of The Philippine Islands (BPI)
ONNRPHM1XXXBDO Network Bank Inc / One Network Bank
CBMFPHM1XXXCARD Bank Inc
CELRPHM1XXXCebuana Lhuillier Rural Bank
CHSVPHM1XXXChina Bank Savings Inc
CHBKPHMMXXXChina Banking Corporation
CTCBPHMMXXXCTBC Bank Phils Corp
DCPHPHM1XXXDCPay / COINS.PH
DBPHPHMMXXXDevelopment Bank Of The Philippines
DUMTPHM1XXXDungganon Bank Incorporated
EWBCPHMMXXXEast West Banking Corporation
EAWRPHM2XXXEast West Rural Bank / Komo
EQSNPHM1XXXEquicom Savings Bank
GXCHPHM2XXXG-Xchange / GCash
GHPESGSGXXXGrabPay Philippines
GOTYPHM2XXXGoTyme Bank
INGBPHMMRTLING Bank N.V.
TLBPPHMMXXXLand Bank Of The Philippines
LAUIPHM2XXXSeaBank / MariBank
MBNKPHMMXXXMalayan Bank Savings
MBBEPHMMXXXMaybank Philippines Inc
MBTCPHMMXXXMetrobank
OMNPPHMMXXXOmniPay
PAPHPHM1XXXPayMaya Philippines Inc
PPBUPHMMXXXPhilippine Business Bank
CPHIPHMMXXXPhilippine Bank Of Communications
PHSBPHMMXXXPhilippine Savings Bank
PHVBPHMMXXXPhilippine Veterans Bank
PHTBPHMMXXXPhiltrust Bank
QCRIPHM1XXXQuezon Capital Rural Bank Inc
RCBCPHMMXXXRCBC
ROBPPHMQXXXRobinsons Bank Corporation
RUGUPHM1XXXRural Bank Of Guinobatan / Asenso
SETCPHMMXXXSecurity Bank Corporation
STLAPH22XXXSterling Bank Of Asia Inc
SUNBPHMMXXXSun Savings Bank
UCSVPHM1XXXUCPB Savings Bank
UCPBPHMMXXXUnited Coconut Planters Bank
UBPHPHMMXXXUnionbank Of The Philippines
WEABPHMMXXXWealth Development Bank Corporation

Vietnam supported bank codes

Bank codeEnglish name
NP_ABBABBANK
NP_AGBAGRIBANK
NP_ACBAsia Commercial Bank (NGAN HANG A CHAU)
NP_NASBBAC A BANK
NP_BVBBaoViet Bank
NP_BIDVBIDV Bank
NP_DABDongA Bank
NP_EXIMEXIMBANK
NP_GPBGPBank
NP_HDBHDBank
NP_KLBKien Long Bank
NP_LPBLienVietPostBank (LIENVIET BANK)
NP_MBMBBank (Ngân Hàng Quân Đội)
NP_MSBMaritimeBank
NP_NAMANam A Bank
NP_NCBNational Citizen Bank (NH TMCP QUOC DAN)
NP_OCBOCB Bank (PHUONGDONG BANK)
NP_OCEANOCEAN Bank
NP_PGBANKPGBank
NP_SACSacombank
NP_SAIGONSaigonBank
NP_SCBSCB Bank
NP_SEASeABank
NP_SHBSHB Bank (Saigon Hanoi Commercial Joint Stock Bank)
NP_SHBVNShinhan Bank VN
NP_TCBTechcombank
NP_TPBTIENPHONG BANK
NP_VIBVIB Bank
NP_VABViet A Bank (Ngân hàng TMCP Việt Á)
NP_VCBVietcombank
NP_VTBVietinbank
NP_VDBVietnam Development Bank
NP_VIETBVIETBANK
NP_VIETCAPITALBANKVIET CAPITAL BANK (NHTMCP BAN VIET)

Malaysia supported bank codes

Bank codeEnglish name
AFFINEAffin Islamic Bank
SOURAgricultural Bank
ALLIANCEAlliance Bank
BMMBBank Muamalat
BKRMBank Kerjasama Rakyat Malaysia (BKRM)
CIMBCIMB Bank
HLBHong Leong Bank
HSBCHSBC Bank
BIMBBank Islam Malaysia
MAYMaybank
BSNBank Simpanan Nasional (National Savings Bank)
PBEPublic Bank
RHBRHB Bank
UOBUnited Overseas Bank

China supported bank codes

Bank codeEnglish nameLocal language name
ABCAgricultural Bank of China中国农业银行
BCOMBank of Communications中国交通银行
BHBBank of Hebei河北银行
BJRCBBeijing Rural Commercial Bank北京农商银行
BGBGuangxi Beibu Gulf Bank广西北部湾银行
BOBBank of Beijing北京银行
BOCBank of China中国银行
BODBank of Dongguan东莞银行
BODLBank of Dalian大连银行
BOIMCBank of Inner Mongolia内蒙古银行
BSBBaoshang Bank包商银行
BOJBank of Jiangsu江苏银行
BOJZBank of Jinzhou锦州银行
CBHBChina Bohai Bank渤海银行
CCBChina Construction Bank中国建设银行
CEBChina Everbright Bank中国光大银行
CIBIndustrial Bank兴业银行
CITICCITIC Bank中信银行
CMBChina Merchants Bank招商银行
CMBCChina Minsheng Banking Corp中国民生银行
CQCBank of Chongqing重庆银行
CQRCBChongqing Rural Commercial Bank重庆农村商业银行
CZCBZhejiang Chouzhou Commercial Bank浙江稠州商业银行
FJHXFujian Haixia Bank福建海峡银行
GRCBGuangzhou Rural Commercial Bank广州农商银行
GDBGuangdong Development Bank广东发展银行
GZCBBank of Guangzhou广州银行
HFBEvergrowing Bank恒丰银行
HSBHuishang Bank徽商银行
HXBHuaxia Bank华夏银行
HZBBank of Hangzhou杭州银行
HSBCHSBC Bank汇丰银行
ICBCIndustrial and Commercial Bank of China中国工商银行
NBCBBank of Ningbo宁波银行
NCBNanyang Commercial Bank (China) Limited南洋商业银行
NJCBBank of Nanjing南京银行
PABPing An Bank平安银行
PSBCPostal Savings Bank of China中国邮政储蓄银行
NMGNXSInner Mongolia Autonomous Region Rural Credit Cooperative Association内蒙古自治区农村信用社联合社
QDCCBBank of Qingdao青岛银行
SDBShenzhen Development Bank深圳发展银行
SHBBank of Shanghai上海银行
SPDBShanghai Pudong Development Bank浦发银行
SRCBShanghai Rural Commercial Bank上海农村商业银行
SJBANKShengjing Bank盛京银行
SZRUCOMMShenzhen Rural Commercial Bank深圳农村商业银行
ZJTLCBZhejiang Tailong Commercial Bank浙江泰隆商业银行
ZSBANKChina Zheshang Bank浙商银行

Thailand supported bank codes

Bank codeEnglish nameLocal language name
BAYKrungsri (Bank of Ayudhya)ธนาคารกรุงศรีอยุธยา
BBLBangkok Bankธนาคารกรุงเทพ
GHBGovernment Housing Bankธนาคารอาคารสงเคราะห์
GSBGovernment Savings Bankธนาคารออมสิน
KBANKKasikorn Bankธนาคารกสิกรไทย
KTBKrung Thai Bankธนาคารกรุงไทย
SCBSiam Commercial Bankธนาคารไทยพาณิชย์
TBKThanachart Bankธนาคารธนชาต
TMBThai Military Bankธนาคารทหารไทย
UOBUOB Bankธนาคารยูโอบี

India IFSC prefix supported banks

IFSC prefixBank nameTypeRegion
AUBLAU Small Finance BankSmall FinanceNorth
UTIBAxis BankPrivate SectorAll India
BARBBank of BarodaPublic SectorWest
CNRBCanara BankPublic SectorSouth
ESFBEquitas Small Finance BankSmall FinanceSouth
HDFCHDFC BankPrivate SectorAll India
HSBCHSBC BankForeign BankMetro Cities
ICICICICI BankPrivate SectorAll India
INDBIndusInd BankPrivate SectorWest
KKBKKotak Mahindra BankPrivate SectorAll India
PUNBPunjab National BankPublic SectorNorth
SCBLStandard Chartered BankForeign BankMetro Cities
SBINState Bank of IndiaPublic SectorAll India
UJVNUjjivan Small Finance BankSmall FinanceSouth
UBINUnion Bank of IndiaPublic SectorSouth

Indonesia supported bank codes

Bank codeBank name
ANTARDAERAHBank Antardaerah
ARTHA_GRAHABank Artha Graha Internasional
BANK_OF_INDIA_INDONESIABank of India Indonesia
BPD_ACEHBPD Aceh / BPD Aceh Syariah
BPD_ACEH_SYARIAHBank Aceh Syariah
BPD_BALIBPD Bali
BPD_DKIBank DKI
BPD_JATENGBank Jateng
BPD_JATIMBank Jatim
BPD_KALBARBank Kalbar
BPD_KALSELBank Kalsel
BPD_LAMPUNGBank Lampung
BPD_NTBBank NTB
BPD_NTTBank NTT
BPD_PAPUABank Papua
BPD_RIAUBank Riau
BPD_SULSELBank Sulsel dan Barat
BPD_SULTENGBank Sulteng
BPD_SULTRABank Sultra
BPD_SUMSEL_BABELBank Sumsel Babel
BPD_SUMSEL_BABEL_SYARIAHBank Sumsel Babel Syariah
BPD_SUMUTBank Sumut
BRIBank BRI
BRI_AGROBank BRI Agro
BTNBank Tabungan Negara (BTN)
BTPNBank BTPN
CAPITALBank Capital Indonesia
CIMB_NIAGABank CIMB Niaga
CITIBANKCitibank
CNBCNB
COMMONWEALTHBank Commonwealth
DANAWallet DANA
DANAMONBank Danamon
DBSBank DBS Indonesia
DINARBank Dinar
GANESHABank Ganesha
GOPAYGOPAY
HSBCBank HSBC
ICBCBank ICBC Indonesia
INDEXBank Index Selindo
JASA_JAKARTABank Jasa Jakarta
LINKAJAWallet LinkAja
MALUKUBank Maluku Malut
MANDIRIBank Mandiri
MASPIONBank Maspion Indonesia
MAYAPADABank Mayapada
MAYBANKBank Maybank Indocorp
MAYORABank Mayora Indonesia
MEGABank Mega
MEGA_SYARIAHBank Syariah Mega
MESTIKABank Mestika Dharma
NAGARIBank Nagari
NOBUBank National Nobu
NUSANTARA_PARAHYANGANBank Nusantara Parahyangan
OCBC_NISPBank OCBC NISP
OVOWallet OVO
PANINBank Panin
PANIN_SYARIAHBank Panin Syariah
PERMATAPermata Bank
PERMATA_SYARIAHBank Permata Syariah
PRIMA_MASTERPrima Master Bank
QNBBank QNB Indonesia
ROYALBank Royal Indonesia
SEABANKBank Seabank Indonesia
SHINHANBank Shinhan Indonesia
SHOPEEPAYWallet ShopeePay
SINARMASBank Sinarmas
STANDARD_CHARTEREDStandard Chartered Bank
UOBBank UOB Indonesia
VICTORIA_INTERNATIONALBank Victoria International
VICTORIA_SYARIAHBank Victoria Syariah
WOORI_SAUDARABank Woori Saudara

Laos supported bank codes

Bank codeEnglish nameLocal language name
APBAgricultural Promotion Bankທະນາຄານສົ່ງເສີມກະສິກຳ ຈຳກັດ
BCELBanque Pour Le Commerce Exterieur Lao Publicທະນາຄານ ການຄ້າຕ່າງປະເທດລາວ ມະຫາຊົນ
JDBJoint Development Bankທະນາຄານຮ່ວມພັດທະນາ
LDBLao Development Bankທະນາຄານພັດທະນາລາວ
LVBLao Viet Joint Venture Bank Co., Ltdທະນາຄານ ຮ່ວມທຸລະກິດ ລາວ - ຫວຽດ ຈໍາກັດ
STBST Bank Limitedທະນາຄານ ເອັສທີ ຈຳກັດ
LCNBLao China Bank Co., Ltdທະນາຄານລາວຈີນ
PSVBPhongsavanh Bank Ltdທະນາຄານພົງສະຫວັນ ຈໍາກັດ
IBLIndochina Bank Ltd
BLBBooyoung Lao Bank Ltdທະນາຄານ ບູຢອງ ລາວ
MJBMARUHAN Japan Bank Lao Co., Ltdທະນາຄານ ມາຣູຮານ ເຈແປນ ລາວ
BICBIC Bank Lao Co., Ltdທະນາຄານ ບີໄອຊີ ລາວ ຈຳກັດ
ABLACLEDA Bank Lao Ltdທະນາຄານ ເອຊີລີດາ ລາວ ຈຳກັດ
KBLKASIKORNTHAI Bank Limitedທະນາຄານກະສິກອນໄທ

Mexico supported bank codes

Bank codeEnglish name
MXN_AZTECAAzteca
MXN_BANAMEXBanamex
MXN_BANCOPPELBanCoppel
MXN_BANORTEBanorte
MXN_BANREGIOBanregio
MXN_BBVABANCOMERBBVA Bancomer
MXN_BCTBancomext
MXN_BDBBanco del Bajío
MXN_HSBCHSBC
MXN_IBAInbursa
MXN_SANTANDERSantander
MXN_SCOTIABANKScotiabank
MXN_STPSTP

Pakistan supported bank codes

Bank codeEnglish name
PAK_JAZZJazzCash
PAK_EASYEasyPaisa

Korea supported bank codes

Bank codeEnglish nameLocal language name
KRW_BUSANBANKBusan Bank부산은행
KRW_BOOKOOKBookook Securities부국증권
KRW_CITIBANKKOREACitibank Korea한국씨티은행
KRW_DAEGUDaegu BankDGB대구은행
KRW_DAISHINDaishin Securities대신증권
KRW_DBFININVESTDB Financial Investment동부증권
KRW_EBESTeBEST Investment & Securities이베스트투자증권
KRW_EUGENEINVESTEugene Investment & Securities유진투자증권
KRW_HANABANKHana Bank하나은행
KRW_HANAPAYHana Pay하나페이
KRW_HANASECHana Securities하나대투자증권
KRW_HANWHAINVESTHanwha Investment & Securities한화투자증권
KRW_HIINVESTHi Investment & Securities하이투자증권
KRW_HSBCKOREAHSBC KoreaHSBC은행 서울지점
KRW_HYUNDAISECURITIESHyundai Securities현대증권
KRW_HMCSECHyundai Motor SecuritiesHMC투자증권
KRW_IMINVESTI'M Investment & Securities아이엠투자증권
KRW_IBKIndustrial Bank of Korea (IBK)IBK기업은행
KRW_JEJUBANKJeju Bank제주은행
KRW_JEONBUKJeonbuk Bank전북은행
KRW_KBANKK Bank케이뱅크
KRW_KAKAOBANKKakaoBank카카오뱅크
KRW_KAKAOPAYKakao Pay카카오페이
KRW_KAKAOPAYSECKakaoPay Securities카카오페이증권
KRW_KBPAYKB PayKB Pay
KRW_KBSTARKB Kookmin BankKB국민은행
KRW_KIWOOMKiwoom Securities키움증권
KRW_BOKBank of Korea한국은행
KRW_KDBKorea Development Bank (KDB)한국산업은행
KRW_KEBKorea Exchange Bank (Former KEB)한국외환은행
KRW_KFCCKorea Federation of Community Credit Cooperatives (KFCC / MG)새마을금고
KRW_KISKorea Investment & Securities한국투자증권
KRW_KOREAPOSTKorea Post (Head Office)우정사업본부
KRW_EPOSTKorea Post (Postal Service)우체국
KRW_KWANGJUKwangju Bank광주은행
KRW_KYUNGNAMKyongnam BankBNK경남은행
KRW_KYOBOSECKyobo Securities교보증권
KRW_LPAYL.PayL.pay
KRW_MERITZMeritz Securities메리츠종합금융증권
KRW_MIRAEASSETMirae Asset Securities미래에셋증권
KRW_SAVINGSBANKMutual Savings Bank상호저축은행
KRW_NACUFOKNational Credit Union Federation of Korea (NACUFOK)신협
KRW_NFCFNational Forestry Cooperative Federation산림조합중앙회
KRW_NAVERPAYNaver Pay네이버페이
KRW_NFFCNFFC Bank수협중앙회
KRW_NHBANKNH Nonghyup BankNH농협은행
KRW_NONGHYUPLOCALNonghyup Local Cooperatives지역농축협
KRW_PAYCOPAYCOPAYCO
KRW_SAMSUNGPAYSamsung Pay삼성페이
KRW_SAMSUNGSECSamsung Securities삼성증권
KRW_SHINHANCHINAShinhan Bank신한은행
KRW_SHINHANSECShinhan Securities신한금융투자
KRW_SHINHANSOLPAYShinhan SOL Pay신한 SOL페이
KRW_SHINYOUNGShinyoung Securities신영증권
KRW_SKPAYSK PaySK pay
KRW_SKSECSK SecuritiesSK증권
KRW_SMILEPAYSmilePay스마일페이
KRW_SSGPAYSSGPAYSSGPAY
KRW_KOREACHARTEREDStandard Chartered Bank KoreaSC제일은행
KRW_SUHYUPSuhyup Bank수협은행
KRW_EXIMBANKThe Export-Import Bank of Korea수출입은행
KRW_TOSSToss Bank토스뱅크
KRW_TOSSPAYToss Pay토스페이
KRW_WELCOMEBANKWelcome Bank웰컴 저축은행
KRW_HVBKKRSEWoori Bank우리은행
KRW_YUANTAYuanta Securities Korea유안타증권
KRW_ZEROPAYZeroPay제로페이

Hong Kong supported bank codes

Bank codeEnglish nameLocal language name
HK_MOXBMox BankMox(香港)
HK_TRXTRXTRX
HK_USDTERCUSDT-ERCUSDT-ERC
HK_USDTTRCUSDT-TRCUSDT-TRC
HK_SCBKShanghai Commercial Bank上海商业银行(香港)
HK_SHANGHAIBank of Shanghai上海银行
HK_BEASBank of East Asia东亚银行
HK_KWHKChina CITIC Bank International中信银行(国际)
HK_ICBKIndustrial and Commercial Bank of China (Asia)中国工商银行(亚洲)
HK_PCBCChina Construction Bank (Asia)中国建设银行
HK_BKCHBank of China (Hong Kong)中国银行(香港)
HK_COMMBank of Communications (Hong Kong)交通银行(香港)
HK_LCHBChong Hing Bank创兴银行
HK_WIHBOCBC Wing Hang Bank华侨永亨银行
HK_NYCBNanyang Commercial Bank南洋商业银行
HK_CBHKPublic Bank (Hong Kong)大众银行(香港)
HK_DSBADah Sing Bank大新银行
HK_TYBTai Yau Bank大有银行
HK_TSBLTai Sang Bank大生银行
HK_AIRRAirstar Bank天星银行
HK_IFFUFusion Bank富融银行
HK_TPBKFubon Bank (Hong Kong)富邦银行(香港)
HK_PONCPing An OneConnect Bank (Hong Kong)平安壹账通银行(香港)
HK_PAOBPing An Bank平安銀行
HK_HASEHang Seng Bank恒生银行
HK_WUBACMB Wing Lung Bank招商永隆银行
HK_CMBChina Merchants Bank (Hong Kong)招商银行(香港)
HK_MSHKMorgan Stanley Bank Asia摩根士丹利银行(亚洲)
HK_DBSSDBS Bank (Hong Kong)星展银行(香港)
HK_WEDIWeLab Bank汇立银行
HK_SCBStandard Chartered Bank (Hong Kong)渣打银行(香港)
HK_LIVIHLivi Bank理慧银行
HK_AABLZA Bank眾安銀行(香港)
HK_CITICitibank (Hong Kong)花旗银行(香港)
HK_ASEHAnt Bank (Hong Kong)蚂蚁银行(香港)
HK_HKICLHong Kong Interbank Clearing Limited / FPS转数快
HK_CIYUChiyu Banking Corporation集友銀行
HK_HSBCHSBC Hong Kong香港上海汇丰银行

Crypto currency codes

Currency codeName
USDTTether
BEP20USDTUSDT on Binance Smart Chain
TRC20USDTUSDT on TRON