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.codeQuando
INVALID_PARAMETERSForam enviados os dois ou nenhum identificador de empresa, falta account_external_id, ou split_code não tem três dígitos
INVALID_ENUM_VALUEstatus ou sub_nature fora da lista (também sub_nature como null)
REQUIRED_FIELDFalta um campo obrigatório, ou falta type/value em um code mapping, ou group/account em um account mapping
Sem códigoQualquer 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 }
Statusresponse_data_bodyQuando
404Company not found or not related to parent companyA empresa não existe ou não está no grupo do seu token
400National account already exists with account <código> and company <empresa>O código já existe nessa empresa
404Parent account not found for <código>Não há uma conta com esse parent_account na empresa
400More than one account with code <código> in the companyO parent_account corresponde a mais de uma conta
400Parent account must be of type SYNTHETIC (S)O pai não é sintético
400Parent account must be ACTIVEO pai está inativo
400Parent account level must be lower than the account levelO level não é maior que o do pai
400Location not foundlocation não é um país válido
400End date cannot be before the start dateA data de fim é anterior à de início
400Unknown code mapping type: <tipos>Um type de code_mappings não existe
400Code mapping type sent more than once: <tipos>Um type se repete em code_mappings
400Account <código> not found in group <plan>O grupo ou a conta do grupo não existem
400More than one account <código> in group <plan>O código está duplicado dentro do grupo
400Account mapping sent more than once: <plan>/<código>O mesmo par se repete em account_mappings
400Too many accounts mapped for the groupForam mapeadas mais contas do que o grupo admite
500Error creating national accountA gravação falhou
500Error processing centersOs centros falharam, mas a conta já foi criada: uma nova tentativa devolve o erro de conta duplicada
500Account created but could not be retrievedA 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.

RegraO que verificar
Código únicoNão pode haver duas contas com o mesmo código completo
Código completoaccount_external_id termina com o split_code da conta
HierarquiaAs contas de nível 1 não têm pai; as demais têm, e o pai é sintético
DescriçãoToda conta analítica tem description
codTrib obrigatórioToda conta analítica tem exatamente um codTrib
codTrib proibidoAs contas sintéticas não têm codTrib
Formato do codTrib9 dígitos, sem zero inicial, e existente na Tabela 11
Indicador de ISSSó nas analíticas, com valor 0 ou 1
Conta COSIFToda conta tem uma, e ela existe no plano COSIF
DesdobramentoUma conta com split_code maior que 000 é analítica; a original (000) é sintética e tem a mesma conta COSIF
Naturezanature de 1 a 5 e sub_nature informado em todas as contas
Vigênciavalid_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_code em todas as contas.
  • type, nature, sub_nature e valid_from preenchidos em todas as contas.
  • Regras da DeRE desta página validadas antes do envio.
  • Carga ordenada por nível: pais antes das filhas.
  • Erros 4xx e 5xx tratados 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.

Voltar à guia principal


Did this page help you?