Validações, erros e checklist
Identifique erros da Accounts API, valide as regras da DeRE e confira o checklist antes de gerar o D-1011.
Verifique os erros da Accounts API e as regras da DeRE antes de concluir a carga do plano de contas e solicitar a geração do D-1011.
Erros devolvidos pela API
Erros de formato
Os erros de formato sempre respondem 400, antes de qualquer regra. details traz apenas o primeiro erro encontrado.
{
"status_code": 400,
"error": "Bad Request",
"message": "Validation error: The provided data does not match the required format",
"details": {
"code": "INVALID_PARAMETERS",
"message": "'split_code' must be 3 digits, from 000 to 999",
"invalid_params": ["split_code"]
}
}details.code | Quando |
|---|---|
INVALID_PARAMETERS | Foram enviados os dois ou nenhum identificador de empresa, falta account_external_id, ou split_code não tem três dígitos |
INVALID_ENUM_VALUE | status ou sub_nature fora da lista (também sub_nature como null) |
REQUIRED_FIELD | Falta um campo obrigatório, ou falta type/value em um code mapping, ou group/account em um account mapping |
| Sem código | Qualquer outro erro de formato: um campo desconhecido, um tipo incorreto, uma data inválida ou um texto maior que o máximo |
Corrija o campo indicado antes de enviar novamente. Consulte Estrutura da conta e mappings para verificar os valores e as restrições de cada campo.
Erros de regras de negócio
Os erros de regras de negócio respondem com este body, sem código de erro: a mensagem indica qual regra falhou.
{ "response_data_body": "Parent account must be of type SYNTHETIC (S)", "status_code": 400 }| Status | response_data_body | Quando |
|---|---|---|
| 404 | Company not found or not related to parent company | A empresa não existe ou não está no grupo do seu token |
| 400 | National account already exists with account <código> and company <empresa> | O código já existe nessa empresa |
| 404 | Parent account not found for <código> | Não há uma conta com esse parent_account na empresa |
| 400 | More than one account with code <código> in the company | O parent_account corresponde a mais de uma conta |
| 400 | Parent account must be of type SYNTHETIC (S) | O pai não é sintético |
| 400 | Parent account must be ACTIVE | O pai está inativo |
| 400 | Parent account level must be lower than the account level | O level não é maior que o do pai |
| 400 | Location not found | location não é um país válido |
| 400 | End date cannot be before the start date | A data de fim é anterior à de início |
| 400 | Unknown code mapping type: <tipos> | Um type de code_mappings não existe |
| 400 | Code mapping type sent more than once: <tipos> | Um type se repete em code_mappings |
| 400 | Account <código> not found in group <plan> | O grupo ou a conta do grupo não existem |
| 400 | More than one account <código> in group <plan> | O código está duplicado dentro do grupo |
| 400 | Account mapping sent more than once: <plan>/<código> | O mesmo par se repete em account_mappings |
| 400 | Too many accounts mapped for the group | Foram mapeadas mais contas do que o grupo admite |
| 500 | Error creating national account | A gravação falhou |
| 500 | Error processing centers | Os centros falharam, mas a conta já foi criada: uma nova tentativa devolve o erro de conta duplicada |
| 500 | Account created but could not be retrieved | A conta foi criada, mas não pôde ser lida para a resposta |
Nos erros Error processing centers e Account created but could not be retrieved, a conta já foi criada. Use a consulta de Exemplos de carga e consulta para conferir os dados gravados antes de repetir o envio.
Regras da DeRE que a API não valida
A API grava a conta mesmo que ela não cumpra estas regras. A Brinta as verifica ao gerar o D-1011 (Plano Geral de Contas Comentado, ou PGCC), e um evento com erros não é transmitido até que sejam corrigidos. Para não descobri-los nesse momento, valide estas regras antes do envio.
| Regra | O que verificar |
|---|---|
| Código único | Não pode haver duas contas com o mesmo código completo |
| Código completo | account_external_id termina com o split_code da conta |
| Hierarquia | As contas de nível 1 não têm pai; as demais têm, e o pai é sintético |
| Descrição | Toda conta analítica tem description |
| codTrib obrigatório | Toda conta analítica tem exatamente um codTrib |
| codTrib proibido | As contas sintéticas não têm codTrib |
| Formato do codTrib | 9 dígitos, sem zero inicial, e existente na Tabela 11 |
| Indicador de ISS | Só nas analíticas, com valor 0 ou 1 |
| Conta COSIF | Toda conta tem uma, e ela existe no plano COSIF |
| Desdobramento | Uma conta com split_code maior que 000 é analítica; a original (000) é sintética e tem a mesma conta COSIF |
| Natureza | nature de 1 a 5 e sub_nature informado em todas as contas |
| Vigência | valid_from informado em todas as contas |
Consulte Estrutura da conta e mappings para preparar os códigos, a hierarquia e as correspondências de codTrib, COSIF e ISS.
Checklist antes da produção
- Empresa declarante cadastrada na Brinta com o CNPJ.
- Declaração DeRE configurada pela Brinta (regime, plano referencial e frequência de encerramento).
- Token de API gerado.
- Relações conta → codTrib e conta → COSIF definidas pela equipe tributária.
- Contas mistas desdobradas, com
split_codeem todas as contas. -
type,nature,sub_natureevalid_frompreenchidos em todas as contas. - Regras da DeRE desta página validadas antes do envio.
- Carga ordenada por nível: pais antes das filhas.
- Erros
4xxe5xxtratados conforme as tabelas desta página. - Brinta avisada ao terminar a carga, para gerar o D-1011.
Uma resposta 200 confirma que a conta foi gravada, não que ela cumpre as regras da DeRE. Ao terminar a carga e verificar o checklist, avise a Brinta para que ela gere o D-1011.
Updated 2 days ago
