Respostas, erros e limites

O resultado de cada evento, os erros HTTP e os limites de uso.

Resposta de sucesso#

200 com um resultado por evento, na mesma ordem do envio:

JSON
{
  "results": [
    { "id": "evt_8f2c1a", "status": "accepted" },
    { "id": "evt_8f2c1b", "status": "duplicate" },
    { "id": "evt_8f2c1c", "status": "rejected", "reason": "deal.amount_invalid" }
  ]
}

Um lote com um evento ruim não derruba os outros: cada evento tem o seu resultado.

Status por evento#

statusSignificadoO que fazer
acceptedRecebido e gravado. Se o processamento falhar do nosso lado, nós mesmos refazemos.Nada
duplicateEsse id já tinha sido recebido com o mesmo conteúdo.Nada
ignoredTipo de evento não suportado nesta versão.Nada
rejectedEvento inválido. reason indica o campo.Corrigir e reenviar com novo id

Motivos de rejected#

O reason segue o padrão <campo>_<problema>:

SufixoQuando
_requiredCampo obrigatório ausente (contact.externalId_required).
_invalidFormato errado (occurredAt_invalid, deal.status_invalid, deal.amount_invalid).
_too_longTexto maior que o limite do campo.
_in_futureData mais de 5 minutos no futuro.
deal.currency_unsupportedMoeda diferente de BRL.
id_reusedid já usado com outro conteúdo.

Erros da requisição#

HTTPQuandoO que fazer
400Envelope inválido: schema_version_unsupported, events_required, too_many_events (mais de 50).Corrigir o envio
401Chave ausente, inválida, revogada ou expirada.Conferir a chave
403https_required, ou integração pausada pelo Clube do Lab.Usar HTTPS; se pausada, guardar os eventos e reenviar depois
429Limite de uso atingido.Esperar os segundos do header Retry-After e reenviar
5xxErro do nosso lado.Reenviar com os mesmos ids

Limites de uso#

LimiteValor
Eventos por requisiçãoaté 50
Requisições por minuto, por integraçãoaté 12 (cerca de 600 eventos por minuto)
Tamanho da requisiçãoaté 5 MB

Os limites cobrem com folga o uso normal e a carga inicial. Se precisar de mais, fale com a gente.