Endpoint: POST /sales/seller/{seller_id}/simulate
Autenticação: Publica (sem autenticacao, CSRF dispensado)
Dado um vendedor e um valor alvo, retorna a tabela de taxas por parcela/bandeira em duas visoes:
  • seller_liable — o comprador paga amount; o valor a receber e reduzido pela taxa. receivable_amount = amount * (1 - tax/100).
  • buyer_liable — o comprador paga amount + juros para que o recebivel se mantenha igual a amount. amount = receivable / (1 - tax/100).
Ambos os blocos sao indexados por type (ex.: credit, debit) → installment (1, 2, …, ate o maximo do plano) → brand (ex.: Visa, MasterCard, Hipercard…). O plano de split da conta fornece a tabela usada aqui; com is_online=true a tabela e filtrada para capture_mode='manually_keyed'. Se o vendedor nao tiver plano de split ou plano de adquirencia anexado, o endpoint retorna 400.

Pre-requisitos

  • O vendedor deve existir.
  • A conta do vendedor deve ter um plano de split configurado, e esse plano de split deve ter um plano de taxa anexado. Veja Planos e Splits.

Parametros de caminho

seller_id
string
required
UUID unificado da conta.

Corpo da requisicao

amount
string
required
Valor alvo em BRL como valor decimal em reais (ex.: "100.00"). Precisao de duas casas decimais; minimo 0.01.
is_online
boolean
default:"true"
Quando true, a simulacao usa capture_mode='manually_keyed' (taxas para pagamentos online sem presenca do cartao). Quando false, usa as taxas de pagamento presencial (captura por terminal).

Resposta

200 OK. Dois mapas aninhados com estrutura identica.
seller_liable
object
Comprador paga amount; vendedor absorve a taxa. Forma: type → installment → brand → { amount, receivable_amount, tax }. Todos os valores como strings decimais.
buyer_liable
object
Comprador paga amount + juros; vendedor recebe amount. Forma: type → installment → brand → { amount, receivable_amount, tax }. Todos os valores como strings decimais.
{
  "seller_liable": {
    "credit": {
      "1": {
        "Visa":      {"amount": "100.00", "receivable_amount": "97.10", "tax": "2.90"},
        "Mastercard":{"amount": "100.00", "receivable_amount": "97.10", "tax": "2.90"}
      },
      "2": {
        "Visa":      {"amount": "100.00", "receivable_amount": "96.20", "tax": "3.80"}
      }
    }
  },
  "buyer_liable": {
    "credit": {
      "1": {
        "Visa":      {"amount": "102.99", "receivable_amount": "100.00", "tax": "2.90"}
      }
    }
  }
}

Erros

StatusQuando
400amount ausente/invalido, vendedor nao encontrado, vendedor sem plano de split, sem plano de taxa, ou sem taxas configuradas.
405Metodo diferente de POST.

Exemplos

curl -X POST "https://api.dlpay.cloud/sales/seller/$SELLER_ID/simulate" \
  -H "Content-Type: application/json" \
  -d '{"amount": "100.00", "is_online": true}'