---
title: "Create a Document check"
method: POST
path: "/v1/checks/document"
tags: ["Document check"]
---

# Create a Document check

`POST /v1/checks/document`

Create a Document check. Use [Upload a file](./file-upload-file) to get an `upload_ref`.

---

#### See also  
Learn more about [Document checks](./document-checks-guide)  
Learn more about [Files](./files-guide)

## Request body

- union
  - DocumentCheckCompanyCreate
    - `company_id` string, uuid, required
    - `settings` DocumentCheckSettingsCreate, required
      - `document_type_key` string, required — Use your custom document type key or default document type. i.e. `kbis_document_type` or `registration_certificate`
      - `document_analysis` DocumentCheckDataSettingsDocumentAnalysis
        - `automatic_rejection` boolean, required
        - `automatic_approval` boolean, required
        - `parameters` union, required
          - RegistrationCertificate
            - `model` 'registration_certificate', required
            - `authorized_documents` string[], nullable — `kbis` `sirene_extract` `pappers_extract` `inscription_rne` `infonet_extract` `repertoire_metiers_extract` `handelsregister` `visura_camerale` `other`
            - `max_age_in_days` number, nullable
          - Iban
            - `model` 'iban', required
            - `iban_matching` boolean — Verify if iban extracted on the document match entity `banking_information.iban`. Default: `false`
            - `bic_matching` boolean — Verify if bic extracted on the document match entity `banking_information.bic`. Default: `false`
          - ProofOfAddress
            - `model` 'proof_of_address', required
            - `authorized_documents` string[], nullable — `energy_bill` `telco_bill` `official_document` `other`
            - `max_age_in_days` number, nullable
          - Prompt
            - `model` 'prompt', required
            - `prompt` string, required — Prompt used for document analysis
      - `fraud_analysis` DocumentCheckDataSettingsFraudAnalysis
        - `enabled` boolean, required — Enable or disable fraud analysis for this document
    - `data` DocumentCheckDataCreate
      - `files` DocumentCheckDataFileCreate[], required
        - `upload_ref` string, required
  - DocumentCheckIndividualCreate
    - `individual_id` string, uuid, required
    - `settings` DocumentCheckSettingsCreate, required
      - `document_type_key` string, required — Use your custom document type key or default document type. i.e. `kbis_document_type` or `registration_certificate`
      - `document_analysis` DocumentCheckDataSettingsDocumentAnalysis
        - `automatic_rejection` boolean, required
        - `automatic_approval` boolean, required
        - `parameters` union, required
          - RegistrationCertificate
            - `model` 'registration_certificate', required
            - `authorized_documents` string[], nullable — `kbis` `sirene_extract` `pappers_extract` `inscription_rne` `infonet_extract` `repertoire_metiers_extract` `handelsregister` `visura_camerale` `other`
            - `max_age_in_days` number, nullable
          - Iban
            - `model` 'iban', required
            - `iban_matching` boolean — Verify if iban extracted on the document match entity `banking_information.iban`. Default: `false`
            - `bic_matching` boolean — Verify if bic extracted on the document match entity `banking_information.bic`. Default: `false`
          - ProofOfAddress
            - `model` 'proof_of_address', required
            - `authorized_documents` string[], nullable — `energy_bill` `telco_bill` `official_document` `other`
            - `max_age_in_days` number, nullable
          - Prompt
            - `model` 'prompt', required
            - `prompt` string, required — Prompt used for document analysis
      - `fraud_analysis` DocumentCheckDataSettingsFraudAnalysis
        - `enabled` boolean, required — Enable or disable fraud analysis for this document
    - `data` DocumentCheckDataCreate
      - `files` DocumentCheckDataFileCreate[], required
        - `upload_ref` string, required

## Response `201`

Document check has been created

**ℹ️ Click to see full payload**

- DocumentCheck
  - `id` string, uuid, required
  - `company_id` string, uuid, nullable, required
  - `individual_id` string, uuid, nullable, required
  - `is_internal` boolean, required
  - `status` 'in_progress' | 'need_review' | 'processing' | 'approved' | 'rejected' | 'expired', required — ℹ️ Check status `expired` is deprecated and will be removed Q1'25. It will be replaced with an expired flag.
  - `type` 'document', required
  - `subtype` string, required — Contains `"document_type:{settings.document_type_key}"`
  - `last_activity_at` string, date-time, required — Latest activity date Date time in format [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) (`yyyy-MM-ddTHH:mm:ss.S+X` eg `2023-01-31T13:30:00.000Z`)
  - `data` DocumentCheckData, required
    - `result` 'approved' | 'rejected' | 'error', nullable, required
    - `settings` DocumentDataSettings, required
      - `document_type` CustomDocumentType, required
        - `id` string, uuid, required
        - `label` string, required
        - `key` string, required — Unique identifier key. Format `/^[a-z][a-z_0-9]*$/` Must be unique
        - `target_entities` string[], required
        - `is_internal` boolean, required
        - `created_at` string, date-time, required — Creation date Date time in format [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) (`yyyy-MM-ddTHH:mm:ss.S+X` eg `2023-01-31T13:30:00.000Z`)
        - `updated_at` string, date-time, required — Latest update date Date time in format [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) (`yyyy-MM-ddTHH:mm:ss.S+X` eg `2023-01-31T13:30:00.000Z`)
        - `archived_at` string, date-time, nullable, required — Archival date Date time in format [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) (`yyyy-MM-ddTHH:mm:ss.S+X` eg `2023-01-31T13:30:00.000Z`)
      - `document_type_key` string, required — Key of the document type of this check
      - `document_analysis` DocumentCheckDataSettingsDocumentAnalysis, required
        - `automatic_rejection` boolean, required
        - `automatic_approval` boolean, required
        - `parameters` union, required
          - RegistrationCertificate
            - `model` 'registration_certificate', required
            - `authorized_documents` string[], nullable — `kbis` `sirene_extract` `pappers_extract` `inscription_rne` `infonet_extract` `repertoire_metiers_extract` `handelsregister` `visura_camerale` `other`
            - `max_age_in_days` number, nullable
          - Iban
            - `model` 'iban', required
            - `iban_matching` boolean — Verify if iban extracted on the document match entity `banking_information.iban`. Default: `false`
            - `bic_matching` boolean — Verify if bic extracted on the document match entity `banking_information.bic`. Default: `false`
          - ProofOfAddress
            - `model` 'proof_of_address', required
            - `authorized_documents` string[], nullable — `energy_bill` `telco_bill` `official_document` `other`
            - `max_age_in_days` number, nullable
          - Prompt
            - `model` 'prompt', required
            - `prompt` string, required — Prompt used for document analysis
    - `review` Review, required
      - `comment` string, nullable, required
      - `reviewed_at` string, date-time, nullable, required — Date time in format [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) (`yyyy-MM-ddTHH:mm:ss.S+X` eg `2023-01-31T13:30:00.000Z`)
      - `reviewer_type` 'user' | 'system' | 'api', nullable, required
      - `user` NestedUser, required
        - `id` string, uuid, required
        - `first_name` string, required
        - `last_name` string, required
        - `email` string, email, required
    - `detailed_results` DocumentCheckDataDetailedResults, required
      - `document_analysis` union, required
        - DocumentAnalysisRegistrationCertificateDetailedResults
          - `valid_age_in_days` DocumentAnalysisDetailedResult, required
            - `result` 'approved' | 'rejected' | 'error', nullable, required
            - `expected` string, nullable, required
            - `received` string, nullable, required
          - `address_matching` DocumentAnalysisDetailedResult, required
            - `result` 'approved' | 'rejected' | 'error', nullable, required
            - `expected` string, nullable, required
            - `received` string, nullable, required
          - `registration_number_matching` DocumentAnalysisDetailedResult, required
            - `result` 'approved' | 'rejected' | 'error', nullable, required
            - `expected` string, nullable, required
            - `received` string, nullable, required
          - `name_matching` DocumentAnalysisDetailedResult, required
            - `result` 'approved' | 'rejected' | 'error', nullable, required
            - `expected` string, nullable, required
            - `received` string, nullable, required
          - `valid_document_type` DocumentAnalysisDetailedResult, required
            - `result` 'approved' | 'rejected' | 'error', nullable, required
            - `expected` string, nullable, required
            - `received` string, nullable, required
        - DocumentAnalysisIBANDetailedResults
          - `valid_iban` DocumentAnalysisDetailedResult, required
            - `result` 'approved' | 'rejected' | 'error', nullable, required
            - `expected` string, nullable, required
            - `received` string, nullable, required
          - `valid_bic` DocumentAnalysisDetailedResult, required
            - `result` 'approved' | 'rejected' | 'error', nullable, required
            - `expected` string, nullable, required
            - `received` string, nullable, required
          - `name_matching` DocumentAnalysisDetailedResult, required
            - `result` 'approved' | 'rejected' | 'error', nullable, required
            - `expected` string, nullable, required
            - `received` string, nullable, required
          - `iban_matching` DocumentAnalysisDetailedResult, required
            - `result` 'approved' | 'rejected' | 'error', nullable, required
            - `expected` string, nullable, required
            - `received` string, nullable, required
          - `bic_matching` DocumentAnalysisDetailedResult, required
            - `result` 'approved' | 'rejected' | 'error', nullable, required
            - `expected` string, nullable, required
            - `received` string, nullable, required
        - DocumentAnalysisProofOfAddressDetailedResults
          - `valid_age_in_days` DocumentAnalysisDetailedResult, required
            - `result` 'approved' | 'rejected' | 'error', nullable, required
            - `expected` string, nullable, required
            - `received` string, nullable, required
          - `address_matching` DocumentAnalysisDetailedResult, required
            - `result` 'approved' | 'rejected' | 'error', nullable, required
            - `expected` string, nullable, required
            - `received` string, nullable, required
          - `name_matching` DocumentAnalysisDetailedResult, required
            - `result` 'approved' | 'rejected' | 'error', nullable, required
            - `expected` string, nullable, required
            - `received` string, nullable, required
          - `valid_document_type` DocumentAnalysisDetailedResult, required
            - `result` 'approved' | 'rejected' | 'error', nullable, required
            - `expected` string, nullable, required
            - `received` string, nullable, required
        - DocumentAnalysisPromptDetailedResults
    - `document_file_ids` string[], required
    - `information` DocumentCheckDataInformation, required
      - `expiration_date` string, date, nullable, required — Date in format [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)(`yyyy-MM-dd` eg `2023-01-31`)
      - `document_analysis` union, required
        - DocumentAnalysisRegistrationCertificateInformation
          - `name` string, nullable, required
          - `registration_number` string, nullable, required
          - `registration_city` string, nullable, required
          - `address` string, nullable, required
          - `country` string, nullable, required
          - `issuing_date` string, date, nullable, required — Date in format [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)(`yyyy-MM-dd` eg `2023-01-31`)
          - `document_type` 'kbis' | 'sirene_extract' | 'pappers_extract' | 'inscription_rne' | 'infonet_extract' | 'repertoire_metiers_extract' | 'handelsregister' | 'visura_camerale' | 'other', nullable, required
          - `other_document_type` string, nullable, required — Document type found for "other" category.
        - DocumentAnalysisIBANInformation
          - `holder_name` string, nullable, required
          - `bank_name` string, nullable, required
          - `iban` string, nullable, required
          - `bic` string, nullable, required
        - DocumentAnalysisProofOfAddressInformation
          - `issuing_date` string, date, nullable, required — Date in format [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)(`yyyy-MM-dd` eg `2023-01-31`)
          - `address` string, nullable, required
          - `name` string, nullable, required
          - `document_type` 'energy_bill' | 'telco_bill' | 'official_document' | 'other', nullable, required
          - `other_document_type` string, nullable, required — Document type found for "other" category.
          - `country` string, nullable, required
          - `issuer` string, nullable, required — Issuer of the document
        - DocumentAnalysisPromptInformation

## Other responses

- `400` — The request is either malformed or contain invalid parameters. - Make sure the body payload matches the expected schema - When the number of `files` is invalid, must be between 0 and 10 - When one of the `upload_ref` is expired or invalid

---

[API](https://skmtc.dev/dotfile/apis/api-specifications.md) · [All operations](https://skmtc.dev/dotfile/apis/api-specifications/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/dotfile/api-specifications/revisions/36393567057b/schema)
