WalletPassAPI Docs

API reference · Passes

Create a pass

POST/v1/passes1 operationSafe to retry with Idempotency-Key

Builds the Apple Wallet pass and the Google Wallet pass from one description, and gives you an install page for both.

Body

The pass's fields: organizationName, and logoText or primaryFields, at least. Or a template's slug with its values instead of the fields. Beside them:

issuerstring

Which of your issuers signs it: its slug, or org:<slug> for your organization's. Left out, your workspace's default. A pass keeps its set for life.

dataobject

Values for the placeholders in its text, such as { "points": 120 }.

holderobject

The holder's name and email. Kept with the pass, so you can find one person's passes.

templatestring

Make it from this template instead of sending fields: its slug, or org:<slug> for your organization's. Send data, holder and an externalId with it.

Answer

201Created

shareUrl is the install page to send the holder. platforms says whether each wallet's pass was built: built, or no_credential when the issuer has none for that wallet. applePass (the signed .pkpass, base64) and googleSaveUrl come with a built one.

Errors

Every error has the same shape: see Errors.

StatusCodeWhen
400invalid_jsonThe body isn't JSON.
400validation_errorA field is missing, too long or unknown. field names it; a near miss suggests the field you meant.
400placeholder_missingA required placeholder has no value. missing lists every one.
409idempotency_conflictThe Idempotency-Key was already used for a different request.
409external_id_conflictAnother pass in this workspace has that externalId.
422unknown_issuerNo issuer with that slug here.
422unknown_templateNo template with that slug here (or shared with this workspace).
429usage_limit_exceededThis month's operations on your plan are used up.
429workspace_limit_reachedThis workspace's monthly limit, set by its organization, is used up.
429platform_usage_limitA test pass, and the 1,000 test operations a month are used up.
  • Keep the serialNumber: it's how you update, notify and revoke the pass.
  • Until you add your own credentials, passes are signed with ours and marked as test passes.