Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.useaira.com/llms.txt

Use this file to discover all available pages before exploring further.

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 chaveIdempotencia formam 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:
#ColunaObrigatoriedade
1chaveIdempotenciaObrigatória
2idExternoClienteObrigatória
3dataEmissaoObrigatória
4dataVencimentoOpcional
5memorandoOpcional
6cnpjCpfOpcional
7unidadePeriodoOpcional
8chaveIdempotenciaGrupoOpcional
9dataInicioGrupoCondicional
10dataFimGrupoCondicional
11idProdutoCondicional
12nomeProdutoCondicional
13idItemCondicional
14nomeItemCondicional
15dataInicioItemObrigatória
16dataFimItemObrigatória
17quantidadeObrigatória
18valorUnitarioObrigatória

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 chaveIdempotencia formam 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/aaaa ou 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/aaaa ou 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, mensal ou anual.
  • 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 chaveIdempotenciaGrupo dentro da mesma chaveIdempotencia formam um grupo. Quando preenchida, exige dataInicioGrupo e dataFimGrupo válidas e referência consistente ao mesmo produto entre todas as linhas do grupo.
  • Exemplo: grupo-implantacao-1.

dataInicioGrupo

  • Obrigatoriedade: condicional — obrigatória quando chaveIdempotenciaGrupo estiver preenchida.
  • Tipo: data no formato dd/mm/aaaa ou célula de data do Excel.
  • O que representa: início do período coberto pelo grupo.
  • Regra: em branco ou inválida, com chaveIdempotenciaGrupo preenchida → Data de início do grupo inválida.
  • Exemplo: 01/05/2026.

dataFimGrupo

  • Obrigatoriedade: condicional — obrigatória quando chaveIdempotenciaGrupo estiver preenchida.
  • Tipo: data no formato dd/mm/aaaa ou célula de data do Excel.
  • O que representa: fim do período coberto pelo grupo.
  • Regra: em branco ou inválida, com chaveIdempotenciaGrupo preenchida → Data de término do grupo inválida.
  • Exemplo: 31/05/2026.

idProduto

  • Obrigatoriedade: condicional — obrigatória apenas se nomeProduto estiver 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 idProduto ou nomeProduto precisa estar preenchida. Quando ambas estão preenchidas, o idProduto tem 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 idProduto estiver 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 idProduto está 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 nomeItem estiver 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 idItem ou nomeItem precisa estar preenchida. Quando ambas estão preenchidas, o idItem tem 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 idItem estiver 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 idItem está 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/aaaa ou 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/aaaa ou 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 mesma chaveIdempotencia 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:
  • idExternoCliente
  • dataEmissao
  • dataVencimento
  • memorando
  • cnpjCpf
  • unidadePeriodo

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 mesma chaveIdempotenciaGrupo, 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 idProduto e linhas que usam nomeProduto apontando para o mesmo produto resolvido são compatíveis; referências literais diferentes contam como diferença.
  • Os campos dataInicioGrupo e dataFimGrupo devem ser idênticos entre as linhas — senão Campos do grupo inconsistentes entre linhas do mesmo groupIdempotencyKey.
  • dataInicioGrupo e dataFimGrupo são obrigatórias quando chaveIdempotenciaGrupo estiver preenchida.
O nome exibido do grupo na fatura vem sempre do nome do produto resolvido. O 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 uma chaveIdempotencia 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

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.
O formato ISO 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 cnpjCpf estiver vazio: usa a primeira conta de pagamento do cliente. Se o cliente não tiver nenhuma → Cliente não possui conta de pagamento.
  • Se cnpjCpf estiver 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 idProduto estiver 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 idItem estiver 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.
A fatura não é emitida automaticamente pela importação. O usuário precisa abrir a fatura em “Em revisão”, conferir e emitir.

Mensagens de erro

MensagemQuando ocorre
Linha duplicada para a mesma faturaDuplicidade de linhas de cobrança dentro da mesma fatura.
Data da fatura inválidadataEmissao vazia ou não reconhecida.
Data de vencimento inválidadataVencimento preenchida e não reconhecida.
Data de vencimento não permitida: módulo de pagamentos desativadodataVencimento preenchida sem o módulo de pagamentos habilitado.
Data de início do item inválidadataInicioItem vazia ou inválida.
Data de término do item inválidadataFimItem vazia ou inválida.
Unidade de período inválida (semanal, mensal, anual)unidadePeriodo com valor diferente de semanal, mensal ou anual.
Data de início do grupo inválidachaveIdempotenciaGrupo preenchida sem dataInicioGrupo válida.
Data de término do grupo inválidachaveIdempotenciaGrupo preenchida sem dataFimGrupo válida.
Quantidade inválidaquantidade vazia, não numérica ou negativa.
Valor unitário inválidovalorUnitario vazio, não numérico ou negativo.
Campos da fatura inconsistentes entre linhas do mesmo idempotencyKeyLinhas com mesma chaveIdempotencia divergem em algum dos campos: idExternoCliente, dataEmissao, dataVencimento, memorando, cnpjCpf, unidadePeriodo.
Campos do grupo inconsistentes entre linhas do mesmo groupIdempotencyKeyLinhas com mesma chaveIdempotenciaGrupo divergem em dataInicioGrupo ou dataFimGrupo.
Todas as linhas de um grupo devem ter o mesmo productIdLinhas no mesmo grupo apontam para produtos diferentes (por id ou por nome).
Cliente não encontrado pelo customerExternalIdidExternoCliente não corresponde a nenhum cliente.
Cliente não possui conta de pagamentocnpjCpf vazio e o cliente não tem nenhuma conta de pagamento ativa.
taxId não encontrado entre o cliente e suas subsidiáriascnpjCpf preenchido mas não bate com nenhuma conta de pagamento do cliente nem das subsidiárias.
Fatura alvo está travada e não pode ser substituídaJá existe fatura com aquela chaveIdempotencia em estado travado.
Produto não encontradoidProduto não existe ou nomeProduto não bate com nenhum produto.
Informe o idProduto ou o nomeProdutoLinha com idProduto e nomeProduto ambos vazios.
Item não encontradoidItem não existe ou nomeItem não bate com nenhum item.
Informe o idItem ou o nomeItemLinha com idItem e nomeItem ambos vazios.

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 sem dataVencimento 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.
ColunaValor
chaveIdempotenciafatura-exemplo-1
idExternoClientecliente-externo-1
dataEmissao01/05/2026
dataVencimento10/05/2026
memorandoMensalidade de maio
cnpjCpf(vazio)
unidadePeriodomensal
chaveIdempotenciaGrupo(vazio)
dataInicioGrupo(vazio)
dataFimGrupo(vazio)
idProdutouuid-do-produto-assinatura
nomeProduto(vazio)
idItemuuid-do-item-assinatura
nomeItem(vazio)
dataInicioItem01/05/2026
dataFimItem31/05/2026
quantidade1
valorUnitario499,00

Linha 2 — Fatura com grupo, primeira linha (Onboarding)

Primeira linha de uma fatura com grupo de implantação. O cnpjCpf é usado para escolher a conta de pagamento entre o cliente e suas subsidiárias. Produto e item resolvidos pelo nome.
ColunaValor
chaveIdempotenciafatura-exemplo-2
idExternoClientecliente-externo-2
dataEmissao01/05/2026
dataVencimento15/05/2026
memorandoSetup inicial do cliente
cnpjCpf12.345.678/0001-90
unidadePeriodomensal
chaveIdempotenciaGrupogrupo-implantacao-1
dataInicioGrupo01/05/2026
dataFimGrupo31/05/2026
idProduto(vazio)
nomeProdutoServiço de Implantação
idItem(vazio)
nomeItemOnboarding
dataInicioItem01/05/2026
dataFimItem15/05/2026
quantidade1
valorUnitario2500,00

Linha 3 — Mesma fatura, segunda linha do grupo (Treinamento)

Segunda linha da fatura fatura-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.
ColunaValor
chaveIdempotenciafatura-exemplo-2
idExternoClientecliente-externo-2
dataEmissao01/05/2026
dataVencimento15/05/2026
memorandoSetup inicial do cliente
cnpjCpf12.345.678/0001-90
unidadePeriodomensal
chaveIdempotenciaGrupogrupo-implantacao-1
dataInicioGrupo01/05/2026
dataFimGrupo31/05/2026
idProduto(vazio)
nomeProdutoServiço de Implantação
idItem(vazio)
nomeItemTreinamento da equipe
dataInicioItem16/05/2026
dataFimItem31/05/2026
quantidade8
valorUnitario350,00

Linha 4 — Fatura sem dataVencimento, produto por ID e item por nome

Fatura avulsa, sem grupo, com dataVencimento em branco e unidadePeriodo em branco. Mistura: produto pelo ID e item pelo nome.
ColunaValor
chaveIdempotenciafatura-exemplo-3
idExternoClientecliente-externo-3
dataEmissao05/05/2026
dataVencimento(vazio)
memorando(vazio)
cnpjCpf(vazio)
unidadePeriodo(vazio)
chaveIdempotenciaGrupo(vazio)
dataInicioGrupo(vazio)
dataFimGrupo(vazio)
idProdutouuid-do-produto-consumo
nomeProduto(vazio)
idItem(vazio)
nomeItemHoras adicionais
dataInicioItem01/04/2026
dataFimItem30/04/2026
quantidade12
valorUnitario180,00

Limitações conhecidas

  • Somente arquivos .xlsx sã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