---
title: "Respond to the regulatory reviewer (message + corrections)"
method: POST
path: "/v1/phone-numbers/{id}/remediate/respond"
tags: ["Phone Numbers"]
---

# Respond to the regulatory reviewer (message + corrections)

`POST /v1/phone-numbers/{id}/remediate/respond`

Send a single response to the reviewer on a number awaiting remediation:
a free-text message and/or corrected requirement documents, in one call.
If corrections are present they are PATCHed onto the requirement group and
re-submitted (the number goes back to "in review"); if a message or file
attachments are present they are posted to the reviewer's comment thread.
When both are present, your message is the thread comment and the resubmit
drives the state change. At least one of message, corrections, or
attachments is required. `documents` correct requirement slots; `attachments`
are loose files (their links are added to your message).

## Path parameters

- `id` string, required

## Request body

- object
  - `message` string — Your message to the reviewer.
  - `documents` object[] — Corrected requirement documents, each keyed to its requirement.
    - `requirementId` string, required
    - `filename` string
    - `base64` string — Base64-encoded file bytes (or supply documentId instead).
    - `documentId` string — Id of a document already uploaded out-of-band.
    - `issuedAt` string, date — Date printed on the document (YYYY-MM-DD), for slots the regulator windows such as proof of address. The pre-submit review trusts it over its own read of the PDF.
  - `address` object — A corrected address record, keyed to its requirement.
  - `entityType` 'individual' | 'business' | 'null', nullable
  - `attachments` object[] — Loose files (PDF/JPG/PNG/WEBP, max 10 MB each) whose links are added to your message.
    - `filename` string, required
    - `base64` string, required — Base64-encoded file bytes.

## Response `200`

Response sent.

- object
  - `status` 'resubmitted' | 'replied' — `resubmitted` when corrections were submitted, `replied` when it was message-only.
  - `posted` boolean — Whether a message/attachments were posted to the reviewer.
  - `phoneNumber` object
    - `id` string
    - `status` string
  - `siblingsResubmitted` integer — Other numbers on the same registration the correction fanned out to.

## Other responses

- `400` — Invalid request
- `401` — Unauthorized
- `404` — Number not found
- `409` — Number's registration is held under our own carrier registration; nothing for you to correct.
- `502` — Couldn't deliver your response to the reviewer; retry.

## Changes

- **2026-09-16** `3e6ddf2a99ea` — 2 info
  - added the new optional request property `documents/items/issuedAt`
  - added the optional property `details/budgetScope` to the response with the `400` status
- **2026-09-15** `0dba7d004d75` — 2 info
  - added the optional property `details/quotaExhausted` to the response with the `400` status
  - added the optional property `details/quotaScope` to the response with the `400` status

[Change history](https://skmtc.dev/zernio/apis/zernio-api/changes/v1/phone-numbers/:id/remediate/respond/post.md)

---

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