# Update customer contact Partially update a customer contact. Only provided fields will be updated. - Omitted fields: Not modified (current value preserved) - Provided fields: Updated to the new value - Null values: Clear the field (set to null) where applicable When updating contactInfo, the underlying Contact record is updated. Endpoint: PATCH /customer-contacts/{id} Version: 1.0.0 Security: BearerAuth ## Path parameters: - `id` (string, required) Resource ID (UUID) or client key Example: "550e8400-e29b-41d4-a716-446655440000" ## Request fields (application/json): - `name` (string) Contact person's name (should match contactInfo.name if updating both) Example: "John Smith" - `contactInfo` (any) Contact information update. Provide partial or full contact data to update the parent Contact record. Cannot be set to null (contact info is required). - `phoneExtension` (string,null) Phone extension Example: "1234" - `isPrimary` (boolean) Whether this is the primary contact Example: true - `contactTypes` (array,null) Types/roles this contact serves (replaces entire array) Enum: "ACCOUNT_MANAGER", "BILLING", "DOCK_SHIPPING", "EMERGENCY", "LOCATION_MANAGER", "OWNER", "PROCUREMENT", "PURCHASING", "RATES_PRICING", "RECEIVING", "SHIPPING" - `notifications` (array,null) Notification types (replaces entire array) Enum: "SHIPMENT_DELIVERED", "SHIPMENT_IN_TRANSIT", "SHIPMENT_LOADING", "SHIPMENT_OUT_FOR_DELIVERY", "SHIPMENT_PICKED_UP", "SHIPMENT_TENDER_REJECTED", "SHIPMENT_UNLOADING" - `key` (string,null) Client-defined reference identifier Example: "ERP-CONTACT-JOHN-001" ## Response 200 fields (application/json): - `object` (string) Object type identifier Enum: "CUSTOMER_CONTACT" - `id` (string, required) Unique contact identifier Example: "550e8400-e29b-41d4-a716-446655440000" - `customer` (object, required) Customer this contact belongs to (full customer details) - `customer.id` (string, required) Customer UUID Example: "550e8400-e29b-41d4-a716-446655440000" - `customer.key` (string,null) Client-defined reference ID if set Example: "ERP-CUSTOMER-ACME" - `customer.name` (string, required) Customer company name Example: "Acme Manufacturing Corp" - `customer.friendlyId` (string, required) Human-readable customer identifier Example: "A123456" - `customer.status` (string, required) Customer status Enum: "PROSPECT", "ACTIVE", "INACTIVE", "CHURNED" - `customer.phoneNumber` (string,null) Primary phone number Example: "+1-555-123-4567" - `customer.website` (string,null) Customer website URL Example: "https://acme-manufacturing.com" - `customer.createdAt` (string, required) When the customer was created Example: "2025-01-15T10:00:00Z" - `customer.updatedAt` (string, required) When the customer was last updated Example: "2025-01-15T14:30:00Z" - `customer.deletedAt` (string,null) When the customer was soft deleted (null if active) - `name` (string, required) Contact person's name (denormalized from ContactInfo for convenience) Example: "John Smith" - `contactInfo` (object, required) Contact information details (email, phone, title) - nested from parent Contact record - `contactInfo.name` (string, required) Contact person's full name Example: "John Smith" - `contactInfo.email` (string,null) Email address Example: "john.smith@example.com" - `contactInfo.phoneNumber` (string,null) Phone number Example: "+1-555-0100" - `contactInfo.title` (string,null) Job title or position Example: "Operations Manager" - `phoneExtension` (string,null) Phone extension specific to this contact role Example: "1234" - `isPrimary` (boolean, required) Whether this is the primary contact for the customer Example: true - `contactTypes` (array,null) Types/roles this contact serves Enum: "ACCOUNT_MANAGER", "BILLING", "DOCK_SHIPPING", "EMERGENCY", "LOCATION_MANAGER", "OWNER", "PROCUREMENT", "PURCHASING", "RATES_PRICING", "RECEIVING", "SHIPPING" - `notifications` (array,null) Shipment notification types to send to this contact Enum: "SHIPMENT_DELIVERED", "SHIPMENT_IN_TRANSIT", "SHIPMENT_LOADING", "SHIPMENT_OUT_FOR_DELIVERY", "SHIPMENT_PICKED_UP", "SHIPMENT_TENDER_REJECTED", "SHIPMENT_UNLOADING" - `invitedUser` (any) User account invited/created for this contact (full user details) - `deletedBy` (any) User who deleted this contact (full user details) - `key` (string,null) Client-defined reference identifier Example: "ERP-CONTACT-JOHN-001" - `createdAt` (string, required) When the contact was created Example: "2025-01-15T10:00:00Z" - `deletedAt` (string,null) When the contact was soft deleted (null if active) ## Response 400 fields (application/json): - `error` (string, required) Error code - `message` (string, required) Human-readable error message ## Response 401 fields (application/json): - `error` (string, required) Error code - `message` (string, required) Human-readable error message ## Response 404 fields (application/json): - `error` (string, required) Error code - `message` (string, required) Human-readable error message ## Response 409 fields (application/json): - `error` (string, required) Error code - `message` (string, required) Human-readable error message ## Response 500 fields (application/json): - `error` (string, required) Error code - `message` (string, required) Human-readable error message