API Comarch TNA

Public API

Informacje ogólne o Comarch TNA API

Usługa Comarch TNA umożliwia integrację z zewnętrznymi systemami za pośrednictwem dedykowanego API, udostępniającego szereg pomocnych funkcjonalności. Komunikacja odbywa się przez wymianę obiektów JSON i zabezpieczona jest szyfrowanym protokołem HTTPS.

Możliwości dotyczące zarządzania pracownikami:

  • pobieranie listy pracowników
  • dodanie nowego pracownika
  • edycja danych pracownika
  • usunięcie pracownika
  • pobranie danych o pracowniku

Możliwości dotyczące zarządzania czasem pracy pracownika:

  • sprawdzenie aktualnej obecności pracownika
  • sprawdzenie historii wejść/wyjść

Aktywacja API

W celu aktywacji dostępu do API Comarch TNA wymagane jest wygenerowanie klucza dostępu dedykowanego dla usługi. W celu uzyskania takiego klucza należy wykonać następujące kroki:

  1. Logowanie do usługi na stronie https://tna.comarch.com.
  2. Przejście do sekcji "Narzędzia → API".
  3. Uruchomienie przycisku "Wygeneruj".
  4. Zapisanie identyfikatora klucza oraz samego klucza na potrzeby autoryzacji integrującej się usługi.

OAuth 2.0

Generowanie tokenu

Aplikacja kliencka generuje token wysyłając zapytanie (POST) do serwera autoryzującego z swoim identyfikatorem (client_id) oraz kluczem (secret):
https://tna.comarch.com/api/oauth/token

Zapytanie składa się z następujących nagłówków:

Nazwa Dozwolone wartości Wymagany Opis
Content-Type application/x-www-form-urlencoded Tak
Authorization Basic [client_id:client_secret] Tak Wartość nagłówka Authorization musi być zakodowana w Base64 np. Basic U2ltcGxlQ2xpZW50SWQ6c2VjcmV0

Zapytanie składa się z następujących parametrów:

Nazwa Typ Forma Dozwolone wartości Wymagany Opis
grant_type text param client_credentials Tak Metoda autoryzacji

Przykładowe żądanie:

POST /oauth/token HTTP/1.1
Host: tna.comarch.com
Content-Type: application/x-www-form-urlencoded
Authorization: Basic U2ltcGxlQ2xpZW50SWQ6c2VjcmV0

grant_type=client_credentials

Przykładowa odpowiedź:

 {
  "access_token": "2f1591a7-8202-4f90-b942-9e13a5ad4a14",
  "token_type": "bearer",
  "expires_in": 43090,
  "scope": "EMPLOYEE_HISTORY_MANAGEMENT EMPLOYEE_MANAGEMENT"
 }

Zarządzanie czasem pracy pracownika

API Comarch TNA umożliwia wykonanie następujących operacji związanych z zarządzaniem czasem pracy pracowników:

  • Sprawdzenie aktualnej obecności pracownika
  • Sprawdzenie historii wejść/wyjść

Sprawdzenie aktualnej obecności pracownika

W celu pobrania aktualnej obecności pracownika należy przesłać żądanie (GET) na adres:

https://tna.comarch.com/api/v1/history/{userHash}/presence

Żądanie składa się z następujących parametrów:

Nazwa Typ Forma Dozwolone wartości Wymagany Opis
userSubscriptionHash text URL Tak Identyfikator subskrypcji użytkownika do usunięcia. Zwracany na liście pracowników

Przykładowe żądanie:

https://tna.comarch.com/api/v1/history/5279a47d-eb21-448d-8cbc-fe51adbde2ed/presence

Zwracane dane:

Nazwa Typ Dozwolone wartości Wymagany Opis
presence bool Tak true - jeżeli użytkownik jest obecny w pracy, w przeciwnym wypadku false

Przykładowa odpowiedź:

{ "presence":true }

Sprawdzenie historii wejść/wyjść

W celu pobrania historii wejść/wyść pracownika należy przesłać żądanie (GET) na adres:

https://tna.comarch.com/api/v1/history/{userHash}

Żądanie składa się z następujących parametrów:

Nazwa Typ Forma Dozwolone wartości Wymagany Opis
userSubscriptionHash text URL Tak Identyfikator subskrypcji użytkownika do usunięcia. Zwracany na liście pracowników
from date URL GET Data ISO-8601 Nie Data minimalna do pobrania wejść/wyjść od początku wskazanego dnia
till date URL GET Data ISO-8601 Nie Data maksymalna do pobrania wejść/wyjść do końca wskazanego dnia

Przykładowe żądanie:

https://tna.comarch.com/api/v1/history/5279a47d-eb21-448d-8cbc-fe51adbde2ed?from=2018-06-15&till=2018-06-20

Zwracane dane:

Nazwa Typ Dozwolone wartości Wymagany Opis
timestamp long Tak Czas aktywności użytkownika w formie EPOCH TIME
direction text IN, OUT Tak Informacja o rodzaju aktywności - wejście/wyjście
entry.description text Tak Nazwa bramki
entry.building.description text Tak Nazwa lokalizacji

Przykładowa odpowiedź:

[
 {
  "timestamp": 1528903571,
  "direction": "IN",
  "entry": {
   "description": "D3.6",
   "building": {
   "description": "SSE 4"
   }
  }
 },
 {
  "timestamp": 1528903590,
  "direction": "OUT",
  "entry": {
   "description": "D3.6",
   "building": {
   "description": "SSE 4"
   }
  }
 }
]

Zarządzanie pracownikami

API Comarch TNA umożliwia wykonanie następujących operacji związanych z zarządzaniem pracownikami:

  • Pobieranie listy pracowników
  • Dodanie nowego pracownika
  • Edycja danych pracownika
  • Usunięcie pracownika
  • Pobranie danych o pracowniku

Pobieranie listy pracowników

W celu pobrania listy pracowników dostępnych w usłudze należy przesłać żądanie (GET) na adres:

https://tna.comarch.com/api/v1/users

Przykładowe żądanie:

https://tna.comarch.com/api/v1/users

Zwracane dane (lista obiektów):

Nazwa Typ Dozwolone wartości Wymagany Opis

userHash

text   Tak Identyfikator subskrypcji użytkownika
nameAndLastname text   Tak Imię i nazwisko
lang text pl, de, fr, en, es Tak Język
state text ACTIVE, INACTIVE Tak Stan subskrypcji
userSubscriptionTimestamp int   Tak Czas włączenia subskrypcji w formie EPOCH TIME
email text   Tak Adres e-mail
userType text user, employee, company Tak Typ użytkownika

Przykładowa odpowiedź:

[
 {
  "userHash": "5b0d6089-cfb2-47ee-892d-d7406ea0cb6f",
  "lang": "pl",
  "state": "INACTIVE",
  "userSubscriptionTimestamp": 1529917237926,
  "email": "jan.kowalski@tna.comarch.pl",
  "userType": "user",
  "nameAndLastname": "Jan Kowalski"
 },
 {
  "userHash": "j65ffi9z9p",
  "lang": "pl",
  "state": "ACTIVE",
  "userSubscriptionTimestamp": 1519992991242,
  "email": "anna.nowak@tna.comarch.pl",
  "userType": "employee",
  "nameAndLastname": "Anna Nowak"
 }
]


Dodanie nowego pracownika

W celu dodania do listy pracowników nowego pracownika należy przesłać żądanie (POST) na adres:

https://tna.comarch.com/api/v1/users

Żądanie składa się z następujących parametrów:

Nazwa Typ Forma Dozwolone wartości Wymagany Opis
email text BODY   Tak Adres e-mail logowania
nameAndLastname text BODY   Nie Imię i nazwisko. Jeśli nie podane użyta zostanie część pola email przed znakiem "@"
language text BODY

pl, de, fr, en, es

Tak Język komunikacji z użytkownikiem

Przykładowe żądanie:

{
 "email":"jan.nowak@tna.comarch.com",
 "nameAndLastname":"Jan Nowak",
 "language":"pl"
}

Przykładowa odpowiedź:

{
  "userHash": "2w091r86vw",
  "nameAndLastname": "Public Api",
  "lang": "pl",
 "state": "INACTIVE",
 "createTimestamp": 1649055678456,
 "email": null,
 "userType": null
}

Edycja danych pracownika

W celu aktualizacji danych o pracowniku należy przesłać żądanie (PUT) na adres:

https://tna.comarch.com/api/v1/users/{userHash}

Żądanie składa się z następujących parametrów:

Nazwa Typ Forma Dozwolone wartości Wymagany Opis
userHash text URL   Tak Identyfikator subskrypcji użytkownika do edycji. Zwracany na liście pracowników
name text BODY   Tak Imię i nazwisko do aktualizacji dla pracownika

Przykładowe żądanie:

{
 "name":"Jan Kowalski"
}

Odpowiedź nie zawiera dodatkowych informacji. Zwracany jest status HTTP 200 OK


Usunięcie pracownika

W celu usunięcia pracownika należy przesłać żądanie (DELETE) na adres:

https://tna.comarch.com/api/v1/users/{userHash}

Żądanie składa się z następujących parametrów:

Nazwa Typ Forma Dozwolone wartości Wymagany Opis
userHash
text URL   Tak Identyfikator subskrypcji użytkownika do usunięcia. Zwracany na liście pracowników

Przykładowe żądanie:

https://tna.comarch.com/api/v1/users/5279a47d

Odpowiedź nie zawiera dodatkowych informacji. Zwracany jest status HTTP 200 OK


Pobranie danych o pracowniku

W celu aktualizacji danych o pracowniku należy przesłać żądanie (GET) na adres:

https://tna.comarch.com/api/v1/users/{userHash}

Przykładowe żądanie:

https://tna.comarch.com/api/v1/users/5279a47d

Zwracane dane:

Nazwa Typ Dozwolone wartości Wymagany Opis

userHash

text   Tak Identyfikator subskrypcji użytkownika
nameAndLastname text   Tak Imię i nazwisko
lang text   Tak Język
state text ACTIVE, INACTIVE Tak Stan subskrypcji
userSubscriptionTimestamp int   Tak Czas włączenia subskrypcji w formie EPOCH TIME
email text   Tak Adres e-mail
userType text user, employee, company Tak Typ

Przykładowa odpowiedź:

{
 "userHash": "5b0d6089-cfb2-47ee-892d-d7406ea0cb6f",
 "lang": "pl",
 "state": "INACTIVE",
 "userSubscriptionTimestamp": 1529917237926,
 "email": "jan.kowalski@tna.comarch.pl",
 "userType": "user",
 "nameAndLastname": "Jan Kowalski"
}

Powiadomienia

W celu wysłania powiadomienia push dla użytkownika należy przesłać żądanie (POST) wraz z nagłówkiem Authorization zawierającym token dla TNA-PUBLIC-API na adres:
https://tna.comarch.com/api/v2/users/{userHash}/notifications/push

Przykładowe żądanie:

 {
  "title":"Title of the message",
  "message":"This is a message",
  "rawBody":"This is a rawBody"
 }

Odpowiedź nie zawiera dodatkowych informacji. Zwracany jest status HTTP 201 Created.

Token dla powiadomień

Generowanie tokenu do autoryzacji w serwerze TNA-EVENTS jest możliwe poprzez wysłanie żądania (POST) wraz z nagłówkiem Authorization zawierającym token dla TNA-PUBLIC-API na adres:
https://tna.comarch.com/api/v2/events/tokens

Przykładowa odpowiedź:

 {
  "token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
  "eventsService": {
   "host": "https://tna.comarch.com",
   "path": "/api/v2/events/scans/socket.io"
   }
 }

Pobieranie listy pracowników

W celu pobrania listy pracowników dostępnych w usłudze należy przesłać żądanie (GET) na adres:

https://tna.comarch.com/api/v2/users

Przykładowe żądanie:

https://tna.comarch.com/api/v2/users

Zwracane dane (lista obiektów):

Nazwa Typ Dozwolone wartości Wymagany Opis

userHash

text   Tak Identyfikator subskrypcji użytkownika
nameAndLastname text   Tak Imię i nazwisko
lang text pl, de, fr, en, es Tak Język
state text ACTIVE, INACTIVE Tak Stan subskrypcji
userSubscriptionTimestamp int   Tak Czas włączenia subskrypcji w formie EPOCH TIME
email text   Tak Adres e-mail
userType text user, employee, company Tak Typ użytkownika

Przykładowa odpowiedź:

[
 {
  "userHash": "5b0d6089-cfb2-47ee-892d-d7406ea0cb6f",
  "lang": "pl",
  "state": "INACTIVE",
  "userSubscriptionTimestamp": 1529917237926,
  "email": "jan.kowalski@tna.comarch.pl",
  "userType": "user",
  "nameAndLastname": "Jan Kowalski"
 },
 {
  "userHash": "j65ffi9z9p",
  "lang": "pl",
  "state": "ACTIVE",
  "userSubscriptionTimestamp": 1519992991242,
  "email": "anna.nowak@tna.comarch.pl",
  "userType": "employee",
  "nameAndLastname": "Anna Nowak"
 }
]


Dodanie nowego pracownika

W celu dodania do listy pracowników nowego pracownika należy przesłać żądanie (POST) na adres:

https://tna.comarch.com/api/v2/users

Żądanie składa się z następujących parametrów:

Nazwa Typ Forma Dozwolone wartości Wymagany Opis
email text BODY   Tak Adres e-mail logowania
nameAndLastname text BODY   Nie Imię i nazwisko. Jeśli nie podane użyta zostanie część pola email przed znakiem "@"
language text BODY

pl, de, fr, en, es

Tak Język komunikacji z użytkownikiem
settings.timeType TimeType BODY

GROSS, NET, GROSS_NET, NONE

Tak Ustawienia wyświetlania czasu pracy użytkownika

Przykładowe żądanie:

{
  "email":"jan.nowak@tna.comarch.com",
  "nameAndLastname":"Jan Nowak",
  "language":"pl",
 "settings": {
  "timeType":"GROSS"
 }
}

Przykładowa odpowiedź:

{
  "userHash": "2w091r86vw",
  "nameAndLastname": "Public Api",
  "lang": "pl",
 "state": "INACTIVE",
 "createTimestamp": 1649055678456,
 "email": null,
 "userType": null
}

Edycja danych pracownika

W celu aktualizacji danych o pracowniku należy przesłać żądanie (PUT) na adres:

https://tna.comarch.com/api/v2/users/{userHash}

Żądanie składa się z następujących parametrów:

Nazwa Typ Forma Dozwolone wartości Wymagany Opis
userHash text URL   Tak Identyfikator subskrypcji użytkownika do edycji. Zwracany na liście pracowników
name text BODY   Tak Imię i nazwisko do aktualizacji dla pracownika

Przykładowe żądanie:

{
 "name":"Jan Kowalski"
}

Odpowiedź nie zawiera dodatkowych informacji. Zwracany jest status HTTP 200 OK


Usunięcie pracownika

W celu usunięcia pracownika należy przesłać żądanie (DELETE) na adres:

https://tna.comarch.com/api/v2/users/{userHash}

Żądanie składa się z następujących parametrów:

Nazwa Typ Forma Dozwolone wartości Wymagany Opis
userHash text URL   Tak Identyfikator subskrypcji użytkownika do usunięcia. Zwracany na liście pracowników

Przykładowe żądanie:

https://tna.comarch.com/api/v2/users/5279a47d

Odpowiedź nie zawiera dodatkowych informacji. Zwracany jest status HTTP 200 OK


Pobranie danych o pracowniku

W celu aktualizacji danych o pracowniku należy przesłać żądanie (GET) na adres:

https://tna.comarch.com/api/v2/users/{userHash}

Przykładowe żądanie:

https://tna.comarch.com/api/v2/users/5279a47d

Zwracane dane:

Nazwa Typ Dozwolone wartości Wymagany Opis

userHash

text   Tak Identyfikator subskrypcji użytkownika
nameAndLastname text   Tak Imię i nazwisko
lang text   Tak Język
state text ACTIVE, INACTIVE Tak Stan subskrypcji
userSubscriptionTimestamp int   Tak Czas włączenia subskrypcji w formie EPOCH TIME
email text   Tak Adres e-mail
userType text user, employee, company Tak Typ

Przykładowa odpowiedź:

{
 "userHash": "5b0d6089-cfb2-47ee-892d-d7406ea0cb6f",
 "lang": "pl",
 "state": "INACTIVE",
 "userSubscriptionTimestamp": 1529917237926,
 "email": "jan.kowalski@tna.comarch.pl",
 "userType": "user",
 "nameAndLastname": "Jan Kowalski"
}

 


Pobieranie historii wejść/wyjść pracowników

W celu pobrania historii wejść/wyść pracowników należy przesłać żądanie (GET) wraz z nagłówkiem Authorization zawierającym token dla TNA-PUBLIC-API na adres:
https://tna.comarch.com/api/v2/history

Żądanie składa się z następujących parametrów:

Nazwa Typ Forma Dozwolone wartości Wymagany Opis
from date URL GET Data ISO-8601 Nie Data minimalna do pobrania wejść/wyjść od początku wskazanego dnia
till date URL GET Data ISO-8601 Nie Data maksymalna do pobrania wejść/wyjść do końca wskazanego dnia
page long param Nie Numer strony
page long param Nie Numer strony
size long param Nie Rozmiar strony

Przykładowe żądanie:

https://tna.comarch.com/api/v2/history?from=2018-06-15&till=2018-06-20&page=3&size=2

Zwracane dane:

Nazwa Typ Dozwolone wartości Opis
value array Tak Tablica obiektów z wejściami/wyjściami pracowników
userHash text Tak Identyfikator pracownika
scans array Tak Tablica wejść/wyjść pracownika
timestamp long Tak Czas aktywności użytkownika w formie EPOCH TIME
direction text IN, OUT Tak Informacja o rodzaju aktywności - wejście/wyjście
entry.description text Tak Nazwa bramki
entry.building.description text Tak Nazwa lokalizacji
page.totalElements long Tak Liczba wszystkich elementów
page.totalPages long Tak Liczba stron
page.size long Tak Rozmiar strony
page.number long Tak Numer strony
page.first boolean Tak Czy pierwsza strona
page.last boolean Tak Czy ostatnia strona
page.numberOfElements long Tak Liczba elementów na stronie

Przykładowa odpowiedź:

 {
  "value":[
    {
     "userHash":"0h70az3t2s",
     "scans":[
     {
      "timestamp": 1528903571,
      "direction": "IN",
     "entry": {
       "description": "D3.6",
       "building": {
       "description": "SSE 4"
    }
   }
   },
   {
   "timestamp": 1528903590,
   "direction": "OUT",
   "entry": {
    "description": "D3.6",
    "building": {
     "description": "SSE 4"
    }
   }
  }
  ]
 },
  {
   "userHash":"nm64xc6483",
    "scans":[
     {
     "timestamp": 1528903590,
     "direction": "IN",
     "entry": {
      "description": "D3.6",
     "building": {
      "description": "SSE 4"
     }
    }
   }
  ]
 },
  "page":{
   "totalElements": 16,
   "totalPages": 8,
   "size": 2,
   "number": 3,
   "first": false,
   "last": false,
   "numberOfElements": 2
  }
 }

Pobieranie szczegółowego raportu obecności pracownika

W celu pobrania raportu z podziałem na dni pracowników należy przesłać żądanie (GET) na adres:
https://tna.comarch.com/api/v2/reports/users/{userHash}

Żądanie składa się z następujących parametrów:

Nazwa Typ Forma Dozwolone wartości Domyślna wartość Wymagany Opis
userHash text Path Tak
fromDate date URL 2020-07-01 Tak
tillDate date URL 2020-07-01 Tak

Przykładowe żądanie:

https://tna.comarch.com/api/v2/reports/users/w49ww977e9?fromDate=2020-01-01&tillDate=2020-12-31&size=10&page=1

Zwracane dane:

Przykładowa odpowiedź:

 {
  "timeType":"GROSS_NET",
  "userTimeType":"GROSS_NET",
  "subscription":{
   "userHash":"vd0hb1jbvx",
   "name":"Jan Kowalski",
   "email":"test@comarch.pl",
   "etat":{
    "position": "Kierownik",
    "etatNumerator": 1,
    "etatDenominator": 1,
    "fullTimeDailyNorm": 480,
    "type": "DEFAULT",
    "validFrom": "2019-03-19",
   }
  },
   "days": [
   {
    "time": {
     "timeType": "GROSS_NET",
     "grossTime": 29717,
     "netTime": 29717
    },
    "date": "2020-01-01",
    "status": "PRESENCE",
    "workPlan": {
     "workingDay": true,
     "fixedTime": 30600
    },
    "in": "08:45:08",
    "out": "17:00:25",
    "balance": -883,
    "lateness": false
   },
   {…}
  ],
  "summary": {
   "workTime": 29717,
   "notEqualizedWorkTime": 0,
   "month": 12,
   "workedDays": 1,
   "differentDays": 0,
   "workPlanTime": 30600,
   "balance": -883,
   "notEqualizedBalance": -883,
   "workTimeGross": 29717,
   "workTimeNet": 29717,
   "notEqualizedWorkTimeGross": 0,
   "notEqualizedWorkTimeNet": 0
  }
 },

Pobieranie ogólnego raportu obecności pracownika

W celu pobrania raportu z podsumowaniem czasu pracy pracownika należy przesłać żądanie (GET) na adres:
https://tna.comarch.com/api/v2/reports/users/{userHash}/summary

Żądanie składa się z następujących parametrów:

Nazwa Typ Forma Dozwolone wartości Domyślna wartość Wymagany Opis
userHash text Path Tak
fromDate date URL 2020-07-01 Tak
tillDate date URL 2020-07-01 Tak

Przykładowe żądanie:

https://tna.comarch.com/api/v2/reports/users/w49ww977e9/summary?fromDate=2020-01-01&tillDate=2020-12-31&size=10&page=1

Zwracane dane:

Przykładowa odpowiedź:

 {
  "timeType":"GROSS_NET",
  "userTimeType":"GROSS_NET",
  "subscription":{
   "userHash":"vd0hb1jbvx",
   "name":"Jan Kowalski",
   "email":"test@comarch.pl",
   "etat":{
    "position": "Kierownik",
    "etatNumerator": 1,
    "etatDenominator": 1,
    "fullTimeDailyNorm": 480,
    "type": "DEFAULT",
    "validFrom": "2019-03-19",
   }
  },
   "months": [
   {
    "workTime": 612000,
    "notEqualizedWorkTime": 0,
    "month": 12,
    "workedDays": 20,
    "differentDays": 0,
    "workPlanTime": 612000,
    "balance": 0,
    "notEqualizedBalance": 0,
    "workTimeGross": 612000,
    "workTimeNet": 612000,
    "notEqualizedWorkTimeGross": 0,
    "notEqualizedWorkTimeNet": 0
   },
   {…}
  ],
  "summary": {
   "workTime": 612000,
   "notEqualizedWorkTime": 0,
   "workedDays": 20,
   "differentDays": 0,
   "workPlanTime": 612000,
   "balance": 0,
   "notEqualizedBalance": 0,
   "workTimeGross": 612000,
   "workTimeNet": 612000,
   "notEqualizedWorkTimeGross": 0,
   "notEqualizedWorkTimeNet": 0
  }
 },

Pobieranie ogólnego raportu obecności pracownika

W celu pobrania raportu z podziałem na dni pracowników należy przesłać żądanie (GET) na adres:
https://tna.comarch.com/api/v2/reports

Żądanie składa się z następujących parametrów:

Nazwa Typ Forma Dozwolone wartości Domyślna wartość Wymagany Opis
date date Path 2020-01-01 Tak
size int URL 20 Nie
page int URL 0 Nie
search text URL
includeArchival bool URL true, false false nie Dołącza do raportu użytkowników archiwalnych

Przykładowe żądanie:

https://tna.comarch.com/api/v2/reports?date=2020-01-01

Zwracane dane:

Przykładowa odpowiedź:

 {
  "content":[
   {
     "timeType":"GROSS_NET",
     "userTimeType":"GROSS",
     "subscription":{
      "userHash":"y518uam23d",
      "name":"Jan Kowalski",
      "email":"test@comarch.pl",
      "archival": false,
      "etat":{
       "position": "Kierownik",
       "etatNumerator": 1,
       "etatDenominator": 1,
       "fullTimeDailyNorm": 480,
       "validFrom": "2019-03-18",
      }
     },
   "days": [
     {
       "time":{
        "timeType": "GROSS_NET",
        "grossTime": 29717,
        "netTime": 29717
       },
       "date": "2020-01-01",
       "status": "PRESENCE",
       "workPlan": {
        "workingDay": true,
        "fixedTime": 30600
       },
       "in": "08:45:08",
       "out": "17:00:25",
       "balance": -883,
       "lateness": false
     }
    ]
   }
  },
  "last": false,
  "totalElements": 89,
  "totalPages": 89,
  "sort": [
   {
    "direction": "ASC",
    "property": "name"
   }
  ],
  "numberOfElements": 1,
  "first": true,
  "size": 1,
  "number": 0
 },

Pobieranie ogólnego raportu obecności pracownika

W celu pobrania raportu z podsumowaniem czasu pracy pracowników należy przesłać żądanie (GET) na adres:
https://tna.comarch.com/api/v2/reports/summary

Żądanie składa się z następujących parametrów:

Nazwa Typ Forma Dozwolone wartości Domyślna wartość Wymagany Opis
date date Path 2020-01-01 Tak
size int URL 20 Nie
page int URL 0 Nie
search text URL
includeArchival bool URL true, false false nie Dołącza do raportu użytkowników archiwalnych

Przykładowe żądanie:

https://tna.comarch.com/api/v2/reports/summary ?fromDate=2020-01-01&tillDate=2020-09-30

Zwracane dane:

Przykładowa odpowiedź:

 {
  "content":[
   {
     "timeType":"GROSS_NET",
     "userTimeType":"GROSS",
     "subscription":{
      "userHash":"rxw7q52krm",
      "name":"Jan Kowalski",
      "email":"test@comarch.pl",
      "archival": false,
      "etat":{
       "position": "Kierownik",
       "etatNumerator": 1,
       "etatDenominator": 1,
       "fullTimeDailyNorm": 480,
       "type": "DEFAULT",
       "validFrom": "2018-08-10",
      }
     },
     "summary": {
       "time":{
       "workTime": 185126,
       "month": 1,
       "workedDays": 5,
       "differentDays": 1,
       "workPlanTime": 5844600,
       "balance": -5659474,
       "workTimeGross": 185126,
       "workTimeNet": 185126
     }
   },
   {...}
  },
  "totalElements": 89,
  "last": false,
  "totalPages": 9,
  "sort": [
   {
    "direction": "ASC",
    "property": "name"
    "ignoreCase": false,
    "nullHandling": "NATIVE",
    "ascending": true
   }
  ],
  "first": true,
  "numberOfElements": 10,
  "size": 10,
  "number": 0
 },

Typy wyliczeniowe

api/v2/presences

type:

LEAVE_ON_DEMAND, Urlop na żądania
VACATION, Urlop wypoczynkowy
SICK_LEAVE, Zwolnienie chorobowe
SPECIAL_LEAVE,
OFFICIAL_TRIP, Delegacja
MANUALLY_ADDED, Obecność zgłoszona ręcznie
OTHER_CIRCUMSTANCES,
TRAINING, Szkolenie
OTHER, Inne
HOME_OFFICE, Praca zdalna
OPTIMA_E_NIEOBECNOSC,
OPTIMA_INNA_NIEOBECNOSC,
OPTIMA_NIEOBECNOSC_USPRAWIEDLIWIONA,
OPTIMA_NIEOBECNOSC_NIEUSPRAWIEDLIWIONA,
OPTIMA_SLUZBA_WOJSKOWA,
OPTIMA_URLOP_BEZPLATNY_111,
OPTIMA_URLOP_BEZPLATNY_112,
OPTIMA_URLOP_MACIERZYNSKI,
OPTIMA_URLOP_MACIERZYNSKI_DODATKOWY,
OPTIMA_URLOP_OJCOWSKI,
OPTIMA_URLOP_OKOLICZNOSCIOWY,
OPTIMA_URLOP_OPIEKUNCZY_ZASILEK,
OPTIMA_URLOP_OPIEKUNCZY_188_2DNI,
OPTIMA_URLOP_OPIEKUNCZY_188_2DNIGODZ,
OPTIMA_URLOP_REHABILITACYJNY,
OPTIMA_URLOP_REHABILITACYJNY_WYPADEK_PRZY_PRACY,
OPTIMA_URLOP_REHABILITACYJNY_WYPADEK_W_DRODZE,
OPTIMA_URLOP_RODZICIELSKI,
OPTIMA_URLOP_SZKOLENIOWY,
OPTIMA_URLOP_WYCHOWAWCZY_121,
OPTIMA_URLOP_WYCHOWAWCZY_122,
OPTIMA_URLOP_WYPOCZYNKOWY,
OPTIMA_URLOP_WYPOCZYNKOWY_PLAN,
OPTIMA_URLOP_WYPOCZYNKOWY_TYMCZASOWY,
OPTIMA_ZWOLNIENIE_CHOROBOWE,

presenceStatus:

ACCEPTED Zaakceptowany
WAITING Nowy/oczekujący
ACCEPTED_AUTOMATICALLY Zaakceptowany automatycznie
ACCEPTED_CORRECTED Zaakceptowany poprawiony
REJECTED Odrzucony
CANCELED Anulowany
REMOVED Usunięty

api/v2/delegations

type:

DOMESTIC Krajowa
FOREIGN Zagraniczna

Status:

NEW Nowa
REJECTED Odrzucona
ACCEPTED Zaakceptowana
FOR_SETTLEMENT Do rozliczenia
SETTLED Rozliczona
CANCELED Anulowana

modeOfTransportation:

PRIVATE_CAR Samochód prywatny
COMPANY_CAR Samochód służbowy
PLANE Samolot
TRAIN Pociąg
BUS Autobus
TAXI Taksówka
PUBLIC_TRANSPORT Transport publiczny
OTHER Inne

api/v2/reports

status:

WORKING_DAY, Dzień pracujący
HOLIDAY, Święto
EMPTY, Brak planu pracy
DAY_OFF, Dzień wolny
PRESENCE, Obecność
UNEXCUSED_ABSENCE, Nieobecność
LEAVE_ON_DEMAND, Urlop na żądania
VACATION, Urlop wypoczynkowy
SICK_LEAVE, Zwolnienie chorobowe
SPECIAL_LEAVE,
OFFICIAL_TRIP, Delegacja
MANUALLY_ADDED, Obecność zgłoszona ręcznie
OTHER_CIRCUMSTANCES,
TRAINING, Szkolenie
OTHER, Inne
HOME_OFFICE, Praca zdalna
OPTIMA_E_NIEOBECNOSC,
OPTIMA_INNA_NIEOBECNOSC,
OPTIMA_NIEOBECNOSC_USPRAWIEDLIWIONA,
OPTIMA_NIEOBECNOSC_NIEUSPRAWIEDLIWIONA,
OPTIMA_SLUZBA_WOJSKOWA,
OPTIMA_URLOP_BEZPLATNY_111,
OPTIMA_URLOP_BEZPLATNY_112,
OPTIMA_URLOP_MACIERZYNSKI,
OPTIMA_URLOP_MACIERZYNSKI_DODATKOWY,
OPTIMA_URLOP_OJCOWSKI,
OPTIMA_URLOP_OKOLICZNOSCIOWY,
OPTIMA_URLOP_OPIEKUNCZY_ZASILEK,
OPTIMA_URLOP_OPIEKUNCZY_188_2DNI,
OPTIMA_URLOP_OPIEKUNCZY_188_2DNIGODZ,
OPTIMA_URLOP_REHABILITACYJNY,
OPTIMA_URLOP_REHABILITACYJNY_WYPADEK_PRZY_PRACY,
OPTIMA_URLOP_REHABILITACYJNY_WYPADEK_W_DRODZE,
OPTIMA_URLOP_RODZICIELSKI,
OPTIMA_URLOP_SZKOLENIOWY,
OPTIMA_URLOP_WYCHOWAWCZY_121,
OPTIMA_URLOP_WYCHOWAWCZY_122,
OPTIMA_URLOP_WYPOCZYNKOWY,
OPTIMA_URLOP_WYPOCZYNKOWY_PLAN,
OPTIMA_URLOP_WYPOCZYNKOWY_TYMCZASOWY,
OPTIMA_ZWOLNIENIE_CHOROBOWE,

Zgłoszenia pracowników

Pobieranie listy zgłoszeń pracowników

W celu pobrania listy delegacji pracownika należy przesłać żądanie (GET) na adres:
https://tna.comarch.com/api/v2/presences

Żądanie składa się z następujących parametrów:

Nazwa Typ Dozwolone wartości Domyślna wartość Wymagany Opis
fromDate date 2020-07-01 Tak
tillDate date 2020-07-01 Tak
type text PresenceType Nie
excludeType text PresenceType Nie
status text PresenceStatus Nie
excludeStatus text PresenceStatus Nie
size int 20 Nie
page int 0 Nie

Przykładowe żądanie:

https://tna.comarch.com/api/v2/presences?fromDate=2020-01-01&tillDate=2020-12-31&size=10&page=1

Zwracane dane (strona obiektów):

Przykładowa odpowiedź:

 {
  "content":[
   {
    "subscription": {
     "userHash": "o29hhutr9c",
     "name": "Jan Kowalski",
     "email": "test@comarch.pl",
     "etat": {
      "position": "Kierownik",
      "etatNumerator": 1,
      "etatDenominator": 1,
      "fullTimeDailyNorm": 480,
      "type": "DEFAULT",
      "validFrom": "2020-06-25"
     }
    },
    "dates": [
    "2020-10-01"
     ],
    "type": "VACATION",
    "presenceStatus": "WAITING",
    "hash": "62mvsid33fgpr8ntr4ga1n87s9",
    "from": "2020-10-01",
    "to": "2020-10-01",
    "createDateTime": "2020-10-01T12:35:02.887"
     },
    {…}
   ],
  "totalElements": 9,
  "totalPages": 5,
  "last": false,
  "size": 2,
  "number": 0,
  "sort": [
   {
    "direction": "DESC",
    "property": "date"
    "ignoreCase": false,
    "nullHandling": "NATIVE",
    "ascending": false
   }
   {
    "direction": "ASC",
    "property": "nameAndLastName",
    "ignoreCase": false,
    "nullHandling": "NATIVE",
    "ascending": true
   }
  ],
  "numberOfElements": 2,
  "first": true
 }

Pobieranie listy zgłoszeń pracowników

W celu pobrania listy delegacji pracownika należy przesłać żądanie (GET) na adres:
https://tna.comarch.com/api/v2/presences/users/{userHash}

Żądanie składa się z następujących parametrów:

Nazwa Typ Forma Dozwolone wartości Domyślna wartość Wymagany Opis
userHash text Path Tak
fromDate date URL 2020-07-01 Tak
tillDate date URL 2020-07-01 Tak
type text URL PresenceType Nie
excludeType text URL PresenceType Nie
status text URL PresenceStatus Nie
excludeStatus text URL PresenceStatus Nie
size int URL 20 Nie
page int URL 0 Nie

Przykładowe żądanie:

https://tna.comarch.com/api/v2/presences/users/o29hhutr9c?fromDate=2020-01-01&tillDate=2020-12-31&size=10&page=1

Zwracane dane (strona obiektów):

Przykładowa odpowiedź:

 {
  "content":[
   {
    "subscription": {
     "userHash": "o29hhutr9c",
     "name": "Jan Kowalski",
     "email": "test@comarch.pl",
     "etat": {
      "position": "Kierownik",
      "etatNumerator": 1,
      "etatDenominator": 1,
      "fullTimeDailyNorm": 480,
      "type": "DEFAULT",
      "validFrom": "2020-06-25"
     }
    },
    "dates": [
    "2020-10-01"
     ],
    "type": "VACATION",
    "presenceStatus": "WAITING",
    "hash": "62mvsid33fgpr8ntr4ga1n87s9",
    "from": "2020-10-01",
    "to": "2020-10-01",
    "createDateTime": "2020-10-01T12:35:02.887"
     },
    {…}
   ],
  "totalElements": 9,
  "totalPages": 5,
  "last": false,
  "size": 2,
  "number": 0,
  "sort": [
   {
    "direction": "DESC",
    "property": "date"
    "ignoreCase": false,
    "nullHandling": "NATIVE",
    "ascending": false
   }
   {
    "direction": "ASC",
    "property": "nameAndLastName",
    "ignoreCase": false,
    "nullHandling": "NATIVE",
    "ascending": true
   }
  ],
  "numberOfElements": 2,
  "first": true
 }

Pobieranie listy delegacji pracowników

W celu pobrania listy delegacji pracownika należy przesłać żądanie (GET) na adres:
https://tna.comarch.com/api/v2/delegations

Żądanie składa się z następujących parametrów:

Nazwa Typ Forma Dozwolone wartości Domyślna wartość Wymagany Opis
fromDate date URL 2020-07-01 Tak
tillDate date URL 2020-07-01 Tak
status text URL DelegationStatus Nie
size int URL 20 Nie
page int URL 0 Nie

Przykładowe żądanie:

https://tna.comarch.com/api/v2/delegations?fromDate=2020-01-01&tillDate=2020-12-31&size=10&page=1

Zwracane dane (strona obiektów):

Przykładowa odpowiedź:

 {
  "content":[
   {
    "hash": "trgi7g3gc2sbddkcj5fm56lorh",
    "subscription": {
     "userHash": "w49ww977e9",
     "name": "Jan Kowalski",
     "email": "test@comarch.pl",
     "etat": {
      "position": "Kierownik",
      "etatNumerator": 1,
      "etatDenominator": 1,
      "fullTimeDailyNorm": 480,
      "type": "DEFAULT",
      "validFrom": "2020-08-01"
     }
    },
    "reportingPerson": {
     "userHash": "w49ww977e9",
     "name": " Jan Kowalski"
    },
    "from": "2018-08-01",
    "to": "2018-08-01",
    "type": "DOMESTIC",
    "remark": "komentarz",
    "modeOfTransportation": "PRIVATE_CAR",
    "address": "Kraków",
    "createDateTime": "2017-08-07T10:16:00.514Z",
    "status": "NEW"
     },
    {…}
   ],
  "totalElements": 90,
  "last": false,
  "totalPages": 90,
  "size": 10,
  "number": 0,
  "sort": null,
  "numberOfElements": 1,
  "first": true
 }

Pobieranie listy delegacji pracowników

W celu pobrania listy delegacji pracownika należy przesłać żądanie (GET) na adres:
https://tna.comarch.com/api/v2/delegations/users/{userHash}

Żądanie składa się z następujących parametrów:

Nazwa Typ Forma Dozwolone wartości Domyślna wartość Wymagany Opis
userHash text Path Tak
fromDate date URL 2020-07-01 Tak
tillDate date URL 2020-07-01 Tak
status text URL DelegationStatus Nie
size int URL 20 Nie
page int URL 0 Nie

Przykładowe żądanie:

https://tna.comarch.com/api/v2/delegations/users/w49ww977e9?fromDate=2020-01-01&tillDate=2020-12-31&size=10&page=1

Zwracane dane (strona obiektów):

Przykładowa odpowiedź:

 {
  "content":[
   {
    "hash": "trgi7g3gc2sbddkcj5fm56lorh",
    "subscription": {
     "userHash": "w49ww977e9",
     "name": "Jan Kowalski",
     "email": "test@comarch.pl",
     "etat": {
      "position": "Kierownik",
      "etatNumerator": 1,
      "etatDenominator": 1,
      "fullTimeDailyNorm": 480,
      "type": "DEFAULT",
      "validFrom": "2020-08-01"
     }
    },
    "reportingPerson": {
     "userHash": "w49ww977e9",
     "name": " Jan Kowalski"
    },
    "from": "2018-08-01",
    "to": "2018-08-01",
    "type": "DOMESTIC",
    "remark": "komentarz",
    "modeOfTransportation": "PRIVATE_CAR",
    "address": "Kraków",
    "createDateTime": "2017-08-07T10:16:00.514Z",
    "status": "WAITING"
     },
    {…}
   ],
  "totalElements": 90,
  "last": false,
  "totalPages": 90,
  "size": 10,
  "number": 0,
  "sort": null,
  "numberOfElements": 1,
  "first": true
 }

Public API
  • Informacje ogólne o Comarch TNA API
  • Aktywacja API
  • Nagłówek autoryzacji
Public API - 1.2.0
  • Zarządzanie czasem pracy pracownika
  • Zarządzanie pracownikami
Public API - 2.0.0
  • Powiadomienia
  • Zarządzanie pracownikami
  • Zgłoszenia pracowników