CRUD da Products API
Gerencie produtos através do Core API em https://api.licensechain.app/v1 com os mesmos campos que você pode editar no Dashboard (produtos do vendedor), incluindo URLs de política, opções de parceiros de pagamento terceirizados e (em níveis compatíveis) configurações de entrega.
Enviar Authorization: Bearer … com uma chave de usuário JWT ou uma chave de aplicativo API. Exemplos de copiar e colar em vários idiomas: API exemplos (multilíngue).
Pontos finais
GET /v1/products— liste seus produtos (paginação e filtros abaixo)POST /v1/products— criar (obrigatório:name,price; campos opcionais como no exemplo)GET /v1/products/{id}— leia umPUT /v1/products/{id}— substituição completa das chaves fornecidas (mesma validação do PATCH)PATCH /v1/products/{id}— atualização parcial; chaves omitidas permanecem inalteradasDELETE /v1/products/{id}— excluir quando nenhuma licença ou assinatura fizer referência ao produto
Listar parâmetros de consulta
GET /v1/products?limit=20&offset=0&active=true&search=pro&sortBy=createdAt&sortDir=desc
limit (padrão 20, máximo 100), offset, opcional active (true/false), search (substring sem distinção entre maiúsculas e minúsculas no nome do produto), sortBy (createdAt | name | price), sortDir (asc | desc).
Criar produto (exemplo de corpo)
Campos somente Enterprise (hideEmail, autoRedirect, licenseEmails, sendLicenseToCustomer) retornam 403 se sua conta não estiver em Enterprise. O faturamento recorrente requer stripePriceIdRecurring. Desativar cryptoPaymentsEnabled requer Business ou Enterprise. OpenAPI no repositório API lista todos os campos e restrições.
{
"name": "Pro Monthly",
"description": "Recurring access to premium feature set",
"price": 49.99,
"currency": "USD",
"active": true,
"successUrl": "https://merchant.example.com/pay/success",
"cancelUrl": "https://merchant.example.com/pay/cancel",
"helpUrl": "https://merchant.example.com/help",
"supportUrl": "https://merchant.example.com/support",
"termsUrl": "https://merchant.example.com/terms",
"privacyUrl": "https://merchant.example.com/privacy",
"refundUrl": "https://merchant.example.com/refund",
"productType": "subscription",
"billingType": "recurring",
"interval": "month",
"stripePriceIdRecurring": "price_1AbCdEfGhIjKlMn",
"stripeTaxEnabled": true,
"stripeIdentityRequired": false,
"cryptoPaymentsEnabled": true,
"hideEmail": false,
"autoRedirect": false
} Atualizar produto
Use PATCH para atualizações parciais ou PUT com os campos que deseja alterar. URLs de redirecionamento devem ser http ou https e no máximo 2.000 caracteres.
PATCH /v1/products/{id}
{
"name": "Pro Monthly Updated",
"price": 59.99,
"active": true,
"stripeTaxEnabled": true
} Excluir produto
DELETE /v1/products/{id}
Retorna 409 quando licenças ou assinaturas de clientes ainda estão vinculadas ao produto.
Forma de resposta
callbackSecret é emitido para novos produtos e pode ser alternado ao ativar fluxos de ocultação de e-mail; trate-o como um segredo para assinatura de webhook (consulte o guia de webhook de pagamento). userId pode ser null em algumas linhas internas ou legadas; os clientes devem tolerar a falta de um ID de proprietário.
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"userId": "user_123",
"name": "Pro Monthly",
"description": "Recurring access to premium feature set",
"price": 49.99,
"currency": "USD",
"active": true,
"successUrl": "https://merchant.example.com/pay/success",
"cancelUrl": "https://merchant.example.com/pay/cancel",
"helpUrl": "https://merchant.example.com/help",
"supportUrl": "https://merchant.example.com/support",
"termsUrl": "https://merchant.example.com/terms",
"privacyUrl": "https://merchant.example.com/privacy",
"refundUrl": "https://merchant.example.com/refund",
"productType": "subscription",
"billingType": "recurring",
"interval": "month",
"stripePriceIdRecurring": "price_1AbCdEfGhIjKlMn",
"stripeTaxEnabled": true,
"stripeIdentityRequired": false,
"cryptoPaymentsEnabled": true,
"hideEmail": false,
"autoRedirect": false,
"licenseEmails": [
"licenses-a@merchant.example.com",
"licenses-b@merchant.example.com"
],
"sendLicenseToCustomer": true,
"callbackSecret": "base64url_or_base64_secret_from_product_record",
"createdAt": "2026-05-11T07:00:00.000Z",
"updatedAt": "2026-05-11T07:00:00.000Z"
}