Erros, idempotência e retries

O formato de erro da API, como o SDK trata retries e como usar idempotência para não enviar duplicado.

Erros da API vêm num formato consistente, com type, code, message e (quando aplicável) field:

{
  "error": {
    "type": "invalid_request",
    "code": "validation_error",
    "message": "subject is required",
    "field": "subject",
    "request_id": "req_..."
  }
}

Retries

O SDK retenta automaticamente erros temporários (rede, 429, 5xx) com backoff exponencial. Erros de validação (4xx) não são retentados — corrija o pedido.

Idempotência

Para garantir que um retry não envie o e-mail duas vezes, passe uma chave de idempotência. Requisições com a mesma chave são processadas uma única vez:

await publiq.emails.send(
  { from, to, templateKey: 'welcome-email' },
  { idempotencyKey: 'signup-user-123' },
);
Erros, idempotência e retries — Publiq Docs