Sandbox & Testing
The Strictly API uses a single shared environment for both sandbox and production โ the sandbox behavior is controlled by the credentials you use. Sandbox credentials process test transactions that never touch real money.
Sandbox credentials
Use these demo credentials to test your integration:
| Field | Value |
|---|---|
integration@strictlyzero.com | |
| Password | demo123* |
| Key-hash | BL2H6LGNEUGSXTBARA59 |
| Base URL | https://api.paywithzero.net/v1 |
:::tip No approval needed
You can start testing immediately โ no account setup or approval is required to use the sandbox credentials.
:::
Test payment token
The recommended sandbox approach is to use a test payment token instead of raw card numbers.
Tokenize a card first (or use the pre-built test token below) and pass it as card.paymentToken in charge requests.
| Field | Value |
|---|---|
Test paymentToken | 00000000-000000-000000-000000000000 |
This token simulates a successful card charge in sandbox. Pass it as card.paymentToken in your charge request.
:::tip Triggering a decline
To simulate a declined transaction, set amount to less than 1.00 (e.g. 0.50).
:::
Test card numbers
If you prefer to use raw card numbers (e.g. for the /tokenize endpoint), these test values work in sandbox:
| Card number | Result |
|---|---|
4111 1111 1111 1111 | Approved |
4000 0000 0000 0002 | Declined |
4000 0000 0000 9995 | Insufficient funds |
4000 0000 0000 0069 | Expired card |
For all test cards:
- Use any future expiration date (e.g.
12/26) - Use any 3-digit CVV (e.g.
123) - Use any billing ZIP code
Test ACH
For ACH (bank transfer) testing, use any routing and account numbers. Test transactions are processed in sandbox mode and do not initiate real transfers.
:::note ACH refund delay
ACH refunds take 3โ6 minutes to process before the status updates, even in sandbox. ACH refunds must also be for the exact original amount โ partial refunds are not supported.
:::
What differs in sandbox
- No real money moves โ all transactions are simulated
- Emails are suppressed โ invoice and payment request emails are not delivered to recipients
- Webhooks fire normally โ your webhook endpoint will still receive events, so you can test end-to-end flows
- Transaction data is shared โ the sandbox environment is shared across integrations, so do not use real customer data
:::warning Do not use real card numbers in sandbox
Even though the sandbox does not charge cards, never send real payment credentials in test requests.
:::
Simulating webhook events
When you create a payment in sandbox, the corresponding webhook events are fired in real-time (if you have a webhook endpoint configured). This lets you test your full event-handling pipeline without any real transactions.
See Webhooks for how to configure and verify webhook deliveries.
Moving to production
When you're ready to go live:
- Replace the sandbox credentials with your production
email,password, andkey-hash - The base URL stays the same:
https://api.paywithzero.net/v1 - Ensure your server is not logging raw request bodies that include card numbers