Notificações

Envie notificações direcionadas ou para toda a operação. Suporta recorrência diária, semanal e mensal.

Endpoint

POST https://integrations.fhinck.com/insertNotification

Insere ou atualiza uma notificação. Idempotente por notification_id.

Idempotência: a combinação notification_id + key é única por empresa. Reenviar uma notificação com o mesmo ID atualiza a notificação existente em vez de duplicar. Use IDs descritivos e versionados (ex.: ALERTA_FISCAL_2026_001) para permitir correções posteriores sem criar ruído.

Request body

CampoTipoObrigatórioDescrição
keystringSimChave criptografada da empresa.
notificationobjectSimDados da notificação. Ver schema abaixo.
employeesstring[]NãoLogins dos destinatários. Se omitido, envia para todos os usuários ativos.

Schema: notification

CampoTipoObrigatórioDescrição
notification_idstringSimIdentificador único. Recomendado: PROJETO_001. Reenviar o mesmo ID atualiza a notificação.
titlestringSimTítulo exibido na interface.
descriptionstringNãoDescrição detalhada. Suporta HTML simples.
recurrencybooleanSimtrue para notificação recorrente, false para disparo único.
one_timestringSe recurrency=falseData/hora do disparo. Formato YYYY-MM-DD HH:mm:ss.
recurrency_typestringSe recurrency=truedaily, weekly ou monthly.
imagestringNãoURL de imagem para exibição.
buttonsarrayNãoBotões de ação customizados. Se omitido, botão "OK" é adicionado automaticamente.

Schema: buttons[] (opcional)

Cada botão customizado suporta os seguintes campos:

CampoTipoDescrição
iconstringNome do ícone a exibir (ex.: check, alert, link).
textstringTexto exibido no botão.
embedURLstringURL aberta ao clicar (suporta deep links).
iconColorstringCor do ícone em hex. Ex.: #ff6600.

Exemplos por linguagem

Disparo único

cURL — disparo único
curl -X POST https://integrations.fhinck.com/insertNotification \
  -H "Content-Type: application/json" \
  -d '{
    "key": "SUA_CHAVE_DE_INTEGRACAO",
    "notification": {
      "notification_id": "AVISO_FATURAMENTO_001",
      "title": "Lembrete: submissão de horas",
      "description": "Envie suas horas trabalhadas até as 18h de hoje.",
      "recurrency": false,
      "one_time": "2026-04-24 18:00:00"
    },
    "employees": ["joao.silva", "maria.souza"]
  }'

Recorrência semanal

cURL — recorrência semanal
curl -X POST https://integrations.fhinck.com/insertNotification \
  -H "Content-Type: application/json" \
  -d '{
    "key": "SUA_CHAVE_DE_INTEGRACAO",
    "notification": {
      "notification_id": "LEMBRETE_SEMANAL_PONTO",
      "title": "Verificação semanal de ponto",
      "description": "Confira se todas as batidas da semana estão corretas.",
      "recurrency": true,
      "recurrency_type": "weekly"
    }
  }'

Com botões customizados

Quando você envia o campo buttons, o botão padrão "OK" é substituído pelos customizados. Use embedURL para abrir deep links, landing pages ou fluxos internos.

cURL — com botões customizados
curl -X POST https://integrations.fhinck.com/insertNotification \
  -H "Content-Type: application/json" \
  -d '{
    "key": "SUA_CHAVE_DE_INTEGRACAO",
    "notification": {
      "notification_id": "PESQUISA_ENGAJAMENTO_2026",
      "title": "Pesquisa de engajamento Q2",
      "description": "Sua opinião importa. Leva 3 minutos.",
      "recurrency": false,
      "one_time": "2026-04-25 10:00:00",
      "buttons": [
        {
          "icon": "check",
          "text": "Responder agora",
          "embedURL": "https://forms.empresa.com/engajamento-q2",
          "iconColor": "#ff6600"
        },
        {
          "icon": "clock",
          "text": "Lembrar depois",
          "embedURL": "fhinck://snooze/24h",
          "iconColor": "#64748b"
        }
      ]
    }
  }'

Erros

StatusMensagemCausa
400Parametro key não informado ou inválidoKey ausente ou inválida.
422Campos obrigatórios ausentes: {campos}Campos obrigatórios do objeto notification não informados.
422Parametro employees deve ser um arrayCampo employees com tipo incorreto.
422Campo recurrency deve ser booleanTipo de recurrency incorreto.
422Campo obrigatório ausente: one_timerecurrency=false mas one_time não informado.
422Campo obrigatório ausente: recurrency_typerecurrency=true mas recurrency_type não informado.
500Erro interno no servidorFalha inesperada.
Todas as chaves do JSON são normalizadas para lowercase automaticamente — notification_ID é tratado como notification_id.