rec_). Você define uma
configuração de split (percentual ou valores fixos), e o Z2Pay calcula quanto cada recebedor recebe,
quem arca com a taxa de processamento e quem é o responsável financeiro pela transação.
Esta página explica como o cálculo funciona, com exemplos numéricos. Para criar, editar e listar
configurações de split (o CRUD da API), veja Core API · Splits.
Todos os valores nesta página são inteiros em centavos. Um pagamento de R$ 100,00 é
10000.
Veja Convenções.Anatomia de um item de split
Uma configuração de split é uma lista (config) de itens. Cada item descreve a fatia de um
recebedor:
ID do recebedor que recebe esta fatia (
rec_...). O recebedor precisa existir e estar vinculado ao
gateway usado no pagamento.Valor da fatia. Mínimo
0.01. Quando valueType é percentage, é o percentual (ex.: 60 = 60%).
Quando é fixed, é o valor em centavos (ex.: 3000 = R$ 30,00).Como interpretar
value. Um de:percentage—valueé um percentual.fixed—valueé um valor fixo em centavos.
Natureza da fatia. Um de:
sale— fatia de venda (padrão).interest— fatia de juros/acréscimo.platform_fee— fatia da plataforma (taxa de marketplace). Tem efeito especial no cálculo (veja Quando existeplatform_fee).
Indica que este recebedor arca com a taxa de processamento (MDR/adquirência) do pagamento.
Opcional no item, mas a configuração inteira precisa ter exatamente um item com
processingFee: true.Indica que este recebedor é o responsável financeiro da transação — quem responde por
estornos, chargebacks e absorve sobras de arredondamento. Opcional no item, mas a configuração
inteira precisa ter exatamente um item com
liable: true.Regras de validação
Ao salvar ou usar uma configuração de split, o Z2Pay valida:A lista precisa ter pelo menos 1 item
A lista precisa ter pelo menos 1 item
config não pode ser vazia.Se for percentual, a soma precisa ser 100%
Se for percentual, a soma precisa ser 100%
Quando os itens usam
valueType: "percentage", a soma de todos os value deve ser exatamente
100 (tolerância de 0.01). Caso contrário, a requisição é rejeitada com a mensagem
“Soma dos percentuais deve ser 100%”.Exatamente 1 item com processingFee
Exatamente 1 item com processingFee
Nem zero, nem dois. Exatamente um item da lista deve ter
processingFee: true.Exatamente 1 item com liable
Exatamente 1 item com liable
Mesma regra: exatamente um item deve ter
liable: true.Como o valor de cada fatia é calculado
O valor (amount) de cada item, em centavos, depende do valueType:
valueType | Fórmula | Observação |
|---|---|---|
percentage | floor(valorDoPagamento × value / 100) | Arredonda para baixo (trunca centavos). |
fixed | value | Usado tal qual (já está em centavos). |
O arredondamento de percentuais é sempre para baixo (
floor). Por isso a soma das fatias pode
ficar alguns centavos abaixo do valor total — essa sobra é tratada na próxima seção.processingFee e liable, em uma frase cada
processingFee→ quem paga a taxa de processamento (MDR/adquirência) daquele pagamento.liable→ quem é o responsável financeiro: responde por estornos/chargebacks e absorve a sobra de arredondamento (os centavos que sobraram dofloor).
Arredondamento via responsável (sobra)
Quando a soma das fatias não bate exatamente com o valor do pagamento (efeito dofloor nos
percentuais), a diferença restante é somada à fatia do responsável pela taxa. Assim o split
sempre fecha com o valor total, ao centavo.
Exemplo 1 — Split percentual simples (60/40)
Pagamento de R$ 100,00 (10000 centavos), dividido entre dois recebedores: 60% para o lojista,
40% para um parceiro. O lojista arca com a taxa e é o responsável.
10000:
| Recebedor | Percentual | floor(10000 × %) | Após sobra |
|---|---|---|---|
rec_lojista | 60% | 6000 | 6000 |
rec_parceiro | 40% | 4000 | 4000 |
| Total | 100% | 10000 | 10000 |
6000 + 4000 = 10000.
Exemplo 2 — Arredondamento (sobra vai pro responsável)
Pagamento de R$ 100,01 (10001 centavos), mesmo split 60/40.
| Recebedor | Percentual | floor(10001 × %) | Após sobra |
|---|---|---|---|
rec_lojista | 60% | floor(6000,6) = 6000 | 6000 + 1 = 6001 |
rec_parceiro | 40% | floor(4000,4) = 4000 | 4000 |
| Total | 100% | 10000 (falta 1) | 10001 |
6000 + 4000 = 10000, faltou 1 centavo para fechar os 10001. Como rec_lojista é quem arca com
a taxa (processingFee: true), ele absorve a sobra e recebe 6001. O split fecha exato.
Exemplo 3 — Valores fixos com vários recebedores
Pagamento de R$ 150,00 (15000 centavos), dividido em valores fixos para três recebedores. O
primeiro arca com a taxa e é o responsável.
| Recebedor | value (centavos) | Recebe |
|---|---|---|
rec_fornecedorA | 10000 | 10000 |
rec_fornecedorB | 3000 | 3000 |
rec_fornecedorC | 2000 | 2000 |
| Total | — | 15000 |
Você não pode misturar percentual e fixo na lógica de soma: se houver itens
percentage, a
soma deles precisa ser 100%. Mantenha a configuração consistente (todos percentuais somando 100, ou
valores fixos coerentes com o pagamento).Quando existe platform_fee
Se algum item da configuração tem type: "platform_fee", a plataforma (dona da platform_fee)
assume automaticamente o papel de responsável, independentemente dos flags individuais:
- A fatia
platform_feepassa a ser quem arca com a taxa de processamento. - A fatia
platform_feepassa a ser aliable(responsável financeira). - A fatia
platform_feeabsorve a sobra de arredondamento.
platform_fee, os flags processingFee/liable dos demais itens não mudam quem
assume taxa/responsabilidade no cálculo — a plataforma assume. Use platform_fee para modelar a taxa
do marketplace.
Exemplo 4 — Marketplace com platform_fee
Pagamento de R$ 100,00 (10000 centavos): 90% para o vendedor, 10% de taxa da plataforma.
| Recebedor | Tipo | floor(10000 × %) | Papel no cálculo |
|---|---|---|---|
rec_vendedor | sale | 9000 | Recebe 9000 |
rec_plataforma | platform_fee | 1000 | Arca com taxa, liable, absorve sobra |
| Total | — | 10000 | — |
rec_vendedor tenha processingFee: true e liable: true no JSON, como existe um item
platform_fee é a plataforma que assume taxa e responsabilidade no cálculo das regras enviadas
ao gateway. A configuração ainda precisa respeitar a regra de “exatamente 1 processingFee e 1
liable” na hora de salvar.
Onde o split aparece depois
Cada pagamento processado com split gera registros de split de pagamento (um por recebedor), com oamount calculado em centavos, o type, o valueType, e os flags processingFee/liable
efetivos. Você consulta esses registros pela Core API · Splits.
Erros comuns
Veja também
Core API · Splits
CRUD de configurações de split e consulta dos splits de um pagamento.
Recebedores
Cadastre os recebedores (
rec_) que entram no split.Visão geral de valores
Como taxas, split e liquidação se encaixam.
Liquidação
Quando e como cada fatia é liquidada para o recebedor.

