Resolve Customer Account question; add commercial subscription research

Record B2B SaaS subscriber tenancy and Stripe billing source notes. Resolve
the Customer Account open question: reject it as canonical, add Commercial
Record and Commercial Relationship to the Record and relationship layers, and
document Subscriber as a convenience term only.
This commit is contained in:
2026-06-21 20:35:36 +02:00
parent 1c1b5c9bc6
commit 3ccf841095
11 changed files with 345 additions and 26 deletions

View File

@@ -146,15 +146,39 @@ An organization or other actor recognized by a legal system.
## Customer
An actor in a commercial or service-consumption relationship.
A commercial role played by an actor (usually an Organization, sometimes a
Natural Person for individual subscriptions) that consumes services from a
vendor.
Customer is a relationship role, not automatically a tenant or organization.
Customer is a relationship role, not a record type and not interchangeable with
Tenant, Organization, Account, or Commercial Record.
## Vendor
An actor in a service-provider relationship.
A commercial role played by an actor (usually an Organization) that provides
services to customer actors.
Vendor is a relationship role, not automatically a tenant or organization.
Vendor is a relationship role, not a tenant, realm, or organization synonym.
## Commercial Relationship
A typed relationship connecting a vendor actor to a customer actor for a
commercial or subscription purpose within a stated scope.
May reference a Commercial Record for billing state. Does not imply membership,
authorization, or identity equivalence.
## Commercial Record
A record in a billing, CRM, or commerce system that tracks payment methods,
subscriptions, invoices, contracts, or commercial contact details for an actor
or tenant.
Examples: Stripe Customer, Salesforce Account, subscription billing profile.
Commercial Record is in the Record layer. It is not an Account (login), not an
Organization actor, and not a Customer Account. Link it to Actor, Tenant, or
Scope via Identifier binding or Commercial Relationship.
## Community
@@ -292,3 +316,19 @@ pseudonymization with separately stored re-identification keys.
`User` may be used in prose when quoting or mapping external systems, but it
should not be a canonical root concept. Resolve it to a specific canonical
concept before using it in model definitions.
## Non-Canonical Convenience Term: Subscriber
`Subscriber` (common in Auth0 B2B SaaS documentation) usually means the
organization or party holding a subscription and tenant. Resolve to Organization
+ Customer Relationship role + Tenant Scope, or to Natural Person + Tenant for
individual subscriptions. Do not model as Customer Account or Account.
## Non-Canonical Convenience Term: Customer Account
Do not use `Customer Account` as a canonical term. Resolve by layer:
- login/access → Account;
- subscribing company → Organization + Customer Relationship role;
- billing/CRM record → Commercial Record;
- isolation boundary → Tenant.

View File

@@ -78,6 +78,13 @@ dimensions (NIST IAL, AAL, FAL). Do not collapse them into a single "trust
level" on an account. Record assurance metadata on bindings, credentials, and
federation relationships where sources provide it.
## P14. Separate Commercial Records From Accounts
Billing customers (Stripe), CRM accounts (Salesforce), and login accounts are
different layers. Model billing and commerce artifacts as Commercial Records
linked to actors and tenants through Commercial Relationships — not as Customer
Accounts and not by overloading Account.
## P13. Prefer Non-Destructive Linking
Entity resolution, federation account linking, and semantic web equivalence