How to Create and Send NFC Passes Using Zapier
Updated February 06, 2026
TL;DR: Connect Zapier to PassNinja API to automate pass creation.
<<<<<<< HEAD-
=======
- 1. Create a Zap with your trigger (form, CRM, spreadsheet, etc.).
- 2. Add a Webhooks by Zapier action (POST request).
- 3. Configure the PassNinja API endpoint and headers.
- 4. Test the webhook to verify pass creation.
- 5. Map dynamic data from your trigger to pass fields. <<<<<<< HEAD
-
>>>>>>> origin/main
Zapier is one of the most popular automation platforms, connecting thousands of apps without requiring any code. By integrating PassNinja with Zapier, you can automatically create and distribute NFC-enabled digital wallet passes whenever specific events occur in your other apps. This tutorial walks you through setting up a Zap that creates a PassNinja pass and delivers the installation link to your users.
Zapier is one of the most popular automation platforms, connecting thousands of apps without requiring any code. By integrating PassNinja with Zapier, you can automatically create and distribute NFC-enabled digital wallet passes whenever specific events occur in your other apps. This tutorial walks you through setting up a Zap that responds to a new member purchase on Stan.store and send out an Apple Wallet pass for in-person verification. That way, if you're organizing a run club or a boat tour, you can check people in quickly and with less fuss.
origin/main
Prerequisites
Before you begin, make sure you have:
- A PassNinja account with an active pass template
- Your PassNinja API Key and Account ID (found in passninja.com dashboard)
- Your Pass Template Identifier (e.g.,
ptk_0xXXX) - A Zapier account (free tier works, but Webhooks requires a paid plan)
Step 1: Create a new Zap and set up your trigger
Every Zap starts with a trigger—the event that kicks off your automation. Common triggers for pass creation include:
<<<<<<< HEAD
- Stan Store: When a customer subscribes to your product >>>>>>> origin/main
- Google Forms: When someone submits a registration form
- Typeform: When a new response is received
- Shopify: When a new order is placed
- HubSpot/Salesforce: When a new contact is created <<<<<<< HEAD
- Google Sheets: When a new row is added
origin/main
To set up your trigger:

- Click Create Zap in your Zapier dashboard <<<<<<< HEAD
- Search for and select your trigger app
- Choose the specific trigger event
- Connect your account and configure the trigger
5. Test the trigger to pull in sample data
- Search for and select your trigger app (eg "Stan" for Stan Store)
- Choose the specific trigger event (eg "New Membership" triggers when a customer purchases a recurring membership)
- Connect your account and configure the trigger (eg Login with your Stan account credentials)
- Test the trigger to pull in sample data (eg Customer Name, Customer Email, etc from Stan Store) >>>>>>> origin/main
Step 2: Add a Webhooks by Zapier action
The Webhooks by Zapier action allows you to make HTTP requests to any API, including PassNinja.
<<<<<<< HEAD

origin/main
- Click the + button to add an action
- Search for Webhooks by Zapier
<<<<<<< HEAD

origin/main
- Select Action event, Create Custom Request
- Click Continue
- Select Method: POST
Step 3: Configure the PassNinja API request
<<<<<<< HEAD Now configure the webhook to call the PassNinja API:

URL:
https://api.passninja.com/v1/passes
Data Pass-Through:
Select False
Data:
Place JSON:
Now configure the webhook to call the PassNinja API with generic data. That way we can test out making passes before we add dynamic data.

- URL:
https://api.passninja.com/v1/passes - Data Pass-Through: Select
False - Data: Place JSON: >>>>>>> origin/main
{
"passTemplate": "ptk_0xXXX",
"pass": {
<<<<<<< HEAD
"primary.label": "Member Name",
"primary.value": "Jane Smith",
"header.label": "MEMBERSHIP",
"header.value": "Gold",
"barcode.data": "1234567890",
"nfc.message": "NFC Test"
=======
"primary.label": "Member",
"primary.value": "Jane Smith",
"header.label": "MEMBERSHIP",
"header.value": "Active",
"barcode.data": "1234567890",
"nfc.message": "1234567890"
>>>>>>> origin/main
}
}<<<<<<< HEAD
Note: The field names (like
nfc-message,primary.label) must match the API field names defined in your PassNinja template. Check the "Getting Started" tab of your template for the exact field names.
Headers:
Add these required headers:
Note: The field names (like
primary.label,nfc.message, etc) must match the API mapping names defined in your PassNinja template. Check the "Getting Started" tab of your template for the exact field names.
- Headers: Add these required headers: >>>>>>> origin/main
| Key | Value |
| X-API-KEY | your_api_key_here |
| X-ACCOUNT-ID | your_account_id_here |
| Content-Type | application/json |
<<<<<<< HEAD
Note: The Values are defined in your PassNinja template. Check the "Getting Started" tab of your template for the exact API key, and account ID (aix_0xXXX).
Note: The Values are defined in your PassNinja pass template. Check the "Getting Started" tab of your template for the exact API key, and account ID (aix_0xXXX).
origin/main
Step 4: Test the webhook
Before continuing, test your webhook to ensure it works:
- Click Test step <<<<<<< HEAD
2. Zapier will send a request to PassNinja
- Zapier will send a POST request to PassNinja >>>>>>> origin/main
- You should see a successful response with the pass data
The response will include (data-out):
{
"id":"abc123def456",
"passTemplate":"ptk_0xXXX",
"serialNumber":"abc123def456",
"urls":
{
"landing":"https://i.installpass.es/p/abc123def456"
}
}<<<<<<< HEAD
The urls.landing is the universal link that works for both Apple and Google Wallet.
The urls.landing is the universal link that works for both Apple and Google passes.
origin/main
Step 5: Dynamic data assignment
Instead of hardcoding values, you can map data from your trigger to the pass fields. Click the + button next to any field to insert dynamic data from previous steps in your Zap.

<<<<<<< HEAD
For example, if your trigger is a Google Form submission:
- Map the respondent's name to primary.value
- Map their email to a secondary field
- Use a form field for the barcode data or NFC message
For example, if your trigger is a New Membership subscription from Stan Store:
- Map the Full Name to
primary.value - Map subscription status Active to
header.value - Use a web link lookup for the barcode data or NFC message to validate membership status in real time >>>>>>> origin/main
This allows each pass to be personalized based on the incoming data.
Step 6: Distribute passes (via email or text messages)
Wallet passes created with PassNinja can be sent via email or SMS using automation platforms like Zapier, which integrates with messaging and communication services such as Twilio, Gmail, Outlook, SendGrid, and MessageBird. By capturing the pass install link (urls.landing) returned by the API and delivering it through any supported messaging app.
<<<<<<< HEAD Passes can also be sent directly using the PassNinja API by creating a pass with your pass data and distributing the returned install URL via PassNinja email or SMS infrastructure. When creating a pass with PassNinja, delivery can be handled automatically by including email or SMS parameters directly in the pass creation request. Simply add the recipient’s email address or phone number to the pass data, and PassNinja will generate the pass and send the install link for you.
=======
Passes can also be sent directly using the PassNinja API by creating a pass with your pass data and distributing the returned install URL via PassNinja email or SMS infrastructure. When creating a pass with PassNinja, delivery can be handled automatically by including email or SMS parameters directly in the pass creation request. Simply add name, email address or phone number to a recipient object, and PassNinja will generate the pass and send the install link for you.
origin/main
Place JSON:
{
"passTemplate": "ptk_0xXXX",
"pass": {
<<<<<<< HEAD
"primary.label": "Member Name",
"primary.value": "Jane Smith",
"header.label": "MEMBERSHIP",
"header.value": "Gold",
"barcode.data": "1234567890",
"nfc.message": "NFC Test",
"sms": "+1-555-555-5555",
"email": "jane.smith@email.com"
=======
"primary.label": "Member",
"primary.value": "[1. Full Name: Jane Smith]",
"header.label": "MEMBERSHIP",
"header.value": "Active",
"barcode.data": "https://script.google.com/macros/s/AKfycbwD6KaQNxi/exec?=[1. ID: 1234567890]",
"nfc.message": "https://script.google.com/macros/s/AKfycbwD6KaQNxi/exec?=[1. ID: 1234567890]",
}
"recipient": {
"name": "[1. Full Name: Jane Smith]",
"email": "[1. Email: jane@smith.com]"
>>>>>>> origin/main
}
}<<<<<<< HEAD For implementation details, see the PassNinja API documentation: https://www.passninja.com/documentation
Advanced: Handling errors with Paths
======= For implementation details, see the PassNinja API documentation
Advanced: Handling errors with Zapier Paths
origin/main
For production workflows, you may want to handle API errors gracefully:
- Add a Paths by Zapier action after the webhook
- Create paths based on the webhook response status
- Path A (Success): Continue to send email/SMS
- Path B (Error): Send an alert to your team or log the error
<<<<<<< HEAD
Example use cases
| Trigger | Pass Type | Delivery |
| New Shopify order | Loyalty card with points | |
| Event registration form | Event ticket with QR code | SMS |
| New CRM contact | Membership card with NFC | |
| Appointment booking | Access pass with barcode | SMS |
Troubleshooting
Error: 401 Unauthorized
- Check that your X-API-KEY and X-ACCOUNT-ID headers are correct
- Ensure there are no extra spaces in the header values
Error: 400 Bad Request
- Verify that passType matches your template key exactly
- Check that all required fields are included in the payload
- Ensure field names match the API field names in your template
Error: 500 Internal Server Error - Contact PassNinja support with your request details
Making NFC easy with PassNinja
PassNinja simplifies the process of creating and distributing NFC-enabled wallet passes by providing a consistent API and dashboard. By integrating directly into a no-code platform like Zapier, you can automate the creation and delivery of passes without building a custom backend. This approach allows you to leverage NFC technology for loyalty programs, event tickets, or access control with minimal development effort.
Using the Webhooks by Zapier action with PassNinja's REST API means you can dynamically populate pass fields, control expiration dates, and deliver installation links instantly. This flexibility makes it possible to adapt your passes to different campaigns or user segments while maintaining a seamless user experience.
Troubleshooting
Error: 401 Unauthorized
- Check that your
X-API-KEYandX-ACCOUNT-IDheaders are correct - Ensure there are no extra spaces in the header values
Error: 400 Bad Request
- Verify that
passTemplatematches your template key exactly - Check that all required fields are included in the payload
- Ensure field names match the API field names in your template
Error: 500 Internal Server Error
- Contact PassNinja support with your request details
Making NFC easy with PassNinja
This setup is ideal anytime you need digital to meet physical. Apple and Google Wallet provide fast, on-the-spot validation, and NFC makes the handoff effortless.
PassNinja keeps the workflow simple with a consistent API and dashboard. Pair that with Zapier and you can automate creation, personalization, and delivery without building a custom backend. It is a quick path to loyalty programs, event tickets, or access control with minimal development effort.
| Trigger | Pass Type | Delivery |
| New Stan Store subscriber | Membership card with NFC | |
| New Shopify order | Loyalty card with points | |
| Event registration form | Event ticket with QR code | SMS |
| Appointment booking | Access pass with barcode | SMS |
Using Webhooks by Zapier with PassNinja's REST API lets you populate fields dynamically, set expirations, and send install links instantly. The result is a flexible system that adapts to different campaigns or user segments while keeping the experience seamless.
origin/main
Conclusion
Integrating PassNinja with Zapier opens up endless possibilities for automating digital wallet pass creation and distribution. Whether you're onboarding new customers, issuing event tickets, or managing loyalty programs, this no-code approach lets you deliver NFC-enabled passes without building custom infrastructure.
By following the steps above, you can connect any of Zapier's 5,000+ apps to PassNinja and create a seamless experience for your users.
