Distribute Credicorp
Earn from lending you don't underwrite. Send borrowers our way as tracked introductions, attribute every resulting application back to you, and read your revenue-share payouts through the API.
Roadmap — not yet available. The introduction tracking and payout endpoints (/partner/v1/introductions, /partner/v1/payouts) are planned but not yet built and return 503 Service Unavailable. This guide documents the planned shape. The live surface today is the token + MCP tier; availability will be announced on the changelog.
Distribution suits accountants, brokers, marketplaces, ERPs and any platform whose customers are UK limited companies needing finance. You bring the demand; Credicorp underwrites, funds and services the loan. Two models cover almost every partner — pick the one that matches how much of the experience you want to own.
Refer vs resell
| Refer | Resell | |
|---|---|---|
| Who runs the journey | Credicorp (hosted) | You (white-label) |
| Borrower-facing brand | Credicorp | Yours |
| Integration effort | A link + a webhook | Full lending integration |
| Compliance footprint | Introducer only | You own the front end |
| Commercials | Referral fee on funding | Revenue share on the book |
Both models pivot on one primitive: the introduction. An introduction is a tracked, attributable handle that ties applications — and therefore payouts — back to you. Create it once, carry its id onto every application, and the platform does the accounting.
Distribution needs the introductions:write and payouts:read scopes. It does not require lending scopes — you never touch decisioning or money movement.
1 · Create a tracked introduction
Create an introduction when a borrower expresses intent. It returns an id (prefixed intro_) and a ready-to-use apply_url for the refer model. Pass your own reference to thread your CRM record through to the payout.
Body parameters
| Field | Type | Description | |
|---|---|---|---|
business.company_number | string | opt | Companies House number, if known. Pre-fills the journey. |
channel | string | opt | web, email, in_app — for your own attribution reporting. |
campaign | string | opt | Free-text campaign tag, surfaced on payout lines. |
reference | string | opt | Your CRM/lead id, echoed on the application & payout. |
curl -s https://hub.credicorp.co.uk/partner/v1/introductions \ -H "Authorization: Bearer $TOKEN" \ -H "Idempotency-Key: intro-lead_4471" \ -d '{ "business": { "company_number": "16093826" }, "channel": "in_app", "campaign": "q3-cashflow", "reference": "lead_4471" }'
import { Credicorp } from '@credicorp/sdk'; const cc = new Credicorp({ token: process.env.CREDICORP_TOKEN }); const intro = await cc.introductions.create({ business: { company_number: '16093826' }, channel: 'in_app', campaign: 'q3-cashflow', reference: 'lead_4471', }, { idempotencyKey: 'intro-lead_4471' }); // Refer model: send the borrower here redirect(intro.apply_url);
use Credicorp\Client; $cc = new Client(getenv('CREDICORP_TOKEN')); $intro = $cc->introductions->create([ 'business' => ['company_number' => '16093826'], 'channel' => 'in_app', 'campaign' => 'q3-cashflow', 'reference' => 'lead_4471', ], idempotencyKey: 'intro-lead_4471'); header('Location: ' . $intro->apply_url);
Response 201 Created
{
"id": "intro_Q7m2Za",
"object": "introduction",
"status": "open",
"channel": "in_app",
"campaign": "q3-cashflow",
"reference": "lead_4471",
"apply_url": "https://apply.credicorp.co.uk/i/Q7m2Za…",
"created_at": "2026-06-29T11:20:00Z"
}2 · Attribute the application
Attribution is what turns a lead into a payable deal. There are two ways the introduction_id gets onto the application:
- Refer. Send the borrower to the
apply_url. The hosted journey carries theintroduction_idautomatically — you do nothing further. - Resell. You create the application yourself (per Integrate lending roadmap) and set
introduction_idexplicitly on the create call.
curl -s https://hub.credicorp.co.uk/partner/v1/applications \ -H "Authorization: Bearer $TOKEN" \ -H "Idempotency-Key: app-lead_4471" \ -d '{ "business": { "company_number": "16093826" }, "amount_pence": 1800000, "term_months": 18, "introduction_id": "intro_Q7m2Za" }'
Attribution is set at application create time and is immutable thereafter. If you omit introduction_id on a resell create, that deal cannot be back-attributed — the payout is lost. Set it on the very first call.
3 · Track conversion
You don't need to poll. The same lifecycle webhooks you'd use for a lending integration carry the introduction_id, so you can watch a lead move from introduced to funded in your own dashboard. The introduction's status follows the deal:
| Introduction status | Meaning |
|---|---|
open | Created; no application yet. |
applied | An application was created against it. |
funded | The application disbursed — payout accrues. |
expired | No application within the attribution window (90 days). |
Listen for application.funded and read data.introduction_id to mark the lead converted:
{
"id": "evt_9Pq",
"type": "application.funded",
"data": {
"application_id": "app_3Rb7",
"introduction_id": "intro_Q7m2Za",
"amount_pence": 1800000,
"reference": "lead_4471"
}
}4 · Read revenue-share payouts
Payouts are settled monthly and exposed as a cursor-paginated list (see Pagination). Each payout aggregates the lines that funded in the period; every line carries the originating introduction_id and your reference, so your finance team can reconcile to the penny against your CRM.
curl "https://hub.credicorp.co.uk/partner/v1/payouts?period=2026-06" \ -H "Authorization: Bearer $TOKEN"
Response 200 OK
{
"object": "list",
"data": [{
"id": "po_2026_06",
"period": "2026-06",
"status": "paid",
"currency": "GBP",
"gross_pence": 412500,
"lines": [{
"introduction_id": "intro_Q7m2Za",
"application_id": "app_3Rb7",
"reference": "lead_4471",
"basis": "revenue_share",
"amount_pence": 90000
}],
"paid_at": "2026-07-07T09:00:00Z"
}]
}Subscribe to payout.paid to trigger your own bookkeeping the moment a remittance settles — the event mirrors the object above. Your commercial rate, attribution window and minimum payout threshold are set in your partner agreement; the API simply reports what those terms produced.
One stable reference — carried from introduction → application → payout line — lets you join the whole funnel with a single key. Use your CRM lead id and reconciliation becomes a one-liner.
