REST API
Full coverage of card holders, cards, orders and photos. Secured by scoped API tokens, so an integration gets exactly the access it needs and nothing beyond it.
Card issuance sits downstream of your directory and upstream of your access control. A platform that cannot talk to both just moves the re-keying somewhere else. CardOffice provisions over SCIM, signs people in through your identity provider, exposes a REST API with webhooks, encodes RFID into access control, and syncs with your own databases.
Secure, outbound only: nobody opens a firewall port
Outbound only
Not every card programme starts from a directory. Many run from a student-records or HR database with no API, on a server IT will not expose to anything. CardOffice syncs with it directly: Microsoft SQL Server, MySQL or PostgreSQL, or CSV files for systems that can only export.
A small agent sits beside your data, picks up what has changed on a schedule you set, and maps it onto cardholders. Tables, views or your own queries, field mappings, filters and timing are all configurable, so the sync fits the way your data already moves instead of forcing a new one. Card details and photographs can flow back the other way, so your records system stays complete.
Entra ID and Google Workspace provision automatically over SCIM. A new starter appears in the roster ready to be photographed. A name or department change flows through on the next provisioning cycle. A leaver's card deactivates itself. No CSV exports, no re-keying, and no card office finding out about a departure three months late.
SCIM 2.0
Separate concerns
Configured independently. Use either, or both.
Single sign-on through Entra ID, Google Workspace or Okta, over OpenID Connect, with two-factor authentication enforced at the organisation level rather than left to each user's good intentions.
Single sign-on and SCIM are complementary but genuinely separate. One governs the portal, the other governs the roster. Turning on SSO does not silently start rewriting your cardholder list, and turning on SCIM does not change how staff log in.
Not a roadmap item and not a partner-only extra. The API is how the platform talks to itself, which is the only version of an API worth handing to somebody else.
Full coverage of card holders, cards, orders and photos. Secured by scoped API tokens, so an integration gets exactly the access it needs and nothing beyond it.
Real-time events on every status change: a photo approved, an order released, a card printed, a credential revoked, so your systems find out when it happens rather than on the next poll.
The same interfaces are what we use to reach enterprise systems. If you have something else in the stack, the conversation starts from a working API rather than a proposal.
Every card and wallet pass carries a verification code that checks against the live system. Anyone can confirm an ID is genuine and still current in seconds, the part a photocopy cannot reproduce.
Encoding is the point where an ID card stops being a photograph with a name on it and starts opening doors. CardOffice encodes RFID through a configurable interface, so the credential format is something you set rather than something you inherit.
It works with access control systems by writing the door credential to the card's chip at an encoding station, then reading it back to confirm it before the card is handed over. Magnetic stripe encoding is built in on supported printers, and runs as part of the same print job rather than a second pass at a second machine.
Where the records live is a deployment choice, not a paid tier of trust. Nothing is withheld from the self-hosted build to make the hosted one look better.
Hosted in New Zealand. We patch it, back it up nightly with encrypted off-site copies, and publish a status page. Most institutions start here, because it is the shortest path to issuing a card.
Deployed inside your own infrastructure or your own cloud tenancy. Cardholder records and photographs never leave the boundary your policy draws, and your team holds the keys, the backups and the upgrade window.
Either way the controls are the same: tenant isolation, audit logging on every action, instant revocation of a card and its wallet pass, role-based access with single sign-on, and retention periods you set. Photographs are never used for facial recognition and never used to train models.
Either, or both. They do different jobs and are configured separately. SCIM keeps the cardholder roster in step with your directory. Single sign-on controls who can log into the portal. Plenty of organisations start with SSO for staff and add SCIM once they are ready to retire their spreadsheet.
Single sign-on works with Entra ID, Google Workspace and Okta, over OpenID Connect, with two-factor authentication enforced per organisation. SCIM provisioning runs from Entra ID and Google Workspace.
No. Matching is deliberate rather than naive, so provisioning adopts the cardholder records you already hold instead of creating a second one beside them. Field mapping is configurable, so employee number, department and holder type come from your directory's own fields rather than a schema we picked.
Yes. The sync agent works with Microsoft SQL Server, MySQL, PostgreSQL or CSV files, maps your tables, views or queries onto cardholders, and can write card details and photographs back. It makes outbound connections only, so there is no inbound firewall rule to justify and no shared database credential to hand out. It runs in production today against a live student-records system.
Yes. The REST API covers card holders, cards, orders and photos, and the webhook system raises real-time events on every status change. Access is by scoped API token. It is tested and running in production, and built to extend into the enterprise systems you already run.
Tell us which directory you run, what your access control is, and what the card office is stuck with today. We will tell you honestly which parts connect now and which parts would be new work.