In test mode, POST /v1/terminal/readers with registration_code=simulated-wpe (for a simulated WisePOS E) and a location to create a simulated reader; no physical device is needed
Use the simulated reader id in place of a real reader id for all Terminal API calls including process_payment_intent and collect_inputs
To simulate specific card outcomes, call POST /v1/test_helpers/terminal/readers/<reader_id>/present_payment_method with type=card and optionally card.number set to a Stripe test card number to trigger specific decline or 3DS scenarios
After presenting the payment method via the test helper, the simulated reader processes the payment as if a real card was tapped; the PaymentIntent transitions normally
Check Stripe test card numbers for card_present type in the Stripe documentation; not all test card numbers work for Terminal; card_present-specific test numbers are separate from online card test numbers
Known gotchas
Simulated readers only exist in test mode; they cannot be used in live mode and will not appear in live mode API calls
The simulated reader does not simulate all hardware behaviors such as offline mode or reader firmware updates; some integration paths require physical hardware for full testing
present_payment_method test helper calls are rate-limited; in load testing scenarios throttle your calls to avoid hitting limits
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp