Admin APICustomers

Create Customer

Create a customer through the Admin API

Creates a customer in the API key's organization.

Endpoint

POST /customers

Authentication

Requires a valid Admin API key with customer write permission.

Authorization: Bearer your_api_key_here

Test the API

Enter your Admin API key in the authorization field, complete the request body, and select Send.

This sends a live production request and creates a customer in the API key's organization. Your API key is stored only in this browser's local storage, so use the tester on a trusted device.

POST
/customers

Authorization

BearerAuth
AuthorizationBearer <token>

API key from the Tiquo dashboard (Settings > Developer > Admin API)

In: header

Request Body

application/json

parameters?

Customer parameter updates keyed by system ID, custom schema ID, name, or normalized name. Requires customers.write and staff-editable parameters. Submitted values replace existing values; omitted or null values are unchanged. Use an empty string or empty array to clear optional values. Select/multiselect values must match active configured options. Compound values use a JSON string. Consent accepts true/false and records the opt-in date automatically. Invalid values or inaccessible schemas reject the entire customer write with HTTP 400.

firstName?string
lastName?string
displayName?string
title?|

A title code (mr, mrs, ms, miss, mx, dr, prof; "Mr." also works) or any other text, which is stored as a custom title. An empty string or null clears the title.

customTitle?|

Custom title text, used with title "other".

nickname?|

Empty string or null clears.

emails?array<>
phones?array<>
customerNumber?string

Custom ID (5-32 chars). Auto-generated if omitted.

status?string
Default"active"
Value in"active" | "inactive" | "banned"
source?string
Default"admin"
profilePhoto?string
Formaturi

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://api.tiquo.app/api/v1/customers" \  -H "Content-Type: application/json" \  -d '{}'
{
  "success": true,
  "data": {
    "id": "string",
    "customerNumber": "string",
    "firstName": "string",
    "lastName": "string",
    "displayName": "string",
    "title": "mr",
    "customTitle": "string",
    "nickname": "string",
    "emails": [
      {
        "address": "user@example.com",
        "isPrimary": true
      }
    ],
    "phones": [
      {
        "number": "string",
        "isPrimary": true
      }
    ],
    "profilePhoto": "string",
    "status": "active",
    "source": "string",
    "totalOrders": 0,
    "totalSpent": 0,
    "averageOrderValue": 0,
    "lifetimeValue": 0,
    "lastOrderDate": 0,
    "lastActivityDate": 0,
    "createdAt": 0,
    "updatedAt": 0,
    "marketingOptIn": true,
    "smsOptIn": true
  },
  "timestamp": "2019-08-24T14:15:22Z"
}
{
  "success": false,
  "error": "string",
  "timestamp": "2019-08-24T14:15:22Z"
}
{
  "success": false,
  "error": "string",
  "timestamp": "2019-08-24T14:15:22Z"
}
{
  "success": false,
  "error": "string",
  "timestamp": "2019-08-24T14:15:22Z"
}
{
  "success": false,
  "error": "string",
  "timestamp": "2019-08-24T14:15:22Z"
}

Request body

At least one of firstName, lastName, or displayName is required.

FieldTypeRequiredDescription
firstNamestringNo*First name
lastNamestringNo*Last name
displayNamestringNo*Display name
titlestringNoTitle code (mr, mrs, ms, miss, mx, dr, prof) or any other title text, which is saved as a custom title. See Titles and nicknames
customTitlestringNoCustom title text, used with title: "other"
nicknamestringNoThe name the customer likes to be called
emailsarrayNoEmail entries containing address and isPrimary
phonesarrayNoPhone entries containing number and isPrimary
customerNumberstringNoCustom customer number from 5 to 32 characters; generated when omitted
statusstringNoactive (default), inactive, or banned
sourcestringNoAcquisition source; defaults to admin
profilePhotostringNoProfile-photo URL
parametersobjectNoCustomer parameter updates; requires staff-editable schemas

*One of firstName, lastName, or displayName must be supplied.

Customer parameters

Include parameters to initialize customer preferences and custom values in the same write. Submitted values replace seeded defaults, including Marketing and SMS Opt-In. Keys may be system IDs, custom schema IDs, names, or normalized names. A customers.write key and staff-editable parameters are required.

{
  "firstName": "Jane",
  "parameters": {
    "system_marketing_opt_in": true,
    "system_sms_opt_in": false
  }
}

Omitted/null parameter values are unchanged. Invalid schemas, options, or edit permissions reject the whole customer write with 400. See Update Customer for supported types, clearing values, consent timestamps, and schema discovery.

Example request

curl -X POST "https://api.tiquo.app/api/v1/customers" \
  -H "Authorization: Bearer your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "firstName": "Jane",
    "lastName": "Smith",
    "title": "dr",
    "nickname": "Janie",
    "emails": [
      { "address": "jane@example.com", "isPrimary": true }
    ],
    "phones": [
      { "number": "+15551234567", "isPrimary": true }
    ],
    "source": "referral"
  }'

Response

A successful request returns 201 Created and the created customer in data.

Duplicate email addresses or phone numbers return 409 Conflict. Invalid fields return 400 Bad Request.