Skip to main content
O split de pagamento permite dividir automaticamente o valor de uma transação entre múltiplas subcontas (submerchants). A divisão é definida no momento da criação do pagamento, e a liquidação de cada recebedor acontece de forma automática — inclusive a reversão em caso de estorno ou chargeback. Casos de uso típicos: lojas que dividem receita com parceiros ou afiliados, marketplaces, plataformas SaaS que repassam valores a parceiros e PSPs/PaaS que operam subcontas.

Pré-requisitos

1

Produtos habilitados

Os produtos PaaS e Split precisam estar habilitados para o seu merchant. A ativação é feita pela equipe UvviPay — solicite ao seu contato comercial.
2

Subcontas criadas e aprovadas

As subcontas recebedoras devem estar criadas via POST /v1/submerchants e ativas. Guarde o id (UUID) retornado na criação — ele é usado como recipientId nas regras de split. O owner não precisa de subconta: sem subMerchant no payload, o próprio merchant é o owner.

Como funciona

Em um pagamento com split existem dois papéis:
O objeto subMerchant é opcional. Sem ele, o próprio merchant é o owner do split — o caso comum de quem quer apenas dividir valores com parceiros. Quando informado, o subMerchant identifica pelo documento (CPF/CNPJ) uma subconta já cadastrada, que passa a ser owner; se o documento for o do próprio merchant sem subconta cadastrada, o merchant segue como owner.
O owner não precisa (nem pode) aparecer entre os recebedores do split: o restante do líquido já permanece com ele automaticamente.

Base de cálculo: valor líquido

O split é calculado sobre o valor líquido da transação:
As taxas da transação são sempre suportadas pelo owner. O que for definido no split sai do líquido do owner e é creditado aos recebedores; o restante permanece com o owner.

Regras de split

Cada regra do array split tem três campos: Os dois tipos podem ser combinados na mesma transação.

Percentual (percentage)

O valor do recebedor é líquido × percentual / 100, arredondado para o centavo mais próximo.
Quando os percentuais somam exatamente 100 (sem regras flat), o último recebedor absorve o resíduo de arredondamento, garantindo que o líquido seja distribuído por completo, centavo a centavo.

Valor fixo (flat)

O recebedor recebe exatamente o valor informado, em centavos. O valor deve ser inteiro — centavos fracionados são rejeitados.

Validações

A criação do pagamento é rejeitada com 400 Bad Request quando qualquer regra abaixo é violada:

Exemplo de requisição

Pagamento PIX de R$ 100,00 com split: 30% para uma subconta e R$ 20,00 fixos para outra. O restante do líquido permanece com o owner — neste exemplo, o próprio merchant (sem subMerchant no payload).
POST /v1/payments
Para que uma subconta seja owner (caso PaaS/marketplace), envie também o objeto subMerchant com o documento dela — os demais campos do pagamento não mudam. Supondo taxas + reserva de R$ 5,00 (500 centavos), a distribuição do líquido de R$ 95,00 (9500) seria:

Split na resposta

A resposta da criação e da consulta (GET /v1/payments/{id}) inclui o campo split com o valor efetivamente calculado para cada recebedor, em centavos. Os webhooks de status da transação (transaction.paid, transaction.refunded, transaction.chargedback etc.) também carregam o mesmo campo split no data:
Transações com split criadas antes da disponibilização deste campo não retornam split na consulta.

Estorno e chargeback

O split é revertido automaticamente — nenhuma ação adicional é necessária:
  • Estorno (PUT /v1/payments/{id}/refund): na mesma operação do estorno, cada recebedor é debitado no valor que recebeu e esse valor é creditado de volta ao owner.
  • Chargeback: mesma reversão, vinculada ao chargeback correspondente.
A reversão usa exatamente os valores distribuídos na venda. Se o saldo de um recebedor for insuficiente, o débito ainda é registrado e o saldo pode ficar negativo até compensação futura.

Perguntas frequentes

Não — você não precisa operar como marketplace nem como plataforma. A ativação do split usa dois produtos internos, chamados PaaS e Split, habilitados pela equipe UvviPay via contato comercial; o nome do produto não exige que o seu negócio seja um PaaS. Depois de habilitado, basta enviar o array split no pagamento: sem o objeto subMerchant, o próprio merchant é o owner da transação, sem nenhum cadastro adicional.
Não. O owner padrão do split é o próprio merchant. Você só cria subcontas para os recebedores (seus parceiros). O objeto subMerchant no pagamento é opcional e serve apenas para operações em que uma subconta é a dona da transação (caso marketplace).
Sobre o líquido: valor bruto menos taxas (MDR + taxa fixa) e reserva financeira. As taxas da transação são sempre do owner — os recebedores recebem o valor da regra sem desconto de tarifas.
A resposta da criação, a consulta (GET /v1/payments/{id}) e os webhooks de status trazem o campo split com o valor calculado por recebedor, em centavos: [{ "recipient_id": "...", "amount": 2850 }]. É o valor final, já com arredondamento aplicado.
O restante do líquido permanece com o owner automaticamente. Inválido apenas quando os percentuais ultrapassam 100 ou quando a soma das regras excede o líquido.
Cada regra é arredondada para o centavo mais próximo. Quando os percentuais somam exatamente 100 (sem regras flat), o último recebedor do array absorve o resíduo, garantindo que o líquido seja distribuído por completo.
Não. O split é definido na criação do pagamento e é imutável. Para uma divisão diferente, crie um novo pagamento. Ajustes excepcionais devem ser tratados com o suporte.
A reversão é automática e integral: cada recebedor é debitado exatamente no valor que recebeu, e o valor volta ao owner na mesma operação. Se o saldo do recebedor for insuficiente, ele pode ficar negativo até compensação.
Não. O split só é efetivado na liquidação de pagamentos aprovados. A validação das regras acontece antes da cobrança: se alguma regra for inválida, a transação nem chega a ser cobrada (erro 400).
O valor segue a liquidação normal da transação: em PIX entra como saldo disponível; em cartão entra como saldo agendado e fica disponível conforme o cronograma de recebíveis.

Próximos passos

Criar pagamento

Referência completa do endpoint com os campos subMerchant e split

Criar subconta

Cadastre os recebedores e obtenha o recipientId