2 min read
Fetch and render
Map the product array into rows and add a click-to-sort header. The data is already structured for a table:
const { data } = await (await fetch(`${BASE}/products`)).json();
data.sort((a, b) => a.representative_apr - b.representative_apr);
table.tBodies[0].innerHTML = data.map(p =>
`<tr><td>${p.name}</td>` +
`<td data-sort="${p.max_amount}">\u00a3${p.max_amount.toLocaleString()}</td>` +
`<td data-sort="${p.representative_apr}">${p.representative_apr}%</td></tr>`
).join('');
Keep it honest
Label representative figures clearly and link each row to a firm quote or to apply. A comparison table is a signpost, not an offer.
Frequently asked questions
Where do the columns come from?
Straight from each product object — name, min_amount/max_amount, representative_apr and type. No extra calls are needed.
How do I keep it current?
Fetch on a cache TTL rather than hard-coding rows. When Credicorp changes the catalogue, your table updates on the next refresh.
Related reading

Quickstart: list Credicorp business-finance products
GET /public/v1/products returns the live catalogue of Credicorp business-finance products. Each item carries…
Read →
Quickstart: Cache the product catalogue correctly
The catalogue changes rarely, so caching it removes the API from your hot path and keeps you well under the…
Read →
Quickstart: get an indicative loan quote from the public API
POST /public/v1/quote turns an amount and term into an illustrative repayment. Send the requested amount and…
Read →
Quickstart: embed a product picker with the public API
A product picker is the simplest high-value embed: fetch the catalogue, render options, link to apply…
Read →Funding for UK limited companies
Credicorp lends to your company, not to you personally — short-term working capital with no personal guarantee. See what your business could access.