Skip to main content

Guia de Integração

Este guia é voltado para desenvolvedores que estão integrando um sistema acadêmico existente — um ERP, Sistema de Informações do Estudante (SIS) ou LMS — com a API do DokStamp. Ele cobre o ciclo de vida completo da integração: configuração inicial, sincronização contínua de entidades, regras de exclusão e a trilha de auditoria.

Sincronizando a Estrutura Acadêmica

Como sincronizar cursos, módulos, turmas e estudantes do seu sistema para o DokStamp.

Regras de Exclusão

O que pode e o que não pode ser excluído após a emissão de certificados.

Ordem de Registro de Entidades

O grafo de dependências que todas as integrações devem seguir.

Cenário típico de integração


Antes de começar

A configuração da instituição é obrigatória primeiro. A instituição é a entidade raiz — todos os cursos, módulos e certificados dependem dela. Ela pode ser criada via:
  • O painel do DokStamp (configuração manual, feita uma única vez)
  • A API: POST /institutions
Uma vez que a instituição exista, toda a sincronização subsequente de entidades pode ser feita de forma programática.

Modos de integração

Síncrono (em tempo real)

Seu sistema chama a API do DokStamp diretamente quando uma entidade muda. Simples de implementar, funciona bem para cenários de baixo volume.

Assíncrono (baseado em queue)

Seu sistema enfileira um job sempre que uma entidade muda. Um worker em background processa a queue e chama a API do DokStamp. Recomendado para integrações de alto volume ou quando a disponibilidade do DokStamp não deve afetar o desempenho do seu sistema.
Estratégia de retry: Use backoff exponencial. Faça retry em HTTP 429 (rate limit) e 5xx (erros de servidor). Não faça retry em 4xx (erros do cliente — estes indicam um problema de dados ou autenticação que precisa ser investigado).

Idempotência: buscar antes de criar

O DokStamp não expõe chaves de idempotência. O padrão recomendado é buscar uma entidade antes de criá-la para evitar duplicatas.
Aplique o mesmo padrão para cursos (por code), turmas (por code) e módulos (por code + institution_uuid).