Skip to content

Create Your First Entitlement

An Entitlement is the central record in MIDDAG Account. It represents one simple fact: "Organization X has access to Product/Service Y." Every license, contract, invoice, and service request connects back to an entitlement. If you want to know what a customer has, you look at their entitlements.

In normal operation, entitlements are created automatically when a customer places an order through WooCommerce. But for your initial setup, you will create one manually to understand how the system works.

What you will need

  • At least one Organization already created and verified (see Create Your First Organization)
  • MIDDAG Account plugin installed with Entitlement Classes configured

Step 1: Open the Entitlements list

In your WordPress admin sidebar, navigate to MIDDAG Account > Entitlements. Click New Entitlement.

Step 2: Select the Organization

Choose which Organization this entitlement belongs to. This is the customer who will "own" this entitlement. Start typing the organization name and select it from the dropdown.

Tip: Selecting an Organization is optional. Entitlements can exist without one — useful for gift cards, promotional access, or individual (non-business) customers. For this getting-started guide, we recommend linking to an Organization so you can see the full lifecycle flow.

Step 3: Select the Entitlement Class

Every entitlement has a Class that determines what type of product or service it represents. MIDDAG Account ships with six default classes:

ClassPrefixWhat it representsExample
PluginPLGA software license"Acme Corp has a license for MIDDAG Forms Pro"
EnvironmentENVA managed hosting installation"Acme Corp has a WordPress staging environment"
ServiceSVCAn ongoing service or project engagement"Acme Corp has a consulting retainer"
OrderORDA generic purchase entitlement"Acme Corp purchased a custom report package"
AffiliateAFLMembership in the partner program"Acme Corp is an affiliate partner"
EducationEDUTraining, courses, or mentoring access"Acme Corp has access to the Admin Academy"

Select the class that matches what you are testing. For a first test, Plugin (PLG) or Order (ORD) are good choices.

INFO

Entitlement Classes are configurable from your admin settings. You can rename them, adjust their behavior, or create new ones to match your business. They are stored in the database, not hardcoded.

Step 4: Set the dates

FieldWhat it means
Start DateWhen this entitlement becomes active. Typically today for a new purchase.
Expiration DateWhen access expires if not renewed. Set this to a year from today for a typical annual subscription, or leave empty for perpetual access.

Step 5: Fill in product details

Enter the product or service name and an optional description. If you are linking this to an existing WooCommerce product, you can select it here — but for a manual test, a descriptive name is sufficient.

Step 6: Save

Click Save. The system will:

  1. Generate a unique, immutable Entitlement Code
  2. Set the status to Active
  3. Display the entitlement in the Organization's record

Understanding the Entitlement Code

Every entitlement gets a code in this format:

{CLASS}-{YEAR}{MONTH}{SEQ}

For example: PLG-2026050001

  • PLG — the class prefix (Plugin)
  • 2026 — the year
  • 05 — the month
  • 0001 — the sequential number (the first Plugin entitlement created in May 2026)

This code is:

  • Unique — no two entitlements share the same code
  • Immutable — once assigned, it never changes
  • Human-readable — you can tell the class and approximate creation date at a glance
  • Customer-visible — customers see this code in the portal, in emails, and when opening support requests

When a customer calls support and says "I have a question about PLG-2026050001," your team knows exactly what they are talking about.

The four lifecycle states

Every entitlement is always in one of four states:

StateWhat it meansHow it happensWhat happens next
ActiveThe customer has access. Everything works normally.Created (manually or by purchase). Or reactivated from another state.Stays active until it expires, is suspended, or is cancelled.
SuspendedAccess is temporarily paused.Typically triggered by a failed payment. An admin can also suspend manually.Can return to Active if payment is recovered. Can move to Cancelled if not resolved.
ExpiredThe entitlement's end date has passed without renewal.Automatic when the expiration date is reached.Can return to Active if the customer renews. Can move to Cancelled after a grace period.
CancelledPermanently revoked.Admin action, or automatic after prolonged suspension/expiration without resolution.Can be reactivated (win-back scenario), but this is an intentional admin action.

When an entitlement changes state, everything connected to it follows. If a Plugin entitlement is suspended, the associated license is suspended. If a Service entitlement expires, the linked contract reflects that.

Verify it worked

After saving, confirm the following:

  1. Entitlement list — your new entitlement appears with the correct code, class, organization, and Active status
  2. Organization detail — navigate to the Organization and check the Entitlements tab. Your entitlement should appear there.
  3. Code format — the code follows the {CLASS}-{YEAR}{MONTH}{SEQ} pattern

Remember: this is a manual test

In production, you will not create entitlements by hand. The normal flow is:

  1. Customer places an order through WooCommerce
  2. Payment is confirmed (via Stripe, Pix, Boleto, or another gateway)
  3. MIDDAG Account automatically creates the entitlement with the correct class
  4. Downstream resources (license, contract, environment) are provisioned automatically

This manual creation exists so you can verify the system is configured correctly before connecting it to your commerce flow.

What to do next

  • Run your first lifecycle — connect a WooCommerce product to an Entitlement Class and test the full automated flow from purchase to provisioning