bymundi API

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

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)

{
  "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
}