---
title: "Approve exact supplier channels, destinations, message snapshots, and artifact scope"
method: POST
path: "/v1/operator/requests/{request_id}/dispatch-approval"
tags: ["Operator"]
---

# Approve exact supplier channels, destinations, message snapshots, and artifact scope

`POST /v1/operator/requests/{request_id}/dispatch-approval`

## Request

- Base URL: `https://api.supplyslate.com`
- URL: `https://api.supplyslate.com/v1/operator/requests/{request_id}/dispatch-approval`
- Auth: one of:
  - OAuth 2 (authorization code, authorization URL `https://mcp.supplyslate.com/authorize`, token URL `https://mcp.supplyslate.com/oauth/token`)
  - HTTP bearer

## Path parameters

- `request_id` string, required

## Headers

- `Idempotency-Key` string

## Request body

- DispatchApprovalWrite
  - `dispatches` object[], required
    - `supplier_id` string, required
    - `channel` 'email' | 'supplier_api'
    - `recipient` string, email
    - `subject` string, required
    - `body` string, required
    - `artifact_ids` string[]
    - `response_due_at` string, date-time

## Response `202`

Accepted durably for asynchronous processing

- OperatorResponse
  - `data` unknown
  - `queues` object
  - `request_id` string

## Other responses

- `400`: Invalid request
- `401`: Authentication required
- `403`: Scope or tenant boundary denied
- `404`: Resource not found
- `409`: State conflict or idempotency mismatch
- `429`: Rate limited

---

[API](https://skmtc.dev/supplyslate/apis/supplyslate-agent-native-supply-api.md) · [All operations](https://skmtc.dev/supplyslate/apis/supplyslate-agent-native-supply-api/llms.txt) · [OpenAPI document](https://skmtc.dev/supplyslate/apis/supplyslate-agent-native-supply-api/revisions/f7989551f167?raw)
