Gift vouchers
Usetix gift vouchers are account-wide stored value. A voucher can pay for tickets across events, keep a remaining balance after checkout, and be combined with other vouchers plus Stripe or PayPal for the remainder.
Vouchers are different from promo codes: a promo code reduces a price according to a campaign rule; a voucher carries a monetary balance that was sold, imported, or issued by an organizer.
Voucher products
Create products under Vouchers → Products. Each product controls what buyers can purchase:
- Fixed amount, such as EUR 25 or EUR 50.
- Bonus credit, for example charge EUR 50 while loading EUR 75 of voucher value.
- Flexible amount, with an organizer-defined minimum and maximum.
- Public, shown in the shop’s voucher catalog.
- Secret, omitted from the catalog but available through its unguessable product URL.
- Validity, expressed in months from issuance.
For a bonus voucher, choose a fixed voucher credit and enter a lower purchase price. “Pay EUR 50, receive EUR 75” therefore creates EUR 75 of redeemable value, records EUR 50 as paid consideration, and reports EUR 25 separately as bonus credit. The purchase price must be positive and lower than the voucher credit. Flexible products cannot use a separate purchase price.
Products can be reordered by dragging them in the product list, then archived and reactivated without changing vouchers already sold or issued. A product image and description appear in the shop; artwork can be replaced in the editor or removed from the product detail page. The account’s normal branding carries through to delivery and the printable voucher. In the built-in assistant, attach an image to the latest message and ask it to use that image for an exact voucher-product ID. Usetix copies the file so later chat cleanup cannot remove live catalog artwork.
Sell and deliver
The public voucher catalog lives at /vouchers on the account’s shop host. The buyer chooses a product and, for flexible products, an amount, then chooses one of three delivery modes before adding it to the persistent shop cart:
- Deliver it myself sends the voucher to the buyer. A recipient name and personal message are optional. This is the normal choice for printing, forwarding, or handing over the gift personally.
- Email it now sends the voucher to the recipient as soon as the payment has been confirmed.
- Schedule the email sends it to the recipient at a future date and time. The send time must precede the voucher’s expiry.
The normal checkout collects buyer details and terms once for the whole order and pays through the account’s connected Stripe or PayPal account. The delivery choice is snapshotted with the commercial line and cannot silently change after checkout.
The same cart can hold tickets from several events and one or more vouchers for different recipients. Product lines describe what was bought; ticket admissions remain separate so a group ticket can still create several scannable admissions. Voucher value cannot be used to buy another gift voucher, and promo codes discount ticket lines rather than the stored value being loaded.
Usetix issues the voucher only after canonical provider confirmation. The selected recipient—buyer or gift recipient—receives an email with a printable PDF and an Apple Wallet pass. The buyer’s order page always keeps access to the voucher, its PDF, its Wallet pass, and a clearly marked bearer link for forwarding. The private voucher URL shows the current code, balance, state, validity, message, and QR code. Payment callbacks and delivery records are idempotent, so retries cannot issue a second voucher or create a second initial delivery.
The Wallet pass is an Apple Wallet store card with the live balance and voucher state. Balance changes update existing passes, and blocked, depleted, or expired vouchers become voided. Usetix deliberately emits one standards-based .pkpass instead of maintaining a second provider-specific Google Wallet object. Loyalty stamps are not part of this voucher release; promotional bonus credit is configured through the product’s purchase price instead.
Redeem at ticket checkout
Buyers enter a voucher code in the normal ticket checkout. Usetix shows only the amount applied to the current cart, not a reusable balance lookup to unauthenticated visitors.
- Up to 10 vouchers can be combined in one order.
- A voucher can be partially redeemed; the remainder stays available.
- When vouchers cover only part of the order, Stripe or PayPal collects the remainder.
- When vouchers cover the complete order, no payment provider is required.
- Applying or removing a voucher recalculates the signed checkout quote before payment.
The balance is first reserved for the pending checkout. Cancelling or abandoning checkout releases that reservation. A completed payment consumes it exactly once.
Usetix collects as much of the configured per-ticket platform fee as the remaining Stripe charge can carry. PayPal uses the organizer’s prepaid service-credit mechanism. For an order fully covered by vouchers there is no provider charge, so Usetix explicitly waives that order’s per-ticket platform fee instead of reporting an uncollected fee as settled.
An organizer-defined custom checkout fee applies to voucher product lines just as it does to other commercial lines. The fee is snapshotted and allocated to the affected order lines; the stored value loaded onto the voucher itself remains exactly the selected voucher amount.
Refunds
Ticket-order refunds restore the voucher-funded portion directly to the vouchers that paid the order. Any remainder is refunded through Stripe or PayPal. Multiple vouchers are restored proportionally and every restoration has an idempotency key, so a retried provider callback cannot credit the balance twice.
If the original voucher expired after the purchase, restoration renews it for its configured product validity (or its original validity period for standalone vouchers), so the refunded value is usable again.
If a purchased voucher itself is fully refunded by Stripe or PayPal, Usetix blocks it, releases active reservations, drains its remaining value through the immutable ledger, and marks the purchase refunded. Partial provider-side refunds are deliberately left for manual review instead of guessing how much voucher value should remain.
Operational edge case: a mixed-payment refund restores its voucher-funded portion before requesting the provider refund. If that provider refund keeps failing, the restored value can temporarily exist before the cancellation document is created. Retrying the failed refund completes the same idempotent workflow; it does not credit the voucher twice.
Operate and audit
The voucher overview reports issued, outstanding, redeemed, currently paid shop-sales value, promotional bonus credit, and blocked counts. Open a voucher to see every ledger entry and linked order; shop-bought vouchers also show buyer, recipient, paid amount, bonus amount, and delivery details for support. Fully refunded shop purchases are excluded from the paid-sales and bonus figures.
- Issue a voucher manually with a securely generated code and optional product, note, and expiration. When a bonus product is selected, its lower purchase price is retained as the voucher’s paid consideration.
- Adjust balance with a credit or debit. An authenticated actor and reason are mandatory.
- Block a compromised voucher with a reason; unblock it only after review.
- Export CSV for reconciliation.
- Import CSV through a preview that validates every row before an asynchronous, all-or-nothing apply step.
Shop purchases show their delivery mode, immutable destination snapshot, schedule, attempts, and latest failure. Failed deliveries and queued or active delivery claims left stale by an interrupted worker can be retried from the voucher detail, the write API, the built-in assistant, MCP, or usetix vouchers retry-delivery. An import left in applying by an interrupted worker likewise becomes safely requeueable after one hour; an actively applying import cannot be started twice.
Ledger entries are immutable. Balance columns cannot be changed through ordinary model updates; issuance, redemption, restoration, expiration, and manual adjustments must all create a matching ledger entry.
CSV format
The accepted columns are:
code,amount,expires_at,note,product_id
PARTNER-2026,25.00,2027-12-31T23:59:59Z,Partner campaign,
amount is required. code is optional; Usetix generates a secure code when it is blank. Custom codes normalize to 12–64 uppercase A–Z/digit characters. product_id is the public product ID and must belong to the same account. The preview catches unknown columns, invalid amounts or dates, duplicate codes, existing codes, foreign products, and amounts outside a product’s configured range. Imports are limited to 5 MiB and 5,000 rows and apply atomically.
Outstanding, non-expired voucher value is treated as a financial liability. Usetix will not permanently erase a cancelled organizer account while that liability or an active voucher reservation remains. Once resolved, the redeemable codes are deleted and a code-free financial snapshot of the ledger is retained under the platform’s billing-retention policy.
Accounting note
Usetix models these as multi-purpose vouchers: selling one creates stored value, while tax is determined when the voucher is redeemed for tickets. For bonus products, paid consideration and promotional credit remain separate throughout the ledger and reporting. Confirm the treatment of bonus and manually granted credit, booking fees, invoice wording, expiration policy, and unredeemed balances with the account’s tax adviser before launch, especially outside Germany or for a catalog with only one tax treatment.
Automation
- The built-in assistant and MCP can create and update voucher products, inspect or remove product artwork, issue and inspect vouchers, inspect delivery attempts, retry failed or stale deliveries, adjust balances, block or unblock codes, and produce a report. Only the authenticated built-in assistant can copy a product image from the latest chat message; external MCP clients cannot upload chat attachments.
- The Admin API exposes products, vouchers, delivery attempts and retries, ledger entries, controls, reports, exports, and import previews.
- The CLI provides typed voucher workflows including
usetix vouchers retry-delivery DELIVERY_ID --yes, plus direct access to every voucher endpoint. - Webhooks emit voucher purchase, issuance, redemption, restoration, adjustment, expiration, and block-state events.