Test mode (sandbox)
Each module is either in test mode or in production; you choose it in your merchant panel → Sites → module. New modules start in test mode.
- In test mode the paymentbox uses a simulator: you choose approve or reject, no money is charged and no real payment is recorded (no balance, no commissions).
- The webhook is still sent, with "sandbox": true and the header X-Epayouts-Sandbox: 1, so you can test your integration end to end.
- The API answers "sandbox": true when creating the payment, and test payments are listed with GET /v2/payments?sandbox=true or by id.
- In test mode the site does not need to be verified; to go live, it does.
- Test payments cannot be refunded (409 payment_not_refundable).
Example: test payment notification
When you approve the payment in the simulator, your notification URL receives this (if you decline it, it arrives the same with "event": "payment.failed" and "status": "failed"). It is the same format as a real payment; the differences are "sandbox": true and the X-Epayouts-Sandbox header. The signature is verified the same way, with the same key.
POST /tu-url-de-notificacion HTTP/1.1
Content-Type: application/json
X-Epayouts-Event: payment.completed
X-Epayouts-Delivery: 5821
X-Epayouts-Signature: t=1790416800,v1=9c1f0e7a2b…
X-Epayouts-Sandbox: 1{
"event": "payment.completed",
"sandbox": true,
"code": "b7e1c2d3-4f5a-4b6c-9d8e-7f6a5b4c3d2e",
"ucode": "TEST-1001",
"method": "ppal",
"effective_method": "ppal",
"amount": "10.00",
"currency": "EUR",
"status": "completed",
"created_at": "2026-09-30T10:00:00+00:00"
}Your system must always check "sandbox": with true, record the result for your tests but never mark a real order as paid.