---
title: "Submit an onboarding"
method: POST
path: "/entities/{entity_id}/onboardings/{id}/submit"
tags: ["Onboardings"]
---

# Submit an onboarding

`POST /entities/{entity_id}/onboardings/{id}/submit`

Use this endpoint to submit an onboarding for review once every requirement is met. The onboarding must have the `in_progress` status, completed required fields, and uploaded required documents. On success, the onboarding moves to the `submitted` status and can no longer be modified.

## Path parameters

- `entity_id` string, required
- `id` string, required

## Response `200`

Returns the onboarding after Fintoc submits it. The `status` is `submitted`.

- Onboarding
  - `id` string, required — Unique identifier of the onboarding.
  - `object` 'onboarding', required — Type of the object. Always `onboarding`.
  - `data` object, required — Reviewed data for the onboarding, grouped by type. Onboardings created through the API include `company_information` and `transactional_profile`. Fintoc sets `declaration_accepted` to `true` on creation and returns `incorporation_date` as an ISO 8601 datetime in UTC.
  - `documents` OnboardingDocument[], required — Document slots for the onboarding, with their upload status.
    - `filename` string — Original filename of the uploaded document. Only present when `status` is `uploaded`.
    - `slot_key` string, required — Key identifying the document slot.
    - `status` 'uploaded' | 'missing', required — Whether the slot has a document. One of `uploaded` or `missing`.
    - `uploaded_at` string, date-time — ISO 8601 datetime, in UTC, of when the document was uploaded. Only present when `status` is `uploaded`.
  - `entity_id` string, nullable, required — Identifier of the entity this onboarding belongs to. `null` if not associated with an entity.
  - `legal_representatives` OnboardingLegalRepresentative[], required — Legal representatives declared for the entity.
    - `id` string, required — Unique identifier of the legal representative.
    - `object` 'onboarding_legal_representative', required — Type of the object. Always `onboarding_legal_representative`.
    - `documents` OnboardingDocument[], required — Identification and power of attorney document slots for the representative, with their upload status.
      - `filename` string — Original filename of the uploaded document. Only present when `status` is `uploaded`.
      - `slot_key` string, required — Key identifying the document slot.
      - `status` 'uploaded' | 'missing', required — Whether the slot has a document. One of `uploaded` or `missing`.
      - `uploaded_at` string, date-time — ISO 8601 datetime, in UTC, of when the document was uploaded. Only present when `status` is `uploaded`.
    - `email` string, required — Email address of the legal representative. Must use RFC 5322 format.
    - `first_name` string, required — First name of the legal representative.
    - `identification_number` string, required — Mexican Unique Population Registry Code (CURP) of the legal representative. Must be 18 characters.
    - `last_name` string, required — Last name of the legal representative.
    - `nationality` string, required — Nationality as a two-letter ISO 3166-1 alpha-2 country code.
    - `position` string, required — Position held in the company.
  - `reviewed_at` string, date-time, nullable, required — ISO 8601 datetime, in UTC, of when the onboarding was reviewed. `null` until it is reviewed.
  - `shareholders` OnboardingShareholder[], required — Shareholders declared for the entity.
    - `id` string, required — Unique identifier of the shareholder.
    - `object` 'onboarding_shareholder', required — Type of the object. Always `onboarding_shareholder`.
    - `document` OnboardingDocument, required
      - `filename` string — Original filename of the uploaded document. Only present when `status` is `uploaded`.
      - `slot_key` string, required — Key identifying the document slot.
      - `status` 'uploaded' | 'missing', required — Whether the slot has a document. One of `uploaded` or `missing`.
      - `uploaded_at` string, date-time — ISO 8601 datetime, in UTC, of when the document was uploaded. Only present when `status` is `uploaded`.
    - `holder_id` string, nullable, required — Mexican tax ID (RFC) of the shareholder. `null` if not provided.
    - `last_name` string — Last name. Only present when `type` is `natural_person`.
    - `name` string, required — Given name of a natural person, or business name of a legal entity.
    - `parent_id` string, nullable, required — Identifier of the parent shareholder when nested. `null` for root shareholders.
    - `percentage` number, required — Participation percentage held by the shareholder.
    - `type` 'natural_person' | 'legal_entity', required — Type of shareholder. One of `natural_person` or `legal_entity`.
  - `source` 'api' | 'dashboard', required — Channel the onboarding is being completed through. One of `api` or `dashboard`.
  - `status` 'pending' | 'in_progress' | 'submitted' | 'approved' | 'rejected' | 'cancelled', required — Current status of the onboarding. One of `pending`, `in_progress`, `submitted`, `approved`, `rejected` or `cancelled`.
  - `submittable` boolean, required — Whether the onboarding has every required field and document completed and can be submitted for review.
  - `submitted_at` string, date-time, nullable, required — ISO 8601 datetime, in UTC, of when the onboarding was submitted for review. `null` until it is submitted.

## Other responses

- `401` — Invalid or missing API key.
- `404` — The onboarding does not exist, or belongs to another organization or entity.
- `422` — Fintoc cannot submit the onboarding: a required field or document is missing, the onboarding has no legal representative, or the onboarding is no longer in progress.

---

[API](https://skmtc.net/fintoc/apis/fintoc-api.md) · [All operations](https://skmtc.net/fintoc/apis/fintoc-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/fintoc/fintoc-api/revisions/9dafa63688a3/schema)
