International Card (INTERNATIONAL_CARD)
This section describes the methodCode and methodData requirements for card payments.
createAndPay request example (full)
json
{
"merchantOrderNo": "M202412220001",
"amount": "100",
"currency": "USD",
"productName": "Integration Test Product",
"productDesc": "Full flow integration test",
"remark": "Step 2: Create And Pay",
"methodCode": "INTERNATIONAL_CARD",
"billingAddress": {
"country": "US",
"state": "CA",
"city": "San Francisco",
"addressLine1": "123 Test Street",
"postalCode": "94102"
},
"methodData": {
"cardNumber": "4242424242424242",
"expiryMonth": "12",
"expiryYear": "27",
"securityCode": "123",
"holderName": "Test Visa"
}
}Java Map example:
java
Map<String, Object> requestBody = Map.ofEntries(
Map.entry("merchantOrderNo", merchantOrderNo),
Map.entry("amount", "100"),
Map.entry("currency", "USD"),
Map.entry("productName", "Integration Test Product"),
Map.entry("productDesc", "Full flow integration test"),
Map.entry("remark", "Step 2: Create And Pay"),
Map.entry("methodCode", "INTERNATIONAL_CARD"),
Map.entry("billingAddress", Map.of(
"country", "US",
"state", "CA",
"city", "San Francisco",
"addressLine1", "123 Test Street",
"postalCode", "94102"
)),
Map.entry("methodData", Map.of(
"cardNumber", "4242424242424242",
"expiryMonth", "12",
"expiryYear", "27",
"securityCode", "123",
"holderName", "Test Visa"
))
);Request fields (top-level)
Required
| Field | Description |
|---|---|
merchantOrderNo | Merchant order number (idempotent) |
amount | Order amount, minimum 0.01 |
currency | Currency |
methodCode | Payment method code (INTERNATIONAL_CARD) |
methodData | Payment method data (see below) |
Optional
| Field | Description |
|---|---|
productName | Product name |
productDesc | Product description |
billingAddress | Billing address (see Address Structure) |
shippingAddress | Shipping address (see Address Structure) |
remark | Remark |
returnUrl | Sync redirect URL (lower priority than merchant config) |
extParams | Extended parameters (JSON) |
lineItems | Order line items (see LineItem Structure) |
Method code
methodCode:INTERNATIONAL_CARD
Address Structure (billingAddress / shippingAddress)
| Field | Required | Description |
|---|---|---|
country | No | Country (ISO-3166-1 alpha-2, e.g., US / GB / CN) |
state | No | State or province (US: CA / NY, CA: ON / BC) |
city | No | City |
postalCode | No | Postal code |
addressLine1 | No | Address line 1 (street number + street name) |
addressLine2 | No | Address line 2 (floor / room / unit, optional) |
name | No | Recipient or cardholder name |
Example:
json
{
"country": "US",
"state": "CA",
"city": "San Francisco",
"postalCode": "94102",
"addressLine1": "123 Test Street",
"addressLine2": "Suite 5F",
"name": "Test Visa"
}LineItem Structure
| Field | Required | Description |
|---|---|---|
name | No | Product name |
quantity | No | Quantity |
sku | No | SKU |
unitPrice | No | Unit price (minor units) |
totalAmount | No | Total amount (minor units) |
taxAmount | No | Tax amount (minor units) |
taxPercentage | No | Tax rate (percentage * 100) |
Example:
json
{
"name": "T-shirt",
"quantity": 2,
"sku": "TSHIRT-RED-M",
"unitPrice": 2500,
"totalAmount": 5000,
"taxAmount": 300,
"taxPercentage": 600
}methodData fields
The createAndPay API uses plaintext card fields and does not require encrypted fields. Encrypted fields are only for hosted checkout.
Plaintext card fields (required for createAndPay)
| Field | Required | Description |
|---|---|---|
cardNumber | Yes | Card number (plaintext) |
expiryMonth | Yes | Expiry month (plaintext) |
expiryYear | Yes | Expiry year (plaintext) |
securityCode | Yes | Security code (CVV/CVC) |
createAndPay uses plaintext card fields; hosted checkout only accepts encrypted fields.
Optional fields
| Field | Required | Description |
|---|---|---|
holderName | No | Cardholder name |
statementDescriptor | No | Statement descriptor |
captureMethod | No | Capture method: auto_capture / manual |
threeDsMode | No | 3DS mode: required / optional / disabled |
enabledOneClick | No | Enable one-click payment |
shopperReference | No | Unique shopper reference (for one-click) |
payToken | No | Pay token (for one-click) |
methodData example
Plaintext card example:
json
{
"cardNumber": "4111111111111111",
"expiryMonth": "12",
"expiryYear": "27",
"securityCode": "123",
"holderName": "Test Visa"
}