TPA lifecycle states
Step 1: Create TPA
Response
201:
Org number validation
Step 2: Check who can sign (recommended)
Before adding signatories, query the public registry:signature_combinations is one valid signing group — everyone listed in that group must sign for the combination to be satisfied.
The registry does not always list who may sign. Many organization types — foundations, associations, and similar entities — are not fully registered as companies in public records across the Nordic countries. The response may include company details but an empty
signature_combinations array. In that case OpenCard cannot suggest signatories; your client must decide internally who is authorized to sign and you add them as signatories manually.Step 3: Add signatories → email fires 📧
email is required. phone_number is stored but not returned in API responses.
What happens immediately:
token= random 40-char string generated- Signatory record created with
signed: false - Email queued via issuer-specific mailer:
- Subject:
Authorise TPA for {tpaName} - Template: TPA signing invitation
- Link:
https://{env}/accounts/{accountId}/tpas/{tpaId}/sign/{token} - Language: English (hardcoded for signatory emails)
- Subject:
Update / delete signatory
Reminder emails
If a signatory has not signed after 7+ days, OpenCard may send a reminder email automatically.Step 4: Signatory signs with eID ✍️
This is a web flow, not an API call. The signatory:- Clicks email link →
GET /accounts/{accountId}/tpas/{tpaId}/sign/{token} - Sees TPA legal text (markdown rendered)
- Clicks “Sign” → eID widget loads
- Completes signing with national eID — see eID Signing
- eID result is posted back →
POST .../sign/{token}
signature_combinations from the registry (stored on the TPA at creation) for Sweden and Norway.
If no signatory combinations were available from the registry, OpenCard cannot verify automatically — the TPA goes through manual review before signatures_verified is set.
Step 5: TPA fully signed → stuff happens
When signing is complete:- 📄 Signed PDF generated with all signatory eID approval blocks
- 📧 Email to each signatory with signed PDF attached
- 📧 Card issuer notified (signed PDF delivered)
- 🔔
tpa.signedwebhook fires on orgs that subscribed
Download signed PDF via API
Step 6: Activation
TPA moves toactivated when the TPA is confirmed — triggered on the issuer side, not something you call directly.
Until activated, transactions won’t flow even if TPA is signed.
Delete TPA
TPA embed plugin (optional)
OpenCard ships a JS wizard (ocTPA) for self-service TPA onboarding on your site. It collects issuer selection, signatory combos, billing info — then calls your onDataSend callback with the payload for you to hit the APIs.
See Plugins.
