M8 Partners
Catálogo de integrações
Webhooks

QI Tech · Carteiras & Passivos

Notificação em tempo real de que a composição (carteira) e as posições de um fundo estão prontas. A cada mudança de status, a M8 recebe o evento composition.status_change e busca os dados atualizados automaticamente.

Método

POST

Autenticação

Assinatura HS256

Formato

JSON

Disponibilidade

Produção

Visão geral

A QI Tech dispara um POST para a M8 sempre que o status de uma composição muda. O processamento na M8 é assíncrono: respondemos imediatamente (200) e, em seguida, buscamos os dados pela própria API autenticada da QI Tech. O webhook é apenas o sinalizador — o dado autoritativo continua vindo da QI Tech.

Autenticação

Cada disparo da QI Tech vem assinado: o header SIGNATURE carrega um JWT HS256 assinado com a Signature Key trocada na configuração do webhook. A M8 valida a assinatura — requisições sem SIGNATURE ou com assinatura inválida recebem 401. IPs de origem: produção 54.205.166.229, sandbox 52.72.221.4.

Header
SIGNATURE: <JWT HS256 assinado com a Signature Key>
Endpoint

POST

https://m8-core-api.azurewebsites.net/WebhookQiTech/StatusChange

Corpo da requisição
application/json
{
  "webhook_type": "composition.status_change",
  "webhook_datetime": "2026-05-28T22:19:00",
  "data": {
    "composition_key": "11111111-2222-3333-4444-555555555555",
    "composition_date": "2026-05-27",
    "composition_type": "final_quota",
    "status": "confirmed",
    "fund_class_key": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"
  }
}
CampoTipoObrigatórioDescrição
webhook_typestring
sim
Tipo do evento. Esperado: composition.status_change.
webhook_datetimestring
sim
Data/hora do disparo (ISO 8601).
data.composition_keystring
sim
Chave da composição (usada para buscar o detalhe).
data.composition_datestring
sim
Data de referência da composição (yyyy-MM-dd).
data.composition_typestring
sim
Tipo da composição (ex.: final_quota, pre_quota).
data.statusstring
sim
Novo status. Ver seção Comportamento por status.
data.fund_class_keystring
sim
Chave da classe do fundo.
Comportamento por status
data.statusAção da M8
confirmedDispara a coleta da carteira (composição) do fundo na M8.
reprocessedIdem — a posição mudou, a M8 recoleta a carteira.
outrosRecebidos e registrados, sem ação.
Respostas
HTTPSignificado
200
Webhook recebido. Corpo: { "message": "recebido" }.
400
JSON malformado / corpo inválido.
401
Token ausente ou inválido.
Reenvio (retry)

O endpoint é idempotente: reenviar o mesmo evento não duplica dados (a coleta substitui a carteira do fundo na data). Recomendamos reenviar em caso de resposta diferente de 2xx (ex.: backoff exponencial com algumas tentativas).

Exemplos
cURL
bash
curl -X POST "https://m8-core-api.azurewebsites.net/WebhookQiTech/StatusChange" \
  -H "Content-Type: application/json" \
  -H "SIGNATURE: <JWT HS256 — gerado pela QI Tech>" \
  -d '{
    "webhook_type": "composition.status_change",
    "webhook_datetime": "2026-05-28T22:19:00",
    "data": {
      "composition_key": "11111111-2222-3333-4444-555555555555",
      "composition_date": "2026-05-27",
      "composition_type": "final_quota",
      "status": "confirmed",
      "fund_class_key": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"
    }
  }'
Payload
application/json
{
  "webhook_type": "composition.status_change",
  "webhook_datetime": "2026-05-28T22:19:00",
  "data": {
    "composition_key": "11111111-2222-3333-4444-555555555555",
    "composition_date": "2026-05-27",
    "composition_type": "final_quota",
    "status": "confirmed",
    "fund_class_key": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"
  }
}
Dúvidas sobre a integração? Fale com o time de tecnologia da M8 Partners.