Introduction
This guide describes the Life Savings & Protection (Life S&P) APIs available on Yasmina’s platform for bank channel integrations. These APIs cover the core operations required for life insurance workflows, including generating offers, issuing policies, listing policies, canceling policies, and submitting claims. Our APIs follow the RESTful standard and are designed with consistent request and response structures to make integration, testing, and maintenance easier.What you will learn
- Generating Life S&P offers
- Issuing life policies based on selected offers
- Retrieving created policies
- Canceling policies
- Submitting claims
Prerequisites
- Account in Yasmina - See the Onboarding section for details.
- Authenticated Token - Follow the Authentication guide to generate one.
- Backend server - Required to securely call Yasmina APIs.
Offers
Generate offers
To generate offers, use the Life S&P Products API. This endpoint (POST /api/v1/life-snp/offers) returns premium and coverage options for a customer.
The following fields are used when requesting offers.
| Field | Type | Rules | Description |
|---|---|---|---|
applicant_id | string | required, regex: ^\d{10}$ | Saudi National ID of the applicant (10 digits). |
date_of_birth | string (date) | required, format: YYYY-MM-DD | Applicant date of birth. |
gender | string | required, in: male, female | Applicant gender. |
smoker | boolean | required | Indicates if applicant is a smoker. |
policy_term_years | integer | required, min:5, max:40 | Policy term in years. |
premium_frequency | string | required, in: monthly, quarterly, semi_annual, annual | Billing frequency for premium. |
sum_assured | number | required if target_premium is missing, min:10000 | Desired life coverage amount in SAR. |
target_premium | number | required if sum_assured is missing, min:50 | Desired premium amount in SAR for selected frequency. |
height_cm | number | optional, min:100, max:250 | Applicant height in centimeters. |
weight_kg | number | optional, min:30, max:300 | Applicant weight in kilograms. |
occupation_class | string | optional | Occupation class code/text. |
annual_income_sar | number | optional, min:0 | Annual income in SAR. |
riders | object | optional | Optional rider flags such as critical_illness, accidental_death, etc. |
distribution_channel | string | optional, in: bank, default:bank | Distribution channel. |
Policies
Issue policies
To issue policies, use the Issue Policy API. This endpoint (POST /api/v1/life-snp/policies) issues a policy from a selected offer.
The following fields are required when creating a Life S&P policy.
| Field | Type | Rules | Description |
|---|---|---|---|
offer_id | string | required | Offer identifier returned by offers API. |
applicant_id | string | required, regex: ^\d{10}$ | Saudi National ID of the applicant. |
date_of_birth | string (date) | required, format: YYYY-MM-DD | Applicant date of birth. |
gender | string | required, in: male, female | Applicant gender. |
smoker | boolean | required | Indicates if applicant is a smoker. |
policy_term_years | integer | required, min:5, max:40 | Policy term in years. |
premium_frequency | string | required, in: monthly, quarterly, semi_annual, annual | Premium collection frequency. |
agreed_premium | number | required, min:50 | Final agreed premium. |
start_date | string (date) | required, format: YYYY-MM-DD | Requested policy start date. |
beneficiaries | array | required, min items:1 | Beneficiary list for payout distribution. |
beneficiaries[].name | string | required | Beneficiary full name. |
beneficiaries[].national_id | string | required, regex: ^\d{10}$ | Beneficiary national ID. |
beneficiaries[].relationship | string | required, in: spouse, child, parent, sibling, other | Relationship with applicant. |
beneficiaries[].share_percentage | number | required, min:0, max:100 | Share of total claim amount. |
consent | boolean | required | Applicant consent for issuance and auto-debit. |
iban | string | optional | Customer IBAN for premium collection. |
sum_assured | number | optional, min:10000 | Coverage amount in SAR. |
Retrieving the policy object again
You can retrieve previously created policies at any time using the List Policies API. Example request:Policy cancellation
Use the Cancel Policy API to request cancellation. This endpoint isPOST /api/v1/life-snp/policies/{lifePolicy}/cancellation.
You can optionally upload a supporting file as cancellation_document.
Example request:
Claims
Use the Submit Claim API to submit a life claim. This endpoint isPOST /api/v1/life-snp/policies/{policyId}/claims.
| Field | Type | Rules | Description |
|---|---|---|---|
claim_type | string | required, in: death, critical_illness, total_permanent_disability | Type of claim being submitted. |
event_date | string (date) | required, format: YYYY-MM-DD | Date of incident/event. |
requested_amount | number | optional | Requested claim amount in SAR. |
description | string | optional | Additional event details. |
supporting_document | file | optional | Evidence document (medical report, etc.). |

