Endpoint: POST /plans/plans/split/
Autenticação: Obrigatória — JWT via Authorization: Bearer <access_token>.
Cria um novo plano de split. O plano de split é aplicado sobre um plano de taxa e define, para cada combinação de (payment_type, installment_count, card_brand), quais participantes recebem qual porcentagem da receita do vendedor. Duas tabelas paralelas são armazenadas — uma para transações presenciais / com cartão presente (split_details) e outra para transações online / digitadas manualmente (split_details_online). Os planos de split são globais: não são vinculados a um vendedor específico e o registro criado fica imediatamente disponível para qualquer vendedor que o referencie. A criação não aceita o campo automatic_developer_fee como entrada — ele assume true por padrão no registro.

Corpo da requisição

name
string
required
Nome de exibição do plano de split. Aparece no painel e nos resultados de busca.
zoop_tax_plan
string (uuid)
required
Identificador do plano de taxa subjacente cujas células (type, installment, brand) este plano de split irá distribuir. Utilize GET /plans/plans/zoop/ para listar candidatos.
split_details
string
required
Documento JSON serializado como string descrevendo a tabela de split para transações presenciais / com cartão presente. Aspas simples são aceitas e normalizadas para aspas duplas antes da análise. O formato esperado é:
{
  "<payment_type>": {            // "credit" | "debit"
    "<installments>": {          // "1" .. "N" como strings
      "<card_brand>": {          // ex.: "Visa", "MasterCard", "Elo"; ou "Todas as bandeiras %"
        "<participant_label>": <percentual>
      }
    }
  }
}
Convenções observadas em produção:
  • As chaves de bandeira podem ser uma bandeira específica (ex.: Visa, MasterCard) ou o curinga Todas as bandeiras %, usado como fallback quando uma bandeira específica não está listada.
  • Os rótulos de participante são strings livres em português — tipicamente Programador (parcela do programador), além dos rótulos definidos pelo operador para o master, o agente e eventuais subagentes. Os valores são percentuais sobre o montante capturado.
  • A entrada Programador, quando presente, recebe tratamento especial: ela é removida dos totais de agente/master e direcionada para a conta do programador.
  • Para pix e boleto o resolvedor reescreve a busca internamente para debit / parcela 1 com bandeira PIX ou Boleto. Inclua essas chaves de bandeira em debit1 caso precise de divisões específicas para esses meios.
split_details_online
string
required
Mesmo formato de split_details, aplicado quando a transação é online / digitada manualmente (checkout online, e-commerce, link de pagamento). Armazenado de forma independente para que transações presenciais e não presenciais possam ter divisões distintas.

Resposta

Retorna 201 Created com o registro persistido (a resposta da criação ecoa a entrada acrescida do id atribuído):
id
string (uuid)
Identificador único atribuído.
name
string
Nome do plano de split.
zoop_tax_plan
string (uuid)
Identificador do plano de taxa subjacente.
split_details
string
Tabela de split presencial, armazenada como JSON em string.
split_details_online
string
Tabela de split online, armazenada como JSON em string.
{
  "id": "5f1e2a4b-3c5d-4f6a-9b7c-1e2d3f4a5b6c",
  "name": "Comercio - Master 100",
  "zoop_tax_plan": "6a3a5b1e-7c2a-4b6f-9a3e-2c1d8e4f1b22",
  "split_details": "{'credit': {'1': {'Todas as bandeiras %': {'Master': 1.0, 'Programador': 0.1}}, '12': {'Todas as bandeiras %': {'Master': 2.5, 'Programador': 0.1}}}, 'debit': {'1': {'Todas as bandeiras %': {'Master': 0.5, 'Programador': 0.1}, 'PIX': {'Master': 0.3, 'Programador': 0.1}, 'Boleto': {'Master': 1.5, 'Programador': 0.1}}}}",
  "split_details_online": "{'credit': {'1': {'Todas as bandeiras %': {'Master': 1.5, 'Programador': 0.1}}, '12': {'Todas as bandeiras %': {'Master': 3.0, 'Programador': 0.1}}}, 'debit': {'1': {'Todas as bandeiras %': {'Master': 0.8, 'Programador': 0.1}}}}"
}

Erros

StatusQuando
400Campo obrigatório ausente, ou zoop_tax_plan não corresponde a nenhum plano de taxa existente.
401Cabeçalho Authorization ausente ou inválido.

Exemplos

curl -X POST https://api.dlpay.cloud/plans/plans/split/ \
  -H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh..." \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Comercio - Master 100",
    "zoop_tax_plan": "6a3a5b1e-7c2a-4b6f-9a3e-2c1d8e4f1b22",
    "split_details": "{\"credit\": {\"1\": {\"Todas as bandeiras %\": {\"Master\": 1.0, \"Programador\": 0.1}}}}",
    "split_details_online": "{\"credit\": {\"1\": {\"Todas as bandeiras %\": {\"Master\": 1.5, \"Programador\": 0.1}}}}"
  }'