POST que muda um protocolo exige o cabeçalho Idempotency-Key:
POST /protocolsPOST /protocols/{protocol_id}/appointmentPOST /protocols/{protocol_id}/cancel
400 idempotency_key_required.
Como gerar a chave
Gere uma chave nova para cada ação, comopedido-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-1epedido-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çalhoIdempotent-Replayed: true indica que a API reconheceu uma chamada já enviada.
POST /protocolsresponde202. ORetry-Aftersó vale enquanto ostatusforcreating.- Agendar e cancelar respondem
200.
409. O exemplo usa um horário fixo: troque date e time por um horário que GET /appointment-slots devolver.
Mesma chave, corpo diferente
Usar a mesma chave com dados diferentes responde409 idempotency_conflict. Para fazer a nova ação, troque a chave. Para repetir a ação original, reenvie o corpo original.
