---
title: "Optional inbound-email adapter (concierge:write) — records a customer reply against the exact Concierge approval packet identified by request_id + business_id. An exact \"yes\" marks the packet approved but does NOT execute it; a Concierge operator must explicitly queue an approved packet from the internal dashboard."
method: POST
path: "/v1/concierge/approval-replies"
---

# Optional inbound-email adapter (concierge:write) — records a customer reply against the exact Concierge approval packet identified by request_id + business_id. An exact "yes" marks the packet approved but does NOT execute it; a Concierge operator must explicitly queue an approved packet from the internal dashboard.

`POST /v1/concierge/approval-replies`

## Request

- Base URL: `https://www.kaicalls.com/api`
- URL: `https://www.kaicalls.com/api/v1/concierge/approval-replies`
- Auth: HTTP bearer

## Request body

- object
  - `request_id` string, required
  - `business_id` string, required
  - `from_email` string, email, required
  - `body` string, required
  - `token` string
  - `message_id` string
  - `thread_id` string

## Response `200`

Reply recorded; decision is approve

## Other responses

- `202`: Reply recorded; decision is not a clear approval
- `400`: Missing/invalid request_id, business_id, from_email, or body
- `401`: Missing, invalid, revoked, or expired API key
- `403`: Missing concierge:write scope, or no access to the business
- `409`: Reply rejected (e.g. unknown request_id)

---

[API](https://skmtc.dev/kaicalls/apis/kaicalls-public-api.md) · [All operations](https://skmtc.dev/kaicalls/apis/kaicalls-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/kaicalls/apis/kaicalls-public-api/revisions/e607fc6cf36e?raw)
