Endpoints de Entitlement
Os entitlements são o agregador central do middag-account. Cada produto, serviço, environment e licença se vincula a um entitlement por meio de um código único. Inspirado no modelo SEN da Atlassian, porem expandido com classes tipadas e gerenciamento de ciclo de vida.
Caminho base: /wp-json/middag-account/v1/entitlements
Endpoints
| Método | Endpoint | Auth | Escopo | Descrição |
|---|---|---|---|---|
| GET | /entitlements | JWT + Org | entitlements | Listar entitlements da organização |
| GET | /entitlements/{id} | JWT + Org | entitlements | Detalhes do entitlement |
| GET | /entitlements/code/:code`` | JWT + Org | entitlements | Busca por código (ex.: PLG-2026040142) |
| GET | /entitlements/{id}/orders | JWT + Org | entitlements | Pedidos vinculados |
| GET | /entitlements/{id}/licenses | JWT + Org | entitlements | Licenças vinculadas |
| GET | /entitlements/{id}/contracts | JWT + Org | entitlements | Contratos vinculados |
Formato do Código
Os códigos de entitlement seguem o padrão {CLASS}-{YEAR}{MONTH}{SEQ:4d}.
Classes:
| Classe | Tipo | Descrição |
|---|---|---|
PLG | Plugin | Entitlement de licença de software |
ENV | Environment | Ambiente de hospedagem gerenciado |
SVC | Service | Serviço profissional / projeto |
ORD | Order | Entitlement de pedido avulso |
AFL | Affiliate | Entitlement de programa de afiliados |
EDU | Education | Entitlement de treinamento / academia |
Exemplo: PLG-2026040001, ENV-2026050023, SVC-2026030005
GET /entitlements
Listar entitlements da organização atual.
Headers: X-Middag-Organization: {org_id}
Filtros de query:
| Parâmetro | Tipo | Valores |
|---|---|---|
class | string | PLG, ENV, SVC, ORD, AFL, EDU |
status | string | active, suspended, expired, cancelled |
search | string | Buscar por código ou nome do produto |
Resposta (200):
{
"success": true,
"data": [
{
"id": 101,
"code": "PLG-2026040001",
"class": "PLG",
"product_name": "Campus EAD",
"status": "active",
"organization_id": 42,
"company": "middag_br",
"expires_at": "2027-04-01T00:00:00Z",
"auto_created": true,
"created_at": "2026-04-01T10:00:00Z",
"updated_at": "2026-04-01T10:00:00Z"
}
],
"meta": {
"page": 1,
"per_page": 20,
"total": 1,
"pages": 1
}
}GET /entitlements/:id
Detalhes completos do entitlement incluindo metadados.
Campos de resposta: id, code, class, product_name, product_description, status, organization_id, company, expires_at, quote_id, auto_created, metadata, created_at, updated_at.
GET /entitlements/code/:code
Buscar um entitlement pelo seu código único. Retorna o mesmo schema de GET /entitlements/{id}.
GET /entitlements/code/PLG-2026040001GET /entitlements/:id/orders
Listar pedidos WooCommerce vinculados a este entitlement.
GET /entitlements/:id/licenses
Listar licenças de software vinculadas a este entitlement. Relevante apenas para entitlements da classe PLG.
GET /entitlements/:id/contracts
Listar contratos vinculados a este entitlement.
Valores de Status
| Status | Descrição |
|---|---|
active | Entitlement válido e operacional |
suspended | Temporariamente pausado (ex.: problema de pagamento) |
expired | Após data de expiração, não renovado |
cancelled | Cancelado permanentemente (estado terminal) |
Consulte Estados de Ciclo de Vida para a maquina de estados completa.