Conceitos
- Ordem de split: registra a divisão associada a um cash-in recebido. Uma ordem pode conter um ou mais payouts.
- Payout: valor destinado a um beneficiário, com uma instrução de transferência e um estado próprio.
- Origem das instruções: em cash-ins PIX, as instruções do QR Code são usadas quando presentes. Se não houver instruções no QR Code, o sistema consulta a configuração de split da conta recebedora. Sem instrução e sem configuração, não é gerada uma ordem de split para aquele fluxo.
- Base do split: valor bruto do cash-in menos a tarifa, quando a cobrança da tarifa antes do split estiver habilitada.
Payouts só podem ser agendados através das instruções de split na criação do qr code.
Endpoints
Prefixo comum:/baas/api/v1/split-payments
Consultar ordens
UseGET /orders para buscar uma ordem específica ou listar as ordens da conta.
id e transactionId são mutuamente exclusivos. Quando nenhum dos dois é informado, a resposta será uma listagem paginada.
200 e uma ordem com seus payouts. Se a ordem não existir ou não pertencer à conta da credencial, a API retorna 404. Informar id e transactionId juntos retorna 400.
A listagem também retorna HTTP 200; por padrão, o corpo é um array. Para receber metadados de paginação no corpo, use include=metadata. Nesse formato, os itens ficam em data e os metadados em metadata.
Consultar payouts
UseGET /payouts para consultar payouts da conta vinculada à credencial, com filtros opcionais.
id, splitOrderId, beneficiary, transferType, instructionType, instructionAmount, amount, paymentDate, status, transactionId, endToEndId, errorMessage, cancellationDetails, paidAt, createdAt e updatedAt. A resposta também pode incluir um resumo da ordem em splitOrder.
Os estados representam:
PENDING: aguardando processamento;PROCESSING: em processamento;SUCCESS: concluído;ERROR: falha;SCHEDULED: agendado;CANCELED: cancelado.
Solicitar processamento
UsePOST /payouts/process para reenviar um ou mais payouts para processamento quando eles estiverem elegíveis.
PENDING, SCHEDULED e ERROR. A resposta 202 Accepted confirma que a solicitação foi recebida, mas não que a transferência foi concluída. Consulte GET /payouts para acompanhar a evolução do estado.
Cancelar payout
UsePATCH /payouts/cancel para solicitar o cancelamento de um payout em SCHEDULED ou ERROR.
splitPayoutId identifica o payout; reason registra o motivo e canceledBy identifica quem solicitou o cancelamento. Se canceledBy não for informado, a API registra Não informado.
Em caso de sucesso, a resposta é 202 Accepted; o estado passa para CANCELED e os dados ficam disponíveis em cancellationDetails na consulta de payouts.
Fluxo de alto nível
Boas práticas de integração
- Guarde
transactionOriginalIdeidda ordem para conciliar os payouts com o cash-in. - Use
GET /orders?transactionId=...para localizar a ordem pela transação original eGET /payoutspara acompanhar cada beneficiário. - Trate o processamento como assíncrono: após uma resposta
202, consulte novamente o payout até obter o estado final. - Solicite cancelamento apenas para payouts em
SCHEDULEDouERROR; pagamentos já em processamento ou concluídos não são cancelados por esta rota. - Solicite o processamento forçado apenas quando o payout ficou travado em
PENDING, quando houver erro elegível para reprocessamento ou quando for necessário antecipar um payout agendado.
Referência da API
Consultar Ordens de Split
GET /baas/api/v1/split-payments/ordersConsultar Split Payouts
GET /baas/api/v1/split-payments/payoutsCancelar Split Payout
PATCH /baas/api/v1/split-payments/payouts/cancel
