Skip to content

Basel SDK Guide

The BaselClient in @iof/sdk provides typed access to all Basel III endpoints.

import { IOFClient } from "@iof/sdk";
const client = new IOFClient({
apiKey: process.env.IOF_API_KEY!,
baseUrl: "https://api.islamicopenfinance.com",
});
const ratios = await client.basel.getCapitalRatios();
console.log(`CET1: ${ratios.cet1Ratio}%`);
console.log(`CAR: ${ratios.totalCapitalRatio}%`);
const rwa = await client.basel.getRiskWeightedAssets();
const composition = await client.basel.getCapitalComposition();
const lcr = await client.basel.getLCR();
const nsfr = await client.basel.getNSFR();
const hqla = await client.basel.getHQLAComposition();
const ladder = await client.basel.getMaturityLadder();
const leverage = await client.basel.getLeverageRatio();
console.log(`Leverage: ${leverage.ratio}% (min: 3%)`);
const { testId } = await client.basel.executeStressTest([
{
name: "Severe Recession",
type: "supervisory",
parameters: { gdpShock: -5.0, interestRateShock: 3.0, equityShock: -40 },
},
]);
const result = await client.basel.getStressTest(testId);
const tests = await client.basel.listStressTests({ status: "COMPLETED" });
const report = await client.basel.generateReport("REPORT_220", {
periodStart: "2026-01-01",
periodEnd: "2026-03-31",
});
const reports = await client.basel.listRegulatoryReports();
const exposures = await client.basel.getCounterpartyExposures({ limit: 20 });
const concentration = await client.basel.getConcentrationRisk("sector");
const large = await client.basel.getLargeExposures();
const validation = await client.basel.runComplianceValidation();
console.log(`All passed: ${validation.passed}`);