Pass API
Reference

Wallets and platform admin

Apple's PassKit web service, and the platform back-office.

Neither surface is one you call. They are here so the routes are accounted for.

/api/apple/v1 — Apple's PassKit web service

Apple's own specification, implemented to its shape. iOS calls these; nothing else should. The credential is the pass's own token, sent as Authorization: ApplePass <token>.

MethodPath
POST/api/apple/v1/devices/{deviceLibraryId}/registrations/{passTypeId}/{serial}Device registers for updates. Upsert — 201 when new, 200 when already known
DELETE/api/apple/v1/devices/{deviceLibraryId}/registrations/{passTypeId}/{serial}Device unregisters
GET/api/apple/v1/devices/{deviceLibraryId}/registrations/{passTypeId}Serials changed since passesUpdatedSince, or 204
GET/api/apple/v1/passes/{passTypeId}/{serial}The current pass file. Honours If-Modified-Since with a 304
POST/api/apple/v1/logApple posts diagnostics here. Bounded to 20 lines

The push that wakes a device carries an empty payload — Apple's design. A message reaches the lock screen only by being written into a pass field whose value changed, which is why a notice is a field rather than a payload.

/api/admin — platform back-office

Nubisoft staff, not merchants. A separate credential from everything else, and admin as a code identifier means this and nothing else.

MethodPath
POST/api/admin/login
POST/api/admin/logout204
GET/api/admin/me
GET POST/api/admin/accountsPlatform admin accounts. POST 201
GET PUT DELETE/api/admin/accounts/{id}
GET POST/api/admin/tenantsOnboard a merchant. POST 201, and creates their first branch
GET PUT DELETE/api/admin/tenants/{id}Delete refuses with 409 once the merchant has customers
GET POST/api/admin/tenants/{tenantId}/usersThe merchant's OWNER/MANAGER/STAFF
GET PUT DELETE/api/admin/tenants/{tenantId}/users/{id}
GET/api/admin/tenants/{tenantId}/apple-credentialThe merchant's Apple Pass Type ID and its expiry
POST/api/admin/tenants/{tenantId}/apple-credentialUpload a .p12. Multipart. 201
DELETE/api/admin/tenants/{tenantId}/apple-credential204

Every merchant gets their own Apple Pass Type ID, and the certificate expires annually — it has to be in place before that merchant issues anything.

On this page