Skip to content

Takaful Rail

Shariah-compliant cooperative insurance endpoints for mutual protection and risk sharing.

The Takaful rail provides a complete Islamic insurance infrastructure built on the principles of tabarru (voluntary contribution), ta’awun (mutual assistance), and shared responsibility. Unlike conventional insurance, takaful eliminates gharar (uncertainty), maysir (gambling), and riba (interest) by structuring the relationship as a cooperative pool where participants contribute to a common fund used to compensate members who suffer losses.

Key capabilities:

  • Policy creation and lifecycle management across general and family takaful
  • Claims submission, assessment, and settlement workflows
  • Underwriting and risk assessment with Shariah-compliant criteria
  • Retakaful (Islamic reinsurance) placement and treaty management
  • Fund management with segregated participant and shareholder funds
  • Surplus distribution to participants based on contribution and claims history
  • Actuarial valuation and reserve calculations
  • Commission and fee management under Wakalah, Mudarabah, and Hybrid models
  • Full compliance tracking against AAOIFI SS-26 and SS-41 standards

The takaful rail supports three operating models: Wakalah (agency), Mudarabah (profit-sharing), and Hybrid (Wakalah for underwriting + Mudarabah for investment).


Covers non-life insurance products: motor, property, marine, fire, engineering, liability, and miscellaneous.

POST /v1/rails/takaful/general/policies
const policy = await iof.takaful.general.create({
product_type: "motor",
participant_id: "part_abc123",
coverage: {
type: "comprehensive",
sum_covered: 75000,
currency: "USD",
deductible: 500,
},
contribution: {
amount: 1800,
frequency: "annual",
tabarru_portion: 0.65,
wakalah_fee_portion: 0.35,
},
effective_date: "2026-03-01",
expiry_date: "2027-02-28",
risk_details: {
vehicle_make: "Toyota",
vehicle_model: "Camry",
vehicle_year: 2025,
usage: "private",
},
});

Response:

{
"id": "tak_gen_xyz",
"type": "takaful",
"sub_type": "general",
"product_type": "motor",
"status": "DRAFT",
"participant_id": "part_abc123",
"coverage": {
"type": "comprehensive",
"sum_covered": 75000,
"currency": "USD",
"deductible": 500
},
"contribution": {
"total": 1800,
"tabarru": 1170,
"wakalah_fee": 630,
"frequency": "annual"
},
"effective_date": "2026-03-01",
"expiry_date": "2027-02-28",
"created_at": "2026-02-14T10:00:00Z"
}
GET /v1/rails/takaful/general/policies

Query parameters: status, product_type, participant_id, effective_after, effective_before, page, limit.

GET /v1/rails/takaful/general/policies/:id
PUT /v1/rails/takaful/general/policies/:id
DELETE /v1/rails/takaful/general/policies/:id

Cancellation triggers pro-rata refund calculation of unearned tabarru contributions.


Covers life and long-term savings products: term, whole-life, education, retirement, mortgage, and investment-linked.

POST /v1/rails/takaful/family/policies
const policy = await iof.takaful.family.create({
product_type: "term_protection",
participant_id: "part_def456",
coverage: {
sum_covered: 500000,
currency: "USD",
term_years: 20,
beneficiaries: [
{ name: "Fatimah Ahmad", relationship: "spouse", share_pct: 60 },
{ name: "Yusuf Ahmad", relationship: "child", share_pct: 40 },
],
},
contribution: {
amount: 350,
frequency: "monthly",
tabarru_portion: 0.4,
savings_portion: 0.3,
wakalah_fee_portion: 0.3,
},
effective_date: "2026-04-01",
});

Response:

{
"id": "tak_fam_xyz",
"type": "takaful",
"sub_type": "family",
"product_type": "term_protection",
"status": "DRAFT",
"participant_id": "part_def456",
"coverage": {
"sum_covered": 500000,
"currency": "USD",
"term_years": 20,
"beneficiaries": [
{ "name": "Fatimah Ahmad", "relationship": "spouse", "share_pct": 60 },
{ "name": "Yusuf Ahmad", "relationship": "child", "share_pct": 40 }
]
},
"contribution": {
"total_monthly": 350,
"tabarru": 140,
"savings": 105,
"wakalah_fee": 105,
"frequency": "monthly"
},
"effective_date": "2026-04-01",
"maturity_date": "2046-03-31",
"created_at": "2026-02-14T10:00:00Z"
}
GET /v1/rails/takaful/family/policies
GET /v1/rails/takaful/family/policies/:id
PUT /v1/rails/takaful/family/policies/:id
DELETE /v1/rails/takaful/family/policies/:id
POST /v1/rails/takaful/family/policies/:id/surrender
GET /v1/rails/takaful/family/policies/:id/savings-balance

Full claims lifecycle from first notice of loss through assessment, approval, and settlement.

POST /v1/rails/takaful/claims
const claim = await iof.takaful.claims.submit({
policy_id: "tak_gen_xyz",
incident_date: "2026-02-10",
notification_date: "2026-02-11",
claim_type: "motor_accident",
description:
"Rear collision at intersection causing bumper and taillight damage",
estimated_amount: 4500,
currency: "USD",
documents: [
{ type: "police_report", file_id: "file_001" },
{ type: "repair_estimate", file_id: "file_002" },
{ type: "photos", file_id: "file_003" },
],
});

Response:

{
"id": "clm_abc123",
"policy_id": "tak_gen_xyz",
"status": "SUBMITTED",
"claim_type": "motor_accident",
"incident_date": "2026-02-10",
"estimated_amount": 4500,
"currency": "USD",
"assessor_assigned": null,
"created_at": "2026-02-14T10:30:00Z"
}
GET /v1/rails/takaful/claims
GET /v1/rails/takaful/claims/:id
PUT /v1/rails/takaful/claims/:id
POST /v1/rails/takaful/claims/:id/assess
POST /v1/rails/takaful/claims/:id/approve
POST /v1/rails/takaful/claims/:id/reject
POST /v1/rails/takaful/claims/:id/settle
POST /v1/rails/takaful/claims/:id/appeal
GET /v1/rails/takaful/claims/:id/history

Risk assessment and policy pricing with Shariah-compliant rating factors.

POST /v1/rails/takaful/underwriting/requests
const uwRequest = await iof.takaful.underwriting.submit({
policy_type: "general",
product_type: "property",
applicant_id: "part_abc123",
risk_profile: {
property_type: "commercial",
construction: "concrete",
location: "low_risk_zone",
fire_protection: "sprinkler_system",
sum_to_cover: 2000000,
currency: "USD",
},
medical_declaration: null,
});
GET /v1/rails/takaful/underwriting/requests
GET /v1/rails/takaful/underwriting/requests/:id
POST /v1/rails/takaful/underwriting/requests/:id/evaluate
POST /v1/rails/takaful/underwriting/requests/:id/approve
POST /v1/rails/takaful/underwriting/requests/:id/decline
GET /v1/rails/takaful/underwriting/rating-tables

Islamic reinsurance for ceding risk from takaful operators to retakaful operators, compliant with AAOIFI SS-41.

POST /v1/rails/takaful/retakaful/treaties
const treaty = await iof.takaful.retakaful.create({
treaty_type: "quota_share",
retakaful_operator_id: "rtak_op_001",
cession_percentage: 30,
coverage_class: "property",
effective_date: "2026-01-01",
expiry_date: "2026-12-31",
limit: 10000000,
currency: "USD",
commission_rate: 0.25,
profit_sharing_rate: 0.15,
});
GET /v1/rails/takaful/retakaful/treaties
GET /v1/rails/takaful/retakaful/treaties/:id
PUT /v1/rails/takaful/retakaful/treaties/:id
DELETE /v1/rails/takaful/retakaful/treaties/:id
POST /v1/rails/takaful/retakaful/treaties/:id/bordereaux
GET /v1/rails/takaful/retakaful/treaties/:id/settlements
POST /v1/rails/takaful/retakaful/facultative

Treaty types: quota_share, surplus, excess_of_loss, facultative.


Segregated fund accounting for participant risk funds (PRF), participant investment funds (PIF), and shareholder funds.

GET /v1/rails/takaful/fund-management/summary
const funds = await iof.takaful.funds.summary({
as_of_date: "2026-02-14",
fund_type: "participant_risk_fund",
});

Response:

{
"fund_type": "participant_risk_fund",
"as_of_date": "2026-02-14",
"currency": "USD",
"balance": {
"opening": 12500000,
"tabarru_contributions": 850000,
"claims_paid": -420000,
"retakaful_ceded": -255000,
"investment_income": 187500,
"reserves": -1200000,
"closing": 11662500
},
"reserves": {
"outstanding_claims": 780000,
"ibnr": 320000,
"unearned_contribution": 100000
}
}
GET /v1/rails/takaful/fund-management/funds
GET /v1/rails/takaful/fund-management/funds/:id
POST /v1/rails/takaful/fund-management/funds/:id/allocate
GET /v1/rails/takaful/fund-management/funds/:id/transactions
GET /v1/rails/takaful/fund-management/investment-portfolio
POST /v1/rails/takaful/fund-management/qard-hasan

The qard-hasan endpoint handles interest-free loans from the shareholder fund to the participant fund when the participant fund has a deficit.


Calculate and distribute underwriting surplus to participants after deducting claims, retakaful costs, and reserves.

POST /v1/rails/takaful/surplus/calculate
const surplus = await iof.takaful.surplus.calculate({
period: "2025",
fund_type: "participant_risk_fund",
distribution_model: "contribution_based",
});

Response:

{
"id": "surp_2025_001",
"period": "2025",
"status": "CALCULATED",
"total_contributions": 5200000,
"total_claims": 2800000,
"retakaful_cost": 780000,
"reserves_increase": 320000,
"management_expenses": 150000,
"gross_surplus": 1150000,
"operator_share": 460000,
"participants_share": 690000,
"distribution_model": "contribution_based",
"participant_count": 4200,
"currency": "USD"
}
GET /v1/rails/takaful/surplus
GET /v1/rails/takaful/surplus/:id
POST /v1/rails/takaful/surplus/:id/approve
POST /v1/rails/takaful/surplus/:id/distribute
GET /v1/rails/takaful/surplus/:id/allocations
GET /v1/rails/takaful/surplus/history

Shariah compliance monitoring, Shariah board review workflows, and regulatory reporting.

POST /v1/rails/takaful/compliance/check
const result = await iof.takaful.compliance.check({
policy_id: "tak_gen_xyz",
check_types: [
"tabarru_ratio",
"investment_screening",
"surplus_distribution",
"qard_hasan_terms",
],
});
GET /v1/rails/takaful/compliance/checks
GET /v1/rails/takaful/compliance/checks/:id
POST /v1/rails/takaful/compliance/shariah-review
GET /v1/rails/takaful/compliance/shariah-reviews
POST /v1/rails/takaful/compliance/regulatory-report
GET /v1/rails/takaful/compliance/audit-trail

Actuarial valuations, reserve calculations, and experience studies.

POST /v1/rails/takaful/actuarial/valuations
const valuation = await iof.takaful.actuarial.valuate({
valuation_date: "2026-02-14",
fund_type: "participant_risk_fund",
methodology: "chain_ladder",
confidence_level: 0.75,
});
GET /v1/rails/takaful/actuarial/valuations
GET /v1/rails/takaful/actuarial/valuations/:id
POST /v1/rails/takaful/actuarial/reserve-calculation
GET /v1/rails/takaful/actuarial/loss-triangles
GET /v1/rails/takaful/actuarial/experience-studies
POST /v1/rails/takaful/actuarial/pricing-model

Agent and intermediary commission management under Wakalah fee structures.

POST /v1/rails/takaful/commissions/schedules
const schedule = await iof.takaful.commissions.createSchedule({
agent_id: "agent_789",
product_type: "motor",
commission_type: "wakalah_fee_share",
rate: 0.15,
clawback_period_months: 12,
effective_date: "2026-01-01",
});
GET /v1/rails/takaful/commissions/schedules
GET /v1/rails/takaful/commissions/schedules/:id
PUT /v1/rails/takaful/commissions/schedules/:id
DELETE /v1/rails/takaful/commissions/schedules/:id
GET /v1/rails/takaful/commissions/payouts
POST /v1/rails/takaful/commissions/payouts/calculate
POST /v1/rails/takaful/commissions/payouts/process

The takaful operator acts as an agent (wakeel) managing the fund on behalf of participants. The operator receives a fixed Wakalah fee upfront from each contribution regardless of fund performance.

ComponentDescription
Operator roleAgent (Wakeel)
Operator incomeFixed Wakalah fee (percentage of contribution)
Investment managementOperator may receive a separate investment Wakalah fee
Surplus100% belongs to participants
Deficit (Qard Hasan)Operator provides interest-free loan to cover shortfall

The takaful operator acts as an entrepreneur (mudarib) investing the pool funds. Profits from investment are shared between operator and participants according to a pre-agreed ratio.

ComponentDescription
Operator roleEntrepreneur (Mudarib)
Operator incomeShare of investment profits (pre-agreed ratio)
Underwriting surplusBelongs to participants
Investment profit splite.g., 60% participants / 40% operator
Deficit (Qard Hasan)Operator provides interest-free loan to cover shortfall

Combines both models: Wakalah fee for underwriting management and Mudarabah profit-sharing for investment activities. This is the most widely adopted model globally.

ComponentDescription
Underwriting managementWakalah fee (fixed percentage of contribution)
Investment managementMudarabah profit-sharing on investment returns
SurplusShared between operator and participants (pre-agreed)
Deficit (Qard Hasan)Operator provides interest-free loan to cover shortfall

Set the operating model when creating a policy:

const policy = await iof.takaful.general.create({
// ...policy details
operating_model: "hybrid", // "wakalah" | "mudarabah" | "hybrid"
wakalah_fee_rate: 0.35,
mudarabah_profit_share: { operator: 40, participants: 60 },
});

The claims lifecycle follows a structured flow from submission through settlement:

SUBMITTED -> ACKNOWLEDGED -> UNDER_ASSESSMENT -> ASSESSED
| | |
v v v
WITHDRAWN ADDITIONAL_INFO_REQUIRED APPROVED -> SETTLED -> CLOSED
|
v
REJECTED -> APPEAL -> RE_ASSESSED
StatusDescription
SUBMITTEDClaim submitted by participant
ACKNOWLEDGEDClaim received and registered, reference number assigned
UNDER_ASSESSMENTAssessor assigned and investigation in progress
ADDITIONAL_INFO_REQUIREDAdditional documents or information requested from participant
ASSESSEDAssessment complete, recommended amount determined
APPROVEDClaim approved by claims committee
REJECTEDClaim rejected with documented reasons
APPEALParticipant has appealed a rejected claim
RE_ASSESSEDClaim under re-assessment following appeal
SETTLEDPayment disbursed to participant from the tabarru fund
WITHDRAWNClaim withdrawn by participant
CLOSEDClaim fully resolved and file closed

StatusDescription
DRAFTPolicy created, pending underwriting
PENDING_UNDERWRITINGSubmitted for underwriting assessment
UNDERWRITTENUnderwriting complete, pricing confirmed
PENDING_SHARIAH_REVIEWAwaiting Shariah board approval
SHARIAH_APPROVEDApproved by Shariah board
ACTIVEPolicy in force, coverage active
LAPSEDContributions not paid, policy lapsed
SURRENDEREDFamily takaful policy surrendered by participant
MATUREDFamily takaful policy reached maturity date
EXPIREDGeneral takaful policy term ended
CANCELLEDPolicy cancelled, pro-rata refund issued
CLAIM_IN_PROGRESSActive claim being processed under this policy

Takaful operations must adhere to the following Shariah principles:

  • Participants donate a portion of their contribution to the risk pool (tabarru fund)
  • The tabarru is an irrevocable gift (hibah) to the common pool
  • Tabarru funds are used exclusively for paying claims and related expenses
  • The tabarru portion must be clearly separated from savings and fee components
  • Minimum tabarru ratios are enforced per product type
  • Underwriting surplus belongs to participants, not the operator
  • Surplus may only be distributed after deducting claims, retakaful costs, reserves, and management expenses
  • Distribution must follow the pre-agreed method (contribution-based, claims-based, or equal)
  • Participants who made claims may receive reduced or no surplus depending on the policy terms
  • The Shariah board must approve the surplus distribution methodology annually
  • All fund investments must be Shariah-compliant (no riba, gharar, or haram industries)
  • Investment screening must follow recognized indices (e.g., DJIM, FTSE Shariah, S&P Shariah)
  • Fixed-income alternatives must use sukuk or commodity murabaha structures
  • No short-selling, conventional derivatives, or interest-bearing instruments
  • When the participant fund has a deficit, the operator provides a qard hasan (interest-free loan)
  • The loan is repaid from future surpluses only; no interest is charged
  • If the fund cannot repay, the operator bears the loss
  • Qard hasan terms must be documented and approved by the Shariah board
  • Participant risk fund (PRF) must be completely segregated from shareholder funds
  • Participant investment fund (PIF) must be separately maintained for family takaful
  • Fund commingling is a critical Shariah violation
  • Each fund must have its own ledger accounts and financial statements

EventDescription
takaful.policy.createdNew policy created in DRAFT status
takaful.policy.underwrittenUnderwriting completed and pricing confirmed
takaful.policy.shariah_approvedShariah board approved the policy
takaful.policy.activatedPolicy is now active and coverage has commenced
takaful.policy.renewedPolicy renewed for a new term
takaful.policy.lapsedPolicy lapsed due to non-payment of contributions
takaful.policy.cancelledPolicy cancelled, refund issued
takaful.policy.maturedFamily takaful policy reached maturity
takaful.contribution.receivedContribution payment received and allocated
takaful.contribution.overdueContribution payment is overdue
takaful.claim.submittedNew claim submitted by participant
takaful.claim.acknowledgedClaim acknowledged and reference assigned
takaful.claim.assessedAssessment completed with recommended amount
takaful.claim.approvedClaim approved for settlement
takaful.claim.rejectedClaim rejected with reasons
takaful.claim.settledClaim payment disbursed
takaful.claim.appealedRejected claim appealed by participant
takaful.surplus.calculatedSurplus calculated for a period
takaful.surplus.approvedSurplus distribution approved by Shariah board
takaful.surplus.distributedSurplus payments disbursed to participants
takaful.fund.qard_hasan_issuedQard hasan issued to cover fund deficit
takaful.fund.qard_hasan_repaidQard hasan repaid from surplus
takaful.retakaful.treaty_placedRetakaful treaty placed with retakaful operator
takaful.retakaful.bordereaux_submittedBordereaux submitted to retakaful operator
takaful.compliance.check_completedCompliance check completed
takaful.compliance.violation_detectedShariah compliance violation detected
takaful.actuarial.valuation_completedActuarial valuation completed
takaful.commission.payout_processedAgent commission payout processed

Webhook payload structure:

{
"id": "evt_tak_001",
"type": "takaful.claim.approved",
"timestamp": "2026-02-14T14:30:00Z",
"data": {
"claim_id": "clm_abc123",
"policy_id": "tak_gen_xyz",
"approved_amount": 4200,
"currency": "USD",
"assessor_id": "usr_assessor_01"
},
"tenant_id": "tnt_001",
"rail": "takaful"
}

All takaful financial transactions are recorded in the TigerBeetle ledger with proper fund segregation:

Ledger Account TypePurpose
takaful:prfParticipant Risk Fund (tabarru pool)
takaful:pifParticipant Investment Fund (family savings)
takaful:shareholderShareholder Fund (operator capital)
takaful:wakalah_feeWakalah fee receivable
takaful:claims_payableOutstanding claims liability
takaful:retakaful_cededAmounts ceded to retakaful operators
takaful:qard_hasanQard hasan loan balance
takaful:surplus_distributableSurplus available for distribution
// Automatic compliance check on policy creation
const policy = await iof.takaful.general.create({
// ...policy details
compliance: {
auto_check: true,
required_checks: ["tabarru_ratio", "investment_screening"],
},
});

The compliance rail automatically validates:

  • Tabarru ratio meets minimum thresholds per product type
  • Investment portfolio passes Shariah screening
  • Surplus distribution methodology is Shariah board-approved
  • Fund segregation is maintained

Takaful funds are subject to zakat obligations:

GET /v1/rails/takaful/fund-management/funds/:id/zakat-liability

The zakat rail calculates zakat on:

  • Participant investment fund balances (family takaful)
  • Shareholder fund balances
  • Net zakatable assets per AAOIFI FAS 9 methodology
GET /v1/rails/takaful/reports/financial-statements
GET /v1/rails/takaful/reports/claims-experience
GET /v1/rails/takaful/reports/fund-performance
GET /v1/rails/takaful/reports/surplus-history
GET /v1/rails/takaful/reports/regulatory

Reports are generated through the reporting rail and include:

  • Fund financial statements (PRF, PIF, Shareholder)
  • Claims ratio and experience reports
  • Surplus distribution history
  • Solvency margin calculations
  • Regulatory submissions (per jurisdiction)

AAOIFI Shariah Standard No. 26 governs takaful operations:

RequirementImplementation
Tabarru commitmentEnforced via tabarru_portion field on contributions
Separation of fundsSegregated ledger accounts per fund type
Surplus ownershipParticipants own surplus; operator share requires Shariah approval
Qard hasan for deficitAutomated qard hasan issuance when PRF deficit detected
Investment complianceShariah screening on all fund investments
Wakalah fee disclosureFee percentage disclosed at policy inception
Shariah board oversightReview workflows built into compliance sub-rail

AAOIFI Shariah Standard No. 41 governs retakaful arrangements:

RequirementImplementation
Retakaful operator must be Shariah-compliantOperator registry with compliance verification
Treaty terms must follow takaful principlesTreaty model validation on creation
Cession must not transfer all riskMaximum cession percentage enforced
Profit-sharing on retakaful surplusAutomated surplus sharing per treaty terms
Conventional reinsurance as last resortAllowed only when no retakaful capacity available, with Shariah board approval

FAS 19: Contributions in Islamic Insurance

Section titled “FAS 19: Contributions in Islamic Insurance”

Financial Accounting Standard No. 19 requirements:

  • Contributions recognized as revenue when due
  • Unearned contribution reserve calculated on a time-apportioned basis
  • Deficiency reserve established when expected claims exceed unearned contributions

Financial Accounting Standard No. 20 requirements:

  • Acquisition costs (commissions, underwriting costs) may be deferred
  • Deferred costs amortized over the policy period
  • Recoverability tested at each reporting date

The admin portal exposes takaful management through the following sections:

Admin SectionTakaful FeatureRoute
PoliciesView and manage all takaful policies/admin/takaful/policies
Policy DetailIndividual policy lifecycle management/admin/takaful/policies/:id
ClaimsClaims queue, assessment, approval workflows/admin/takaful/claims
Claim DetailIndividual claim lifecycle with document review/admin/takaful/claims/:id
UnderwritingUnderwriting queue and risk assessment tools/admin/takaful/underwriting
Fund ManagementFund balances, allocations, and transactions/admin/takaful/funds
Surplus DistributionCalculate, approve, and distribute surplus/admin/takaful/surplus
RetakafulTreaty management and bordereaux submission/admin/takaful/retakaful
Compliance DashboardShariah compliance monitoring and violations/admin/takaful/compliance
ActuarialValuations, reserves, and loss triangles/admin/takaful/actuarial
CommissionsAgent commission schedules and payouts/admin/takaful/commissions
ReportsFinancial, regulatory, and performance reports/admin/takaful/reports
Product ConfigurationTakaful product definitions and rating tables/admin/takaful/products

The takaful rail is available through the IOF SDK under the iof.takaful namespace:

import { IOFClient } from "@iof/sdk";
const iof = new IOFClient({
api_key: process.env.IOF_API_KEY,
tenant_id: "tnt_001",
});
// General takaful
const generalPolicy = await iof.takaful.general.create({ ... });
const generalPolicies = await iof.takaful.general.list({ status: "ACTIVE" });
// Family takaful
const familyPolicy = await iof.takaful.family.create({ ... });
const savingsBalance = await iof.takaful.family.getSavingsBalance("tak_fam_xyz");
// Claims
const claim = await iof.takaful.claims.submit({ ... });
const claims = await iof.takaful.claims.list({ policy_id: "tak_gen_xyz" });
await iof.takaful.claims.approve("clm_abc123", { approved_amount: 4200 });
// Underwriting
const uwRequest = await iof.takaful.underwriting.submit({ ... });
await iof.takaful.underwriting.approve("uw_req_001", { rating_class: "standard" });
// Retakaful
const treaty = await iof.takaful.retakaful.create({ ... });
await iof.takaful.retakaful.submitBordereaux("treaty_001", { period: "2026-Q1" });
// Fund management
const fundSummary = await iof.takaful.funds.summary({ fund_type: "participant_risk_fund" });
await iof.takaful.funds.issueQardHasan({ amount: 500000, currency: "USD" });
// Surplus
const surplus = await iof.takaful.surplus.calculate({ period: "2025" });
await iof.takaful.surplus.distribute("surp_2025_001");
// Compliance
const check = await iof.takaful.compliance.check({ policy_id: "tak_gen_xyz" });
const reviews = await iof.takaful.compliance.listShariahReviews();
// Actuarial
const valuation = await iof.takaful.actuarial.valuate({ valuation_date: "2026-02-14" });
// Commissions
const schedule = await iof.takaful.commissions.createSchedule({ ... });
await iof.takaful.commissions.processPayouts({ period: "2026-01" });