Mensagens de erro

Usamos códigos HTTP convencionais nas respostas para indicar o sucesso ou a falha de uma solicitação da API. Em geral, os códigos no intervalo 2xx indicam sucesso, os códigos no intervalo 4xx indicam um erro que falhou dado a informação fornecida (por exemplo, um parâmetro obrigatório foi omitido, uma falha de carga, etc.) e os códigos no intervalo 5xx indicam um erro com nossos servidores (estes são raros).

Unauthorized Request

Se o token ou as credenciais forem inválidas, ou o code estiver expirado, ou o usuário não estiver autorizado Status 401 Unauthorized.

Exemplo

{
    "errors": [
        {
          "error_type": "UNAUTHORIZED",
          "error_message": "Invalid token."
        },
        {
          "error_type": "ACCESS_DENIED",
          "error_message": "Wrong credentials provided."
        },
        {
           "error_type": "EXPIRED_CODE_GRANT",
           "error_message": "The authorization code grant has expired."
        },
        {
          "error_type": "INVALID_REFRESH_TOKEN",
          "error_message": "The provided refresh token is invalid or was revoked."
        }
    ]
}

Resource Not Found

Se o recurso não existir no RD Station Status 404 not found.

Exemplo

{
    "errors": {
        "error_type": "RESOURCE_NOT_FOUND",
        "error_message": "Lead not found."
    }
}

Invalid Content-Type Header

Se o Content-Type não estiver configurado corretamente Status 415 Unsupported Media Type.

Exemplo

{
    "errors": {
        "error_type": "UNSUPPORTED_MEDIA_TYPE",
        "error_message": "The payload is in a format not supported by this method on the target resource."
    }
}

Malformed Body Request

Se a solicitação do corpo for mal formada de acordo com o cabeçalho Content-Type Status 400 Bad Request.

Exemplo

{
    "errors": {
        "error_type": "BAD_REQUEST",
        "error_message": "Could not parse the body of the request according to the provided Content-Type."
    }
}

Invalid format

Se um formato inválido para um atributo for enviado Status 400 Bad Request.

Exemplo

{
    "errors": {
        "email": [
            {
                "error_type": "CANNOT_BE_NULL",
                "error_message": "email cannot be null."
            }
        ],
        "linkedin": [
            {
                "error_type": "INVALID_FORMAT",
                "error_message": "linkedin must use only letters, numbers, '.', '-' and '_'"
            }
        ],
        "name" : [
          { "error_type": "CANNOT_BE_BLANK", "error_message": "Can not be blank" }
        ]
    }
}

Uppercase Tags

Se for enviado tags com caracteres maiúsculos:

Exemplo

{
    "errors": {
        "tags": [
            {
                "error_type": "VALUES_MUST_BE_LOWERCASE",
                "error_message": "must not contain capital letters"
            }
        ]
    }
}

Invalid data type

Se um tipo de dado inválido for enviado Status 422 Unprocessable Entity.

Exemplo

{
    "errors": {
        "name": [
            {
                "error_type": "MUST_BE_STRING",
                "error_message": "Name must be string."
            }
        ]
    }
}

Read only fields

Ao tentar atualizar um atributo que é somente leitura Status 400 Bad Request.

Exemplo

{
    "errors": {
        "error_type": "INVALID_FIELDS",
        "error_message": "Payload contains fields that cannot be modified: (available_for_mailing)"
    }
}

Inexistent fields

Ao tentar atualizar um atributo que não existe Status 400 Bad Request.

Exemplo

{
    "errors": {
        "error_type": "INVALID_FIELDS",
        "error_message": "Payload contains fields that do not exist: (attr)"
    }
}

Conflicting field

Ao usar o endpoint de PATCH UPSERT e um campo de Contato que identifica o Lead é usado corpo da requisição Status 400 Bad Request.

Exemplo

{
    "errors": {
        "error_type": "CONFLICTING_FIELD",
        "error_message": "The payload contains an attribute that was used to identify the lead"
    }
}

Email already in use

Ao usar o endpoint de PATCH por UUID de Contato e um email de Lead já existente Status 400 Bad Request.

Exemplo

{
    "errors": {
        "error_type": "EMAIL_ALREADY_IN_USE",
        "error_message": "email already in use"
    }
}

Códigos HTTP

CódigoDescription
400 (Bad request)Malformed body request
401 (Unauthorized)Unauthorized request
404 (Not found)Resource Not Found
415 (Unsupported Media Type)Invalid Content-Type header
422 (Unprocessable Entity)Invalid Data type

Tipos de erros

Os possíveis tipos de erro que darão feedback mais detalhado para pedidos inválidos:

Tipos de erros relacionados à requisições

Error typeMessage
UNAUTHORIZEDInvalid token.
BAD_REQUESTCould not parse the body of the request according to the provided Content-Type.
UNSUPPORTED_MEDIA_TYPEThe payload is in a format not supported by this method on the target resource.
RESOURCE_NOT_FOUNDThe resource couldn't be found.

Tipos de erro relacionados à validação

Error typeMessage
CANNOT_BE_NULLCannot be null
CANNOT_BE_BLANKCan not be blank
INVALIDIt is not valid
TAKENAlready in use
TOO_SHORTIs too short (minimum 0 characters)
TOO_LONGIs too long (maximum 0 characters)
EXCLUSIONAlready in use
INCLUSIONIt is not included in the list