Pay-in collection
Credit Card region pay-in API (USD / EUR). For paymentMethod values in responses and callbacks, see Payment methods.
Minimal merchant payload
Do not send card number, CVV, expiry, or billing address in this API. Credit card pay-in always returns a hosted cashier paymentUrl; the payer enters card and billing details on the SmilePayZ cashier page.
Request
Request Path:
sandbox:
https://sandbox-gateway.smilepayz.com/v2.0/transaction/pay-in
production:https://gateway.smilepayz.com/v2.0/transaction/pay-in
Header Parameters
| Field | Required | Type | Description |
|---|---|---|---|
Content-Type | M | String | application/json request body. |
X-TIMESTAMP | M | String | Format: yyyy-MM-ddTHH:mm:ss±HH:mm |
X-SIGNATURE | M | String | Signature of JSON body (see product Signature doc). |
X-PARTNER-ID | M | String | Your merchantID |
Body Parameters
| Field | Required | Type | Description |
|---|---|---|---|
orderNo | M | String(32) | Merchant-unique id |
purpose | M | String(64) | Memo to payer |
merchant | M | Object | Wraps merchantId and optional sub-merchant fields. |
merchantId | M | String | Smilepayz merchantId for this call. |
merchantName | O | String | Merchant display name. |
subMerchantId | O | String | Sub-merchant ID. |
subMerchantName | O | String | Name for subMerchantId. |
money | M | Object | Currency plus amount for this transaction. |
currency | M | String | USD (area 40) or EUR (area 41). |
amount | M | Number | Amount (up to 2 decimal places). See Money |
payer | O | Object | Optional payer contact fields (see Payer model). No card fields. |
name | O | String | Payer name if known upfront. |
phone | O | String | Payer phone if known upfront. |
email | O | String | Payer email if known upfront. |
productDetail | O | String(128) | Product or service description. |
expiryPeriod | O | Number | Order expiry in seconds; default 3600. |
redirectUrl | O | String(256) | HTTPS post-pay return URL, max 256 chars. |
callbackUrl | O | String(256) | HTTPS async status URL, max 256 chars. |
Not in pay-in request
The following are collected on the hosted cashier, not in this API: cardNo, cardType, cardCcv, cardExpMonth, cardExpYear, billing address fields (firstName, lastName, country, city, address, state, postcode).
Example Body – Transaction Request:
Content-type: application/json
X-TIMESTAMP: 2020-12-17T10:55:00+07:00
X-SIGNATURE: 7MHd9v5/m9JeqmDZVwWBZUZ5J5...7120QnFEny7Qm7uQR1G0TWCh10fsU6nVxiRoeoQ==
X-PARTNER-ID: 20001
{
"orderNo": "cc-order-202604090001",
"purpose": "Online purchase",
"merchant": {
"merchantId": "20001",
"merchantName": "Smilepayz Demo Store"
},
"money": {
"currency": "USD",
"amount": 100.00
},
"redirectUrl": "https://docs.smilepayz.com/en/",
"callbackUrl": "https://merchant.example.com/callback"
}
{
"orderNo": "cc-order-202604090002",
"purpose": "Subscription fee",
"merchant": {
"merchantId": "20001"
},
"money": {
"currency": "EUR",
"amount": 50.00
},
"redirectUrl": "https://docs.smilepayz.com/en/"
}
Responses
HTTP Request
| Field | Required | Type | Description |
|---|---|---|---|
Content-Type | M | String | application/json request body. |
X-TIMESTAMP | M | String | Format: yyyy-MM-ddTHH:mm:ss±HH:mm |
Body Parameters
| Field | Required | Type | Description |
|---|---|---|---|
code | M | String | 00 success, other values error. |
message | M | String | UTF-8 human-readable result line. |
orderNo | M | String | Merchant-unique id |
tradeNo | O | String | Smilepayz tradeNo for this order. |
merchant | M | Object | Wraps merchantId and optional sub-merchant fields. |
merchantId | M | String | Smilepayz merchantId for this call. |
merchantName | O | String | Merchant display name. |
money | M | Object | Currency plus amount for this transaction. |
currency | M | String | USD or EUR. |
amount | M | Number | Amount (up to 2 decimal places). See Money |
transactionTime | M | String | yyyy-MM-ddTHH:mm:ss±HH:mm |
channel | M | Object | Channel payload. |
paymentMethod | O | String | VISA or MASTERCARD chosen by the payer on the cashier; see Payment methods. |
paymentUrl | M | String | Hosted cashier URL—redirect the payer here to enter card details. |
status | O | String | Typically INIT until the payer completes payment on the cashier. |
Integration
Save tradeNo and open channel.paymentUrl for the payer. Do not expect vaNumber, qrString, or card data in this response.
Content-type: application/json
X-TIMESTAMP: 2020-12-17T10:55:00+07:00
{
"code": "00",
"message": "Successful",
"orderNo": "cc-order-202604090001",
"tradeNo": "111200412406111311517153",
"merchant": {
"merchantId": "20001",
"merchantName": "Smilepayz Demo Store",
"accountNo": "11120001202406101410"
},
"money": {
"currency": "USD",
"amount": 100.00
},
"transactionTime": "2026-04-09T12:00:00+00:00",
"channel": {
"paymentMethod": "VISA",
"paymentUrl": "https://gateway.smilepayz.com/cashier/#/loading?tradeNo=111200412406111311517153"
},
"status": "INIT"
}
Notification/Callback
Callback signature ≠ request signature
Do not verify callback X-SIGNATURE with the request-signing formula. See Callback Signature.
Callback shape matches other pay-in regions. Respond with the string SUCCESS only. money.currency is USD or EUR; paymentMethod is VISA or MASTERCARD.
See Callback guide for signature verification.

