diff --git a/.vscode/settings.json b/.vscode/settings.json index 5373d6298e1..2db575a9f9e 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,3 +1,4 @@ { - "mdx.server.enable": false + "mdx.server.enable": false, + "snyk.advanced.autoSelectOrganization": true } \ No newline at end of file diff --git a/docs/topics/capital-deposits/france/guide-create-case.mdx b/docs/topics/capital-deposits/france/guide-create-case.mdx index 8f3bdf6e7ab..a462012316b 100644 --- a/docs/topics/capital-deposits/france/guide-create-case.mdx +++ b/docs/topics/capital-deposits/france/guide-create-case.mdx @@ -18,191 +18,290 @@ Refer to the [France guide](./guide.mdx) for the whole process. 1. `companyName` 1. `companyShareholders` 1. `individualShareholders` - 1. `totalCapitalDepositAmount` 1. `onboardingCapitalDepositCompany` 1. `companyName`: Enter the name of the future company (line 4). -1. `companyShareholders`: Add required information about company shareholders (starts on line 5). - 1. Add the `onboardingInfo` object to prefill onboarding information for `individualUltimateBeneficialOwners` (starts on line 8). - 1. Add the `accountCountry` value (mandatory) and select the country code of the account's local IBAN (line 48). - 1. You can also prefill information about the company (starts on line 33). -1. `individualShareholders`: Add required information about individual shareholders (starts on line 50). -1. `totalCapitalDepositAmount`: Add the combined capital deposit amount from all company and individual shareholders (line 69). -1. `onboardingCapitalDepositCompany`: Add the company onboarding object to start creating the future company account (starts on line 70). - - Note that `individualUltimateBeneficialOwners` and company information should match the information entered in step 3. -1. Add the `CreateCapitalDepositCaseSuccessPayload` (starts on line 107). Consider adding several pieces of important information, such as: - 1. `companyOnboarding` > `id`. - 1. `documents` > `type`, `statusInfo` > `status`, and `id`. - 1. `shareholders` information, including `onboarding` > `id`. -1. Add rejections in case the mutation doesn't succeed (start on line 161). +1. `companyShareholders`: Add required information about company shareholders (starts on line 6). + 1. Add the `capitalDepositAmount` the company shareholder deposits (starts on line 7). + 1. Add the `onboardingInfo` object to prefill the company shareholder's onboarding information (starts on line 13). + 1. Add the `accountCountry` value (mandatory) and select the country code of the account's local IBAN (line 14). + 1. Prefill information about the company shareholder's `individualUltimateBeneficialOwners` (starts on line 53) and `representatives` (starts on line 78). +1. `individualShareholders`: Add required information about individual shareholders (starts on line 101), including their `capitalDepositAmount` (starts on line 107) and `onboardingInfo` (starts on line 112). +1. `onboardingCapitalDepositCompany`: Add the company onboarding object to start creating the future company account (starts on line 137). + :::caution Match your shareholder data + Every person listed in `individualUltimateBeneficialOwners` (starts on line 174) and `representatives` (starts on line 221) must match the shareholder information entered in steps 3 and 4. + ::: +1. Add the `CreateCapitalDepositCaseSuccessPayload` (starts on line 244). Consider adding several pieces of important information, such as: + 1. `companyOnboarding` > `id` (starts on line 248). + 1. `statusInfo` > `status` (starts on line 251). + 1. `totalCapitalDepositAmount` (starts on line 258). +1. Add rejections in case the mutation doesn't succeed (start on line 264). ## Mutation {#mutation} -Open in API Explorer +Open in API Explorer -```graphql {4-5,8,33,48,51,68,71-72,109,163} showLineNumbers -mutation createCase { +```graphql {4,6-7,13-14,53,78,101,107,112,137,174,221,244,248,251,258,264} showLineNumbers +mutation CreateCapitalDeposit { createCapitalDepositCase( input: { companyName: "MyBrand" + companyShareholders: { - capitalDepositAmount: { value: "10000", currency: "EUR" } - name: "Company shareholder" + capitalDepositAmount: { + value: "500" + currency: "EUR" + } + name: "MyBrand Company Shareholder" + onboardingInfo: { + accountCountry: FRA + accountName: "MyBrand Company Shareholder Capital Deposit Account" + acquisitionChannel: OutboundAccountingFirm + businessActivity: BusinessAndRetail + businessActivityDescription: "Establishment that serves traditional French cuisine." + companyType: Company + email: "companyshareholder@mybrand.fr" + isRegistered: true + language: "fr" + monthlyPaymentVolume: Between50000And100000 + name: "MyBrand Company Shareholder" + registrationNumber: "853827103" + taxIdentificationNumber: "853827103" + tradeName: "MyBrand CS" + typeOfRepresentation: LegalRepresentative + vatNumber: "FR90853827103" + + oAuthRedirectParameters: { + redirectUrl: "https://www.mybrand.fr" + } + + residencyAddress: { + addressLine1: "91 rue du Faubourg Saint-Honoré" + addressLine2: "Batiment A" + country: "FRA" + city: "Paris" + postalCode: "75008" + state: "Ile de France" + } + + legalRepresentativePersonalAddress: { + addressLine1: "10 rue Duris" + addressLine2: "Batiment A" + country: "FRA" + city: "Paris" + postalCode: "75020" + state: "Ile de France" + } + individualUltimateBeneficialOwners: [ { - type: LegalRepresentative - birthCity: "Paris" - birthCityPostalCode: "75000" - birthCountryCode: "FRA" - birthDate: "1988-02-25" - direct: false firstName: "Jules" lastName: "Fleury" - totalCapitalPercentage: 51 - } - { - type: HasCapital + birthDate: "1990-06-01" birthCity: "Paris" - birthCityPostalCode: "75000" + birthCityPostalCode: "75007" birthCountryCode: "FRA" - birthDate: "1988-02-25" - direct: false - firstName: "Malika" - lastName: "Ngoma" - totalCapitalPercentage: 26 + gender: Male + direct: true + indirect: false + totalCapitalPercentage: 100 + type: HasCapital + taxIdentificationNumber: "1221112" + residencyAddress: { + addressLine1: "10 rue Duris" + addressLine2: "Batiment A" + country: "FRA" + city: "Paris" + postalCode: "75020" + state: "Ile de France" + } } ] - accountName: "MyBrand company account" - businessActivity: Arts - businessActivityDescription: "Description required" - companyType: Company - email: "bonjour@mybrand.fr" - isRegistered: false - language: "fr" - monthlyPaymentVolume: Between50000And100000 - name: "Company shareholder" - residencyAddress: { - addressLine1: "123 avenue de Paris" - city: "Paris" - country: "FRA" - postalCode: "75000" + + representatives: { + type: Individual + roles: "President" + firstName: "Jules" + lastName: "Fleury" + birthDate: "1990-06-01" + birthCity: "Paris" + birthCityPostalCode: "75007" + birthCountryCode: "FRA" + gender: Male + nationality: "FRA" + residencyAddress: { + addressLine1: "10 rue Duris" + addressLine2: "Batiment A" + country: "FRA" + city: "Paris" + postalCode: "75020" + state: "Ile de France" + } } - accountCountry: FRA } } + individualShareholders: { firstName: "Henri" lastName: "Dupont" birthDate: "1988-02-25" nationality: "FRA" - capitalDepositAmount: { value: "500", currency: "EUR" } + + capitalDepositAmount: { + value: "500" + currency: "EUR" + } + onboardingInfo: { + accountCountry: FRA + accountName: "Henri Dupont Capital Deposit Account" + acquisitionChannel: OutboundAccountingFirm email: "henri.dupont@mybrand.fr" + employmentStatus: Entrepreneur language: "fr" - employmentStatus: Employee - monthlyIncome: Between1500And3000 + monthlyIncome: MoreThan4500 + taxIdentificationNumber: "1122211" + + oAuthRedirectParameters: { + redirectUrl: "https://www.mybrand.fr" + } + residencyAddress: { - addressLine1: "1 rue de la Paix" - city: "Paris" + addressLine1: "24 Rue Saint-Ambroise" + addressLine2: "Batiment A" country: "FRA" - postalCode: "75000" + city: "Paris" + postalCode: "75011" + state: "Ile de France" } - accountCountry: FRA } } - totalCapitalDepositAmount: { value: "10500", currency: "EUR" } + onboardingCapitalDepositCompany: { + accountCountry: FRA + accountName: "MyBrand Account" + acquisitionChannel: OutboundAccountingFirm + businessActivity: BusinessAndRetail + businessActivityDescription: "Establishment that serves traditional French cuisine." + companyType: Company + email: "bonjour@mybrand.fr" + isRegistered: false + language: "fr" + monthlyPaymentVolume: Between50000And100000 + name: "MyBrand" + tradeName: "MB" + typeOfRepresentation: LegalRepresentative + + oAuthRedirectParameters: { + redirectUrl: "https://www.mybrand.fr" + } + + residencyAddress: { + addressLine1: "168 Rue Saint-Maur" + addressLine2: "Batiment A" + country: "FRA" + city: "Paris" + postalCode: "75011" + state: "Ile de France" + } + + legalRepresentativePersonalAddress: { + addressLine1: "10 rue Duris" + addressLine2: "Batiment A" + country: "FRA" + city: "Paris" + postalCode: "75020" + state: "Ile de France" + } + individualUltimateBeneficialOwners: [ { - type: LegalRepresentative + firstName: "Henri" + lastName: "Dupont" + birthDate: "1988-02-25" birthCity: "Paris" - birthCityPostalCode: "75000" + birthCityPostalCode: "75008" birthCountryCode: "FRA" - birthDate: "1988-02-25" - direct: false - firstName: "Jules" - lastName: "Fleury" - totalCapitalPercentage: 51 + gender: Male + direct: true + indirect: false + totalCapitalPercentage: 50 + type: HasCapital + taxIdentificationNumber: "1122211" + residencyAddress: { + addressLine1: "24 Rue Saint-Ambroise" + addressLine2: "Batiment A" + country: "FRA" + city: "Paris" + postalCode: "75011" + state: "Ile de France" + } } { - type: HasCapital + firstName: "Jules" + lastName: "Fleury" + birthDate: "1990-06-01" birthCity: "Paris" - birthCityPostalCode: "75000" + birthCityPostalCode: "75007" birthCountryCode: "FRA" - birthDate: "1988-02-25" + gender: Male direct: false - firstName: "Malika" - lastName: "Ngoma" - totalCapitalPercentage: 26 + indirect: true + totalCapitalPercentage: 50 + type: HasCapital + taxIdentificationNumber: "1221112" + residencyAddress: { + addressLine1: "10 rue Duris" + addressLine2: "Batiment A" + country: "FRA" + city: "Paris" + postalCode: "75020" + state: "Ile de France" + } } ] - accountName: "MyBrand company account" - accountCountry: FRA - businessActivity: Arts - businessActivityDescription: "Description required" - companyType: Company - email: "bonjour@mybrand.fr" - isRegistered: false - language: "fr" - monthlyPaymentVolume: Between10000And50000 + + representatives: { + type: Individual + roles: "President" + firstName: "Jules" + lastName: "Fleury" + birthDate: "1990-06-01" + birthCity: "Paris" + birthCityPostalCode: "75007" + birthCountryCode: "FRA" + gender: Male + nationality: "FRA" + residencyAddress: { + addressLine1: "10 rue Duris" + addressLine2: "Batiment A" + country: "FRA" + city: "Paris" + postalCode: "75020" + state: "Ile de France" + } + } } } ) { ... on CreateCapitalDepositCaseSuccessPayload { + __typename capitalDepositCase { - companyName id companyOnboarding { id - createdAt - info { - type - } - statusInfo { - status - } - } - documents { - type - statusInfo { - status - } - } - shareholders { - info { - ... on IndividualShareholder { - __typename - firstName - lastName - } - ... on CompanyShareholder { - __typename - name - } - } - id - onboarding { - id - statusInfo { - status - } - } - documents { - type - id - statusInfo { - status - } - } } statusInfo { status + ... on CapitalDepositCaseWaitingForInitialRequirementsStatusInfo { + __typename + status + } } totalCapitalDepositAmount { currency value } - updatedAt } } ... on ForbiddenRejection { @@ -213,18 +312,18 @@ mutation createCase { __typename message } - ... on InternalErrorRejection { - __typename - message - } ... on ValidationRejection { __typename - message fields { code message path } + message + } + ... on InternalErrorRejection { + __typename + message } } } @@ -233,15 +332,16 @@ mutation createCase { ## Payload {#payload} The options selected in the mutation example produce the following success payload. + +Onboardings start with the information you prefilled. +They're completed later in the [capital deposit process](./guide.mdx). + Note several pieces of key information: 1. Your capital deposit case `id` (line 6). 1. Your company onboarding `id` (line 8). -1. Information about required documents (starts on line 14). -1. Information about shareholders (starts on line 31), including: - - Onboarding `id` (individual: line 38, company: line 60) - - Document `id` (individual: line 45, company: line 65) -1. Status of the entire capital deposit case (line 82). +1. Status of the entire capital deposit case (lines 10-13). +1. Total capital deposit amount, which the API calculates from all shareholders' amounts (lines 14-17). :::info Queries This information can help you complete your capital deposit. @@ -249,98 +349,26 @@ This information can help you complete your capital deposit. If needed, use the **`capitalDepositCase` query** to get information about an individual case, or the **`capitalDepositCases` query** for information about all ongoing capital deposit cases. ::: -```graphql {6,8,14,31,38,45,60,65,82-84} showLineNumbers +```graphql {6,8,10-13,14-17} showLineNumbers { "data": { "createCapitalDepositCase": { + "__typename": "CreateCapitalDepositCaseSuccessPayload", "capitalDepositCase": { - "companyName": "MyBrand", "id": "$CAPITAL_DEPOSIT_CASE_ID", "companyOnboarding": { - "id": "$COMPANY_ONBOARDING_ID", - "createdAt": "2024-07-18T14:12:40.633Z", - "info": { - "type": "Company" - } + "id": "$COMPANY_ONBOARDING_ID" }, - "documents": [ - { - "type": "ArticlesOfIncorporation" - }, - { - "type": "CompanyLeaseAgreement" - }, - { - "type": "PowerOfAttorney" - }, - { - "type": "CapitalShareDepositCertificate" - }, - { - "type": "RegisterExtract" - } - ], - "shareholders": [ - { - "info": { - "__typename": "IndividualShareholder", - "firstName": "Henri", - "lastName": "Dupont" - }, - "id": "$INDIVIDUAL_SHAREHOLDER_ID", - "onboarding": { - "id": "$INDIVIDUAL_SHAREHOLDER_ONBOARDING_ID" - }, - "documents": [ - { - "type": "ProofOfIndividualAddress", - "id": "$INDIVIDUAL_SHAREHOLDER_DOCUMENT_ID" - }, - { - "type": "ProofOfIdentity", - "id": "$INDIVIDUAL_SHAREHOLDER_DOCUMENT_ID" - } - ] - }, - { - "info": { - "__typename": "CompanyShareholder", - "name": "Company shareholder" - }, - "id": "$COMPANY_SHAREHOLDER_ID", - "onboarding": { - "id": "$COMPANY_SHAREHOLDER_ONBOARDING_ID" - }, - "documents": [ - { - "type": "RegisterExtract", - "id": "$COMPANY_SHAREHOLDER_DOCUMENT_ID" - }, - { - "type": "ArticlesOfIncorporation", - "id": "$COMPANY_SHAREHOLDER_DOCUMENT_ID" - }, - { - "type": "CorporateIncomeTaxReturn", - "id": "$COMPANY_SHAREHOLDER_DOCUMENT_ID" - }, - { - "type": "ProofOfIdentity", - "id": "$COMPANY_SHAREHOLDER_DOCUMENT_ID" - } - ] - } - ], "statusInfo": { - "status": "WaitingForInitialRequirements" + "status": "WaitingForInitialRequirements", + "__typename": "CapitalDepositCaseWaitingForInitialRequirementsStatusInfo" }, "totalCapitalDepositAmount": { "currency": "EUR", - "value": "10500" - }, - "updatedAt": "2024-07-18T14:12:40.672Z" + "value": "1000" + } } } } } -``` \ No newline at end of file +```