Testing
Use the Felloh sandbox environment to test your integration without processing real payments.
The sandbox mirrors the production API but no real money is moved. All test transactions are free and can be created, refunded, and reversed without consequence.
Sandbox environment
The sandbox API is available at https://sandbox.felloh.com. Generate sandbox API keys from the Felloh Sandbox Dashboard and use them exactly as you would production keys.
Sandbox and production use separate API key pairs. Make sure you are using the correct keys for each environment.
Test card numbers
Use the following card numbers in the sandbox to simulate different payment scenarios. These cards work with payment links, ecommerce sessions, and any card-based payment flow.
For all test cards:
- Expiry date: Any future date (e.g.
12/34) - CVC: Any 3 digits for Visa and Mastercard, any 4 digits for American Express
- Cardholder name: Any name
- Address: Any valid address
Successful payments
These cards simulate a successful payment.
| Brand | Number | Type |
|---|---|---|
| Visa | 4242 4242 4242 4242 | Credit |
| Visa | 4000 0566 5566 5556 | Debit |
| Mastercard | 5555 5555 5555 4444 | Credit |
| Mastercard | 5200 8282 8282 8210 | Debit |
| Mastercard | 5105 1051 0510 5100 | Prepaid |
| American Express | 3782 822463 10005 | Credit |
| American Express | 3714 496353 98431 | Credit |
Declined payments
These cards simulate specific decline scenarios. Use them to test your error handling.
| Brand | Number | Decline reason |
|---|---|---|
| Visa | 4000 0000 0000 0002 | Generic decline |
| Visa | 4000 0000 0000 9995 | Insufficient funds |
| Visa | 4000 0000 0000 9987 | Lost card |
| Visa | 4000 0000 0000 9979 | Stolen card |
| Visa | 4000 0000 0000 0069 | Expired card |
| Visa | 4000 0000 0000 0127 | Incorrect CVC |
| Visa | 4000 0000 0000 0119 | Processing error |
| Visa | 4000 0000 0000 6975 | Card velocity exceeded |
Test amounts
Certain amounts can also trigger specific behaviours in the sandbox:
| Amount (GBX) | Behaviour |
|---|---|
| Any valid amount | Successful payment |
0 | Validation error — amount must be greater than zero |
Amounts are always in minor currency units — pence for GBX, cents for USX and EUX. For example, 10000 in GBX equals £100.00.
Testing workflows
Payment links
- Create a payment link via the API or MCP server
- Open the returned URL in a browser
- Enter a test card number from above
- Complete the payment and verify the transaction appears in your dashboard
Scheduled payments
- Create a booking and collect an initial payment using a test card
- Ensure card tokenisation is enabled on the payment
- Retrieve available tokens on the booking
- Create a scheduled payment using the token
- The payment will execute on the scheduled date in sandbox (or can be triggered manually)
Refunds
- Complete a test transaction using a successful test card
- Initiate a refund via the API or MCP server
- Authorise or decline the refund
- Verify the refund status updates correctly
Webhooks
Test webhooks locally by exposing a local endpoint using a tunnelling tool such as ngrok:
Terminal
ngrok http 4242
Then configure the ngrok URL as your webhook endpoint in the Felloh Dashboard.
Going live
When you're ready to move to production:
- Switch your base URL from
https://sandbox.felloh.comtohttps://api.felloh.com - Replace your API keys with production keys from the dashboard
- Remove all test card numbers from your codebase
- Verify webhook endpoints are configured for production
- Test a real transaction with a small amount to confirm everything works end-to-end
