Primeros pasos
Reintentos
Las redes reintentan, y un reintento nunca debe generar un segundo documento ni quemar un segundo número de factura. No tienes que hacer nada para ello: si vuelve a llegar una petición idéntica a una que enviaste en los últimos 10 minutos (misma plantilla, mismos valores, mismo título, misma clave), responde con el documento que produjo la primera, con HTTP 200 y replayed: true en lugar de 201.
La coincidencia es exacta a propósito: cambia el título y es un documento nuevo. Si prefieres decidir tú qué cuenta como la misma petición, envía una cabecera Idempotency-Key con cualquier cadena única para ella; la clave se recuerda 24 horas y un reintento que la lleve responde con el mismo documento diga lo que diga el cuerpo. En cualquier caso, un reintento que llega mientras la primera petición sigue en curso espera unos segundos y luego responde idempotency_in_flight.