Skip to main content
Billing is not about your end-clients paying their card bills. It’s about how OpenCard invoices you (the EMS) for platform usage. A billing profile defines the legal entity, address, and invoice email that appears on your invoice from OpenCard. Organizations link to a billing profile via billing_id.

Why it exists

You might run dozens of organizations (your customers) in OpenCard — but you don’t necessarily want dozens of invoices from us. Billing lets you say: “These organizations belong together on one invoice.”
Your setupBilling setup
1 org per client, separate invoices1 billing profile per org
3 subsidiaries, one group invoice1 billing profile shared by 3 orgs
Enterprise client with 10 orgs, billed centrally1 billing profile for all 10

How it fits

Account
└── Billing (invoice recipient — legal name, address, email)
    ├── Organization A  ─┐
    ├── Organization B  ─┼─ same billing_id → one invoice line from OpenCard
    └── Organization C  ─┘
Each organization still has its own webhooks, card holders, and transaction flow. Billing only affects how OpenCard groups usage on the invoice to you.

Create a billing profile

POST /accounts/{accountId}/billings
Scope: billings-write
{
  "name_display": "Acme Expense Group",
  "name_legal": "Acme Expense Group AB",
  "organization_number": "5561234567",
  "country": "SE",
  "email_invoice": "finance@acme-ems.se",
  "your_reference_invoice": "PO-12345"
}
Returns a billing object with id. Use that when creating or updating organizations.
When you create an organization, set billing_id:
{
  "reference_id": "client_acme_001",
  "tpa_id": 42,
  "name": "Acme AB",
  "billing_id": 1
}
Multiple organizations with the same billing_id are grouped on one OpenCard invoice.
Billing is configured early in onboarding — often together with TPA setup via the ocTPA plugin.

Example: three orgs, one invoice

You onboard three companies that should be billed as one entity:
  1. POST /billingsbilling_id: 10
  2. POST /organizations with billing_id: 10 for Org A
  3. POST /organizations with billing_id: 10 for Org B
  4. POST /organizations with billing_id: 10 for Org C
OpenCard rolls up usage from all three orgs onto one invoice addressed to the billing profile’s legal entity and email_invoice.

What you don’t control via billing

  • Card issuer invoices to end-clients (that’s between bank and cardholder)
  • Transaction webhooks or event routing (that’s per organization)
  • Which products are enabled (product_transaction, product_digital_receipt, etc. are set on the billing profile by OpenCard)
Billing is purely: who receives the OpenCard platform invoice, and which orgs roll up into it.