Sandbox playground
Interactive console at sandbox.key2pays.com/sandbox/login — fire test transactions and simulate any scenario from the UI.
Before wiring the API into your code, log into the sandbox playground and exercise every scenario by hand. The console is purpose-built for integrators — initiate payments, force specific status transitions, replay webhook deliveries, and walk every failure branch in the cascade without writing a line of code.
Open sandbox.key2pays.com/sandbox/login →How to log in
The login is API-key only — no separate username/password, no email confirmation flow. Paste your sandbox secret key and you're in. Same credential your code will use, so anything you can do in the playground is something your integration can do programmatically.
- Open sandbox.key2pays.com/sandbox/login.
- Paste your sandbox key — the
sk_test_…from your dashboard. Bothpk_test_…andsk_test_…are accepted; secret unlocks every tool, publishable limits you to checkout-only flows. - Hit Enter — the session lasts until you close the tab.
sk_live_… on this page is rejected — production credentials never reach the test console.What the playground lets you do
POST /api/v1/payments using your own sk_test_… — same code path your backend will run.Simulation actions → webhook events
Each click in the playground corresponds to a specific status transition and a precise set of webhook events. These are the same events your handler will receive in production.
| Button | From → to | Webhook event(s) |
|---|---|---|
| Marcar pagada | pending → completed | payment.completed |
| Marcar fallida | pending → failed | payment.failed |
| Expirar | pending → expired | payment.failed |
| Refund | completed → refunded | payment.refunded |
| Chargeback | completed (claim opens) | chargeback.created, claim.opened |
sandbox: true and sandboxAction: "mark_paid" in the payload — your handler can branch on these in test environments and ignore them in production.Recommended day-zero flow
- Register a webhook endpoint pointing at a tool like webhook.site so you can inspect the payloads:
POST /api/v1/webhooks body: { url: "https://webhook.site/...", events: ["*"] } - Log into the playground and fire a test transaction.
- Expand the transaction in the activity feed, click Marcar pagada.
- Watch the deliveries feed: event name, URL, HTTP status from your handler — all live.
- Repeat for failed / expired / refund / chargeback. Verify your handler is idempotent and signature-checks every payload.
- When everything looks right, swap
sk_test_…forsk_live_…in your code. Done.