Test Payment Scenarios
Use sandbox mode to drive a payment into each terminal state and confirm your fulfilment logic branches correctly — no blockchain, no real crypto.
Drive each outcome
Create a isSandbox: true payment, then trigger an outcome from the checkout's simulation buttons or the sandbox/simulate endpoint:
curl -X POST https://api-staging.finomesh.com/api/v1/public/payments/{paymentId}/sandbox/simulate \
-H "Content-Type: application/json" \
-d '{ "outcome": "acceptable", "offerId": "{offerId}" }'
outcome | Resulting status | What your server should do |
|---|---|---|
success | SUCCESS | Fulfil after verify. |
acceptable | ACCEPTABLE | Fulfil after verify. |
mismatch | MISMATCH | Hold for manual review (check deviationUsd). |
expire | EXPIRED | Cancel the order. |
What to assert
- Each outcome fires the callback (three paid outcomes) and the signed webhook (all four).
- Your handler fulfils only on a verified
SUCCESS/ACCEPTABLE. -
MISMATCHholds for review;EXPIREDcancels. - Every money value is parsed as a decimal string, never a float.