Pular para o conteúdo

Idempotência

Rede cai. Para poder repetir um pedido sem duplicar, mande o cabeçalho Idempotency-Key com um valor único por operação (o id do pedido no seu sistema, por exemplo). Em POST /mensagens, ele é obrigatório; você pode usar id_cliente (UUID) no corpo no lugar do cabeçalho.

  • Mesma chave e mesmo corpo em até 7 dias para envios (24 horas para outras operações): devolvemos a primeira resposta, com Idempotent-Replayed: true e Idempotent-Replayed-At, e nada é feito de novo. Depois do prazo, o mesmo identificador de mensagem ainda impede novo envio.
  • Mesma chave com corpo diferente: 409 idempotencia_conflito. Use uma chave nova para um pedido novo.
  • A chave tem de 1 a 200 caracteres visíveis, sem espaço (422 idempotencia_invalida).
  • A chave vale para a organização inteira (todas as chaves de API) e para uma operação só. Reaproveitar a mesma chave em outra rota também dá 409 idempotencia_conflito. Com mais de uma integração, use um prefixo por integração (erp-pedido-4821).
repetir com segurança
curl -X POST "https://chat.forsi.com.br/api/v1/mensagens" \
  -H "Authorization: Bearer $FORSI_CHAVE" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: pedido-4821" \
  -d '{
    "telefone": "+55 31 98888-7777",
    "tipo": "texto",
    "texto": "Olá! Sua consulta está confirmada para amanhã às 9h."
  }'

Rotas que aceitam Idempotency-Key#

RotaOperação
POST /mensagensEnviar mensagem
POST /contatosCriar contato
POST /webhooksCriar webhook
POST /webhooks/{id}/rotacionarTrocar o segredo
POST /webhooks/{id}/testarMandar um evento de teste
POST /webhooks/entregas/{id}/reenviarReenviar uma entrega
POST /funisCriar funil
POST /etapasCriar etapa
POST /negociosCriar negócio
POST /negocios/{id}/moverMover para outra etapa
POST /negocios/{id}/ganharMarcar como ganho
POST /negocios/{id}/perderMarcar como perdido
POST /negocios/{id}/reabrirReabrir negócio
POST /negocios/{id}/notasAnotar no negócio
POST /agendasCriar agenda
POST /compromissosMarcar compromisso
POST /compromissos/{id}/remarcarRemarcar compromisso
POST /bloqueiosCriar bloqueio
POST /equipe/convitesConvidar atendente
POST /equipe/convites/{id}/reenviarReenviar convite
POST /equipe/equipesCriar equipe
POST /conversas/{id}/atribuirAtribuir ou transferir conversa
POST /regras-comentarioCriar regra de comentário
PATCH /regras-comentario/{id}Editar regra de comentário

As demais escritas são naturalmente seguras de repetir (atualizar com o mesmo valor, cancelar duas vezes) ou dão 409/404 na segunda vez.