Search…
Capital Deposit
Allow company creation, including the initial deposit of funds, directly from your product and 100% online. It takes about 2 days (vs 2 weeks the old-fashioned way!)
Capital Deposit enables the registration of new companies, by providing an account and proof that the share capital has been wired by shareholders. Each shareholder opens a temporary account whose sole purpose is for depositing their share of capital.
Before reading this guide, it's important for you to understand the following concepts:
This feature is currently exclusive to France. Please contact [email protected] if you're interested in providing Capital Deposit in another European country.

Summary

In this guide, you will learn how to use the Capital Deposit feature. Here is a summary of the process:
  1. 1.
    Create the Capital Deposit case with all the necessary information
  2. 2.
    Upload the mandatory documents
  3. 3.
    The company legal representative creates a company account
  4. 4.
    All shareholders create an account
  5. 5.
    All shareholders deposit their share of capital on their account
  6. 6.
    The documents and capital are sent to a notary
  7. 7.
    Receive the capital deposit certificate via API
  8. 8.
    Upload the KBIS of the newly created company
  9. 9.
    Receive the full capital on the company account
Feel free to contact [email protected] if you have any questions about this new feature.

Create a capital deposit case

To create a Capital Deposit Case you must use the createCapitalDepositCase mutation with a project access token. This case will be updated when the process moves on to the next step. This mutation requires a lot of data grouped around multiple notions:
  • General information for Capital Deposit: this includes the basic information of a capital deposit case, including companyName and totalCapitalDepositAmount
  • Individual shareholders’ information:
    • Capital Deposit information: we will ask for individual shareholder information like birthDate, firstName, lastName, capitalDepositAmount and nationality
    • Onboarding information: if you want, you can prefill the shareholder's onboarding to save them time. Learn more about onboarding​
  • Company shareholders’ information:
    • Capital Deposit information: we will ask for company shareholder information like name and capitalDepositAmount
    • Onboarding information: if you want, you can prefill shareholder's onboarding. Learn more about onboarding​
  • Onboarding information of the company being created:
    • Onboarding information: if you want, you can prefill the onboarding of the company being to be created. Learn more about onboarding​
Request
Request variables
Response
1
mutation MyMutation($input: CreateCapitalDepositCaseInput!) {
2
createCapitalDepositCase(input: $input) {
3
... on CreateCapitalDepositCaseSuccessPayload {
4
capitalDepositCase {
5
companyName
6
id
7
companyOnboarding {
8
id
9
}
10
documents {
11
type
12
status
13
downloadUrl
14
id
15
uploadedAt
16
}
17
shareholders {
18
info {
19
... on IndividualShareholder {
20
__typename
21
firstName
22
lastName
23
}
24
... on CompanyShareholder {
25
__typename
26
name
27
}
28
}
29
status
30
id
31
onboarding {
32
id
33
}
34
documents {
35
type
36
status
37
downloadUrl
38
id
39
uploadedAt
40
}
41
}
42
}
43
}
44
}
45
}
46
​
Copied!
1
{
2
"input": {
3
"companyName": "New company",
4
"companyShareholders": {
5
"capitalDepositAmount": { "value": "500", "currency": "EUR" },
6
"name": "Shareholder - company",
7
"onboardingInfo": {
8
"individualUltimateBeneficialOwners": [
9
{
10
"type": "LegalRepresentative",
11
"birthCity": "Paris",
12
"birthCityPostalCode": "75000",
13
"birthCountryCode": "FRA",
14
"birthDate": "1980/10/10",
15
"direct": false,
16
"firstName": "John",
17
"lastName": "Doe",
18
"totalCapitalPercentage": 51
19
},{
20
"type": "HasCapital",
21
"birthCity": "Paris",
22
"birthCityPostalCode": "75000",
23
"birthCountryCode": "FRA",
24
"birthDate": "1970/10/10",
25
"indirect": true,
26
"firstName": "Jeanne",
27
"lastName": "Doe",
28
"totalCapitalPercentage": 26
29
}
30
],
31
"accountName": "Shareholder - company / capital deposit",
32
"businessActivity": "AdministrativeServices",
33
"businessActivityDescription": "Business description for compliance purposes",
34
"companyType": "Company",
35
"email": "[email protected]",
36
"isRegistered": false,
37
"language": "fr",
38
"monthlyPaymentVolume": "Between10000And50000",
39
"name": "Shareholder - company",
40
"residencyAddress": {
41
"addressLine1": "test",
42
"city": "Paris",
43
"country": "FRA",
44
"postalCode": "75000"
45
}
46
}
47
},
48
"individualShareholders": {
49
"firstName": "Jean",
50
"lastName": "Dupond",
51
"birthDate": "1980/10/10",
52
"nationality": "FRA",
53
"capitalDepositAmount": { "value": "1000", "currency": "EUR" },
54
"onboardingInfo": {
55
"email": "[email protected]",
56
"language":"fr",
57
"employmentStatus": "Employee",
58
"monthlyIncome": "LessThan500",
59
"residencyAddress": {
60
"addressLine1": "1 Rue de la Paix",
61
"city": "Paris",
62
"country": "FRA",
63
"postalCode": "75002"
64
}
65
}
66
},
67
"totalCapitalDepositAmount": { "value": "1500", "currency": "EUR" },
68
"onboardingCapitalDepositCompany": {
69
"individualUltimateBeneficialOwners": [
70
{
71
"type": "HasCapital",
72
"birthCity": "Paris",
73
"birthCityPostalCode": "75000",
74
"birthCountryCode": "FRA",
75
"firstName": "Jean",
76
"lastName": "Dupond",
77
"birthDate": "1980/10/10",
78
"direct": true,
79
"totalCapitalPercentage": 66
80
},{
81
"type": "HasCapital",
82
"birthCity": "Paris",
83
"birthCityPostalCode": "75000",
84
"birthCountryCode": "FRA",
85
"birthDate": "1980/10/10",
86
"direct": false,
87
"firstName": "John",
88
"lastName": "Doe",
89
"direct": false,
90
"indirect": true,
91
"totalCapitalPercentage": 33
92
}
93
],
94
"accountName": "New company",
95
"businessActivity": "AdministrativeServices",
96
"businessActivityDescription": "Description of the new company activity",
97
"companyType": "Company",
98
"email": "[email protected]",
99
"isRegistered": false,
100
"language":"fr",
101
"monthlyPaymentVolume": "Between10000And50000",
102
"name": "New company",
103
"residencyAddress": {
104
"addressLine1": "test",
105
"city": "Paris",
106
"country": "FRA",
107
"postalCode": "75000"
108
}
109
}
110
}
111
}
Copied!
1
{
2
"data": {
3
"createCapitalDepositCase": {
4
"capitalDepositCase": {
5
"companyName": "New company",
6
"id": "ecd7ea57-d3b8-45eb-9334-baaa15e15043",
7
"companyOnboarding": {
8
"id": "318848cb-d919-4e13-98d5-3567f3e09044"
9
},
10
"documents": [
11
{
12
"type": "ArticlesOfIncorporation",
13
"status": "Pending",
14
"downloadUrl": null,
15
"id": "f89588c6-9998-41c0-8324-20b5b253bdd9",
16
"uploadedAt": null
17
},
18
{
19
"type": "CompanyLeaseAgreement",
20
"status": "Pending",
21
"downloadUrl": null,
22
"id": "4398fe73-731f-45cd-a29c-2eeabe72f93c",
23
"uploadedAt": null
24
},
25
{
26
"type": "PowerOfAttorney",
27
"status": "Pending",
28
"downloadUrl": null,
29
"id": "e9b62b0c-2f10-4a83-a596-9330f5daf340",
30
"uploadedAt": null
31
},
32
{
33
"type": "CapitalShareDepositCertificate",
34
"status": "Pending",
35
"downloadUrl": null,
36
"id": "43b1d0b3-a304-404f-9d13-0df9a569a241",
37
"uploadedAt": null
38
},
39
{
40
"type": "RegisterExtract",
41
"status": "Pending",
42
"downloadUrl": null,
43
"id": "583e06e1-f169-482e-bb00-17fdf2ea4622",
44
"uploadedAt": null
45
}
46
],
47
"shareholders": [
48
{
49
"info": {
50
"__typename": "IndividualShareholder",
51
"firstName": "Jean",
52
"lastName": "Dupond"
53
},
54
"status": "PendingOnboarding",
55
"id": "087a4d6f-68aa-4b04-a8cf-dd7456f4c602",
56
"onboarding": {
57
"id": "c2f49e4f-3dfd-4fe6-9fe2-98d2f5a67240"
58
},
59
"documents": [
60
{
61
"type": "ProofOfIndividualAddress",
62
"status": "Pending",
63
"downloadUrl": null,
64
"id": "d048a096-4ce6-4ede-bc3a-c7eab4a07797",
65
"uploadedAt": null
66
},
67
{
68
"type": "ProofOfIdentity",
69
"status": "Pending",
70
"downloadUrl": null,
71
"id": "81c4004a-5f6c-4635-a3a7-8bbcf3db0bc1",
72
"uploadedAt": null
73
}
74
]
75
},
76
{
77
"info": {
78
"__typename": "CompanyShareholder",
79
"name": "Shareholder - company"
80
},
81
"status": "PendingOnboarding",
82
"id": "13e3be45-c90f-441f-b61d-12db583dee7d",
83
"onboarding": {
84
"id": "147c4d76-2652-4940-aed0-da50d1212820"
85
},
86
"documents": [
87
{
88
"type": "RegisterExtract",
89
"status": "Pending",
90
"downloadUrl": null,
91
"id": "a0f9d7c1-0b2a-42e7-9fd8-fca34a667ea8",
92
"uploadedAt": null
93
},
94
{
95
"type": "ArticlesOfIncorporation",
96
"status": "Pending",
97
"downloadUrl": null,
98
"id": "01118d10-32f1-4561-9686-ede668d47642",
99
"uploadedAt": null
100
},
101
{
102
"type": "CorporateIncomeTaxReturn",
103
"status": "Pending",
104
"downloadUrl": null,
105
"id": "64ee6193-52a5-45d4-9f87-ed98a56cd73e",
106
"uploadedAt": null
107
},
108
{
109
"type": "ProofOfIdentity",
110
"status": "Pending",
111
"downloadUrl": null,
112
"id": "ea106f2a-e6bb-4a20-9092-b9b2fcbd7bc1",
113
"uploadedAt": null
114
}
115
]
116
}
117
]
118
}
119
}
120
}
121
}
Copied!
Once the capitalDepositCase is created, you can use the CapitalDepositCaseId to query it anytime you want. By doing that, you’ll notice that there are multiple documents created at different levels.
To process the capital deposit, we need documents regarding:
  • the shareholders:
    • individual shareholders:
      • ProofOfIndividualAddress*: upload the user's proof of address
      • ProofOfIdentity: you do not need to upload this, since we collect it automatically when the user logs in. You'll be able to download the proof of identity yourself once it's been verified by our compliance team.
    • company shareholders :
      • RegisterExtract*: upload the company's KBIS
      • ArticlesOfIncorporation*: upload the company's status
      • CorporateIncomeTaxReturn: upload the company's latest tax statement
      • ProofOfIdentity: you do not need to upload this, since we collect it automatically when the user logs in. You'll be able to download the proof of identity yourself once it's been verified by our compliance team.
  • and the capital deposit case:
    • ArticlesOfIncorporation*: upload the draft status of the company being created
    • CompanyLeaseAgreement*: upload proof of where the company will be located
    • PowerOfAttorney*: upload a mandate by the representative that's performing capital deposit via Swan (we will give you a template)
NB: documents marked with an * are required for the CapitalDepositCase to be processed. Additional documents might be requested.
Request
Response
1
query MyQuery {
2
capitalDepositCase(id: "ecd7ea57-d3b8-45eb-9334-baaa15e15043")
3
{
4
companyName
5
id
6
companyOnboarding {
7
id
8
}
9
documents {
10
type
11
status
12
downloadUrl
13
id
14
uploadedAt
15
}
16
shareholders {
17
info {
18
... on IndividualShareholder {
19
__typename
20
firstName
21
lastName
22
}
23
... on CompanyShareholder {
24
__typename
25
name
26
}
27
}
28
status
29
id
30
onboarding {
31
id
32
}
33
documents {
34
type
35
status
36
downloadUrl
37
id
38
uploadedAt
39
}
40
}
41
}
42
}
43
44
​
Copied!
1
{
2
"data": {
3
"capitalDepositCase": {
4
"companyName": "New company",
5
"id": "ecd7ea57-d3b8-45eb-9334-baaa15e15043",
6
"companyOnboarding": {
7
"id": "318848cb-d919-4e13-98d5-3567f3e09044"
8
},
9
"documents": [
10
{
11
"type": "ArticlesOfIncorporation",
12
"status": "Pending",
13
"downloadUrl": null,
14
"id": "f89588c6-9998-41c0-8324-20b5b253bdd9",
15
"uploadedAt": null
16
},
17
{
18
"type": "RegisterExtract",
19
"status": "Pending",
20
"downloadUrl": null,
21
"id": "583e06e1-f169-482e-bb00-17fdf2ea4622",
22
"uploadedAt": null
23
},
24
{
25
"type": "CompanyLeaseAgreement",
26
"status": "Pending",
27
"downloadUrl": null,
28
"id": "4398fe73-731f-45cd-a29c-2eeabe72f93c",
29
"uploadedAt": null
30
},
31
{
32
"type": "PowerOfAttorney",
33
"status": "Pending",
34
"downloadUrl": null,
35
"id": "e9b62b0c-2f10-4a83-a596-9330f5daf340",
36
"uploadedAt": null
37
},
38
{
39
"type": "CapitalShareDepositCertificate",
40
"status": "Pending",
41
"downloadUrl": null,
42
"id": "43b1d0b3-a304-404f-9d13-0df9a569a241",
43
"uploadedAt": null
44
}
45
],
46
"shareholders": [
47
{
48
"info": {
49
"__typename": "CompanyShareholder",
50
"name": "Shareholder - company"
51
},
52
"status": "PendingOnboarding",
53
"id": "13e3be45-c90f-441f-b61d-12db583dee7d",
54
"onboarding": {
55
"id": "147c4d76-2652-4940-aed0-da50d1212820"
56
},
57
"documents": [
58
{
59
"type": "ArticlesOfIncorporation",
60
"status": "Pending",
61
"downloadUrl": null,
62
"id": "01118d10-32f1-4561-9686-ede668d47642",
63
"uploadedAt": null
64
},
65
{
66
"type": "RegisterExtract",
67
"status": "Pending",
68
"downloadUrl": null,
69
"id": "a0f9d7c1-0b2a-42e7-9fd8-fca34a667ea8",
70
"uploadedAt": null
71
},
72
{
73
"type": "CorporateIncomeTaxReturn",
74
"status": "Pending",
75
"downloadUrl": null,
76
"id": "64ee6193-52a5-45d4-9f87-ed98a56cd73e",
77
"uploadedAt": null
78
},
79
{
80
"type": "ProofOfIdentity",
81
"status": "Pending",
82
"downloadUrl": null,
83
"id": "ea106f2a-e6bb-4a20-9092-b9b2fcbd7bc1",
84
"uploadedAt": null
85
}
86
]
87
},
88
{
89
"info": {
90
"__typename": "IndividualShareholder",
91
"firstName": "Jean",
92
"lastName": "Dupond"
93
},
94
"status": "PendingOnboarding",
95
"id": "087a4d6f-68aa-4b04-a8cf-dd7456f4c602",
96
"onboarding": {
97
"id": "c2f49e4f-3dfd-4fe6-9fe2-98d2f5a67240"
98
},
99
"documents": [
100
{
101
"type": "ProofOfIndividualAddress",
102
"status": "Pending",
103
"downloadUrl": null,
104
"id": "d048a096-4ce6-4ede-bc3a-c7eab4a07797",
105
"uploadedAt": null
106
},
107
{
108
"type": "ProofOfIdentity",
109
"status": "Pending",
110
"downloadUrl": null,
111
"id": "81c4004a-5f6c-4635-a3a7-8bbcf3db0bc1",
112
"uploadedAt": null
113
}
114
]
115
}
116
]
117
}
118
}
119
}
Copied!

Upload documents using the uploadUrl

For each document you need to upload, you will have to call the generateCapitalDepositDocumentUploadUrl mutation.
Request
Response
1
mutation MyMutation {
2
generateCapitalDepositDocumentUploadUrl(
3
input: {
4
documentId: "{{YOUR_DOCUMENT_ID}}"
5
capitalDepositCaseId: "{{YOUR_CAPITALDEPOSITCASE_ID}}"
6
filename: "{{FILENAME}}"
7
}
8
) {
9
... on GenerateCapitalDepositDocumentUploadUrlSuccessPayload {
10
uploadUrl
11
}
12
}
13
}
14
​
Copied!
1
{
2
"data": {
3
"generateCapitalDepositDocumentUploadUrl": {
4
"uploadUrl": "https://s3.eu-west-1.amazonaws.com/swan-capital-deposit-prod-sandbox/capital-deposit-case/7d30e093-047c-48d3-8061-36278df62699/ARTICLES_OF_INCORPORATION/d000bb98-6d96-4c16-8956-5ae391cb73d7.pdf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIAT2CLYLGNTBFYK37G%2F20220119%2Feu-west-1%2Fs3%2Faws4_request&X-Amz-Date=20220119T150553Z&X-Amz-Expires=7200&X-Amz-Security-Token=FwoGZXIvYXdzEOn%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaDC6%2FneN%2Fb9Vh9xWhtCKoBIths9JWaj69046T1k2nxeIgBjKKTEfXxyFhKkcW4XKEo%2FLAxh%2F3nF62vd5Z%2F3dWx7mXyWrRwSrSqiiJghglf9SyJKS545Yqj7vWdfdABRHSBvZxQX%2BK9NqZIRUAsB%2FwR%2BMpaCIRdibPQ8YIlEY8FLqbbtxoRjCs4XWHeS5fpck2HVC3GjCfQkXU4eeA5wSnjk3u7W8yE8uLz%2B%2BGhMcU%2FWbLqo8m0nFM30NTmtF4ERSWVoIbyroZlo4mahMZrvrxDtRqB%2FC60BDoKQYwdq%2B9nuKJ5o4cw2CHCUCWwaq9Y8ZdN5HMLmtDsNzWFVhssdzVTX1Y08GrQRCmblCf2zxGqRMvSNQn1ofjHCHsfV1i1yE9uWkKpLv%2BOVBbYJgAeGU6MEJn9wMtETCsZ2wbM8d3RKrkRZciSnH8Yp43x05RVcU%2BaaHv%2FvHMvZSJLwm%2FjWNd4rQxPmppTwJ%2F5N%2BajdRMVuGWjaaEX1f10NxDM4DQvg2h5ZuMIw1%2F6cM0grYgLre%2Ff67YkT0uXlz503Hm0VPRErKXvLhXwbxl84eAfHgzzu%2FWo1CL7P3JmwboQsU995xxvMJ8QMf59loPKFbEiLiZgqykRpIpj6bPo09dapFEUKlDNSKXQErBYWDPWgXomnNeh%2BL6xe%2BJXY3BNNJAOfksxRPjA7wO2fhi%2Fd08b7ALVEZXToV%2F0bup0EDRGIC0ts2wzxI68CLj6UKC0odzHDTUal2%2FahA3vJMIdii30aCPBjIrYN1Bsfas65ee1lO1f5QKe9K4zaNGNfpzURukCwjoEV9fGXGm%2BZDYQgnCOA%3D%3D&X-Amz-Signature=62dcaa9fdb4d8fbe6b31049138cb5d128a97bfcf621dc99ad88afd7859b9c626&X-Amz-SignedHeaders=host"
5
}
6
}
7
}
Copied!
This provides you with an uploadUrl. You then need to do an HTTP PUT request on the URL with the header, Content-Type: multipart/form-data. You can use this curl command to try the upload url.
Request
1
curl --upload-file my-file https://my-presigned-url
Copied!
If you want to change the uploaded document, just go through the same process. Depending on which step of the CapitalDepositCase process you're at, you may no longer be able to modify a document. For example, if your case has already been sent to the notary, you'll no longer be able to modify the documents provided.

Use onboardings - for the company being created, and for its shareholders

When creating a capital deposit case, you create one onboarding per shareholder and one onboarding for the company being created. Those onboardings can be used with our no-code interface or with the finalizeOnboarding mutation. This mutation requires a User Access Token therefore you must ask the user to go through the oAuth process.
What we recommend is that when those onboardings are created, you communicate to the shareholders an oAuth link, asking them to verify their identities. When they are redirected at the end of the oAuth process, you can use their token to finalize the onboarding. Learn how to entice your user to verify their identity​
Request
Response
1
mutation MyMutation {
2
finalizeOnboarding(
3
input: { onboardingId: "{{YOUR_ONBOARDING_ID}}" }
4
) {
5
... on FinalizeOnboardingSuccessPayload {
6
__typename
7
onboarding {
8
id
9
accountHolder {
10
accounts {
11
edges {
12
node {
13
id
14
}
15
}
16
}
17
id
18
}
19
}
20
}
21
}
22
}
23
​
Copied!
1
{
2
"data": {
3
"finalizeOnboarding": {
4
"__typename": "FinalizeOnboardingSuccessPayload",
5
"onboarding": {
6
"id": "{{YOUR_ONBOARDING_ID}}",
7
"accountHolder": {
8
"accounts": {
9
"edges": [
10
{
11
"node": {
12
"id": "{{YOUR_ACCOUNT_ID}}"
13
}
14
}
15
]
16
}
17
}
18
}
19
}
20
}
21
}
Copied!
Once the onboardings are finalized, and the users have verified their identity, our compliance department will process the onboardings and the users will be able to wire their share of capital to the temporary Swan accounts opened in their names.
In Sandbox, you must simulate the verification process, by using our event simulator. Learn more​

Make deposits

In Live, shareholders just have to make a payment from another of their own bank accounts towards their temporary Swan account, using its IBAN.
In Sandbox you must use our Event Simulator, just check the “Receive an incoming transfer” tab. Enter the account's IBAN and the amount of the deposit.

Send the case to the notary

In Live, once the deposits have been made and the case is validated by our compliance department, all the documents and deposits are sent to the notary.
In Sandbox, you must simulate the validation of our compliance department by clicking on "Validate" from our Capital Deposit Dashboard. For more information on accessing the capital deposit dashboard, just write us at [email protected]

Receive the certificate from the notary

In Live, 24h-48h after the case has been sent, the certificate will be available via API (and in the Capital Deposit Dashboard) with the CapitalShareDepositCertificate document type.
In Sandbox, you must access our Capital Deposit Dashboard and upload the document to trigger the status switch.

Upload the KBIS

To upload the KBIS you just need to follow the same steps as “Upload document and uploadUrl” but for the RegisterExtract document type.

Receive the capital on the company account

In Live, 24h-48h after the KBIS was uploaded, you will receive the full capital on the company account.
In Sandbox you must use our Event Simulator, more specifically the “Receive an incoming transfer”.
​
That's it! Once the money has been wired to the company account, the Capital Deposit Case is finished and the company will be able to use all our features.