Documentação da API

License Panel - Sistema de Licenciamento

Versão v1 API REST

Introdução

A API REST do License Panel permite que você integre o sistema de licenciamento em suas aplicações. Esta documentação fornece todas as informações necessárias para implementar e usar a API.

URL Base
https://licencasweb.com.br/api
Versão Atual

Atualmente estamos na versão v1 da API.

Formato de Resposta

Todas as respostas da API são retornadas em formato JSON.

Início Rápido

Validação Rápida de Licença

Para validar uma licença rapidamente, faça uma requisição POST para o endpoint de validação:

curl -X POST "https://licencasweb.com.br/api/license/validate" \ -H "Content-Type: application/json" \ -d '{ "license_key": "SUA_CHAVE_AQUI", "domain": "seusite.com" }'

A resposta será um JSON indicando se a licença é válida ou não.

Autenticação JWT

Sistema seguro de autenticação com tokens JWT

Validação em Tempo Real

Verificação instantânea de licenças

Multi-plataforma

Funciona com PHP, WordPress, HTML, JavaScript

Webhooks

Notificações automáticas de eventos

Autenticação

A API utiliza autenticação baseada em JWT (JSON Web Token). Para acessar os endpoints protegidos, você deve incluir o token JWT no cabeçalho da requisição.

POST /auth/login

Descrição: Autentica um usuário e retorna um token JWT.

Parâmetros
Parâmetro Tipo Obrigatório Descrição
email string Sim Email do usuário
password string Sim Senha do usuário
Exemplo de Requisição
POST https://licencasweb.com.br/api/auth/login HTTP/1.1 Content-Type: application/json { "email": "usuario@exemplo.com", "password": "senha123" }
Exemplo de Resposta
200 OK
{
    "success": true,
    "data": {
        "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
        "user": {
            "id": 1,
            "name": "João Silva",
            "email": "usuario@exemplo.com",
            "role": "admin"
        }
    }
}
Usando o Token

Inclua o token JWT no cabeçalho Authorization de todas as requisições protegidas:

GET https://licencasweb.com.br/api/licenses HTTP/1.1 Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9... Content-Type: application/json

Validação de Licença

POST /license/validate

Descrição: Valida uma licença e verifica se ela é válida para o domínio especificado.

Parâmetros
Parâmetro Tipo Obrigatório Descrição
license_key string Sim Chave da licença
domain string Sim Domínio para validação
Exemplo de Requisição
POST https://licencasweb.com.br/api/license/validate HTTP/1.1 Content-Type: application/json { "license_key": "LIC-1234567890ABCDEF", "domain": "meusite.com" }
Exemplo de Resposta - Licença Válida
200 OK
{
    "success": true,
    "valid": true,
    "data": {
        "license_key": "LIC-1234567890ABCDEF",
        "domain": "meusite.com",
        "status": "active",
        "expires_at": "2024-12-31 23:59:59",
        "plan": {
            "id": 1,
            "name": "Plano Premium",
            "features": ["feature1", "feature2"]
        }
    }
}
Exemplo de Resposta - Licença Inválida
400 Bad Request
{
    "success": false,
    "valid": false,
    "error": "License not found or expired",
    "code": "LICENSE_INVALID"
}

Gerenciamento de Licenças

Listar Licenças
GET /licenses

Descrição: Lista todas as licenças do usuário autenticado.

Parâmetros de Query
Parâmetro Tipo Obrigatório Descrição
page integer Não Número da página (padrão: 1)
limit integer Não Itens por página (padrão: 20)
status string Não Filtrar por status (active, expired, suspended)
Exemplo de Requisição
GET https://licencasweb.com.br/api/licenses?page=1&limit=10&status=active HTTP/1.1 Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...
Criar Nova Licença
POST /licenses

Descrição: Cria uma nova licença.

Parâmetros
Parâmetro Tipo Obrigatório Descrição
domain string Sim Domínio da licença
plan_id integer Sim ID do plano
duration integer Não Duração em dias (padrão: conforme plano)
Exemplo de Requisição
POST https://licencasweb.com.br/api/licenses HTTP/1.1 Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9... Content-Type: application/json { "domain": "meusite.com", "plan_id": 1, "duration": 365 }

Códigos de Erro

Código Status HTTP Descrição
INVALID_TOKEN 401 Token JWT inválido ou expirado
LICENSE_NOT_FOUND 404 Licença não encontrada
LICENSE_EXPIRED 400 Licença expirada
DOMAIN_MISMATCH 400 Domínio não autorizado para esta licença
INSUFFICIENT_PERMISSIONS 403 Permissões insuficientes
RATE_LIMIT_EXCEEDED 429 Limite de requisições excedido
INTERNAL_ERROR 500 Erro interno do servidor

Exemplos de Integração

PHP
<?php $license_key = 'SUA_CHAVE_AQUI'; $domain = $_SERVER['HTTP_HOST']; $data = [ 'license_key' => $license_key, 'domain' => $domain ]; $response = file_get_contents('https://licencasweb.com.br/api/license/validate', false, stream_context_create([ 'http' => [ 'method' => 'POST', 'header' => 'Content-Type: application/json', 'content' => json_encode($data) ] ])); $result = json_decode($response, true); if ($result['valid']) { echo "Licença válida!"; } else { die("Licença inválida!"); } ?>
JavaScript
async function validateLicense() { const response = await fetch('https://licencasweb.com.br/api/license/validate', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ license_key: 'SUA_CHAVE_AQUI', domain: window.location.hostname }) }); const result = await response.json(); if (result.valid) { console.log('Licença válida!'); } else { alert('Licença inválida!'); } }

Documentação da API License Panel

Acessar API | Central de Ajuda