Getting Started
Getting Started
Section titled “Getting Started”Welcome to Islamic Open Finance™! This guide will help you get started with our Shariah-native financial infrastructure platform.
Overview
Section titled “Overview”Islamic Open Finance™ provides a comprehensive API platform for building Islamic financial products. Our platform includes:
- 144 Specialized Rails - Purpose-built APIs for contracts, KYC, compliance, AML, treasury, ledger, governance, and more
- Shariah Compliance - Built-in AAOIFI-compliant contract types and validation
- Enterprise Security - SOC2-grade security with RBAC/ABAC authorization
- Multi-Jurisdiction - Support for GCC, Southeast Asia, UK, and other markets
Prerequisites
Section titled “Prerequisites”Before you begin, you’ll need:
- An Islamic Open Finance™ account
- An API key (available from your dashboard)
- Basic understanding of REST APIs
Step 1: Get Your API Key
Section titled “Step 1: Get Your API Key”- Log in to your IOF Dashboard
- Navigate to Settings > API Keys
- Click Create API Key
- Copy your API key and store it securely
::: caution Never expose your API key in client-side code or commit it to version control. :::
Step 2: Install an SDK
Section titled “Step 2: Install an SDK”Choose your preferred language and install the SDK:
npm install @iof/sdkpnpm add @iof/sdkyarn add @iof/sdkpip install iof-sdkgo get github.com/Islamic-Open-Finance/iof-sdk-go:::
Step 3: Initialize the Client
Section titled “Step 3: Initialize the Client”import { IOFClient } from "@iof/sdk";
const client = new IOFClient({ apiKey: process.env.IOF_API_KEY, environment: "sandbox", // or 'production'});import osfrom iof import IOFClient
client = IOFClient( api_key=os.environ["IOF_API_KEY"], environment="sandbox" # or 'production')import "github.com/Islamic-Open-Finance/iof-sdk-go"
client := iof.NewClient( iof.WithAPIKey(os.Getenv("IOF_API_KEY")), iof.WithEnvironment(iof.Sandbox),):::
Step 4: Make Your First API Call
Section titled “Step 4: Make Your First API Call”Let’s fetch the available contract types:
// List available contract typesconst contractTypes = await client.metadata.contractTypes.list();
console.log("Available contract types:");for (const type of contractTypes.data) { console.log(`- ${type.name}: ${type.description}`);}# List available contract typescontract_types = client.metadata.contract_types.list()
print("Available contract types:")for ct in contract_types.data: print(f"- {ct.name}: {ct.description}"):::
Step 5: Create a Contract
Section titled “Step 5: Create a Contract”Now let’s create a simple Murabaha contract:
const contract = await client.contracts.create({ type: "murabaha", jurisdiction: "SA", // Saudi Arabia parties: { financier: { entityId: "ent_financier_123" }, customer: { entityId: "ent_customer_456" }, }, asset: { description: "Toyota Camry 2024", category: "vehicle", costPrice: { amount: 120000, currency: "SAR" }, profitMargin: 0.08, // 8% profit margin }, terms: { paymentSchedule: "monthly", numberOfInstallments: 60, gracePeriodDays: 30, },});
console.log(`Contract created: ${contract.id}`);console.log(`Status: ${contract.status}`);console.log(`Monthly payment: ${contract.payment.monthlyAmount} SAR`);contract = client.contracts.create( type="murabaha", jurisdiction="SA", # Saudi Arabia parties={ "financier": {"entity_id": "ent_financier_123"}, "customer": {"entity_id": "ent_customer_456"}, }, asset={ "description": "Toyota Camry 2024", "category": "vehicle", "cost_price": {"amount": 120000, "currency": "SAR"}, "profit_margin": 0.08, # 8% profit margin }, terms={ "payment_schedule": "monthly", "number_of_installments": 60, "grace_period_days": 30, })
print(f"Contract created: {contract.id}")print(f"Status: {contract.status}")print(f"Monthly payment: {contract.payment.monthly_amount} SAR"):::
Next Steps
Section titled “Next Steps”Now that you’ve created your first contract, explore these topics:
- Quick Start - Build a complete integration in 15 minutes
- Architecture - Understand the platform architecture
- Islamic Finance Primer - Learn about Islamic contract types
- API Reference - Explore all available endpoints
Need Help?
Section titled “Need Help?”- Check out our GitHub Discussions
- Report issues on GitHub
- See the Changelog for latest updates