Skip to content

Operações Multi-Entidade

A MIDDAG opera como duas entidades legais: MIDDAG BR (empresa brasileira, Brasília/DF) e MIDDAG GLOBAL (US LLC). O MIDDAG Account roteia toda transação financeira, chamada de integração e operação fiscal para a entidade correta. Esta página explica como esse roteamento funciona e o que ele afeta.

As duas entidades

AtributoMIDDAG BRMIDDAG GLOBAL (LLC)
Jurisdição legalBrasil (Brasília/DF)Estados Unidos
MoedaBRL (Real Brasileiro)USD (Dólar Americano)
Gateway de pagamentoStripe BR + Banco Inter (Pix/Boleto)Stripe GLOBAL (apenas cartão)
CRMPortal HubSpot BRPortal HubSpot GLOBAL
Notas fiscaisNFSe via ISSNet (obrigatória para serviços)Nenhuma (sem exigência de NFSe)
Conta StripeConta separada (middag_br)Conta separada (middag_global)

Como funciona o roteamento por entidade

Toda transação no MIDDAG Account carrega um contexto de entidade. O sistema determina a entidade correta usando uma cadeia de resolução:

A prioridade de resolução:

  1. Entidade de faturamento explícita na Organização (mais confiável -- definida durante o onboarding).
  2. Tipo de identificador fiscal -- CNPJ roteia para BR; EIN/VAT roteia para GLOBAL.
  3. Tag de entidade no produto -- Produtos no catálogo podem especificar a qual entidade pertencem.
  4. Fallback de moeda -- BRL implica BR, USD implica GLOBAL.
  5. Substituição pelo admin -- O admin pode sobrescrever o roteamento por entidade por transação.

O que o contexto de entidade afeta

Seleção da conta Stripe

Cada entidade possui sua própria conta Stripe com chaves de API, segredos de webhook e registros de clientes separados. Ao processar um pagamento:

  • Transações BR passam pela conta Stripe middag_br.
  • Transações GLOBAL passam pela conta Stripe middag_global.
  • Endpoints de webhook são separados: /webhooks/stripe/br e /webhooks/stripe/llc.
  • Registros de fatura são marcados com a conta Stripe de origem para filtragem.

Métodos de pagamento

EntidadeCartão de créditoPixBoleto
BRSim (Stripe)Sim (Banco Inter)Sim (Banco Inter)
GLOBALSim (Stripe)NãoNão

Clientes BR têm acesso aos métodos de pagamento locais brasileiros. Clientes GLOBAL utilizam apenas cartão de crédito.

HubSpot CRM

Cada entidade possui seu próprio portal HubSpot:

  • Negociações, cotações e contatos são sincronizados para o portal correto com base na entidade.
  • Webhooks de cotação carregam o identificador hubspot_account (middag_br ou middag_global).
  • Atualizações de status (cotação aceita, paga) são sincronizadas de volta ao portal de origem.

Notas fiscais

  • Transações BR acionam a emissão automática de NFSe (nota fiscal) via ISSNet.
  • Transações GLOBAL não geram notas fiscais. A fatura do Stripe serve como registro financeiro.

Precificação

Produtos podem ter precificação dual:

  • Um preço em BRL para clientes BR.
  • Um preço em USD para clientes GLOBAL.

O sistema utiliza preços duais fixos quando configurados, ou recorre a faixas de câmbio configuráveis. A precificação BR é intencionalmente posicionada acima da precificação GLOBAL para incentivar compras internacionais pela LLC.

Configuração no nível da Organização

Uma Organização pode ter identificadores para ambas as entidades simultaneamente:

CampoFinalidade
stripe_customer_id_brStripe Customer ID na conta BR
stripe_customer_id_llcStripe Customer ID na conta GLOBAL
hubspot_company_id_brHubSpot Company ID no portal BR
hubspot_company_id_llcHubSpot Company ID no portal GLOBAL
billing_entityEntidade primária para esta Organização

Isso permite que uma única Organização tenha transações em ambas as entidades -- por exemplo, uma empresa brasileira que também adquire produtos denominados em USD.

Contexto de entidade no nível da API

Toda requisição à API pode carregar contexto de entidade via header X-Middag-Company:

  • middag_br -- Limitar a requisição a dados BR.
  • middag_global -- Limitar a requisição a dados GLOBAL.
  • Omitido -- Retornar dados de ambas as entidades (visão unificada).

Este header é utilizado pelo portal para filtrar faturas, pedidos e cotações por entidade, e pelo painel admin para rotear operações corretamente.

Cenários cross-entity

CenárioComo funciona
Org BR compra um produto em USDTag de entidade do produto roteia para Stripe GLOBAL
Uma org, transações em ambas as moedasAmbos Stripe Customer IDs vinculados; portal mostra lista unificada
Cotação do HubSpot BR, pagamento via GLOBALAdmin sobrescreve entidade no momento do pagamento (raro)
NFSe necessária para transação GLOBALNão suportado -- NFSe é exclusivo para BR
Admin cria cotação para qualquer entidadeAdmin seleciona entidade explicitamente durante a criação

Páginas relacionadas