Individual API Reference
Complete List of Individual Online Onboarding — API Endpoints
Provision a new individual account.
If the account’s profile status is awaiting_information
, start the onboarding flow.
Resume a previously started, in-progress onboarding.
Retrieve a list of individual and/or corporate accounts.
Fetch details for a single account by its unique ID.
Retrieve a specific document for an account by name/identifier.
NoteWhen passing the token in the header for Online Onboarding, make sure to use "Bearer" with a capital B. Using Authorization: bearer (with a lowercase "b") will result in a 403 Forbidden error.
ImportantAs a reminder, the following uniqueness criteria must be respected when creating Accounts:
- Individuals: first name, last name, date of birth, country of birth
- Legal Entities: name, registration number (company only), registration country, registration date
- Legal Representatives: same rules as for individuals
Please ensure that real and accurate data is always provided. Random or placeholder data must not be used, even if the information might later be updated during online onboarding.
1. Create an individual Account
account
(subtype: individual
)
Creates a new individual Lemonway account for onboarding a new user.
If the individual already has a Lemonway account but requires full onboarding,
use POST /onboardings/individual
and provide the user’s unique accountId
.
Request Body:
An account
object containing an individual
field with the individual’s details.
1.1 Parameters for Creating an Account
Create Individual Account
YYYY-MM-DD
).1.2 Payload and Response
InformationIn the Response a unique Id is created. This Id corresponds to the accountId field in the endpoint POST
/onboardings/individual
.
Example Payload
{
"individual": {
"firstName": "Jonathan",
"lastName": "Lamary",
"birthDate": "1973-06-01",
"email": "[email protected]",
"address": { "country": "FR" },
"birthCountry": "FR",
"nationalities": ["FR", "GB"]
},
"profile": "DONOR",
"walletId": "6768992"
}
Example Response
{
"id": "ee928147-d51e-4f22-a26c-d2c2a2sebd8d", <-- Lemonway autogenerated account identifier, string, uuid
"status": "CREATED", <-- "global" status for the account, string
"profileStatus": "AWAITING_INFORMATION" <-- profile showing the progress of the onboarding process, string
}
Expected Result - When you submit the following example JSON payload, the API will:
- Validates you’ve provided all required fields.
- Creates an account record of type “individual.”
- Associate a new wallet entry using the walletId.
- Returns a populated account object (including a server-assigned Id) so you can pass it into subsequent onboarding calls.
2. Trigger an Onboarding
onboardings
(subtype: individual
)
If the new account’s profile status is awaiting_information
, begin the Online Onboarding flow
by calling this endpoint.
Provide the previously created account’s accountId
and (optionally) a redirectUrl
.
Other data are optional to start—missing details are collected from the end-user during onboarding.
NoteSome end-user personal information may be pre-filled when they open onboarding page for the first time, notably the name, email and contact details. We use the initial end-user data you sent us to inject into online onboarding page.
2.1 Parameters for Triggering an Onboarding
Trigger an Individual Onboarding
YYYY-MM-DD
no | yes | close
.POLITICAL_LEADER, POLITICAL_REPRESENTATIVE, JUDICIAL_OFFICIAL, FINANCIAL_AUDITOR, BANK_EXECUTIVE, DIPLOMATIC_REPRESENTATIVE, MILITARY_LEADER, ADMINISTRATIVE_OFFICIAL, ORGANIZATIONAL_OFFICIAL, OTHER
.YYYY-MM-DD
YYYY-MM-DD
. If unknown, not required.PARTNER, CHILD, PARENT
.FIRST_TIER ... SIXTH_TIER
mapping to ranges:
0–10K €, >10K–25K €, >25K–50K €, >50K–75K €, >75K–100K €, >100K €.
FIRST_TIER ... SEVENTH_TIER
mapping to ranges:
0–50K €, 50K–100K €, 100K–150K €, 150K–200K €, 200K–500K €, 500K–1M €, >1M €.
INCOME, REAL_ESTATE_PROPERTIES, SAVINGS_ACCUMULATED_OVER_SEVERAL_YEARS, DONATION_OR_INHERITANCE, SALE_OF_A_STOCK_PORTFOLIO, TRANSFER_OF_COMPANY_SHARES, WINNING_FROM_GAMES_OR_CONTESTS, SURRENDER_OF_A_CAPITALIZATION_CONTRACT_OR_LIFE_INSURANCE_POLICY, SALE_OF_MOVABLE_ASSETS_GOODWILL_INTELLECTUAL_PROPERTY_RIGHTS, SALE_OF_CURRENCY_GOLD_OR_CRYPTOCURRENCIES, FINANCIAL_INVESTMENTS, OTHER_OPERATIONS
.
OTHER_OPERATIONS
.LEGAL_AGE_AND_CAPACITY, PROTECTED_ADULT, MINOR_EMANCIPATED, MINOR_NOT_EMANCIPATED
.
SAFEGUARDING_OF_JUSTICE, CURATORSHIP, GUARDIANSHIP, OTHER
.
OTHER
.Example Payload
{
"accountId": "b3b5a4e0-6a2e-4a0e-9e4d-4c6b0c5f7a21",
"redirectUrl": "https://www.lemonway.com/",
"individual": {
"firstName": "Giulia",
"lastName": "Romanelli",
"birthDate": "1990-05-14",
"email": "[email protected]",
"birthCity": "Torino",
"birthCountry": "IT",
"phoneNumber": "+33675869559",
"nationalities": [
"IT"
],
"taxCode": "235 6376", // Italian Residents only
"address": {
"street": "Via Roma 12",
"complementaryStreetInfo": "bis",
"city": "Torino",
"postalCode": "10121",
"country": "IT",
"province": "AL"
},
"politicalExposure": {
"position": "OTHER",
"otherPosition": "Member of Parliament",
"startDate": "2015-01-01",
"endDate": "2017-12-31",
"status": "YES"
},
"financialSituation": {
"annualRevenue": "50K € - 75K €",
"estimatedWealth": "100K € - 150K €",
"hasIFItax": true // French Residents only
},
"legalCapacity": { "type": "EmancipatedAdult" },
"professionalSituation": { "activity": "69" }
},
"project": {
"type": "Crowdfunding",
"beneficiary": {
"firstName": "Luca",
"lastName": "Rossi",
"birthDate": "1992-09-21"
}
}
}
2.2 Parameters for Project Specific (Project Holder Profile)
Wedding, Farewell, New born, Birthday, Charity, Other
WEDDING
.YYYY-MM-DD
.Example Payload — Project Variants
WEDDING — BRIDE_GROOM
"project": {
"type": "WEDDING",
"weddingRelation": "BRIDE_GROOM",
"weddingPartnerFirstName": "Hector",
"weddingPartnerLastName": "EMPEREUR",
"weddingPartnerBirthDate": "1996-01-09"
}
WEDDING — OTHER (with beneficiary)
"project": {
"type": "WEDDING",
"weddingRelation": "OTHER",
"beneficiary": {
"firstName": "John",
"lastName": "Doe",
"birthDate": "1951-01-09"
}
}
FAREWELL / BIRTHDAY / NEW_BORN
"project": {
"type": "FAREWELL",
"beneficiary": {
"firstName": "John",
"lastName": "Doe",
"birthDate": "1951-01-09"
}
}
// Replace "FAREWELL" with "BIRTHDAY" or "NEW_BORN" as needed
CHARITY / OTHER
"project": {
"type": "CHARITY",
"description": "lorem ipsum",
"website": "loremipsum.com"
}
// For "OTHER", keep "type": "OTHER" and include relevant description/website if applicable
2.3 Parameters for Visa Applicant Account
Student or Job Seeker
STUDENT
.YYYY-MM-DD
.YYYY-MM-DD
.Example Payload — Student and Job Seeker
Payload — Student
{ "financialSupport": { "visaApplicantRole": "STUDENT", "isPayer": false, "payerRelationship": { "link": "MOTHER_FATHER" } } }
Payload — Job Seeker (isPayer)
{ "financialSupport": { "visaApplicantRole": "JOB_SEEKER", "isPayer": true, "financialSituation": { "annualRevenue": "FIRST_TIER", "estimatedWealth": "FIRST_TIER", "originOfFunds": { "sources": [ "SAVINGS_ACCUMULATED_OVER_SEVERAL_YEARS" ], "other": "test" } } } }
Example Payload — Individual Payer (Visa Account Application)
Payload
{ "individual": { "firstName": "Claire", "lastName": "Dubois", "birthDate": "1995-06-01", "email": "[email protected]", "address": { "country": "FR" }, "birthCountry": "FR", "nationalities": [ "FR" ] }, "activity": "VISA_ACCOUNT_APPLICATION", "profile": "PAYER", "walletId": "d5a3b2f1-78a4-4c7f-9e9b-98f0e4a0fef3" }
InformationFor the Payer profile (isPayer), only a
POST /accounts/individual
is necessary. A Payer is a USER profile that does not require an Online Onboarding.
2.4 Responses
InformationIn the Response a unique id is created. This Id corresponds to the onboardingId required in the path pareameters of the endpoint GET
/onboardings/{onboardingId}/resume
. This required if a user decides to not complete the onboarding in one session.
Expected Result for all use cases - When you submit the following example JSON payload, the API will:
- Identify the account and link this KYC process to it.
- All mandatory personal, contact, and address data for identity checks.
- Assess AML/PEP risk via political exposure, financial profile, and source of funds.
- Verify legal eligibility (age, capacity).
- Understand the user’s business intent (FAREWELL project) and downstream beneficiary.
- Redirect the user back to your specified redirectUrl once all steps succeed (or fail).
Example Response
{
"id": "cc8c6dc8-cb1e-4edc-aae1-3652cc7b5228", <-- Lemonway autogenerated Onboarding identifier, string, uuid
"url": "https://onboarding.sandbox.lemonway.com/d6795600-e957-457f-83fc-dd1c03775c08/welcome" <-- url to redirect the end-user to, string
}
NoteThe response will be displayed in the same format as a the standard response for these specific payloads.
3. Resume an in-process Onboarding
onboardings
resume
Description: This endpoint is used when an end-user saves their progress and returns to the onboarding page at a later time.
Request Parameter: onboardingId
must be provided in the path to identify the onboarding session.
3.1 Response
Example Response
Response JSON
{ "url": "https://onboarding.sandbox.lemonway.com/e6795620-e917-452f-83fc-dd1c03775c08/welcome" // url to redirect the end-user to, string }
4. Manage Onboarding - Active Accounts
/accounts
Resource: accounts
Retrieve a list of all accounts associated with your organization.
This example returns 50 of the most recently created active accounts:
GET /accounts?$filter=status eq 'active'&$size=50&$orderBy=createdAt&$sort=desc
4.1 Parameters to view all active Accounts
Parameters
field eq 'value'
.
$sort
.$skipToken
is provided.createdAt
, type
, id
,
externalAccountId
, status
, profiles
.
$orderBy
.4.2 Response
Example Response (Paginated list)
{ "data": [ { "id": "fc2096f6-8bcb-4d58-b041-1516b1f013ff", "onboardingId": "758b1ca1-c066-458b-af15-7c724ce3bcc1", "identity": { "firstName": "Rachael", "lastName": "Gerlach", "email": "[email protected]", "birthDate": "2019-06-01", "birthCountry": "FR", "residenceCountry": "FR", "nationalities": ["FR"] }, "status": "CREATED", "profiles": [ { "id": "70f848da-7693-44ea-8d35-2c6d68dcb531", "type": "PROJECT_HOLDER", "status": { "type": "INFORMATION_COLLECTION_IN_PROGRESS", "subStatus": null }, "wallets": [{ "id": "098e1f05-c68b-4fcc-b6ce-ddd870d33d10", "internalId": "", "type": "PAYMENT_ACCOUNT" }] } ], "type": "INDIVIDUAL", "updatedAt": "2025-05-12T15:05:28.324Z", "createdAt": "2025-05-12T15:05:10.370Z" }, { "id": "691cc8b5-9b4f-4580-b659-f39aa5e08669", "onboardingId": "ea754721-786d-40cb-8d2d-78d310f5dadf", "identity": { "name": "Gorczany Group", "type": "ASSOCIATION", "registrationNumber": "788totam", "registrationCountry": "FR", "registrationDate": "2023-03-21" }, "status": "CREATED", "profiles": [ { "id": "9276794f-9813-445c-ae76-079383da089c", "type": "PROJECT_HOLDER", "status": { "type": "IDENTITY_VERIFICATION_IN_PROGRESS", "subStatus": null }, "wallets": [{ "id": "436b3cc8-e2c4-44d6-aac3-da69b7100f52", "internalId": "", "type": "PAYMENT_ACCOUNT" }] } ], "type": "LEGAL_ENTITY", "updatedAt": "2025-05-12T18:13:18.583Z", "createdAt": "2025-05-12T18:12:37.605Z" }, { "id": "79b3d214-2a4d-4483-9ab1-47a2907a5c20", "onboardingId": null, "identity": { "firstName": "Florent", "lastName": "Valmy", "email": "[email protected]", "birthDate": "2002-03-09", "birthCountry": "FR", "residenceCountry": "FR", "nationalities": ["FR"] }, "status": "ACCEPTED", "profiles": [ { "id": "a16bab26-d39d-4f1f-9017-b2e11dee41a7", "type": "DONOR", "status": { "type": "ACCEPTED", "subStatus": null }, "wallets": [{ "id": "325423243", "internalId": 568071, "type": "TECHNICAL" }] } ], "type": "INDIVIDUAL", "updatedAt": "2025-05-12T14:36:27.552Z", "createdAt": "2025-05-12T14:36:07.535Z" }, { "id": "4d44607a-8ecd-4e07-91b0-3328c9007f87", "onboardingId": null, "identity": { "name": "Kassulke Group CORP", "type": "COMPANY", "registrationNumber": "49recusandae", "registrationCountry": "ES", "registrationDate": "2024-05-17" }, "status": "ACCEPTED", "profiles": [ { "id": "a409abf8-db79-4f59-9dd4-c19b39dcc374", "type": "PROJECT_HOLDER", "status": { "type": "ACCEPTED", "subStatus": null }, "wallets": [{ "id": "878c0ae2-bdc4-42a7-a671-38cf24c8a2e2", "internalId": 568070, "type": "PAYMENT_ACCOUNT" }] } ], "type": "LEGAL_ENTITY", "updatedAt": "2025-05-12T09:51:52.895Z", "createdAt": "2025-05-12T09:45:47.252Z" } ], "nextLink": "/accounts/?&$skipToken=1747042500653&$skipDirection=next", "prevLink": "" }
5. Manage Onboarding - Retrieve Account by id
/accounts/{id}
Resource: account
Retrieve detailed information for a specific account using its unique identifier.
id
must be provided in the path to identify the account.
5.1 Response
Example — Single Account Response
{ "id": "f9137a42-20ca-40b0-8492-07b4eb45907b", "onboardingId": "39e940a5-357f-4863-a549-7605183a4d44", "identity": { "firstName": "Kellie", "lastName": "Hoeger", "email": "[email protected]", "birthDate": "1956-06-01", "birthCountry": "FR", "residenceCountry": "IT", "nationalities": ["FR"] }, "status": "ACCEPTED", "profiles": [ { "id": "a7289388-c9ed-4d81-b493-c434a9914250", "type": "PROJECT_HOLDER", "status": { "type": "ACCEPTED", "subStatus": null }, "wallets": [ { "id": "599797b6-33d8-4d0a-bdf8-f811c2846727", "internalId": 568068, "type": "PAYMENT_ACCOUNT" } ] } ], "information": { "firstName": "Kellie", "lastName": "Hoeger", "birthDate": "1956-06-01T00:00:00.000Z", "birthCity": "Lake Vern", "birthCountry": "FR", "nationalities": ["FR"], "email": "[email protected]", "phone": "+33675869559", "city": "South Leslie", "country": "IT", "street": "44450 Quigley Underpass", "streetComplementaryInfo": "bis", "postalCode": "101", "pep": { "startDate": "2025-03-03T00:00:00.000Z", "endDate": "2025-04-30T00:00:00.000Z", "position": "MILITARY_LEADER" }, "legalCapacity": { "type": "OF_CAPACITY" }, "professionalSituation": { "activity": "69" }, "financialSituation": { "annualRevenue": "FIRST_TIER", "estimatedWealth": "FIRST_TIER", "isIFITax": true }, "projects": [ { "projectType": "FAREWELL", "beneficiaryFirstName": "Laurel", "beneficiaryLastName": "Sanford", "beneficiaryBirthDate": "1951-01-09" } ] }, "type": "INDIVIDUAL", "documents": [ { "status": "VALIDATION_NOT_REQUIRED", "type": "ONBOARDING_QUESTIONNAIRE", "name": "403b2929-0451-4ce3-96bc-a3cdd439875a.pdf", "downloadUrl": "https://account.dev.lemonway.com/accounts/f9137a42-20ca-40b0-8492-07b4eb45907b/documents/403b2929-0451-4ce3-96bc-a3cdd439875a.pdf" }, { "status": "PENDING_VERIFICATION", "type": "PASSPORT", "name": "feb9a94a-317b-4530-bdb8-8ac6363ee291.pdf", "downloadUrl": "https://account.dev.lemonway.com/accounts/f9137a42-20ca-40b0-8492-07b4eb45907b/documents/feb9a94a-317b-4530-bdb8-8ac6363ee291.pdf" }, { "status": "VALIDATION_NOT_REQUIRED", "type": "APPLICATION_FORM", "name": "fb52b3e2-44cd-4187-8790-134347ba44d8.pdf", "downloadUrl": "https://account.dev.lemonway.com/accounts/f9137a42-20ca-40b0-8492-07b4eb45907b/documents/fb52b3e2-44cd-4187-8790-134347ba44d8.pdf" }, { "status": "VALIDATION_NOT_REQUIRED", "type": "SIGNED_DOCUMENT", "name": "28e5b59b-51ec-4e08-963b-1d4a9f2285aa.pdf", "downloadUrl": "https://account.dev.lemonway.com/accounts/f9137a42-20ca-40b0-8492-07b4eb45907b/documents/28e5b59b-51ec-4e08-963b-1d4a9f2285aa.pdf" }, { "status": "VALIDATION_NOT_REQUIRED", "type": "MOTION_CAPTURE", "name": "2e83dcf1-7698-472c-bac5-0bdfe182f254.pdf", "downloadUrl": "https://account.dev.lemonway.com/accounts/f9137a42-20ca-40b0-8492-07b4eb45907b/documents/2e83dcf1-7698-472c-bac5-0bdfe182f254.pdf" } ], "createdAt": "2025-05-07T16:16:53.879Z" }
InformationWhen you call POST
/accounts/individual
, the API returns a unique id for the new account in the response. Use this id in place of{id}
in later requests (e.g.,/accounts/{id}
).
InformationWhen account details are retrieved using GET
/accounts/{id}
, only the basic information submitted during account creation (POST/accounts
) is returned if the end-user is still in the onboarding process. The full data set, including any submitted documents, becomes accessible once the onboarding is complete—meaning the account status is either ACCEPTED or DENIED.
6. Get Documents
/accounts/{accountId}/documents/{documentName}
Resource: documents
Retrieve a document that was uploaded for a given account, using the account’s UUID and a document name or logical identifier. Only valid if the user has been fully onboarded and accepted.
6.1 Parameters to retreieve documents uploaded
Parameters — Get Account Document
DocumentType
).
Document Types (type enum values)
Document Types (type enum values)
6.2 HTTPs Responses:
Status Code | Description | Content-Type |
---|---|---|
200 | Document retrieved successfully | application/octet-stream |
400 | Invalid parameters | — |
401 | Unauthorized (missing or invalid API key or JWT token) | — |
403 | Forbidden | — |
404 | Document not found | — |
500 | Internal server error | — |