Skip to content

Create a client

POST
/v1/clients
curl --request POST \
--url https://api2.recruso.co.uk/v1/clients \
--header 'Authorization: <Authorization>' \
--header 'Content-Type: application/json' \
--data '{ "clientName": "Northgate Foods Ltd", "branchId": 4, "mediaSourceId": 6, "tobReference": "TOB-2026-0142", "tobIssueDate": "2026-02-18", "tobExpiryDate": "2028-02-17", "companyRegNumber": "08841972", "vatYn": true, "vatRegNumber": "GB 412 8853 07", "terms": "30 days from invoice date", "clientInvoiceType": "example", "website": "https://www.example-northgate.co.uk", "address1": "Northgate House", "address2": "22 Ashburton Road West", "town": "Trafford Park", "county": "Greater Manchester", "country": "United Kingdom", "postCode": "M17 1RU", "telephone1": "0161 872 4400", "telephone2": "0161 872 4401", "fax": "0161 872 4402", "email": "operations@example-northgate.co.uk", "invoiceAddress1": "Finance Shared Services", "invoiceAddress2": "PO Box 194", "invoiceTown": "Manchester", "invoiceCounty": "Greater Manchester", "invoiceCountry": "United Kingdom", "invoicePostCode": "M60 2LA", "invoiceEmail": "accountspayable@example-northgate.co.uk", "invoiceTo": "Accounts Payable", "orderNumberRequired": true, "dni": true, "loggingHoursId": 2, "receivingHoursId": 3, "specialInvoiceInstructions": "One consolidated invoice per site, weekly.", "dateSentToSage": "2026-03-05T08:30:00", "sentToSageBy": 12, "sageAccountNumber": "NOR001", "lineOfBusiness": "Food manufacturing", "madeLiveOn": "2026-03-04T09:12:44", "madeLiveBy": 12, "madeLeadOn": "2026-01-22T11:45:00", "madeLeadBy": 12, "isFactoredClient": false, "factorNo": "F-20551", "creditCheckedOrCleared": true, "clientBankCode": "example", "notes": "Invoices must quote the site purchase order number." }'

Creates a live client under your own agency. A client is the company that engages the agency for workers and is the entity invoices are ultimately raised against.

clientName, branchId, address1, town, county, country, postCode, companyRegNumber, terms, invoiceTo and lineOfBusiness are required. vatRegNumber becomes required when vatYn is true. Every other field is optional and can be filled in later with UpdateClient.

branchId must be a branch the Recruso user behind your API app can access. A branch outside that set returns 400, not 403.

clientInvoiceType is the invoice type name, not an id; an unrecognised value returns 400 listing the accepted names. mediaSourceId, loggingHoursId and receivingHoursId are ids from your agency’s Recruitment sources, Logging hours and Receiving hours lookups, and an id that does not exist returns 400.

The client is created as a live client and a client status record is created alongside it. Prospective clients are created through CreateLead instead.

The agency is taken from your credentials, so ownerId on the request is ignored. On success the response carries the new clientId and a Location header pointing at GetClientById.

Access. Requires a client-credentials access token. Tokens issued through the interactive user login are rejected.

Media typeapplication/json

The client to create.

object
clientName

The client’s registered or trading name. Required, up to 100 characters.

string
Example
Northgate Foods Ltd
branchId

The branch the client is managed under. Must be a branch the Recruso user behind your API app can access.

integer format: int16
Example
4
mediaSourceId

The recruitment source the client came from, as an id from your agency’s Recruitment sources lookup.

integer format: int16
nullable
Example
6
tobReference

Your reference for the client’s signed terms of business.

string
nullable
Example
TOB-2026-0142
tobIssueDate

The date the client’s terms of business were issued.

string format: date-time
nullable
Example
2026-02-18
tobExpiryDate

The date the client’s terms of business expire.

string format: date-time
nullable
Example
2028-02-17
companyRegNumber

The client’s company registration number. Required, up to 20 characters.

string
nullable
Example
08841972
vatYn

Whether the client is VAT registered. When true, vatRegNumber is required.

boolean
nullable
Example
true
vatRegNumber

The client’s VAT registration number. Required when vatYn is true.

string
nullable
Example
GB 412 8853 07
terms

The payment terms agreed with the client, as free text. Required, up to 50 characters.

string
nullable
Example
30 days from invoice date
clientInvoiceType

The invoice type, given by name rather than by id. Must be one of the names published by the client invoice types vocabulary; an unrecognised name returns 400 listing the accepted values.

string
nullable
website

The client’s website.

string
nullable
Example
https://www.example-northgate.co.uk
address1

First line of the client’s trading address. Required, up to 100 characters.

string
nullable
Example
Northgate House
address2

Second line of the client’s trading address.

string
nullable
Example
22 Ashburton Road West
town

Town or city of the client’s trading address. Required, up to 50 characters.

string
nullable
Example
Trafford Park
county

County of the client’s trading address. Required, up to 50 characters.

string
nullable
Example
Greater Manchester
country

Country of the client’s trading address. Required, up to 50 characters.

string
nullable
Example
United Kingdom
postCode

Postcode of the client’s trading address. Required, up to 15 characters.

string
nullable
Example
M17 1RU
telephone1

The client’s main telephone number.

string
nullable
Example
0161 872 4400
telephone2

A second telephone number for the client.

string
nullable
Example
0161 872 4401
fax

The client’s fax number.

string
nullable
Example
0161 872 4402
email

The client’s main email address.

string
nullable
Example
operations@example-northgate.co.uk
invoiceAddress1

First line of the address invoices are sent to, when it differs from the trading address.

string
nullable
Example
Finance Shared Services
invoiceAddress2

Second line of the invoice address.

string
nullable
Example
PO Box 194
invoiceTown

Town or city of the invoice address.

string
nullable
Example
Manchester
invoiceCounty

County of the invoice address.

string
nullable
Example
Greater Manchester
invoiceCountry

Country of the invoice address.

string
nullable
Example
United Kingdom
invoicePostCode

Postcode of the invoice address.

string
nullable
Example
M60 2LA
invoiceEmail

The email address invoices are sent to.

string
nullable
Example
accountspayable@example-northgate.co.uk
invoiceTo

The name invoices are addressed to. Required, up to 50 characters.

string
nullable
Example
Accounts Payable
orderNumberRequired

Whether a purchase order number must be supplied before the client can be invoiced.

boolean
nullable
Example
true
dni
boolean
nullable
loggingHoursId

The logging hours that apply to this client, as an id from your agency’s Logging hours lookup.

integer format: int16
nullable
Example
2
receivingHoursId

The receiving hours that apply to this client, as an id from your agency’s Receiving hours lookup.

integer format: int16
nullable
Example
3
specialInvoiceInstructions

Free-text instructions to apply when invoicing the client. Up to 550 characters.

string
nullable
Example
One consolidated invoice per site, weekly.
dateSentToSage

When the client was sent to Sage, in UK local time (GMT/BST).

string format: date-time
nullable
Example
2026-03-05T08:30:00
sentToSageBy

The Recruso user who sent the client to Sage.

integer format: int16
nullable
Example
12
sageAccountNumber

The client’s account number in Sage. Up to 10 characters.

string
nullable
Example
NOR001
lineOfBusiness

The client’s line of business. Required, up to 100 characters.

string
nullable
Example
Food manufacturing
madeLiveOn

When the client was made live, in UK local time (GMT/BST).

string format: date-time
nullable
Example
2026-03-04T09:12:44
madeLiveBy

The Recruso user who made the client live.

integer format: int16
nullable
Example
12
madeLeadOn

When the client was recorded as a lead, in UK local time (GMT/BST).

string format: date-time
nullable
Example
2026-01-22T11:45:00
madeLeadBy

The Recruso user who recorded the client as a lead.

integer format: int16
nullable
Example
12
isFactoredClient

Whether the client’s invoices are handled by an invoice factoring provider.

boolean
nullable
Example
false
factorNo

The client’s reference with the invoice factoring provider. Up to 15 characters.

string
nullable
Example
F-20551
creditCheckedOrCleared

Whether the client has been credit checked or cleared for credit.

boolean
nullable
Example
true
clientBankCode
string
nullable
notes

Free-text notes about the client. Up to 2000 characters.

string
nullable
Example
Invoices must quote the site purchase order number.

Created

Media typeapplication/json

A newly created client.

object
clientId

The client’s unique identifier, assigned by Recruso.

integer format: int32
clientName

The client’s registered or trading name. Required, up to 100 characters.

string
userId

The Recruso user the client is assigned to. Set to the user behind your API app when the client is created.

integer format: int16
nullable
createdDate

When the client record was created, in UK local time (GMT/BST). A legacy column carrying the same value as createdOn.

string format: date-time
nullable
branchId

The branch the client is managed under. Must be a branch the Recruso user behind your API app can access.

integer format: int16
mediaSourceId

The recruitment source the client came from, as an id from your agency’s Recruitment sources lookup.

integer format: int16
nullable
tobReference

Your reference for the client’s signed terms of business.

string
nullable
tobIssueDate

The date the client’s terms of business were issued.

string format: date-time
nullable
tobExpiryDate

The date the client’s terms of business expire.

string format: date-time
nullable
companyRegNumber

The client’s company registration number. Required, up to 20 characters.

string
nullable
vatYn

Whether the client is VAT registered. When true, vatRegNumber is required.

boolean
nullable
vatRegNumber

The client’s VAT registration number. Required when vatYn is true.

string
nullable
terms

The payment terms agreed with the client, as free text. Required, up to 50 characters.

string
nullable
clientInvoiceType

The invoice type, given by name rather than by id. Must be one of the names published by the client invoice types vocabulary; an unrecognised name returns 400 listing the accepted values.

string
nullable
website

The client’s website.

string
nullable
createdBy

The Recruso user who created the client.

integer format: int16
nullable
createdOn

When the client was created, in UK local time (GMT/BST) — not UTC.

string format: date-time
nullable
modifiedBy

The Recruso user who last updated the client. Null until the client is first updated.

integer format: int16
nullable
modifiedOn

When the client was last updated, in UK local time (GMT/BST) — not UTC. Null until the client is first updated.

string format: date-time
nullable
address1

First line of the client’s trading address. Required, up to 100 characters.

string
nullable
address2

Second line of the client’s trading address.

string
nullable
town

Town or city of the client’s trading address. Required, up to 50 characters.

string
nullable
county

County of the client’s trading address. Required, up to 50 characters.

string
nullable
country

Country of the client’s trading address. Required, up to 50 characters.

string
nullable
postCode

Postcode of the client’s trading address. Required, up to 15 characters.

string
nullable
telephone1

The client’s main telephone number.

string
nullable
telephone2

A second telephone number for the client.

string
nullable
fax

The client’s fax number.

string
nullable
email

The client’s main email address.

string
nullable
invoiceAddress1

First line of the address invoices are sent to, when it differs from the trading address.

string
nullable
invoiceAddress2

Second line of the invoice address.

string
nullable
invoiceTown

Town or city of the invoice address.

string
nullable
invoiceCounty

County of the invoice address.

string
nullable
invoiceCountry

Country of the invoice address.

string
nullable
invoicePostCode

Postcode of the invoice address.

string
nullable
invoiceEmail

The email address invoices are sent to.

string
nullable
invoiceTo

The name invoices are addressed to. Required, up to 50 characters.

string
nullable
orderNumberRequired

Whether a purchase order number must be supplied before the client can be invoiced.

boolean
nullable
dni
boolean
nullable
loggingHoursId

The logging hours that apply to this client, as an id from your agency’s Logging hours lookup.

integer format: int16
nullable
receivingHoursId

The receiving hours that apply to this client, as an id from your agency’s Receiving hours lookup.

integer format: int16
nullable
specialInvoiceInstructions

Free-text instructions to apply when invoicing the client. Up to 550 characters.

string
nullable
dateSentToSage

When the client was sent to Sage, in UK local time (GMT/BST).

string format: date-time
nullable
sentToSageBy

The Recruso user who sent the client to Sage.

integer format: int16
nullable
sageAccountNumber

The client’s account number in Sage. Up to 10 characters.

string
nullable
lineOfBusiness

The client’s line of business. Required, up to 100 characters.

string
nullable
isFactoredClient

Whether the client’s invoices are handled by an invoice factoring provider.

boolean
nullable
factorNo

The client’s reference with the invoice factoring provider. Up to 15 characters.

string
nullable
creditCheckedOrCleared

Whether the client has been credit checked or cleared for credit.

boolean
nullable
clientBankCode
string
nullable
notes

Free-text notes about the client. Up to 2000 characters.

string
nullable
Example
{
"clientId": 137,
"clientName": "Northgate Foods Ltd",
"userId": 12,
"createdDate": "2026-03-04T09:12:44",
"branchId": 4,
"mediaSourceId": 6,
"tobReference": "TOB-2026-0142",
"tobIssueDate": "2026-02-18",
"tobExpiryDate": "2028-02-17",
"companyRegNumber": "08841972",
"vatYn": true,
"vatRegNumber": "GB 412 8853 07",
"terms": "30 days from invoice date",
"website": "https://www.example-northgate.co.uk",
"createdBy": 12,
"createdOn": "2026-03-04T09:12:44",
"modifiedBy": 12,
"modifiedOn": "2026-06-11T14:02:09",
"address1": "Northgate House",
"address2": "22 Ashburton Road West",
"town": "Trafford Park",
"county": "Greater Manchester",
"country": "United Kingdom",
"postCode": "M17 1RU",
"telephone1": "0161 872 4400",
"telephone2": "0161 872 4401",
"fax": "0161 872 4402",
"email": "operations@example-northgate.co.uk",
"invoiceAddress1": "Finance Shared Services",
"invoiceAddress2": "PO Box 194",
"invoiceTown": "Manchester",
"invoiceCounty": "Greater Manchester",
"invoiceCountry": "United Kingdom",
"invoicePostCode": "M60 2LA",
"invoiceEmail": "accountspayable@example-northgate.co.uk",
"invoiceTo": "Accounts Payable",
"orderNumberRequired": true,
"loggingHoursId": 2,
"receivingHoursId": 3,
"specialInvoiceInstructions": "One consolidated invoice per site, weekly.",
"dateSentToSage": "2026-03-05T08:30:00",
"sentToSageBy": 12,
"sageAccountNumber": "NOR001",
"lineOfBusiness": "Food manufacturing",
"isFactoredClient": false,
"factorNo": "F-20551",
"creditCheckedOrCleared": true,
"notes": "Invoices must quote the site purchase order number."
}

Bad Request

Media typeapplication/problem+json
object
type
string
nullable
title
string
nullable
status
integer format: int32
nullable
detail
string
nullable
instance
string
nullable
Examplegenerated
{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"instance": "example"
}

Unauthorized

Media typeapplication/problem+json
object
type
string
nullable
title
string
nullable
status
integer format: int32
nullable
detail
string
nullable
instance
string
nullable
Examplegenerated
{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"instance": "example"
}

Forbidden

Media typeapplication/problem+json
object
type
string
nullable
title
string
nullable
status
integer format: int32
nullable
detail
string
nullable
instance
string
nullable
Examplegenerated
{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"instance": "example"
}