id or externalId. Only the fields you send aresk_…).id or externalId to locate the record.id, an externalId in the body is treated as a new value andexternalId only, it must reference an existing record.404 with error: null.metadata is replaced wholesale when provided (not deep-merged).curl --location --request PUT 'https://api-dev.skiplino.com/external/v1/customers/update' \
--header 'X-Locale;' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"id": "9f2c8b7a4e1d6c3f0a5b8e2d7c4f1a9b",
"name": "Layla A. Hassan",
"mobile": "+97333778899"
}'{
"message": "Customer updated successfully.",
"data": {
"_id": "9f2c8b7a4e1d6c3f0a5b8e2d7c4f1a9b",
"externalId": "crm-7741",
"companyId": "cmp_5f3a91",
"name": "Layla A. Hassan",
"email": "layla.hassan@example.com",
"mobile": "+97333778899",
"metadata": {
"tier": "gold"
},
"createdAt": "2026-06-23T11:00:00.000Z",
"updatedAt": "2026-06-23T12:30:00.000Z"
}
}