Split de pagamentos
Distribua o valor líquido de uma transação entre outras empresas verificadas da LeonaPay.
Como o split é calculado
A LeonaPay calcula e desconta a taxa da transação primeiro. Em seguida, aplica cada split sobre o valor líquido. O destinatário é identificado pelo e-mail da conta proprietária de outra empresa verificada.
O split nunca é enviado para uma conta bancária externa. O valor gera uma nova transação paga na empresa destinatária.
Percentual e valor fixo
Envie
splits junto de qualquer método aceito por POST /api/v2/payments. Cada item deve conter exatamente percentage ou amount.curl --request POST \
+ --url https://api.leonapay.com.br/api/v2/payments \
+ --header 'Accept: application/json' \
+ --header 'Content-Type: application/json' \
+ --header 'x-api-key: {your_api_key}' \
+ --header 'idempotency-key: {unique_uuid_per_payment}' + --data '{
"method": "PIX",
"amount": 100.00,
"currency": "BRL",
"reference": "pedido-com-split-123",
"payer": { "name": "Ana Souza", "taxId": "12345678909" },
"splits": [
{ "email": "integracao@empresa-exemplo.com", "percentage": 10 },
{ "email": "seller@leonapay.com.br", "amount": 5.00 }
]
}'Liquidação e conciliação
Os splits nascem com status
PENDING. Quando o pagamento muda para PAID, a empresa originadora recebe o líquido restante e cada destinatário recebe uma transação PAID própria. Os webhooks são emitidos para origem e destinatários.| Ordem | Operação |
|---|---|
1 | Valor bruto confirmado |
2 | Taxa LeonaPay descontada |
3 | Percentuais calculados sobre o líquido |
4 | Valores fixos descontados |
5 | Saldo e transação criados para cada destinatário |
6 | Saldo restante creditado na origem |
Validações
A empresa destinatária deve estar verificada, ser diferente da origem e pertencer ao e-mail informado. E-mails duplicados são recusados e a soma das parcelas não pode ultrapassar o líquido.
{
"success": true,
"onpayCode": "ONP201",
"data": {
"id": "pay_01J...",
"status": "PENDING",
"splits": [{
"email": "integracao@empresa-exemplo.com",
"type": "PERCENTAGE",
"value": 10,
"amount": 9.85,
"status": "PENDING",
"recipientTransactionId": null
}]
}
}