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
| Atributo | MIDDAG BR | MIDDAG GLOBAL (LLC) |
|---|---|---|
| Jurisdição legal | Brasil (Brasília/DF) | Estados Unidos |
| Moeda | BRL (Real Brasileiro) | USD (Dólar Americano) |
| Gateway de pagamento | Stripe BR + Banco Inter (Pix/Boleto) | Stripe GLOBAL (apenas cartão) |
| CRM | Portal HubSpot BR | Portal HubSpot GLOBAL |
| Notas fiscais | NFSe via ISSNet (obrigatória para serviços) | Nenhuma (sem exigência de NFSe) |
| Conta Stripe | Conta 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:
- Entidade de faturamento explícita na Organização (mais confiável -- definida durante o onboarding).
- Tipo de identificador fiscal -- CNPJ roteia para BR; EIN/VAT roteia para GLOBAL.
- Tag de entidade no produto -- Produtos no catálogo podem especificar a qual entidade pertencem.
- Fallback de moeda -- BRL implica BR, USD implica GLOBAL.
- 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/bre/webhooks/stripe/llc. - Registros de fatura são marcados com a conta Stripe de origem para filtragem.
Métodos de pagamento
| Entidade | Cartão de crédito | Pix | Boleto |
|---|---|---|---|
| BR | Sim (Stripe) | Sim (Banco Inter) | Sim (Banco Inter) |
| GLOBAL | Sim (Stripe) | Não | Nã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_broumiddag_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:
| Campo | Finalidade |
|---|---|
stripe_customer_id_br | Stripe Customer ID na conta BR |
stripe_customer_id_llc | Stripe Customer ID na conta GLOBAL |
hubspot_company_id_br | HubSpot Company ID no portal BR |
hubspot_company_id_llc | HubSpot Company ID no portal GLOBAL |
billing_entity | Entidade 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ário | Como funciona |
|---|---|
| Org BR compra um produto em USD | Tag de entidade do produto roteia para Stripe GLOBAL |
| Uma org, transações em ambas as moedas | Ambos Stripe Customer IDs vinculados; portal mostra lista unificada |
| Cotação do HubSpot BR, pagamento via GLOBAL | Admin sobrescreve entidade no momento do pagamento (raro) |
| NFSe necessária para transação GLOBAL | Não suportado -- NFSe é exclusivo para BR |
| Admin cria cotação para qualquer entidade | Admin seleciona entidade explicitamente durante a criação |
Páginas relacionadas
- Faturamento e Finanças -- Geração de faturas e notas fiscais por entidade
- Fluxo de Compra e Renovação -- Métodos de pagamento por entidade
- Onboarding da Organização -- Definição da entidade de faturamento durante o onboarding