HOWTO · Business Wallet · sign.html

Sign invoices with the Business Wallet — on behalf of the company.

An accounting team with several employees who need to sign on behalf of the same company needs a central corporate wallet identity. The flow is the same direct path as with a personal wallet — except that the signing certificate also carries the company name and every signature is logged in the Business Wallet audit trail.

What you need. A Business Wallet instance on CodeB (your company as its own OIDC tenant), a modern browser, and a European Digital Identity Wallet per employee (or corporate SSO chained to an EU Wallet).

1 Personal vs. Business wallet identity

PropertyPersonal EU WalletBusiness Wallet
Who signsNatural personNatural person on behalf of the legal entity
Certificate Subject DNCN=Given Family, SAN e-mailCN=Given Family, O=Company Ltd, SAN e-mail
Audit logWallet-localCentral: which employee signed which hash when
Multiple signersWallet holder onlyAll employees enrolled in the admin panel
Bulk signingOne at a time via sign.htmlOne at a time via sign.html, or scripted via the CSC v2 API

2 Enrol authorised employees (one-off)

In the admin panel of your Business Wallet instance, define for each employee allowed to sign on behalf of the company:

  • The employee's OIDC identity (e.g. their European Digital Identity Wallet or a corporate SSO account bound to it)
  • Role (authorised signer, approval-only, etc.)
  • Optional limits (max invoice amount, max signatures/day)

Changes to the enrolment list are recorded in the Business Wallet log and can be produced during audits.

3 Employee signs in with their EU Wallet

The employee opens logineu.html and signs in with their personal European Digital Identity Wallet. Our OIDC backend uses the wallet identity to look up their role in the company tenant — the personal PID identity is thereby linked to the company role.

4 Sign the invoice by drag-and-drop

The employee opens sign.html. The server mints (if not already present) a signing certificate carrying both the company name and the employee name:

  • CN: employee's given and family name
  • O: company name (legal entity)
  • SAN rfc822Name: employee's e-mail

The PDF is loaded by drag-and-drop, the PAdES level (B-T / B-LT / B-LTA) chosen, and signed. Flow and technical details are identical to the personal wallet — see the personal wallet HOWTO for step-by-step. The only difference is the additional company information in the certificate.

5 Audit log

For every signature the following is recorded centrally:

  • Time (UTC)
  • Signing employee (OIDC sub)
  • Company certificate used (serial number)
  • SHA-256 hash of the signed PDF
  • URL of the QTSP that issued the timestamp

The log is exportable from the admin panel (CSV, JSON) and forms part of your GoBD procedural documentation. It is itself signed.

6 Higher volume? Reach for the API

If your accounting team signs several hundred invoices per month, PDF-by-PDF drag-and-drop is not practical. The CSC v2 API uses exactly the same company certificates and exactly the same signing module, but can be called from your accounting software, ERP or a batch script. Full walkthrough: HOWTO: Sign invoices via CSC v2 API.

Back to overview HOWTO: API HOWTO: personal wallet Deutsch