if you look at the documentation you'll find that actually the email is not optional so is needed in order to update the customer
customer-data-customer-interface {
id (integer, optional): Customer id ,
groupId (integer, optional): Group id ,
defaultBilling (string, optional): Default billing address id ,
defaultShipping (string, optional): Default shipping address id ,
confirmation (string, optional): Confirmation ,
createdAt (string, optional): Created at time ,
updatedAt (string, optional): Updated at time ,
createdIn (string, optional): Created in area ,
dob (string, optional): Date of birth ,
email (string): Email address ,
firstname (string): First name ,
lastname (string): Last name ,
middlename (string, optional): Middle name ,
prefix (string, optional): Prefix ,
suffix (string, optional): Suffix ,
gender (integer, optional): Gender ,
storeId (integer, optional): Store id ,
taxvat (string, optional): Tax Vat ,
websiteId (integer, optional): Website id ,
addresses (Array[customer-data-address-interface], optional): Customer addresses. ,
disableAutoGroupChange (integer, optional): Disable auto group change flag. ,
extensionAttributes (customer-data-customer-extension-interface, optional),
customAttributes (Array[framework-attribute-interface], optional): Custom attributes values.
}
but if you try with the email at the current release you'll see there also another param that is not optional (problably the documentation has to be updated). here is the very least needed to do the update:
{
"customer": {
"email": "email@here.me",
"firstname": "firstname new",
"lastname": "lastname new",
"website_id": 1
}
}
Best Answer
This is working for me:
template - "email_reset" is not real template which you can create in admin. It is constant which I found in AccountManagenet.php.
Reference