Create a Business Account
This guide walks you through creating a business account with Equals Money using the Onboarding API. Business accounts are for companies, sole traders, partnerships, charities, and other business entities.
For complete API specifications, field definitions, and request/response schemas, refer to the API Reference documentation.
info
Looking for Personal accounts? If you're onboarding an individual for a personal account, see the Create a Personal Account guide instead.
Prerequisites
Before using the Onboarding API, ensure you have:
- A valid API key for authentication
- Information about the business you want to onboard
- Details of associated people (directors, UBOs, authorised signatory)
- Understanding of which KYC model applies to your integration
Workflow Overview
The business account onboarding flow:
- Create Associated People - Add directors, UBOs, and authorised signatories
- Create Application - Submit the business details and link associated people
- Update Application (optional) - Modify details before submission
- Upload Application Documents (optional) - Provide business documentation
- Upload Associated People Documents (optional) - Provide identity documents
- Submit Application - Finalise and trigger verification
Understanding the Onboarding Process
Why separate Create and Submit steps?
The Onboarding API separates application creation from submission. This allows you to:
- Gradually collect customer information over multiple sessions
- Amend application details before final submission
- Validate data incrementally
- Upload supporting documents at your own pace
Verification checks are only triggered upon submission, not when the application is created.
Step 1: Create Associated People
Endpoint: POST /v2/applications/associated-people
For business applications, you must create associated people before creating the application. These are the individuals connected to the business.
Types of Associated People
| Role | Description | When Required |
|---|---|---|
| APPLICANT | The authorised person applying for the account | Always required |
| DIRECTOR | A company director | Required for companies with directors |
| ULTIMATE_BENEFICIAL_OWNER | Any person with 25%+ ownership | Always required, if Sole Trader set to 100% |
Required Fields by Role
| Role | Required Fields |
|---|---|
| APPLICANT | First name, Last name, Date of birth, Nationalities, Residential address, Email address |
| DIRECTOR | First name, Last name, Date of birth |
| ULTIMATE_BENEFICIAL_OWNER | First name, Last name, Date of birth, Nationalities, Residential address, Email address, Ownership percentage |
warning
UBO Ownership Percentage: When collecting ownership percentage, always use the upper range. For example, if a person owns between 25-50%, report 50%.
Example Request
curl -X POST https://api.equalsmoney.com/v2/applications/associated-people \
-H "Authorization: ApiKey YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"firstName": "John",
"lastName": "Doe",
"dateOfBirth": "1990-01-01",
"emailAddress": "john.doe@example.com",
"nationalities": ["GB"],
"residentialAddress": {
"streetName": "High Street",
"buildingNumber": "10",
"postcode": "EC1A 1BB",
"city": "London",
"countryCode": "GB"
}
},
{
"firstName": "Jane",
"lastName": "Smith",
"dateOfBirth": "1985-05-15",
"emailAddress": "jane.smith@example.com",
"nationalities": ["GB"]
}
]'Response: Returns an array of created associated people with their IDs. Save these IDs to link them to your application in Step 2.
Sole Trader Requirements
warning
Important: Although sole traders are individuals, they must use the business application flow, not type: 'INDIVIDUAL'.
Sole traders require:
- One associated person record for the sole trader themselves
-
Link this person to the application with
both
roles:
-
APPLICANT(withjobTitle) -
ULTIMATE_BENEFICIAL_OWNER(withownershipPercentage: 100)
-
This is required because the sole trader is both the authorised signatory AND the sole owner of the business.
Example: Linking a Sole Trader
{
"associatedPeople": [
{
"associatedPersonId": "e9293471-5eb3-4dbc-916c-dbaf9e2deefd",
"associationType": "APPLICANT",
"jobTitle": "Owner"
},
{
"associatedPersonId": "e9293471-5eb3-4dbc-916c-dbaf9e2deefd",
"associationType": "ULTIMATE_BENEFICIAL_OWNER",
"ownershipPercentage": 100
}
]
}Step 2: Create Application
Endpoint: POST /v2/applications
This endpoint creates a business application.
Business Application Types
The type field determines what kind of business entity you're onboarding:
| Value | UK Market | EU Market | US Market |
|---|---|---|---|
| SOLE_TRADER | Sole Trader | Sole Proprietor | Sole Proprietorship |
| PRIVATE_COMPANY | Private Limited Company | GmbH, SARL, BV | LLC / S Corporation |
| PUBLIC_COMPANY_LISTED | PLC (Listed) | AG / SA / NV (Listed) | C Corporation (Listed) |
| PUBLIC_COMPANY_UNLISTED | PLC (Unlisted) | AG / SA / NV (Unlisted) | C Corporation (Unlisted) |
| PARTNERSHIP | Partnership / LP / LLP | SNC / KG / SCS / CV | GP / LP / LLP |
| NON_PROFIT | Non Profit / Foundation | Non Profit / Foundation | 501(c)(3) Nonprofit |
| SOCIAL_ENTERPRISE | CIC | SCIC / gGmbH | Benefit Corporation, L3C |
| CHARITY | Charity | Charity | Charity |
| TRUST | Trust | Trust | Trust |
| PENSION | SIPP / SSAS | Local pension schemes | IRA / 401(k) |
| FUND | Fund | Fund | Fund |
Required Information
Market and Incorporation
| Field | Required | Description |
|---|---|---|
market |
Yes | UK, EU, or US |
countryOfIncorporation |
Yes | ISO 3166-1 country code |
regionOfIncorporation |
Conditional | Required for Germany, France, US |
type |
Yes | Business type (see table above) |
registeredName |
Yes | Legal name of the company |
registrationNumber |
Conditional | Required if registered |
tradingNames |
Yes | Array with at least one trading name |
incorporationDate |
Yes | Date of incorporation |
Business Profile
| Field | Required | Description |
|---|---|---|
businessOverview |
Yes | Description of the business (1-1000 chars) |
industry |
Yes | Object with main and sub industry codes |
employeeCount |
Yes | e.g., ONE_TO_TEN, ELEVEN_TO_FIFTY |
phoneNumber |
Yes | Business phone number |
website |
Conditional | Required if business has a website |
businessPromotionDescription |
Conditional | Required if no website to explain how the business acquires customers and promotes itself |
Addresses
Business applications need at least one address:
| Address Type | When Required |
|---|---|
REGISTERED |
Always required |
TRADING |
Required if different from registered address |
You can include multiple trading addresses if the business operates from different locations.
Feature Configuration
The featureInformation object determines account capabilities.
If requesting PAYMENTS, provide paymentsInformation:
-
purposes,accountFundingSource,estimatedPaymentCount,estimatedPaymentVolume -
inboundCurrencies,outboundCurrencies -
receivingCountries,sendingCountries
If requesting CARDS, provide cardsInformation:
-
businessDisplayName(max 15 characters, appears on cards) -
purposes,estimatedAnnualSpend,numberOfCardsRequired -
cardsAreForEmployees,atmWithdrawalsRequired
Linking Associated People
The associatedPeople array links individuals from Step 1 to the application:
| Association Type | Required Field |
|---|---|
APPLICANT |
jobTitle |
DIRECTOR |
None |
ULTIMATE_BENEFICIAL_OWNER |
ownershipPercentage (0-100) |
info
Note: You can link the same person multiple times with different roles.
Example Request
curl -X POST https://api.equalsmoney.com/v2/applications \
-H "Authorization: ApiKey YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"market": "UK",
"countryOfIncorporation": "GB",
"type": "PRIVATE_COMPANY",
"registeredName": "Acme Ltd",
"registrationNumber": "12345678",
"tradingNames": ["Acme Trading"],
"businessOverview": "We provide software services to SMEs across the UK.",
"industry": {
"main": "INFORMATION-AND-COMMUNICATION",
"sub": "IT-AND-COMPUTER-SERVICES"
},
"employeeCount": "ELEVEN_TO_FIFTY",
"incorporationDate": "2020-01-01",
"phoneNumber": "+447911123456",
"website": "https://acme.example.com",
"featureInformation": {
"requestedFeatures": ["PAYMENTS", "CARDS"],
"cardsInformation": {
"businessDisplayName": "ACME",
"purposes": ["EMPLOYEE_INCENTIVES", "TRAVEL_EXPENSES_DOMESTIC"],
"estimatedAnnualSpend": "100001-250000",
"numberOfCardsRequired": "11-50",
"cardsAreForEmployees": true,
"atmWithdrawalsRequired": false
},
"paymentsInformation": {
"purposes": ["RECEIVING-PAYMENTS-FROM-CUSTOMERS-AND-PAYING-SUPPLIERS"],
"estimatedPaymentCount": "100-500",
"estimatedPaymentVolume": "100001-250000",
"inboundCurrencies": ["GBP", "EUR"],
"outboundCurrencies": ["GBP", "EUR"],
"receivingCountries": ["GB", "FR"],
"sendingCountries": ["GB", "DE"]
}
},
"addresses": [
{
"addressType": "REGISTERED",
"streetName": "Upper Thames Street",
"buildingNumber": "68",
"buildingName": "Vintners Place",
"postcode": "EC4V 3BJ",
"city": "London",
"countryCode": "GB"
}
],
"associatedPeople": [
{
"associatedPersonId": "e9293471-5eb3-4dbc-916c-dbaf9e2deefd",
"associationType": "APPLICANT",
"jobTitle": "Director"
},
{
"associatedPersonId": "a1234567-8b90-4cde-f012-3456789abcde",
"associationType": "DIRECTOR"
},
{
"associatedPersonId": "b2345678-9c01-4def-0123-456789abcdef",
"associationType": "ULTIMATE_BENEFICIAL_OWNER",
"ownershipPercentage": 75
}
]
}'Response: Returns the created application with an id and status: 'DRAFT'.
Step 3: Update Application (Optional)
Endpoint: PATCH /v2/applications/:applicationId
You can update an application before submitting it.
Validation rules:
- You cannot change the application type
- You cannot add personal-specific fields to a business application
- Must maintain at least one REGISTERED or TRADING address
Example Request
curl -X PATCH https://api.equalsmoney.com/v2/applications/{applicationId} \
-H "Authorization: ApiKey YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"registeredName": "Acme Ltd Updated",
"businessOverview": "Updated business description here."
}'Step 4: Upload Application Documents (Optional)
Endpoint: POST /v2/applications/:applicationId/documents
Upload documents to support the business verification process.
Request: Multipart form data with:
-
purpose- Document purpose (e.g.,'PROOF_OF_FORMATION','PROOF_OF_OWNERSHIP_STRUCTURE','OTHER') -
file- The document file (accepts media and document file types, maximum file size is 10MB)
Please refer to the KYC Pack for more information on documents we will expect to receive based on your company type.
warning
Note: Additional documents may be requested by the KybInformationRequest webhook after application submission.
Example Request
curl -X POST https://api.equalsmoney.com/v2/applications/{applicationId}/documents \
-H "Authorization: ApiKey YOUR_API_KEY" \
-F "purpose=PROOF_OF_FORMATION" \
-F "file=@certificate_of_incorporation.pdf"File requirements: Media and document file types accepted, maximum 10MB.
Step 5: Upload Associated People Documents (Optional)
Endpoint: POST /v2/applications/associated-people/:associatedPersonId/documents
Upload identity documents for associated people (directors, UBOs, applicants).
Request: Multipart form data with:
-
purpose- Document purpose (e.g.,'PROOF_OF_IDENTITY','PROOF_OF_ADDRESS','OTHER') -
file- The document file (accepts media and document file types, maximum file size is 10MB)
Document Upload Requirements by KYC Model
| KYC Model | Document Upload Requirements |
|---|---|
| Managed by Equals | Document upload via API is optional. A portal link will be generated for your customer to complete a guided ID verification journey. |
| Hybrid | Upload documents via API to support the verification process. This should include a Proof of Identity and Proof of Address, unless otherwise specified. |
| Delegated | Upload certified identity documents via API. |
warning
Note: Additional documents may be requested by the KybInformationRequest webhook after application submission.
Example Request
curl -X POST https://api.equalsmoney.com/v2/applications/associated-people/{associatedPersonId}/documents \
-H "Authorization: ApiKey YOUR_API_KEY" \
-F "purpose=PROOF_OF_IDENTITY" \
-F "file=@passport.pdf"Step 6: Submit Application
Endpoint: POST /v2/applications/:applicationId/submit
This finalises the application and submits it for review. Once submitted, the application status changes to 'SUBMITTED' and cannot be modified.
warning
Important: Verification checks are triggered at this point. For the Managed by Equals KYC model, associated people will receive instructions to complete their verification journey.
Example Request
curl -X POST https://api.equalsmoney.com/v2/applications/{applicationId}/submit \
-H "Authorization: ApiKey YOUR_API_KEY"Response: Returns the application with status: 'SUBMITTED'.
Validation Rules and Common Errors
Address Validation
Business applications must have at least one REGISTERED or TRADING address.
Associated People Validation
-
Must have at least one
APPLICANT - All UBOs with 25%+ ownership must be included
-
ownershipPercentagerequired for UBOs -
jobTitlerequired for APPLICANTs
Type Validation
You cannot add personal-specific fields to a business application.
Error: "Cannot update business application with personal-specific fields: ..."
Authentication Errors
Error: 401 Unauthorized
-
Verify your Authorization header uses:
Authorization: ApiKey YOUR_API_KEY - Check that your API key is valid
Best Practices
- Create associated people first : Always create associated people before the application
- Verify data : Use GET endpoints to verify data before submission
- Handle errors : Check validation error responses for specific field issues
-
Test with DRAFT status
: Applications start with
status: 'DRAFT'- use this to test - Understand your KYC model : Know which verification model applies to your integration
- Reference the API spec : For complete field specifications, refer to the API Reference documentation
Next Steps
For information about webhook events and application status updates, see the Webhooks Documentation.
For complete API specifications, refer to the API Reference documentation.