Pular para o conteúdo principal

Formato da resposta

Exemplo de resposta Problem. Consulte na referência do endpoint o status HTTP, o tipo de mídia e o esquema da resposta:
Leia o esquema de resposta da operação chamada. Quando ele for HTTPValidationError, os detalhes de validação estarão em um array detail; cada entrada contém loc (onde), msg (o quê) e type. Outras respostas 422 documentadas usam Problem e podem incluir code e extra. Não presuma que todas as respostas 422 tenham o mesmo formato.

Interprete erros de validação de forma defensiva

Aceite corpos de erro JSON tanto com application/json quanto com application/problem+json. Primeiro verifique o status HTTP; depois, examine o corpo:
  1. Se code estiver presente, use a entrada correspondente desta página para escolher a ação.
  2. Se errors for um array, leia suas entradas loc, msg e type como detalhes de validação.
  3. Se detail for um array, interprete-o no formato HTTPValidationError. Um detail do tipo string é uma explicação, não uma lista de erros de campo.
  4. Preserve traceId, o status e a URL da requisição para suporte. Não exija que code ou extra existam nem compare mensagens legíveis por pessoas como identificadores.
Um campo inválido e uma regra que relaciona vários campos não precisam ter o mesmo status. As regras do corpo outbound revisadas geram 400 com BRIDGE_CORE_0103 quando consent.status é GRANTED sem capturedAt, ou quando template.media fornece ambos ou nenhum de mediaId e url. Tipos de campo ou UUIDs inválidos podem gerar, por sua vez, detalhes de validação de requisição com 422. Interprete o status e o corpo do erro juntos; não exija um array errors para toda requisição inválida.

Códigos legados com sufixo

Alguns tratadores de erro legados acrescentam um nome simbólico a code, por exemplo, BRIDGE_PRELOAD_FILE_0002 | PRELOAD_FILE_IS_PENDING. Preserve o valor recebido completo para logs e suporte. Para consultar o catálogo, aceite um código simples conhecido ou sua forma legada reconhecida explicitamente; não compare title ou detail, não invente um código desconhecido nem reescreva o corpo da resposta. Esta revisão do código-fonte não confirmou de forma independente qual versão do tratador está implantada.
Compatibilidade de validação: algumas respostas OpenAPI publicadas declaram HTTPValidationError.detail[] e application/json, enquanto o tratador compartilhado de erros da API revisado para esta documentação retorna detalhes de validação como Problem.errors[] com application/problem+json. Esta atualização editorial preserva as definições de resposta publicadas. Trate os dois formatos; a confirmação na API implantada continua pendente antes de adotar um deles como único formato aceito por um cliente gerado estrito.

Decida se deve tentar novamente

As orientações gerais de nova tentativa não acrescentam idempotência a um endpoint. Para reutilização outbound, recuperação e gravações parciais, veja outbound de Agente e transferência. Custom Connections tem sua própria referência de erros e não usa chave da API REST.

Erros ao responder a uma mensagem

Para POST .../messages, as verificações revisadas da mensagem à qual você responde definem estas formas legadas adicionais:
  • BRIDGE_MESSAGE_0001 | MESSAGE_NOT_FOUND (404): o Message indicado em replyToMessageId não foi encontrado.
  • BRIDGE_MESSAGE_0002 | MESSAGE_IS_NOT_ON_CONVERSATION (403): a mensagem à qual você responde pertence a outra Conversation. Use uma da Conversation em que você enviará a mensagem.
Preserve o code completo, incluindo seu sufixo simbólico. Essas verificações se referem à mensagem à qual você responde, não ao mediaId do anexo.

Erros de upload de arquivos

O fluxo de upload revisado define estes códigos legados. O sufixo faz parte do code recebido, não é um campo da requisição. Consulte o contrato de resposta da operação e mantenha a interpretação compatível acima. A operação determina quais erros de arquivo se aplicam: POST .../files verifica os metadados e pode retornar os códigos 0003 ou 0004 abaixo. POST .../messages pode retornar 0001 ou 0002 quando o mediaId de um anexo não existe ou ainda está pendente. Os arquivos de templates outbound têm seu próprio tratamento de erros; não substitua BRIDGE_AI_LEADSCOUT_0016 por esses códigos.

Códigos de erro de Agentes

Códigos de erro de operações de Agentes. POST .../agents/{agentId}/outbound retorna 0001 e 0004 como 404, 0002 e 0006 como 409, e 0003 e 0005 como 422.
  • 0002: o Agente é um rascunho ou não tem linha. extra.reason informa qual é o caso; o mesmo motivo aparece como unavailableReason em GET .../agents.
  • 0006: a conversa do Contato na linha selecionada pela requisição está sob o controle de outro Agente ou de um usuário do Bridge. Nada foi enviado. Libere-a com POST .../conversations/{conversationId}/release, usando extra.conversationId, e depois tente novamente. extra também contém channelId e, somente quando o controlador é um Agente, controllingAgentId. Quando o controlador é um usuário do Bridge, a chave está ausente, não é null.
GET .../agents retorna 0007 como 400 quando o cursor está malformado ou foi emitido para outro workspace. Recomece sem cursor. Mantenha o mesmo filtro type durante a paginação: um cursor emitido com um filtro type é rejeitado se a requisição informar outro type.

Outros códigos retornados por POST .../agents/{agentId}/outbound

Em POST .../agents/{agentId}/outbound, erros 5xx não contêm code nem extra.

Códigos de erro de LeadScout

Códigos adicionais documentados para iniciar uma conversa outbound de LeadScout com POST .../leadscout/outbound:

Códigos de erro de marcas

Códigos das verificações de marca na criação de uma conversa. Retornado como 400. Envie brandId ou providerChannelId para cada participante externo; extra.resources lista os participantes que não tinham nenhum dos dois.

Códigos de erro de conversas

Códigos das operações de conversas. Ao criar uma conversa, BRIDGE_CONVERSATION_0105 retorna 409 com extra.reason igual a PARTICIPANTS_MISMATCH: uma conversa liberada ocupa a linha do Contato com outros Contatos ou linhas. Solicite os mesmos Contatos e linhas ou use outra linha. BRIDGE_CONVERSATION_0601 retorna 404, 0602 e 0603 retornam 400, e de 0604 a 0608 retornam 422. Veja em parâmetros de templates iniciais o conteúdo de extra de cada erro e como corrigi-lo.

Códigos de erro de usuários externos

Códigos das operações de usuários externos, ou Contatos.

Códigos de erro de usuários internos

Códigos das operações de usuários internos.

Códigos de erro de canais de provedor

Códigos das operações de canais de provedor. Ao criar uma conversa, esse código é retornado como 409 quando nenhuma linha de WhatsApp está livre para um Contato e não há uma conversa liberada para recuperar, ou quando o providerChannelId informado não está disponível para esse Contato.

Códigos de limite de requisições

Códigos retornados quando um workspace excede a cota de requisições. Veja em limites de requisições a cota, os cabeçalhos e um cliente que controla seu ritmo. Esse é o único código que deve ser repetido automaticamente, e apenas após o intervalo informado no cabeçalho Retry-After. Falhas de autenticação não são erros de limite, e repeti-las periodicamente não resolverá o problema.

Códigos de erro de requisição

Códigos retornados antes de executar a operação, quando a própria requisição não pode ser processada. Veja no histórico de alterações os parâmetros que um endpoint deixará de aceitar. Nenhum desses erros deve ser repetido sem alterações. detail descreve o problema e, quando possível, identifica o campo ou parâmetro incorreto; a mesma requisição falhará da mesma forma até ser corrigida.

Códigos de erro de templates

Códigos das operações de templates. Retornado como 404 por GET .../templates/{templateId} quando o ID ou nome não corresponde a um template de WhatsApp do workspace.

Códigos de erro de workspace

Códigos das operações de workspace.