Process Payment Request
When a buyer selects the payment app to make payment during the checkout process, SHOPLINE will use the predetermined parameter protocol to initiate an HTTP call to the latest payment URL set by your payment app, and redirect the buyer to the PaymentUrl returned by you. After the payment is completed, you need to redirect the buyer back to the RedirectUrl passed in the interface, where the buyer will wait for the final payment result. You can synchronize payment results to SHOPLINE in the following two ways:
- Provide a payment query URL, then SHOPLINE will initiate HTTP calls through the payment query URL at a certain frequency after calling the payment URL, and try to get the result of the payment until the final status is obtained or the final timeout (usually 24 hours) ;
- Actively call our payment notification Webhook interface until a correct response is returned;
How the payment app flow works
The following diagram illustrates how the payment flow between the payment app and SHOPLINE works:
- The customer completes the checkout, triggering a payment request.
- SHOPLINE sends a backend request to the payment app specifying the amount and currency to be charged.
- The payment app responds with the redirect URL of the payment page hosted by the partner app.
- SHOPLINE redirects the customer to the redirect URL.
- The payment app collects the customer's payment credentials and processes the payment as described in the backend request.
- The payment app sends the payment result to SHOPLINE, and SHOPLINE will implement a retry policy as needed.
- SHOPLINE responds with a redirect URL and sends a successful HTTP status.
- The payment app redirects the customer to SHOPLINE.
- The customer proceeds to checkout.
Please be noted that the payment app should use the payment order number we passed for idempotent processing.
Embedded mode
Payment Status Flow
For a payment request initiated by a payment app, we expect its payment status to flow as follows:
Request Payment Interface
When requesting payment, Shopline will request the payment Url provided by you through Http-Post;
Example request header
Corresponds to Http Request Header
pay-api-version: 1.0.0 pay-api-idempotency-key: TESTKEYKEYKEY pay-api-signature: SIGNSIGNSIGN pay-api-timestamp: 1665632758606000 pay-api-store-handle: xxx
Field | Is it required? | Description |
---|---|---|
pay-api-version | Yes | The API VERSION you filled in when configuring the payment app extension |
pay-api-idempotency-key | Yes | idempotent key |
pay-api-signature | Yes | signature value |
pay-api-timestamp | Yes | Timestamp when the request was initiated |
pay-api-store-handle | Yes | The unique identifier of the store, for example: store1 |
Example Request Body
Corresponds to Http Request Body
{
"orderTransactionId": "test_4ea758952734",
"referenceOrderId": "test_ff13c864b7fc",
"amount": 47,
"currency": "test_6ecc3b427a9f",
"cancelUrl": "test_a273b5c6sas",
"redirectUrl": "test_a273b5c641b4",
"notifyUrl": "test_188f3fe29ae2",
"billing": {
"personalInfo": {
"firstName": "test_fe18d6fc2798",
"lastName": "test_53fb73557da0",
"email": "test_e5e3dbd08790",
"identityType": "test_cac8c5abdbc7",
"identityNumber": "test_ebc761bb42ac",
"gender": "test_0704156bc002",
"phoneNumber": "test_e387bba596a8",
"homeTelephone": "test_a904ea96f89f",
"birthDay": "test_dccbf5b55cb6"
},
"address": {
"countryCode": "test_58ee6b67432f",
"state": "test_c86268fac927",
"stateCode": "test_bd232ee9b52a",
"city": "test_a8e72a4b7660",
"district": "test_60580c478afe",
"street": "test_f6ca14b11e07",
"street2": "test_9d168406be68",
"street3": "test_c9c85ef7c4b6",
"postcode": "test_7250544bd97d"
}
},
"shipping": {
"personalInfo": {
"firstName": "test_4db57f98c782",
"lastName": "test_d25c9b6d4a07",
"email": "test_089851321917",
"identityType": "test_2f2fcc09f376",
"identityNumber": "test_9b940715498a",
"gender": "test_5650bb1861d2",
"phoneNumber": "test_67507bac86dd",
"homeTelephone": "test_a09b85892bc2",
"birthDay": "test_9f05f7e481bb"
},
"address": {
"countryCode": "test_096475ce74d7",
"state": "test_c2113a8b18c9",
"stateCode": "test_2b8d522f55fa",
"city": "test_d0a6b9b780ca",
"district": "test_95a9222ca449",
"street": "test_a423b3d71c5e",
"street2": "test_9fb2013867b3",
"street3": "test_86d526908645",
"postcode": "test_09ffe0b8cf1b"
},
"shippingMethod": "test_7796822bf919",
"carrier": "test_17327dbfb7ce"
},
"products": [
{
"id": "test_fb4ef47a1a0f",
"name": "test_260a61ca16a8",
"sku": "test_5f883d1deab3",
"desc": "test_d0cbf7004770",
"quantity": 38,
"unitPrice": {
"value": 54,
"currency": "test_17c30bdc32b3"
}
}
],
"amountBreakdown": {
"productAmount": 67,
"discount": 99,
"productTax": 49,
"shippingAmount": 10,
"shippingTax": 5,
"other": 94
},
"merchant": {
"storeWebsite": "test_b085e7df3518",
"configData": {}
},
"card": {
"cardNo": "4444444444444444",
"expirationMonth": "11",
"expirationYear": "24",
"cvv": "123",
"holderName": "test"
},
"client": {
"ip": "test_b556bd9ff25a",
"deviceType": "test_8baf6c506ef8",
"deviceId": "test_5a6951dcc93c",
"javaScriptEnabled": true,
"javaEnabled": false,
"colorDepth": "test_8f35331e86f5",
"screenHeight": "test_e2c2f73f00bf",
"screenWidth": "test_a0b636ab9ef2",
"timeZoneOffset": "test_f65b530dfe9c",
"userAgent": "test_743313c383b4",
"language": "test_0231f84d3825",
"transactionWebSite": "test_c991d72e506c",
"accept": "test_7b30ef6c583c"
}
}
Field | Type | Is it required | Description |
---|---|---|---|
orderTransactionId | string | Yes | Payment transaction serial number, unique identification of payment request |
referenceOrderId | string | Yes | Business order number, such as e-commerce order number |
amount | integer | Yes | Amount of the transaction |
currency | string | Yes | Transaction Amount Currency |
redirectUrl | string | Yes | Payment completed redirection URL |
cancelUrl | string | Yes | Redirect URL when user cancels payment |
notifyUrl | string | Yes | Notification URL for asynchronous results |
billing | object | No | Billing |
|─personalInfo | object | Yes | Personal Information |
|─firstName | string | No | First name |
|─lastName | string | Yes | Last Name |
string | No | ||
|─identityType | string | No | Identification type |
|─identityNumber | string | No | ID Number |
|─gender | string | No | Gender |
|─phoneNumber | string | No | Phone number |
|─homeTelephone | string | No | Home Telephone |
|─birthDay | string | No | Birthday (format as YYYY-MM-DD) |
|─address | object | Yes | Address |
|─countryCode | string | Yes | Country Code |
|─state | string | No | State |
|─stateCode | string | No | State code |
|─city | string | No | City |
|─district | string | No | District |
|─street | string | No | Street |
|─street2 | string | No | Street2 |
|─street3 | string | No | Street3 |
|─postcode | string | No | Postcode |
shipping | object | No | Logistic information |
|─personalInfo | object | Yes | Personal Information |
|─firstName | string | No | First name |
|─lastName | string | Yes | Last name |
string | No | ||
|─identityType | string | No | Identification type |
|─identityNumber | string | No | ID number |
|─gender | string | No | Gender |
|─phoneNumber | string | No | Phone number |
|─homeTelephone | string | No | Home telephone |
|─birthDay | string | No | Birthday (format as YYYY-MM-DD) |
|─address | object | Yes | Address information |
|─countryCode | string | Yes | Country code |
|─state | string | No | State |
|─stateCode | string | No | State code |
|─city | string | No | city |
|─district | string | No | District |
|─street | string | No | Street |
|─street2 | string | No | Street2 |
|─street3 | string | No | Street3 |
|─postcode | string | No | Postcode |
|─shippingMethod | string | Yes | Logistics methods, such as express delivery to residences |
|─carrier | string | No | Transportation channels, such as SF Express, YTO |
products | array | Yes | Product list |
|─ | object | Yes | |
|─id | string | Yes | Product ID |
|─name | string | Yes | Product name |
|─sku | string | No | Product SKU |
|─desc | string | No | Description |
|─quantity | integer | Yes | Product quantity, non-item item data is 1 |
|─unitPrice | object | Yes | Unit price |
|─value | integer | Yes | Value |
|─currency | string | Yes | Currency |
amountBreakdown | object | Yes | Amount break down |
|─productAmount | integer | Yes | Total product amound |
|─discount | integer | Yes | Discount |
|─productTax | integer | Yes | Product Tax |
|─shippingAmount | integer | Yes | Shipping fee |
|─shippingTax | integer | Yes | Shipping tax |
|─other | integer | Yes | Other fee |
merchant | object | Yes | Merchant information |
|─storeWebsite | string | Yes | Store Website |
|─configData | object | No | The merchant's onboard information is transparently transmitted to the channel, and only in the SHOPLINE binding mode will the value be transmitted |
card | object | No | The embedded schema will pass |
|-cardNo | string | YES | card number |
|-expirationMonth | string | YES | Valid month |
|-expirationYear | string | YES | Valid year |
|-cvv | string | YES | Card CVV verification code |
|-holderName | string | No | Cardholder's Name |
client | object | Yes | Customer information |
|─ip | string | Yes | Customer IP |
|─deviceType | string | No | Device type |
|─deviceId | string | No | Device ID |
|─javaScriptEnabled | boolean | No | Does the browser support javascript |
|─javaEnabled | boolean | No | Does the browser support java |
|─colorDepth | string | No | Browser monitor color depth |
|─screenHeight | string | No | Cardholder Browser Screen Height |
|─screenWidth | string | No | Cardholder Browser Screen Width |
|─timeZoneOffset | string | No | Browser local time zone |
|─userAgent | string | No | Browser User-Agent |
|─language | string | No | Browser language |
|─transactionWebSite | string | No | Transaction URL |
|─accept | string | No | The browser accepts the message type |
Response header example
SHOPLINE must receive the expected result before it considers the call to be successful. If the expected result is not returned, SHOPLINE will consider that the payment request failed due to unknown reasons, and will give the user a prompt on the settlement page;
Corresponds to Http Response Header
pay-api-signature: SIGNSIGNSIGN
Field | Is it required | Description |
---|---|---|
pay-api-signature | Yes | signature value |
Response body example
Corresponds to Http Response Body
{
"orderTransactionId": "test_6f047f6db6e3",
"channelOrderTransactionId": "test_0a9991a24e73",
"paymentUrl": "test_6b84f55b3972",
"returnCode": "test_6d7c098e15ff",
"returnMessage": "test_0b9d14bd55c3",
"returnMessageId": "test_c02c42012682"
}
Field | Type | Is it required | Description |
---|---|---|---|
orderTransactionId | string | Yes | Payment transaction serial number, unique identification of payment request |
channelOrderTransactionId | string | Yes | Channel transaction ID, the unique identification of this payment on your side |
paymentUrl | string | No | Redirect the payment page url of the payment app |
returnCode | string | Yes | |
returnMessage | string | No | Failure Reasons |
returnMessageId | string | No | Channel response identifier UUID, such as traceId |
For embedded mode:
- If the payment requires 3DS verification, please return the 3DS verification address in paymentUrl, and we will redirect the buyer to this page;
- if 3DS verification is not required, please return the redirectUrl passed as an input parameter in paymentUrl, The buyer will wait for the payment result on this page;
Synchronize payment results
After the customer successfully completes the payment process, you can synchronize the payment result to SHOPLINE in the following two ways, and SHOPLINE recommends that you provide both:
- Payment query URL, then SHOPLINE will initiate an HTTP call through the payment query URL at a certain frequency after calling the payment URL, and try to get the result of the payment until the final status is obtained or the final timeout (usually 24 hours) ;
- Actively call our payment notification Webhook interface until a correct response is returned;
Payment query request header example
Corresponding to Http Request Header
pay-api-version: 1.0.0
pay-api-idempotency-key: TESTKEYKEYKEY
pay-api-signature: SIGNSIGNSIGN
pay-api-timestamp: 1665632758606000
Field | Is it required? | Description |
---|---|---|
pay-api-version | Yes | The API VERSION you filled in when configuring the payment app extension |
pay-api-idempotency-key | Yes | idempotent key |
pay-api-signature | Yes | signature value |
pay-api-timestamp | Yes | Timestamp when the request was initiated |
Example Payment Query Request Parameters
Corresponding to Http Request Query orderTransactionId=SLASDJK12312131
Field | Is it required? | Description |
---|---|---|
orderTransactionId | Yes | Payment transaction serial number, unique identification of payment request |
Payment Query Response Header Example
Corresponding to Http Response Header pay-api-signature: SIGNSIGNSIGN
Field | Is it required? | Description |
---|---|---|
pay-api-signature | Yes | Signature value |
Example Payment Query Response Body
Corresponding to Http Response Header Body
Field | Type | Is it required? | Description |
---|---|---|---|
orderTransactionId | string | Yes | Payment transaction serial number, unique identification of payment request |
channelOrderTransactionId | string | Yes | Channel flow |
paymentStatus | string | Yes | Payment Status |
amount | integer | Yes | Amount of the transaction |
currency | string | Yes | Transaction Amount Currency |
failCode | string | No | failure error code |
failMessage | string | No | failure reason |
returnCode | string | Yes | interface status code SUCCESS |
returnMessage | string | No | Failure reasons |
returnMessageId | string | No | Channel response identifier UUID, such as traceId |
Proactively notify SHOPLINE of the payment result
You can actively notify SHOPLINE of the payment result by calling the OpenApi interface of the payment result notification; After receiving the notification, SHOPLINE will obtain the payment result through the payment query interface, and will not directly trust the notification result;
Appendix:
Country Code
Country codes use the ISO 3166 international standard.
English Name | Two-digit code | Area codeISO 3166-2 |
---|---|---|
Afghanistan | AF | ISO 3166-2 |
Åland Islands | AX | ISO 3166-2 |
Albania | AL | ISO 3166-2 |
Algeria | DZ | ISO 3166-2 |
American Samoa | AS | ISO 3166-2 |
Andorra | AD | ISO 3166-2 |
Angola | AO | ISO 3166-2 |
Anguilla | AI | ISO 3166-2 |
Antarctica | AQ | ISO 3166-2 |
Antigua and Barbuda | AG | ISO 3166-2 |
Argentina | AR | ISO 3166-2 |
Armenia | AM | ISO 3166-2 |
Aruba | AW | ISO 3166-2 |
Australia | AU | ISO 3166-2 |
Austria | AT | ISO 3166-2 |
Azerbaijan | AZ | ISO 3166-2 |
Bahamas | BS | ISO 3166-2 |
Bahrain | BH | ISO 3166-2 |
Bangladesh | BD | ISO 3166-2 |
Barbados | BB | ISO 3166-2 |
Belarus | BY | ISO 3166-2 |
Belgium | BE | ISO 3166-2 |
Belize | BZ | ISO 3166-2 |
Benin | BJ | ISO 3166-2 |
Bermuda | BM | ISO 3166-2 |
Bhutan | BT | ISO 3166-2 |
Bolivia (Plurinational State of) | BO | ISO 3166-2 |
Bonaire, Sint Eustatius and Saba | BQ | ISO 3166-2 |
Bosnia and Herzegovina | BA | ISO 3166-2 |
Botswana | BW | ISO 3166-2 |
Bouvet Island | BV | ISO 3166-2 |
Brazil | BR | ISO 3166-2 |
British Indian Ocean Territory | IO | ISO 3166-2 |
Brunei Darussalam | BN | ISO 3166-2 |
Bulgaria | BG | ISO 3166-2 |
Burkina Faso | BF | ISO 3166-2 |
Burundi | BI | ISO 3166-2 |
Cabo Verde | CV | ISO 3166-2 |
Cambodia | KH | ISO 3166-2 |
Cameroon | CM | ISO 3166-2 |
Canada | CA | ISO 3166-2 |
Cayman Islands | KY | ISO 3166-2 |
Central African Republic | CF | ISO 3166-2 |
Chad | TD | ISO 3166-2 |
Chile | CL | ISO 3166-2 |
China | CN | ISO 3166-2 |
Christmas Island | CX | ISO 3166-2 |
Cocos (Keeling) Islands | CC | ISO 3166-2 |
Colombia | CO | ISO 3166-2 |
Comoros | KM | ISO 3166-2 |
Congo | CG | ISO 3166-2 |
Congo (Democratic Republic of the) | CD | ISO 3166-2 |
Cook Islands | CK | ISO 3166-2 |
Costa Rica | CR | ISO 3166-2 |
Côte d'Ivoire | CI | ISO 3166-2 |
Croatia | HR | ISO 3166-2 |
Cuba | CU | ISO 3166-2 |
Curaçao | CW | ISO 3166-2 |
Cyprus | CY | ISO 3166-2 |
Czechia | CZ | ISO 3166-2 |
Denmark | DK | ISO 3166-2 |
Djibouti | DJ | ISO 3166-2 |
Dominica | DM | ISO 3166-2 |
Dominican Republic | DO | ISO 3166-2 |
Ecuador | EC | ISO 3166-2 |
Egypt | EG | ISO 3166-2 |
El Salvador | SV | ISO 3166-2 |
Equatorial Guinea | GQ | ISO 3166-2 |
Eritrea | ER | ISO 3166-2 |
Estonia | EE | ISO 3166-2 |
Eswatini | SZ | ISO 3166-2 |
Ethiopia | ET | ISO 3166-2 |
Falkland Islands (Malvinas) | FK | ISO 3166-2 |
Faroe Islands | FO | ISO 3166-2 |
Fiji | FJ | ISO 3166-2 |
Finland | FI | ISO 3166-2 |
France | FR | ISO 3166-2 |
French Guiana | GF | ISO 3166-2 |
French Polynesia | PF | ISO 3166-2 |
French Southern Territories | TF | ISO 3166-2 |
Gabon | GA | ISO 3166-2 |
Gambia | GM | ISO 3166-2 |
Georgia | GE | ISO 3166-2 |
Germany | DE | ISO 3166-2 |
Ghana | GH | ISO 3166-2 |
Gibraltar | GI | ISO 3166-2 |
Greece | GR | ISO 3166-2 |
Greenland | GL | ISO 3166-2 |
Grenada | GD | ISO 3166-2 |
Guadeloupe | GP | ISO 3166-2 |
Guam | GU | ISO 3166-2 |
Guatemala | GT | ISO 3166-2 |
Guernsey | GG | ISO 3166-2 |
Guinea | GN | ISO 3166-2 |
Guinea-Bissau | GW | ISO 3166-2 |
Guyana | GY | ISO 3166-2 |
Haiti | HT | ISO 3166-2 |
Heard Island and McDonald Islands | HM | ISO 3166-2 |
Holy See | VA | ISO 3166-2 |
Honduras | HN | ISO 3166-2 |
Hong Kong | HK | ISO 3166-2 |
Hungary | HU | ISO 3166-2 |
Iceland | IS | ISO 3166-2 |
India | IN | ISO 3166-2 |
Indonesia | ID | ISO 3166-2 |
Iran (Islamic Republic of) | IR | ISO 3166-2 |
Iraq | IQ | ISO 3166-2 |
Ireland | IE | ISO 3166-2 |
Isle of Man | IM | ISO 3166-2 |
Israel | IL | ISO 3166-2 |
Italy | IT | ISO 3166-2 |
Jamaica | JM | ISO 3166-2 |
Japan | JP | ISO 3166-2 |
Jersey | JE | ISO 3166-2 |
Jordan | JO | ISO 3166-2 |
Kazakhstan | KZ | ISO 3166-2 |
Kenya | KE | ISO 3166-2 |
Kiribati | KI | ISO 3166-2 |
Korea (Democratic People's Republic of) | KP | ISO 3166-2 |
Korea (Republic of) | KR | ISO 3166-2 |
Kuwait | KW | ISO 3166-2 |
Kyrgyzstan | KG | ISO 3166-2 |
Lao People's Democratic Republic | LA | ISO 3166-2 |
Latvia | LV | ISO 3166-2 |
Lebanon | LB | ISO 3166-2 |
Lesotho | LS | ISO 3166-2 |
Liberia | LR | ISO 3166-2 |
Libya | LY | ISO 3166-2 |
Liechtenstein | LI | ISO 3166-2 |
Lithuania | LT | ISO 3166-2 |
Luxembourg | LU | ISO 3166-2 |
Macao | MO | ISO 3166-2 |
Madagascar | MG | ISO 3166-2 |
Malawi | MW | ISO 3166-2 |
Malaysia | MY | ISO 3166-2 |
Maldives | MV | ISO 3166-2 |
Mali | ML | ISO 3166-2 |
Malta | MT | ISO 3166-2 |
Marshall Islands | MH | ISO 3166-2 |
Martinique | MQ | ISO 3166-2 |
Mauritania | MR | ISO 3166-2 |
Mauritius | MU | ISO 3166-2 |
Mayotte | YT | ISO 3166-2 |
Mexico | MX | ISO 3166-2 |
Micronesia (Federated States of) | FM | ISO 3166-2 |
Moldova (Republic of) | MD | ISO 3166-2 |
Monaco | MC | ISO 3166-2 |
Mongolia | MN | ISO 3166-2 |
Montenegro | ME | ISO 3166-2 |
Montserrat | MS | ISO 3166-2 |
Morocco | MA | ISO 3166-2 |
Mozambique | MZ | ISO 3166-2 |
Myanmar | MM | ISO 3166-2 |
Namibia | NA | ISO 3166-2 |
Nauru | NR | ISO 3166-2 |
Nepal | NP | ISO 3166-2 |
Netherlands | NL | ISO 3166-2 |
New Caledonia | NC | ISO 3166-2 |
New Zealand | NZ | ISO 3166-2 |
Nicaragua | NI | ISO 3166-2 |
Niger | NE | ISO 3166-2 |
Nigeria | NG | ISO 3166-2 |
Niue | NU | ISO 3166-2 |
Norfolk Island | NF | ISO 3166-2 |
North Macedonia | MK | ISO 3166-2 |
Northern Mariana Islands | MP | ISO 3166-2 |
Norway | NO | ISO 3166-2 |
Oman | OM | ISO 3166-2 |
Pakistan | PK | ISO 3166-2 |
Palau | PW | ISO 3166-2 |
Palestine, State of | PS | ISO 3166-2 |
Panama | PA | ISO 3166-2 |
Papua New Guinea | PG | ISO 3166-2 |
Paraguay | PY | ISO 3166-2 |
Peru | PE | ISO 3166-2 |
Philippines | PH | ISO 3166-2 |
Pitcairn | PN | ISO 3166-2 |
Poland | PL | ISO 3166-2 |
Portugal | PT | ISO 3166-2 |
Puerto Rico | PR | ISO 3166-2 |
Qatar | QA | ISO 3166-2 |
Réunion | RE | ISO 3166-2 |
Romania | RO | ISO 3166-2 |
Russian Federation | RU | ISO 3166-2 |
Rwanda | RW | ISO 3166-2 |
Saint Barthélemy | BL | ISO 3166-2 |
Saint Helena, Ascension and Tristan da Cunha | SH | ISO 3166-2 |
Saint Kitts and Nevis | KN | ISO 3166-2 |
Saint Lucia | LC | ISO 3166-2 |
Saint Martin (French part) | MF | ISO 3166-2 |
Saint Pierre and Miquelon | PM | ISO 3166-2 |
Saint Vincent and the Grenadines | VC | ISO 3166-2 |
Samoa | WS | ISO 3166-2 |
San Marino | SM | ISO 3166-2 |
Sao Tome and Principe | ST | ISO 3166-2 |
Saudi Arabia | SA | ISO 3166-2 |
Senegal | SN | ISO 3166-2 |
Serbia | RS | ISO 3166-2 |
Seychelles | SC | ISO 3166-2 |
Sierra Leone | SL | ISO 3166-2 |
Singapore | SG | ISO 3166-2 |
Sint Maarten (Dutch part) | SX | ISO 3166-2 |
Slovakia | SK | ISO 3166-2 |
Slovenia | SI | ISO 3166-2 |
Solomon Islands | SB | ISO 3166-2 |
Somalia | SO | ISO 3166-2 |
South Africa | ZA | ISO 3166-2 |
South Georgia and the South Sandwich Islands | GS | ISO 3166-2 |
South Sudan | SS | ISO 3166-2 |
Spain | ES | ISO 3166-2 |
Sri Lanka | LK | ISO 3166-2 |
Sudan | SD | ISO 3166-2 |
Suriname | SR | ISO 3166-2 |
Svalbard and Jan Mayen | SJ | ISO 3166-2 |
Sweden | SE | ISO 3166-2 |
Switzerland | CH | ISO 3166-2 |
Syrian Arab Republic | SY | ISO 3166-2 |
Taiwan, Province of China | TW | ISO 3166-2 |
Tajikistan | TJ | ISO 3166-2 |
Tanzania, United Republic of | TZ | ISO 3166-2 |
Thailand | TH | ISO 3166-2 |
Timor-Leste | TL | ISO 3166-2 |
Togo | TG | ISO 3166-2 |
Tokelau | TK | ISO 3166-2 |
Tonga | TO | ISO 3166-2 |
Trinidad and Tobago | TT | ISO 3166-2 |
Tunisia | TN | ISO 3166-2 |
Turkey | TR | ISO 3166-2 |
Turkmenistan | TM | ISO 3166-2 |
Turks and Caicos Islands | TC | ISO 3166-2 |
Tuvalu | TV | ISO 3166-2 |
Uganda | UG | ISO 3166-2 |
Ukraine | UA | ISO 3166-2 |
United Arab Emirates | AE | ISO 3166-2 |
United Kingdom of Great Britain and Northern Ireland | GB | ISO 3166-2 |
United States of America | US | ISO 3166-2 |
United States Minor Outlying Islands | UM | ISO 3166-2 |
Uruguay | UY | ISO 3166-2 |
Uzbekistan | UZ | ISO 3166-2 |
Vanuatu | VU | ISO 3166-2 |
Venezuela (Bolivarian Republic of) | VE | ISO 3166-2 |
Viet Nam | VN | ISO 3166-2 |
Virgin Islands (British) | VG | ISO 3166-2 |
Virgin Islands (U.S.) | VI | ISO 3166-2 |
Wallis and Futuna | WF | ISO 3166-2 |
Western Sahara | EH | ISO 3166-2 |
Yemen | YE | ISO 3166-2 |
Zambia | ZM | ISO 3166-2 |
Zimbabwe | ZW | ISO 3166-2 |
[Currency and Precision Definition]
Country | Currency Name | Currency Code | Currency precision | Minimum payment amount | Amount parameter |
---|---|---|---|---|---|
United Arab Emirates | UAE Dirham | AED | two decimal places | 0.1 | x100 |
Afghanistan | Afghan Afghani | AFN | two decimal places | 0.1 | x100 |
Armenia | Armenian Dram | AMD | two decimal places | 0.1 | x100 |
Curaçao and Sint Maarten | Netherlands Antillian Guilder | ANG | two decimal places | 0.1 | x100 |
Angola | Kwanza | AOA | two decimal places | 0.1 | x100 |
Argentina | Argentine Peso | ARS | two decimal places | 0.1 | x100 |
Australia | Australian Dollar | AUD | two decimal places | 0.1 | x100 |
Aruba | Aruban Florin | AWG | two decimal places | 0.1 | x100 |
Azerbaijan | Azerbaijanian Manat | AZN | two decimal places | 0.1 | x100 |
Albania | Lek | ALL | two decimal places | 0.1 | x100 |
Bosnia and Herzegovina | Convertible Marks | BAM | two decimal places | 0.1 | x100 |
Barbados | Barbados Dollar | BBD | two decimal places | 0.1 | x100 |
People's Republic of Bangladesh | Taka | BDT | two decimal places | 0.1 | x100 |
Bulgaria | Bulgarian Lev | BGN | two decimal places | 0.1 | x100 |
Bahrain | Bahraini Dinar | BHD | three decimal places | 0.1 | x1000,and the last digit must be zero |
Burundi | Burundi Franc | BIF | Whole number | 1 | x1,whole integer |
Bermuda | Bermudian Dollar | BMD | two decimal places | 0.1 | x100 |
Brunei | Brunei Dollar | BND | two decimal places | 0.1 | x100 |
Bolivia | Boliviano | BOB | two decimal places | 0.1 | x100 |
Brazil | Brazilian Real | BRL | two decimal places | 0.1 | x100 |
Bahamas | Bahamian Dollar | BSD | two decimal places | 0.1 | x100 |
Kingdom of Bhutan | Ngultrum | BTN | two decimal places | 0.1 | x100 |
Botswana | Pula | BWP | two decimal places | 0.1 | x100 |
Belarus | Belarussian Ruble | BYN | two decimal places | 0.1 | x100 |
Belize | Belize Dollar | BZD | two decimal places | 0.1 | x100 |
Canada | Canadian Dollar | CAD | two decimal places | 0.1 | x100 |
Democratic Republic of the Congo | Congolese France | CDF | two decimal places | 0.1 | x100 |
Switzerland and Liechtenstein | Swiss Franc | CHF | two decimal places | 0.1 | x100 |
Chile | Unidad de Fomento | CLF | Whole number | 1 | x1,whole integer |
Chile | Chilean Peso | CLP | two decimal places | 0.1 | x100,and the last digit must be zero |
People's Republic of China | Yuan Renminbi | CNY | two decimal places | 0.1 | x100 |
Colombia | Colombian Peso | COP | two decimal places | 0.1 | x100 |
Costa Rica | Costa Rican Colon | CRC | two decimal places | 0.1 | x100 |
Cuba | Cuban Peso | CUP | two decimal places | 0.1 | x100 |
Cuba | Cuban Convertible Peso | CUC | two decimal places | 0.1 | x100 |
Cape Verde | Cape Verde Escudo | CVE | two decimal places | 0.1 | x100 |
Czech Republic | Czech Koruna | CZK | two decimal places | 0.1 | x100 |
Djibouti | Djibouti Franc | DJF | Whole number | 1 | x1,whole integer |
Denmark | Danish Krone | DKK | two decimal places | 0.1 | x100 |
Dominican Republic | Dominican Peso | DOP | two decimal places | 0.1 | x100 |
Algeria | Algerian Dinar | DZD | two decimal places | 0.1 | x100 |
Estonia | Kroon | EEK | two decimal places | 0.1 | x100 |
Egypt | Egyptian Pound | EGP | two decimal places | 0.1 | x100 |
Eritrea | Nakfa | ERN | two decimal places | 0.1 | x100 |
Ethiopia | Ethiopian Birr | ETB | two decimal places | 0.1 | x100 |
Eurozone | Euro | EUR | two decimal places | 0.1 | x100 |
Fiji | Fiji Dollar | FJD | two decimal places | 0.1 | x100 |
Falkland Islands | Falkland Islands Pound | FKP | two decimal places | 0.1 | x100 |
United Kingdom, Jersey, Guernsey, the Isle of Man, South Georgia and the South Sandwich Islands, the British Antarctic Territory, Tristan da Cunha | Pound Sterling | GBP | two decimal places | 0.1 | x100 |
Georgia | Lari | GEL | two decimal places | 0.1 | x100 |
Ghana | Cedi | GHS | two decimal places | 0.1 | x100 |
Gibraltar | Gibraltar Pound | GIP | two decimal places | 0.1 | x100 |
Gambia | Dalasi | GMD | two decimal places | 0.1 | x100 |
Guinea | Guinea Franc | GNF | Whole number | 1 | x1,whole integer |
Guatemala | Quetzal | GTQ | two decimal places | 0.1 | x100 |
Guyana | Guyana Dollar | GYD | two decimal places | 0.1 | x100 |
Hong Kong | Hong Kong Dollar | HKD | two decimal places | 0.1 | x100 |
Honduras | Lempira | HNL | two decimal places | 0.1 | x100 |
Croatia | Croatian Kuna | HRK | two decimal places | 0.1 | x100 |
Haiti | Gourde | HTG | two decimal places | 0.1 | x100 |
Hungary | Forint | HUF | two decimal places | 0.1 | x100 |
Indonesia | Rupiah | IDR | two decimal places | 0.1 | x100 |
Israel | New Israeli Sheqel | ILS | two decimal places | 0.1 | x100 |
India | Indian Rupee | INR | two decimal places | 0.1 | x100 |
Iraq | Iraqi Dinar | IQD | three decimal places | 0.1 | x 1000,and the last digit must be zero |
Iran | Iranian Rial | IRR | two decimal places | 0.1 | x100 |
Iceland | Iceland Krona | ISK | Whole point | 1 | x1,whole integer |
Jamaica | Jamaican Dollar | JMD | two decimal places | 0.1 | x100 |
Jordan | Jordanian Dinar | JOD | three decimal places | 0.1 | x1000,and the last digit must be zero |
Japan | Yen | JPY | Whole number | 1 | x1,whole integer |
Kenya | Kenyan Shilling | KES | two decimal places | 0.1 | x100 |
Kyrgyz Republic | Som | KGS | two decimal places | 0.1 | x100 |
Cambodia | Riel | KHR | two decimal places | 0.1 | x100 |
Comoros | Comoro Franc | KMF | Whole number | 1 | x 1,whole integer |
North Korea | North Korean Won | KPW | two decimal places | 0.1 | x100 |
South Korea | Won | KRW | Whole number | 1 | x1,whole integer |
Kuwait | Kuwaiti Dinar | KWD | three decimal places | 0.1 | x1000,and the last digit must be zero |
Cayman Islands | Cayman Islands Dollar | KYD | two decimal places | 0.1 | x100 |
Kazakhstan | Tenge | KZT | two decimal places | 0.1 | x100 |
Laos | Kip | LAK | two decimal places | 0.1 | x100 |
Lebanon | Lebanese Pound | LBP | two decimal places | 0.1 | x100 |
Sri Lanka | Sri Lanka Rupee | LKR | two decimal places | 0.1 | x100 |
Liberia | Liberian Dollar | LRD | two decimal places | 0.1 | x100 |
Lesotho | Loti | LSL | two decimal places | 0.1 | x100 |
Lithuania | Lithuanian Litas | LTL | two decimal places | 0.1 | x100 |
Latvia | Latvian Lats | LVL | two decimal places | 0.1 | x100 |
Libya | Libyan Dinar | LYD | three decimal places | 0.1 | x1000,and the last digit must be zero |
Morocco | Moroccan Dirham | MAD | two decimal places | 0.1 | x100 |
Moldova | Moldovan Leu | MDL | two decimal places | 0.1 | x100 |
Madagascar | Malagasy Ariary | MGA | two decimal places | 0.1 | x100 |
North Macedonia | Denar | MKD | two decimal places | 0.1 | x100 |
Myanmar | Kyat | MMK | two decimal places | 0.1 | x100 |
Mongolia | Tugrik | MNT | two decimal places | 0.1 | x100 |
Macau | Pataca | MOP | two decimal places | 0.1 | x100 |
Mauritania | Ouguiya | MRU | two decimal places | 0.1 | x100 |
Mauritius | Mauritius Rupee | MUR | two decimal places | 0.1 | x100 |
Maldives | Rufiyaa | MVR | two decimal places | 0.1 | x100 |
Malawi | Kwacha | MWK | two decimal places | 0.1 | x100 |
Mexico | Mexican Peso | MXN | two decimal places | 0.1 | x100 |
Mexico | Mexican Unidad de Inversion | MXV | two decimal places | 0.1 | x100 |
Malaysia | Malaysian Ringgit | MYR | two decimal places | 0.1 | x100 |
Mozambique | Metical | MZN | two decimal places | 0.1 | x100 |
Namibia | Namibia Dollar | NAD | two decimal places | 0.1 | x100 |
Nigeria | Naira | NGN | two decimal places | 0.1 | x100 |
Nicaragua | Cordoba Oro | NIO | two decimal places | 0.1 | x100 |
Norway | Norwegian Krone | NOK | two decimal places | 0.1 | x100 |
Nepal | Nepalese Rupee | NPR | two decimal places | 0.1 | x100 |
New Zealand | New Zealand Dollar | NZD | two decimal places | 0.1 | x100 |
Oman | Rial Omani | OMR | three decimal places | 0.1 | x1000,and the last digit must be zero |
Panama | Balboa | PAB | two decimal places | 0.1 | x100 |
Peru | Nuevo Sol | PEN | two decimal places | 0.1 | x100 |
Papua New Guinea | Kina | PGK | two decimal places | 0.1 | x100 |
Philippines | Philippine Peso | PHP | two decimal places | 0.1 | x100 |
Pakistan | Pakistan Rupee | PKR | two decimal places | 0.1 | x100 |
Poland | Zloty | PLN | two decimal places | 0.1 | x100 |
Paraguay | Guarani | PYG | Whole number | 1 | x1,whole integer |
State of Qatar | Qatari Rial | QAR | two decimal places | 0.1 | x100 |
Romania | New Ley | RON | two decimal places | 0.1 | x100 |
Serbia | New Serbian Dinar | RSD | two decimal places | 0.1 | x100 |
Russia | Russian Ruble | RUB | two decimal places | 0.1 | x100 |
Rwanda | Rwanda Franc | RWF | Whole number | 1 | x1,whole integer |
Saudi Arabia | Saudi Riyal | SAR | two decimal places | 0.1 | x100 |
Solomon Islands | Solomon Islans Dollar | SBD | two decimal places | 0.1 | x100 |
Seychelles | Seychelles Rupee | SCR | two decimal places | 0.1 | x100 |
Republic of the Sudan | New Sudanese Pound | SDG | two decimal places | 0.1 | x100 |
Republic of South Sudan | South Sudanese pound | SSP | two decimal places | 0.1 | x100 |
Sweden | Swedish Krona | SEK | two decimal places | 0.1 | x100 |
Singapore | Singapore Dollar | SGD | two decimal places | 0.1 | x100 |
Saint Helena and Ascension | Saint Helena Pound | SHP | two decimal places | 0.1 | x100 |
Sierra Leone | Leone | SLL | two decimal places | 0.1 | x100 |
Somalia | Somali Shilling | SOS | two decimal places | 0.1 | x100 |
Suriname | Surinamese Dollar | SRD | two decimal places | 0.1 | x100 |
São Tomé and Príncipe | Dobra | STN | two decimal places | 0.1 | x100 |
El Salvador | El Salvador Colon | SVC | two decimal places | 0.1 | x100 |
Syria | Syrian Pound | SYP | two decimal places | 0.1 | x100 |
Eswatini | Lilangeni | SZL | two decimal places | 0.1 | x100 |
Thailand | Baht | THB | two decimal places | 0.1 | x100 |
Tajikistan | Somoni | TJS | two decimal places | 0.1 | x100 |
Turkmenistan | Manat | TMT | two decimal places | 0.1 | x100 |
Tunisia | Tunisian Dinar | TND | three decimal places | 0.1 | x1000,and the last digit must be zero |
Tonga | Paanga | TOP | two decimal places | 0.1 | x100 |
Turkey | Turkish Lira | TRY | two decimal places | 0.1 | x100 |
Trinidad and Tobago | Trinidad and Tobago Dollar | TTD | two decimal places | 0.1 | x100 |
Republic of China (Taiwan) | New Taiwan Dollar | TWD | two decimal places | 0.1 | x100 |
Tanzania | Tanzanian Shilling | TZS | two decimal places | 0.1 | x100 |
Ukraine | Hryvnia | UAH | two decimal places | 0.1 | x100 |
Uganda | Uganda Shilling | UGX | Whole number | 1 | x1,whole integer |
United States | US Dollar | USD | two decimal places | 0.1 | x100 |
Uruguay | Peso Uruguayo | UYU | two decimal places | 0.1 | x100 |
Uzbekistan | Uzbekistan Sum | UZS | two decimal places | 0.1 | x100 |
Bolivar | Bolivar Fuerte | VES | two decimal places | 0.1 | x100 |
Bolivar | Venezuela Bolivar Fuerte | VEF | two decimal places | 0.1 | x100 |
Vietnam | Dong | VND | Whole number | 1 | x1,whole integer |
Vanuatu | Vatu | VUV | Whole number | 1 | x1,whole integer |
Samoa | Tala | WST | two decimal places | 0.1 | x100 |
Cameroon, Central African Republic, Chad, Republic of the Congo, Equatorial Guinea, Gabon | CFA Franc BEAC | XAF | Whole number | 1 | x1,whole integer |
East Caribbean | East Caribbean Dollar | XCD | two decimal places | 0.1 | x100 |
Benin, Burkina Faso, Guinea-Bissau, Ivory Coast, Mali, Niger, Senegal, Togo | CFA Franc BCEAO | XOF | Whole number | 1 | x1,whole integer |
French Polynesia, New Caledonia, Wallis and Futuna | CFP Franc | XPF | Whole number | 1 | x1,whole integer |
Yemen | Yemeni Rial | YER | two decimal places | 0.1 | x100 |
South Africa | Rand | ZAR | two decimal places | 0.1 | x100 |
Zambia | Zambian Kwacha | ZMW | two decimal places | 0.1 | x100 |
Zimbabwe | Zimbabwe Dollar | ZWL | two decimal places | 0.1 | x100 |