FOR DEVELOPERS
Add Apple Wallet passes to your app
Send JSON. Receive a signed .pkpass file. AddPass handles Apple Wallet pass generation and signing, so you can focus on your application.
Use one endpoint to create branded generic passes with custom text, colors, images, barcodes, and location fields. Return the pass file directly or request a temporary download link for your delivery flow.
Start in the free developer sandbox, generate your first pass, and choose a paid plan when you are ready for more volume. API keys and the full reference are available in the developer portal.
Use one endpoint to create branded generic passes with custom text, colors, images, barcodes, and location fields. Return the pass file directly or request a temporary download link for your delivery flow.
Start in the free developer sandbox, generate your first pass, and choose a paid plan when you are ready for more volume. API keys and the full reference are available in the developer portal.
import { writeFile } from 'node:fs/promises';
const payload = {
primaryText: 'Summer Gala',
headerLabelRight: 'Admit One',
backgroundColor: '#0F1219',
thumbnailURL: 'https://cdn.example.com/passes/gala.png',
barcode: {
format: 'qr',
message: 'https://example.com/tickets/12345'
},
};
const response = await fetch('https://app.addpass.io/api/v1/generate', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_KEY_HERE',
'Content-Type': 'application/json',
'Accept': 'application/pkpass',
},
body: JSON.stringify(payload),
});
if (!response.ok) {
throw new Error('Generation failed');
}
const buffer = Buffer.from(await response.arrayBuffer());
await writeFile('summer-gala.pkpass', buffer);
Sample JSON
Start with the example below and replace the sample values with your own data. Use a generic pass to show event details, membership information, or a QR code that links to your own check-in flow. Your application controls what the barcode does.
Choose your response: use Accept: application/pkpass for the signed file, or Accept: application/json for a temporary download link. Keep your API key on your server.
AddPass handles signing for passes generated through the API. Get your key and the full field reference in the developer portal, then test a pass on an iPhone before rolling out your integration.
Choose your response: use Accept: application/pkpass for the signed file, or Accept: application/json for a temporary download link. Keep your API key on your server.
AddPass handles signing for passes generated through the API. Get your key and the full field reference in the developer portal, then test a pass on an iPhone before rolling out your integration.
{
"backgroundColor": "#0F1219",
"foregroundColor": "#FFFFFF",
"labelColor": "#FFFFFF",
"primaryText": "Your Event Name",
"headerLabelRight": "Admit",
"headerTextRight": "One",
"secondaryLabelLeft": "Date",
"secondaryTextLeft": "August 24, 2025",
"secondaryLabelRight": "Doors",
"secondaryTextRight": "6:30 PM",
"auxiliaryLabelLeft": "Seat",
"auxiliaryTextLeft": "B12",
"auxiliaryLabelRight": "Gate",
"auxiliaryTextRight": "North Entrance",
"backFields": [
{
"label": "Support",
"value": "support@yourdomain.com"
},
{
"label": "Terms",
"value": "https://yourdomain.com/terms"
},
{
"label": "Help Desk",
"value": "(555) 123-9876"
}
],
"barcode": {
"format": "qr",
"message": "https://yourdomain.com/check-in/{{token}}"
}
}
Ideas into passes
Build with the API
Start with a use case. Make it part of your app.
Use case
Give your members a place in Wallet.
Turn membership data into signed passes for clubs, communities and customer programs.
Explore membership passesIntegration guide
From Next.js to Apple Wallet.
Keep your API key on the server and add pass creation to your app with a TypeScript starting point.
Read the Next.js guide