Sandbox voor nagebootste betaalgateway
Leer hoe een betaal-API antwoordt: simuleer goedkeuringen, weigeringen en 3-D Secure met gepubliceerde testkaarten — volledig offline.
🔒 Educatieve simulator: neemt geen contact op met een bank, kaartnetwerk of betaalprovider. Alleen gepubliceerde testkaartnummers worden geaccepteerd.
Gepubliceerde testkaartnummers
| Kaartnummer | Netwerk | Gesimuleerd resultaat | |
|---|---|---|---|
| 4242 4242 4242 4242 | Visa | Betaling slaagt | |
| 4000 0000 0000 0002 | Visa | Geweigerd: generic_decline | |
| 4000 0000 0000 9995 | Visa | Geweigerd: insufficient_funds | |
| 4000 0000 0000 0069 | Visa | Geweigerd: expired_card | |
| 4000 0000 0000 0127 | Visa | Geweigerd: incorrect_cvc | |
| 4000 0000 0000 0119 | Visa | Fout: processing_error | |
| 4000 0025 0000 3155 | Visa | Vereist 3-D Secure-authenticatie | |
| 5555 5555 5555 4444 | Mastercard | Betaling slaagt | |
| 3782 822463 10005 | American Express | Betaling slaagt |
Zo werkt de betaalflow
Je server maakt een payment intent aan en bevestigt die, de gateway antwoordt met een status en later laat een webhook je backend het eindresultaat weten. Verwerk bestellingen op basis van de webhook, niet op basis van de redirect in de browser.
{
"method": "POST",
"path": "/v1/payment_intents",
"body": {
"amount": 2000,
"currency": "usd",
"confirm": true,
"payment_method_data": {
"type": "card",
"card": {
"number": "4242424242424242",
"exp_month": 12,
"exp_year": 2030,
"cvc": "123"
}
}
}
}{
"id": "pi_test_3kq9x2m7v1c8b5n4z6a0d2f1",
"object": "payment_intent",
"livemode": false,
"amount": 2000,
"currency": "usd",
"status": "succeeded",
"payment_method": {
"type": "card",
"card": {
"brand": "visa",
"last4": "4242",
"exp_month": 12,
"exp_year": 2030
}
},
"latest_charge": {
"id": "ch_test_8h2j4k6l1m3n5p7q9r0s2t4u",
"authorization_code": "T4K2Q9",
"outcome": {
"network_status": "approved_by_network",
"type": "authorized"
}
}
}{
"id": "evt_test_1a2b3c4d5e6f7g8h9i0j1k2l",
"object": "event",
"type": "payment_intent.succeeded",
"livemode": false,
"data": {
"object": {
"id": "pi_test_3kq9x2m7v1c8b5n4z6a0d2f1",
"status": "succeeded",
"amount": 2000,
"currency": "usd"
}
}
}{
"id": "evt_test_9z8y7x6w5v4u3t2s1r0q9p8o",
"object": "event",
"type": "payment_intent.payment_failed",
"livemode": false,
"data": {
"object": {
"id": "pi_test_7f6e5d4c3b2a1z0y9x8w7v6u",
"status": "requires_payment_method",
"last_payment_error": {
"type": "card_error",
"code": "card_declined",
"decline_code": "insufficient_funds",
"message": "Your card has insufficient funds."
}
}
}
}Over de Sandbox voor nagebootste betaalgateway
Met deze sandbox voor een nagebootste betaalgateway leren ontwikkelaars hoe een API voor kaartbetalingen reageert, zonder echt geld aan te raken. Kies een van de gepubliceerde testkaartnummers, vul een vervaldatum in de toekomst, een CVC en een bedrag in en klik op Betaling simuleren. De pagina geeft een JSON-object terug in de vorm van een typische payment intent: een id, een status, het kaartnetwerk en de laatste vier cijfers, een weigeringscode en melding bij mislukkingen en een nep-autorisatiecode bij goedkeuringen. De 3-D Secure-kaart toont een gesimuleerde verificatiestap, zodat je kunt oefenen met het afhandelen van de status requires_action, en elk resultaat bevat het bijbehorende webhook-event. De simulator draait volledig in je browser: hij neemt geen contact op met een bank, kaartnetwerk of betaalprovider en accepteert alleen de gepubliceerde testnummers uit de tabel. Echte kaartnummers worden lokaal geweigerd en nergens naartoe gestuurd.
FAQ
Belast de sandbox een kaart of neemt hij contact op met een bank?
Nee. Alles wordt in je browser gesimuleerd. Er wordt geen verzoek gestuurd naar Visatk, een bank, een kaartnetwerk of een betaalprovider, en er wordt geen geld verplaatst.
Waarom wordt mijn kaartnummer geweigerd?
De sandbox accepteert alleen de gepubliceerde testnummers uit de tabel. Elk ander nummer, ook een echte kaart, wordt lokaal geweigerd, zodat het nooit als goedgekeurd wordt behandeld.
Kan ik deze nummers gebruiken bij mijn echte betaalprovider?
Dit zijn de breed gepubliceerde testnummers die in testmodi van providers worden gebruikt. Ze werken alleen met test-API-sleutels in de sandbox van je provider; in live-modus worden ze altijd geweigerd.