A importação em lote permite criar ou substituir faturas a partir de uma planilha XLSX, seguindo um modelo padrão com colunas fixas. É indicada para carga inicial, migrações de sistemas anteriores e ajustes operacionais em grande volume.
Visão geral
- Entidade importada: faturas.
- Formato aceito: somente arquivos
.xlsx. - Tamanho máximo: 50 MB por arquivo.
- Resultado esperado: todas as faturas importadas entram com status Em revisão e origem Importação. Nenhuma fatura é emitida automaticamente pela importação.
- Idempotência: cada fatura é identificada pela
chaveIdempotencia. Reimportar com a mesma chave substitui a fatura anterior, desde que ela não esteja travada. - Múltiplas linhas por fatura: várias linhas da planilha com a mesma
chaveIdempotenciaformam uma única fatura, onde cada linha da planilha corresponde a uma linha de cobrança.
A importação não emite faturas para o cliente. Após a importação, as faturas ficam disponíveis na listagem com status Em revisão para conferência antes da emissão.
Como abrir a tela de importação
1
Acessar Faturas
No Dashboard, abra a listagem de Faturas.
2
Abrir o modal de importação
Clique em Ações → seção Importar → opção Importar faturas. Abre o modal “Importar faturas a partir de um arquivo”.
3
Baixar o modelo
Na descrição do modal, clique em modelo padrão para baixar o arquivo XLSX. O cabeçalho está na primeira linha e quatro linhas de exemplo já vêm preenchidas. Quando há um único modelo disponível, ele já vem pré-selecionado em “Selecione o modelo do arquivo”.
4
Preencher e enviar
Da segunda linha em diante, adicione uma linha por linha de cobrança. Use os nomes de coluna exatamente como estão no modelo — eles não podem ser renomeados ou reordenados. Faça upload do arquivo: assim que o upload é validado, o botão Enviar muda para Importar.
5
Acompanhar o resultado
Avisos não bloqueantes aparecem no bloco “Avisos no processamento”. Erros aparecem em “Erro ao processar a importação” ou “Arquivos que falharam no upload”.
Colunas extras não listadas no dicionário abaixo fazem o arquivo ser rejeitado — o schema não aceita propriedades adicionais.
Dicionário de colunas
A planilha tem 18 colunas na primeira linha (cabeçalho), nesta ordem e com estes nomes exatos:chaveIdempotencia
- Obrigatoriedade: obrigatória.
- Tipo: texto, de 1 a 100 caracteres.
- O que representa: identificador único da fatura.
- Regra: múltiplas linhas com a mesma
chaveIdempotenciaformam uma única fatura — cada linha é uma linha de cobrança. Reimportar com a mesma chave substitui a fatura anterior, a menos que ela esteja travada. - Exemplo:
fatura-exemplo-1.
idExternoCliente
- Obrigatoriedade: obrigatória.
- Tipo: texto, de 1 a 100 caracteres.
- O que representa: ID externo do cliente já cadastrado na Aira.
- Regra: o cliente precisa existir. Se não existir, a linha falha com Cliente não encontrado pelo customerExternalId.
- Exemplo:
cliente-externo-1.
dataEmissao
- Obrigatoriedade: obrigatória.
- Tipo: data no formato
dd/mm/aaaaou célula de data do Excel. - O que representa: data de emissão da fatura.
- Regra: vazia ou inválida → Data da fatura inválida. Datas anteriores a 01/01/2000 são rejeitadas.
- Exemplo:
01/05/2026.
dataVencimento
- Obrigatoriedade: opcional.
- Tipo: data no formato
dd/mm/aaaaou célula de data do Excel. - O que representa: data de vencimento da fatura.
- Regra: se preenchida e inválida → Data de vencimento inválida. Só pode ser preenchida se o módulo de Pagamentos estiver habilitado — caso contrário → Data de vencimento não permitida: módulo de pagamentos desativado.
- Exemplo:
10/05/2026.
memorando
- Obrigatoriedade: opcional.
- Tipo: texto até 1000 caracteres.
- O que representa: observação livre da fatura, exibida na fatura.
- Exemplo:
Mensalidade de maio.
cnpjCpf
- Obrigatoriedade: opcional.
- Tipo: texto até 30 caracteres.
- O que representa: CNPJ ou CPF usado para escolher a conta de pagamento entre o cliente e suas subsidiárias. A comparação ignora pontuação.
- Regra: quando vazia, usa a primeira conta de pagamento do próprio cliente. Quando preenchida, procura match exato (após remover não-numéricos) entre as contas do cliente e das suas subsidiárias.
- Exemplo:
12.345.678/0001-90.
unidadePeriodo
- Obrigatoriedade: opcional.
- Tipo: texto, um dos valores
semanal,mensalouanual. - O que representa: unidade de período de faturamento da linha.
- Regra: maiúsculas/minúsculas indiferentes. Vazia é aceita (a fatura fica sem unidade de período). Qualquer outro valor → Unidade de período inválida (semanal, mensal, anual).
- Exemplo:
mensal.
chaveIdempotenciaGrupo
- Obrigatoriedade: opcional.
- Tipo: texto até 100 caracteres.
- O que representa: identificador de um grupo de linhas de cobrança dentro da fatura.
- Regra: linhas com a mesma
chaveIdempotenciaGrupodentro da mesmachaveIdempotenciaformam um grupo. Quando preenchida, exigedataInicioGrupoedataFimGrupoválidas e referência consistente ao mesmo produto entre todas as linhas do grupo. - Exemplo:
grupo-implantacao-1.
dataInicioGrupo
- Obrigatoriedade: condicional — obrigatória quando
chaveIdempotenciaGrupoestiver preenchida. - Tipo: data no formato
dd/mm/aaaaou célula de data do Excel. - O que representa: início do período coberto pelo grupo.
- Regra: em branco ou inválida, com
chaveIdempotenciaGrupopreenchida → Data de início do grupo inválida. - Exemplo:
01/05/2026.
dataFimGrupo
- Obrigatoriedade: condicional — obrigatória quando
chaveIdempotenciaGrupoestiver preenchida. - Tipo: data no formato
dd/mm/aaaaou célula de data do Excel. - O que representa: fim do período coberto pelo grupo.
- Regra: em branco ou inválida, com
chaveIdempotenciaGrupopreenchida → Data de término do grupo inválida. - Exemplo:
31/05/2026.
idProduto
- Obrigatoriedade: condicional — obrigatória apenas se
nomeProdutoestiver vazio. - Tipo: texto até 100 caracteres.
- O que representa: ID do produto na Aira ao qual a linha de cobrança está vinculada.
- Regra: pelo menos uma das colunas
idProdutoounomeProdutoprecisa estar preenchida. Quando ambas estão preenchidas, oidProdutotem prioridade. Se o ID não existir → Produto não encontrado. Se ambas estiverem vazias → Informe o idProduto ou o nomeProduto. - Exemplo:
uuid-do-produto-assinatura.
nomeProduto
- Obrigatoriedade: condicional — obrigatória apenas se
idProdutoestiver vazio. - Tipo: texto até 200 caracteres.
- O que representa: nome do produto na Aira ao qual a linha de cobrança está vinculada.
- Regra: usada quando
idProdutoestá vazio. A busca ignora maiúsculas/minúsculas, acentos e espaços extras nas pontas. Se nenhum produto bate → Produto não encontrado. - Exemplo:
Serviço de Implantação.
idItem
- Obrigatoriedade: condicional — obrigatória apenas se
nomeItemestiver vazio. - Tipo: texto até 100 caracteres.
- O que representa: ID de um item do catálogo ao qual a linha de cobrança está vinculada.
- Regra: pelo menos uma das colunas
idItemounomeItemprecisa estar preenchida. Quando ambas estão preenchidas, oidItemtem prioridade. Se o ID não existir → Item não encontrado. Se ambas estiverem vazias → Informe o idItem ou o nomeItem. - Exemplo:
uuid-do-item-onboarding.
nomeItem
- Obrigatoriedade: condicional — obrigatória apenas se
idItemestiver vazio. - Tipo: texto até 200 caracteres.
- O que representa: nome do item do catálogo ao qual a linha de cobrança está vinculada.
- Regra: usada quando
idItemestá vazio. A busca ignora maiúsculas/minúsculas, acentos e espaços extras nas pontas. Se nenhum item bate → Item não encontrado. Esta coluna não é um nome de exibição livre — o nome exibido da linha de cobrança vem sempre do item resolvido. - Exemplo:
Onboarding.
Os valores de
idProduto e idItem correspondem aos identificadores internos dos produtos e itens do catálogo na Aira. Antes de rodar a importação, entre em contato com o time da Aira para receber o mapeamento correto dos IDs a utilizar — os valores variam conforme o caso de uso e o cadastro da sua conta. Como alternativa, use nomeProduto e nomeItem para resolver pelo nome.dataInicioItem
- Obrigatoriedade: obrigatória em toda linha.
- Tipo: data no formato
dd/mm/aaaaou célula de data do Excel. - O que representa: início do período coberto pela linha de cobrança.
- Regra: em branco ou inválida → Data de início do item inválida.
- Exemplo:
01/05/2026.
dataFimItem
- Obrigatoriedade: obrigatória em toda linha.
- Tipo: data no formato
dd/mm/aaaaou célula de data do Excel. - O que representa: fim do período coberto pela linha de cobrança.
- Regra: em branco ou inválida → Data de término do item inválida.
- Exemplo:
31/05/2026.
quantidade
- Obrigatoriedade: obrigatória.
- Tipo: número decimal (aceita
.ou,como separador). Sem separador de milhar. - O que representa: quantidade cobrada na linha.
- Regra: maior ou igual a zero. Vazia, não numérica ou negativa → Quantidade inválida.
- Exemplo:
8.
valorUnitario
- Obrigatoriedade: obrigatória.
- Tipo: número decimal em reais (não em centavos). Aceita
.ou,como separador. Sem separador de milhar. - O que representa: valor unitário da linha em reais.
- Regra: maior ou igual a zero. Vazio, não numérico ou negativo → Valor unitário inválido. O total da linha é
quantidade × valorUnitario. - Exemplo:
499,00.
Regras de agrupamento e idempotência
Uma fatura por chaveIdempotencia
Linhas que compartilham a mesmachaveIdempotencia formam uma única fatura. Para isso, os campos de cabeçalho abaixo precisam ser idênticos em todas as linhas da fatura — se algum diferir, a segunda linha (e as seguintes) é rejeitada com Campos da fatura inconsistentes entre linhas do mesmo idempotencyKey:
idExternoClientedataEmissaodataVencimentomemorandocnpjCpfunidadePeriodo
Grupos de linhas de cobrança
Um grupo é um agrupador de linhas de cobrança dentro da mesma fatura, sob um mesmo produto. Use quando um produto é faturado em várias linhas — por exemplo, as etapas de uma implantação (Onboarding + Treinamento) — e você quer exibi-las agrupadas na fatura, com um período único para o conjunto. Linhas com a mesmachaveIdempotenciaGrupo, dentro da mesma chaveIdempotencia, formam um grupo. Dentro de um grupo:
- Todas as linhas devem apontar para o mesmo produto — senão Todas as linhas de um grupo devem ter o mesmo productId. Linhas que usam
idProdutoe linhas que usamnomeProdutoapontando para o mesmo produto resolvido são compatíveis; referências literais diferentes contam como diferença. - Os campos
dataInicioGrupoedataFimGrupodevem ser idênticos entre as linhas — senão Campos do grupo inconsistentes entre linhas do mesmo groupIdempotencyKey. dataInicioGrupoedataFimGruposão obrigatórias quandochaveIdempotenciaGrupoestiver preenchida.
chaveIdempotenciaGrupo é opcional: fatura com linhas soltas (sem grupo) também é válida. Uma mesma fatura pode misturar linhas agrupadas e linhas soltas.
Substituição por reimportação
Reimportar um arquivo com umachaveIdempotencia já existente substitui a fatura anterior. Se a fatura existente estiver travada (já emitida, paga, cancelada ou sincronizada), a linha falha com Fatura alvo está travada e não pode ser substituída e nada é alterado.
Formatos aceitos
- Datas
- Números decimais
- Comparação de nomes
Aceitamos dois formatos:
- Texto no formato
dd/mm/aaaa. - Células de data do Excel — o formato nativo quando você digita a data diretamente na célula formatada como data.
aaaa-mm-dd não é aceito. Datas anteriores a 01/01/2000 são rejeitadas como inválidas.Resolução automática no processamento
Para cada linha, a Aira faz as seguintes buscas e associações:1
Cliente
Busca o cliente pelo
idExternoCliente. Se não existir → Cliente não encontrado pelo customerExternalId.2
Conta de pagamento
- Se
cnpjCpfestiver vazio: usa a primeira conta de pagamento do cliente. Se o cliente não tiver nenhuma → Cliente não possui conta de pagamento. - Se
cnpjCpfestiver preenchido: normaliza removendo caracteres não numéricos e procura match exato entre as contas de pagamento do cliente e das suas subsidiárias. Sem match → taxId não encontrado entre o cliente e suas subsidiárias.
3
Produto
- Se
idProdutoestiver preenchido, busca o produto por ID. - Senão, busca pelo
nomeProduto(ignorando maiúsculas/minúsculas, acentos e espaços extras). - Se nada bate → Produto não encontrado. Se ambas estiverem vazias → Informe o idProduto ou o nomeProduto.
4
Item
- Se
idItemestiver preenchido, busca o item por ID. - Senão, busca pelo
nomeItem(mesma comparação acima). - Se nada bate → Item não encontrado. Se ambas estiverem vazias → Informe o idItem ou o nomeItem.
5
Fatura existente
Verifica se já existe fatura com a mesma
chaveIdempotencia. Se existir e estiver travada (já emitida, paga, cancelada ou sincronizada) → Fatura alvo está travada e não pode ser substituída. Caso contrário, a fatura anterior é substituída.Comportamento após importar
Toda fatura criada pela importação entra com estado fixo, não configurável pela planilha:- Status: Em revisão.
- Origem: Importação.
- Alocação: a fatura é alocada inteiramente ao cliente do cabeçalho.
- Nome exibido do grupo: vem sempre do nome do produto resolvido.
- Nome exibido da linha de cobrança: vem sempre do nome do item resolvido.
Mensagens de erro
Exemplos do modelo
O modelo baixável já vem preenchido com quatro linhas de exemplo, cobrindo os cenários mais comuns: fatura simples resolvida por ID, fatura com grupo resolvida por nome, e fatura semdataVencimento misturando ID e nome.
Linha 1 — Fatura simples, produto e item por ID
Uma fatura avulsa com uma única linha de cobrança (mensalidade). Resolve produto e item pelo ID.Linha 2 — Fatura com grupo, primeira linha (Onboarding)
Primeira linha de uma fatura com grupo de implantação. OcnpjCpf é usado para escolher a conta de pagamento entre o cliente e suas subsidiárias. Produto e item resolvidos pelo nome.
Linha 3 — Mesma fatura, segunda linha do grupo (Treinamento)
Segunda linha da faturafatura-exemplo-2, dentro do mesmo grupo grupo-implantacao-1. Todos os campos de cabeçalho (idExternoCliente, dataEmissao, dataVencimento, memorando, cnpjCpf, unidadePeriodo) e os campos de grupo (dataInicioGrupo, dataFimGrupo, referência ao produto) coincidem com a Linha 2.
Linha 4 — Fatura sem dataVencimento, produto por ID e item por nome
Fatura avulsa, sem grupo, comdataVencimento em branco e unidadePeriodo em branco. Mistura: produto pelo ID e item pelo nome.
Limitações conhecidas
- Somente arquivos
.xlsxsão aceitos — outros formatos (.csv,.xls,.ods) não são suportados. - O tamanho máximo por arquivo é 50 MB.
- Os nomes das colunas em português (camelCase) são fixos — não podem ser renomeados ou reordenados.
- Colunas extras não previstas pelo schema fazem o arquivo ser rejeitado.
Próximos passos
- Ciclo de vida da fatura — entenda as transições a partir de Em revisão.
- Descontos e alocações — ajuste valores e distribua cobranças após a importação.
- Documentos fiscais — emissão de NFSe e geração de PDFs.