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

# Verification API

> Validate contact channels, tax identifiers, and compliance rules before confirming a booking.

## Endpoints

| Method | Path                        | Description                                                                  |
| ------ | --------------------------- | ---------------------------------------------------------------------------- |
| POST   | `/v1/verify/email/start`    | Issue an email verification challenge (scaffolding, extend to deliver codes) |
| POST   | `/v1/verify/email/confirm`  | Confirm an email verification code                                           |
| POST   | `/v1/verify/sms/start`      | Send a 6-digit SMS verification code via Trigger.dev                         |
| POST   | `/v1/verify/sms/confirm`    | Confirm an SMS verification code within 5 minutes                            |
| POST   | `/v1/verify/vat`            | Normalize and validate VAT number formatting                                 |
| POST   | `/v1/verify/tax-preview`    | Inspect the tax rule the pricing engine will apply for a product             |
| POST   | `/v1/verify/document-rules` | Retrieve document requirements for a market or itinerary scenario            |

<Info>
  All endpoints require a workspace-scoped API key (`Authorization: Bearer`). SMS delivery uses the configured Trigger.dev workflow and sender ID; ensure `SMS_SENDER_ID` is set in environments that require branded messaging.
</Info>

## Key concepts

* Email verification endpoints return `ok: true` today. Wire them to your email provider to send codes via Trigger.dev or another service before promoting to production.
* SMS verification stores hashed codes in `comms.verification_codes`, expires them after 5 minutes, and marks records as consumed after confirmation.
* VAT verification currently performs format normalization (EU heuristic). When `ENABLE_VIES_CHECK` is set, extend the handler to call VIES and populate `isRegistered`.
* Tax preview reuses the price engine rule picker, making it ideal for admin tooling that explains how VAT will be applied.
* Document rules combine market configuration with product countries to determine which documents must be collected from travellers.
