WfirmaClientData

Pseudo-zasób bez własnej tabeli. Aktualizuje dane klienta po identyfikatorze wFirmy: e-mail, imię, nazwisko i nazwę firmy w koncie klienta, w koncie eksperckim w instancji biura (gdy istnieje) oraz w wizytówkach (osobach kontaktowych) we wszystkich instancjach, do których klient jest wpięty.

Uprawnienia:

  • Konto techniczne wFirmy (rola 0) — POST. Każda inna rola dostaje 403.

Aktualizacja danych klienta

POST /rest/wfirma_client_data

Semantyka patch — pole nieprzysłane znaczy „nie zmieniaj". external_user_id jest wymagany, pozostałe pola opcjonalne.

Treść żądania
{
    "WfirmaClientData": {
        "external_user_id": "12345",
        "email": "klient@example.com",
        "firstname": "Jan",
        "lastname": "Kowalski",
        "company_name": "Firma Jan Kowalski"
    }
}
Zwracane dane

Odpowiedź jest zawsze 200 — zasób niczego nie tworzy.

// HTTP/1.1 200 OK
{
    "status": "success",
    "message": {
        "updated": true,
        "user_client_id": "1920",
        "updated_initiators": 2
    }
}

Gdy żadne przysłane pole nie różni się od aktualnej wartości, zapis jest pomijany:

// HTTP/1.1 200 OK
{
    "status": "success",
    "message": {
        "updated": false
    }
}

Brak wizytówki klienta w którejś z instancji jest pomijany i liczy się jako sukces — nie jest wliczany do updated_initiators.

Błędy

Nieznany identyfikator wFirmy — albo konto jest zbanowane lub usunięte:

// HTTP/1.1 404 Not Found
{
    "status": "error",
    "errorMessages": "Nie znaleziono klienta o podanym identyfikatorze wFirmy.",
    "errorCode": "CLIENT_USER_NOT_FOUND"
}

Niepoprawny format adresu e-mail albo przekroczona długość (maksymalnie 64 znaki — tyle mieści kolumna, mimo że SSO dopuszcza 255):

// HTTP/1.1 400 Bad Request
{
    "status": "error",
    "errorMessages": "Nieprawidłowy format lub długość adresu e-mail.",
    "errorCode": "VALIDATION_FAILED"
}

Nowy adres e-mail należący do konta niebędącego klientem — eksperta albo pracownika biura:

// HTTP/1.1 403 Forbidden
{
    "status": "error",
    "errorMessages": "Podany adres e-mail należy do innego użytkownika.",
    "errorCode": "EMAIL_TAKEN_BY_USER"
}

Nowy adres e-mail należący do innego klienta (u nas albo w SSO):

// HTTP/1.1 403 Forbidden
{
    "status": "error",
    "errorMessages": "Podany adres e-mail należy do innego klienta.",
    "errorCode": "EMAIL_TAKEN_BY_CLIENT"
}

SSO niedostępne — żadne dane nie zostały zmienione, można ponowić:

// HTTP/1.1 503 Service Unavailable
{
    "status": "error",
    "errorMessages": "Nie udało się zaktualizować adresu konta w SSO.",
    "errorCode": "SSO_UNAVAILABLE"
}