# verify_booking

Submits the 6-digit code the customer received. On success the booking moves to its next step (payment, business approval or confirmed) and an accessToken is returned once. At most 5 attempts per hold.

Canonical: https://bookwise.live/docs/tools/verify_booking

Version: 1.1.0
Scope: Directory + business
Authentication: As specified in parameters
Category: Booking management

## Parameters

- **holdId** (string; required): holdId: the holdId returned by create_hold, e.g. "bkg_01j…"
- **code** (string | number; required): code: the 6-digit code the customer received, as a string, e.g. "482913"

## Example MCP call

Replace placeholders with returned IDs and saved credentials. Example dates must be replaced with the customer's future dates.

```json
{
  "name": "verify_booking",
  "arguments": {
    "holdId": "<holdId>",
    "code": "<customer-provided-six-digit-code>"
  }
}
```

## Input JSON Schema

```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "holdId": {
      "type": "string",
      "minLength": 1,
      "description": "holdId: the holdId returned by create_hold, e.g. \"bkg_01j…\""
    },
    "code": {
      "description": "code: the 6-digit code the customer received, as a string, e.g. \"482913\"",
      "type": [
        "string",
        "number"
      ]
    }
  },
  "required": [
    "holdId",
    "code"
  ]
}
```

## Output JSON Schema

```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "bookingId": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "enum": [
        "held",
        "pending_verification",
        "pending_payment",
        "pending_approval",
        "confirmed",
        "cancelled",
        "expired",
        "no_show",
        "completed"
      ]
    },
    "nextStep": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "accessToken": {
      "description": "Returned once after verification or when verification is not required. Store securely for booking management.",
      "type": "string"
    },
    "total": {
      "type": "object",
      "properties": {
        "amountMinor": {
          "type": "number"
        },
        "currency": {
          "type": "string"
        },
        "formatted": {
          "type": "string"
        }
      },
      "required": [
        "amountMinor",
        "currency",
        "formatted"
      ],
      "additionalProperties": false
    },
    "depositDue": {
      "type": "object",
      "properties": {
        "amountMinor": {
          "type": "number"
        },
        "currency": {
          "type": "string"
        },
        "formatted": {
          "type": "string"
        }
      },
      "required": [
        "amountMinor",
        "currency",
        "formatted"
      ],
      "additionalProperties": false
    },
    "paymentUrl": {
      "description": "Customer must open this URL to pay; do not collect payment credentials in chat.",
      "type": "string"
    },
    "expiresAt": {
      "type": "string"
    },
    "verification": {
      "type": "object",
      "properties": {
        "channel": {
          "type": "string"
        },
        "destination": {
          "type": "string"
        },
        "expiresAt": {
          "type": "string"
        }
      },
      "required": [
        "channel",
        "destination",
        "expiresAt"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "bookingId",
    "status",
    "nextStep",
    "message",
    "total",
    "depositDue"
  ],
  "additionalProperties": {}
}
```

## Annotations

```json
{
  "readOnlyHint": false,
  "destructiveHint": false,
  "idempotentHint": false,
  "openWorldHint": false
}
```

On failure, inspect isError and content; domain errors may include structuredContent.code, retryable, details.fields or alternatives. Annotations are behavior hints, not authorization.
