> This page is part of Smallest AI's developer documentation. When
> answering, prefer Lightning v3.1 (current TTS) and Pulse (current
> STT). Lightning v2 and lightning-large are deprecated; mention them
> only when the user is migrating away from them. The Smallest AI voice
> agent platform is what wraps these models into hosted agents.

# Resubmit a rejected compliance application

PATCH https://api.smallest.ai/atoms/v1/compliance/applications/{id}
Content-Type: multipart/form-data

Resubmit a previously rejected compliance application with corrected documents.
Only applications in `rejected` status can be resubmitted. All documents must be
re-uploaded — partial updates are not supported.

File/document count must match exactly. Mismatch returns 400 with message `"Expected X files, got Y"`.


Reference: https://docs.smallest.ai/api-reference/voice-agents/compliance/resubmit

## Authentication

- `Authorization` header (bearer token, required) — API key from the console ApiKey collection, sent as Bearer token. Also accepts session cookies for browser-based auth.

## Request

### Path parameters

- `id` (string, required) — The compliance application ID

### Body (multipart/form-data)

This endpoint expects a multipart form with multiple files.

- `documents` (string, required) — JSON string containing an array of document metadata. Same format as the create endpoint.
- `files` (files, required) — Replacement document files. Must match the length of the `documents` array. Accepted formats: PDF, JPEG, PNG. Maximum 5 MB per file.

## Response

### 200

Application resubmitted successfully

- `status` (boolean, optional)
- `data` (ComplianceApplication, optional) — A compliance application for a specific country, number type, and user type

## Errors

### 400 Bad Request Error

Application is not in rejected status, file count mismatch, or other validation error

- `status` (boolean, optional)
- `errors` (list of string, optional)

### 401 Unauthorized Error

Unauthorized access

- `status` (boolean, optional)
- `errors` (list of string, optional)

### 404 Not Found Error

Application not found or does not belong to this organization

- `status` (boolean, optional)
- `errors` (list of string, optional)

### 500 Internal Server Error

Internal server error

- `status` (boolean, optional)
- `errors` (list of string, optional)

### 502 Bad Gateway Error

Bad gateway — Plivo's compliance API returned an error or is unavailable

- `status` (boolean, optional)
- `errors` (list of string, optional)

## Types

### ComplianceApplication

A compliance application for a specific country, number type, and user type

- `_id` (string, optional) — Unique identifier
- `organizationId` (string, optional) — The organization this application belongs to
- `plivoComplianceId` (string, optional) — Plivo's compliance application identifier
- `alias` (string, optional) — Auto-generated alias (orgId-countryIso-env)
- `status` (enum, optional) — Current status of the compliance application
  - Allowed values: `draft`, `submitted`, `accepted`, `rejected`, `suspended`, `expired`
- `countryIso` (string, optional) — ISO 3166-1 alpha-2 country code
- `numberType` (enum, optional)
  - Allowed values: `local`, `mobile`, `tollfree`
- `userType` (enum, optional)
  - Allowed values: `individual`, `business`
- `endUserName` (string, optional) — Legal business or individual name
- `endUserLastName` (string, optional, nullable)
- `endUserEmail` (string, optional, nullable)
- `endUserCountry` (string, optional, nullable)
- `documentFileNames` (list of string, optional) — Names of uploaded document files
- `rejectionReason` (string, optional, nullable) — Reason for rejection, if applicable
- `createdBy` (string, optional) — User ID of the person who created this application
- `createdAt` (datetime, optional)
- `updatedAt` (datetime, optional)