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