Falsidades em que programadores acreditam sobre faturas

Dezenove suposições sobre faturas que as autoridades fiscais do México, Espanha, Chile, Argentina, Brasil e França desmentiram enquanto construíamos o Cord.

O Cord leva uma venda do orçamento ao pagamento e à fatura em 12 países. No começo, esperávamos que a parte difícil fossem os pagamentos. Foram as faturas. Cada item desta lista é uma suposição que nosso código fazia até as regras de um país provarem o contrário.

O documento

  1. Uma fatura é um PDF. No México, a fatura é um XML assinado pelo emissor e carimbado por um certificador autorizado pela autoridade fiscal (o SAT). O PDF é uma representação impressa, sem valor legal próprio.
  2. Uma fatura existe assim que você a salva. No México, na Argentina, no Chile, no Peru, na Colômbia e no Brasil, ela existe quando a autoridade fiscal, ou alguém autorizado por ela, a aceita. Antes disso, é um rascunho.
  3. Um país tem um só tipo de fatura. O Brasil tem um sistema para mercadorias (a NF-e, autorizada por cada estado) e outro para serviços (a NFS-e), e a alíquota do ISS é definida pelo município. A Argentina tem faturas classe A, B e C, escolhidas pela condição do emissor e do comprador perante o IVA.
  4. A data da fatura é a única que importa. Na Alemanha, a data da prestação do serviço é obrigatória. Se for a mesma da fatura, a fatura precisa dizer isso.
  5. Você sempre sabe quem é o cliente. A Espanha e a Argentina permitem faturar para um consumidor não identificado. A Argentina, só abaixo de certo valor.

Números

  1. Você escolhe os números das suas faturas. No Chile, você baixa da autoridade fiscal um arquivo assinado com a faixa de números que pode usar. A faixa vence, e um número usado nunca volta, mesmo que aquela fatura tenha sido rejeitada.
  2. O número da fatura é único por conta. É único por identificador fiscal e série. Duas contas com o mesmo identificador fiscal não podem compartilhar uma série, ou a autoridade vê uma fatura onde você tem duas.
  3. max(numero) + 1 resolve. Não quando duas requisições emitem ao mesmo tempo. Usamos um lease por sequência mais um índice único, porque nosso driver de Postgres fala por HTTP e não consegue manter um advisory lock de um comando para o outro.

Dinheiro

  1. O imposto é a soma dos impostos de cada linha. O Chile calcula o IVA sobre o valor líquido total da fatura. Enquanto arredondávamos por linha, as faturas em pesos não fechavam com frequência: num teste com valores aleatórios, 26% das de duas linhas e 47% das de cinco.
  2. Toda moeda tem centavos. Os valores de um documento tributário chileno são pesos inteiros. O iene não tem subunidade e o dinar kuwaitiano tem três casas decimais. Math.round(valor * 100) cobra de um cliente no Japão 100 vezes o preço.
  3. Um país tem um só imposto sobre vendas. Quebec cobra seu QST de 9,975% em cima do GST federal de 5%. A Espanha cobra IVA, exceto nas Canárias (IGIC) e em Ceuta e Melilla (IPSI). Os Estados Unidos não têm alíquota nacional: em Los Angeles a estadual é de 7,25%, e a real, com condado, cidade e distritos especiais, fica perto de 9,5%.
  4. A taxa de câmbio é a que o BCE publica. O Banco Central Europeu não publica o peso colombiano, o chileno nem o argentino, nem o sol peruano. Quando nenhuma fonte tem a taxa, paramos e avisamos, porque uma taxa inventada acaba num documento legal.

Mudar de ideia

  1. Dá para editar uma fatura depois de emitida. Com o Verifactu, na Espanha, cada registro de fatura leva o hash SHA-256 do anterior. Uma correção é um registro novo que aponta para o antigo. Garantimos isso no Postgres com um trigger que bloqueia UPDATE e DELETE nos registros assinados: nem nosso próprio código consegue reescrever a cadeia.
  2. Dá para cancelar uma fatura. Na Argentina, uma fatura aprovada pela autoridade não pode ser anulada: emite-se uma nota de crédito. No México, cancelar tem prazo legal e muitas vezes depende de o cliente aceitar.
  3. Pago quer dizer encerrado. No México, se você faturou antes de receber, cada pagamento precisa do seu próprio comprovante eletrônico, até o dia 5 do mês seguinte. Com a reforma francesa, nos serviços em que o IVA é devido no recebimento, o próprio recebimento é informado ao fisco.

Falar com a autoridade fiscal

  1. Se a requisição não respondeu, é só reenviar. Um reenvio pode criar uma segunda fatura legal. Quando não recebemos resposta, nunca reenviamos: perguntamos à autoridade o que ela tem (na Argentina, o último número autorizado e depois essa fatura) e decidimos a partir daí.
  2. A autoridade fiscal responde na hora. A AEAT, na Espanha, diz quanto esperar antes do próximo envio. Encadeamos o registro ao emitir a fatura e o enviamos depois a partir de uma fila, então uma queda da AEAT nunca impede ninguém de faturar.
  3. Se um lote é rejeitado, todas as faturas dele estão erradas. Pode ser um único registro. Dividimos o lote ao meio até isolá-lo.
  4. Fatura eletrônica obrigatória é coisa da América Latina. Desde 1º de setembro de 2026, toda empresa estabelecida na França precisa conseguir receber faturas eletrônicas por uma plataforma autorizada, e as pequenas começam a emiti-las em setembro de 2027. O Verifactu valeria em 2027; em outubro de 2026, o governo espanhol anunciou outubro de 2028, o quarto adiamento.

Por que isso importa

Nada disso é exótico. É assim que o faturamento se parece por dentro em qualquer país que quer ver suas faturas, e essa lista só cresce.

O Cord cuida disso para que um negócio não precise: um orçamento que o cliente aprova e paga num só link, e a fatura em um clique. O CFDI do México está ativo, o Verifactu na Espanha está em beta e as demais integrações da América Latina estão construídas, mas ainda não estão ativas.

FIM DO ARTIGO

Da proposta ao pagamento. Tudo em um só link.

Envie um orçamento que seu cliente aprova e paga em um só link, sem criar conta, e fature com um clique. Em 12 países, com plano gratuito e sem cartão.

COMPARTILHAR