Developer guide
Start with The Wallet Crew APIs, authentication, and the main integration paths.
Developer guide
This section focuses on API integrations with The Wallet Crew. It covers authentication, the API reference, a first request, and the main paths to follow next.
Start here
Most developer projects follow the same path.
Make a first request
Start with an existing pass. This is the fastest way to validate tenant access, authentication, and update behavior without mixing creation logic into the first test.
Continue with Getting started with the API.
Authentication
The main developer entry point uses an API key. Generate the key from the admin console, then send it in the X-API-KEY header.
Some tenant-scoped APIs can use other authentication models or extra scopes. When that happens, the endpoint guide or reference is the source of truth.
Quickstart
The fastest validation flow is to start with a pass that already exists, trigger a management call, then confirm the result on that pass.
The most common first call is a pass refresh:
Authorization: Requires Pass.Write scope.
Identification: Use internal id (e.g., id=Ed34kg3oA47) or external identifiers with id. prefix (e.g., id.y2.customerId=1233332). Multiple identifiers must match exactly one pass.
Data: Merged with existing data. Empty/null removes fields; omitted fields unchanged.
Metadata: Set options.UpdateMetadata=true for recomputation (slower). Set options.BypassQueue=true for synchronous updates instead of queueing.
Type: Optionally convert pass to different type.
Use Cases: Update identifiers/metadata; push notifications; type conversion; bulk updates; urgent changes.
Example — update by platform pass ID:
PATCH /api/{tenantId}/passes?id=xK9mP2nQr7sT
{
"additionalData": { "loyaltyTier": "gold" },
"options": { "updateMetadata": true }
}Example — update by external identifier:
PATCH /api/{tenantId}/passes?id.shopify.customerId=12345
{
"identifiers": { "email": "[email protected]" },
"additionalData": { "loyaltyTier": "gold" },
"options": { "updateMetadata": false }
}type of the pass to update. type name should be one of the file in the server/passes/ tenant configuration.
Data payload for single pass update operations.
Arbitrary data to persist with the pass (for example, loyalty tier, store code, or campaign flags).
Optional pass type to convert the pass to.
Specifies if passes metadata should be updated. Updating metadata is time consuming and could be avoided for notification only push update
falseIndicates whether the push update should bypass the queue and run immediately. Queuing helps protect the system load and should only be bypassed when required.
falsePass update enqueued or applied successfully.
No content
No pass found matching the provided identifiers.
PATCH /api/{tenantId}/passes HTTP/1.1
Host: app.neostore.cloud
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 163
{
"identifiers": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"additionalData": null,
"passType": null,
"options": {
"bypassQueue": false,
"updateMetadata": true,
"correlationId": null
}
}No content
This validates tenant scope, API key authentication, and the update pipeline on a real pass. Use Getting started with the API for the end-to-end setup.
If no pass exists yet, start with Enrolment flows or Connector-triggered pass creation.
API reference
Use the API reference when the exact payload shape, response schema, or endpoint behavior matters.
Main entry points
Developer guides
These pages cover the main integration patterns.
Key concepts for tenant scope, identifiers, templates, and pass lifecycle basics.
Getting started with the API for the first tenant-scoped calls on passes that already exist.
Enrolment flows for pass creation during hosted or custom enrolment journeys.
Connector-triggered pass creation for source-driven issuance based on upstream events.
Update pass data in templates for updating pass data and rendering it in templates.
Templating engine for supported DotLiquid syntax, custom filters, and the
minifytag.Webhooks for real-time event delivery.
Scan API for barcode and QR scan ingestion.
Insights API for logs, events, and metrics queries.
Custom connectors for tenant-side integration logic.
Common next steps
After the first request succeeds, the next step usually depends on the integration goal.
If passes already exist, start with Getting started with the API.
If pass issuance starts in a signup, checkout, or hosted form, use Enrolment flows.
If pass issuance starts from a source-system event, use Connector-triggered pass creation.
To keep wallet content fresh, continue with Update pass data in templates.
To notify other systems in real time, use Webhooks.

