> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cryptomate.me/llms.txt
> Use this file to discover all available pages before exploring further.

# Complete product documentation

> Submit a missing document for a pending enablement request.

Submits a missing document for a pending product enablement request. Data fields are set through [Update individual client](/api-reference/management/individual-clients/update-client) instead. The response returns the remaining missing requirements and any rejected items with their reason. Requires an API key with access level 3 or higher.

<Warning>
  **Identification documents must be a photo or scan of the physical document.** For any identity document — such as `passport`, `national_id`, `drivers_license` or `ssn` — `image_front` (and `image_back` when required) must show the actual physical document. Digital-only versions issued by government apps are **not accepted** and will fail the KYC review, including for example Argentina's **Mi Argentina**, Colombia's **Cédula Digital**, Brazil's **Carteira Digital de Trânsito**, Mexico's **Licencia Digital CDMX**, and Europe's **EU Digital Identity Wallet** / **France Identité** / Spain's **MiDNI**, or any similar national digital-ID app.
</Warning>

## Path parameters

<ParamField path="clientId" type="string" required>
  Unique identifier of the client.
</ParamField>

<ParamField path="productRequestId" type="string" required>
  Unique identifier of the product enablement request.
</ParamField>

## Body

<ParamField body="document" type="object" required>
  Document to upload with its dynamic metadata fields.

  <Expandable title="document">
    <ParamField body="document_type" type="string" required>
      Document type key as listed in the missing requirements (e.g., `passport`).
    </ParamField>

    <ParamField body="image_front" type="string" required>
      Base64-encoded front image content. For identification documents (e.g. `passport`, `national_id`, `drivers_license`, `ssn`) this must be a photo or scan of the physical document — digital-only app versions (Mi Argentina, Cédula Digital Colombiana, Carteira Digital de Trânsito, Licencia Digital CDMX, EU Digital Identity Wallet / France Identité / MiDNI, etc.) are rejected by KYC.
    </ParamField>

    <ParamField body="image_back" type="string">
      Base64-encoded back image content, when the document type requires it. For identification documents it must also show the physical document, not a digital-only version.
    </ParamField>

    <ParamField body="replace" type="boolean">
      Whether an existing document of the same type should be replaced. Defaults to `false`.
    </ParamField>

    <ParamField body="metadata" type="object">
      Dynamic metadata fields as defined by the missing document requirements (e.g., document number, issuing country, dates).
    </ParamField>
  </Expandable>
</ParamField>

## Response

<ResponseField name="product" type="object">
  Updated enablement request with the remaining missing requirements. See [List client products](/api-reference/management/individual-clients/list-products) for the full field list.
</ResponseField>

<ResponseField name="rejected_items" type="array">
  Items rejected during the submission. Each item has `type` (`document` or `data`), `key`, and `reason`.
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST "https://api.cryptomate.me/management/clients/individuals/4QWq1rQtjnLM0wMswTRY9AmM4XTvY4GG/products/2VvyMx6rNLRB1W9euCyJGe46qyoiVPzh/documentation" \
    -H "x-api-key: $CRYPTOMATE_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "document": {
        "document_type": "passport",
        "image_front": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQ...",
        "metadata": {
          "number": "AB1234567",
          "issuing_country": "ARG"
        }
      }
    }'
  ```
</RequestExample>

<ResponseExample>
  ```json 200 OK theme={null}
  {
    "product": {
      "id": "2VvyMx6rNLRB1W9euCyJGe46qyoiVPzh",
      "client_id": "4QWq1rQtjnLM0wMswTRY9AmM4XTvY4GG",
      "product": "cards_individuals",
      "status": "pending_documentation",
      "missing_requirements": {
        "documents": [],
        "data": [
          {
            "id": "personal_information",
            "name": "Personal information",
            "description": "Personal information needed for KYC",
            "required": true,
            "fields": [
              {
                "key": "phone",
                "data_type": "PHONE",
                "required": true
              }
            ]
          }
        ]
      },
      "created_at": "2026-04-15T10:30:00",
      "updated_at": "2026-04-16T09:12:00"
    },
    "rejected_items": []
  }
  ```

  ```json 409 Conflict theme={null}
  {
    "code": "VAL",
    "message": "The enablement request is not pending documentation"
  }
  ```
</ResponseExample>
