Organizations
An Organization is the top-level tenant in MIDDAG Account. It represents a company, institution, or business entity that is your customer. Every piece of data in the system -- entitlements, collaborators, invoices, contracts, licenses, orders, services -- belongs to an Organization.
If you are used to WooCommerce treating every buyer as an individual user, this is the shift: MIDDAG Account treats every buyer as a company. People belong to companies. Companies buy products. Products create entitlements.
What an Organization contains
When you open an Organization in the admin interface, you see everything about that customer relationship in one place:
- Collaborators -- the people who belong to the organization, each with their own role and permissions
- Entitlements -- what the organization has access to (software licenses, managed environments, services, courses)
- Orders -- purchase history, including subscriptions
- Invoices -- financial records and payment status
- Quotes -- commercial proposals, accepted or pending
- Contracts -- service agreements with terms and SLA
- Licenses -- software licenses with activation details
- Environments -- managed hosting installations
- Services -- ongoing or project-based work
- Documents -- shared files, certificates, reports
No need to check Stripe for payments, HubSpot for contacts, and WooCommerce for orders separately. The Organization is the single view.
Organization fields
Every Organization has the following information:
| Field | Purpose |
|---|---|
| Name | The trade name (how you refer to the customer day-to-day) |
| Legal name | The official registered name (appears on invoices and tax documents) |
| Tax ID | CNPJ (Brazil), EIN (US), VAT number, or equivalent -- label adapts by country |
| Address | Full address: street, city, state, ZIP, country |
| Country | Determines currency defaults, tax rules, and billing entity routing |
| Currency | Preferred currency (BRL or USD) -- used for quotes and invoices |
| Billing entity | Which MIDDAG entity bills this customer: middag_br or middag_global |
| Stripe IDs | Separate Stripe Customer IDs for the BR and GLOBAL accounts |
| HubSpot IDs | Separate HubSpot Company IDs for the BR and GLOBAL accounts |
The dual Stripe and HubSpot IDs exist because MIDDAG operates as two legal entities (Brazil and US). Each Organization is routed to the correct entity for billing and CRM. Admins can override this per transaction if needed.
Verification states
Before an Organization can make purchases, accept quotes, or receive tax documents, it must be verified. Verification confirms that the business is real and its tax ID is valid.
| State | What it means |
|---|---|
| pending | Organization was just created. No documentation submitted yet. |
| under_review | Customer submitted documentation. Waiting for admin review. |
| verified | Admin approved. Organization can purchase, accept quotes, and receive invoices. |
| rejected | Admin rejected. Customer can resubmit documentation. |
Automatic verification is supported for some tax IDs. For example, a Brazilian CNPJ can be validated against the Federal Revenue API. If validation passes, the organization goes directly to verified without manual review.
When an organization becomes verified, MIDDAG Account fires a hook that syncs the data to HubSpot and sends a welcome email.
Parent-child organizations
Organizations can be arranged in a hierarchy: a holding company at the top, with subsidiaries underneath. This supports corporate structures where one parent entity manages several child companies.
Rules:
- Hierarchy supports up to 3 levels deep (holding, subsidiary, branch).
- Each level must be a billable entity with its own tax ID.
- Depth is not recursive -- the maximum is fixed and configurable by the admin.
- A subsidiary can belong to only one parent at a time.
Multi-entity routing
MIDDAG operates two legal entities: MIDDAG BR (Brazil) and MIDDAG GLOBAL (US LLC). Every transaction -- order, invoice, quote -- is automatically routed to the correct entity based on:
- The Organization's tax ID type (CNPJ routes to BR, EIN/VAT routes to GLOBAL)
- The Organization's billing entity setting
- The product's entity tag
- The preferred currency as a fallback
Admins can override the routing for any individual transaction. The routing determines which Stripe account processes the payment, which HubSpot account records the deal, and which tax rules apply.
When to create an Organization
Create an Organization when:
- A new customer signs up through the portal (self-service)
- A sales team closes a deal and needs to onboard the customer
- An admin manually sets up a customer from the WordPress admin
- A deal is synced from HubSpot and requires a matching Organization record
Do not create an Organization for individual consumers purchasing a single product. For B2C scenarios, MIDDAG Account supports standalone entitlements that are not tied to any Organization (see Entitlements for details on sovereign entitlements).
What admins see
In the WordPress admin, the Organizations list shows:
- Organization name and legal name
- Tax ID
- Verification status (with color indicators)
- Number of collaborators
- Number of active entitlements
- Billing entity (BR or GLOBAL)
- Creation date
Admins can filter by verification status, billing entity, or date range. Clicking an Organization opens its full detail view with tabs for collaborators, entitlements, orders, invoices, and all other related records.
Admins can also:
- Approve or reject verification (with a required justification note)
- Suspend an Organization (blocks portal access for all members without deleting data)
- Link or unlink Stripe and HubSpot IDs manually
- Set up parent-child relationships
- Create Organizations directly for customers who did not self-register
- Merge duplicate Organizations that represent the same legal entity
Data isolation
Organization data is strictly isolated. Every query in the system filters by organization_id. Data from one Organization never leaks into another Organization's view -- not in the admin interface, not in the REST API, not in exports. This is enforced at the middleware level, not just at the UI level.
Related pages
- Collaborators -- the people inside an Organization
- Entitlements -- what an Organization has access to
- Orders -- how purchases are connected to an Organization
- How Concepts Connect -- the full relationship diagram