Testing
Integration testing against the production Payment Gateway. There is no separate sandbox with test card numbers.Production environment
Base URL:client_id and client_secret for your production terminal. Contact your Vpay account manager if you need credentials or a dedicated test terminal.
Real transactions
Every successful payment is a real charge to the cardholder and is processed by your acquirer/processor like any live sale.- Use small amounts (for example, the minimum allowed by your business rules or a symbolic amount such as ₡100 / $1) to validate auth, 3DS, callbacks, and status queries.
- Use a real card you control (corporate or personal) and plan for settlement, refunds, or reversals according to your agreement with Vpay and your bank.
- There are no generic test PANs (such as Stripe-style
4242…cards) in this environment.
Test flow checklist
POST /api/public/security/auth— obtain tokenPOST /pay/api/start-paymentorgenerate-payment-linkwith a lowtotalTransactionAmount- Open checkout URL in browser
- Complete payment on the hosted checkout
GET /pay/api/payment/{checkoutSessionId}— verifystate- Confirm redirects to your
callbackSuccessUrl/callbackFailUrlwhen applicable
Swagger
Interactive API exploration is available at https://vpay.didi.cr/swagger.Tips
- Use unique
transactionReferenceNumbervalues per test run to avoidVPAY_001. - Send
X-idoperacionwith a UUID per test for easier log correlation. - Document each test amount and reference so finance can match charges and refunds.
- After validating the flow, void or refund test charges if your processor and policies allow it.

