Regra de divisão (split rules)

As regras aqui apresentadas valem para transações CP, CNP, boleto é Pix

Split por valor cobrando as taxas do seller principal da venda

Os exemplos abaixo de split, podem ser aplicados para transações de crédito e boleto.
Lembrando que a estrutura do split a priori é um lista (array) e necessita que esteja entre chaves.

{
	"currency": "BRL",
	"description": "venda",
	"capture": true,
	"on_behalf_of": "{{SELLER_ID}}",
	"source": {
		"usage": "reusable",
		"amount": 4000,
		"currency": "BRL",
		"description": "Teste de Transacao",
		"type": "card",
		"card": {
			"id": "e8b7b2de959149f9ad52c6de3dbd8678"
		}
	},
	"payment_type": "credit",
	"split_rules": [{
		"recipient": "1318982b82564c6ea1691cf0f1f82395",
		"liable": 1,
		"charge_processing_fee": 0,
		"amount": 1000
	}]
}

Split por porcentagem dividindo as taxas proporcionalmente.

O que faz a divisão de taxas entre o seller principal e o recipient é quando o charge_processing_fee é informado como 1 ou true, podendo ser divido 1 ou mais recipient até que o valor da venda esgote.

🚧

Atenção!!

No split por percentual dividindo as taxas proporcionalmente entre 2 ou mais participantes e a distribuição for de 100% da venda, pode haver sobra para o seller principal (on_behalf_of).

{
	"currency": "BRL",
	"description": "venda",
	"capture": true,
	"on_behalf_of": "{{SELLER_ID}}",
	"source": {
		"usage": "reusable",
		"amount": 4000,
		"currency": "BRL",
		"description": "Teste de Transacao",
		"type": "card",
		"card": {
			"id": "e8b7b2de959149f9ad52c6de3dbd8678"
		}
	},
	"payment_type": "credit",
	"split_rules": [{
		"recipient": "1318982b82564c6ea1691cf0f1f82395",
		"liable": 1,
		"charge_processing_fee": 1,
		"percentage": 10
	}]
}
{
    "amount": 5000,
    "currency": "BRL",
    "description": "venda",
    "capture": true,
    "on_behalf_of": "{{SELLER_ID}}",
    "source": {
        "usage": "reusable",
        "amount": 10000,
        "currency": "BRL",
        "description": "Teste de Transacao",
        "type": "card",
        "card": {
            "id": "63967e1002f645579167f50143057e80"
        }
    },
    "payment_type": "credit",
     "split_rules": [
        {
            "recipient": "452949d6785a47c6b34a90b0a67a15f7",
            "liable": 1,
            "charge_processing_fee": 1,
            "percentage": 10
        },
         {
            "recipient": "07bcef4e52ce4ec2a88edbb8b8a7d9fd",
            "liable": 1,
            "charge_processing_fee": 1,
            "percentage": 10    
        }   
        ]
}

❗️

Sobre divisão de taxas.

A divisão da taxa só pode ser realizada quando utilizado o split com "percentage" (percentual).

Split onde recipient assume o valor total da taxa.

Nessa condição, as taxas são pagas integralmente pelo recipient. Para isso, basta informar no split o charge_processing_fee é informado como 0 (zero) ou false e charge_recipient_processing_fee igual a 1 ou true. Pode ser aplicado tanto para percentual como para valor.

{
	"currency": "BRL",
	"description": "venda",
	"capture": true,
	"on_behalf_of": "{{SELLER_ID}}",
	"source": {
		"usage": "reusable",
		"amount": 5000,
		"currency": "BRL",
		"description": "Teste de Transacao",
		"type": "card",
		"card": {
			"id": "e8b7b2de959149f9ad52c6de3dbd8678"
		}
	},
	"payment_type": "credit",
	"split_rules": [{
		"recipient": "1318982b82564c6ea1691cf0f1f82395",
		"liable": 1,
		"charge_processing_fee": 0,
		"charge_recipient_processing_fee": true,
		"percentage": 10
	}]
}

Split por valor (amount) - caso especifico (is_gross_amount).

Existe a possibilidade de o parceiro realizar o split de 100% do valor transacionado mas, utilizando o atributo amount no split. A maior causa de erros nesse tipo de split, acontece quando o amount (split) é passado exatamente igual ao valor da transação ocasionando erro pois, o parceiro esquece da taxa Zoop.
Para evitar esse tipo de problema, existe o atributo is_gross_amount que deve ser usando em conjunto com charge_processing_fee confome o exemplo abaixo.

{
    "currency": "BRL",
    "description": "venda",
    "capture": true,
    "on_behalf_of": "{{SELLER_ID}}",
    "source": {
        "usage": "reusable",
        "amount": 12000,
        "currency": "BRL",
        "description": "Teste de Transacao",
        "type": "card",
        "card": {
            "id": "e8b7b2de959149f9ad52c6de3dbd8678"
        }
    },
    "payment_type": "credit",
    "split_rules": [
        {   "recipient": "1318982b82564c6ea1691cf0f1f82395",
            "liable": 1,
            "charge_processing_fee": 1,
            "is_gross_amount": 1,
            "amount": 12000
        }
    ]
}

📘

Dicas

Quando usamos o charge_processing_fee com valor 1 ou true e is_gross_amount com o valor 1 ou true, o motor irá identificar que antes de realizar o split, ele precisará descontar a taxa para realizar o split com valor líquido.
Fazendo uma analogia, seria a mesma coisa de passar charge_processing_fee com o valor 1 ou true em um split por percentual, que neste caso, é realizado pelo valor liquido.

charge_processing_fee define se vai ser feito split em cima do valor bruto (0) ou do valor líquido (1) da transação.

charge_recipient_processing_fee carrega o valor da taxa da venda para o recipient quando definido como 1 ou true.

liable define se o recebedor arca com prejuízo em caso de chargeback ou não. 1 arca; 0 não arca.

Não utilizar o on_behalf_of na divisão, pois na plataforma da Zoop o vendedor principal sempre recebe o valor que restar do split.

❗️

Importante!

  • Só serão possível realizar 20 Splits por transações.
  • Caso a regra possua mais de um participante por transação, é de suma importância que todos os envolvidos estejam declarados na mesma regra conforme o exemplo:

"split_rules": [
{
"liable": false,
"charge_processing_fee": false,
"charge_recipient_processing_fee": false,
"recipient": "{{seller_id}}",
"amount": 34679
},
{
"liable": true,
"charge_processing_fee": false,
"charge_recipient_processing_fee": true,
"recipient": "{{seller_id}}",
"amount": 1387
}