WalletPassAPI Docs

API reference

The template object

A pass design with placeholders, and the rules for their values.

The template

What you send to create a template, or to save its changes. A pass made from it is filled from its own values and holder. 11 fields.

namestringrequired· 1 to 80 characters

What people see in the dashboard.

slugstring

Its name in the API, up to 40 lowercase letters, digits and hyphens. Left out, made from the name. It can't change once it's made.

designobjectrequired

A pass, with {{placeholders}} in its text where each pass has its own values: "value": "{{points}}". {{holder.name}} and {{holder.email}} are the holder's.

placeholdersarray of placeholder objects· up to 50

A rule for each placeholder in the design. One without a rule is required text.

holderRequiredobject

Whether each pass needs the holder's name and email. Those the design shows are always needed.

issuerstring· at least 1 character· or null· default null

The issuer its passes are signed with, by slug. Null: each pass names its own, or uses the default.

installHeadlinestring· up to 120 characters· or null· default null

The install page's heading for its passes. Null: ours.

updatePassesone of: none, all

Saving changes only: all gives the passes made from it the new design now (one operation each), none keeps theirs until you update them. Default none.

fillobject

Saving changes with "updatePasses": "all": values for placeholders the new design adds, for the passes made before it.

sharedWithone of: all, selected

Organization templates only, which are made in the dashboard: all its workspaces, or selected. Leave it out with an API key.

workspaceIdsarray of string· up to 500

With "sharedWith": "selected": the workspaces. Leave it out with an API key.

Placeholder object

How one placeholder's values are checked. 5 fields.

keystringrequired

The name in the design's {{…}}: a lowercase letter, then lowercase letters, digits or _.

labelstring· 1 to 60 characters

What the dashboard and spreadsheet imports call it. Left out, made from the key: member_id is "Member ID".

typeone of: text, number, date· default "text"

number must be a number and date a date as YYYY-MM-DD, which the pass shows as "31 Dec 2026"; text is anything.

requiredboolean· default true

Whether every pass needs a value. A pass is never issued with a placeholder left in it.

defaultstring· up to 1,024 characters

Used when a pass has no value for it.

Holder object

Who the pass is for. Kept with the pass, never put on it unless the design shows it, and never sent in webhooks. 2 fields.

namestring· up to 100 characters

The holder's name: {{holder.name}} in a design.

emailstring· up to 254 characters

The holder's email address: {{holder.email}} in a design. Find their passes with q.

These tables are read from the schemas the API checks with, so they always match it. The same is in the OpenAPI document.