Skip to main content
This is the end-to-end path for connecting one of your clients to OpenCard. Everything you need lives in the Application API — no embed plugin required. Each major step has its own guide — same pattern as TPA flow and Card holders:

Who does what

You own the UX. OpenCard owns signing pages, identity verification, and data delivery.

Big picture


Phase 1 — Client setup

The client walks through your product: card program → products → invoice details → TPA signatories. You then create billing, TPA, organization, and webhook via the API (or receive the payload from the ocTPA plugin and POST it yourself). Complete when the TPA is signed (ideally activated), the organization exists with billing_id + tpa_id, and the webhook is active. Card issuer setup · TPA flow · Billing · Webhooks

Phase 2 — Cardholder setup

Add each employee as a card holder. Email path sends PDPC + eID; instant path matches on identity_id with no user action. Complete when you receive card_holder.identified — then expect transactions (including a retroactive batch). Card holder onboarding · Model: Card holder

Phase 3 — Live

Card issuer pushes transaction states → OpenCard POSTs to your webhook → enrichment may follow (receipts, VAT, line items, environmental impact). Transaction states · Events · Receipts

Ordered checklist

Do this per client (after your account + OAuth client exist):

Build it yourself vs embed plugin

The plugin mirrors Phase 1 in the UI. Organization + webhook and card holders stay in your integration.

Deep dives in this section

Models (what each entity is): Billing · Organization · TPA · Card holder