Estrutura de comissão: MDR, scheme, PSP
1) Mapa de conceitos e de onde é dobrado o MDR
O MDR (Merchant Discount Rate) é um custo total de recebimento, normalmente expressivo em% do negócio + fix. taxa de transação. Clássica pilha de cartas:1. Interchange (banco emissor): porcentagem por tipo de cartão/região/categoria.
2. Scheme fes (sistemas de pagamento): assessment, processing, cross-border, brand usage, etc.
3. Aquirer/PSP markup: Aumento do equeiro/provedor (percentual + fix).
4. Dop. taxas: chargeback fee, refund fee, representment, retrieval, auth-fee, gateway-fee, rolling reserve (não comissão, mas afeta o cash flow), FX-spread na conversão.
Valor final para o merchant = Interchange + Scheme + Markup + Taxas fixas + efeitos FX.
2) Modelos de preços
2. 1. Blended (flat)
Um por cento + fix. coleta «tudo incluído». Simples, mas opaco, esconde interchange/scheme e spread FX.
2. 2. IC++ (Interchange++ / Interchange pass-through)
Interchange e scheme vão «como é», em cima é um provedor de markup fixo. Transparente, fácil de verificar, vantajoso com um portfólio de cartões «barato».
2. 3. Tiered/Pricing buckets
Várias «cestas» (domestic, interra-EEA, inter-regional, comercial, premium). Fácil de reportar, pode mascarar o custo real.
2. 4. Métodos alternativos (A2A/Wallet/Cripto)
Mais frequentemente flat-fee ou% abaixo dos cartões; taxas individuais de rede/provedor e efeito FX na conversão.
3) Onde e quando surge uma comissão
Auth/Validação: taxa de tentativa de autorização (usp ./nessp.) .
Capture/Setle: Parte principal do MDR.
Refund/Partial refund: as restituições são muitas vezes tarifadas separadamente (+ reajuste scheme).
Chargeback/Representment: фикс. Taxas de mala/etapa.
Gateway/Plataforma: Assinante mensal, fee por webhooks, relatórios, torneamento de cartões.
FX/Conversion: A margem implicit PSP/banco (spread) se a conversão estiver do lado deles.
Calendário: mínimo monthly fee, early termination, placa PCI, 3DS-fee, fraud-suíte fee.
4) Aumentos e correções de tarifas
Cross-border (emissor ≠ equirer país), CNP (card-not-present), premium/cartão comercial.
High-risk verticals (iGaming) - alta markup/reserva.
Multas de padrão/métricas de limite: excesso de CBR → taxas adicionais.
SCA/3DS: fee individual por transação/tentativa.
Mínimo card/Small ticket: fixes avançados. taxas de cheques pequenos.
5) Gross vs Net masslement e «para onde os juros foram»
Gross Masslement: O eixo é calculado com PSP e as comissões são filmadas por uma linha individual (mais fácil de comparar).
Net masslement: vêm net funding = circulação - interchange - scheme - markup - fix. taxas - reserva.
Em cenários net, é crítico importar um componente de divisão, senão take-rate «salta».
6) Fórmulas e métricas «eficientes»
6. 1. Efetive take-rate (pelo método/PSP)
take_rate_effective_% = (Σ Fees_all_components) / (Σ Captured_Gross) 100
6. 2. Decomposição em componentes
Fees_all = Interchange + Scheme + Markup + Auth + Refund + Chargeback + Gateway
+ FX_spread_effect (if applicable)
6. 3. Custo de rejeição (Decline cost)
Cost_per_approval = (Σ Auth_Fees + Σ Decline_Fees )/( Number of successful payments)
6. 4. Impact FX
FX_slippage = Σ (Settlement_amount_in_rep - Original_amount FX_reference_rate)
6. 5. Custo dos charjbacks
CB_cost_total = Σ (CB_fee + Representment_fee + Scheme_penalties) + Lost_principal (если не отбит)
7) Modelo de dados (simplificado)
ref. fee_components (
code PK, name, category, -- INTERCHANGE SCHEME MARKUP AUTH REFUND CHARGEBACK GATEWAY FX_SPREAD unit, -- PCT FIX MIXED is_variable, is_settlement_level
)
finance. psp_pricing (
provider, method, region, bin_range, card_type, card_category,
model, -- BLENDED IC++ TIERED pct_rate, --% rate (if applicable)
fix_fee, -- фикс за trx cross_border_bps, premium_bps, cnp_bps,
refund_fix, cb_fix, auth_fix, gateway_monthly,
valid_from, valid_to, meta
)
finance. settlement_fees (
batch_id, provider, mid, method, period_start_at, period_end_at,
interchange_amt, scheme_amt, markup_amt,
auth_amt, refund_amt, cb_amt, gateway_amt,
fx_spread_amt, reserve_delta, total_fees, currency
)
dw. transactions_flat (
tx_id, provider, method, status, bin, brand, category, region,
amount_original, currency_original, amount_reporting, reporting_currency,
settled_at, funded_at, is_refund, is_cb, fx_reference_rate, fx_effective_rate, meta
)
8) Confecção: de transações para arquivo e retorno
8. 1. Tx → Arquivo (verifique o que contamos como um arquivo)
Agregue a circulação por cestas (BIN/região/tipo de cartão) x regras pricing.
Aplique as taxas interchange/scheme/markup/fix.
Compare de 'masslement _ fees. total_fees` по batch. Delta> limiar → tíquete.
8. 2. Arquivo → Tx (verifique se o arquivo não tem «excesso»)
Atribua o batch-fee proporcionalmente à circulação/transação para o nível tx (com blended/sem detalhe).
Encontre posições inesperadas (extra fee line, penalty, mínimo monthly top-up).
9) Exemplos de modelos SQL
9. 1. Cálculo de efetivo take-rate por métodos/PSP
sql
SELECT provider, method,
SUM(amount_reporting) AS volume_rep,
SUM(f. interchange_amt + f. scheme_amt + f. markup_amt +
f. auth_amt + f. refund_amt + f. cb_amt + f. gateway_amt + f. fx_spread_amt) AS fees_rep,
100. 0 SUM(f. interchange_amt + f. scheme_amt + f. markup_amt +
f. auth_amt + f. refund_amt + f. cb_amt + f. gateway_amt + f. fx_spread_amt)
/ NULLIF(SUM(amount_reporting),0) AS take_rate_effective_pct
FROM dw. transactions_flat t
JOIN finance. settlement_fees f
ON f. provider = t. provider
AND t. settled_at BETWEEN f. period_start_at AND f. period_end_at
GROUP BY 1,2
ORDER BY take_rate_effective_pct DESC;
9. 2. Transferir batch-fee para transações (blended)
sql
WITH vol AS (
SELECT provider, batch_id, SUM(amount_reporting) AS batch_volume
FROM dw. transactions_flat
GROUP BY 1,2
)
SELECT t. tx_id, t. provider, t. batch_id,
(f. total_fees t. amount_reporting / NULLIF(v. batch_volume,0)) AS fee_allocated
FROM dw. transactions_flat t
JOIN finance. settlement_fees f USING (provider, batch_id)
JOIN vol v USING (provider, batch_id);
9. 3. Custo de rejeição e custo de aprovação
sql
SELECT provider, method,
SUM(CASE WHEN status='DECLINED' THEN auth_fee ELSE 0 END) AS decline_cost,
SUM(CASE WHEN status='APPROVED' THEN auth_fee ELSE 0 END) AS approval_auth_cost,
COUNT() FILTER (WHERE status='APPROVED') AS approvals,
(SUM(auth_fee) / NULLIF(COUNT() FILTER (WHERE status='APPROVED'),0)) AS cost_per_approval
FROM dw. auth_events;
9. 4. Seleção de spread FX (se houver rate efetivo)
sql
SELECT provider, DATE(settled_at) AS d,
SUM((fx_effective_rate - fx_reference_rate) amount_original) AS fx_slippage_rep
FROM dw. transactions_flat
WHERE fx_effective_rate IS NOT NULL
GROUP BY 1,2;
10) KPI e dashboards
Efetiva Take-Rate% por PSP/método/MID/país.
Stack de componentes: Interchange%, Scheme%, Markup%, Fixed per trx.
Costa-para-Approval e Decline-burden (quanto custa a rejeição).
FX Slippage (bps e na moeda do relatório).
Refund/CB Cost para 1000 transações.
Penalty/Mínimo-monthly incidentes.
Reserve as% do GMV (para entender o impacto sobre o dinheiro).
11) Alertas e liminares
Take-rate spike: altura> X bps d/d ou> Y bps w/w.
Scheme delta: discrepância entre scheme-fees calculados e arquivo> 0. 3–0. 5%.
FX slippage:> 80 bps para maiores ou> 150 bps para menores.
Decline coot surface: aumento do custo de aprovação com redução do AR.
Unmapped fee line: nova linha no arquivo sem mupping do componente.
Minimum monthly shortfall: rotação contínua até o mínimo (à frente do adicional).
12) Negociação e redução de custo
1. Ir para IC++ se a carteira for favorável (domestic, consumer debit).
2. BIN-roting/Smart-routing: separe os fluxos geo/tipo de cartão para equeiros «baratos».
3. A2A/Open Banking/Local methods para reduzir a proporção de cartões caros.
4. Tiered volume discounts - Fixar liminares e ciúmes trimestralmente.
5. Cap em fixed-fees para os segmentos micro-card.
6. Transparent FX: reference-rate + spread _ bps fixo, relatórios de efetiva FX.
7. Penalty shields: definir limites/condições de multas scheme e sua base de provas.
8. MIDs individuais para os portfólios high-risk/low-risk - não «contaminar» tarifas.
9. Performance-clauses: SLA Autorizações/3DS, senão redução markup.
13) Edge-cases
As autuações fan-out (tentativas repetidas) → auth-fees estão a descolar. Incluir rate-limit/soft-decline estratégias.
Partial capture: cálculos de esquema são contados; é importante agregar bem.
Ex-post replicing: O provedor repassou feições para armazenar versões de arquivos e revisões de batch.
Refunds mais tarde cutoff: estão no seguinte ciclo: ajustar relatórios.
Cartões corporativos/premium: Siga a parte - «puxa» interchange médio.
14) Best pratices (curta)
1. O motor de cálculo de fees do seu lado + mupping de todas as linhas de arquivo para os componentes.
2. IC++ e FX transparente onde for benéfico; blended - apenas com desconto real.
3. Smart-roting por BIN/geo/tipo de cartão; Testes PSP A/B.
4. Contabilidade separada de taxas fixas e juros; não misturar com lucro FX/perda.
5. Versionização de pricing e arquivos; reprocess determinado.
6. «variance-reports» semanais em componentes take-rate.
7. Negociação de cada trimestre com um pacote de métricas CBR, 3DS pass-rate, AR, fraud-rate, share of dominic.
15) Folha de cheque de implementação
- Guia 'fee _ componentes' e 'psp _ pricing' com versões e períodos de validade.
- Importar 'masslement _ fees' com detalhe Interchange/Scheme/Markup/Fixed.
- O ETL de cálculo da nossa versão fee por tx e o cruzamento com o arquivo.
- Dashboard take-rate e stack de componentes.
- Алерты: spike, mismatch, FX slippage, minimum monthly.
- Procedimentos de negociação: revisão trimestral e roadmap para redução.
Currículo
O MDR não é um «1%», mas sim um conjunto de camadas: interchange, scheme, markup, fix e FX. O modelo de dados transparente, o cálculo próprio das comissões de referência, o processamento regular dos arquivos PSP e a rotação de pagamento sensível transformam o custo de admissão em KPI administrado. Com essa disciplina, você vê o real take-rate, encontra «vazamentos» em FX e FX e reduz com segurança os pagamentos TCO.