# Add the booking contact

> The add_trip_contact MCP tool: add the booking contact.

`add_trip_contact` · writes · reaches people outside bymundi

[REST: `POST /v1/trips/{tripId}/contact`](https://api.bymundi.com/docs/reference/travelers.contact.create.md)

## What the model reads

Makes a person the trip's booking contact (who books and pays; they need not travel). Needs their email; name, phone, address and identity document are optional. Creates their traveler account; on a booked (`reservada`) trip it also emails them their app access. Refused if the trip already has a contact — use update_trip_contact.

Permissions: travelers:write.
Undo: call remove_trip_contact.

## Input

| Field | Type | Required | Description |
|---|---|---|---|
| `tripId` | uuid | yes |  |
| `name` | string \| null |  |  |
| `email` | email | yes | The contact's email — their app access goes here. max 200 chars |
| `phone` | string \| null |  |  |
| `address` | object \| null |  |  |
| `address.line1` | string \| null | yes |  |
| `address.line2` | string \| null | yes |  |
| `address.postalCode` | string \| null | yes |  |
| `address.city` | string \| null | yes |  |
| `address.region` | string \| null | yes |  |
| `address.country` | string \| null | yes |  |
| `docType` | "dni" \| "nie" \| "passport" \| "other" \| null |  |  |
| `docNumber` | string \| null |  |  |
| `docCountry` | string \| null |  |  |
| `taxId` | string \| null |  |  |

## Input schema (JSON)

```json
{
  "type": "object",
  "properties": {
    "tripId": {
      "type": "string",
      "format": "uuid"
    },
    "name": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 160
        },
        {
          "type": "null"
        }
      ]
    },
    "email": {
      "type": "string",
      "format": "email",
      "maxLength": 200,
      "description": "The contact's email — their app access goes here."
    },
    "phone": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 40
        },
        {
          "type": "null"
        }
      ]
    },
    "address": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "line1": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 120
                },
                {
                  "type": "null"
                }
              ]
            },
            "line2": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 120
                },
                {
                  "type": "null"
                }
              ]
            },
            "postalCode": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 20
                },
                {
                  "type": "null"
                }
              ]
            },
            "city": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 80
                },
                {
                  "type": "null"
                }
              ]
            },
            "region": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 80
                },
                {
                  "type": "null"
                }
              ]
            },
            "country": {
              "anyOf": [
                {
                  "type": "string",
                  "pattern": "^[A-Z]{2}$"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "line1",
            "line2",
            "postalCode",
            "city",
            "region",
            "country"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    },
    "docType": {
      "anyOf": [
        {
          "type": "string",
          "enum": [
            "dni",
            "nie",
            "passport",
            "other"
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "docNumber": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 40
        },
        {
          "type": "null"
        }
      ]
    },
    "docCountry": {
      "anyOf": [
        {
          "type": "string",
          "pattern": "^[A-Z]{2}$"
        },
        {
          "type": "null"
        }
      ]
    },
    "taxId": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 40
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "tripId",
    "email"
  ],
  "additionalProperties": false
}
```
