openapi: 3.2.0
info:
title: Karbonhq Contacts API
version: v3
contact:
name: API Support
url: https://developers.karbonhq.com/issues/
license:
name: Apache 2.0
url: http://www.apache.org/licenses/LICENSE-2.0.html
termsOfService: https://karbonhq.com/terms-of-use/
description: 'Operations tagged Contacts across 2 of this provider''s published API definitions: KarbonAPI.json, karbonhq-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.karbonhq.com
description: The production API server
security:
- ApiKeyAuth: []
BearerAuth: []
tags:
- name: Contacts
description: Manage your contacts and get the full overview over clients, whether they are individuals or organizations. Read more
paths:
/v3/Contacts:
get:
tags:
- Contacts
summary: Gets a list of Contacts
parameters:
- in: query
name: $filter
schema:
type: string
examples:
FullName:
value: FullName eq 'Sample Management Team
summary: Return only the Contacts where the Full Name matches 'Sample Client Team'
EmailAddress:
value: EmailAddress eq 'karbon@example.com'
summary: Return only the Contacts where the Email Address matches 'karbon@example.com'
PhoneNumber:
value: PhoneNumber eq '220114588'
summary: Return only the Contacts where the Phone Number matches '220114588'
ContactType:
value: ContactType eq 'Client'
summary: Return only the Contacts where the Contact Type matches 'Client'
externalKey:
value: ExternalKey eq '123987456'
summary: Return only the Contacts whose ExternalKey matches '123987456'. ExternalKey is the identifier from an integrated external system - XPM Client ID, Xero Contact ID, or QuickBooks Online Intuit Customer ID. Only the eq operator is supported.
description: 'When this parameter is combined with the URI, this endpoint will return a subset of the Contacts that satisfy the `$filter` expression.
'
- in: query
name: $orderby
schema:
type: string
enum:
- FullName
- FullName desc
- LastModifiedDateTime
- LastModifiedDateTime desc
default: ClientGroupKey
example: FullName
description: 'When this parameter is combined with the URI, this endpoint will return a list of Contacts, sorted by the available properties.
'
- $ref: '#/components/parameters/SkipRecords'
- $ref: '#/components/parameters/TopRecords'
description: 'Use the `GET` method on this endpoint to receive a paginated list of Contacts from your tenant. Using the query parameters available to this endpoint, you can also filter the list of Contacts by their full name, email address, or phone number.
**Notes**
This endpoint returns a maximum of 100 Contacts at once.
If the query results in more than 100 Contacts, a link to the next set of the results will be given in the `@odata.nextLink` field of the response.
The `$filter` query parameter supports 3 logical operators (`eq`, `contains`, and `and`) and 3 properties to help you form an expression. Usage examples below
Logical Operators
Purpose
FullName
EmailAddress
PhoneNumber
eq
Full-text search
/v3/Contacts?$filter=FullName eq ''Sample Management
Team''
/v3/Contacts?$filter=EmailAddress eq
''sample@company.com''
/v3/Contacts?$filter=PhoneNumber eq
''1234567890''
contains
Partial-text search
/v3/Contacts?$filter=(contains(FullName, ''Management
Team''))
/v3/Contacts?$filter=(contains(EmailAddress,
''sample@''))
/v3/Contacts?$filter=(contains(PhoneNumber,
''45678''))
and
Combines properties
/v3/Contacts?$filter=PhoneNumber eq
''1234567890'' and contains(FullName, ''Management Team'')'
operationId: getAllContacts
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/GetContacts'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessages'
examples:
Unsupported Property:
$ref: '#/components/examples/Unsupported_Property_Filter'
Unsupported Orderby Property:
$ref: '#/components/examples/Orderby_Unsupported_Property'
$top limit exceeded:
$ref: '#/components/examples/Limit_Exceeded_Top'
Unsupported Option:
$ref: '#/components/examples/Unsupported_option'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ResourceNotFound'
examples:
Unauthorized Access:
$ref: '#/components/examples/UnauthorizedAccess'
'429':
description: Rate Limit Exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitErrorMessage'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessages'
examples:
Undefined Error:
$ref: '#/components/examples/elongated_5001'
post:
tags:
- Contacts
summary: Creates a new Contact
description: Use the `POST` method on this endpoint to create a new Contact in your tenant.
operationId: createContact
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseCreateContact'
example:
'@odata.context': https://api.karbonhq.com/v3/$metadata#Contacts/KarbonService.ContactDTO/$entity
'@odata.type': '#KarbonService.ContactDTO'
ContactKey: 67zlxNyJSr8e
FirstName: William
MiddleName: John
LastName: Connor
PreferredName: Bill
Salutation: Mr
Suffix: Jr.
ClientOwner: rodney.muller@samplecompany.com
ClientManager: jessica.tse@samplecompany.com
ContactType: Client
UserDefinedIdentifier: BILLJR
RestrictionLevel: Public
AvatarUrl: https://az.karbonemail.com/images/e4ae96c1-8d17-4c6e-af8a-8040482176fc
LastModifiedDateTime: '2022-07-05T07:30:13.7188114Z'
EntityDescription:
Text: Birthday on June 23.
AccountingDetail:
ContactPermaKey: 67zlxNyJSr8e
OrganizationPermaKey: null
BirthDate: '1969-08-05T00:00:00Z'
DeathDate: null
Salutation: Mr
Sex: M
FinancialYearEndDay: 30
FinancialYearEndMonth: 8
IncorporationDate: null
IncorporationState: null
LegalName: null
LineOfBusiness: null
EntityType: null
TaxCountryCode: US
TradingName: null
AnnualRevenue: null
BaseCurrency: null
GstBasis: null
GstPeriod: null
IncomeTaxInstallmentPeriod: Yearly
IsVATRegistered: null
OrganizationValuation: null
PaysTax: null
PrepareGST: null
ProvisionalTaxBasic: null
ProvisionalTaxRatio: null
RevenueModel: null
SalesTaxBasis: null
SalesTaxPeriod: null
Sells: null
RegistrationNumbers:
- RegistrationNumber: 12-3456789
Type: Social Security Number (SSN)
Notes:
- Body: This is a sample note text.
Type: Basic
BusinessCards:
- BusinessCardKey: 2tBHyXtJBxBy
EntityType: Contact
EntityKey: 67zlxNyJSr8e
IsPrimaryCard: true
WebSites:
- www.website.one
- www.website.two
EmailAddresses:
- sample@example.com
- sample.two@example.com
OrganizationKey: ZGNmtYyLm4z
RoleOrTitle: COO
FacebookLink: facebook.com/sampleName
LinkedInLink: linkedin.com/sampleName
TwitterLink: twitter.com/sampleName
SkypeLink: skype.com/sampleName
Addresses:
- AddressKey: e150a05a-2dea-4292-8bc8-03398c9384e4
AddressLines: 45 Sample Street
City: Alexandria
StateProvinceCounty: NSW
ZipCode: '2015'
CountryCode: AU
Label: Physical
PhoneNumbers:
- PhoneNumberKey: 6e0b9ace-24b1-4328-a922-3b8be5ef5052
Number: '1234567890'
CountryCode: AU
Label: Work
headers:
Location:
description: The endpoint URL to the newly created Contact.
schema:
type: string
example: https://api.karbonhq.com/v3/Contacts('9zgh8pk1dfL')/KarbonService.ContactDTO
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessages'
examples:
Incorrect or Missing Data:
$ref: '#/components/examples/Missing_Create_Data'
Unsupported Property:
$ref: '#/components/examples/Update_Unsupported_Property'
Unsupported Option:
$ref: '#/components/examples/Unsupported_option'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ResourceNotFound'
examples:
Unauthorized Access:
$ref: '#/components/examples/UnauthorizedAccess'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessages'
examples:
Permission Denied:
$ref: '#/components/examples/RestrictionLevel_Permission_Denied'
'429':
description: Rate Limit Exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitErrorMessage'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessages'
examples:
Duplicate UDI:
$ref: '#/components/examples/Duplicate_UDI'
Undefined Error:
$ref: '#/components/examples/elongated_5001'
requestBody:
description: Refer to the table below for more information on each field in the request body.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateContact'
servers:
- url: https://api.karbonhq.com
description: The production API server
/v3/Contacts/GetContactByUserDefinedIdentifier(UserDefinedIdentifier='{UserDefinedIdentifier}'):
get:
tags:
- Contacts
summary: Gets a Contact using UserDefinedIdentifier
parameters:
- required: true
in: path
name: UserDefinedIdentifier
schema:
type: string
example: BILLJR
description: A unique identifier that you had created to identify this Contact. This parameter is **not** case sensitive.
- in: query
name: $expand
schema:
type: string
enum:
- BusinessCards
- ServiceTypes
example: BusinessCards
description: 'When this parameter is combined with the URI, this endpoint will also return the Business Cards or Service Types of the Contact.
'
description: 'Use the `GET` method on this endpoint to receive the details of a Contact specified using the UserDefinedIdentifier.
Using the query parameter available to this endpoint, you can also include Business Card details of the Contact in the response.'
operationId: getContactByUDI
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseCreateContact'
example:
'@odata.context': https://api.karbonhq.com/v3/$metadata#Contacts/KarbonService.ContactDTO/$entity
'@odata.type': '#KarbonService.ContactDTO'
ContactKey: 67zlxNyJSr8e
FirstName: William
MiddleName: John
LastName: Connor
PreferredName: Bill
Salutation: Mr
Suffix: Jr.
ClientOwner: rodney.muller@samplecompany.com
ClientManager: jessica.tse@samplecompany.com
ContactType: Client
UserDefinedIdentifier: BILLJR
RestrictionLevel: Public
AvatarUrl: https://az.karbonemail.com/images/e4ae96c1-8d17-4c6e-af8a-8040482176fc
LastModifiedDateTime: '2022-07-05T07:30:13.7188114Z'
EntityDescription:
Text: Birthday on June 23.
AccountingDetail:
ContactPermaKey: 67zlxNyJSr8e
OrganizationPermaKey: null
BirthDate: '1969-08-05T00:00:00Z'
DeathDate: null
Salutation: Mr
Sex: M
FinancialYearEndDay: 30
FinancialYearEndMonth: 8
IncorporationDate: null
IncorporationState: null
LegalName: null
LineOfBusiness: null
EntityType: null
TaxCountryCode: US
TradingName: null
AnnualRevenue: null
BaseCurrency: null
GstBasis: null
GstPeriod: null
IncomeTaxInstallmentPeriod: Quarterly
IsVATRegistered: null
OrganizationValuation: null
PaysTax: null
PrepareGST: null
ProvisionalTaxBasic: null
ProvisionalTaxRatio: null
RevenueModel: null
SalesTaxBasis: null
SalesTaxPeriod: null
Sells: null
RegistrationNumbers:
- RegistrationNumber: 12-3456789
Type: Social Security Number (SSN)
Notes:
- Body: This is a sample note text.
Type: Basic
BusinessCards:
- BusinessCardKey: 2tBHyXtJBxBy
EntityType: Contact
EntityKey: 67zlxNyJSr8e
IsPrimaryCard: true
WebSites:
- www.website.one
- www.website.two
EmailAddresses:
- sample@example.com
- sample.two@example.com
OrganizationKey: ZGNmtYyLm4z
RoleOrTitle: COO
FacebookLink: facebook.com/sampleName
LinkedInLink: linkedin.com/sampleName
TwitterLink: twitter.com/sampleName
SkypeLink: skype.com/sampleName
Addresses:
- AddressKey: e150a05a-2dea-4292-8bc8-03398c9384e4
AddressLines: 45 Sample Street
City: Alexandria
StateProvinceCounty: NSW
ZipCode: '2015'
CountryCode: AU
Label: Physical
PhoneNumbers:
- PhoneNumberKey: 6e0b9ace-24b1-4328-a922-3b8be5ef5052
Number: '1234567890'
CountryCode: AU
Label: Work
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessages'
examples:
UDI Is Empty:
$ref: '#/components/examples/UDI_Is_Empty'
Unsupported Option:
$ref: '#/components/examples/Unsupported_option'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ResourceNotFound'
examples:
Unauthorized Access:
$ref: '#/components/examples/UnauthorizedAccess'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessages'
examples:
UDI Not Found:
$ref: '#/components/examples/UDI_Not_Found_Contact'
'429':
description: Rate Limit Exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitErrorMessage'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessages'
examples:
Undefined Error:
$ref: '#/components/examples/elongated_5001'
servers:
- url: https://api.karbonhq.com
description: The production API server
/v3/Contacts/{Contactkey}:
get:
tags:
- Contacts
summary: Gets a Contact using Contactkey
parameters:
- required: true
in: path
name: Contactkey
schema:
type: string
example: 4jgPTtcXxwC2
description: The Karbon-generated Contact key
- in: query
name: $expand
schema:
type: string
enum:
- BusinessCards
- ClientTeam
- ClientAccess
- ServiceTypes
example: BusinessCards
description: 'When this parameter is combined with the URI, this endpoint will also return one or more of the following: Business Cards for the Contact, the Client Team assigned to the Contact, a list of other Contacts that can access this Contact in Karbon for Clients, or the Service Types assigned to the Contact.'
description: 'Use the `GET` method on this endpoint to receive the details of a Contact specified using the `Contactkey`.
Using the query parameter available to this endpoint, you can also include the Business Card details of the Contacts in the response.'
operationId: getContactByID
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseCreateContact'
example:
'@odata.context': https://api.karbonhq.com/v3/$metadata#Contacts/KarbonService.ContactDTO/$entity
'@odata.type': '#KarbonService.ContactDTO'
ContactKey: 67zlxNyJSr8e
FirstName: William
MiddleName: John
LastName: Connor
PreferredName: Bill
Salutation: Mr
Suffix: Jr.
ClientOwner: rodney.muller@samplecompany.com
ClientManager: jessica.tse@samplecompany.com
ContactType: Client
UserDefinedIdentifier: BILLJR
RestrictionLevel: Public
AvatarUrl: https://az.karbonemail.com/images/e4ae96c1-8d17-4c6e-af8a-8040482176fc
LastModifiedDateTime: '2022-07-05T07:30:13.7188114Z'
EntityDescription:
Text: Birthday on June 23.
AccountingDetail:
ContactPermaKey: 67zlxNyJSr8e
OrganizationPermaKey: null
BirthDate: '1969-08-05T00:00:00Z'
DeathDate: null
Salutation: Mr
Sex: M
FinancialYearEndDay: 30
FinancialYearEndMonth: 8
IncorporationDate: null
IncorporationState: null
LegalName: null
LineOfBusiness: null
EntityType: null
TaxCountryCode: US
TradingName: null
AnnualRevenue: null
BaseCurrency: null
GstBasis: null
GstPeriod: null
IncomeTaxInstallmentPeriod: Quarterly
IsVATRegistered: null
OrganizationValuation: null
PaysTax: null
PrepareGST: null
ProvisionalTaxBasic: null
ProvisionalTaxRatio: null
RevenueModel: null
SalesTaxBasis: null
SalesTaxPeriod: null
Sells: null
RegistrationNumbers:
- RegistrationNumber: 12-3456789
Type: Social Security Number (SSN)
Notes:
- Body: This is a sample note text.
Type: Basic
BusinessCards:
- BusinessCardKey: 2tBHyXtJBxBy
EntityType: Contact
EntityKey: 67zlxNyJSr8e
IsPrimaryCard: true
WebSites:
- www.website.one
- www.website.two
EmailAddresses:
- sample@example.com
- sample.two@example.com
OrganizationKey: ZGNmtYyLm4z
RoleOrTitle: COO
FacebookLink: facebook.com/sampleName
LinkedInLink: linkedin.com/sampleName
TwitterLink: twitter.com/sampleName
SkypeLink: skype.com/sampleName
Addresses:
- AddressKey: e150a05a-2dea-4292-8bc8-03398c9384e4
AddressLines: 45 Sample Street
City: Alexandria
StateProvinceCounty: NSW
ZipCode: '2015'
CountryCode: AU
Label: Physical
PhoneNumbers:
- PhoneNumberKey: 6e0b9ace-24b1-4328-a922-3b8be5ef5052
Number: '1234567890'
CountryCode: AU
Label: Work
ClientTeam:
- MemberKey: JTphCpQqQYg
MemberType: User
RoleType: ClientOwner
- MemberKey: nRML2ngs7WJ
MemberType: User
RoleType: ClientManager
- MemberKey: 3fv7lflmd1Z7
MemberType: User
RoleType: UserDefinedRole2
- MemberKey: 3v9YJmt55hLY
MemberType: User
RoleType: UserDefinedRole1
- MemberKey: 3zdQh89xCmZM
MemberType: User
RoleType: null
ClientAccess:
- ClientKey: 67zlxNyJSr8e
ClientType: Contact
AccessLevel: Limited
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessages'
examples:
Unsupported Property:
$ref: '#/components/examples/Update_Unsupported_Property'
Unsupported Option:
$ref: '#/components/examples/Unsupported_option'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ResourceNotFound'
examples:
Unauthorized Access:
$ref: '#/components/examples/UnauthorizedAccess'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessages'
examples:
Key Not Found:
$ref: '#/components/examples/ContactKey_Not_Found'
'429':
description: Rate Limit Exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitErrorMessage'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessages'
examples:
Undefined Error:
$ref: '#/components/examples/elongated_5001'
put:
tags:
- Contacts
summary: Updates a Contact (Full)
parameters:
- required: true
in: path
name: Contactkey
schema:
type: string
example: 4t8LbR1QcbGS
description: The Karbon-generated Contact key
description: 'Use the `PUT` method on this endpoint to update full details of a Contact specified using the `Contactkey`.
Using the query parameter `$expand` with this endpoint, you can also update the Business Card details of the Contact.
**Note:** When updating business cards, you must include `BusinessCardKey`, `EntityType` and `EntityKey` properties for existing Business Cards - or the existing card and any associated Client Requests may be removed.
**BusinessCards is optional:** If the `BusinessCards` array is omitted from the request body, the existing Business Cards on the Contact are left untouched. Include the `BusinessCards` array only when you intend to update it.
**RegistrationNumber null/empty values delete the entry:** If a `RegistrationNumbers` entry is included with a null, empty, or whitespace `RegistrationNumber` value, any existing registration number of that `Type` is deleted. If no entry exists for that `Type`, the request is a no-op. Non-blank values continue to upsert as before.'
operationId: putContactByID
responses:
'204':
description: No Content
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessages'
examples:
Incorrect or Missing Data:
$ref: '#/components/examples/Missing_Update_Data'
Unsupported Option:
$ref: '#/components/examples/Unsupported_option'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ResourceNotFound'
examples:
Unauthorized Access:
$ref: '#/components/examples/UnauthorizedAccess'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessages'
examples:
Permission Denied:
$ref: '#/components/examples/RestrictionLevel_Permission_Denied'
'404':
description: Resource Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ResourceNotFound'
examples:
Key Not Found:
$ref: '#/components/examples/ResourceNotFound'
'429':
description: Rate Limit Exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitErrorMessage'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessages'
examples:
Non existent Key:
$ref: '#/components/examples/Shortened_5001'
Undefined Error:
$ref: '#/components/examples/elongated_5001'
'409':
description: Conflict — the resource was modified by another request. Refetch the latest version and retry.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessages'
examples:
Stale Object State:
$ref: '#/components/examples/Conflict_StaleObjectState'
requestBody:
description: Refer to the table below for more information on each field in the request body.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateContact'
patch:
tags:
- Contacts
summary: Updates a Contact (Partial)
parameters:
- required: true
in: path
name: Contactkey
schema:
type: string
example: 4t8LbR1QcbGS
description: The Karbon-generated Contact key
description: 'Use the `PATCH` method on this endpoint to update partial details of a Contact specified using the `Contactkey`.
This method **only supports** editing the `FirstName`, `MiddleName`, `LastName`, `PreferredName`, `Salutation`, `Suffix` and `RestrictionLevel` properties.'
operationId: patchContactsByID
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
'@odata.context':
type: string
description: The information about Karbon controllers generating this response.
'@odata.type':
type: string
description: The information about Karbon Objects generating this response.
ContactKey:
type: string
description: A Karbon-generated value that is used to identify the Contact
FirstName:
type: string
description: The first name of the Contact
MiddleName:
type: string
description: The middle name of the Contact
LastName:
type: string
description: The last name of the Contact
PreferredName:
type: string
description: The preferred name of the Contact
Salutation:
type: string
description: The title to address the Contact
Suffix:
type: string
description: The suffix of the Contact
ClientOwner:
type: string
description: The team member in your firm who looks after client relationship or is responsible for the vast majority of the work of the Contact. You can only use the UserKey or the email address of an existing team member.
ClientManager:
type: string
description: The team member in your firm who manages the work for Contact. You can only use the UserKey or the email address of an existing team member.
example: jessica.tse@samplecompany.com
ContactType:
type: string
description: The Contact Type for this Contact. You can only use existing Contact Types, these are available from the TenantSettings endpoint.
UserDefinedIdentifier:
type: string
description: A unique key that you can use to identify this Contact.
RestrictionLevel:
type: string
description: 'The privacy level for this Client Group.
Public Client Groups can be managed by anyone in the firm
Private Client Groups can only be managed by the [Client Team](https://help.karbonhq.com/en/articles/1524707-create-a-client-team). Basic details (name of the Contacts and the Work Items) related to such Client Groups are visible to anyone in the firm.
Hidden Client Groups are only be visible to and managed by the [Client Team](https://help.karbonhq.com/en/articles/1524707-create-a-client-team).
'
example: Public
default: Public
enum:
- Public
- Private
- Hidden
AvatarUrl:
type: string
description: The URL to the Contact's avatar
LastModifiedDateTime:
type: string
format: date-time
description: The date and time at which this Contact was last modified.
EntityDescription:
type: object
properties:
Text:
type: string
description: Free-form text that can be used to add more information about the Client Group
AccountingDetail:
type:
- string
- 'null'
description: The accounting details associated with the Contact. This property will be `null`.
example:
'@odata.context': https://api.karbonhq.com/v3/$metadata#Contacts/KarbonService.ContactDTO/$entity
'@odata.type': '#KarbonService.ContactDTO'
ContactKey: 67zlxNyJSr8e
FirstName: William
MiddleName: John
LastName: Connor
PreferredName: Bill
Salutation: Mr
Suffix: Jr.
ClientOwner: rodney.muller@samplecompany.com
ClientManager: jessica.tse@samplecompany.com
ContactType: Client
UserDefinedIdentifier: BILLJR
RestrictionLevel: Public
AvatarUrl: https://az.karbonemail.com/images/e4ae96c1-8d17-4c6e-af8a-8040482176fc
LastModifiedDateTime: '2022-07-05T07:30:13.7188114Z'
EntityDescription:
Text: Birthday on June 23.
AccountingDetail: null
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessages'
examples:
Incorrect or Missing Data:
$ref: '#/components/examples/Missing_Update_Data'
Unsupported Option:
$ref: '#/components/examples/Unsupported_option'
Invalid Property:
$ref: '#/components/examples/Invalid_Property'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ResourceNotFound'
examples:
Unauthorized Access:
$ref: '#/components/examples/UnauthorizedAccess'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessages'
examples:
Permission Denied:
$ref: '#/components/examples/RestrictionLevel_Permission_Denied'
'404':
description: Resource Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ResourceNotFound'
examples:
Key Not Found:
$ref: '#/components/examples/ResourceNotFound'
'429':
description: Rate Limit Exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitErrorMessage'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessages'
examples:
Non existent Key:
$ref: '#/components/examples/Shortened_5001'
Undefined Error:
$ref: '#/components/examples/elongated_5001'
'409':
description: Conflict — the resource was modified by another request. Refetch the latest version and retry.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessages'
examples:
Stale Object State:
$ref: '#/components/examples/Conflict_StaleObjectState'
requestBody:
description: Refer to the table below for more information on each field in the request body.
required: true
content:
application/json:
schema:
type: object
properties:
FirstName:
type: string
description: The first name of the Contact
example: William
MiddleName:
type: string
description: The middle name of the Contact
example: John
LastName:
type: string
description: The last name of the Contact
example: Connor
PreferredName:
type: string
description: The preferred name of the Contact
example: Bill
Salutation:
type: string
description: The title to address the Contact
example: Mr
Suffix:
type: string
description: The suffix of the Contact
example: Jr.
servers:
- url: https://api.karbonhq.com
description: The production API server
components:
examples:
Unsupported_option:
description: The error returned when the query option in a request is not allowed for by the API
value:
error:
code: '4002'
message: Query option '