Credenciais (API externa)

Credenciais (API externa)

Visão Geral da Funcionalidade

 

Para realizar as chamadas à API, você deve utilizar a sua URL base do seu painel ADM. Exemplo:

image-20250425-120516.png

A URL para utilizar a API nesse caso acima será: https://api-sandbox.entregadigital.app.br/

A API da Entrega Digital permite integração externa com a plataforma, possibilitando que clientes criem automações e ferramentas personalizadas. Abaixo estão as principais funcionalidades e como utilizá-las, com os respectivos endpoints destacados.


Usuários

  • [GET] /api/v1/external/appusers/all → Utilize este método para listar todos os usuários (Atenção: permissão de acesso total requerido).
    🔹 Retorna uma listagem completa de todos os usuários cadastrados na plataforma, independente da associação com a chave de acesso utilizada. Ideal para integrações administrativas com permissão total, como sincronização de dados, análises ou exportações completas.

  • [GET] /api/v1/external/appusers → Utilize este método para listar os usuários associados à sua credencial de acesso (chave/token).
    🔹 Retorna apenas os usuários que pertencem ao escopo da chave/token usada na requisição, garantindo segurança e segregação de dados entre diferentes ambientes ou clientes.

  • [POST] /api/v1/external/appusers → Utilize esta função para criar novos usuários na plataforma, que serão associados à credencial de acesso (chave/token).
    🔹 Permite registrar novos usuários automaticamente via integração. Todos os usuários criados estarão vinculados à chave da requisição, podendo ser posteriormente autenticados, assinados ou atribuídos a compras.

  • [GET] /api/v1/external/appusers/{id} → Utilize este método para obter um usuário específico pelo ID, caso a credencial de acesso (chave/token) possua essa permissão.
    🔹 Retorna os dados detalhados de um usuário único, identificado pelo seu ID. Pode ser utilizado para montar interfaces administrativas, validar status ou sincronizar dados específicos.

  • [PUT] /api/v1/external/appusers/{id} → Utilize este método para alterar informações do usuário, caso a sua credencial de acesso (chave/token) possua essa permissão.
    🔹 Permite atualizar informações como nome, email, dados adicionais, entre outros. Ideal para integrações onde o perfil do usuário pode ser editado por sistemas externos.

  • [DELETE] /api/v1/external/appusers/{id} → Utilize este método para desassociar um usuário (especificado pelo ID) da credencial de acesso (chave/token).
    🔹 Essa ação remove a associação entre o usuário e a chave de acesso utilizada, mas não necessariamente exclui o usuário da plataforma. Use em casos de encerramento de vínculo ou controle de acesso.

  • [POST] /api/v1/external/appusers/login → Este endpoint autentica um usuário com base em seu e-mail e senha. Ele retorna um token de acesso que deve ser utilizado nas requisições subsequentes.
    🔹 Serve para realizar o login do usuário via API e retornar um token JWT, que será usado nas requisições futuras para autenticação e autorização de ações.

  • [POST] /api/v1/external/decode-user-token → Permite decodificar o token edm_token recebido em URLs externas para obter o appuser_id real do usuário logado.

Esse token é assinado e possui expiração de 6 horas.


Produtos Favoritos

  • [POST] /api/v1/external/products/favorite → Favorita um ou mais produtos com o ID ou email do usuário.
    🔹 Permite registrar produtos como "favoritos" para um usuário específico. Pode ser usado para personalização de experiências, recomendações, ou facilitar o acesso a conteúdos preferidos.


Planos

  • [GET] /api/v1/external/plans → Utilize este método para listar os planos disponíveis.
    🔹 Retorna a lista de planos de assinatura ativos na plataforma, com informações como nome, preço, duração, e recursos incluídos. Útil para exibir opções no front-end ou montar fluxos de contratação.


Assinaturas

  • [POST] /api/v1/external/appusers/subscribe → Utilize esta função para criar novas assinaturas.
    🔹 Associa um plano a um usuário, iniciando uma assinatura com base nas regras do plano selecionado. Pode ser usado para automação de cadastros pagos ou campanhas promocionais.

  • [PUT] /api/v1/external/subscriptions/{id} → Utilize esta função para mudar a data vencimento da assinatura.
    🔹 Atualiza a data de validade de uma assinatura existente. Permite ajustes manuais ou automatizados para prorrogação, renovação, bônus de tempo, entre outros.

  • [DELETE] /api/v1/external/subscriptions/{id} → Utilize esta função para cancelar uma assinatura.
    🔹 Cancela imediatamente uma assinatura ativa. Deve ser usado com cuidado, pois impacta diretamente o acesso do usuário aos conteúdos pagos ou restritos.


Compras de Produtos ou Pacotes

  • [POST] /api/v1/external/appusers/purchase → Utilize esse endpoint para criar novas vendas de produtos ou pacotes de produtos. Um dos campos product_id ou bundle_id deve estar presente. Se buy_at não for informado, será assumido como a data/hora atual. O campo ends_at é sempre obrigatório e deve ser uma data futura.
    🔹 Permite registrar compras individuais (produtos) ou pacotes (bundles). Define o período de acesso com base em regras dinâmicas, podendo ajustar prazos com o campo days_added. Ótimo para vender cursos, conteúdos premium, eventos ou combos.

  • [DELETE] /api/v1/external/purchases/{purchase} → Utilize esse endpoint para cancelar uma compra realizada por um usuário. A compra será invalidada e removida da base de vendas. Atenção: essa ação não poderá ser desfeita. O uso é recomendado para casos de chargeback ou reembolsos manuais.
    🔹 Revoga permanentemente o acesso adquirido com a compra. Ideal para lidar com problemas financeiros, fraude ou cancelamentos solicitados.

  • [POST] /api/v1/external/purchases/{purchase}/block → Utilize este endpoint para bloquear temporariamente uma compra. O campo blocked_at será preenchido com a data/hora atual e a validade (ends_at) será encerrada imediatamente.
    🔹 Suspende o acesso a um produto ou pacote sem apagá-lo da base. Muito útil em situações de pagamento pendente, comportamento irregular ou bloqueios administrativos.

  • [POST] /api/v1/external/purchases/{purchase}/unblock → Utilize este endpoint para desbloquear uma compra previamente bloqueada. A nova data de término (ends_at) deve ser informada.
    🔹 Restaura o acesso à compra, podendo definir uma nova validade. A lógica de prazo segue os mesmos critérios da criação original, inclusive com days_added (positivo ou negativo).


Vouchers

  • [POST] /api/v1/external/generatevouchers → Utilize esta função para criar novos vouchers.
    🔹 Gera códigos promocionais que podem ser usados para liberar acesso a conteúdos, descontos ou planos. Ótimo para ações de marketing, parcerias e distribuição gratuita ou com cupom.


🔗 Headers Obrigatórios

Para garantir o correto funcionamento da API e receber as respostas (inclusive de erro) no formato JSON, é obrigatório utilizar o seguinte header em todas as requisições:

Accept: application/json

Importante: O não envio desse header pode fazer com que as respostas de erro venham em outro formato (ex.: HTML), dificultando o tratamento programático dos retornos.

 


🚫 Códigos de Erro e Tratamento de Respostas

Além dos fluxos principais, é fundamental que as aplicações que consomem a API estejam preparadas para tratar os diferentes tipos de erros que podem ser retornados.

🔄 Códigos HTTP Comuns

Código

Descrição

Quando ocorre

Código

Descrição

Quando ocorre

400

Bad Request

Erro de validação de parâmetros ou corpo da requisição.

401

Unauthorized

Credenciais inválidas ou token ausente/expirado.

404

Not Found

Registro ou recurso solicitado não encontrado.

429

Too Many Requests

Limite de requisições excedido (rate limit).

500

Internal Server Error

Erro interno inesperado no servidor.


 

Gerencie suas chaves de API

No menu lateral do painel ADM, acesse a aba Ferramentas > Credenciais. Nesta tela é possível acessar a Documentação da API, realizar a criação de novas Credenciais e o gerenciamento das já existentes.

Ao criar uma credencial, você recebe uma chave para usar a API da Entrega Digital.

image-20240522-190910.png

Nova Credencial:

Para adicionarmos uma Credencial, é preciso inserir o Nome da Integração e definir qual o nível do acesso, que é dividido em dois:

image-20240522-191433.png
1. Acesso para apenas usuários criados pela API.
image-20240522-191552.png
2. Acesso total: Acesso à todos os usuários do sistema e suas informações completas.

 

Após ter finalizado a criação da Credencial, você poderá visualizar a mesma, com a opção de Editar e Inativar/Ativar.

image-20240522-192029.png

Atenção: Existe um limite de 120 chamadas à API Externa por minuto
As chamadas devem ser controladas para não ultrapassar esse limite. Caso ultrapasse, será retornado erro 429.