Documentação de Integração — Webhook

Especificação técnica para troca de dados com o sistema de credenciamento

MSD 2026 Ponto Ideal Eventos
Versão 1.0
Sistema Parceiro
Envia participantes
→ Participantes cadastrados
← Dados de credenciamento
Ponto Ideal Eventos
Sistema de credenciamento
📋 Visão Geral

A integração é bidirecional e em tempo real: o sistema parceiro envia a lista de participantes ao sistema Ponto Ideal Eventos, e o Ponto Ideal devolve os dados coletados no credenciamento (check-in, assinatura, LGPD) ao endpoint do parceiro. O campo id do sistema parceiro é a chave de correlação em ambas as direções — deve ser único e imutável por participante. A lista pode ser reenviada quantas vezes for necessário: participantes já existentes são atualizados, novos são inseridos, sem risco de duplicação.

ℹ️ Sobre os tokens: cada lado da integração possui seu próprio token Bearer. Os tokens são gerados e trocados entre as equipes antes do início da operação, via canal seguro. Nenhum token deve ser transmitido por e-mail aberto ou canais públicos.
Sistema Parceiro → Ponto Ideal — Envio de participantes
Endpoint de destino
POST https://msd.pontoidealeventos.com.br/api/webhook_receive.php
Exemplo completo da requisição
POST /api/webhook_receive.php HTTP/1.1
Host :  msd.pontoidealeventos.com.br
Content-Type :  application/json
Authorization :  Bearer msd2026_pi_a1b2c3d4e5f6g7h8i9j0 ← token fornecido pela Ponto Ideal
Token de autenticação — fornecido pela Ponto Ideal
Configuração no sistema parceiro
Header  Authorization
Formato  Bearer <TOKEN>
Exemplo de token  msd2026_pi_a1b2c3d4e5f6g7h8i9j0 ← o token real será entregue separadamente

* O token exibido acima é apenas um exemplo de formato. O valor real será entregue pela Ponto Ideal via canal seguro.

Corpo da requisição (JSON)

Array de participantes. Também é aceito um objeto com a chave "participantes".

Opção A — array direto (recomendado)
[
  {
    "id":            1,                       // obrigatório — chave de correlação
    "nome":          "João Silva",
    "email":         "joao.silva@email.com",
    "telefone":      "11999999999",
    "especialidade": "Ginecologia",
    "crm":           "123456",
    "uf":            "SP",
    "qrcode":        "ABC123XYZ"
  },
  {
    "id":   2,
    "nome": "Maria Souza",
    "crm":  "654321",
    "uf":   "RJ"
  }
]
Opção B — objeto com chave "participantes"
{
  "participantes": [
    { "id": 1, "nome": "João Silva", /* demais campos */ }
  ]
}
Campos aceitos
Campo Tipo Obrigatoriedade Descrição
id Inteiro Obrigatório ID único do participante no sistema parceiro. Chave de correlação — registros sem id são ignorados.
nome String Obrigatório Nome completo do participante.
email String Opcional Endereço de e-mail.
telefone String Opcional Telefone de contato.
especialidade String Opcional Especialidade médica do participante.
crm String Opcional Número do CRM.
uf String (2 chars) Opcional UF do CRM. Ex: "SP", "RJ".
qrcode String Opcional Código QR para leitura no credenciamento presencial.
Respostas do nosso sistema
200
Sucesso — dados processados. { "success": true, "inseridos": 10, "atualizados": 3, "erros": 0 }
401
Não autorizado — token ausente ou inválido. { "error": "Unauthorized" }
400
Requisição inválida — JSON malformado ou lista vazia. { "error": "JSON inválido" }  |  { "error": "Lista de participantes vazia" }
405
Método não permitido — somente POST é aceito.
⚠️ Requisições sem o header Authorization correto são rejeitadas com HTTP 401 e registradas no log do sistema para auditoria.
Ponto Ideal → Sistema Parceiro — Envio de dados de credenciamento

Sempre que houver dados novos de credenciamento (check-in, assinatura, LGPD), o sistema Ponto Ideal envia ao endpoint do parceiro em tempo real. Para que esta direção da integração seja configurada, o sistema parceiro deve fornecer as informações abaixo.

Informações que o sistema parceiro deve fornecer
Dados necessários para configuração — a preencher pelo parceiro
URL do endpoint  https://api.sistema-parceiro.com.br/webhook/credenciamento
Método  POST
Header de autenticação  Authorization
Formato do token  Bearer <TOKEN_DO_PARCEIRO>
Exemplo de token  parceiro_msd2026_x9y8z7w6v5u4t3s2 ← o token real deve ser fornecido pelo parceiro

* Os valores acima são exemplos de formato. O parceiro deve fornecer os dados reais via canal seguro.

Exemplo completo da requisição que enviaremos
POST /webhook/credenciamento HTTP/1.1
Host :  api.sistema-parceiro.com.br
Content-Type :  application/json
Authorization :  Bearer parceiro_msd2026_x9y8z7w6v5u4t3s2 ← token fornecido pelo parceiro
Formato do corpo que enviaremos (JSON)
Exemplo de payload
[
  {
    "id":         1,                         // ID original do sistema parceiro
    "checkin":    1,                         // 1 = presente | 0 = ausente
    "checkin_at": "2026-05-14 09:42:00",      // data e hora do check-in (null se ausente)
    "lgpd":       1,                         // 1 = aceite LGPD confirmado | 0 = não
    "assinatura": "data:image/png;base64,..."  // assinatura PNG em base64 (null se não coletada)
  },
  {
    "id":         2,
    "checkin":    0,
    "checkin_at": null,
    "lgpd":       0,
    "assinatura": null
  }
]
Campos enviados
Campo Tipo Descrição
id Inteiro ID original do sistema parceiro — usar para localizar e atualizar o registro.
checkin Inteiro (0 ou 1) 1 = participante realizou check-in presencial. 0 = ausente.
checkin_at String / null Data e hora exata do check-in no formato YYYY-MM-DD HH:MM:SS. null se não realizou check-in.
lgpd Inteiro (0 ou 1) 1 = participante confirmou aceite LGPD durante o credenciamento.
assinatura String / null Assinatura digital coletada no evento em formato Base64 PNG (data:image/png;base64,…). null se não coletada.
Resposta esperada do sistema parceiro
2xx
Qualquer código 2xx é interpretado como sucesso e registrado no log.
4xx / 5xx
Erro — registrado no log com código HTTP e corpo da resposta para diagnóstico.
ℹ️ O payload sempre contém todos os participantes com id do sistema parceiro cadastrados. Usar o campo id para localizar e atualizar o registro correspondente no sistema parceiro.