---
title: "Submit a compliance application"
method: POST
path: "/compliance/applications"
tags: ["Compliance"]
---

# Submit a compliance application

`POST /compliance/applications`

Submit a new compliance application with end-user details and supporting documents.
One application is allowed per organization per country per number type per user type.

The request uses `multipart/form-data` because documents are uploaded inline.
The `endUser` and `documents` fields are JSON strings embedded in the form data.

## Response `201`

Application submitted successfully

- object
  - `status` boolean
  - `data` ComplianceApplication — A compliance application for a specific country, number type, and user type
    - `_id` string — Unique identifier
    - `organizationId` string — The organization this application belongs to
    - `plivoComplianceId` string — Plivo's compliance application identifier
    - `alias` string — Auto-generated alias (orgId-countryIso-env)
    - `status` 'draft' | 'submitted' | 'accepted' | 'rejected' | 'suspended' | 'expired' — Current status of the compliance application
    - `countryIso` string — ISO 3166-1 alpha-2 country code
    - `numberType` 'local' | 'mobile' | 'tollfree'
    - `userType` 'individual' | 'business'
    - `endUserName` string — Legal business or individual name
    - `endUserLastName` string, nullable
    - `endUserEmail` string, nullable
    - `endUserCountry` string, nullable
    - `documentFileNames` string[] — Names of uploaded document files
    - `rejectionReason` string, nullable — Reason for rejection, if applicable
    - `createdBy` string — User ID of the person who created this application
    - `createdAt` string, date-time
    - `updatedAt` string, date-time

## Other responses

- `400` — Validation error — invalid JSON, unsupported file type, or file count mismatch (`"Expected X files, got Y"`)
- `401` — Unauthorized access
- `409` — A compliance application already exists for this country/numberType combination. Exact message: `"A compliance application already exists for {countryIso}/{numberType}. Status: {status}"`
- `500` — Internal server error
- `502` — Bad gateway — Plivo's compliance API returned an error or is unavailable

---

[API](https://skmtc.net/smallest-inc/apis/agent-management-api.md) · [All operations](https://skmtc.net/smallest-inc/apis/agent-management-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/smallest-inc/agent-management-api/revisions/274a178284a4/schema)
