Testing

Integration testing against the production Payment Gateway. There is no separate sandbox with test card numbers.

Production environment

Base URL:
https://vpay.didi.cr
Use the 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

  1. POST /api/public/security/auth — obtain token
  2. POST /pay/api/start-payment or generate-payment-link with a low totalTransactionAmount
  3. Open checkout URL in browser
  4. Complete payment on the hosted checkout
  5. GET /pay/api/payment/{checkoutSessionId} — verify state
  6. Confirm redirects to your callbackSuccessUrl / callbackFailUrl when applicable

Swagger

Interactive API exploration is available at https://vpay.didi.cr/swagger.

Tips

  • Use unique transactionReferenceNumber values per test run to avoid VPAY_001.
  • Send X-idoperacion with 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.

Getting started