Skip to main content
POST
/
api
/
billing
/
contractcontacts
Create ContractContact
curl --request POST \
  --url https://spaces.nexudus.com/api/billing/contractcontacts \
  --header 'Authorization: Basic <encoded-value>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "CoworkerContractId": 123,
  "FullName": "<string>",
  "ContractContactType": 123,
  "AmlCheckStatus": 123
}
'
{
  "Status": 123,
  "Message": "<string>",
  "Value": "<any>",
  "WasSuccessful": true,
  "Errors": [
    {
      "AttemptedValue": "<any>",
      "Message": "<string>",
      "PropertyName": "<string>"
    }
  ]
}
A ContractContact is a key contact entry on a virtual office contract (CoworkerContract). Contacts can be directors, company aliases, or nominated recipients, and are used to identify, validate, and handle mail and deliveries addressed to anyone connected to a virtual office contract. Each entry can be linked to an existing coworker via CoworkerId, in which case the coworker’s name and email are resolved automatically. Alternatively, provide FullName and Email directly for contacts who do not have a coworker record. Use ContractContactType to classify the contact:
TypeDescription
DirectorA director of the company registered under the virtual office contract
CompanyAliasA trading name or alias used by the company
NominatedRecipientA person authorised to receive mail and deliveries on behalf of the company

Authentication

This endpoint requires OAuth2 authentication. Include a valid bearer token in the Authorization header. The authenticated user must be a full unrestricted administrator or have the ContractContact-Create role.

Enums

ValueName
0None
1Director
2CompanyAlias
3NominatedRecipient
ValueName
0NotStarted
1Pending
2Clear
3PotentialMatch
4ConfirmedMatch
5Error
6ManuallyCleared

Request Body

Required Fields

CoworkerContractId
integer
required
ID of the coworker contract linked to this record.
FullName
string
required
Full name of the contact. Used when the contact is not linked to a coworker record.
ContractContactType
integer
required
Role of this contact: Director (a company director), CompanyAlias (a trading name), or NominatedRecipient (authorised to receive mail on behalf of the company). Defaults to eContractContactType.Director.
AmlCheckStatus
integer
required
The AML check status for this contact.

Optional Fields

CoworkerId
integer
ID of the coworker linked to this record.
Email
string
Email address of the contact. Used when the contact is not linked to a coworker record.
DateOfBirth
string
Date of birth. Used for identity verification purposes.
Address
string
Street address.
PostCode
string
Post code.
CityName
string
City name.
State
string
State or province.
CountryId
integer
ID of the country linked to this record.
PhoneNumber
string
Phone number.
Notes
string
Optional notes or comments about this contract contact.
AmlCheckDate
string
The date when the AML check was performed.
AmlOpenSanctionsScore
number
The score from the open sanctions check.
AmlOpenSanctionsResponse
string
The response from the open sanctions check as JSON string.
AmlPappersResponse
string
The response from the Pappers AML check as TEXT string.
AmlPappersStatus
string
The status from the Pappers AML check.
AmlNotes
string
Notes related to the AML check. Customers cannot see this field, it’s for internal use only.
AmlClearedBy
string
The user who cleared the AML check.
AmlClearedOn
string
The date when the AML check was cleared.

Code Examples

curl -X POST \
  "https://spaces.nexudus.com/api/billing/contractcontacts" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "CoworkerContractId": 0,
    "FullName": "",
    "ContractContactType": 0,
    "AmlCheckStatus": 0
}'

Response

200

Status
integer
HTTP status code. 200 on success.
Message
string
A human-readable message confirming the creation.
Value
object
Contains the Id of the newly created record.
WasSuccessful
boolean
true if the contractcontact was created successfully.
Errors
array
null on success.
Example Response
{
  "Status": 200,
  "Message": "ContractContact was successfully created.",
  "Value": {
    "Id": 87654321
  },
  "OpenInDialog": false,
  "OpenInWindow": false,
  "RedirectURL": null,
  "JavaScript": null,
  "UpdatedOn": "2025-01-15T10:30:00Z",
  "UpdatedBy": "admin@example.com",
  "Errors": null,
  "WasSuccessful": true
}

400

Message
string
A summary of the validation error(s), in the format PropertyName: error message.
Value
any
null on validation failure.
Errors
object[]
Array of validation errors.
WasSuccessful
boolean
false when the request fails validation.
Example Response
{
  "Message": "FullName: is a required field",
  "Value": null,
  "Errors": [
    {
      "AttemptedValue": null,
      "Message": "is a required field",
      "PropertyName": "FullName"
    }
  ],
  "WasSuccessful": false
}