Matriz de rateio
Montar, validar (dry-run) e selar a regra de repasse por deal/contrato. Motor de Rateio em app.kroz.co.
Em resumo
A matriz de rateio define quem recebe quanto quando uma parcela liquida. No app, ela vive no módulo Rateio (/rateio/), deck UI com dry-run seguro integrado.
É composta por:
- Deal, empreendimento, contrato/unidade, valor, parcela, forma (Pix/Boleto)
- Recebedores externos, terrenista, vendas, imobiliária (com
walletId) - SPE emissora, remainder automático (o que sobra após externos)
- Prova selada, hash e trilha após Validar rateio
Pré-requisito: recebedores cadastrados na Oficina de Recebedores com
walletIdvalidado. Ver Guia de início.
Abrir o Motor de Rateio
Menu: Operação → Rateio
Header: Motor de rateio · dry-run seguro
| Ação | Botão | Função |
|---|---|---|
| Validar | Validar rateio | Sela prova e gera trilha |
| Configurar deal | Ajustar deal | Empreendimento, contrato, valor, parcela |
| Montar split | Recebedores | Selecionar recebedores e % |
| Auditoria | Ver prova | Atalho para aba Atividade |
Sub-nav: Visão geral | Jornada | Payload | Atividade
Criar / ajustar o deal
1. Abrir o sheet de origem
- Clique Ajustar deal
- Sheet Origem do deal abre
2. Preencher campos
| Campo | Exemplo demo | Impacto |
|---|---|---|
| Empreendimento | Jardim Oeste Residence |
Título do deck e descrição da cobrança |
| Contrato / unidade | PS-0421 \| Unidade 1804 |
Referência externa (KROZ-PS-0421-P02) |
| Valor | 50000 |
Base de cálculo do split |
| Parcela | 2 |
Ativa regra da 3ª parcela para vendas |
| Forma | Pix ou Boleto | billingType no payload |
3. Salvar
Clique Salvar → toast: Deal atualizado.
O deck atualiza chips: PS-0421 · Unidade 1804, Parcela 2, valor formatado.
Montar o split
1. Abrir recebedores
- Clique Recebedores
- Sheet Split configurado abre
Hint: Escolha recebedores já cadastrados na oficina. O restante fica na SPE emissora.
2. Selecionar recebedores
Por linha:
- Dropdown Selecione um recebedor → ex.:
Terrenista Demo Ltda · Terrenista - Confirme identidade: CNPJ mascarado + status do walletId
- Informe % no campo percentual
| Status walletId | Significado |
|---|---|
wallet_ter…demo (verde) |
Pronto para split |
| walletId pendente (amarelo) | Volte à Oficina · dry-run incompleto |
| Selecione um recebedor | Linha incompleta |
3. Adicionar ou remover
- + Adicionar recebedor, inclui próximo disponível no catálogo
- × (Remover recebedor), remove linha
Rodapé do sheet: Externos 28% · SPE 72% (atualiza em tempo real)
⚠️ Se externos > 100%, total fica em amarelo (is-warn). Corrija antes de salvar.
4. Salvar split
Clique Salvar → sheet fecha, deck recalcula distribuição.
Atalho: link Abrir oficina de recebedores no sheet → /recebedores/
Regra da 3ª parcela (comissão de vendas)
Regra automática no motor:
Comissão de vendas entra na 3ª parcela
| Parcela no deal | Vendas | SPE |
|---|---|---|
| 1 ou 2 | Suspenso (0%) | Absorve o % de vendas |
| 3+ | Elegível (10% demo) | Remainder normal |
Na Visão geral, tag na jornada: Comissão de vendas entra na 3ª parcela ou Todos os recebedores elegíveis nesta parcela.
Exemplo: parcela 2 de R$ 50.000 com matriz 72/18/10:
| Recebedor | % efetivo | Valor |
|---|---|---|
| SPE emissora | 82% | R$ 41.000 |
| Terrenista | 18% | R$ 9.000 |
| Vendas | 0% (Suspenso) | R$ 0 |
Validar rateio (dry-run)
1. Revisar antes de validar
Aba Visão geral: - Card Parcela em cobrança, valor e breakdown por recebedor - Card Distribuição, barra percentual + legenda
Aba Jornada: - Nós por recebedor com tags Elegível / Suspenso
Aba Payload:
- JSON completo → Copiar JSON
- Confirme split[] com walletId e percentualValue
2. Validar
- Clique Validar rateio
- Botão vira Rateio validado (desabilitado)
- Status atividade: Prova selada
- Mensagem: Rateio validado em modo seguro.
Evento registrado na aba Atividade com horário e origem Modo seguro.
3. Estrutura do payload (referência)
{
"dryRun": true,
"contractReference": "PS-0421",
"value": 50000,
"installmentNumber": 2,
"billingType": "PIX",
"externalReference": "KROZ-PS-0421-P02",
"split": [
{ "walletId": "wallet_terrenista_demo", "percentualValue": 18, "role": "Terrenista" },
{ "walletId": "wallet_vendas_demo", "percentualValue": 10, "role": "Vendas" }
],
"rule": { "salesSuppressed": true, "sealed": true }
}
SPE não aparece em
split[]quando é remainder; percentual implícito emspePercent.
Modos de visualização
| Aba | Quando usar |
|---|---|
| Visão geral | Conferência rápida de valores |
| Jornada | Apresentação para CFO/comercial |
| Payload | Dev/BaaS · validar JSON antes de Pagadoria |
| Atividade | Trilha de eventos do rateio |
Matriz demo padrão
Referência do piloto PS-0421:
| Papel | % | Recebedor demo |
|---|---|---|
| SPE emissora | 72% (remainder) | Incorp SPE Jardim Oeste |
| Terrenista | 18% | Terrenista Demo Ltda |
| Vendas | 10% | House / força de vendas |
Label fiscal: CPC 47
Versionamento (estado atual e roadmap)
Hoje: matriz carregada do backend por contrato (split_matrices, version integer). Rateio UI monta payload a partir do deal + catálogo de recebedores.
Roadmap (Rule Engine): versões imutáveis com snapshot_hash, gatilhos e superseded_by. Ver Rule Engine.
| Situação | Ação hoje |
|---|---|
| Corrigir % | Reajustar no sheet Recebedores → Salvar → revalidar |
| Nova regra comercial | Nova versão no backend + Carregar matriz na Pagadoria |
| Prova de qual versão | Prova selada + export Fechamento/Governança |
Na prática
- ✅ Valide recebedores na Oficina antes de montar split
- ✅ Confira Externos X% · SPE Y% = 100% antes de Salvar
- ✅ Use aba Payload antes de ir ao Fechamento
- ✅ Teste percentuais isolados no Sandbox (
/sandbox/) se necessário - ❌ Não valide rateio com walletId pendente
- ❌ Não ignore tag Suspenso em parcelas 1–2, SPE absorve vendas de propósito
- ❌ Não edite payload manualmente, ajuste deal ou recebedores
Troubleshooting
| Problema | Causa provável | Solução |
|---|---|---|
| Adicione ao menos um recebedor | Sheet vazio | + Adicionar recebedor |
| walletId pendente | Dry-run incompleto na Oficina | /recebedores/ → Validar Payload |
| Externos > 100% | Soma de % incorreta | Reduzir % ou remover recebedor |
| Vendas com R$ 0 | Parcela < 3 | Normal · verificar se intencional |
| Catálogo vazio | Nenhum recebedor cadastrado | Oficina → Preencher exemplo ou cadastrar |
Relacionado
- Conceitos, Matriz de rateio
- Contratos e unidades, configurar deal/contrato
- Fechamento, checklist pré-execução
- Cobranças, usar matriz carregada na Pagadoria
- Rule Engine, evolução versionada