Step 0: Register (sandbox)
👉 sandbox-api.opencard.io/register You get an Account + admin user. Verify email. Log in. YouraccountId is in the dashboard URL or API responses.
Step 1: Create an account_client
access_token. All subsequent calls:
Scopes are space-separated. Request only what you need. Full list in Authentication. Always send
Accept: application/json so error responses stay JSON (not an HTML login page).Step 2: Enable a card issuer
Step 3: Lookup company (optional but smart)
Before creating a TPA, check the public registry for signing combinations:signature_combinations — who can legally sign for this company. You’ll add those people as TPA signatories next.
Step 4: Create TPA
TPA = Transaction Processing Authorization. Legal permission for transaction data to flow.- Looks up company in the public registry (sandbox returns test data)
- Overrides
namewith registry name when found - Creates the TPA record
- Snapshots legal text from the latest
tpatemplate in the requested language
Response → save
tpaId.
Step 5: Add signatories → email goes out 📧
Each signatory = someone authorized to sign for the company.- Server generates a 40-char
tokenfor this signatory - Email is queued immediately with subject:
Authorise TPA for Acme AB - Email contains signing link:
- Signatory clicks link → sees TPA legal text → signs with eID
signature_combinations from step 3).
Full signing details → TPA Flow and eID Signing.
Step 6: Wait for TPA to be signed ✍️
When all signatories have signed, OpenCard verifies signing rights and marks the TPA as signed. Then:- Signed PDF generated and stored
tpa.signedwebhook fires (if subscribed)- TPA status →
pending-activation(waiting for TPA to be confirmed) - Each signatory gets email with signed PDF attached
Step 7: Create organization
reference_id = your internal client ID. It comes back in every webhook.
Save organizationId.
Step 8: Configure webhook 🔔
active=false and no events are delivered.
Full webhook setup → Webhook Setup
Step 9: Create card holders 👤
Two paths — pick one. Full guide → Card Holder Onboarding.Path A: Email + eID (new employee)
card_holder.identified → transactions flow.
Path B: identity_id (instant — person already in OpenCard)
card_holder.identified fires instantly + retroactive transaction webhooks replay. No waiting for user action. ⚡
Step 10: Receive your first transaction 🎉
Once the issuer delivers transaction states and the cardholder has signed PDPC:What’s next?
- Transaction states — how to handle authorized vs cleared vs deleted
- All webhook events — full payload reference
- Receipt enrichment — digital receipts + true VAT

