Create a Personal Account
This guide walks you through creating a personal account with Equals Money using the Onboarding API.
For complete API specifications, field definitions, and request/response schemas, refer to the API Reference documentation.
info
Looking for Business accounts? If you're onboarding a Sole Trader, Private company, or other business entity, see the Create a Business Account guide instead.
Prerequisites
Before using the Onboarding API, ensure you have:
- A valid API key for authentication
- Information about the person you want to onboard
- Confirmation of which KYC model applies to your integration from your implementation contact
Workflow Overview
- Create Application - Submit the individual's details
- Update Application (optional) - Modify details before submission
- Upload Documents (optional) - Provide supporting documentation
- Submit Application - Finalise and trigger verification
info
Note: Unlike business applications, personal applications do not require associated people. The individual applicant's details are captured within the application itself.
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 Application
Endpoint: POST /v2/applications
This endpoint creates a personal application for an individual.
Application Type and Market
Set the type to INDIVIDUAL to indicate this is a personal application. Specify the market where the individual will operate (UK, EU, or US).
Personal Details
Provide the individual's basic information:
| Field | Description | Format |
|---|---|---|
firstName |
Individual's first name | String |
lastName |
Individual's last name | String |
dob |
Date of birth | YYYY-MM-DD |
nationalities |
Array of nationalities | ISO country codes (e.g., ["GB"]) |
email |
Email address | String |
phoneNumber |
Phone number | International format (e.g., +447911123456) |
info
Note: Even if the person has a single nationality, provide it as an array with one element.
Residential Address
Personal applications require exactly one address with addressType set to RESIDENTIAL. This should be the individual's primary residential address.
| Field | Required | Description |
|---|---|---|
addressType |
Yes | Must be RESIDENTIAL |
streetName |
Yes | Street name |
buildingNumber |
Yes | Building/house number |
buildingName |
No | Building name (if applicable) |
postcode |
Yes | Postal code |
city |
Yes | City |
region |
No | Region/county (if applicable) |
countryCode |
Yes | ISO 3166-1 country code |
Feature Configuration
The featureInformation object determines what capabilities the account will have.
In requestedFeatures, specify an array containing PAYMENTS, CARDS, or both.
If requesting PAYMENTS:
Provide paymentsInformation with:
-
purposes- Array of payment purposes -
accountFundingSource- Source of account funds -
estimatedPaymentCount- Expected number of payments -
estimatedPaymentVolume- Expected payment volume range -
inboundCurrencies/outboundCurrencies- Currencies used -
receivingCountries/sendingCountries- Countries involved
If requesting CARDS:
Provide cardsInformation with:
-
purposes- Array of card usage purposes -
estimatedAnnualSpend- Expected annual spend range -
numberOfCardsRequired- Number of cards needed -
atmWithdrawalsRequired- Whether ATM access is needed
info
Note: For personal applications, omit businessDisplayName and cardsAreForEmployees - these are only for business accounts.
Example Request
curl -X POST https://api.equalsmoney.com/v2/applications \
-H "Authorization: ApiKey YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "INDIVIDUAL",
"market": "UK",
"firstName": "John",
"lastName": "Smith",
"dob": "1990-01-15",
"nationalities": ["GB"],
"email": "john.smith@example.com",
"identityDocumentNumber": "AB123456C",
"phoneNumber": "+447911123456",
"taxId": "GB123456789",
"featureInformation": {
"requestedFeatures": ["PAYMENTS", "CARDS"],
"cardsInformation": {
"purposes": ["TRAVEL_EXPENSES_DOMESTIC"],
"estimatedAnnualSpend": "10001-50000",
"numberOfCardsRequired": "0-10",
"atmWithdrawalsRequired": true
},
"paymentsInformation": {
"purposes": ["RECEIVING-PAYMENTS-FROM-CUSTOMERS"],
"estimatedPaymentCount": "20-50",
"estimatedPaymentVolume": "10001-50000",
"inboundCurrencies": ["GBP"],
"outboundCurrencies": ["GBP"],
"receivingCountries": ["GB"],
"sendingCountries": ["GB"]
}
},
"addresses": [
{
"addressType": "RESIDENTIAL",
"streetName": "Main Street",
"buildingNumber": "123",
"postcode": "SW1A 1AA",
"city": "London",
"countryCode": "GB"
}
]
}'Response: Returns the created application with an id and status: 'DRAFT'. Save the application ID for subsequent operations.
Step 2: Update Application (Optional)
Endpoint: PATCH /v2/applications/:applicationId
You can update an application before submitting it. This is useful for gradually collecting information or correcting errors.
Validation rules:
- You cannot change the application type
- Addresses must contain exactly one RESIDENTIAL address
- You cannot add business-specific fields to a personal application
Example Request
curl -X PATCH https://api.equalsmoney.com/v2/applications/{applicationId} \
-H "Authorization: ApiKey YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"phoneNumber": "+447911999888",
"featureInformation": {
"requestedFeatures": ["PAYMENTS"],
"paymentsInformation": {
"purposes": ["RECEIVING-PAYMENTS-FROM-CUSTOMERS"],
"estimatedPaymentCount": "50-100",
"estimatedPaymentVolume": "50001-100000",
"inboundCurrencies": ["GBP"],
"outboundCurrencies": ["GBP"],
"receivingCountries": ["GB"],
"sendingCountries": ["GB"]
}
}
}'Step 3: Upload Documents (Optional)
Endpoint: POST /v2/applications/:applicationId/documents
You can upload documents to support the verification process.
Document 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 KycInformationRequest webhook after application submission.
Document Upload Methods
- API Upload (covered in this guide)
- Customer Portal (coming soon) - End users receive a portal link with guided upload
- Internal Portal (coming soon) - For your team to upload on behalf of customers
info
Webhooks: Document-related events always trigger webhooks regardless of upload method.
Example Request
curl -X POST https://api.equalsmoney.com/v2/applications/{applicationId}/documents \
-H "Authorization: ApiKey YOUR_API_KEY" \
-F "purpose=PROOF_OF_IDENTITY" \
-F "file=@passport.pdf"Accepted purposes: PROOF_OF_IDENTITY, PROOF_OF_ADDRESS, OTHER
File requirements: Media and document file types accepted, maximum 10MB.
Step 4: 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, this is when Guided ID verification is initiated and your customer will receive instructions to complete their verification journey. This can either be sent via a webhook or an email direct to your customer, for more details please refer to the Webhooks documentation.
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
Personal applications must have exactly one address with addressType: 'RESIDENTIAL'.
Errors:
-
"Personal application must have exactly one address" -
"Personal application address must be of type RESIDENTIAL"
Type Validation
You cannot add business-specific fields to a personal application.
Error: "Cannot update personal application with business-specific fields: ..."
Market Validation
The market must be valid for your product.
Error: "The provided market is not valid for this product."
Authentication Errors
Error: 401 Unauthorized
-
Verify your Authorization header uses the format:
Authorization: ApiKey YOUR_API_KEY - Check that your API key is valid and not expired
Best Practices
- Verify data : Use GET endpoints to retrieve and verify application 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 your integration - Understand your KYC model : Know which verification model applies to set correct expectations
- 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.