---
uuid: 3bd439c0-1572-4c8d-94f1-f8f6fff67d75
date_created: 2025-07-23T07:44:27.478Z
date_updated: 2026-04-03T17:04:00.522Z
seo_url: inquiry-regarding-api-management-for-frequent-travelers
category: Customer account
tags: 
  - Booking
  - Customers
  - Legal info
routes: 
  - GET /v1/customers/{customer_id}/travelers
  - POST /v1/customers/{customer_id}/travelers
  - GET /v1/customers/{customer_id}/travel_documents
  - PATCH /v1/customers/{customer_id}/travel_documents
  - GET /v1/customers
---

# Manage travelers and travel documents for a customer

This scenario documents how to list travelers linked to a customer account, create new travelers, retrieve travel documents, update them, and resolve a customer when needed.

## Flow

```mermaid
flowchart LR
    step0["List linked travelers"]
    step1["Create a traveler"]
    step2["Retrieve travel documents"]
    step3["Update travel documents"]
    step4["Resolve the customer account"]
    step0 --> step1
    step1 --> step2
    step2 --> step3
    step3 --> step4
    classDef optional fill:transparent,stroke:#ffffff,color:#ffffff,stroke-width:1px,stroke-dasharray: 6\,4
    class step4 optional
```

## Overview

Use this scenario to manage the travelers linked to a customer account and keep their travel documents up to date. The flow combines traveler listing and creation, travel-document read-back, updates, and customer search when the right account must first be identified.

## Prerequisites

* A valid `customer_id` is required on traveler and travel-document routes.
* Customer-scoped routes require `authorization`, and all documented calls require `accept-language` and `x-api-key`.
* Customer search may be needed to resolve the correct account before document updates.

## 1 - List linked travelers

Use `GET /v1/customers/{customer_id}/travelers` to list linked travelers.

#### Prerequisites

Prepare `customer_id`. Keep `x-api-key` and, when the route is customer-scoped, a valid bearer token.

#### Calling CURL

```bash
curl -X GET \
  -H "x-api-key: YOUR_API_KEY" \
  -H "accept-language: en-US" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  "https://api.clubmed.com/v1/customers/{customer_id}/travelers"
```

#### Example answer

```json
[
  {
    "id": "traveler-1",
    "first_name": "Jane",
    "last_name": "Doe"
  }
]
```

> **info:** Use the traveler list to confirm who is already attached to the customer before creating a new traveler or updating documents.

***

**Response codes**

* `200 OK`: the expected data is returned.
* `400 Bad Request`: the request is invalid or incomplete.
* `401 Unauthorized`: the token is missing or invalid.
* `403 Forbidden`: access is denied in this context.
* `404 Not Found`: the requested resource cannot be found.

**Related route**: [GET https://api.clubmed.com//v1/customers/{customer\_id}/travelers](https://api.clubmed.com/doc?search=GET%20%2Fv1%2Fcustomers%2F%7Bcustomer_id%7D%2Ftravelers)

## 2 - Create a traveler

Use `POST /v1/customers/{customer_id}/travelers` to create an additional traveler on the customer account before working on travel documents.

#### Prerequisites

Prepare `customer_id`. Keep `x-api-key` and, when the route is customer-scoped, a valid bearer token. Validate the request body before the call to avoid a validation error.

#### Calling CURL

```bash
curl -X POST \
  -H "x-api-key: YOUR_API_KEY" \
  -H "accept-language: en-US" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"first_name": "Jane", "last_name": "Doe", "birthdate": "1990-03-12"}' \
  "https://api.clubmed.com/v1/customers/{customer_id}/travelers"
```

#### Example answer

```json
{
  "id": "traveler-1",
  "first_name": "Jane",
  "last_name": "Doe"
}
```

> **info:** Keep the returned traveler `id` if the same traveler must be reused or reconciled in later customer operations.

***

**Response codes**

* `200 OK`: the operation succeeds and the resource is returned.
* `400 Bad Request`: the body or parameters are invalid.
* `401 Unauthorized`: the token is missing or invalid.
* `403 Forbidden`: access is denied in this context.
* `404 Not Found`: the target resource cannot be found.

**Related route**: [POST https://api.clubmed.com//v1/customers/{customer\_id}/travelers](https://api.clubmed.com/doc?search=POST%20%2Fv1%2Fcustomers%2F%7Bcustomer_id%7D%2Ftravelers)

## 3 - Retrieve travel documents

Use `GET /v1/customers/{customer_id}/travel_documents` to review the customer's existing travel documents before deciding whether one must be updated.

#### Prerequisites

Prepare `customer_id`. Keep `x-api-key` and, when the route is customer-scoped, a valid bearer token.

#### Calling CURL

```bash
curl -X GET \
  -H "x-api-key: YOUR_API_KEY" \
  -H "accept-language: en-US" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  "https://api.clubmed.com/v1/customers/{customer_id}/travel_documents"
```

#### Example answer

```json
[
  {
    "id": "doc-1",
    "type": "PASSPORT",
    "number": "XX123456",
    "expiration_date": "2030-07-01"
  }
]
```

> **info:** Use document `id`, `type`, and expiry data to decide which travel document needs an update.

***

**Response codes**

* `200 OK`: the expected data is returned.
* `400 Bad Request`: the request is invalid or incomplete.
* `401 Unauthorized`: the token is missing or invalid.
* `403 Forbidden`: access is denied in this context.
* `404 Not Found`: the requested resource cannot be found.

**Related route**: [GET https://api.clubmed.com//v1/customers/{customer\_id}/travel\_documents](https://api.clubmed.com/doc?search=GET%20%2Fv1%2Fcustomers%2F%7Bcustomer_id%7D%2Ftravel_documents)

## 4 - Update travel documents

Use `PATCH /v1/customers/{customer_id}/travel_documents` to update travel documents.

#### Prerequisites

Prepare `customer_id`. Keep `x-api-key` and, when the route is customer-scoped, a valid bearer token. Validate the request body before the call to avoid a validation error.

#### Calling CURL

```bash
curl -X PATCH \
  -H "x-api-key: YOUR_API_KEY" \
  -H "accept-language: en-US" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"documents": [{"id": "doc-1", "number": "XX123456", "expiration_date": "2030-07-01"}]}' \
  "https://api.clubmed.com/v1/customers/{customer_id}/travel_documents"
```

#### Example answer

```http
HTTP/1.1 204 No Content
```

> **info:** Success may be returned without a response body. Read the resource again afterwards if you need to display the final state.

***

**Response codes**

* `204 No Content`: the operation is applied successfully.
* `400 Bad Request`: the body or parameters are invalid.
* `401 Unauthorized`: the token is missing or invalid.
* `403 Forbidden`: access is denied in this context.
* `404 Not Found`: the target resource cannot be found.

**Related route**: [PATCH https://api.clubmed.com//v1/customers/{customer\_id}/travel\_documents](https://api.clubmed.com/doc?search=PATCH%20%2Fv1%2Fcustomers%2F%7Bcustomer_id%7D%2Ftravel_documents)

## 5 - Resolve the customer account

Use `GET /v1/customers` to resolve the customer account.

#### Prerequisites

Prepare the parameters required by the call. Keep `x-api-key` and, when the route is customer-scoped, a valid bearer token.

#### Calling CURL

```bash
curl -X GET \
  -H "x-api-key: YOUR_API_KEY" \
  -H "accept-language: en-US" \
  "https://api.clubmed.com/v1/customers"
```

#### Example answer

```json
[
  {
    "id": "customer-1",
    "first_name": "Jane",
    "last_name": "Doe",
    "email": "jane@example.com"
  }
]
```

> **info:** Use the returned customer identifiers to continue with traveler and travel-document operations on the correct account.

***

**Response codes**

* `200 OK`: the expected data is returned.
* `400 Bad Request`: the request is invalid or incomplete.
* `404 Not Found`: the requested resource cannot be found.

**Related route**: [GET https://api.clubmed.com//v1/customers](https://api.clubmed.com/doc?search=GET%20%2Fv1%2Fcustomers)
