> ## Documentation Index
> Fetch the complete documentation index at: https://docs.yasmina.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Travel Insurance

> Embed Schengen travel insurance into your platform, allowing your customers to insure their trips quickly and seamlessly.

## Introduction

This guide describes the **Travel Insurance APIs** available on Yasmina’s platform. These APIs cover the core operations required for issuing and managing travel insurance policies, including quoting, issuing policies, generating payment links, and handling claims.

Our APIs follow RESTful standards and are designed with consistent request and response structures, making them easy to integrate, test, and maintain within your systems.

## What you will learn

* Creating travel insurance quotes
* Handling payments
* Issuing and showing the policy

## Prerequisites

1. **Account in Yasmina** – See the <a href="/introduction#onboarding" target="_blank">Onboarding section</a> for details.
2. **Authenticated Token** - You can follow the <a href="/authentication" target="_blank">Authentication guide</a> or head straight to the <a href="/auth-api-reference/oauth-20/generate-token" target="_blank">Generate Token API</a>.
3. **Backend server** - Required to securely call Yasmina APIs.

## Travel Insurance Overview

Travel insurance is designed to cover individuals or groups during international trips. Yasmina currently supports **Schengen-compliant travel insurance**, with configurable trip duration and multi-traveller support.

A typical travel insurance flow includes:

1. Collecting trip and traveller information
2. Requesting a quote
3. Issuing the policy
4. Completing payment
5. Downloading policy documents

***

## Request Quote

In this step, your customer provides information about the trip and you present them with the price of the insurance.
In order to request a quote, you need to execute the following <a href="/yasmina-schengen-travel-insurance/quotes/request-quote" target="_blank">Request Quote API</a>.

### Endpoint

`POST /api/v1/travel/quotes`

### Example request

```json theme={null}
{
  "nationality_id": "1234567890",
  "phone_number": "+966501234567",
  "email": "someone@example.com",
  "multi_entry": false,
  "duration": 10,
  "start_date": "2026-02-27",
  "date_of_birth": "1988-04-20",
  "travellers": [
    {
      "nationality": "SA",
      "full_name": "Yasmina Alex",
      "passport_number": "G12345678",
      "gender": "m",
      "date_of_birth": "1982-04-20",
      "relation": "self",
      "passport_expiry_date": "2026-10-30"
    }
  ]
}
```

Once you execute the request quote API. You get a response with the quotation object.
Most importantly you get a `quote_id` field. The value is needed later in the <a target="_blank" href="/yasmina-schengen-travel-insurance/policies/purchase">Purchase Policy API</a>.

### Example response

```json theme={null}
{
    "client_id": "****",
    "quote_id": "Q-V1GN40HU",
    "meta_data": {
        "travellers": [
            {
                "nationality": "SA",
                "full_name": "Yasmina Alex",
                "passport_number": "G12345678",
                "gender": "m",
                "date_of_birth": "1982-04-20",
                "relation": "self",
                "passport_expiry_date": "2026-10-30"
            }
        ],
        "multi_entry": false,
        "start_date": "2026-02-27",
        "duration": 10
    },
    "nationality_id": "1234567890",
    "phone_number": "+966501234567",
    "email": "someone@example.com",
    "date_of_birth": "1988-04-20",
    "type": "yasmina_schengen_travel_insurance",
    "bill": {
        "items": {
            "adult": {
                "count": 1,
                "price": 55,
                "total": 55
            }
        },
        "adminFees": 25
    },
    "price": 92,
    "updated_at": "2026-02-03T07:12:38.000000Z",
    "created_at": "2026-02-03T07:12:38.000000Z",
    "travellers": [
        {
            "nationality": "SA",
            "full_name": "Yasmina Alex",
            "passport_number": "G12345678",
            "gender": "m",
            "date_of_birth": "1982-04-20",
            "relation": "self",
            "passport_expiry_date": "2026-10-30"
        }
    ],
    "multi_entry": false,
    "start_date": "2026-02-27",
    "duration": 10
}
```

***

## Purchase the Travel Policy

Before your customers can get the Travel Insurance Policy, they will need to complete the payment. The <a target="_blank" href="/yasmina-schengen-travel-insurance/policies/purchase">Purchase Policy API</a> is used to get a policy object with a payment link.

You will need to provide the `quote_id` obtained from the previous step.

Afterwards you get a response that has a policy object, and in that response there is a `payment_link`.

Redirect the customer to this link to complete the payment process.

### Endpoint

`POST /api/v1/yasmina-schengen-travel`

### Example request

```json theme={null}
{
  "quote_id": "Q-FNWXGDPK",
}
```

### Example response

```json theme={null}
{
    "id": 936,
    "meta_data": {
        "bill": {
            "items": {
                "adult": {
                    "count": 1,
                    "price": 55,
                    "total": 55
                }
            },
            "adminFees": 25
        },
        "email": "someone@example.com",
        "price": 92,
        "duration": 10,
        "quote_id": 1,
        "start_date": "2026-02-27",
        "travellers": [
            {
                "gender": "m",
                "relation": "self",
                "full_name": "Yasmina Alex",
                "nationality": "SA",
                "date_of_birth": "1982-04-20",
                "passport_number": "G12345678",
                "passport_expiry_date": "2026-10-30"
            }
        ],
        "multi_entry": false,
        "phone_number": "+966501234567",
        "date_of_birth": "1988-04-20",
        "nationality_id": "1234567890"
    },
    "product_id": 8,
    "client_id": "a0fd456b-853d-4511-b80f-2bfdb0e66303",
    "canceled_at": null,
    "provider_policy_id": null,
    "provider_policy": null,
    "start_date": null,
    "pdf_parsed": 0,
    "cancellation_document": null,
    "invoice": null,
    "has_sent_cancellation_email": 0,
    "created_at": "2026-02-03T07:12:45.000000Z",
    "updated_at": "2026-02-03T07:12:45.000000Z",
    "status": 0,
    "transfer_date_at": null,
    "cancellation_request_at": null,
    "deleted_at": null,
    "is_old_policy": 0,
    "payment_link": "https://sandbox.yasmina.ai/short/4OrJN",
    "price": 92,
    "insurance_company_id": null,
    "redirect_url": null,
    "hidden_meta_data": null,
    "uploaded_at": null,
    "policy_url": null,
    "invoice_url": null
}
```

### Redirect URL

In addition to supplying the `quote_id` you can also add `redirect_url`. This is used to redirect the customer to any page or deep link you need after the payment is completed. You can also include a query string with policyID and it will automatically replace it with the actual `id` of the policy object.

Example for policy `id` 123

```
	{
		quote_id: "Q-FNWXGDPK",
		redirect_url: "https://www.example.com?yasmina_policy_id=policyID"
	}
```

Will become on the response

```
	{
		redirect_url: "https://www.example.com?yasmina_policy_id=123"
	}
```

And the customer that purchased the policy will be redirected to
[https://www.example.com?yasmina\_policy\_id=123](https://www.example.com?yasmina_policy_id=123)

***

### Showing & Downloading the policy

In order to get a status of a policy, you can use the <a href="/yasmina-schengen-travel-insurance/policies/show-policy" target="_blank">Show Policy API</a>. This API, takes a Yasmina Policy `id` and will return the policy object
The response includes both `policy_url` and `invoice_url`, these URLs contain pdf files that your customer can download.
