Pular para o conteúdo principal
A chave de idempotência evita repetir uma ação quando você reenvia a mesma chamada. Todo POST que muda um protocolo exige o cabeçalho Idempotency-Key:
  • POST /protocols
  • POST /protocols/{protocol_id}/appointment
  • POST /protocols/{protocol_id}/cancel
Sem o cabeçalho, a API responde 400 idempotency_key_required.

Como gerar a chave

Gere uma chave nova para cada ação, como pedido-12345-criar-1. Use de 1 a 128 caracteres entre letras, números e . _ : -. Não inclua dados pessoais. A chave não expira. Reenviar a mesma chave com o mesmo corpo sempre devolve o resultado da primeira chamada. A chave vale por ação:
  • POST /protocols: a chave é única para o parceiro. Uma chave que já criou um protocolo só serve para reenviar essa mesma criação.
  • Agendar e cancelar: a chave vale dentro do protocolo e da ação. Mesmo assim, use uma chave diferente para cada ação, como pedido-12345-agendar-1 e pedido-12345-cancelar-1.
  • Reagendar ou tentar outro horário é uma nova ação. Use uma chave nova, como pedido-12345-agendar-2.

Quando reenviar e quando usar outra chave

Reenvio idempotente

Ao reenviar com a mesma chave e o mesmo corpo, a API devolve o protocolo no estado atual. Ela não repete a ação nem desconta o saldo de novo. O cabeçalho Idempotent-Replayed: true indica que a API reconheceu uma chamada já enviada.
  • POST /protocols responde 202. O Retry-After só vale enquanto o status for creating.
  • Agendar e cancelar respondem 200.
O exemplo repete o agendamento do Início rápido com o mesmo protocolo, a mesma chave e o mesmo corpo. Por isso a API não responde 409. O exemplo usa um horário fixo: troque date e time por um horário que GET /appointment-slots devolver.
Resposta (resumida): o status e o cabeçalho. O corpo é o protocolo no estado atual.

Mesma chave, corpo diferente

Usar a mesma chave com dados diferentes responde 409 idempotency_conflict. Para fazer a nova ação, troque a chave. Para repetir a ação original, reenvie o corpo original.