> ## Documentation Index
> Fetch the complete documentation index at: https://developers.mypilotindex.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Idempotência

> Como cada rota de parceiro se torna segura para repetir.

As rotas de parceiro não aceitam o cabeçalho `Idempotency-Key`. Cada rota se torna segura para repetir do seu próprio jeito.

## Posts, stories e vagas

Toda criação exige um `client_ref` escolhido por você. O mesmo `client_ref` com o mesmo corpo responde `200` com o id guardado e `replayed: true`, e não cria nada; com outro corpo, responde `409 conflict` com o motivo `client_ref_reused`. Veja [como repetir sem risco](https://developers.mypilotindex.com/pt-br/publishing.md#repetindo-sem-risco).

Uma alteração ou um encerramento de vaga, e toda remoção, podem ser repetidos: a vaga termina no mesmo estado, e uma remoção que já aconteceu responde `404 not_found`.

## Totais de voo

`PUT /v1/partner/grants/{grant_id}/flight-totals` envia um estado completo, não uma alteração, e o `as_of` torna a repetição segura:

* `as_of` é obrigatório. Ele indica o instante do estado do logbook, em RFC 3339, e é comparado até o microssegundo.
* Ele não pode estar mais de 5 minutos à frente do relógio do servidor. Um `as_of` posterior a isso é recusado com `400 invalid_request`.
* Enviar de novo o mesmo `as_of` e os mesmos totais, por exemplo depois de perder a resposta, responde `200` e não aplica nada, enquanto esse envio ainda for o último envio aceito do grant.
* Depois que um envio mais novo é aceito, a mesma repetição responde `409 conflict` com o motivo `stale_totals`. O mesmo vale para qualquer envio cujo `as_of` seja anterior ao último aceito. Nada é aplicado. Envie o estado atual do logbook.
* Uma repetição é reconhecida pelo `as_of` e pelos totais que ela soma, não pelos bytes: dois corpos diferentes enviados com o mesmo `as_of` que somam os mesmos totais são o mesmo envio.

O limite de frequência de 15 minutos vem depois dessas verificações: uma repetição do último envio aceito recebe `200` mesmo dentro da janela, um `as_of` anterior recebe `409 stale_totals`, e só um envio novo dentro da janela responde `429 push_throttled`.

O MyPilotIndex eleva cada coluna de horas ao valor do logbook quando ele é maior e nunca diminui uma coluna, então um envio repetido não pode somar tempo duas vezes.

## Troca de código

Um código funciona uma única vez. Trocá-lo de novo, depois de perder a resposta, responde `400 invalid_request` com o motivo `invalid_grant`, como no OAuth. Reinicie o consentimento para obter um novo código.

## Leituras

Chamadas de leitura podem ser repetidas com segurança.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.