C C-Connect Documentação

Erros, e o que fazer com cada um

Cada resposta que a API pode dar, a causa e a correcção.

Todas as respostas de erro têm a mesma forma:

{ "message": "O domínio mail.empresa.pt ainda não está verificado." }

Os erros de validação trazem também os campos:

{
  "message": "The given data was invalid.",
  "errors": {
    "to": ["Indica o destinatário."]
  }
}

A frase pode mudar de língua conforme o cabeçalho Accept-Language. O código de estado e os nomes dos campos nunca mudam, e é sobre esses que se programa.

401 · Não autenticado

Mensagem Causa Correcção
Chave de API inválida ou revogada Chave em falta, errada ou revogada Confirma o cabeçalho Authorization: Bearer ... e o estado da chave no painel

Um erro de copiar e colar apanha muita gente: um espaço no fim da chave, ou a chave posta no sítio do utilizador em vez da password no SMTP.

403 · Proibido

Mensagem Causa Correcção
Esta chave não pode enviar na stream deste domínio A chave está limitada a uma stream e o domínio é de outra Usa a chave certa, ou cria uma sem limite

404 · Não encontrado

Uma mensagem, um domínio ou um webhook que não existe nesta conta. Uma chamada com um identificador de outra conta também dá 404, e não 403: quem pergunta não tem o direito de ficar a saber que aquele identificador existe.

422 · O pedido não pode ser cumprido

O mais comum, e o mais informativo.

Mensagem Causa Correcção
O domínio ... não está registado nesta conta O from aponta para um domínio que não é teu Adiciona o domínio, ou corrige o from
O domínio ... ainda não está verificado Os registos de DNS não resolvem todos Ver Os registos de DNS
O endereço ... está na lista de supressões O destinatário está suprimido Não repitas. Ver Supressões
Uma mensagem de marketing precisa de unsubscribe_url Stream de marketing sem cancelamento Ver Cancelamento de subscrição
Erros por campo em errors Validação Lê cada campo

O 422 por supressão não é uma falha da tua integração: é o sistema a impedir um envio que ia devolver outra vez. Trata-o como um resultado.

429 · Pedidos a mais

Duas coisas diferentes dão 429, e o cabeçalho Retry-After distingue-as pelo tamanho: segundos é o limite de pedidos da chave, 600 por minuto; minutos ou horas é a quota da conta, por hora ou por dia.

Em qualquer dos casos espera o que o Retry-After diz e repete. Abrir mais ligações em paralelo piora, porque o limite da chave é por minuto e a quota é da conta inteira: mais ligações gastam a mesma conta mais depressa.

Não é preciso chegar aqui para saber onde estás: cada 202 traz X-CConnect-Quota-Remaining, e o resumo do painel mostra as duas janelas. Ver Enviar pela API.

Nada foi escrito e nada foi enviado. Um 429 não deixa mensagem nenhuma para trás.

503 · Serviço indisponível

Duas situações, ambas temporárias, ambas com Retry-After.

Na verificação de domínio quer dizer uma coisa muito concreta: não conseguimos consultar o DNS agora. Não quer dizer que os registos não estejam publicados.

É por isso que é 503 e não 200 com os registos a zero: um cliente que recebesse 200 iria republicar registos que já estavam correctos.

No envio quer dizer que a plataforma não consegue transportar a mensagem neste momento: ou nenhuma saída serve o teu domínio, ou o conjunto de IPs por onde ele sai já entregou o que podia hoje, ou há mais mensagens em fila do que as que saem. Preferimos dizê-lo à porta: a alternativa era aceitar com 202 e a mensagem ficar dias parada sem ninguém saber.

5xx · Nosso

Repete com espera crescente. Se persistir, fala connosco com o identificador da mensagem ou a hora do pedido.

Códigos SMTP, na submissão

Código O que é
535 Autenticação recusada: chave errada, revogada, ou no campo errado
530 Tentaste autenticar antes do STARTTLS
550 Mensagem recusada: domínio por verificar, endereço suprimido, ou marketing sem cancelamento
421 Estamos a limitar a ligação; tenta mais devagar

O que repetir e o que não

  • Repete: 429, 5xx, 503.
  • Não repitas: 401, 403, 404, 422. O pedido é o mesmo e a resposta vai ser a mesma.
  • Cuidado com o 202: repetir um pedido que já foi aceite envia uma segunda mensagem. Guarda o id antes de decidir.