Implementando split de pagamentos

Na Zoop, os clientes podem ter duas funções: comprador (usuários que podem ser debitados) e a função de vendedor (usuários que podem ser creditados).
Abordaremos todas as etapas necessárias para realização do split, permitindo que você simplifique sua contabilidade e crie modelos personalizados de negócios.

Quando é realizada uma venda no Marketplace em nome de um vendedor(seller) utilizando um cartão, um objeto de transação e seus recebíveis são criados. Cada um dos recebíveis da transação tem a parcela, montante total com impostos, valor líquido e destinatário, e o vendedor que será creditado por recebê-lo, sendo assim, poderá facilmente dividir uma determinada transação entre os vendedores(sellers) em seu marketplace associando a transação, e os vendedores que serão creditados através de um objeto split_rule, definindo um valor absoluto a ser dividido, bem como se o recebimento por divisão for passível de devolução. Somente as transações com todos os recebíveis pendentes podem ser divididas, caso contrário não será possível realizar a divisão.

Para determinar quanto dinheiro um vendedor específico receberá, disponibilizamos um endpoint para consultar todos os recebíveis pendentes, essa é a maneira recomendada de conciliar a parte de uma determinada transação que foi paga ou a que está programada para o pagamento.

Split na mesma requisição (a priori)

Essa forma é utilizada para os clientes que transacionam no plano antecipado. Nesse plano, estabelecimentos comerciais recebem os valores na hora na sua conta Zoop(conta digital).

curl --location --request POST 'https://api.zoop.ws/v1/marketplaces/4efbad0e595343fbbe9f9725d6fc9123/transactions' \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --header 'Authorization: Basic enBrX3Rlc3RfVGJpSkMyc2FySmllalp1QWZTczU3R21234==' \ --data-raw '{ "amount": 4000, "currency": "BRL", "description": "venda", "capture": true, "on_behalf_of": "047cf3697440496fa588672f76c0e123", "source": { "usage": "reusable", "amount": 4000, "currency": "BRL", "description": "Teste de Transacao", "type": "card", "card": { "id": "e8b7b2de959149f9ad52c6de3dbd8123" } }, "payment_type": "credit", "split_rules": [ { "recipient": "1318982b82564c6ea1691cf0f1f82123", "liable": 1, "charge_processing_fee": 0, "amount": 1000 } ] }'

Split a posteriori

Essa é a forma tradicional que já existe e é preciso chamar quantas vezes seja necessário

Exemplo 1 - Split um a um para uma mesma transação.

curl --location --request POST 'https://api.zoop.ws/v1/marketplaces/{marketplace_id}/transactions/61b6dfe784754310b9cff3ede9257123/split_rules' \ --header 'Authorization: Basic enBrX3Rlc3RfVGJpSkMyc2FySmllalp1QWZTczU3R21234==' \ --header 'Content-Type: application/json' \ --data-raw '{ "recipient": "043f03d427e148a6bbaca048379e4123", "liable": 1, "charge_processing_fee": 1, "percentage": 10 }'

Agora é possível realizar múltiplos splits conforme o exemplo 2. Essa forma é semelhante ao formato do split a priori.

Exemplo 2 - Split onde é possível passar um array e enviar multiplas estruturas.✨

curl --location --request POST 'https://api.zoop.ws/v1/marketplaces/{marketplace_id}/transactions/61b6dfe784754310b9cff3ede9257123/split_rules' \ --header 'Authorization: Basic enBrX3Rlc3RfVGJpSkMyc2FySmllalp1QWZTczU3R21234==' \ --header 'Content-Type: application/json' \ --data-raw '{ [ { "recipient": "043f03d427e148a6bbaca048379e4123", "liable": 1, "charge_processing_fee": 1, "percentage": 10 }, "recipient": "1318982b82564c6ea1691cf0f1f82123", "liable": 1, "charge_processing_fee": 1, "percentage": 20 { } ] }'


Clique na imagem para aumentar.

1433

Fluxo split a posteriori

Consultando os recebíveis de uma transação.

Liste os recebíveis de transações para ver se a regra foi aplicada efetivamente e a divisão do recebimento está de acordo com o esperado.

Consultando split_rules da transação

Também é possível listar todo o objeto split_rulesde uma determinada transação.

Excluindo um objeto split_rule

Split só pode ser excluido antes que o recebível seja pago.

🚧

Erro 409 ao realizar split

Ao solicitar a criação do split o recebível da transação já deverá ter sido criado, caso contrario, a API retornará o erro 409 e a solicitação deverá feita novamente em alguns segundos.

❗️

Split no Pix

O split a priori deve ser feita no momento da criação do Pix.

O split nas transações do tipo Pix a posteriori, devem ser realizadas logo após o recebimento do evento "receivable.created", pois o pagamento do mesmo ocorre em D+1.

Não está disponível no momento em sandbox.

❗️

Observações importantes

  • Recorrência (planos e assinaturas): Só será possível realizar split a posteriori.

  • Limite de Split por transação: O limite máximo de splits ou participantes de um split será de apenas 20 por transação.

❗️

Sobre split/plano de venda

  • Ao realizar um split, o "recipient" receberá o valor de acordo com o plano cadastrado para o seller (on_behalf_of).

  • O split em transações com pré-autorização ("pre_authorized") só serão executados após captura.


Did this page help you?