---
title: "Creates a new external contact, optionally linked to an existing company. If CompanyName is provided and not matched, a new company is created."
method: POST
path: "/api/Contact"
tags: ["Contact"]
---

# Creates a new external contact, optionally linked to an existing company. If CompanyName is provided and not matched, a new company is created.

`POST /api/Contact`

## Request body

- NewCompanyContact — Request model for creating a new external contact. Optionally creates a new company if one doesn't exist.
  - `CompanyIDFK` integer — The ID of an existing company to associate the contact with. If omitted, CompanyName is used to find or create a company.
  - `CompanyName` string — The name of the company to associate the contact with. Used to find an existing company or create a new one if not found.
  - `CurrencyCode` string — The currency code for a newly created company. Defaults to the account's default currency if not provided.
  - `CompanyBillingAddress` string — The full formatted billing address string for a newly created company.
  - `CompanyBillingAddressLine` string — The street address line for the billing address of a newly created company.
  - `CompanyBillingAddressCity` string — The city for the billing address of a newly created company.
  - `CompanyBillingAddressState` string — The state or province for the billing address of a newly created company.
  - `CompanyBillingAddressPostCode` string — The postcode or ZIP code for the billing address of a newly created company.
  - `CompanyBillingAddressCountryCode` string — The ISO 2-letter country code for the billing address of a newly created company.
  - `ContactEmail` string, required — The contact's email address. Required.
  - `Firstname` string, required — The contact's first name. Required.
  - `Lastname` string, required — The contact's last name. Required.
  - `PositionTitle` string — The contact's job title or position.
  - `Mobile` string — The contact's mobile phone number.
  - `Phone` string — The contact's phone number.
  - `UpdateExisting` boolean — If true, updates an existing contact with the same email address instead of creating a duplicate. Defaults to true.
  - `SendWebhooks` boolean — If true, fires the contact_created webhook event to any subscribed endpoints. Defaults to false to preserve existing integration behaviour.

## Response `200`

Returns the created contact with assigned Contact ID.

- CompanyContact — An external contact associated with a customer company.
  - `ContactID` integer — The unique identifier of the contact.
  - `CompanyIDFK` integer — The ID of the company this contact belongs to.
  - `CompanyName` string — The name of the company this contact belongs to.
  - `Firstname` string — The contact's first name.
  - `Lastname` string — The contact's last name.
  - `Email` string — The contact's email address.
  - `Phone` string — The contact's phone number.
  - `Mobile` string — The contact's mobile phone number.
  - `PositionTitle` string — The contact's job title or position.
  - `TimeZone` string — The contact's time zone identifier.
  - `DateCreated` string, date-time — The UTC date and time when the contact record was created.
  - `DateUpdated` string, date-time — The UTC date and time when the contact record was last updated.
  - `Roles` RoleDetails[] — The roles assigned to this contact (RoleCode/RoleName), mirroring the Get UserProfile response.
    - `RoleCode` string — Unique code for the role (e.g. Admin, PM, TimesheetUser).
    - `RoleName` string — Display name of the role.

## Other responses

- `401` — Unauthorized

---

[API](https://skmtc.net/avaza/apis/avaza-api-documentation.md) · [All operations](https://skmtc.net/avaza/apis/avaza-api-documentation/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/avaza/avaza-api-documentation/versions/1eeadf750514/schema)
