Pagamento - Rota transacional com Split

❗️

ATENÇÂO!!!!!

Esse desenvolvimento só caberá, caso seu projeto tenha a necessidade do split de pagamento.
Entre em contato com seu Bizdev(Account Manager) para maiores informações.

Endpoint: /api/Pay

Rota de transação. Essa rota deve ser chamada uma vez para cada transação.

Exemplo de valor:

{
  "amount": number,   
  "captureTransaction": boolean (true ou false),
  "initiatorTransactionKey": "string",
  "installment": {
    "number": number,
    "type": number
  },
  "accountType": string,
  "hasAlcoholicDrink": boolean (true ou false),
  "splits": [
    {
      "amount": number,
      "splitType": String, // flat ou percent,
      "recipientIdentification": "string",
      "chargeProcessingFee": boolean (true ou false),
      "chargeRemainderFee": boolean (true ou false),
      "liable": boolean (true ou false)
    },
    …]
}
{
  "amount": 1.25,
  "captureTransaction": true,
  "initiatorTransactionKey": "",
  "hasAlcoholicDrink": false,
  "installment": {
    "number": 1,
    "type": 0
  },
  "accountType": "Debit",
  "splits": [
    {
      "amount": 62,
      "splitType": "flat",
      "recipientIdentification": "rp_WX*********",
      "chargeProcessingFee": false,
      "chargeRemainderFee": false,
      "liable": false
    }, 
    {
      "amount": 63,
      "splitType": "flat",
      "recipientIdentification": "rp_1BQ*********",
      "chargeProcessingFee": true,
      "chargeRemainderFee": true,
      "liable": true
    }
  ]
}
{
  "amount": 244.61,
  "captureTransaction": true,
  "initiatorTransactionKey": "",
  "hasAlcoholicDrink": false,
  "installment": {
    "number": 2,
    "type": 2
  },
  "accountType": "credit",
  "splits": [
    {
      "amount": 5,
      "splitType": "percentage",
      "recipientIdentification": "rp_WXx0***********",
      "chargeProcessingFee": false,
      "chargeRemainderFee": false,
      "liable": false
    }, 
    {
      "amount": 95,
      "splitType": "percentage",
      "recipientIdentification": "rp_1B************",
      "chargeProcessingFee": true,
      "chargeRemainderFee": true,
      "liable": true
    }
  ]
}

❗️

IMPORTANTE

O ambiente de homologação Stone não tem suporte para o split, os testes deverão ser feitos no Piloto.

Sabendo que no ambiente pagar.me só teremos transações de débito e crédito, Pagar.me ainda não tem voucher.

📘

Divisão de Valores em Split:

É importante observar a forma como os valores são divididos em um sistema de Split:
O valor principal (Amount principal) deve ser um número decimal.

No entanto, o Amount de cada recebedor deve ser um número inteiro, uma vez que não se permite valores fracionados no Split.

Exemplo:
Suponhamos que precisamos dividir R$1,25 entre dois recebedores, a divisão de R$1,25 por dois resultaria em R$0,625 para cada recebedor, o que multiplicado por 100, não é um número inteiro. Portanto, precisamos ajustar o Amount de cada recebedor para que seja um número inteiro.

**Passos:
Recebedor 1: R$0,62 multiplicado por 100 resulta em 62.
Recebedor 2: R$0,63 multiplicado por 100 resulta em 63.

Observação:
Como não é permitido ter valores fracionados no Split, todos os valores no Amount do recebedor devem ser multiplicados por 100. Por exemplo, se tivermos R$9,34, multiplicamos por 100 para obter 934, que é o valor a ser usado no Split.

CampoDefinições
SplitRequest.Amount Valor destinado ao recebedor.
SplitRequest.SplitTypeTipo de divisão. Os valores possíveis são flat ou percentage. Flat é o valor inteiro.
Flat ;
Percentage;
SplitRequest.RecipientIdentificationCódigo do recebedor. Formato: rp_XXXXXXXXXXXXXXXX.
SplitRequest.changeProcessingFee* Indica se o recebedor vinculado à regra será cobrado pelas taxas da transação
SplitResquest.chargeRemainderFee* Indica se o recebedor vinculado à regra irá receber o restante dos recebíveis após uma divisão.
SplitResquest.liable*Indica se o recebedor é responsável pela transação em caso de chargeback.

Regra de Negócio:

Para os três pontos listados :

  • (SplitRequest.changeProcessingFee/SplitResquest.chargeRemainderFee/SplitResquest.liable*), ao menos um
    dos recebedores deve ser responsável (“true”).

Não há limite definido para a quantidade de regras de split.

A soma dos valores dos campos Amt deve:
Em caso de SpltTp=“percentage” → Ser igual a “100”
Em caso de SpltTp=“flat” → Deve ser igual ao valor da cobrança.

Se as regras de split não forem enviadas no fluxo transacional, a liquidação da transação será destinada ao recebedor principal da Company.

Não é necessário enviar regras de split no cancelamento total da transação.

Regras de Split - responsabilidade:

Ao menos um recebedor deve ser responsável pelos seguintes pontos:
Responsável pela transação em caso de chargeback;
Responsável pelas taxas da transação; ( è da taxa MDR do merchant).
Responsável pelo restante dos recebíveis após uma divisão.

Liable
Indica se o recebedor atrelado assumirá os riscos de chargeback da transação. Ou seja, no caso de haver um chargeback em alguma transação, este será debitado do recebedor que tiver configurado como true. Assim, ao menos um dos recebedores deve ter esse parâmetro true, mas também é possível configurar ambos como true. Nesse último caso, o débito referente ao chargeback será dividido de acordo com o split previamente aplicado.

Charge_processing_fee
Indica se o recebedor vinculado à regra será cobrado pelas taxas da transação. Assim, ao menos um dos recebedores deve ter esse parâmetro true, mas também é possível configurar ambos como true. Nesse último caso, as taxas serão divididas de acordo com o split previamente aplicado.
Lembrando que a configuração do charge_processing_fee vale apenas para as taxas percentuais de uma transação. As taxas fixas (gateway e antifraude) serão sempre cobradas do recebedor principal, ou seja, do Markeplace.

Charge_remainder_fee
É usado para a seguinte situação: Quando é feita a divisão das taxas de uma regra de split, é possível que, pela questão da divisão ser feita percentualmente (mesmo que a regra tenha sido estabelecida por amount), haja um, ou alguns, centavos restantes, que ficam "à deriva", não sendo atribuídos para nenhum dos recebedores. Por padrão, cobramos esse "restante" do recebedor principal. No entanto, é possível inserir o parâmetro charge_remainder_fee = true para o recebedor do qual deseja que seja cobrado.

OBS: No ambiente pagar.me, ainda não tem transações em voucher.
OBS: Caso se escolha que todos os recebedores estejam como "true" será dividido igualmente, Caso for escolhido somente um recebedor responsável pela variáveis, as taxas , chagerback será somente cobrado deste recebedor.

📘

Bandeira suportadas no ambiente pagar.me!

  • Visa
    • Master
    • Elo
    • Amex
    • Hiper

❗️

IMPORTANTE !!!

O ambiente de homologação Stone não tem suporte para o split, os testes deverão ser feitos no Piloto.

Sabendo que no ambiente pagar.me só teremos transações de débito e crédito, Pagar.me ainda não tem voucher.