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

# Company creation

> Open an account for a company which needs to be created (with capital deposit)

***

# What makes Qonto’s onboarding special?

Setting up a company can often feel overwhelming, with all the paperwork, regulations, and red tape involved. But with Qonto, we make the process fast and hassle-free. We handle the complex tasks like K-deposit, Know Your Customer (KYC), and Know Your Business (KYB), so your customers can quickly open a company account — sometimes in as little as 10 minutes!

We’ve streamlined the process so your customers don’t have to worry about all the usual paperwork, and instead, can focus on what matters most: running their business.

Our Onboarding flow is:

<ul>
  <li>**⚡️ fast**: We’ve designed the onboarding process to be as quick and simple as possible. We aim to approve registrations within one business day, giving your customers immediate access to Qonto’s features.</li>
  <li>**🧘 hassle-free**: We leverage all the information you provide, ensuring your customers don’t need to re-enter existing details—saving time and effort.</li>
</ul>

<br />

# The Onboarding flow

## Step-by-step guide

### On your side

<Steps>
  <Step title="Initiate the registration">
    Create a registration by calling the [Create a registration](/api-reference/onboarding-api/endpoints/registrations/create-a-registration) endpoint.

    <Warning>
      Don't redirect your customer to Qonto yet, you need to upload documents first if you want to trigger the [seamless flow](/get-started/onboarding-api/flows/company-creation#seamless-flow-cf-the-video).
    </Warning>
  </Step>

  <Step title="Upload documents">
    To provide a smooth onboarding experience to your customer, we strongly recommend you to upload the documents listed below before redirecting your customer to Qonto.\
    To do so, you need to call the [Create a file](/api-reference/onboarding-api/endpoints/files/create-a-file) endpoint for each document to upload:

    <ul>
      <li>for the organization: **by-laws** (mandatory) and proof of address (optional);</li>
      <li>for each stakeholder: **proof of identity** (mandatory) and residence permit (optional).</li>
    </ul>

    <Info>
      If you don't upload the documents, your customer will have to do it (i.e. the [manual flow](/get-started/onboarding-api/flows/company-creation#manual-flow) will be triggered).
    </Info>

    <Warning>
      Be sure to upload the correct documents for both the organization and all the stakeholders to keep the process moving forward.
    </Warning>
  </Step>

  <Step title="Redirect your customer to Qonto">
    You need to redirect your customer to Qonto so they can complete the registration flow either by:

    <ul>
      <li>(our recommendation 💜) getting the `redirect_url` associated to the registration (you can retrieve it from the successful response of the Step 1 or by calling the [Retrieve a registration](/api-reference/onboarding-api/endpoints/registrations/retrieve-a-registration) endpoint);</li>
      <li>calling the [Send the redirection link to the owner](/api-reference/onboarding-api/endpoints/registrations/send-the-redirection-link-to-the-owner) endpoint.</li>
    </ul>
  </Step>
</Steps>

### On your customer side

<Tip>
  [Register a webhook endpoint](/api-reference/onboarding-api/webhooks) in order to receive an event at each step of the onboarding flow.
</Tip>

<video controls src="https://qonto.com/register/videos/company-creation.mp4" />

<Steps>
  <Step title="Registration flow">
    Your customer needs to complete one of the 2 following flows (depending on the missing information) before accessing Qonto features:

    <AccordionGroup>
      <Accordion title="Seamless flow (cf. the video 👆)">
        When your customers’ data is complete (including optional fields), we kick off the **Seamless flow**. This means that once they’re redirected to Qonto’s platform, we’ll prefill all company and stakeholder information, allowing them to skip entering repetitive details. It’s a faster, smoother experience—just the way we like it!
        However, if any necessary information is missing or doesn’t match what we have on file, we’ll shift to the **Manual flow**.
      </Accordion>

      <Accordion title="Manual flow">
        In the **Manual Flow**, your customer will need to review and update any missing or incorrect details. It may take a few extra steps, but we keep it as quick and easy as possible. The goal is to ensure that everything is accurate while keeping the onboarding process efficient.
      </Accordion>
    </AccordionGroup>

    <Info>
      The [Retrieve a registration](/api-reference/onboarding-api/endpoints/registrations/retrieve-a-registration) endpoint exposes which flow the customer followed.
    </Info>
  </Step>

  <Step title="Identity verification">
    Your customer needs to verify their identity. It will allow our team to review and activate their account.
  </Step>

  <Step title="Capital deposit">
    Your customer needs to:

    <ol>
      <li>deposit the funds of the company;</li>
      <li>sign the deposit certificate request;</li>
      <li>upload the company KBIS (you can also upload the KBIS on behalf of your customer when receiving a `registrations.capital_deposit_certificate_signed` event).</li>
    </ol>
  </Step>
</Steps>

<Check>
  Your customer has now an active Qonto account!
</Check>

## Sequence diagrams

To make it even easier to understand, we’ve provided visual sequence diagrams that outline the onboarding flow.

### On your side

```mermaid theme={null}
sequenceDiagram
  participant Customer
  participant Partner
  participant Onboarding API

  Customer->>Partner: I want to use Qonto
  Note over Partner, Onboarding API: 1. Initiate the registration
  Partner->>+Onboarding API: Create a registration
  Onboarding API-->>-Partner: Created - 201: Registration payload
  rect rgba(239, 233, 254, 0.8)
    Onboarding API--)Partner: webhook: registrations.pending
  end

  Note over Partner, Onboarding API: 2. Upload documents
  opt

    Partner->>+Onboarding API: Upload company-by-laws (mandatory document)
    Onboarding API-->>-Partner: Created - 201

    Partner->>+Onboarding API: Upload company-proof-of-address (optional document)
    Onboarding API-->>-Partner: Created - 201

    loop For each stakeholder

    Partner->>+Onboarding API: Upload stakeholder-proof-of-identity (mandatory document)
    Onboarding API-->>-Partner: Created - 201

    Partner->>+Onboarding API: Upload stakeholder-residence-permit (optional document)
    Onboarding API-->>-Partner: Created - 201

    end

    end

  Note over Partner, Customer: 3. Redirect your customer to Qonto
  Partner->>Customer: Redirect your customer to Qonto
```

### On your customer side

<Warning>
  You will receive webhook events only for registrations with `seamless` flow type, since only these users will be onboarded through the fast track flow.
</Warning>

```mermaid theme={null}
sequenceDiagram
    participant Customer
    participant Qonto
    participant Partner
    participant Notary


    Note over Customer, Qonto: 1. Registration flow
    alt
    Customer->>Qonto: Seamless flow (triggered only if the mandatory documents have been uploaded by the partner)
    else
    Customer->>Qonto: Manual flow
    end

    Note over Customer, Qonto: 2. Identity verification
    Customer->>Qonto: Submit KYC info

    Note over Customer, Notary: 3. Capital deposit
    rect rgba(239, 233, 254, 0.8)
        Qonto--)Partner: webhook: registrations.capital_deposit_activated
    end

    Qonto-->>+Customer: <please deposit your funds>
    Customer->>-Qonto: Deposit all funds
    Qonto-->>+Customer: <please sign your deposit certificate request>
    Customer->>-Qonto: <signs deposit certificate request>

    rect rgba(239, 233, 254, 0.8)
        Qonto--)Partner: webhook: registrations.capital_deposit_request_signed
    end

    Qonto-->>+Notary: <please sign this deposit certificate>
    Notary-->>-Qonto: <here is the signed deposit certificate>

    rect rgba(239, 233, 254, 0.8)
        Qonto--)Partner: webhook: registrations.capital_deposit_certificate_signed
    end

    alt KBIS upload (either by the partner, either by the customer)
        Partner->>+Qonto: Upload company-kbis file (Endpoint: Create a file)
        Qonto-->>-Partner: Created - 201
    else
      Customer->>+Qonto: Uploads kbis
      Qonto-->>-Customer: <kbis uploaded: wait for activation>
    end
```
