Skip to content

Faturas

Uma Fatura é um registro financeiro que acompanha o que foi cobrado, quando e se foi pago. No MIDDAG Account, as faturas vêm do Stripe e são sincronizadas automaticamente via webhooks. Para operações brasileiras, uma Nota Fiscal de Serviço (NFSe) complementar também pode ser gerada para conformidade fiscal.

Como as faturas são criadas

Faturas não são criadas manualmente no MIDDAG Account. Elas se originam no Stripe quando um pagamento é processado — seja de um pedido avulso, uma renovação de assinatura ou uma conversão de proposta. O sistema escuta os webhooks do Stripe e espelha os dados da fatura localmente.

O registro local é uma projeção somente leitura da fatura do Stripe. O MIDDAG Account não modifica faturas no Stripe — ele lê e exibe.

Ciclo de vida da fatura

As faturas seguem os estados nativos do Stripe:

StatusO que significa
DraftFatura criada, mas ainda não finalizada. Ainda pode ser editada no Stripe.
OpenFinalizada e enviada ao cliente. Aguardando pagamento.
PaidPagamento confirmado.
VoidCancelada antes do pagamento.
UncollectibleMarcada como improvável de ser cobrada.
OverdueVencida sem pagamento.

O sistema processa doze tipos de eventos de webhook do Stripe para manter o registro local sincronizado: invoice.created, invoice.updated, invoice.finalized, invoice.sent, invoice.paid, invoice.payment_failed, invoice.payment_action_required, invoice.upcoming, invoice.voided, invoice.marked_uncollectible, invoice.deleted e invoice.overdue.

Faturas com entidade dupla

Cada fatura é marcada com a conta Stripe que a gerou:

  • middag_br — entidade brasileira (BRL)
  • middag_global — entidade americana (USD)

A marcação é determinada por qual endpoint de webhook recebeu o evento. Admins podem filtrar faturas por entidade para relatórios financeiros e conciliação.

Vínculo com entitlements

Faturas são vinculadas a entitlements indiretamente, por meio de pedidos:

Fatura --> Pedido (via stripe_invoice_id) --> Entitlement

Isso significa que toda fatura é rastreável até o entitlement que ela suporta, oferecendo um histórico financeiro completo para qualquer registro de acesso do cliente.

Download de PDF

PDFs de fatura estão disponíveis no Stripe. Quando um cliente ou admin solicita um PDF, o sistema redireciona para a URL hospedada do Stripe ou a URL de download do PDF. Se o PDF hospedado pelo Stripe não estiver disponível, um PDF personalizado pode ser gerado localmente e armazenado no Cloudflare R2.

Conciliação

Um cron job é executado a cada 15 minutos para conciliar registros locais de fatura com o Stripe. Isso captura quaisquer webhooks que foram perdidos ou falharam, garantindo que o banco de dados local permaneça consistente com os dados do Stripe. O cron utiliza um lock para evitar execução concorrente.

Notas Fiscais de Serviço (NFSe)

Para transações processadas pela MIDDAG BR, uma Nota Fiscal de Serviço (NFSe — Nota Fiscal de Serviço Eletrônica) pode ser emitida para conformidade fiscal brasileira. As NFSe são geradas por meio da integração com o ISSNet, o serviço web da autoridade fiscal municipal de Brasília/DF.

Quando NFSe são geradas

NFSe são acionadas automaticamente quando um pagamento é confirmado para uma transação da MIDDAG BR:

  1. Webhook do Stripe confirma o pagamento.
  2. O sistema identifica a transação como MIDDAG BR.
  3. O serviço de nota fiscal constrói o documento XML com dados do prestador (MIDDAG) e do tomador (organização).
  4. O XML é enviado ao ISSNet via API SOAP.
  5. Se aceito imediatamente, a NFSe é armazenada com status issued.
  6. Se pendente, um cron job consulta o ISSNet a cada 5 minutos até que o status seja resolvido.

NFSe não são geradas para transações da MIDDAG GLOBAL ou para transações de valor zero.

Estados da NFSe

StatusO que significa
PendingEnviada ao ISSNet, aguardando confirmação.
IssuedAceita pelo ISSNet. Código de verificação atribuído.
RejectedISSNet rejeitou a submissão. Admin notificado.
CancelledAdmin cancelou a NFSe com justificativa.

Emissão manual de NFSe

Admins podem emitir NFSe manualmente a partir do admin do WordPress quando a emissão automática falha ou quando é necessário emitir para uma transação que não acionou a automação. O admin revisa os dados pré-preenchidos (prestador, tomador, descrição do serviço, alíquotas) e submete.

Acesso do cliente

Clientes veem tanto faturas comerciais (do Stripe) quanto notas fiscais (NFSe) em uma lista unificada no portal, com um indicador visual distinguindo os dois tipos. Clientes podem baixar o XML (para conformidade fiscal) e o PDF de cada NFSe.

O que os admins veem

A lista de faturas no admin do WordPress mostra:

  • Número da fatura
  • Organização
  • Valor e moeda
  • Status (com indicadores de cor)
  • Entidade (MIDDAG BR ou MIDDAG GLOBAL)
  • Data de emissão e data de pagamento
  • Link para o pedido e entitlement associados

Admins podem filtrar por entidade, status, intervalo de datas e organização.

Páginas relacionadas

  • Pedidos — as compras que geram faturas
  • Entitlements — os registros de acesso aos quais as faturas são rastreadas
  • Entidades Jurídicas — como transações são roteadas para a entidade correta
  • Propostas — propostas que se convertem em pedidos e faturas