Create a compliance client
post
https://api.expiryedge.com/v1/createComplianceClienteditor or admin60/minIdempotency-KeyAny method
Request
curl -X POST 'https://api.expiryedge.com/v1/createComplianceClient' \
-H "Authorization: Bearer $EXPIRYEDGE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"name": "Northwind Dental",
"primaryContactName": "Priya Shah",
"email": "priya@northwinddental.example",
"phone": "+1 555 0142",
"website": "https://northwinddental.example",
"address": "12 Harbor Way, Portland, OR",
"industry": "Healthcare",
"status": "Active",
"notes": "Annual license audit in October.",
"customFields": {
"account_manager": "Dana Lee"
}
}'Response
{
"message": "Client created successfully.",
"client": {
"id": "cc_7Rt2vQ",
"name": "Northwind Dental",
"primaryContactName": "Priya Shah",
"email": "priya@northwinddental.example",
"phone": "+1 555 0142",
"website": "https://northwinddental.example",
"address": "12 Harbor Way, Portland, OR",
"industry": "Healthcare",
"status": "Active",
"notes": "Annual license audit in October.",
"customFields": {
"account_manager": "Dana Lee"
},
"isArchived": false,
"archivedAt": null,
"organization_id": "org_northwind",
"user_id": "u_71bXq",
"createdAt": "2026-09-27T14:05:00.000Z",
"updatedAt": "2026-09-27T14:05:00.000Z"
}
}No plan limit applies.
Idempotency-KeystringOptional client-generated key (1-255 characters of letters, digits,- _ : .).pattern: ^[A-Za-z0-9_\-:.]{1,255}$
namestringrequiredRequired on create; cannot be blank on update.primaryContactNamestringemailstringphonestringwebsitestringaddressstringindustrystringstatusstringAny other value is stored asActive.AllowedActiveInactivenotesstringcustomFieldsmap of stringFree-form key/value pairs. Keys are trimmed; values are stored as strings.
201
Created.
messagestringclientobjectA client in the Compliance Documents module.
400 | The request is missing required fields or contains invalid values. |
401 | Missing, expired or invalid bearer token. |
403 | Authenticated, but your role or organization does not allow this action. |
409 | A request with the same Idempotency-Key is still being processed. Retry after Retry-After seconds. |
422 | The Idempotency-Key was already used with a different request body. |
429 | Too many requests for this endpoint from your IP. Wait Retry-After seconds. |
500 | Unexpected server error. Retry later; quote requestId to support. |
