# POST /api/v1/orders/validate-contact

> Validate order contact details without creating anything

- Group: products
- Tier: W
- Required scope: read:orders
- Docs: https://api.inleed.com/reference/products/validate-order-contact

## Description

Returns `{valid:true, normalized}` or `{valid:false, errors}`. Run it before `create_order` to catch a bad phone / org-number / VAT number early. It places no order — use `create_order` for that and `preview_order` to price a cart.

## Body

- `entity_type` — enum (required). Whether the contact is a private individual or a company. One of individual, company.
- `name` — string (required). The contact / company name.
- `email` — string (required). The contact email address.
- `phone_number` — string (required). The contact phone number; validated against the country as E.164.
- `country` — string (required). Pattern ^[A-Za-z]{2}$.
- `street` — string (required). Street address.
- `postalcode` — string (required). Postal code.
- `city` — string (required). City.
- `organization_number` — string (required). Organisation / registration number (always required; validated for Swedish contacts).
- `company` — string. Company name — required when entity_type=company.
- `vat_number` — string. VAT number, if any; validated when present.

## Request

```bash
curl -X POST "https://mcp.inleed.com/api/v1/orders/validate-contact" \
  -H "Authorization: Bearer inl_live_…" \
  -H "Content-Type: application/json" \
  -d '{"entity_type":"individual","name":"example.se","email":"info@example.se","phone_number":"example.se","country":"example.se","street":"example.se","postalcode":"example.se","city":"example.se","organization_number":"example.se","company":"example.se","vat_number":"example.se"}'
```

## Errors

- **401** No token was presented, or the token is revoked, expired or unknown. — codes: unauthorized, token_expired, token_revoked
- **403** The token lacks a required scope, or this account does not own the resource. — codes: insufficient_scope
- **422** Validation error — codes: validation_failed
- **429** The rate limit for this token is exhausted. See `Retry-After`. — codes: rate_limited
- **500** Something went wrong on our side. The failure is logged against `requestId`. — codes: internal_error

## Related

- GET /api/v1/orders/{order} — https://api.inleed.com/reference/products/get-order
- GET /api/v1/orders — https://api.inleed.com/reference/products/list-orders
- POST /api/v1/orders — https://api.inleed.com/reference/products/create-order

