
Generate tickets and passes automatically from Paystack payments
When a customer pays through Paystack, Drawtab turns the successful charge into a finished, on-brand graphic — an event ticket, a pass, a badge or a receipt — and can deliver it straight to the buyer. Every render is tied to the transaction reference, so a retried webhook never issues the same ticket twice.
What sets it off
A charge succeeds on your Paystack account — the charge.success event.
What you get
- Event tickets
- Passes and badges
- Payment receipts
- QR check-in codes
Setting it up
One-time setup. After this it runs on its own.
Create a Paystack pipeline
In your Drawtab workspace, open Pipelines, pick Paystack and choose the template each payment should render into.
Paste your Paystack secret key
Copy your secret key from Paystack → Settings → API Keys & Webhooks (sk_test_… or sk_live_…) and paste it into the pipeline. Drawtab uses it to verify every delivery.
Add the webhook in Paystack
On the same Paystack screen, add the pipeline’s trigger URL as a webhook and tick the charge.success event.
Map the payment to your template
Point each hotspot at a field — customer.name, customer.email, amount_formatted, or any custom field collected at checkout. The Sample Payload inspector shows the real paths.
What you can put on the graphic
These are the paths you type into a template hotspot. Once a pipeline has received its first real record, the Sample Payload inspector shows your own data and you can click a value to fill the field.
| Field path | What it holds |
|---|---|
customer.name | Buyer’s full name, built from their first and last name |
customer.email | Buyer’s email — used for delivery |
amount_formatted | Amount with its currency, e.g. “NGN 15,000.00” |
amount_major | Amount in major units as a number, for receipts and maths |
custom_fields.<variable_name> | Any custom field collected at checkout, keyed by its variable name |
reference | The transaction reference — good QR content |
data.reference | The same reference under Paystack’s raw envelope |
How Drawtab knows the data is real
Paystack signs every delivery with an x-paystack-signature header — an HMAC-SHA512 of the exact raw request body, keyed by your account’s secret key. Drawtab verifies it before reading anything, so a forged request can’t produce a ticket. Only successful charges render: other events are acknowledged and ignored, and each transaction reference is remembered so Paystack’s retries never issue a duplicate.
Every pipeline also has its own secret trigger URL, which can be rotated at any time without touching your template or mappings.
Common questions
Will a retried webhook issue the same ticket twice?
No. Drawtab remembers each transaction reference, so if Paystack retries a delivery it is acknowledged but nothing is rendered a second time.
What amounts can I put on a receipt?
Both the raw amount in minor units and a ready-formatted amount such as “NGN 15,000.00”, plus the currency code — so you can print either the exact figure or a currency-formatted string.
Can I include the answers a customer gave at checkout?
Yes. Any custom field collected by your Paystack checkout appears as custom_fields.<variable_name> and can be mapped straight onto the template.
Which events does Drawtab render?
Successful charges (charge.success). Other events — refunds, transfers, failed attempts — are acknowledged with a 200 so Paystack stops retrying, but produce no render.
Do I need a live Paystack key?
No. Paste your sk_test_… key and Paystack test charges render exactly like live ones; swap in sk_live_… when you go live.
Other integrations
Start rendering from Paystack today
Set it up once, and every record from then on arrives as a finished graphic.


