Event Ticket Generator: QR Codes from a Registration List

Published October 15, 2026 by Balaji

Uncategorized

An event ticket generator turns each registration into an image with the attendee’s name, tier, and a scannable code. The render takes one request. The parts that cause trouble at the door are the code payload, duplicate sends, and a validation endpoint that you still have to write.

Flow

  1. Your registration form fires a webhook with attendee JSON.
  2. Your handler sends POST /api/v1/render with name, tier, seat, and the ticket id in a Code layer.
  3. The signed assetUrl goes into the confirmation email.
{
  "template": "<design-id>",
  "format": "png",
  "layers": {
    "name": { "text": "Grace Hopper" },
    "tier": { "text": "General admission" },
    "code": { "text": "TKT-0190a7e2-5b1c" }
  }
}

Pick the code format for the scanner

A Code layer supports qrcode, code128, ean13, and code39. Phone cameras read QR codes. Dedicated door scanners differ in which symbologies they are set up to read, so find out what the venue’s hardware reads before you design the plate, and choose qrcode or code128 to match.

Never send the same ticket twice

POST is not an idempotent method in RFC 9110, so a retried request can create a second job. Make your own ticket id the dedupe key: store it, check it before you render, and use the webhook eventId to ignore repeated render.completed deliveries. If you verify webhook signatures, jsontoimg signs deliveries with X-Render-Signature, an HMAC-SHA256 of the raw body as defined in RFC 2104.

Batch the backlog, wait for the trickle

A list of 500 attendees is ten batches of 50. Registrations that arrive one at a time use ?wait=60 or a webhook. Do not describe a 500-person send as one call.

What jsontoimg does not do

It draws the code. It does not scan it or validate it. Your door app needs an endpoint that receives the scanned string, looks the ticket up, and marks it used. Mark event pages with schema.org/Event if you also want search visibility.

The shared pipeline is in the Certificate Generator API guide, and the template pattern is on the event tickets page.

FAQ

How do I generate event tickets with QR codes automatically?

Fire a webhook from your registration form, render a ticket template with the attendee’s name and a Code layer holding the ticket id, then email the signed asset URL.

Which barcode format should I use on tickets?

QR codes suit phone cameras. Dedicated door scanners differ in which formats they read, so confirm with the venue, then choose qrcode or code128.

How do I avoid sending duplicate tickets?

Use your ticket id as the dedupe key before rendering, and ignore repeated webhook deliveries by eventId. A retried POST can otherwise create a second job.

Does jsontoimg validate tickets at the door?

No. It only draws the code. You need your own endpoint that looks up the scanned ticket id and marks it used.

Related Resources