Skip to content
Documentation menu

Vouchereto API · v1

Hosted redeem widget

The customer already has a voucher. Instead of building a code field, send them to our page: the code never touches your servers, and brute-force protection is handled for you.

Flow

  1. Create a redeem session with the currency, your customer id and a return_url.
  2. Redirect to url (valid 30 minutes). The customer types the code.
  3. We reserve the voucher (and capture it if auto_capture: true) and redirect to return_url?vouchereto_redemption=<id>&status=<reserved|captured>.
  4. Read the redemption with GET /v1/redemptions/{id} (never trust the query string alone), then capture or cancel it like in the direct API guide.
create a redeem session
POST /v1/redeem-sessions
Idempotency-Key: wallet-7720

{ "currency": "USD", "customer_ref": "user_8842", "return_url": "https://shop.example.com/wallet", "auto_capture": false }

201 Created
{
  "id": "5e07fd31-6a4a-47b1-91bb-3c97011252b5",
  "object": "redeem_session",
  "url": "https://pay.vouchereto.com/r/5e07fd31-6a4a-47b1-91bb-3c97011252b5",
  "status": "open",
  "auto_capture": false,
  "livemode": false,
  "expires_at": "2026-10-22T17:53:00.000Z"
}

→ customer returns to
https://shop.example.com/wallet?vouchereto_redemption=f4e8b730-…&status=reserved

auto_capture

auto_capture
ValueUse when
falseYou must do work before the money is final (default, recommended). Capture within the reservation window.
trueCrediting cannot fail on your side. The customer returns with a captured redemption.
The widget opens as a full page redirect today. An embeddable version is planned; it will use the same sessions.

Test it with a code from POST /v1/sandbox/vouchers and a test key.