Skip to content

Pricing Templates

Access prerequisites

  • Permission (module): creditConfigManage (to create/edit). Read access granted by viewCredits.
  • License/Feature: CREDIT_INVESTMENTS enabled in the tenant license (Vault).
  • Menu container: TOKENIZATION → group Tokenized Credit

What it is / when to use

The Pricing Template defines spreads, fees, and terms that the pricing engine uses to calculate the discount, fees, and net disbursement of a receivables anticipation operation. It is the credit "price table": from it the system derives the period discount rate and how much the originator actually receives.

Use this screen to standardize pricing by product/risk, instead of entering rates manually for each operation. Each template can also adjust the spread by risk score (e.g.: AAA cheaper, D more expensive).

Prerequisites

  • Permission: creditConfigManage registered for the role (double permission — CPM enum in the backend + dynamic module in the DB).
  • License/Feature: CREDIT_INVESTMENTS enabled; otherwise the group does not appear in the menu.
  • Dependencies: none to create the template. It is consumed later when quoting/creating deals (the template is referenced by pricingTemplateId).

Step by step

  1. Go to Tokenized Credit → Pricing Templates.
  2. Filter by Active if necessary.
  3. Click Create.
  4. Fill in Name, Base Spread, Administrative Fee, Reserve %, Minimum Term, and Maximum Term (in days).
  5. Optionally, in the spread by score block, add rows associating a score (AAA, AA, A, BBB, BB, B, CCC, D, or LOW/MEDIUM/HIGH) with an additional spread.
  6. Click Save.

Fields

FieldWhat it isRequired?System/backend effect
NameTemplate identifierYesStored in name; used in the listing and in the selection when quoting deals.
Base SpreadSpread in % p.a. added to the base rateYes (default 0)Stored in baseSpread. Enters the discount rate formula: annualRate = baseRate + spread + riskAdjustment, applied pro-rata by term (× days/365).
Administrative FeeFixed fee in % on the gross valueYes (default 0)Stored in adminFee. Calculates feesAmount = grossValue × adminFee/100flat fee, not annualized.
Reserve %Percentage retained as reserveYes (default 0)Stored in reservePercentage. Guarantee/coverage reserve associated with the operation.
Minimum Term (days)Minimum accepted average termYes (default 0)Stored in minTermDays. In pricing, if the weighted average term of the receivables falls below the minimum, the calculation is rejected with an error.
Maximum Term (days)Maximum accepted average termYes (default 0)Stored in maxTermDays. If the weighted average term exceeds the maximum, the calculation is rejected.
Spread by Score → ScoreRisk classification (AAA…D, or LOW/MEDIUM/HIGH)NoKey of the spreadByScore map. Allows risk adjustment by rating.
Spread by Score → SpreadAdditional spread for that score, in % p.a.ConditionalValue of the spreadByScore map. The pricing engine uses the adjustment corresponding to the originator's risk profile as riskAdjustment in the formula. If the profile is not in the map, the adjustment is 0.
ActiveEnables/disables the templateYes (default Yes)Stored in active; inactive templates must not be used in new quotes.
VersionVersion numberNo (default 1)Stored in version; tracks price revisions.

How the template is applied (engine view)

When quoting/pricing an operation, the pricing engine:

  1. Sums the gross value of the receivables.
  2. Calculates the weighted average term (each receivable is weighted by its share of the gross value) and validates it against minTermDays/maxTermDays.
  3. Obtains the base rate (CDI/Selic) from the tenant configuration — if not present, uses 12% p.a. as default.
  4. Applies the risk adjustment from spreadByScore according to the originator's profile.
  5. discountRate = (baseRate + baseSpread + riskAdjustment) × (days/365).
  6. discount = gross × discountRate/100; fees = gross × adminFee/100; net = gross − discount − fees.

Actions and modals

  • Create / Update: saves the template via createPricingTemplate / updatePricingTemplate. Button visible only with creditConfigManage.
  • Add / Remove spread row: manipulate the spreadByScore map (generated automatically — you do not edit the JSON manually).
  • Edit: loads the template and rebuilds the spread rows from the saved spreadByScore.

Since this is configuration that defines price, saving may require step-up (password + MFA) depending on the environment.

Business rules / cautions

Attention

  • Average term outside the range rejects the calculation. If the weighted average term of the receivables falls below minTermDays or above maxTermDays, pricing fails — adjust the range or the receivables.
  • Default base rate is 12% p.a. If the tenant does not have the base rate configured, the engine assumes 12% p.a. and logs a warning. Do not rely on the default in production: configure the actual base rate.
  • adminFee is flat, baseSpread is annualized. The administrative fee is applied directly on the gross; the spread is annualized and pro-rated by term. Do not confuse the two when calibrating the price.
  • Missing score = 0 adjustment. If the originator's risk profile has no row in spreadByScore, the risk adjustment is zero — this may underprice high risk.
  • Financial values: the percentages and derived amounts (discount, fees, net) are treated as BigNumber in the credit domain — do not round manually; check decimal places.

Examples

Scenario 1 — Standard receivables anticipation template
  1. Name: "Invoices 30-90d". Base Spread: 6 (% p.a.). Admin Fee: 1 (%). Reserve %: 5. Min./Max. Term: 30 / 90.
  2. No score adjustments.
  3. Save.

Result for a batch of R$ 100,000 with a 60-day average term and 12% p.a. base rate: annual rate = 12 + 6 + 0 = 18%; period rate = 18 × 60/365 ≈ 2.96%; discount ≈ R$ 2,959; fees = 1% = R$ 1,000; net ≈ R$ 96,041.

Scenario 2 — Pricing with rating adjustment
  1. Name: "Variable Risk Pool". Base Spread: 4. Admin Fee: 0.5. Min./Max. Term: 15 / 180.
  2. Spread by score:
    • AAA → 0
    • BBB → 2
    • D → 8
  3. Save.

Result: a BBB-rated originator receives annual rate = base + 4 + 2; the same batch for a D-rated originator pays base + 4 + 8 — higher risk is automatically more expensive.

Scenario 3 — Short-term template (card/scheduled PIX)
  1. Name: "Ultra Short Term". Base Spread: 3. Admin Fee: 0. Min./Max. Term: 1 / 30.
  2. Save.

Result: operations with an average term above 30 days are rejected by this template (exceeds maxTermDays), forcing the use of another template for longer terms.