MarketplaceSplit de Pagamentos

O split divide automaticamente o valor de uma cobrança entre você e seus recebedores no momento do pagamento. Funciona com PIX e cartão de crédito.


Como funciona

Ao criar uma cobrança, você passa um array splits com os recebedores e o valor que cada um deve receber. A CasperPay valida os recebedores, desconta as taxas da plataforma e registra internamente quanto cada recebedor tem a receber.

Cobrança de R$ 100,00

├─ Recebedor A  →  R$ 40,00  (sem dedução de taxas)
├─ Recebedor B  →  R$ 20,00  (sem dedução de taxas)
└─ Você (seller) →  R$ 40,00  (menos taxas da plataforma)

Os recebedores precisam estar com status active para receber split. Cadastre-os primeiro em Recebedores.


Split via PIX

POST https://isolutionpay.com/api/pix

Adicione o campo splits no body da cobrança normal de PIX:

curl -X POST https://isolutionpay.com/api/pix \
  -H "Content-Type: application/json" \
  -H "token: isolutionpay_sk_SUA_CHAVE_AQUI" \
  -d '{
    "valor": "100.00",
    "nome": "Maria Souza",
    "cpf": "98765432100",
    "descricao": "Pedido #1234",
    "splits": [
      { "sub_recipient_id": "3f2e1d0c-uuid-do-recebedor-a", "amount": 4000 },
      { "sub_recipient_id": "7a8b9c0d-uuid-do-recebedor-b", "amount": 2000 }
    ]
  }'
const res = await fetch("https://isolutionpay.com/api/pix", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "token": "isolutionpay_sk_SUA_CHAVE_AQUI"
  },
  body: JSON.stringify({
    valor: "100.00",
    nome: "Maria Souza",
    cpf: "98765432100",
    descricao: "Pedido #1234",
    splits: [
      { sub_recipient_id: "3f2e1d0c-uuid-do-recebedor-a", amount: 4000 },
      { sub_recipient_id: "7a8b9c0d-uuid-do-recebedor-b", amount: 2000 }
    ]
  })
});
 
const { txid, pixCopiaECola } = await res.json();

PIX liquida em D0 — assim que o pagador confirmar o pagamento, os splits dos recebedores passam imediatamente para available (disponível para saque).


Split via Cartão de Crédito

POST https://isolutionpay.com/api/card

Mesmo campo splits na cobrança de cartão:

curl -X POST https://isolutionpay.com/api/card \
  -H "Content-Type: application/json" \
  -H "token: isolutionpay_sk_SUA_CHAVE_AQUI" \
  -d '{
    "amount": 10000,
    "installments": 1,
    "customer": {
      "name": "Maria Souza",
      "email": "maria@email.com",
      "document": "98765432100"
    },
    "card": {
      "number": "4000000000000010",
      "holder_name": "MARIA SOUZA",
      "exp_month": "12",
      "exp_year": "2028",
      "cvv": "123"
    },
    "splits": [
      { "sub_recipient_id": "3f2e1d0c-uuid-do-recebedor-a", "amount": 4000 },
      { "sub_recipient_id": "7a8b9c0d-uuid-do-recebedor-b", "amount": 2000 }
    ]
  }'

Cartão liquida em D+30 — os splits ficam com status pending por 30 dias. Após esse prazo, passam para available. Se quiser antecipar, consulte a seção de Antecipação.


Campo splits

CampoObrigatórioDescrição
sub_recipient_idID do recebedor retornado em POST /api/sub-recipients
amountValor em centavos (inteiro). Ex: 4000 = R$ 40,00

Regras:

  • O sub_recipient_id deve pertencer à sua conta e estar com status active
  • A soma dos amounts deve ser menor que o valor total da cobrança (o restante fica com você, já descontadas as taxas)
  • Máximo de recebedores por cobrança: ilimitado, desde que a soma não ultrapasse o total

Ciclo de vida do split

Pagamento confirmado


   [pending]  ←─ cartão D+30 ou PIX aguardando confirmação

        │  PIX: confirmação imediata
        │  Cartão: após D+30 ou antecipação

  [available]  ←─ saldo disponível para saque

        │  Seller solicita saque → admin aprova

    [paid]  ←─ TED/PIX enviado para conta do recebedor
StatusSignificado
pendingAguardando liquidação (cartão D+30 ou PIX não confirmado ainda)
availableSaldo disponível para solicitar saque
paidTransferência realizada — saque aprovado pelo administrador

Como as taxas são calculadas

PIX

Taxa percentual plana sobre o valor total. O valor do split dos recebedores é subtraído antes do cálculo da sua comissão.

Exemplo: cobrança R$ 100,00 com splits de R$ 60,00

sellerGross   = R$ 100,00 - R$ 60,00 = R$ 40,00
comissão      = R$ 40,00 × taxa%
sellerLíquido = R$ 40,00 - comissão

Cartão de crédito

Além da margem da plataforma, o cartão inclui:

  • MDR (taxa da adquirente): varia por número de parcelas
    • À vista (1x): menor taxa
    • 2–6x: taxa intermediária
    • 7–12x: taxa maior
  • Antifraude: valor fixo por transação (R$ 1,98 por padrão)
Exemplo: cobrança R$ 100,00 em 3x com split de R$ 60,00

sellerGross   = R$ 100,00 - R$ 60,00 = R$ 40,00
MDR estimado  = R$ 40,00 × 3,49%     = R$ 1,40
antifraude    = R$ 1,98
margem        = R$ 40,00 × margem%
comissão      = MDR + antifraude + margem
sellerLíquido = R$ 40,00 - comissão

As taxas exatas dependem da sua categoria de faturamento e configuração da conta. Consulte seu painel em Finanças para ver o breakdown de cada transação.

Os recebedores do split não pagam taxas — eles recebem o valor exato que você definiu em amount. Todas as taxas (MDR, antifraude, margem) são descontadas da sua parte.


Antecipação de cartão (D+30)

Splits de cartão ficam pending por 30 dias. A antecipação move splits selecionados para available antes do prazo, descontando uma taxa proporcional ao prazo escolhido.

Taxas de antecipação

PrazoTaxa
D+22,38%
D+72,00%
D+151,50%

As taxas podem variar conforme configuração da sua conta. Consulte o endpoint de antecipação para os valores exatos aplicados à sua chave.

Consultar recebíveis antecipáveis

GET https://isolutionpay.com/api/dashboard/sub-recipients/{id}/anticipate

Retorna todos os splits de cartão com status: pending e balance_available_at no futuro, com o breakdown de taxas para cada prazo.

{
  "items": [
    {
      "id": "split-uuid",
      "amount_cents": 2500,
      "payment_method": "credit_card",
      "balance_available_at": "2025-02-14T00:00:00.000Z",
      "payment_nome": "Carlos Lima",
      "fees": {
        "d2":  { "target_days": 2,  "rate_percent": 2.38, "fee_cents": 60,  "net_cents": 2440 },
        "d7":  { "target_days": 7,  "rate_percent": 2.0,  "fee_cents": 50,  "net_cents": 2450 },
        "d15": { "target_days": 15, "rate_percent": 1.5,  "fee_cents": 38,  "net_cents": 2462 }
      }
    }
  ],
  "rates": { "d2": 2.38, "d7": 2.0, "d15": 1.5 }
}

Solicitar antecipação

POST https://isolutionpay.com/api/dashboard/sub-recipients/{id}/anticipate
curl -X POST https://isolutionpay.com/api/dashboard/sub-recipients/3f2e1d0c-.../anticipate \
  -H "Content-Type: application/json" \
  -H "token: isolutionpay_sk_SUA_CHAVE_AQUI" \
  -d '{
    "split_ids": ["split-uuid-1", "split-uuid-2"],
    "target_days": 7
  }'
{
  "success": true,
  "anticipated_count": 2,
  "original_cents": 5000,
  "fee_cents": 100,
  "net_cents": 4900,
  "target_days": 7,
  "rate_percent": 2.0
}

Após a antecipação os splits passam imediatamente para available com o valor líquido (já descontada a taxa). O saldo para saque é atualizado na hora.


Resposta das cobranças com split

A resposta é igual à de uma cobrança normal, com um campo extra breakdown:

{
  "success": true,
  "txid": "abc123xyz",
  "pixCopiaECola": "00020126580014br.gov.bcb.pix...",
  "status": "pending",
  "breakdown": {
    "amount": 10000,
    "sellerAmount": 3800,
    "commission": 200,
    "feePercent": 2.0
  }
}
CampoDescrição
breakdown.amountValor total cobrado (centavos)
breakdown.sellerAmountO que você recebe líquido (centavos)
breakdown.commissionComissão ISolutionPay (centavos)
breakdown.feePercentTaxa efetiva aplicada (%)

Erros comuns

CódigoMotivo
400sub_recipient_id não encontrado ou não pertence à sua conta
400Recebedor com status diferente de active (aguarda aprovação)
400Soma dos amounts maior ou igual ao valor total da cobrança
422Sua conta não está configurada para split (entre em contato)