> For the complete documentation index, see [llms.txt](https://invoice4u.gitbook.io/invoice4u-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://invoice4u.gitbook.io/invoice4u-docs/customers/update-customer.md).

# Update a Customer

Updates an existing customer. The customer must exist and belong to the authenticated organization.

## Endpoint

|              |                                                            |
| ------------ | ---------------------------------------------------------- |
| **Method**   | `POST`                                                     |
| **Path**     | `/UpdateCustomer`                                          |
| **Response** | `Customer` object (check `Errors` and negative `ID` codes) |

## Request schema

| Field   | Type     | Required | Description                                                                                                                                                                                                                          |
| ------- | -------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `cu`    | Customer | Yes      | The customer to update. `ID` **must** be a valid existing customer ID (`ID = 0` is rejected). All other fields per [the Customer object](/invoice4u-docs/customers/overview.md#the-customer-object) — supply the full desired state. |
| `token` | string   | Yes      | Authentication token.                                                                                                                                                                                                                |

## Example request

```http
POST /Services/ApiService.svc/UpdateCustomer HTTP/1.1
Host: apiqa.invoice4u.co.il
Content-Type: application/json

{
  "cu": {
    "ID": 88231,
    "Name": "Acme Ltd",
    "Email": "accounts@acme.example",
    "PayTerms": 60,
    "Active": true
  },
  "token": "<token>"
}
```

## Example response

```json
{
  "UpdateCustomerResult": {
    "ID": 88231,
    "Name": "Acme Ltd",
    "Email": "accounts@acme.example",
    "PayTerms": 60,
    "Errors": []
  }
}
```

## Errors

| Error (ID)                        | Meaning                                                                                                                                    |
| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| `UnauthorizedUser` (80)           | Invalid token.                                                                                                                             |
| `ClientDoesntExists` (7)          | `ID` is `0` or the customer doesn't exist in your organization.                                                                            |
| `CustomerNameCanNotBeEmpty` (28)  | `Name` missing.                                                                                                                            |
| `CustomerUniqueIdNotNumeric` (79) | `UniqueID` contains non-digits.                                                                                                            |
| `ID = -1 … -4`                    | Duplicate name / external number / unique ID / GUID — see [result codes](/invoice4u-docs/customers/overview.md#createupdate-result-codes). |

## Try it

## Update a customer

> Updates an existing customer. \`cu.ID\` must be a valid existing customer ID.

```json
{"openapi":"3.0.3","info":{"title":"Invoice4U API","version":"1.0.0"},"tags":[{"name":"Customers","description":"Create, update and retrieve customers."}],"servers":[{"url":"https://api.invoice4u.co.il/Services/ApiService.svc","description":"Production"},{"url":"https://apiqa.invoice4u.co.il/Services/ApiService.svc","description":"QA (staging)"}],"paths":{"/UpdateCustomer":{"post":{"tags":["Customers"],"operationId":"UpdateCustomer","summary":"Update a customer","description":"Updates an existing customer. `cu.ID` must be a valid existing customer ID.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["cu","token"],"properties":{"cu":{"$ref":"#/components/schemas/Customer"},"token":{"type":"string"}}}}}},"responses":{"200":{"description":"The updated customer.","content":{"application/json":{"schema":{"type":"object","properties":{"UpdateCustomerResult":{"$ref":"#/components/schemas/Customer"}}}}}}}}}},"components":{"schemas":{"Customer":{"allOf":[{"$ref":"#/components/schemas/CommonObject"},{"type":"object","required":["Name"],"properties":{"ID":{"type":"integer","description":"0/omitted on create; required on update. Negative values are conflict codes: -1 name, -2 external number, -3 unique ID, -4 GUID."},"Name":{"type":"string"},"UniqueID":{"type":"string","nullable":true,"description":"VAT/company/ID number. Digits only."},"Email":{"type":"string","nullable":true},"Phone":{"type":"string","nullable":true},"Cell":{"type":"string","nullable":true},"Fax":{"type":"string","nullable":true},"Address":{"type":"string","nullable":true},"City":{"type":"string","nullable":true},"Zip":{"type":"string","nullable":true},"Country":{"type":"string","nullable":true},"CountryId":{"type":"integer","nullable":true},"ExtNumber":{"type":"integer","format":"int64","nullable":true,"description":"Your external customer number. Unique per organization."},"Active":{"type":"boolean"},"PayTerms":{"type":"integer","description":"Payment terms in days (0 = due now, 30 = EOM+30, ...)."},"IsNonUniqueNameCreation":{"type":"boolean","nullable":true,"description":"Allow duplicate names. Default false."},"Guid":{"type":"string","nullable":true,"description":"Your external GUID. Unique per organization."},"ClientCode":{"type":"integer"},"ContactFirstName":{"type":"string","nullable":true},"ContactLastName":{"type":"string","nullable":true},"ContactName":{"type":"string","nullable":true},"ContactEmail":{"type":"string","nullable":true},"CustomerEmails":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/AssociatedEmail"}},"AccountNumber":{"type":"string","nullable":true},"BankName":{"type":"string","nullable":true},"BranchName":{"type":"string","nullable":true},"Website":{"type":"string","nullable":true},"InternalNote":{"type":"string","nullable":true},"OrgID":{"type":"integer","readOnly":true}}}]},"CommonObject":{"type":"object","description":"Response envelope inherited by most objects. Server-generated — never send these fields in requests. Always check Errors before using the payload.","properties":{"Errors":{"type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/CommonError"}},"Info":{"type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/CommonInfo"}},"OpenInfo":{"type":"object","readOnly":true,"additionalProperties":{"type":"string"},"nullable":true}}},"CommonError":{"type":"object","properties":{"ID":{"type":"integer","description":"Numeric error code, e.g. 80 = UnauthorizedUser, 134 = DocumentAlreadyCreated."},"Error":{"type":"string","description":"Error name."},"Paramters":{"type":"string","nullable":true,"description":"Optional context, e.g. \"Row Number - 0\"."}}},"CommonInfo":{"type":"object","properties":{"ID":{"type":"integer"},"Info":{"type":"string"},"Paramters":{"type":"string","nullable":true}}},"AssociatedEmail":{"type":"object","required":["Mail"],"properties":{"Mail":{"type":"string","format":"email"},"IsUserMail":{"type":"boolean","description":"true marks the copy sent to the account owner."},"ClientId":{"type":"integer","nullable":true},"IsSendDoc":{"type":"boolean","nullable":true}}}}}}
```
