PayPal Sandbox Test Cards
Official test cards and negative response rejection triggers for PayPal Sandbox, REST APIs, and Advanced Credit and Debit Card Payments testing.
| Scenario / Test Goal | Test Card Number | Expiry | CVV | Expected Result | Verification |
|---|---|---|---|---|---|
| Successful authorization (Visa) | 4012 8888 8888 1881 | Any future date | 123 | Authorization and capture succeed in sandbox environment. | Verified against official source Recorded: 2026-09-16 Verified against the linked official provider documentation on 2026-09-16. |
| Successful payment (Mastercard) | 2223 0000 4840 0011 | Any future date | 123 | Payment completes successfully on Mastercard network. | Verified against official source Recorded: 2026-09-16 Verified against the linked official provider documentation on 2026-09-16. |
| Successful payment (American Express) | 3714 4963 5398 431 | Any future date | 1234 | Payment completes successfully on American Express network. | Verified against official source Recorded: 2026-09-16 Verified against the linked official provider documentation on 2026-09-16. |
| Card Refused (Rejection Trigger) Cardholder Name: CCREJECT-REFUSED | 4012 8888 8888 1881 | Any future date | 123 | Simulates Card refused with processor response code 0500 (DO_NOT_HONOR). Set Cardholder Name to trigger. | Verified against official source Recorded: 2026-09-16 Verified against the linked official provider documentation on 2026-09-16. |
| Card Declined (Rejection Trigger) Cardholder Name: CCREJECT-BANK_ERROR | 4012 8888 8888 1881 | Any future date | 123 | Simulates Card is declined with processor response code 5100 (GENERIC_DECLINE). Set Cardholder Name to trigger. | Verified against official source Recorded: 2026-09-16 Verified against the linked official provider documentation on 2026-09-16. |
| Insufficient Funds (Rejection Trigger) Cardholder Name: CCREJECT-IF | 4012 8888 8888 1881 | Any future date | 123 | Simulates Insufficient funds with processor response code 5120 (INSUFFICIENT_FUNDS). Set Cardholder Name to trigger. | Verified against official source Recorded: 2026-09-16 Verified against the linked official provider documentation on 2026-09-16. |
Using PayPal Test Cards and Rejection Triggers
PayPal Sandbox provides distinct mechanisms for testing payment flows: source-verified test card numbers for successful authorizations, case-sensitive card rejection triggers in checkout fields, and HTTP mock response headers for direct REST API simulation.
1. Configure Sandbox Credentials & Endpoints
Authenticate your integration using sandbox API credentials generated in the PayPal Developer Dashboard. Initialize client SDK buttons or direct REST API requests targeting PayPal's sandbox endpoint (api-m.sandbox.paypal.com).
2. Successful Sandbox Card Testing
Use official sandbox card numbers from the table above for Visa, Mastercard, or American Express. Test transactions require any future expiration date and a valid CVV format (123 for Visa/Mastercard, or 1234 for Amex). These cards simulate successful authorization and capture only in PayPal Sandbox and carry no monetary value or live validity.
3. Card-Level Error Simulation (CCREJECT Triggers)
For PayPal Expanded Checkout and card fields, simulate card-level decline states by entering case-sensitive rejection triggers (such as CCREJECT-*) into the First Name or Name on Card field instead of changing the card number. These card triggers simulate bank-level rejections and produce documented processor response codes.
4. Inspect Capture Status & Processor Codes
When capturing or authorizing an order, inspect the returned API response status and the processor_response object (including response_code) to verify that your application presents appropriate customer error messaging and alternative payment options.
Verified Card Rejection Triggers & Processor Codes
In supported Expanded Checkout flows, use the Visa sandbox test card with the following case-sensitive name triggers to produce documented processor response codes:
- Card Refused Trigger Simulates
DO_NOT_HONOR(processor response code0500). Set cardholder name to the refusal trigger shown in the table to test customer messaging when an issuer refuses authorization. - Card Declined Trigger Simulates
GENERIC_DECLINE(processor response code5100). Set cardholder name to the bank error trigger shown in the table to test generic bank decline handling. - Insufficient Funds Trigger Simulates
INSUFFICIENT_FUNDS(processor response code5120). Set cardholder name to the insufficient funds trigger shown in the table to test low balance alerts and retry prompts.
API-Level Negative Testing (PayPal-Mock-Response)
In addition to card-level rejection triggers, PayPal REST sandbox integrations can simulate API-layer error conditions by supplying a PayPal-Mock-Response request header on supported requests. These test a completely different layer of the integration than checkout cardholder name triggers:
INSTRUMENT_DECLINED Simulates an order capture failure where the payment instrument is declined, allowing you to test buyer redirect and retry handling. TRANSACTION_REFUSED Simulates an immediate transaction refusal returned by the PayPal payment engine during order processing. INTERNAL_SERVER_ERROR Simulates HTTP 500 service unavailability to test application retry policies, logging, and customer fallback messaging. Note on Sandbox Account Settings: Some PayPal sandbox/API negative-testing workflows require negative testing to be enabled for the sandbox business account under account settings in the PayPal Developer Dashboard. However, card-level testing triggers operate as form-level test values in supported checkout flows and do not require the PayPal-Mock-Response header.
Related Payment Testing Tools & Resources
Gateway Sandbox Directory
Browse verified sandbox test cards, decline scenarios, and 3D Secure credentials for all major payment gateways.
Test Card Reference Guide
Understand the difference between synthetic test cards and official gateway sandbox cards.
Credit Card Validator
Validate card length, network prefix schemes, and Modulo 10 Luhn checksums locally.