WalletWallet API

Digital event tickets for Apple and Google Wallet

Put every guest's ticket in their phone before doors, and when the venue or the start time changes, push one update that reaches every ticket at once, with no app for guests to install.

Apple Wallet Google Wallet

A whole season of events runs on $39 a month.

The self-serve alternative to PassKit, PassNinja, or PassEntry, with public pricing.

From a guest list to tickets in their wallets.

  1. 1

    Design the ticket

    Set your brand color, logo, fields, and barcode in the visual editor, with a live preview and no code. The field reference has the full list.

  2. 2

    Issue from the guest list

    Each guest's ticket is one POST /api/passes. Issue them whichever way fits:

    A developer runs a short loop

    Loop a script over your exported guest list, one POST per guest. See the create call.

    Add guests one at a time

    Add guests by hand in the Pass Manager. Right for a dinner, a launch party, or a will-call list.

    Issue on ticket purchase

    Connect your checkout or RSVP form through Zapier, n8n, or a plain HTTP request, and every sale becomes a ticket automatically.

  3. 3

    Deliver the links

    Every ticket gets a branded link that opens the right wallet for whoever taps it. Email or text it once; it stays the same through every change you push.

  4. 4

    Scan at the door

    Put the ticket ID in the barcode and pick the format your scanner already reads: QR, PDF417, Aztec, or Code128. We render the barcode; your check-in app decides what a valid scan means.

Run the whole event, from on-sale to encore.

Issue, change, upgrade, refund, and follow up, each one update to the ticket the guest already holds, from the Pass Manager or your own system.

  1. Tickets go out

    Issue an entire guest list in one batch, with one install link per person and every ticket carrying the details they need.

    A ticket reaches the guest's wallet

  2. The venue changes

    When the venue changes, update every ticket already issued and notify every guest's lock screen at once.

    The new venue, on every lock screen

  3. A VIP upgrade

    Move a guest to VIP on the ticket already in their wallet, adding the new entry details without issuing a replacement.

    The same ticket, now VIP

  4. Refund and revoke

    When a ticket is refunded, revoke it so it greys out, loses its barcode, and releases the seat for resale.

    A refunded ticket, greyed out everywhere

  5. After the show

    Keep the ticket useful after the event with one update that rolls it forward to the next date, so the new invitation is already installed.

    The ticket rolls forward to the next date

An event ticket API that works with your ticketing stack.

The API is plain HTTP, so anything that can export a list or fire a webhook can issue and update tickets.

Export anytime

Pull your guest list out of the Pass Manager as a CSV. Each row carries the ticket's share URL, ready for a mail merge.

No plugins to maintain

Eventbrite exports, Luma lists, and plain spreadsheets all work the same way: one HTTP call per guest, direct or through Zapier or n8n, with no plugin to keep updated.

The math for a real event.

Billing counts each ticket you issue and each update that changes it. One ticket covers both wallets and counts once, and a revoke is free. PassKit runs around $1,300/month for the same lifecycle.

A 400-guest launch party

WalletWallet
Tickets issued
400
One venue-change push to every guest
400
Total for the month
800 passes
Total $39/month, flat

Under 1% of the included 100,000, about 10 cents a guest, with the venue change pushed to all 400 phones.

Thank you

A 5,000-attendee conference

WalletWallet
Badges issued
5,000
One schedule update to every attendee
5,000
Total for the month
10,000 passes
Total $39/month, flat

A tenth of the included 100,000. Even a 250,000-pass festival month is $39 + 150,000 x $0.00039 = $97.50.

Thank you

One pass covers both Apple and Google and counts once. Creations and content updates count, revokes do not. Full pricing.

Frequently asked questions

Do guests need to download an app?

No. Apple Wallet and Google Wallet are built into every iPhone and Android phone. A guest taps Add to Wallet on the ticket's page, or on the .pkpass you email them, and the ticket is in their wallet.

Can I run an event without a developer?

Yes. Design the ticket in the visual editor, then run the event from the Pass Manager: add a guest, push a change, resend a link, or revoke a refund, all by clicking. The API is optional.

What happens when the venue or start time changes?

You PUT the ticket's serial with the new details and every installed copy updates in place, same link, same barcode, no reissue. Set a changeMessage on the changed field and it becomes the lock-screen banner on Apple ("Doors now 8:00 PM"); Google shows its own banner and your text appears inside the ticket.

How do door scans work?

Every ticket carries your ticket ID in barcodeValue, rendered as QR, PDF417, Aztec, or Code128. Scan it with any reader or check-in app and validate the ID against your guest list. We render the barcode; you decide what a valid scan means.

Does this work on both Apple and Google Wallet?

Yes. One POST /api/passes returns the signed Apple .pkpass and a Save to Google Wallet link for the same ticket, and it counts as one pass. Updates, pushes, and revokes work on both.

What if a guest loses their phone?

The ticket lives on our servers, so nothing is lost. Resend the same install link and the current ticket, with the latest venue and time, adds to the replacement phone under the same ticket ID.

Can a guest forward a ticket, or screenshot it?

Your choice. Tickets ship with the Apple Wallet share button hidden (sharingProhibited), which locks the live pass to the guest who added it; set it to false and the ticket is transferable. A screenshot is always possible, but the barcode resolves to one ticket ID, so a copied image reads as the same ticket twice at the door.

What happens when I refund a ticket?

Revoke it with one call, or one click in the Pass Manager, and the ticket greys out, drops its barcode, and moves to expired passes on both wallets. Revokes are free and do not count against your quota.

Does it look like Apple's native event ticket?

It renders as a clean branded Wallet card on the generic and storeCard layouts, the same shape you see on this page, rather than Apple's event-ticket template. The barcode, guest details, and live updates behave the same in both wallets.

Can one ticket cover a multi-day conference?

Yes. The ticket doubles as the badge. PUT the day's room or agenda each morning with a changeMessage and every attendee's pass updates before the first session.

How do plus-ones work?

Issue the plus-one its own ticket with its own serial and barcodeValue, so the door can tell the two apart, and set sharingProhibited to false on it if the primary guest should forward it.

What does it cost to ticket an event?

Pro is $39 a month flat with 100,000 passes a month included (creations plus updates), then $0.00039 per pass beyond that. A 400-guest party with a venue-change push to everyone uses 800 of the 100,000; a 5,000-badge conference with a schedule update uses 10,000. One ticket covers both wallets and counts once, and revokes are free.

Issue your first pass in five minutes.

Build a ticket and install it on your own phone tonight. Every new account starts with 30 days of Pro.

curl -X POST https://api.walletwallet.dev/api/passes …