LenderProductOffering rows that attach a product type to a
(lenderId, productType, jurisdiction) triple, with their own yield band + ticket envelope.
Routing then matches a merchant’s funding request against the active offerings — pre-filtered
by the lender’s excludedSectors[] so a jewelry shop never sees a lender that has opted
out of jewelry, even if the envelope would otherwise match.
At a glance
| Base URL | https://apiv3.droplinked.com |
| Catalog version | 2026.06.15 (in-code, exposed via versionAtWrite on routing responses) |
| Product types | 6 (RBF, INTEREST_FREE_RBF, RECEIVABLES, PAYABLES, LINE_OF_CREDIT, INVOICE_DISCOUNTING) |
| Storage | LenderProductOffering Mongo schema, one row per (lenderId, productType, jurisdiction) |
| Sector filter | Lender.excludedSectors[] free-string array (catalog suggests 9 common values) |
| Public endpoints | 4 (/v2/lender-product-catalog, /v2/lender-product-catalog/matches, /v2/lender-product-catalog/lender/:lenderId, /v2/lender-routing/recommend) |
| Admin endpoints | 4 (POST/PATCH/DELETE /admin/lender-product-offerings, PATCH /admin/lenders/:lenderId/excluded-sectors) |
The 6 product types
| Type | Display name | Typical lender yield (bps) | Typical ticket (USD) | Typical tenor (months) | Typical industries |
|---|---|---|---|---|---|
REVENUE_BASED_FINANCE | Revenue-Based Finance | 1,500 – 2,500 | 500K – 2.7M | 6 – 12 | retail, e-commerce, marketplace, pos, payment-gateways |
INTEREST_FREE_RBF | Interest-Free Revenue-Based Finance | 900 – 1,200 | 68K – 270K | 3 – 6 | retail, e-commerce, marketplace, pos, payment-gateways |
RECEIVABLES_FINANCE | Receivables Finance | 1,800 – 2,500 | 545K – 2.7M | 12 | staffing, sales-agencies, security-services, advertising, logistics, it-services, professional-services, industrial-services, healthcare-services, training-providers |
PAYABLES_FINANCE | Payables Finance | 1,800 – 2,500 | 950K – 2.7M | 12 | manufacturing, trading, distribution |
LINE_OF_CREDIT | Line of Credit | 1,800 – 3,000 | 545K – 2.7M | 6 – 24 | retail, e-commerce, staffing, services, trading |
INVOICE_DISCOUNTING | Invoice Discounting | 1,800 – 2,500 | 100K – 2.7M | 1 – 4 | services, b2b, professional-services, logistics |
LenderProductOffering rows and overrides the catalog typical at routing time.
Yield is denominated in basis points (100 bps = 1%). Ticket envelopes are denominated in
USD in the catalog, then translated per jurisdiction at the offering level (e.g. AED for
CredibleX-UAE rows).
For lenders: how to opt in
A lender doesn’t appear in any routing response until they have at least oneLenderProductOffering row marked status: 'ACTIVE'. The opt-in flow:
- Lender (or their onboarding rep) browses
GET /v2/lender-product-catalogto see the 6 product types and their typical bands. - Lender picks the products they want to support and, per product, the jurisdictions they want to lend into (often a single jurisdiction per lender; can be multi).
- Operator runs
POST /admin/lender-product-offeringsonce per(lenderId, productType, jurisdiction)triple with the lender’s actual yield band + envelope. The lender can override every catalog typical with their real numbers — and the routing layer uses those numbers, not the catalog defaults.
lenderYieldBpsMin/Max are supplied they override the catalog typical. When omitted
they fall through to the catalog default. Same applies to the ticket envelope and tenor.
status flips between ACTIVE (visible to routing) and PAUSED (hidden, kept for audit).
Deleting an offering is rare — operators prefer PAUSED so the lender can re-enable without
re-onboarding.
For merchants: how routing matches
A merchant doesn’t talk to the catalog directly. They request credit through the FE, which calls the lender-routing recommendation endpoint:- Jurisdiction — only lenders that have offerings in the merchant’s jurisdiction.
- Product — only offerings whose
productTypematches the request (when supplied — theproductTypefilter is opt-in, legacy callers without it are unchanged). - Envelope — only offerings where
monthlyRevenueAed >= minMonthlyRevenueandrequestedTicketAedfalls inside[ticketMin, ticketMax]and the merchant’smerchantIndustryis insupportedIndustries(or the offering’s industry list is empty). - Sector — any lender whose
Lender.excludedSectors[]contains the merchant’smerchantSectoris dropped, regardless of envelope match.
matchingOfferings[] list so the FE can render per-lender competitive
quotes:
Excluded sectors
Lender.excludedSectors[] is a free-string array on the lender document — a hard filter
applied after envelope match. The catalog ships a list of 9 common sector strings as a
UX hint so operators can pick from a consistent vocabulary, but lenders are free to add
custom strings outside the suggested list.
| Sector string | Note |
|---|---|
jewelry-and-bullion-trading | Common high-value-goods AML carve-out |
currency-exchange-and-money-transfer | FATF-sensitive |
unlicensed-financial-institutions | Regulatory hard no |
auction-houses-and-antique-dealers | High-value-goods AML carve-out |
trusts-or-fund-management | Regulatory carve-out |
gambling-casino-or-betting-related | Common ESG / Sharia carve-out |
charities-and-not-for-profit | FATF terror-finance sensitive |
arms-and-ammunition-trading | Hard ESG carve-out |
real-estate-development-and-brokerage | Common large-ticket carve-out in MENA |
Lender.excludedSectors[]; the source of truth is the lender’s own array.
Operators edit a lender’s exclusions via PATCH /admin/lenders/:lenderId/excluded-sectors
with the full replacement array — not a delta.
CredibleX-UAE reference example
CredibleX is the launch FSRA-licensed lender in jurisdiction AE. They are seeded on production with 4 ACTIVE offerings and 9 excluded sectors (all of the common 9 above), sourced from the UAE Qualifying Business Terms 2026 public underwriting policy.| Product | Min monthly revenue | Ticket range | Tenor |
|---|---|---|---|
REVENUE_BASED_FINANCE | AED 20M | AED 2M – 10M | 6 – 12 months |
INTEREST_FREE_RBF | AED 2M | AED 250K – 10M | 3 months |
RECEIVABLES_FINANCE | AED 15M | AED 2M – 10M | 12 months |
PAYABLES_FINANCE | AED 100M (trading) / AED 30M (manufacturing) | AED 3.5M – 10M | 12 months |
INTEREST_FREE_RBF offering (revenue floor AED 2M) — and the routing response will show
that competitive line.
Related
- Inventory MCP — catalog discovery for agents; mostly orthogonal to lender routing but worth knowing
- Lender Trinity MCP Tools —
verify_lender/recommend_lender/recommend_service_provider; this catalog feeds the recommender - Trust fabric — Schema A / B / C / D EAS attestation chain
context; the
LenderRegistryis the entity layer this catalog sits on top of - Merchant Discovery Rules — KYB visibility rules for
the discovery surface; same
verifiedTiergate applies before a merchant can request credit through the routing layer