claim_url and tap the wallet buttons with no app install.
Dashboard setup (credentials, template, campaign toggle) is in
Wallet pass credentials and
Add coupons to Apple and Google Wallet.
Claiming assigns the code to the customer. Redeem afterwards with
POST Redeem coupon.Prerequisites
- SERVER API key and
x-account-id - Coupon campaign with Allow Add to Wallet and a template
- Apple and/or Google credentials saved for the platforms you will issue
1. Create the campaign link
POST /coupons/wallet-passes
One call per campaign. Repeat calls return the same URLs. Codes are assigned
when someone opens claim_url, not in this POST.
Example response:
claim_url in email, WhatsApp, or a Masivo short link. Each new visitor
gets the next free code. The same phone keeps that code.
Read the same link later with
GET /coupons/wallet-passes.
It does not create a link or assign a code.
token from /w/{token} instead of campaign_id. The
response adds campaign_name, header_text, description, and
barcode_format.
2. Detect a pass the customer has not applied
Apps cannot list passes stored in the phone. Read Masivo instead. By customer —GET /customers/{id}/wallet-passes
status is optional. Allowed values: ISSUED, CLAIMED, REDEEMED,
EXPIRED, REVOKED.
By claim token (from /w/{token} or a deferred deep link) —
GET /wallet-passes/{token}
returns the campaign claim_url, landing copy, and barcode_format.
ISSUED pass, show “This coupon can be applied.”
3. Redeem the coupon
POST /coupons/redeem with the same
code and the customer_id. If the pass has no customer yet, the redeem
assigns it to that customer and sends the COUPON_WALLET_CLAIMED webhook. The
pass moves to REDEEMED once the customer reaches the campaign limit per
customer, and Wallet updates.
4. Revoke
POST /wallet-passes/{id}/revoke
REVOKED.
Suggested TypeScript flow
Frequently asked questions
Does issue redeem the coupon?
Does issue redeem the coupon?
No. Issue only creates the pass. Redeem is a separate call with the coupon
code.
Can I send the same claim_url more than once?
Can I send the same claim_url more than once?
Yes. One URL per campaign. Each new visitor gets the next coupon code.
The same phone keeps the same code. Redeem still follows campaign rules.
Why did Add to Apple Wallet take a few seconds?
Why did Add to Apple Wallet take a few seconds?
The first tap builds and signs the
.pkpass (images and certificate).
Opening the landing page starts that work so the tap can be faster.Google Wallet says I cannot save the pass
Google Wallet says I cannot save the pass
In Demo mode the Gmail on the phone must be listed under Configure test
accounts, and the service account email must be invited in Users.
See Wallet pass credentials.
The pass on the phone does not match the template
The pass on the phone does not match the template
Delete the pass in Wallet and add it again from
claim_url. Existing
passes do not refresh layout until they are re-added.