Skip to content
Documentation menu

Vouchereto API · v1

Go-live checklist

When every box below is ticked in the sandbox, tell us. We run the acceptance tests with you (status uat) and then switch your account to live.

Integration

  • All calls are made from your server; no key in a browser, app or repository.
  • Signatures pass for GET (with query string) and POST.
  • Every POST has an idempotency key derived from your own operation id, and retries reuse it.
  • Timeouts, 5xx and 429 are retried with backoff; other 4xx are not.
  • request_id is logged for every error.
  • Customer messages exist for every voucher error (suggested texts).

Redemptions

  • Reserve → capture works, and cancel on your own failure path.
  • A reservation you abandon expires and you handle redemption.expired.
  • Crediting is idempotent on the redemption id (webhook and API response can both arrive).
  • X-Customer-Ip is sent with each reservation.
  • Tested with sandbox vouchers in every state: active, reserved, redeemed, expired, risk_hold, void, plus an unknown code.

Hosted pages (if used)

  • You credit on checkout.completed or after reading the session, never on the return URL alone.
  • Expired and failed sessions are handled.
  • return_url and cancel_url are https pages of your production domain.

Webhooks

  • Signature verified on the raw body with constant-time comparison and a 5-minute tolerance.
  • Duplicates ignored by event id; 2xx returned within 10 seconds.

Switching to live

  1. We move your account to live. Create a vch_live_ key and live webhook endpoints in the portal (live mode).
  2. Deploy the live key and the live whsec_ secrets. Keep test keys in your staging environment.
  3. Make one small real redemption end to end and check it in the portal.

Questions before launch: contact the developer team.