Skip to main content

Callback Notification

About 1 min

Callback Notification

When a pay-in / pay-out reaches a final status, Smilepayz sends an HTTP POST to your URL.

API orders only

Callbacks apply only to orders created via the Pay-in / Pay-out API. Payment Link orders from the merchant portal do not.

Flow: set URL → verify & update order → return SUCCESS.

1. Configure callback URL

  1. Sign in to the Merchant Portalopen in new window. Toggle Sandbox (or Production) at the top.
  2. ConfigurationAPI SettingAPI Notify Address:
    • Payin — pay-in notify URL
    • Withdraw — pay-out notify URL
  3. Click Save.

API Notify Address

Prefer HTTPS (443). Production URL / IP whitelist: Integration Info. Failed deliveries may retry — handle callbacks idempotently.

Prefer `tradeNo` as the idempotency key

Retries keep the same tradeNo. In Mexico (and similar regions), pay-in sub-orders may share the main order’s orderNo but each has its own tradeNouse tradeNo for transaction-level idempotency, not orderNo alone. See Mexico Pay-in · Sub-order transaction & callback.

2. Verify signature (not request signing)

Verify before updating the order. Rules, Platform Public Key, and code samples are on a dedicated page (different from request signing):

See alsoCallback Signature

3. Body & response

JSON body — common fields: orderNo, tradeNo, merchantId, status, money, transactionTime (yyyy-MM-ddTHH:mm:ss, order region timezone). Full fields: regional Pay-in / Pay-out → Notification/Callback.

After verify + persist, HTTP 200 body must be plain text:

SUCCESS

Note

After trim, body must exactly equal SUCCESS. Do not return JSON / HTML, or we retry.

Sandbox test

  1. Create a pay-in via API (paymentMethod must not be empty, e.g. QRIS in Indonesia).
  2. Portal Pay-in OrderOperateSet Callback (success / fail).
  3. Check Callback Status.

Sandbox Set Callback

In Production, final status triggers callbacks automatically — no Set Callback.

Troubleshooting

IssueCheck
No callbackURL saved? Firewall / HTTPS cert
Verify failsSee Callback Signature
Set Callback uselessOrder must be API-created; paymentMethod not empty
Keeps retryingExact SUCCESS after trim?