# Erros

## Introdução

O Unico IDPay utiliza códigos de resposta HTTP convencionais para indicar o sucesso ou falha de uma solicitação de API.

Como regra geral:

* Códigos no intervalo `2xx` indicam sucesso na requisição;
* Códigos no intervalo `4xx` indicam parâmetros incorretos ou incompletos (*por exemplo, um parâmetro obrigatório foi omitido ou uma operação falhou com terceiros, etc.*);
* Códigos no intervalo `5xx` indicam que houve um erro nos servidores do produto Unico IDPay.

O Unico IDPay também gera uma mensagem de erro e um código de erro formatado em JSON:

```json
{
    "error": {
        "code": "40004",
        "description": "transaction id is invalid"
    }
}
```

## Erros possíveis <a href="#erros-possiveis" id="erros-possiveis"></a>

Neste tópico, você encontrará os possíveis erros dos endpoints, separados por seu HTTP response.

### Criação da transação

<table><thead><tr><th width="150">HTTP Code</th><th width="140">Código</th><th>Descrição</th><th>Motivo</th></tr></thead><tbody><tr><td>400</td><td>40001</td><td>error decoding json</td><td>Os dados enviados não condizem com o contrato do serviço</td></tr><tr><td>400</td><td>40002</td><td>error validating json</td><td>Alguma informação está mal formatada ou não foi preenchida</td></tr><tr><td>400</td><td>40021</td><td>invalid phone</td><td>O telefone informado é inválido, deve seguir o padrão: 55 DDD NUMERO. Ex: 5543999999999</td></tr><tr><td>400</td><td>40022</td><td>invalid email</td><td>O e-mail informado é inválido</td></tr><tr><td>400</td><td>40027</td><td>replicated transaction</td><td>A transação enviada já existe, não podendo cria-lá novamente</td></tr><tr><td>400</td><td>40045</td><td>max value reached</td><td>Quando a transação atinge um valor maior que o permitido</td></tr><tr><td>403</td><td>40301</td><td>not allowed</td><td>O usuário não tem permissão para fazer tal ação</td></tr><tr><td>404</td><td>40404</td><td>company not found</td><td>A empresa informada não existe</td></tr><tr><td>429</td><td>40001</td><td>too many requests</td><td>Ratelimit atingido</td></tr><tr><td>500</td><td>50001</td><td>internal error</td><td>Falha interna no serviço</td></tr></tbody></table>

### Consulta do status da transação

<table><thead><tr><th width="148">HTTP Code</th><th width="140">Código</th><th>Descrição</th><th>Motivo</th></tr></thead><tbody><tr><td>400</td><td>40001</td><td>error decoding json</td><td>Os dados enviados não condizem com o contrato do serviço</td></tr><tr><td>400</td><td>40002</td><td>error validating json</td><td>Alguma informação está mal formatada ou não foi preenchida</td></tr><tr><td>400</td><td>40004</td><td>transaction id is invalid</td><td>O id da transação é inválido (formato)</td></tr><tr><td>403</td><td>40301</td><td>not allowed</td><td>O usuário não tem permissão para fazer tal ação</td></tr><tr><td>404</td><td>40401</td><td>transaction not found</td><td>A transação não foi encontrada</td></tr><tr><td>500</td><td>50001</td><td>internal error</td><td>Falha interna no serviço</td></tr></tbody></table>

### Recuperação do conjunto probatório da transação

<table><thead><tr><th width="151">HTTP Code</th><th width="133">Código</th><th>Descrição</th><th>Motivo</th></tr></thead><tbody><tr><td>400</td><td>40004</td><td>transaction id is invalid</td><td>O id da transação é inválido (formato)</td></tr><tr><td>400</td><td>40009</td><td>transaction status is invalid</td><td>O status da transação é inválido (não permitido para geração do conjunto probatório)</td></tr><tr><td>403</td><td>40301</td><td>not allowed</td><td>O usuário não tem permissão para fazer tal ação</td></tr><tr><td>404</td><td>40401</td><td>transaction not found</td><td>A transação não foi encontrada</td></tr><tr><td>500</td><td>50001</td><td>internal error</td><td>Falha interna no serviço</td></tr></tbody></table>

### Reenvio da notificação da transação

<table><thead><tr><th width="149">HTTP Code</th><th width="134">Código</th><th>Descrição</th><th>Motivo</th></tr></thead><tbody><tr><td>400</td><td>40001</td><td>error decoding json</td><td>Os dados enviados não condizem com o contrato do serviço</td></tr><tr><td>400</td><td>40002</td><td>error validating json</td><td>Alguma informação está mal formatada ou não foi preenchida</td></tr><tr><td>400</td><td>40004</td><td>transaction id is invalid</td><td>O id da transação é inválido (formato)</td></tr><tr><td>400</td><td>40009</td><td>transaction status is invalid</td><td>O status da transação não permite o reenvio de notificação (já está concluído)</td></tr><tr><td>400</td><td>40021</td><td>invalid phone</td><td>O telefone informado é inválido, deve seguir o padrão: 55 DDD NUMERO. Ex: 5543999999999</td></tr><tr><td>400</td><td>40022</td><td>invalid email</td><td>O e-mail informado é inválido</td></tr><tr><td>403</td><td>40301</td><td>not allowed</td><td>O usuário não tem permissão para fazer tal ação</td></tr><tr><td>404</td><td>40401</td><td>transaction not found</td><td>A transação não foi encontrada</td></tr><tr><td>429</td><td>40001</td><td>too many requests</td><td>Ratelimit atingido</td></tr><tr><td>500</td><td>50001</td><td>internal error</td><td>Falha interna no serviço</td></tr></tbody></table>

### Onboarding de cartão de crédito

<table><thead><tr><th width="146">HTTP Code</th><th width="139">Código</th><th>Descrição</th><th>Motivo</th></tr></thead><tbody><tr><td>400</td><td>40001</td><td>error decoding json</td><td>Os dados enviados não condizem com o contrato do serviço.</td></tr><tr><td>400</td><td>40002</td><td>error validating json</td><td>Alguma informação está mal formatada ou não foi preenchida.</td></tr><tr><td>400</td><td>40027</td><td>replicated transaction</td><td>A transação enviada já existe, não podendo cria-lá novamente.</td></tr><tr><td>400</td><td>40030</td><td>invalid identity</td><td>O CPF enviado na requisição é diferente do CPF do <code>processID</code> informado.</td></tr><tr><td>400</td><td>40045</td><td>max value reached</td><td>Quando a transação atinge um valor maior que o permitido.</td></tr><tr><td>400</td><td>40054</td><td>processID is invalid</td><td>Quando o <code>processID</code> enviado na requisição é inválido (ou não existe).</td></tr><tr><td>400</td><td>40055</td><td>processID is expired</td><td>Quando o <code>processoID</code> que está sendo utilziado é muito antigo.</td></tr><tr><td>403</td><td>40301</td><td>not allowed</td><td>O usuário não tem permissão para fazer tal ação.</td></tr><tr><td>404</td><td>40404</td><td>company not found</td><td>A empresa informada não existe.</td></tr><tr><td>404</td><td>40410</td><td>processID not found</td><td>Quando o processo informado não existe.</td></tr><tr><td>404</td><td>40412</td><td>image not found</td><td>Quando o processo informado pelo usuário não possuí uma imagem.</td></tr><tr><td>429</td><td>40001</td><td>too many requests</td><td>Ratelimit atingido.</td></tr><tr><td>429</td><td>42901</td><td>too many requests</td><td>Quando o cliente está enviando muitas requisições, maior que o pré-definido.</td></tr><tr><td>500</td><td>50001</td><td>internal error</td><td>Falha interna no serviço.</td></tr></tbody></table>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://devcenter.unico.io/unico-idpay/integracao/apis/erros.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
