Config
curl uses -u "MID:PSK". Keep the same orderNo / transactionNo when retrying after connection errors.
1. Success Sale Request
Run 1A HOSTED and 1B DIRECT. A unique orderNo is required for every new POST.
- HTTP 409 means the orderNo was already used.
- If transaction creation has a connection error, retry with PUT using the same JSON before creating a new transaction.
2. Success Query Request
3. Success Refund Request
4. Success Refund Transaction Query
5. Success Notify and Query
5A creates a DIRECT sale using your notifyUrl. 5B is the callback body your server should accept and answer with HTTP 200. 5C queries the transaction status using orderId and transactionId.
- notifyUrl must be a valid HTTP or HTTPS URL without userinfo, query, or fragment.
- Your server should return HTTP 200 as early as possible, then query the latest FOMO order or transaction status.
6. Failure Cases
6A validates HTTP 4xx handling. 6B is operational: retry after several minutes if a real 5xx persists. 6C expects HTTP 2xx with order status FAIL.
Live Result
Browser calls may be blocked by CORS. The curl blocks are the safer copy-paste path for sign-off evidence.
Ready.