> ## Documentation Index
> Fetch the complete documentation index at: https://docs.malga.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Split em sessão ou link de pagamento

> Configure regras de split na criação da sessão; o pagamento herda essas regras sem novo envio no corpo da cobrança da sessão.

## Visão geral

No fluxo por **sessão** ou **link de pagamento**, o split não é definido no corpo da requisição de pagamento (`POST /v1/sessions/{id}/charge`). Você envia **`splitRules` ao criar a sessão** (`POST /v1/sessions`). O serviço armazena as regras; na cobrança, a Malga recupera os dados da sessão e **aplica o split já configurado** na transação.

Para cobrança **direta** com split no mesmo request, use [`POST /v1/charges`](/api-reference/charges/realizar-nova-cobranca) conforme [Cobrança com Split](/documentations/split/split).

<Info title="Integração técnica">
  O roteamento de pagamento da sessão obtém os dados da sessão internamente e
  aplica o split armazenado. **Não** envie `splitRules` no corpo ao pagar a
  sessão.
</Info>

## Pré-requisitos

Os **recebedores (sellers)** precisam existir e estar válidos **antes** de referenciá-los em `splitRules`. Na criação da sessão, o serviço de sessões valida a existência dos recebedores; no momento da cobrança, o fluxo de transações e sellers trata mapeamento com o provedor e status para a captura.

Veja [Recebedor (seller)](/documentations/split/seller).

## Fluxo resumido

1. Crie os sellers necessários.
2. **Crie a sessão** com `splitRules` no JSON (junto a `amount`, `items`, `paymentMethods`, etc.).
3. **Pague a sessão** enviando apenas método e origem do pagamento (por exemplo `paymentMethod` e `paymentSource`). **Sem** `splitRules` no corpo.

<div className="flex justify-center">
  ```mermaid theme={null}
  %%{init: {'theme': 'base', 'themeVariables': {
    'primaryColor': '#1f2937', 'primaryTextColor': '#e5e7eb',
    'primaryBorderColor': '#475569', 'lineColor': '#64748b',
    'background': '#0b1220', 'mainBkg': '#111827',
    'nodeBorder': '#334155', 'textColor': '#cbd5e1'
  }}}%%
  flowchart TD
    sellers[Crie os sellers] --> session[Crie a sessão com splitRules]
    session --> payment[Pague a sessão sem splitRules]
    payment --> charge[A cobrança herda o split da sessão]
  ```
</div>

## Exemplo: criar sessão com split

```bash theme={null}
curl --location 'https://api.malga.io/v1/sessions' \
--header 'X-Client-Id: <SEU_CLIENT_ID>' \
--header 'X-Api-Key: <SUA_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
  "name": "Marketplace - 2 sellers",
  "merchantId": "<SEU_MERCHANT_ID>",
  "amount": 1000,
  "currency": "BRL",
  "capture": true,
  "paymentMethods": [
    {
      "paymentType": "credit",
      "installments": 1
    }
  ],
  "dueDate": "2026-02-20",
  "items": [
    {
      "name": "Produto",
      "unitPrice": 1000,
      "quantity": 1,
      "tangible": true
    }
  ],
  "splitRules": [
    {
      "sellerId": "<SELLER_ID_1>",
      "percentage": 60,
      "processingFee": true,
      "chargeEntireFee": true,
      "liable": true
    },
    {
      "sellerId": "<SELLER_ID_2>",
      "percentage": 40,
      "processingFee": false,
      "chargeEntireFee": false,
      "chargeRemainderFee": false,
      "liable": false
    }
  ]
}'
```

A resposta da sessão pode incluir `splitRules` persistidos (como em outros recursos de cobrança). Consulte a [especificação de sessões](/api-reference/sessions/criar-nova-sessao).

## Exemplo: pagar sessão (sem split no corpo)

```bash theme={null}
curl --location 'https://api.malga.io/v1/sessions/<SESSION_ID>/charge' \
--header 'X-Client-Id: <SEU_CLIENT_ID>' \
--header 'X-Api-Key: <SUA_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
  "paymentMethod": {
    "paymentType": "credit",
    "installments": 1
  },
  "paymentSource": {
    "sourceType": "customer",
    "customerId": "<CUSTOMER_ID>"
  }
}'
```

O split aplicado na transação é o **definido na criação da sessão**, não o deste corpo.

## Regras de validação (split na sessão)

* Em cada regra, use **exatamente um** entre `percentage` ou `amount`.
* Não misture regras **só em valor** e **só em percentual** na mesma sessão.
* Soma de **percentuais** pode ser **até 100%**.
* Soma de **valores** em centavos não pode **ultrapassar** o valor da sessão ou da transação.
* `chargeEntireFee` e `chargeRemainderFee` **não** podem ser `true` ao mesmo tempo.

Para o detalhamento dos campos de regra, veja [Cobrança com Split](/documentations/split/split#regras-de-split) (mesmo modelo de regra, aplicado na criação da sessão em vez do `POST /v1/charges`).
