Schema — Employee
Structura completă a obiectului Employee utilizat în endpoint-urile de contacte ale API-ului ssm.ro.
Obiectul Employee reprezintă un angajat (contact) în platforma ssm.ro. Este folosit ca request body la creare și modificare, și ca răspuns la preluare.
Câmpuri obligatorii
Aceste câmpuri trebuie trimise la fiecare scriere (POST și PATCH), chiar dacă valoarea nu se modifică. Toate celelalte câmpuri din tabelul de mai jos sunt opționale.
| Câmp | Obligatoriu | Observații |
|---|---|---|
organizatie | Da (toate endpoint-urile: GET, POST, PATCH) | Subdomeniul organizației. Lipsește → 400 Organizatia nu este setata; greșit → 400 Organizatie invalida |
marca | Da (POST și PATCH) | Cheia unică a angajatului. Lipsește la POST → 422 Lipsa Marca |
nume | Da | Lipsește → 422 Lipsa Nume |
departament | Da* | Se creează automat dacă nu există, cu opțiunea activată.* Lipsește → 422 Lipsa Departament |
post | Da* | Se creează automat dacă nu există, cu opțiunea activată.* Lipsește → 422 Lipsa Post |
cor | Da* | Se creează automat pe postul respectiv. Lipsește → 422 Lipsa Functie COR |
* Valoarea trebuie trimisă întotdeauna, dar nu e obligatoriu să existe deja în platformă — vezi mai jos.
Crearea automată depinde de o setare a organizației
Un departament sau un post care nu există în platformă este creat automat doar dacă
opțiunea corespunzătoare este activată din Setări → Opțiuni → Setări avansate import
angajați (Adăugare automată departamente / Adăugare automată posturi), editabilă exclusiv
de Super-Utilizator — vezi
Configurări.
Dacă opțiunea este dezactivată, o valoare inexistentă este respinsă cu 422, la fel ca un câmp
lipsă: departamentele și posturile trebuie create în prealabil în platformă.
Câmpuri
| Câmp | Tip | Valori acceptate | Descriere |
|---|---|---|---|
nume | string | — | Numele de familie |
prenume | string | — | Prenumele |
email | string | — | Adresa de email (folosită pentru autentificare în platformă). Unică în cadrul organizației |
departament | string | — | Denumirea departamentului |
codDepartament | string | — | Codul extern al departamentului |
cor | string | — | Funcția conform Clasificării Ocupațiilor din România (COR) |
post | string | — | Grupul de risc din care face parte funcția — determină instruirea SSM trimisă angajatului. Nu este titulatura funcției (aceea este cor) — vezi nota de mai jos |
marca | string | — | Cheia unică de identificare a angajatului (ID intern HR) |
marcaSuperior | string | — | Marca superiorului direct (N+1) |
marcaSuperior2 | string | — | Marca superiorului N+2 (acolo unde se aplică) |
marcaInlocuitor | string | — | Marca înlocuitorului |
adresa | string | — | Adresa angajatului |
localitate | string | — | Localitatea |
judet | string | — | Județul |
dataNasterii | string | text liber | Data nașterii sau data și locul nașterii combinate (ex: 1981-08-24 sau 24.08.1981, Brașov). Câmp text liber, nevalidat ca dată — se trimite exact cum apare în documentele organizației |
locatieFizica | string | — | Locația fizică / biroul (ex: Office 101) |
status | string | activ rez suspendat | Starea contractului angajatului |
organizatie | string | — | Numele organizației din platformă |
echipaPSI | string | Da Nu | Face parte din echipa PSI (Prevenire și Stingere Incendii) |
telefon | string | — | Numărul de telefon al angajatului |
cnp | string | 13 cifre | Cod Numeric Personal. Validat dacă e trimis: exact 13 cifre și unic în organizație |
limba | string | ro en | Limba interfeței angajatului în platformă |
calificare | string | — | Calificarea angajatului |
cetatenie | string | — | Cetățenia angajatului |
nationalitate | string | — | Naționalitatea / țara angajatului |
dataIncepereActivitate | string | YYYY-MM-DD | Data începerii activității (dată contract), format ISO 8601 |
Exemplu complet
{
"nume": "Ion",
"prenume": "Popescu",
"email": "ion.popescu@exemplu.ro",
"departament": "Finanțe",
"codDepartament": "D163",
"cor": "Referent bancar",
"post": "Tesa",
"marca": "M00212",
"marcaSuperior": "M00132",
"marcaSuperior2": "M0081",
"marcaInlocuitor": "M00301",
"adresa": "Str. Soarelui nr. 2",
"localitate": "Brașov",
"judet": "Brașov",
"dataNasterii": "1981-08-24",
"locatieFizica": "Office 101",
"status": "activ",
"organizatie": "demo-organization",
"echipaPSI": "Nu",
"telefon": "+40722333444",
"cnp": "1800101221144",
"limba": "ro",
"calificare": "Inginer",
"cetatenie": "Romana",
"nationalitate": "Romania",
"dataIncepereActivitate": "2020-01-15"
}Note
- Câmpul
marcaeste identificatorul unic al angajatului și este folosit ca cheie de căutare înGET /v1/contacts?marca=și ca referință în ierarhia de superiori. - La
PATCH /v1/contacts/update, se trimite schema completă Employee. Câmpurile obligatorii (organizatie,marca,nume,departament,post,cor) trebuie incluse și aici, nu doar la creare;organizatieșimarcaidentifică contactul. - Valorile goale nu șterg datele. Un câmp trimis cu
nullsau""este ignorat, iar valoarea existentă rămâne neschimbată. Pentru a anula o informație dintr-un câmp text liber, trimite orice șir de caractere nevid (ex:"-","n/a") — vezi Contacte. - Valorile
status:activ= angajat activ,rez= rezervat / inactiv temporar,suspendat= suspendat. - Departament identificat prin
codDepartament. Departamentul este identificat dupăcodDepartament(codul extern unic din HR). Dacă trimiți acelașicodDepartamentcu o valoaredepartamentdiferită față de cea existentă, denumirea departamentului este actualizată (redenumire), fără a crea un departament nou. Astfel, o redenumire în HR se propagă în platformă câtă vreme codul rămâne același. cnpeste validat doar dacă e trimis: trebuie să aibă exact 13 cifre și să fie unic în organizație.telefoneste normalizat automat; valorile prea scurte (sub 9 cifre) sunt ignorate, fără eroare.dataIncepereActivitate: o dată neparsabilă este tratată ca goală (câmpul este ignorat, fără eroare).posteste grupul de risc, nu titulatura funcției. Titulatura estecor(funcția conform COR);posteste categoria definită de inspectorul SSM care grupează un set de funcții COR și în baza căreia se trimite instruirea corespunzătoare (ex:Lucratori birou,Lucratori cu risc electric,Lucratori la inaltime). Posturile se creează manual de inspector în platformă sau automat la import, dacă super utilizatorul a activat Adăugare automată posturi (altfel un post inexistent întoarce422); o funcție a cărei alocare lipsește ajunge temporar în grupul intern_FUNCTII_NEALOCATE_, până la alocarea manuală. Pentru un exemplu de maparecor→post, vezi Exemplu Node.js.emaileste unic în cadrul organizației. Două contacte cumarcadiferită nu pot avea acelașiemailîn aceeași organizație. Pentru angajații cu mai multe contracte, vezi Angajați cu mai multe contracte.