Skip to main content

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.
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:
  1. Create Associated People — Add directors, UBOs, and authorised signatories
  2. Create Application — Submit the business details and link associated people
  3. Update Application (optional) — Modify details before submission
  4. Upload Application Documents (optional) — Provide business documentation
  5. Upload Associated People Documents (optional) — Provide identity documents
  6. 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

RoleDescriptionWhen required
APPLICANTThe authorised person applying for the accountAlways required
DIRECTORA company directorRequired for companies with directors
ULTIMATE_BENEFICIAL_OWNERAny person with 25%+ ownershipAlways required, if Sole Trader set to 100%

Required fields by role

RoleRequired fields
APPLICANTFirst name, Last name, Date of birth, Nationalities, Residential address, Email address
DIRECTORFirst name, Last name, Date of birth
ULTIMATE_BENEFICIAL_OWNERFirst name, Last name, Date of birth, Nationalities, Residential address, Email address, Ownership percentage
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"],
      "address": {
        "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

Important: Although sole traders are individuals, they must use the business application flow, not type: 'INDIVIDUAL'.
Sole traders require:
  1. One associated person record for the sole trader themselves
  2. Link this person to the application with both roles:
    • APPLICANT (with jobTitle)
    • ULTIMATE_BENEFICIAL_OWNER (with ownershipPercentage: 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:
ValueUK MarketEU MarketUS Market
SOLE_TRADERSole TraderSole ProprietorSole Proprietorship
PRIVATE_COMPANYPrivate Limited CompanyGmbH, SARL, BVLLC / S Corporation
PUBLIC_COMPANY_LISTEDPLC (Listed)AG / SA / NV (Listed)C Corporation (Listed)
PUBLIC_COMPANY_UNLISTEDPLC (Unlisted)AG / SA / NV (Unlisted)C Corporation (Unlisted)
PARTNERSHIPPartnership / LP / LLPSNC / KG / SCS / CVGP / LP / LLP
NON_PROFITNon Profit / FoundationNon Profit / Foundation501(c)(3) Nonprofit
SOCIAL_ENTERPRISECICSCIC / gGmbHBenefit Corporation, L3C
CHARITYCharityCharityCharity
TRUSTTrustTrustTrust
PENSIONSIPP / SSASLocal pension schemesIRA / 401(k)
FUNDFundFundFund

Required information

Market and incorporation

FieldRequiredDescription
marketYesUK, EU, or US
countryOfIncorporationYesISO 3166-1 country code
regionOfIncorporationConditionalRequired for Germany, France, US
typeYesBusiness type (see table above)
registeredNameYesLegal name of the company
registrationNumberConditionalRequired if registered
tradingNamesYesArray with at least one trading name
incorporationDateYesDate of incorporation

Business profile

FieldRequiredDescription
businessOverviewYesDescription of the business (1-1000 chars)
industryYesObject with main and sub industry codes
employeeCountYese.g., ONE_TO_TEN, ELEVEN_TO_FIFTY
phoneNumberYesBusiness phone number
websiteConditionalRequired if business has a website
businessPromotionDescriptionConditionalRequired if no website to explain how the business acquires customers and promotes itself

Addresses

Business applications need at least one address:
Address typeWhen required
REGISTEREDAlways required
TRADINGRequired 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 typeRequired field
APPLICANTjobTitle
DIRECTORNone
ULTIMATE_BENEFICIAL_OWNERownershipPercentage (0-100)
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.
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 modelDocument upload requirements
Managed by EqualsDocument upload via API is optional. A portal link will be generated for your customer to complete a guided ID verification journey.
HybridUpload documents via API to support the verification process. This should include a Proof of Identity and Proof of Address, unless otherwise specified.
DelegatedUpload certified identity documents via API.
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.
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
  • ownershipPercentage required for UBOs
  • jobTitle required 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

  1. Create associated people first: Always create associated people before the application
  2. Verify data: Use GET endpoints to verify data before submission
  3. Handle errors: Check validation error responses for specific field issues
  4. Test with DRAFT status: Applications start with status: 'DRAFT' — use this to test
  5. Understand your KYC model: Know which verification model applies to your integration
  6. Reference the API spec: For complete field specifications, refer to the API Reference documentation

Next steps

After submitting your application, you’ll receive webhook notifications as it progresses through review. See Onboarding webhooks to learn which events to expect and in what order. For complete API specifications, refer to the API Reference documentation.