---
title: "Přidat nebo Upravit zákazníka"
description: "Pro dané ID/Externí ID zkontroluje existenci zákazníka. V případě, že neexistuje, je do systému přidán. V opačném případě bude zákazník upraven podle zaslaných informací."
url: /cs/api-reference/legacy/zakaznici/pridat-nebo-upravit-zakaznika/
---

Parametry, které nebudou zaslány zůstanou v případě úpravy existujícího zákazníka nezměněny. \
Navázané entity (adresy, kontaktní osoby, zařízení) budou také upraveny, v případě shody identifikátoru, v opačném případě budou přidány. \
Existující navázané entity, které nejsou součástí požadavku, se nesmažou ale zůstanou v systému beze změny.

<Endpoint method="POST" path="/customer/addOrEdit" />

### Tělo požadavku
<Param name="id" type="string(GUID)">
Nepovinné. ID zákazníka.
</Param>

<Param name="externalId" type="string">
Nepovinné. Unikátní identifikátor záznamu

:::note
Pokud není zaslán ani jeden z identifikátorů (ID nebo Externí ID) dojde vždy k založení nového zákazníka.

Pokud není vyplněno ID, použije se pro vyhledání existujícího záznamu pouze Externí ID. Pokud je vyplněno ID i Externí ID, musí existovat zákazník, který ma oba údaje shodné. Tzn. v případě existujícího zákazníka není možné touto operací Externí ID změnit ani nastavit.

Pro změnu Externího ID existujícího zákazníka použijte [Editace zákazníka](/cs/api-reference/legacy/zakaznici/editace-zakaznika/).
:::
</Param>

<Param name="name" type="string" required>
Jméno zákazníka
</Param>

<Param name="categoryId" type="string/string(GUID)">
ID nebo Slug kategorie zákazníka ([CustomerCategory](/cs/api-reference/legacy/obecne-informace/datovy-model/ciselniky-a-vycty/#customercategory))\
Pokud není vyplněno a jedná se o přidání zákazníka, použije se první hodnota z číselníku CustomerCategory.
</Param>

<Param name="typeId" type="string/string(GUID)">
ID nebo Slug typu zákazníka ([CustomerType](/cs/api-reference/legacy/obecne-informace/datovy-model/ciselniky-a-vycty/#customertype))\
Pokud není vyplněno a jedná se o přidání zákazníka, použije se první hodnota z číselníku CustomerType
</Param>

<Param name="kind" type="CustomerKind">
Druh zákazníka ([CustomerKind](/cs/api-reference/legacy/obecne-informace/datovy-model/ciselniky-a-vycty/#customerkind))\
Výchozí hodnota: `Company`
</Param>

<Param name="contactPeople" type="ContactPersonToAdd[]">
Kontaktní osoby zákazníka.\
Obsah je shodný s endpointem [Přidání kontaktní osoby](/cs/api-reference/legacy/zakaznici/kontaktni-osoba/pridani-kontaktni-osoby/#tělo-požadavku) s tím, že je doplněn o ID.
</Param>

<Param name="addresses" type="CustomerAddressToAdd[]">
Adresy zákazníka\
Obsah je shodný s endpointem [Přidání adresy](/cs/api-reference/legacy/zakaznici/adresa-zakaznika/pridani-adresy/#tělo-požadavku) s tím, že je doplněn o ID.
</Param>

<Param name="serviceObjects" type="ServiceObjectToAdd[]">
Zařízení zákazníka\
Obsah je shodný s endpointem [Přidání zařízení](/cs/api-reference/legacy/zakaznici/zarizeni/pridani-zarizeni/#tělo-požadavku) s tím, že je doplněn o ID.
</Param>

<Param name="primaryContactPersonId" type="string">
Externí ID primární kontaktní osoby\
Pokud není vyplněno a jedná se o přidání zákazníka, použije se první kontaktní osoba z  `contactPeople`
</Param>

<Param name="invoiceAddressId" type="string">
Externí ID fakturační adresy\
Pokud není vyplněno a jedná se o přidání zákazníka, použije se první adresa z `addresses`
</Param>

<Param name="contactAddressId" type="string">
Externí ID kontaktní adresy zákazníka (pouze pro firmy viz [CustomerKind](/cs/api-reference/legacy/obecne-informace/datovy-model/ciselniky-a-vycty/#customerkind))
</Param>

<Param name="ownerId" type="string">
ID nebo Externí ID vlastníka. Pokud není manuálně nastaveno, je vlastníkem standardně uživatel, který zákazníka založil. V případě založení přes API je vlastníkem zákazníka uživatel s rolí Administrátor.
</Param>

<Param name="identificationNumber" type="string">
IČ (pouze pro firmy viz [CustomerKind](/cs/api-reference/legacy/obecne-informace/datovy-model/ciselniky-a-vycty/#customerkind))
</Param>

<Param name="taxNumber" type="string">
DIČ (pouze pro firmy viz [CustomerKind](/cs/api-reference/legacy/obecne-informace/datovy-model/ciselniky-a-vycty/#customerkind))
</Param>

<Param name="website" type="string">
Webová stránka
</Param>

<Param name="description" type="string">
Poznámky
</Param>

<Param name="customData" type="string(JSON)">
Dodatečná data k zákazníkovi ve formátu JSON. Musí odpovídat šabloně.
</Param>

### Odpověď
<Status code="204 No Content">
Zákazník byl úspěšně přidán, nebo upraven.
</Status>

<Status code="400, 401, atd.">
Více informací na stránce [standardní chybové stavy](/cs/api-reference/legacy/obecne-informace/standardni-chybove-stavy/).
</Status>

### Příklad

```bash
curl -L -X POST 'https://app.mwork365.com/main/publicapi/customer/addOrEdit' \
-H 'Authorization: Bearer eyJhb...WlUw' \
-H 'Content-Type: application/json' \
--data-raw '{
    "externalId": "mwork",
    "kind": "Company",
    "name": "mWork365 s.r.o.",
    "identificationNumber": "07722923"
    "categoryId": "zakladni",
    "typeId": "normal",
    "website": "https://www.mwork365.com",
    "contactPeople:" [
        {
            "externalId": "mwork_p1",
            "firstName": "Jan",
            "lastName": "Novák",
            "position": "Vedoucí provozu",
            "phone": {
                "prefix": "+420",
                "phone": "999777888"
            },
            "sendNotifications": true
        },
        {
            "externalId": "mwork_p2",
            "firstName": "Tomáš",
            "lastName": "Dvořák",
            "position": "Jednatel",
            "email": "tomas.dvorak@mwork365.com"
            "sendNotifications": true,
            "sendReports": true
        }
    ],
    "addresses": [
        {
            "street": "Novoveská 1262/95",
            "city": "Ostrava",
            "postalCode": "709 00",
            "country": "Česká Republika",
            "coordinates": {
                "latitude": 49.83284,
                "longitude": 18.24369
            }
        }
    ],
    "primaryContactPersonId": "mwork_p2"
}'
```
