E030: Create contact
POST /api/contacts
Creates a contact record in the shared pool. Triggered from any place that surfaces the shared contacts UI (Customer Detail, Vendor Detail, etc.). Does not link the contact to anything; linking is a separate workflow.
Authentication
Standard tenant route. Requires Authorization: Bearer <firebase-id-token> and X-Org-Id: <org-id>. Access: Member.
Request
{ "firstName": "Jane", "lastName": "Doe", "title": "Account Manager", "notes": "..." }
Response — 201 Created
{
"id": "uuid",
"firstName": "Jane",
"lastName": "Doe",
"title": "Account Manager",
"notes": "...",
"createdAt": "..."
}
Errors
| HTTP | code | Condition |
|---|---|---|
| 422 | validation_failed | Both names empty, or shape invalid. |
Workflow
Calls W030 Create contact.