Currencycloud Contacts API
Create, search and manage the list of users that have access in your Currencycloud account or associated sub-accounts.
Create, search and manage the list of users that have access in your Currencycloud account or associated sub-accounts.
openapi: 3.0.3
info:
title: api-onboarding Account Usage Contacts API
version: v1
description: Create, search and manage the list of users that have access in your Currencycloud account or associated sub-accounts.
servers:
- url: /onboarding
description: Relative URL
- url: https://api.currencycloud.com/onboarding
description: Production server (uses live data)
- url: https://devapi.currencycloud.com/onboarding
description: Dev server (uses test data)
tags:
- name: Contacts
description: Create, search and manage the list of users that have access in your Currencycloud account or associated sub-accounts.
paths:
/contacts/current:
get:
tags:
- Contacts
x-api-group: manage
summary: Get Authenticating Contact
description: Gets the contact record for the authenticated user.
operationId: GetAuthenticatingContact
produces:
- application/json
parameters:
- name: X-Auth-Token
in: header
required: true
type: string
description: Authentication token
minLength: 32
responses:
'200':
description: Success.
schema:
$ref: '#/definitions/Contact'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'401':
description: Unauthorized.
x-errors:
- code: invalid_supplied_credentials
category: username
message: Authentication failed with the supplied credentials
params: ''
schema:
$ref: '#/definitions/UnauthorizedError'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'404':
description: Resource not found.
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'429':
description: Too many requests.
x-errors:
- code: too_many_requests
category: base
message: Too many requests have been made to the api. Please refer to the Developer Center for more information
params: ''
schema:
$ref: '#/definitions/RateLimitError'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'500':
description: Internal server error
x-errors:
- code: internal_server_error
category: base
message: Internal server error
params: ''
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'503':
description: Service is temporary unavailable
x-errors:
- code: service_unavailable
category: base
message: Service is temporarily unavailable
params: ''
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
default:
description: Unexpected error.
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
/contacts/find:
post:
tags:
- Contacts
x-api-group: manage
summary: Find Contacts
description: Returns contacts that match the parameters.
operationId: FindContactsPost
produces:
- application/json
parameters:
- name: X-Auth-Token
in: header
required: true
type: string
description: Authentication token
minLength: 32
- name: account_name
in: formData
required: false
type: string
description: Account name
pattern: \S+
minLength: 1
maxLength: 150
- name: account_id
in: formData
required: false
type: string
description: Sub-Account UUID
format: uuid
- name: first_name
in: formData
required: false
type: string
description: The contact's first name.
minLength: 1
maxLength: 100
- name: last_name
in: formData
required: false
type: string
description: The contact's last name.
minLength: 1
maxLength: 100
- name: email_address
in: formData
required: false
type: string
description: The contact's email address.
pattern: ^[\w\.\_\%\-\+]+@([\w-]+\.)+\w{2,}+$
minLength: 6
maxLength: 255
- name: your_reference
in: formData
required: false
type: string
description: User-generated reference code.
minLength: 1
maxLength: 255
- name: phone_number
in: formData
required: false
type: string
description: The contact's phone number.
minLength: 1
maxLength: 100
- name: login_id
in: formData
required: false
type: string
description: The contact's Currencycloud login ID.
minLength: 1
maxLength: 50
- name: status
in: formData
required: false
type: string
enum:
- enabled
- not_enabled
description: Contact status - "enabled" allows the contact to conduct activity on the sub-account, "not_enabled" disables the contact.
- name: locale
in: formData
required: false
type: string
description: Locale code ("en", "en-US", "fr-FR").
minLength: 2
maxLength: 5
- name: timezone
in: formData
required: false
type: string
description: Timezone ("Europe/London", "America/New_York").
minLength: 7
maxLength: 35
- name: page
in: formData
required: false
type: string
description: Page number
pattern: ^\d+$
- name: per_page
in: formData
required: false
type: string
description: Number of results per page.
pattern: ^\d+$
- name: order
in: formData
required: false
type: string
description: Any field name to change the sort order.
minLength: 1
maxLength: 255
- name: order_asc_desc
in: formData
required: false
type: string
enum:
- asc
- desc
default: asc
description: Sort records in ascending or descending order.
responses:
'200':
description: Success.
schema:
properties:
contacts:
type: array
items:
$ref: '#/definitions/Contact'
pagination:
$ref: '#/definitions/Pagination'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'400':
description: Client error.
schema:
$ref: '#/definitions/FindContactsError'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'401':
description: Unauthorized.
x-errors:
- code: invalid_supplied_credentials
category: username
message: Authentication failed with the supplied credentials
params: ''
schema:
$ref: '#/definitions/UnauthorizedError'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'404':
description: Resource not found.
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'429':
description: Too many requests.
x-errors:
- code: too_many_requests
category: base
message: Too many requests have been made to the api. Please refer to the Developer Center for more information
params: ''
schema:
$ref: '#/definitions/RateLimitError'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'500':
description: Internal server error
x-errors:
- code: internal_server_error
category: base
message: Internal server error
params: ''
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'503':
description: Service is temporary unavailable
x-errors:
- code: service_unavailable
category: base
message: Service is temporarily unavailable
params: ''
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
default:
description: Unexpected error.
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
/contacts/{id}:
get:
tags:
- Contacts
x-api-group: manage
summary: Get Contact
description: Gets the contact for the given ID.
operationId: GetContact
produces:
- application/json
parameters:
- name: X-Auth-Token
in: header
required: true
type: string
description: Authentication token
minLength: 32
- name: id
in: path
required: true
type: string
description: Contact UUID
format: uuid
responses:
'200':
description: Success.
schema:
$ref: '#/definitions/Contact'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'400':
description: Client error.
x-errors:
- code: id_is_not_valid_uuid
category: id
message: id should be in UUID format
params: ''
- code: contact_not_found
category: id
message: Contact was not found for this id
params: ''
schema:
$ref: '#/definitions/GetContactError'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'401':
description: Unauthorized.
x-errors:
- code: invalid_supplied_credentials
category: username
message: Authentication failed with the supplied credentials
params: ''
- code: first_name_invalid_format
category: first_name
message: Please make sure that first_name doesn't contain < or > symbols
params: ''
- code: last_name_invalid_format
category: last_name
message: Please make sure that last_name doesn't contain < or > symbols
params: ''
schema:
$ref: '#/definitions/UnauthorizedError'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'404':
description: Resource not found.
schema:
$ref: '#/definitions/NotFoundError'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'429':
description: Too many requests.
x-errors:
- code: too_many_requests
category: base
message: Too many requests have been made to the api. Please refer to the Developer Center for more information
params: ''
schema:
$ref: '#/definitions/RateLimitError'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'500':
description: Internal server error
x-errors:
- code: internal_server_error
category: base
message: Internal server error
params: ''
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'503':
description: Service is temporary unavailable
x-errors:
- code: service_unavailable
category: base
message: Service is temporarily unavailable
params: ''
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
default:
description: Unexpected error.
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
post:
tags:
- Contacts
x-api-group: manage
summary: Update Contact
description: Updates an existing contact. Returns the updated contact entity on success.
operationId: UpdateContact
consumes:
- multipart/form-data
produces:
- application/json
parameters:
- name: X-Auth-Token
in: header
required: true
type: string
description: Authentication token
minLength: 32
- name: id
in: path
required: true
type: string
description: Contact UUID
format: uuid
- name: first_name
in: query
required: false
type: string
description: The contact's first name.
minLength: 1
maxLength: 100
- name: last_name
in: query
required: false
type: string
description: The contact's last name.
minLength: 1
maxLength: 100
- name: email_address
in: query
required: false
type: string
description: The contact's email address. A request to update a contact's email address does not immediately update the value. Instead, an email change request flow is initiated, sending notifications to both the old and new email addresses. The value will be updated when the change is confirmed via a link sent to the new email address.
pattern: ^[\w\.\_\%\-\+]+@([\w-]+\.)+\w{2,}+$
minLength: 6
maxLength: 255
- name: your_reference
in: query
required: false
type: string
description: User-generated reference code.
minLength: 1
maxLength: 255
- name: phone_number
in: query
required: false
type: string
description: The contact's phone number.
minLength: 1
maxLength: 100
- name: mobile_phone_number
in: query
required: false
type: string
description: The contact's mobile phone number.
minLength: 1
maxLength: 100
- name: login_id
in: query
required: false
type: string
description: The contact's Currencycloud login ID.
minLength: 1
maxLength: 50
- name: status
in: query
required: false
type: string
enum:
- enabled
- not_enabled
description: Contact status - "enabled" allows the contact to conduct activity on the sub-account, "not_enabled" disables the contact.
- name: locale
in: query
required: false
type: string
description: Locale code ("en", "en-US", "fr-FR").
minLength: 2
maxLength: 5
- name: timezone
in: query
required: false
type: string
description: Timezone ("Europe/London", "America/New_York").
minLength: 7
maxLength: 35
- name: date_of_birth
in: query
required: false
type: string
format: date
description: Contact's date of birth. ISO 8601 format YYYY-MM-DD. Required if account type is individual.
responses:
'200':
description: Success.
schema:
$ref: '#/definitions/Contact'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'400':
description: Client error.
x-errors:
- code: at_least_one_parameter
category: base
message: 'At least one parameter should be present: first_name, last_name, email_address, phone_number, mobile_phone_number, login_id, locale, timezone, status'
params: ''
- code: id_is_not_valid_uuid
category: id
message: id should be in UUID format
params: ''
- code: first_name_is_too_short
category: first_name
message: first_name cann ot be shorter than 1 character(s)
params: '{ "minlength" => 1 }'
- code: first_name_is_too_long
category: first_name
message: first_name can not be longer than 100 character(s)
params: '{ "maxlength" => 100 }'
- code: last_name_is_too_short
category: last_name
message: last_name can not be shorter than 1 character(s)
params: '{ "minlength" => 1 }'
- code: last_name_is_too_long
category: last_name
message: last_name can not be longer than 100 character(s)
params: '{ "maxlength" => 100 }'
- code: email_address_is_too_short
category: email_address
message: email_address can not be shorter than 1 character(s)
params: '{ "minlength" => 1 }'
- code: email_address_is_too_long
category: email_address
message: email_address can not be longer than 255 character(s)
params: '{ "maxlength" => 255 }'
- code: email_address_is_in_invalid_format
category: email_address
message: email_address is in invalid format
params: ''
- code: phone_number_is_too_short
category: phone_number
message: phone_number can not be shorter than 1 character(s)
params: '{ "minlength" => 1 }'
- code: phone_number_is_too_long
category: phone_number
message: phone_number can not be longer than 100 character(s)
params: '{ "maxlength" => 100 }'
- code: mobile_phone_number_is_too_short
category: mobile_phone_number
message: mobile_phone_number can not be shorter than 1 character(s)
params: '{ "minlength" => 1 }'
- code: mobile_phone_number_is_too_long
category: mobile_phone_number
message: mobile_phone_number can not be longer than 100 character(s)
params: '{ "maxlength" => 100 }'
- code: login_id_in_use
category: login_id
message: 'login_id already in use: john.smith@company.com'
params: ''
- code: login_id_is_too_long
category: login_id
message: login_id can not be longer than 50 character(s)
params: '{ "maxlength" => 50 }'
- code: locale_is_too_short
category: locale
message: locale can not be shorter than 2 character(s)
params: '{ "minlength" => 2 }'
- code: locale_is_too_long
category: locale
message: locale can not be longer than 5 character(s)
params: '{ "maxlength" => 5 }'
- code: timezone_is_too_short
category: timezone
message: timezone can not be shorter than 7 character(s)
params: '{ "minlength" => 7 }'
- code: timezone_is_too_long
category: timezone
message: timezone can not be longer than 35 character(s)
params: '{ "maxlength" => 35 }'
- code: status_not_in_range
category: status
message: 'status should be in range: enabled, not_enabled'
params: ''
- code: date_of_birth_type_is_wrong
category: date_of_birth
message: date_of_birth should be of date type
params: '{ "type" => "date" }'
- code: date_of_birth_is_required
category: date_of_birth
message: Date of Birth is a required field. Please provide date of birth (YYYY-MM-DD)
params: ''
- code: contact_not_found
category: id
message: Contact was not found for this id
params: ''
- code: editing_first_last_name_not_allowed
category: name
message: You cannot edit First and Last name. Please contact support for additional information
params: ''
schema:
$ref: '#/definitions/UpdateContactError'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'401':
description: Unauthorized.
x-errors:
- code: invalid_supplied_credentials
category: username
message: Authentication failed with the supplied credentials
params: ''
- code: first_name_invalid_format
category: first_name
message: Please make sure that first_name doesn't contain < or > symbols
params: ''
- code: last_name_invalid_format
category: last_name
message: Please make sure that last_name doesn't contain < or > symbols
params: ''
schema:
$ref: '#/definitions/UnauthorizedError'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'404':
description: Resource not found.
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'429':
description: Too many requests.
x-errors:
- code: too_many_requests
category: base
message: Too many requests have been made to the api. Please refer to the Developer Center for more information
params: ''
schema:
$ref: '#/definitions/RateLimitError'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'500':
description: Internal server error
x-errors:
- code: internal_server_error
category: base
message: Internal server error
params: ''
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'503':
description: Service is temporary unavailable
x-errors:
- code: service_unavailable
category: base
message: Service is temporarily unavailable
params: ''
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
default:
description: Unexpected error.
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
/contacts/create:
post:
tags:
- Contacts
x-api-group: manage
summary: Create Contact
description: Creates a new contact and attaches it to a sub-account. Returns the new contact entity on success.
operationId: CreateContact
consumes:
- multipart/form-data
produces:
- application/json
parameters:
- name: X-Auth-Token
in: header
required: true
type: string
description: Authentication token
minLength: 32
- name: account_id
in: formData
required: true
type: string
description: Account UUID
format: uuid
- name: first_name
in: formData
required: true
type: string
description: The contact's first name.
minLength: 1
maxLength: 100
- name: last_name
in: formData
required: true
type: string
description: The contact's last name.
minLength: 1
maxLength: 100
- name: email_address
in: formData
required: true
type: string
description: The contact's email address.
pattern: ^[\w\.\_\%\-\+]+@([\w-]+\.)+\w{2,}+$
minLength: 6
maxLength: 255
- name: phone_number
in: formData
required: true
type: string
description: The contact's phone number.
minLength: 1
maxLength: 100
- name: your_reference
in: formData
required: false
type: string
description: User-generated reference code.
minLength: 1
maxLength: 255
- name: mobile_phone_number
in: formData
required: false
type: string
description: The contact's mobile phone number.
minLength: 1
maxLength: 100
- name: login_id
in: formData
required: false
type: string
description: The contact's Currencycloud login ID, allows the contact to login and conduct activity on the sub-account.
minLength: 1
maxLength: 50
- name: status
in: formData
required: false
type: string
enum:
- enabled
- not_enabled
description: Contact status - "enabled" allows the contact to conduct activity on the sub-account, "not_enabled" disables the contact.
- name: locale
in: formData
required: false
type: string
description: Locale code ("en", "en-US", "fr-FR").
minLength: 2
maxLength: 5
- name: timezone
in: formData
required: false
type: string
description: Timezone ("Europe/London", "America/New_York").
minLength: 7
maxLength: 35
- name: date_of_birth
in: formData
required: false
type: string
description: The contact's date of birth. ISO 8601 format YYYY-MM-DD. <b>Required if account type is individual</b>.
format: date
responses:
'200':
description: Success.
schema:
$ref: '#/definitions/Contact'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'400':
description: Client error.
x-errors:
- code: first_name_invalid_format
category: first_name
message: Please make sure that first_name doesn't contain < or > symbols
params: ''
- code: last_name_invalid_format
category: last_name
message: Please make sure that last_name doesn't contain < or > symbols
params: ''
- code: account_id_is_required
category: account_id
message: account_id is required
params: ''
- code: first_name_is_required
category: first_name
message: first_name is required
params: ''
- code: last_name_is_required
category: last_name
message: last_name is required
params: ''
- code: email_address_is_required
category: email_address
message: email_address is required
params: ''
- code: phone_number_is_required
category: phone_number
message: phone_number is required
params: ''
- code: account_id_is_not_valid_uuid
category: account_id
message: account_id should be in UUID format
params: ''
- code: first_name_is_too_short
category: first_name
message: first_name can not be shorter than 1 character(s)
params: '{ "minlength" => 1 }'
- code: first_name_is_too_long
category: first_name
message: first_name can not be longer than 100 character(s)
params: '{ "maxlength" => 100 }'
- code: last_name_is_too_short
category: last_name
message: last_name can not be shorter than 1 character(s)
params: '{ "minlength" => 1 }'
- code: last_name_is_too_long
category: last_name
message: last_name can not be longer than 100 character(s)
params: '{ "maxlength" => 100 }'
- code: email_address_is_too_short
category: email_address
message: email_address can not be shorter than 1 character(s)
params: '{ "minlength" => 1 }'
- code: email_address_is_too_long
category: email_address
message: email_address can not be longer than 255 character(s)
params: '{ "maxlength" => 255 }'
- code: email_address_is_in_invalid_format
category: email_address
message: email_address is in invalid format
params: ''
- code: phone_number_is_too_short
category: phone_number
message: phone_number can not be shorter than 1 character(s)
params: '{ "minlength" => 1 }'
- code: phone_number_is_too_long
category: phone_number
message: phone_number can not be longer than 100 character(s)
params: '{ "maxlength" => 100 }'
- code: mobile_phone_number_is_too_short
category: mobile_phone_number
message: mobile_phone_number can not be shorter than 1 character(s)
params: '{ "minlength" => 1 }'
- code: mobile_phone_number_is_too_long
category: mobile_phone_number
message: mobile_phone_number can not be longer than 100 character(s)
params: '{ "maxlength" => 100 }'
- code: login_id_is_too_short
category: login_id
message: login_id can not be shorter than 1 character(s)
params: '{ "minlength" => 1 }'
- code: login_id_in_use
category: login_id
message: login_id already in use
params: '{"field": "login_id"}'
- code: login_id_is_too_long
category: login_id
message: login_id can not be longer than 50 character(s)
params: '{ "maxlength" => 50 }'
- code: locale_is_too_short
category: locale
message: locale can not be shorter than 2 character(s)
params: '{ "minlength" => 2 }'
- code: locale_is_too_long
category: locale
message: locale can not be longer than 5 character(s)
params: '{ "maxlength" => 5 }'
- code: timezone_is_too_short
category: timezone
message: timezone can not be shorter than 7 character(s)
params: '{ "minlength" => 7 }'
- code: timezone_is_too_long
category: timezone
message: timezone can not be longer than 35 character(s)
params: '{ "maxlength" => 35 }'
- code: status_not_in_range
category: status
message: 'status should be in range: enabled, not_enabled.'
params: ''
- code: date_of_birth_type_is_wrong
category: date_of_birth
message: date_of_birth should be of date type.
params: '{ "type" => "date" }'
- code: date_of_birth_is_required
category: date_of_birth
message: Date of Birth is a required field. Please provide date of birth (YYYY-MM-DD)
params: ''
schema:
$ref: '#/definitions/CreateContactError'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'401':
description: Unauthorized.
x-errors:
- code: invalid_supplied_credentials
category: username
# --- truncated at 32 KB (52 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/currencycloud/refs/heads/main/openapi/currencycloud-contacts-api-openapi.yml