API documentation | API docs for agents | OpenAPI 3.1

POST /api/v1/customers

ark.create_customer

Creates a customer profile and visible team mappings.

Availability
Core preview
Scopes
customers:write
ARK permissions
canCreateCustomer
Team visibility
Required and enforced
Idempotency-Key
Required for this write
Approval
No MCP approval on REST API-token calls
Rate limit
API credential and organization budgets

Parameters

Idempotency-Keyheaderstringrequired
Required for external write operations. Reuse the same key only for exact retries of the same request body.
min length: 1; max length: 200

Request body

namestringrequired

min length: 2; max length: 200

codestring | null

max length: 50

typestring | null

max length: 50

countrystring

one of: USA, CAN, MEX; default: "USA"

defaultCurrencystring

one of: USD, CAD, MXN; default: "USD"

trackingEmailstring | null

max length: 500

notesstring | null

max length: 5000

businessHoursOpenstring | null

max length: 50

businessHoursClosestring | null

max length: 50

paymentTermIdstring | null

format: uuid

teamIdsarray<string>required

min items: 1; max items: 100

defaultInvoiceRemitProfileIdstring | null

Optional customer-specific invoice remit profile ID. Use null to inherit the organization default.

format: uuid

Example request

Shell
curl -X POST 'https://arktms.com/api/v1/customers' \
  -H "Authorization: Bearer $ARK_API_TOKEN" \
  -H "Idempotency-Key: <unique-key>" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "<name>",
  "teamIds": [
    "<teamIds>"
  ]
}'

Success response

Created customer

objectstringrequired

one of: api_response

okbooleanrequired

one of: true

api_versionstringrequired

one of: 2026-05-31

request_idstringrequired
dataobjectrequired
data.idstringrequired

format: uuid

data.namestring | nullrequired
data.codestring | nullrequired
data.typestring | nullrequired
data.notesstring | nullrequired
data.businessHoursOpenstring | nullrequired
data.businessHoursClosestring | nullrequired
data.paymentTermIdstring | nullrequired

format: uuid

data.countrystringrequired

one of: USA, CAN, MEX

data.defaultCurrencystringrequired

one of: USD, CAD, MXN

data.trackingEmailstring | nullrequired
data.teamIdsarray<string>required
data.createdAtstringrequired

format: date-time

data.modifiedAtstring | nullrequired

format: date-time

data.defaultInvoiceRemitProfileIdstring | nullrequired

format: uuid

Errors

HTTP 400
Invalid request
HTTP 401
Authentication required
HTTP 403
Permission, scope, team, or entitlement denied