Create Customer
Create a customer through the Admin API
Create Customer
Creates a customer in the API key's organization.
Endpoint
POST /customersAuthentication
Requires a valid Admin API key with customer write permission.
Authorization: Bearer your_api_key_hereTest 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.
Authorization
BearerAuth API key from the Tiquo dashboard (Settings > Developer > Admin API)
In: header
Request Body
application/json
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.
Custom ID (5-32 chars). Auto-generated if omitted.
"active""active" | "inactive" | "banned""admin"uriResponse 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",
"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.
| Field | Type | Required | Description |
|---|---|---|---|
firstName | string | No* | First name |
lastName | string | No* | Last name |
displayName | string | No* | Display name |
emails | array | No | Email entries containing address and isPrimary |
phones | array | No | Phone entries containing number and isPrimary |
customerNumber | string | No | Custom customer number from 5 to 32 characters; generated when omitted |
status | string | No | active (default), inactive, or banned |
source | string | No | Acquisition source; defaults to admin |
profilePhoto | string | No | Profile-photo URL |
parameters | object | No | Customer 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",
"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.