Skip to content

Mensagens de Erro

Todas as respostas de erro seguem o envelope padrão com um objeto errors estruturado. Os códigos de erro usam o formato MIDDAG-{DOMAIN}-{CODE} para erros específicos de domínio e códigos padrão da API para erros de transporte.

Códigos de Erro da API

Esses códigos aparecem no campo errors.code de qualquer resposta de erro:

CódigoHTTPQuandoExemplo de Detalhe
VALIDATION_ERROR422Campos de entrada inválidos"Email is required"
AUTHENTICATION_ERROR401Token ausente, expirado ou inválido"Token expired"
AUTHORIZATION_ERROR403Permissões insuficientes"Scope 'finances' required"
NOT_FOUND404Recurso não existe"Organization 42 not found"
CONFLICT409Estado conflitante"Entitlement already cancelled"
RATE_LIMIT429Limite de requisições excedido"5 requests/min exceeded"
INTERNAL_ERROR500Erro inesperado no servidor"Unexpected error"

Estrutura da Resposta de Erro

json
{
    "success": false,
    "data": null,
    "meta": null,
    "message": "Validation failed",
    "errors": {
        "code": "VALIDATION_ERROR",
        "fields": {
            "email": [
                "Email is required"
            ],
            "name": [
                "Name must be at least 2 characters"
            ]
        }
    }
}

Para erros que não são de válidação, o objeto errors usa detail em vez de fields:

json
{
    "success": false,
    "data": null,
    "meta": null,
    "message": "Authentication failed",
    "errors": {
        "code": "AUTHENTICATION_ERROR",
        "detail": "Token expired"
    }
}

Códigos de Erro Específicos de Domínio

Erros de Organization

CódigoHTTPDescrição
MIDDAG-ORG-NOT_FOUND404A organização não existe
MIDDAG-ORG-CNPJ_INVALID422CNPJ falhou na válidação da API federal
MIDDAG-ORG-CNPJ_DUPLICATE409CNPJ já registrado em outra organização
MIDDAG-ORG-DELETE_DENIED403Somente o proprietário pode excluir a organização

Erros de Collaborator

CódigoHTTPDescrição
MIDDAG-COLLAB-NOT_FOUND404Registro de colaborador não encontrado
MIDDAG-COLLAB-INVITE_EXPIRED409Token de convite expirou
MIDDAG-COLLAB-INVITE_USED409Convite já aceito ou rejeitado
MIDDAG-COLLAB-ALREADY_MEMBER409O usuário já é um colaborador
MIDDAG-COLLAB-ROLE_ESCALATION403Não é possível atribuir um cargo superior ao seu

Erros de Entitlement

CódigoHTTPDescrição
MIDDAG-ENT-NOT_FOUND404O entitlement não existe
MIDDAG-ENT-ALREADY_CANCELLED409O entitlement já está cancelado
MIDDAG-ENT-INVALID_TRANSITION422A transição de status não é permitida
MIDDAG-ENT-INVALID_CLASS422A classe do entitlement não é reconhecida

Erros de Quote

CódigoHTTPDescrição
MIDDAG-QUOTE-NOT_FOUND404O quote não existe
MIDDAG-QUOTE-ALREADY_ACCEPTED409O quote já foi aceito
MIDDAG-QUOTE-EXPIRED409O período de validade do quote passou
MIDDAG-QUOTE-INVALID_TRANSITION422A transição de status não é permitida

Erros de License

CódigoHTTPDescrição
MIDDAG-LIC-NOT_FOUND404A licença não existe
MIDDAG-LIC-UNAVAILABLE503O sistema de licenças não está disponível
MIDDAG-LIC-ACTIVATION_LIMIT409Número máximo de ativações atingido
MIDDAG-LIC-DOMAIN_REQUIRED422O parâmetro domain é obrigatório
MIDDAG-LIC-DOMAIN_NOT_ACTIVE409O domínio não está ativado atualmente

Erros de Service

CódigoHTTPDescrição
MIDDAG-SVC-NOT_FOUND404O serviço não existe
MIDDAG-SVC-INVALID_TRANSITION422A transição de status não é permitida

Erros de Ticket

CódigoHTTPDescrição
MIDDAG-SR-NOT_FOUND404A solicitação de serviço não existe
MIDDAG-SR-INVALID_TRANSITION422A transição de status não é permitida
MIDDAG-SR-ENV_ONLY403Clientes só podem criar SRs para entitlements do tipo ENV

Erros de Autenticação

CódigoHTTPDescrição
MIDDAG-AUTH-INVALID_CREDS401E-mail ou senha inválidos
MIDDAG-AUTH-TOKEN_EXPIRED401O JWT expirou
MIDDAG-AUTH-TOKEN_REVOKED401Token revogado por logout
MIDDAG-AUTH-EMAIL_UNVERIFIED403E-mail ainda não verificado
MIDDAG-AUTH-ACCOUNT_DISABLED403A conta foi desabilitada
MIDDAG-AUTH-RATE_LIMITED429Muitas tentativas de autenticação

Tratamento de Erros no Código Cliente

typescript
const response = await fetch('/wp-json/middag-account/v1/entitlements', {
  headers: {
    'Authorization': `Bearer ${token}`,
    'X-Middag-Organization': orgId,
  },
});

const body = await response.json();

if (!body.success) {
  if (body.errors.code === 'AUTHENTICATION_ERROR') {
    // Redirecionar para login ou atualizar token
  } else if (body.errors.code === 'VALIDATION_ERROR') {
    // Exibir erros por campo de body.errors.fields
  }
}

Relacionados