Skip to content

Endpoints de License

Licenças representam chaves de licença de software vinculadas a entitlements da classe PLG. O dominio License atua como adaptador sobre o WC Software License (quando presente) ou utiliza gerenciamento de licenças próprio.

Caminho base: /wp-json/middag-account/v1/licenses

Endpoints

MétodoEndpointAuthEscopoDescrição
GET/licensesJWT + OrglicensesListar licenças
GET/licenses/{id}JWT + OrglicensesDetalhes da licença
POST/licenses/{id}/activateJWT + OrglicensesAtivar licença em dominio
POST/licenses/{id}/deactivateJWT + OrglicensesDesativar de dominio

GET /licenses

Listar todas as licenças da organização atual.

Headers: X-Middag-Organization: {org_id}

Resposta (200):

json
{
    "success": true,
    "data": [
        {
            "id": 601,
            "license_key": "XXXX-XXXX-XXXX-XXXX",
            "product_name": "Campus EAD Plugin",
            "status": "active",
            "entitlement_id": 101,
            "entitlement_code": "PLG-2026040001",
            "activations_limit": 3,
            "activations_count": 1,
            "activated_domains": [
                "example.com"
            ],
            "expires_at": "2027-04-01T00:00:00Z",
            "created_at": "2026-04-01T10:00:00Z"
        }
    ],
    "meta": {
        "page": 1,
        "per_page": 20,
        "total": 1,
        "pages": 1
    }
}

GET /licenses/:id

Detalhes completos da licença incluindo historico de ativações e entitlement vinculado.

Campos de resposta: id, license_key, product_name, status, entitlement_id, entitlement_code, activations_limit, activations_count, activated_domains[], expires_at, created_at, updated_at.

POST /licenses/:id/activate

Ativar uma licença em um dominio especifico. Falha se o limite de ativações foi atingido.

Request:

json
{
    "domain": "mysite.example.com"
}

Resposta (200):

json
{
    "success": true,
    "data": {
        "license_id": 601,
        "domain": "mysite.example.com",
        "activations_count": 2,
        "activations_limit": 3
    },
    "message": "License activated"
}

Retorna 409 CONFLICT se o limite de ativações foi atingido.

POST /licenses/:id/deactivate

Desativar uma licença de um dominio especifico, liberando um slot de ativação.

Request:

json
{
    "domain": "mysite.example.com"
}

Resposta (200):

json
{
    "success": true,
    "data": {
        "license_id": 601,
        "domain": "mysite.example.com",
        "activations_count": 1,
        "activations_limit": 3
    },
    "message": "License deactivated"
}

Relacionados