# Testing

Everything in test mode works end to end and never moves money. Test keys start with `sk_test_` / `pk_test_`; agent tokens with `ak_test_`.

## Cards

| Number | Behaviour |
| --- | --- |
| 4242 4242 4242 4242 | Visa credit, succeeds |
| 4000 0566 5566 5556 | Visa debit, succeeds (no surcharge) |
| 4000 0000 0000 0002 | Declined |

Use any future expiry, any CVC and any ZIP.

## Server-side test tokens

When confirming from your server in tests, pass gateway test tokens instead of card numbers: `pm_card_visa` (credit), `pm_card_visa_debit` (debit), `pm_card_chargeDeclined` (decline), `pm_card_chargeCustomerFail` (saves fine, then declines when charged later; useful for subscription retries).

## Webhooks

`POST /api/v1/webhook_endpoints/:id/test` sends a signed test event to your endpoint and reports the response code.

**Bank payments:** in checkout's bank tab pick **Test Institution** and any account. Test bank payments go to `processing`, then settle within a few minutes. Server-side, `pm_usBankAccount_success` and `pm_usBankAccount_insufficientFunds` are Stripe's test bank tokens (pass a `mandate`).
