.pkpass and Google Wallet objects) directly from reusable templates, so a customer can carry their loyalty card or gift card in their phone.
Concepts
- Pass type — A class of pass: loyalty card, gift card, coupon. Registered with Apple via your developer team’s pass type ID.
- Template — A reusable design (colors, fields, logo) bound to a pass type. Templates have versions; new passes inherit the latest.
- Pass — A concrete instance issued to a single customer. Identified by a serial number.
Typical workflow
- Register a pass type.
POST /v2/passtypesonce per type. For Apple, generate a CSR viaGET /v2/passtypes/new/csrand sign it through your Apple Developer account. - Create a template.
POST /v2/templateswith the visual design and field bindings. - Issue passes.
POST /v2/templates/{templateId}/passissues a pass to a customer. - Send the install URL. Email or text the customer the
savetowalletURL fromGET /v2/passes/{passTypeIdentifier}/{serialNumber}/url.
Updating passes
Push updates by re-issuing or by modifying the pass’s underlying fields — installed passes automatically receive Apple Wallet and Google Wallet push updates.Best practices
- Use a single template per pass family. Customers see consistent branding even if your underlying program changes.
- Test in sandbox first. Apple’s pass validation rules are strict; iterating against a production pass type can pollute your serial number space.
- Keep payloads small. Don’t pack everything into the pass — link out to your portal for detail.
