Sandbox Cards
Runtime sandbox kart allowlist'i, doğrulama kuralları, 3DS davranışı ve production sınırları.
Sandbox kartları gerçek ödeme aracı değildir. HSRC Pay içinde sandbox provider'ın gönderilen kart verisinin bilinen sandbox test verisi olup olmadığını doğrulamak için kullandığı runtime allowlist'tir.
Önemli sınır: sandbox kartları insufficient funds, invalid account, stolen card, expired card, issuer unavailable veya risk/fraud gibi spesifik issuer hatalarını simüle etmez. Sandbox kartı sadece sandbox kartıdır.
Sandbox Kartları Ne Yapar?
| Alan | Runtime davranışı |
|---|---|
| Kart allowlist'i | Card payment method, SandboxCards içindeki bir kayıtla eşleşmelidir. |
| PAN eşleşmesi | Rakam olmayan ayırıcılar temizlenir. |
| Son kullanma eşleşmesi | month ve year normalize edilir. |
| CVV eşleşmesi | cvv veya cvc gönderildiyse allowlist kaydıyla birebir eşleşmelidir. |
| Saved card akışı | CVV yoksa sandbox doğrulaması PAN + son kullanma ile yapılır. |
| 3DS davranışı | secure_mode: true, geçerli sandbox kartı için requires_action döndürür. |
| Direkt ödeme | secure_mode: false, geçerli sandbox kartı için success döndürür. |
| Geçersiz kart verisi | Allowlist dışında kalan kart verisi Invalid sandbox test card mesajıyla invalid_payment_method döndürür. |
Sandbox Kartları Ne Yapmaz?
Sandbox kart numaraları senaryo switch'i değildir. Belirli bir PAN'ı belirli bir issuer decline veya provider failure ile eşleştirmeyin.
Açık hata simülasyonu için provider/sandbox scenario configuration kullanılır. Felix sandbox adapter'da bu davranış expectedSandboxErr üzerinden çalışır; kart numarasından bağımsızdır. Akış kart doğrulaması gerektiriyorsa kart verisi yine geçerli bir sandbox kartı olmalıdır.
Kart Doğrulama Mantığı
Sandbox provider kart verisini sadece card payment method için doğrular:
pansadece rakamlara indirgenir.monthiki haneye normalize edilir.yearson iki haneye normalize edilir.cvvveyacvcvarsa sadece rakamlara indirgenir ve birebir eşleştirilir.- Kart allowlist içinde bulunamazsa provider
invalid_payment_methoddöndürür.
3DS Davranışı
3DS, özel bir kart numarası seçilerek değil ödeme konfigürasyonu ile kontrol edilir:
| Koşul | Sonuç |
|---|---|
Geçerli sandbox kartı + secure_mode: false | kind: "success" |
Geçerli sandbox kartı + secure_mode: true | kind: "requires_action" |
| Sandbox 3DS aksiyonundan sonra resume | kind: "success" |
| Eksik veya allowlist dışı kart | declined invalid_payment_method içeren kind: "error" |
Sandbox Kart Listesi
Bu kartları sadece sandbox ortamında kullanın. Bunlar dummy test verisidir ve yalnızca sandbox provider allowlist'i tarafından kabul edilir.
| Şema | PAN | Son kullanma | CVV/CVC | Kart sahibi |
|---|---|---|---|---|
| Visa | 4991001823456701 | 05/28 | 123 | James Smith |
| American Express | 379103823456701 | 11/29 | 1234 | Robert Johnson |
| MasterCard | 5991029876543210 | 08/30 | 456 | Maria Garcia |
| Discover | 6091041122334455 | 03/27 | 789 | David Miller |
| Diners Club | 30950012345678 | 12/28 | 999 | Richard Davis |
| UnionPay | 6295018765432109 | 01/31 | 888 | Wei Zhang |
| Visa | 4111115566778899 | 07/29 | 111 | Mary Wilson |
| American Express | 371114556677889 | 09/30 | 2222 | Charles Moore |
| MasterCard | 5111134433221100 | 06/27 | 333 | Patricia Taylor |
| Discover | 6011159988776655 | 02/28 | 444 | Jennifer Anderson |
| Visa | 4992001234567890 | 10/31 | 555 | Ahmet Yılmaz |
| Troy | 9792049876543211 | 04/29 | 666 | Mehmet Demir |
| MasterCard | 5992021122334455 | 01/28 | 777 | Ayşe Kaya |
| MasterCard | 5359525566778899 | 05/30 | 888 | Fatma Çelik |
| Visa | 4059509988776655 | 09/27 | 999 | Mustafa Şahin |
| Visa | 4080801234567890 | 12/28 | 000 | Zeynep Yıldız |
| MasterCard | 5080829876543210 | 03/29 | 101 | Emre Öztürk |
| Visa | 4090001122334455 | 08/31 | 202 | Burak Aydın |
| MasterCard | 5090025566778899 | 06/30 | 303 | Selin Arslan |
| Visa | 4992014433221100 | 11/27 | 404 | Can Doğan |
| Visa | 4993001234567890 | 02/28 | 505 | Harry Evans |
| MasterCard | 5993029876543210 | 07/29 | 606 | Oliver Brown |
| American Express | 379304123456789 | 04/30 | 7070 | Jack Wilson |
| MasterCard | 5994005566778899 | 10/31 | 808 | Hans Muller |
| Visa | 4994021122334455 | 01/27 | 909 | Klaus Schmidt |
| MasterCard | 5222204433221100 | 05/28 | 010 | Lars Jensen |
| Visa | 4333309988776655 | 09/29 | 121 | Sophie Thompson |
| MasterCard | 5333321234567890 | 12/30 | 232 | Emma White |
| MasterCard | 5100609876543210 | 03/27 | 343 | Jan De Vries |
| Visa | 4100625566778899 | 08/31 | 454 | Anna Bakker |
| Visa | 4500701122334455 | 06/28 | 565 | Li Wei |
| UnionPay | 6200714433221100 | 11/29 | 676 | Wang Fang |
| MasterCard | 5500739988776655 | 02/30 | 787 | Tan Min |
| Visa | 4223301234567890 | 05/27 | 898 | Hiroshi Tanaka |
| JCB | 3523319876543210 | 09/31 | 909 | Kenji Sato |
| MasterCard | 5223325566778899 | 01/28 | 010 | Yuki Suzuki |
| Visa | 4431101122334455 | 04/29 | 121 | Kim Min-jun |
| MasterCard | 5431124433221100 | 07/30 | 232 | Park Ji-woo |
| Visa | 4820009988776655 | 12/27 | 343 | Lucas Smith |
| MasterCard | 5820021234567890 | 03/31 | 454 | Chloe Wilson |
| Visa | 4612209876543210 | 08/28 | 565 | Pedro Silva |
| MasterCard | 5612225566778899 | 11/29 | 676 | Ana Santos |
| Visa | 4324401122334455 | 02/30 | 787 | Jose Hernandez |
| MasterCard | 5324424433221100 | 06/27 | 898 | Maria Lopez |
| Visa | 4532209988776655 | 09/31 | 909 | Juan Martinez |
| MasterCard | 5532221234567890 | 01/28 | 010 | Camila Gonzalez |
| Visa | 4349909876543210 | 05/29 | 121 | Carlos Rodriguez |
| MasterCard | 5349925566778899 | 10/30 | 232 | Valentina Perez |
| Visa | 4248801122334455 | 03/27 | 343 | Diego Sanchez |
| MasterCard | 5248824433221100 | 07/31 | 454 | Sofia Ramirez |
| Visa | 4719909988776655 | 12/28 | 565 | Mohammed Al-Fayed |
| MasterCard | 5719921234567890 | 04/29 | 676 | Fatima Al-Sayed |
| Visa | 4835509876543210 | 08/30 | 787 | Ahmed Hassan |
| MasterCard | 5835525566778899 | 11/27 | 898 | Amina Ali |
| Visa | 4339901122334455 | 02/28 | 909 | Omar Khaled |
| MasterCard | 5339924433221100 | 06/31 | 010 | Layla Mahmoud |
| Visa | 4826609988776655 | 09/29 | 121 | Thabo Mbeki |
| MasterCard | 5826621234567890 | 01/30 | 232 | Nandi Zulu |
| Visa | 4719919876543210 | 05/27 | 343 | Yousef Abdullah |
| MasterCard | 5835535566778899 | 10/28 | 454 | Zahra Ibrahim |
| Visa | 4416601122334455 | 03/29 | 565 | Alessandro Rossi |
| MasterCard | 5416624433221100 | 07/30 | 676 | Giulia Bianchi |
| Visa | 4128809988776655 | 12/27 | 787 | Antonio Garcia |
| MasterCard | 5128821234567890 | 04/31 | 898 | Carmen Martinez |
| Visa | 4936609876543210 | 08/28 | 909 | Joao Silva |
| MasterCard | 5936625566778899 | 11/29 | 010 | Maria Santos |
| Visa | 4122201122334455 | 02/30 | 121 | Pierre Dubois |
| MasterCard | 5122224433221100 | 06/27 | 232 | Sophie Martin |
| Visa | 4416619988776655 | 09/31 | 343 | Marco Bernardi |
| MasterCard | 5128831234567890 | 01/28 | 454 | Isabella Ricci |
| MasterCard | 5315509876543210 | 05/29 | 565 | Jakub Kowalski |
| Visa | 4315525566778899 | 10/30 | 676 | Julia Wisniewska |
| Visa | 4229901122334455 | 03/27 | 787 | Ivan Petrov |
| MasterCard | 5229924433221100 | 07/28 | 898 | Elena Sokolova |
| Visa | 4845509988776655 | 12/31 | 909 | Andrei Popa |
| MasterCard | 5845521234567890 | 04/29 | 010 | Maria Radu |
| Visa | 4147709876543210 | 08/30 | 121 | Jan Novak |
| MasterCard | 5147725566778899 | 11/27 | 232 | Eva Svoboda |
| Visa | 4315531122334455 | 02/28 | 343 | Piotr Zielinski |
| MasterCard | 5229934433221100 | 06/29 | 454 | Olga Smirnova |
| MasterCard | 5511109988776655 | 09/30 | 565 | Erik Andersson |
| Visa | 4511121234567890 | 01/31 | 676 | Anna Johansson |
| Visa | 4643309876543210 | 05/27 | 787 | Ole Hansen |
| MasterCard | 5643325566778899 | 10/28 | 898 | Ingrid Olsen |
| Visa | 4542201122334455 | 03/29 | 909 | Peter Nielsen |
| MasterCard | 5542224433221100 | 07/30 | 010 | Karen Jensen |
| Visa | 4744409988776655 | 12/31 | 121 | Matti Korhonen |
| MasterCard | 5744421234567890 | 04/27 | 232 | Sari Virtanen |
| Visa | 4517709876543210 | 08/28 | 343 | Michael Tremblay |
| MasterCard | 5517725566778899 | 11/29 | 454 | Nicole Roy |
| American Express | 372550123456789 | 02/30 | 1234 | William Brown |
| Diners Club | 30500298765432 | 06/31 | 565 | Elizabeth Taylor |
| Visa | 4725521122334455 | 09/27 | 676 | Thomas Moore |
| MasterCard | 5725534433221100 | 01/28 | 787 | Sarah Jackson |
| Discover | 6025549988776655 | 05/29 | 898 | Christopher Harris |
| American Express | 371333123456789 | 10/30 | 9090 | Jessica Martin |
| Visa | 4001009876543210 | 03/31 | 010 | Daniel White |
| MasterCard | 5001035566778899 | 07/27 | 121 | Nancy King |
| Visa | 4991011122334455 | 11/28 | 232 | Matthew Scott |
| MasterCard | 5995024433221100 | 02/29 | 343 | Laura Green |
Örnek Kullanım
const { data } = await api.post(`/v1/payments/${paymentId}/confirm`, {
payment_method: {
type: "card",
data: {
pan: "4991001823456701",
month: "05",
year: "28",
cvv: "123",
},
},
payer_identity: { ip_address: clientIp, user_agent: ua },
});
if (data.payment.status === "REQUIRES_ACTION") {
redirectUser(data.confirmResult.paymentNextAction?.url);
}Production Sınırı
Sandbox kartları production credential veya production provider route ile kullanılmamalıdır. Production kart davranışı gerçek provider/card network cevabından gelir; bu sandbox allowlist tarafından kontrol edilmez.
Sık Yapılan Hatalar
- Sandbox kart numaralarını issuer error trigger'ı gibi ele almak.
- Bir PAN'ın insufficient funds, invalid account, stolen card, expired card veya issuer unavailable simüle etmesini beklemek.
- Sadece
successtest edipsecure_mode: trueakışını atlamak. - Sandbox kartlarını production'a göndermek.
- Production kart verisini sandbox'a göndermek.
- Kullanıcı UI'ını normalized error yerine raw provider string'lerine göre tasarlamak.