Vai al contenuto principale
Le integrazioni tramite API

Crea la tua integrazione personalizzata

Nicolo' Manzotti avatar
Scritto da Nicolo' Manzotti
Aggiornato oltre una settimana fa

Cosa sono le API e quando utilizzarle

Le API sono interfacce che consentono l'accesso programmatico, in lettura o scrittura, ai dati salvati su Fluida HR Suite. Le API permettono a sistemi software di terze parti di compiere operazioni con le diverse entità di dati o risorse che esistono in Fluida, come timbrature, giustificativi, note spese e documenti.

Grazie alle API, è possibile realizzare integrazioni personalizzate ed estendere le funzionalità oggi disponibili con le applicazioni ufficiali di Fluida. Per poter interagire con le API di Fluida, i sistemi terzi che sfruttano un'integrazione personalizzata oppure sono già disponibili come estensione di Fluida devono essere autorizzati attraverso l'identificativo unifico dell'azienda (Company ID) e una chiave API (API key - paragonabile a una password).

Tutte le informazioni in merito all'utilizzo delle API e alle modalità e possibilità di interazione con le risorse di Fluida HR Suite sono disponibili sul Developer Portal 👇


💡 Se sei uno sviluppatore già in possesso di un'API key, scopri come utilizzarla per autenticare le tue richieste HTTP!


Aggiungi una nuova chiave API

Segui i semplici passaggi descritti di seguito per generare una nuova chiave API per permettere l'integrazione di altri software con Fluida.

1. Accedi al menu Azienda > Generali > API

2. Clicca su "Aggiungi"

3. Scegli un nome

4. Abilita la chiave


⚠️ Ti suggeriamo di dare un nome riconoscibile alla chiave API. Ad esempio, se stai generando la chiave per l'integrazione nativa con i software paghe Zucchetti, puoi chiamare la chiave API "Zucchetti Paghe Web".


5. Imposta i permessi associati alla chiave, scegliendo tra le seguenti opzioni:

  • Permessi Completi - la chiave API permetterà l'accesso in lettura e scrittura a tutte le risorse gestite da Fluida

  • Permessi di Sola Lettura - la chiave API permetterà l'accesso in sola lettura a tutte le risorse

6. Clicca su Salva.

Cliccando sulla chiave appena creata, sarà possibile apportare modifiche e copiare i valori di Company ID e API Key da utilizzare per l'integrazione.

Personalizza i permessi di una chiave API

Scegliendo l'opzione Custom per i permessi di una chiave API, è possibile definire per ogni entità o risorsa di Fluida HR Suite, se il sistema di terze parti che utilizza la chiave ha la possibilità di accedere in sola lettura (Read) oppure anche in scrittura (Write). La chiave API non permette l'accesso alle risorse per cui scegli l'opzione Disabled.

Potresti, ad esempio, configurare una chiave con i seguenti permessi:

  • Justification - Read

  • Stamping - Write

e l'opzione Disabled per tutte le altre risorse.

Con questa chiave, un sistema terzo sarà in grado di:

  • recuperare tutti i giustificativi della categoria ferie ma NON inserire una nuove richieste di ferie,

  • creare una nuova timbratura ma NON recuperare le timbrature esistenti.

L'accesso, in lettura e scrittura, ad ogni altro tipo di risorsa non sarà consentito utilizzando questa chiave.

Autenticati tramite chiave API

Se sei uno sviluppatore, ottenuta una API Key utilizzala come valore per il Request Header "x-fluida-app-uuid", da aggiungere ad ogni richiesta HTTP che invii alle API Fluida.


⚠️ Negli esempi del Developer Portal, è presente il Request Header "Authorization": ignora questo parametro e il token di accesso Bearer indicati, in favore del parametro "x-fluida-app-uuid" e della API key.


Casi di utilizzo

Nei paragrafi successivi verranno descritte alcune delle chiamate API utili per implementare flussi di integrazione in lettura e scrittura con Fluida HR Suite, in base alle funzionalità con cui è necessario interagire.

Funzionalità generali

Le entità principali di Fluida HR Suite, che non dipendono da una funzionalità specifica, sono le seguenti.

Company

Un oggetto di tipologia Company rappresenta l'azienda, ovvero l'organizzazione che utilizza Fluida, con i suoi dati di fatturazione e dell'abbonamento a Fluida HR Suite sottoscritto.

L'elenco completo degli attributi dell'oggetto è indicato nella documentazione del modello dati (schema) dell'entità Company.

Contract

Un oggetto di tipologia Contract rappresenta il contratto in essere tra azienda e lavoratore, che può essere visto come la persona che accede a Fluida per interagire con l'azienda attraverso un utente.

Un oggetto Contract è caratterizzato dai dati che definiscono la sua relazione con la Company: l'elenco completo degli attributi è indicato nella documentazione del modello dati (schema) dell'entità Contract.

Team

Un oggetto di tipologia Team rappresenta un raggruppamento di persone in azienda che hanno qualcosa in comune, come un reparto aziendale o un gruppo di lavoro. Il team può essere guidato da un leader.

L'elenco completo degli attributi dell'oggetto è indicato nella documentazione del modello dati (schema) dell'entità Team.

Subsidiary

Un oggetto di tipologia Subsidiary rappresenta una sede aziendale, o comunque il luogo dove i membri dell'organizzazione prestano l'attività lavorativa.

Oltre al nome, alla sede può essere attribuito un codice (ref_code) utile per agevolare l'identificazione dello stesso nell’integrazione con un sistema esterno.

L'elenco completo degli attributi dell'oggetto è indicato nella documentazione del modello dati (schema) dell'entità Subsidiary.

Customer

Un oggetto di tipologia Customer rappresenta un committente o cliente dell'azienda. Solitamente, il committente, interno o esterno all'azienda, richiede l'esecuzione di un progetto o commessa.

Oltre al nome, al committente può essere attribuito un codice (ref_code) utile per agevolare l'identificazione dello stesso nell’integrazione con un sistema esterno.

L'elenco completo degli attributi dell'oggetto è indicato nella documentazione del modello dati (schema) dell'entità Customer.

Order

Un oggetto di tipologia Order rappresenta un progetto o commessa dell'azienda. Solitamente, chi lavora per l'azienda svolge attività e sostiene spese relative a uno specifico progetto o commessa. Un progetto è sempre associato al suo committente (Customer).

Oltre al nome e al riferimento del committente (customer_id), al progetto può essere attribuito un codice (ref_code) utile per agevolare l'identificazione dello stesso nell’integrazione con un sistema esterno.

L'elenco completo degli attributi dell'oggetto è indicato nella documentazione del modello dati (schema) dell'entità Order.

Ottieni tramite API l'elenco dei contratti (utenti) associati a un'azienda

Di seguito, un esempio di come utilizzare le API per ottenere in modo programmatico un elenco dei contratti associati a un'azienda.

💡 il contratto rappresenta la relazione tra azienda e persona: ogni persona che accede ad un'azienda in Fluida ha sempre un utente (indipendente dall'azienda) e un contratto

Prima di cominciare:

  • Sei in possesso di una chiave API autorizzata ad effettuare l'operazione

  • Sei in possesso dell'ID dell'azienda (company_id)

Per ottenere l'elenco e le informazioni sui contratti, è possibile utilizzare l'operazione "Renders a list contract entries for a given company id". Di seguito un esempio della richiesta e dei relativi parametri.

Request method: GET

Request headers:

  • content-type: application/json

  • accept: */*

  • x-fluida-app-uuid: {api_key}

Response: 200 OK Contracts

Ottieni tramite API l'elenco dei team di un'azienda

Di seguito, un esempio di come utilizzare le API per ottenere in modo programmatico un elenco dei team (reparti o gruppi) di un'azienda.

Prima di cominciare:

  • Sei in possesso di una chiave API autorizzata ad effettuare l'operazione

  • Sei in possesso dell'ID dell'azienda (company_id)

Per ottenere l'elenco e le informazioni sui team aziendali, è possibile utilizzare l'operazione "Renders a list of teams for a given company id". Di seguito un esempio della richiesta e dei relativi parametri.

Request method: GET

Request headers:

  • content-type: application/json

  • accept: */*

  • x-fluida-app-uuid: {api_key}

Ottenere tramite API l'elenco delle sedi di un'azienda

Di seguito, un esempio di come utilizzare le API per ottenere in modo programmatico un elenco delle sedi di un'azienda.

Prima di cominciare:

  • Sei in possesso di una chiave API autorizzata ad effettuare l'operazione

  • Sei in possesso dell'ID dell'azienda (company_id)

Per ottenere l'elenco e le informazioni sulle sedi aziendali, è possibile utilizzare l'operazione "Renders a list of subsidiaries for a given company id". Di seguito un esempio della richiesta e dei relativi parametri.

Request method: GET

Request headers:

  • content-type: application/json

  • accept: */*

  • x-fluida-app-uuid: {api_key}

Aggiungere tramite API un nuovo committente di un'azienda

Di seguito, un esempio di come utilizzare le API per aggiungere in modo programmatico un nuovo committente di un'azienda.

Prima di cominciare:

  • Sei in possesso di una chiave API autorizzata ad effettuare l'operazione

  • Sei in possesso dell'ID dell'azienda (company_id)

Per creare un nuovo committente aziendale, è possibile utilizzare l'operazione "Creates a customer". Di seguito un esempio della richiesta e dei relativi parametri.

Request method: POST

Request headers:

  • content-type: application/json

  • accept: */*

  • x-fluida-app-uuid: {api_key}

Request body example:

{
"customer": {
"ref_code": "000158",
"name": "Customer A",
"company_id": "{company_id}"
}
}

La risposta ricevuta contiene l'ID del committente che può essere utilizzato, ad esempio, per aggiungere tramite API un nuovo progetto di un'azienda.

Response example (201 Created):

{
"company_id": "{company_id}",
"disabled": false,
"id": "{customer_id}",
"name": "Customer A",
"ref_code": "000158"
}

Ottenere tramite API l'elenco dei committenti di un'azienda

Di seguito, un esempio di come utilizzare le API per ottenere in modo programmatico un elenco dei committenti di un'azienda.

Prima di cominciare:

  • Sei in possesso di una chiave API autorizzata ad effettuare l'operazione

  • Sei in possesso dell'ID dell'azienda (company_id)

Per ottenere l'elenco e le informazioni sui progetti aziendali, è possibile utilizzare l'operazione "Renders a list of Customers with a specific Company ID". Di seguito un esempio della richiesta e dei relativi parametri.

Request method: GET

Request headers:

  • content-type: application/json

  • accept: */*

  • x-fluida-app-uuid: {api_key}

Response: 200 OK Customers

ℹ️ Il percorso indicato nella documentazione contiene un'imprecisione: fai riferimento all'URL della richiesta nell'esempio.

Aggiungere tramite API un nuovo progetto di un'azienda

Di seguito, un esempio di come utilizzare le API per aggiungere in modo programmatico un nuovo progetto di un'azienda.

Prima di cominciare:

  • Sei in possesso di una chiave API autorizzata ad effettuare l'operazione

  • Sei in possesso dell'ID dell'azienda (company_id)

  • Sei in possesso dell'ID del committente (customer_id) a cui vuoi associare il progetto.

Per creare un nuovo progetto aziendale, è possibile utilizzare l'operazione "Creates an Order". Di seguito un esempio della richiesta e dei relativi parametri.

Request method: POST

Request headers:

  • content-type: application/json

  • accept: */*

  • x-fluida-app-uuid: {api_key}

Request body example:

{
"order": {
"name": "Project A",
"ref_code": "P1",
"customer_id": "{customer_id}",
"company_id": "{company_id}"
}
}

Response example (201 Created):

{
"company_id": "{company_id}",
"customer_id": "{customer_id}",
"disabled": false,
"id": "{customer_id}",
"name": "Project A",
"ref_code": "P1"
}

Ottenere tramite API l'elenco dei progetti di un'azienda

Di seguito, un esempio di come utilizzare le API per ottenere in modo programmatico un elenco dei progetti di un'azienda.

Prima di cominciare:

  • Sei in possesso di una chiave API autorizzata ad effettuare l'operazione

  • Sei in possesso dell'ID dell'azienda (company_id)

Per ottenere l'elenco e le informazioni sui progetti aziendali, è possibile utilizzare l'operazione "Renders a list of Orders with a specific Company ID". Di seguito un esempio della richiesta e dei relativi parametri.

Request method: GET

Request headers:

  • content-type: application/json

  • accept: */*

  • x-fluida-app-uuid: {api_key}

Response: 200 OK Orders

ℹ️ Il percorso indicato nella documentazione contiene un'imprecisione: fai riferimento all'URL della richiesta nell'esempio.


Funzionalità Gestione presenze e Timbratura smart

Esporta tramite API il file Excel presenze e timbrature

Di seguito, un esempio di come utilizzare le API per ottenere in modo programmatico un'esportazione in formato xlsx dei dati di presenza e timbratura di un'azienda. Puoi partire da quest'esempio per realizzare un sistema che, al termine di ogni mese, estragga in automatico i dati e li invii in allegato a un indirizzo email.

Prima di cominciare:

  • Sei in possesso di una chiave API autorizzata ad effettuare l'operazione

  • Sei in possesso dell'ID dell'azienda (company_id)

Per esportare i dati, è possibile utilizzare l'operazione "Requests an export for a given company". Di seguito un esempio della richiesta e dei relativi parametri.

Request method: POST

Request headers:

  • content-type: application/json

  • accept: */*

  • x-fluida-app-uuid: {api_key}

Request body:

{
"contract_id": null,
"export_type": "presences_stampings_xlsx",
"recipient_locale": "it",
"decimal_format": false,
"year": "2023",
"month": "1",
"subsidiary_id": null,
"team_id": null,
"async": false
}

Avendo dato il valore "false" al parametro "async", la risposta ottienuta è simile a quella dell'esempio.

Response example:

{
"document_type": "export",
"id": {document_id},
"mime_type": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
"name": "limeworksrl-timbrature-gennaio-2023-20230213.xlsx",
"owner_id": {company_id},
"owner_type": "company"
}

Puoi ora utilizzare il valore di "document_id" ottenuto in risposta per scaricare l'export generato tramite l'operazione "Download export". Di seguito un esempio della richiesta.

Request method: GET

Request headers:

  • content-type: application/json

  • accept: */*

  • x-fluida-app-uuid: {api_key}

Ottieni tramite API richieste e segnalazioni di assenza, straordinario, lavoro da remoto, cambio turno e cambio sede

Di seguito, un esempio di come utilizzare le API per ottenere in modo programmatico un elenco delle richieste e segnalazioni di:

  • assenza (ferie, permessi, malattie, altre assenze)

  • straordinario

  • lavoro da remoto

  • cambio turno

  • cambio sede

relative a una persona che lavora per l'azienda e le rispettive informazioni.

Prima di cominciare:

  • Sei in possesso di una chiave API autorizzata ad effettuare l'operazione

  • Sei in possesso dell'ID dell'azienda (company_id)

  • Sei in possesso dell'ID del contratto (contract_id) della persona di cui vuoi ottenere le informazioni

Per ottenere l'elenco e le informazioni su richieste e segnalazioni, è possibile utilizzare l'operazione "Renders a list justification entries for a given contract id". Di seguito un esempio della richiesta e dei relativi parametri.

Request method: GET

Request headers:

  • content-type: application/json

  • accept: */*

  • x-fluida-app-uuid: {api_key}

L'elenco può essere ulteriormente filtrato con i seguenti parametri di query string:

⚠️ Con questa operazione vengono restituite tutte le richieste e segnalazioni della persona, a prescindere che la variazione sia o meno applicata al calendario (es: un'assenza per ferie non è applicata su un giorno di riposo, ma è comunque restituita dall'operazione). Per ottenere solo le variazioni applicate, vedi "Ottieni tramite API i dati "sintetici" del calendario presenze per un determinato periodo"

Ottieni tramite API i dati "sintetici" del calendario presenze per un determinato periodo

Di seguito, un esempio di come utilizzare le API per ottenere in modo programmatico un elenco dei dati presenti sul calendario presenze di tutte le persone che lavorano per l'azienda in un determinato periodo. I dati includono:

Prima di cominciare:

  • Sei in possesso di una chiave API autorizzata ad effettuare l'operazione

  • Sei in possesso dell'ID dell'azienda (company_id)

Per ottenere l'elenco e le informazioni su richieste e segnalazioni, è possibile utilizzare l'operazione descritta nel seguente esempio.

Request method: GET

Request headers:

  • content-type: application/json

  • accept: */*

  • x-fluida-app-uuid: {api_key}

Per ogni persona e per ogni giorno del periodo selezionato, viene restituito un oggetto come quello nel seguente esempio che illustra una porzione della risposta ricevuta (un giorno di una delle persone).

A partire da questo oggetto, è possibile, ad esempio, ottenere le richieste o segnalazioni di straordinario della persona per quel giorno di calendario estraendo dall'array "entries" gli elementi che hanno come "type_label" il valore "extraordinary".

Response example (partial)

{
"company_id": "{company_id}",
"contract_id": "{contract_id}",
"day": "2023-09-12",
"duration": 480,
"entries": [
{
"additive": null,
"duration": null,
"duration_rounding": 1,
"end": "08:59:59",
"fixed_end": "09:00:00",
"flexible": false,
"id": null,
"last_update": null,
"presence": false,
"start": "00:00:00",
"status": null,
"type_id": null,
"type_label": null,
"type_name": null,
"workplace": {}
},
{
"additive": false,
"duration": 240,
"duration_rounding": 30,
"end": "12:59:59",
"fixed_end": "13:00:00",
"flexible": false,
"id": "{entity_id}",
"last_update": "2023-09-04T14:52:10+00:00",
"presence": false,
"start": "09:00:00",
"status": "approved",
"type_id": "{type_id}",
"type_label": "holiday",
"type_name": "Ferie",
"workplace": {}
},
{
"additive": null,
"duration": null,
"duration_rounding": 1,
"end": "13:59:59",
"fixed_end": "14:00:00",
"flexible": false,
"id": null,
"last_update": null,
"presence": false,
"start": "13:00:00",
"status": null,
"type_id": null,
"type_label": null,
"type_name": null,
"workplace": {}
},
{
"additive": false,
"duration": 240,
"duration_rounding": 30,
"end": "17:59:59",
"fixed_end": "18:00:00",
"flexible": false,
"id": "{entity_id}",
"last_update": "2023-09-04T14:52:10+00:00",
"presence": false,
"start": "14:00:00",
"status": "approved",
"type_id": "{type_id}",
"type_label": "holiday",
"type_name": "Ferie",
"workplace": {}
},
{
"additive": null,
"duration": null,
"duration_rounding": 1,
"end": "23:59:59",
"fixed_end": "00:00:00",
"flexible": false,
"id": null,
"last_update": null,
"presence": false,
"start": "18:00:00",
"status": null,
"type_id": null,
"type_label": null,
"type_name": null,
"workplace": {}
}
],
"has_mismatches": false,
"is_flexible": false,
"is_holiday": false,
"shift_name": "09:00 > 13:00 | 14:00 > 18:00",
"user_id": "{user_id}",
"workplace_ids": [
"{workplace_id}"
]
}

Ottieni tramite API le timbrature di una persona

Di seguito, un esempio di come utilizzare le API per ottenere in modo programmatico un elenco delle timbrature di una persona che lavora per l'azienda e le rispettive informazioni.

Prima di cominciare:

  • Sei in possesso di una chiave API autorizzata ad effettuare l'operazione

  • Sei in possesso dell'ID dell'azienda (company_id)

  • Sei in possesso dell'ID del contratto (contract_id) della persona di cui vuoi ottenere le informazioni

Esistono diverse operazioni per ottenere le informazioni sulle timbrature effettuate:

Di seguito un esempio della richiesta e dei relativi parametri per l'utilizzo dell'operazione "Daily Clock Records" per ottenere le timbrature effettuate da una persona tra l'1 e il 30 giugno 2023.

💡 Il report Timbrature mensili nell'app Fluida HR Suite utilizza la stessa operazione per mostrare le timbrature di una persona!

⚠️ Per stabilire l'orario di timbratura, devono essere considerati esclusivamente gli attributi "server_clock_at" e "clock_tz".

L'attributo "server_clock_at" indica l'orario di timbratura effettivo/certificato, espresso con timezone UTC (l'orario è stabilito dal server). L'attributo "clock_at" invece indica l'orario "rilevato" dall'applicazione nel momento in cui viene effettuata la timbratura, mostrato nella home page affianco al tasto di timbratura.

L'attributo "clock_at" è salvato esclusivamente per fini statistici, non è in alcun caso da considerare. In alcune condizioni (es. l'applicazione viene messa in background), i valori dei due attributi potrebbero differire e fare riferimento a "clock_at" potrebbe portare a risultati indesiderati.

Request method: GET

Request headers:

  • content-type: application/json

  • accept: */*

  • x-fluida-app-uuid: {api_key}

Ottieni tramite API le timbrature eliminate

Di seguito, un esempio di come utilizzare le API per ottenere in modo programmatico un elenco delle timbrature in stato eliminato e le rispettive informazioni.

Prima di cominciare:

  • Sei in possesso di una chiave API autorizzata ad effettuare l'operazione

  • Sei in possesso dell'ID dell'azienda (company_id)

Per ottenere i dati sulle timbrature eliminate, è possibile utilizzare l'operazione "Renders a list of stampings for a given company id". Di seguito un esempio della richiesta e dei relativi parametri.

Request method: GET

Request headers:

  • content-type: application/json

  • accept: */*

  • x-fluida-app-uuid: {api_key}

Il parametro "day" in query string è obbligatorio!

Aggiungere tramite API la timbratura dichiarata per una persona

Di seguito, un esempio di come utilizzare le API per aggiungere in modo programmatico una nuova timbratura dichiarata (senza validazione) per una persona.

Prima di cominciare:

  • Sei in possesso di una chiave API autorizzata ad effettuare l'operazione

  • Sei in possesso dell'ID dell'azienda (company_id)

  • Sei in possesso dell'ID del contratto (contract_id) della persona di cui vuoi ottenere le informazioni

Per creare una nuova timbratura senza validazione, è possibile utilizzare l'operazione "Records a user stamping clock". Di seguito un esempio della richiesta e dei relativi parametri.

Request method: POST

Request headers:

  • content-type: application/json

  • accept: */*

  • x-fluida-app-uuid: {api_key}

Request body:

{
"stamping": {
"user_id": "{user_id}",
"created_by": "{contract_id}",
"updated_by": "{contract_id}",
"contract_id": "{contract_id}",
"company_id": "{company_id}",
"subsidiary_id": null,
"team_ids": [
"{team_id}",
"{team_id}"
],
"badge_id": null,
"clock_id": null,
"clock_at": "2023-12-18T16:54:00+01:00",
"clock_tz": "Europe/Rome",
"clock_type": "manual",
"direction": "IN",
"notes": "Importata dal sistema X"
}
}

La risposta ricevuta contiene l'ID della timbratura.

Response example

{
"data": {
"approver_ids": [],
"badge_id": null,
"change_log": [
{
"changed_at": "2023-12-18T15:58:59Z",
"changed_by": "{contract_id}",
"changes": [],
"notes": "Importata dal sistema X",
"operation": "create"
}
],
"clock_at": "2023-12-18T16:54:00",
"clock_id": null,
"clock_type": "manual",
"clock_tz": "Europe/Rome",
"closed_at": null,
"closed_by": null,
"company_id": "{contract_id}",
"contract_id": "{contract_id}",
"contract_subsidiary_id": null,
"day": null,
"direction": "IN",
"id": "{clock_id}",
"notes": "Importata dal sistema X",
"overnight": null,
"server_clock_at": "2023-12-18T15:54:00Z",
"stamping_device_type": null,
"status": "recorded",
"subsidiary_id": null,
"team_ids": [
"{team_id}",
"{team_id}"
],
"user_id": "{user_id}"
}
}

Funzionalità Nota spese

Le entità principali della funzionalità Nota spese sono Expense, ovvero spese sostenute da un lavoratore per conto dell'azienda, ed ExpenseReport, ovvero la nota spese in cui il lavoratore raggruppa le spese sostenute per trasmetterle all'azienda.

Un oggetto di tipo Expense è caratterizzato principalmente da:

  • riferimenti al contratto o utente (contract_id), alla categoria di spesa (expense_type_id), all'eventuale nota spese a cui la spesa è già stata associata (expense_report_id) e ad altre entità eventualmente collegate alla spesa

  • l'importo speso e quello da rimborsare, espressi in centesimi

  • la data in cui è stata sostenuta la spesa

L'elenco completo degli attributi degli oggetti è indicato nella documentazione del modello dati (schema) dell'entità Expense.

Un oggetto di tipo ExpenseReport è caratterizzato principalmente da:

  • riferimenti al contratto o utente (contract_id)

  • lo stato in cui la nota spese si trova

  • il totale speso e da rimborsare, espressi in centesimi

  • alcuni riferimenti temporali

L'elenco completo degli attributi degli oggetti è indicato nella documentazione del modello dati (schema) dell'entità ExpenseReport.

Ottieni tramite API l'elenco delle note spese di una persona

Di seguito, un esempio di come utilizzare le API per ottenere in modo programmatico un elenco di tutte le note spese inserite da una persona.

Prima di cominciare:

  • Sei in possesso di una chiave API autorizzata ad effettuare l'operazione

  • Sei in possesso dell'ID del contratto (contract_id) della persona di cui vuoi ottenere le informazioni

Per ottenere l'elenco e le informazioni sulle note spese, è possibile utilizzare l'operazione "List Expense Reports by Contract ID". Di seguito un esempio della richiesta e dei relativi parametri.

Request method: GET

Request headers:

  • content-type: application/json

  • accept: */*

  • x-fluida-app-uuid: {api_key}

Response: 200 OK ExpenseReports

Ottenere tramite API l'elenco delle note spese di un'azienda

Di seguito, un esempio di come utilizzare le API per ottenere in modo programmatico un elenco delle note spese di un'azienda, con possibilità di filtrare per stato, data di competenza e data di modifica, utile nel caso di letture incrementali.

Prima di cominciare:

  • Sei in possesso di una chiave API autorizzata ad effettuare l'operazione

  • Sei in possesso dell'ID dell'azienda (company_id)

Per ottenere l'elenco e le informazioni sulle tipologie di attività aziendali, è possibile utilizzare l'operazione "Renders a list of Expense Reports by Company ID" con i seguenti query params:

  • from_date: data YYYY-MM-dd,

  • to_date: data YYYY-MM-dd,

  • status: array
    Se presente, filtra le note spese per gli stati contenuti nel parametro. Possibili valori:

    • draft (bozza)

    • pending (attesa approvazione)

    • accepted (approvata)

    • rejected (rifiutata)

    • cancelled (annullata)

    • refunded (rimborsata)

Di seguito un esempio della richiesta e dei relativi parametri per ottenere le note spese di un'azienda con competenza tra l'1 aprile 2024 e il 31 marzo 2024 con stato "Approvata" oppure "Rimborsata".

Request method: GET

Request headers:

  • content-type: application/json

  • accept: */*

  • x-fluida-app-uuid: {api_key}

Response: 200 OK ExpenseReports

Ottieni tramite API l'elenco delle spese di una nota spese

Di seguito, un esempio di come utilizzare le API per ottenere in modo programmatico un elenco di tutte le spese associate ad una nota spese.

Prima di cominciare:

  • Sei in possesso di una chiave API autorizzata ad effettuare l'operazione

  • Sei in possesso dell'ID della nota spese (expense_report_id)

Per ottenere l'elenco e le informazioni sulle spese di una nota spese, è possibile utilizzare l'operazione "Renders a list of Expenses by Expense Report ID". Di seguito un esempio della richiesta e dei relativi parametri.

Request method: GET

Request headers:

  • content-type: application/json

  • accept: */*

  • x-fluida-app-uuid: {api_key}

Response: 200 OK Expenses

Ottieni tramite API l'elenco delle spese sostenute da una persona in una determinata data

Di seguito, un esempio di come utilizzare le API per ottenere in modo programmatico un elenco di tutte le spese sostenute da una determinata persona in una certa data.

Prima di cominciare:

  • Sei in possesso di una chiave API autorizzata ad effettuare l'operazione

  • Sei in possesso dell'ID del contratto (contract_id) della persona di cui vuoi ottenere le informazioni

Per ottenere l'elenco e le informazioni sulle spese di una nota spese, è possibile utilizzare l'operazione "Renders a list of ExpensesCalendar by Contract ID and Date". Di seguito un esempio della richiesta e dei relativi parametri.

Request method: GET

Request headers:

  • content-type: application/json

  • accept: */*

  • x-fluida-app-uuid: {api_key}

Response: 200 OK ExpensesCalendar

Ottieni tramite API l'elenco delle tipologie di spesa di un'azienda

Di seguito, un esempio di come utilizzare le API per ottenere in modo programmatico un elenco delle tipologie di spesa di un'azienda.

Prima di cominciare:

  • Sei in possesso di una chiave API autorizzata ad effettuare l'operazione

Per ottenere l'elenco e le informazioni sulle tipologie di spesa aziendali, è possibile utilizzare l'operazione "Renders a list of Expense Types". Di seguito un esempio della richiesta e dei relativi parametri.

Request method: GET

Request headers:

  • content-type: application/json

  • accept: */*

  • x-fluida-app-uuid: {api_key}

Response: 200 OK ExpenseTypes


Funzionalità Rendicontazione attività

Le entità principali della funzionalità Rendicontazione attività in modalità "Avanzata" sono ActivityType, ovvero una tipologia di attività definita dall'azienda, e Activity, che rappresenta la singola attività rendicontata da un utente in un determinato giorno.

Un oggetto di tipo Activity è caratterizzato principalmente da:

  • riferimenti al contratto o utente (contract_id), al progetto o commessa (order_id) e al tipo di attività (activity_type_id)

  • durata rendicontata, espressa in minuti

  • durata prevista da rendicontare, espressa in minuti e ottenuta sulla base del calendario presenze (disponibile solo se è attiva la funzionalità presenze e l’utente ha un orario assegnato)

  • la data in cui è stata svolta l'attività

L'elenco completo degli attributi degli oggetti è indicato nella documentazione del modello dati (schema) dell'entità Activity e dell'entità ActivityType.

Aggiungi tramite API una nuova tipologia di attività aziendale

Di seguito, un esempio di come utilizzare le API per aggiungere in modo programmatico una nuova tipologia di attività aziendale (ActivityType).

Prima di cominciare:

  • Sei in possesso di una chiave API autorizzata ad effettuare l'operazione

  • Sei in possesso dell'ID dell'azienda (company_id)

Per creare una nuova tipologia di attività, è possibile utilizzare l'operazione "Creates an activity type". Di seguito un esempio della richiesta e dei relativi parametri.

Request method: POST

Request headers:

  • content-type: application/json

  • accept: */*

  • x-fluida-app-uuid: {api_key}

Request body example:

{
"activity_type": {
"name": "Activity Type A",
"ref_code": "A1",
"company_id": "{company_id}"
}
}

Response example (201 Created):

{
"company_id": "{company_id}",
"disabled": false,
"id": "{activity_type_id}",
"name": "Activity Type A",
"ref_code": "A1",
"team_ids": []
}


Ottieni tramite API l'elenco delle tipologie di attività di un'azienda

Di seguito, un esempio di come utilizzare le API per ottenere in modo programmatico un elenco delle tipologie di attività di un'azienda.

Prima di cominciare:

  • Sei in possesso di una chiave API autorizzata ad effettuare l'operazione

  • Sei in possesso dell'ID dell'azienda (company_id)

Per ottenere l'elenco e le informazioni sulle tipologie di attività aziendali, è possibile utilizzare l'operazione "Renders a list of Activity Types with a specific Company ID". Di seguito un esempio della richiesta e dei relativi parametri.

Request method: GET

Request headers:

  • content-type: application/json

  • accept: */*

  • x-fluida-app-uuid: {api_key}

Response: 200 OK ActivityTypes

ℹ️ Il percorso indicato nella documentazione contiene un'imprecisione: fai riferimento all'URL della richiesta nell'esempio.

Ottieni tramite API l'elenco delle rendicontazioni di attività relative ad una specifica giornata per tutte le persone di un'azienda

Di seguito, un esempio di come utilizzare le API per ottenere in modo programmatico un elenco di tutte le rendicontazioni attività relative ad una specifica data inserite da qualunque persona di un'azienda.

Prima di cominciare:

  • Sei in possesso di una chiave API autorizzata ad effettuare l'operazione

  • Sei in possesso dell'ID dell'azienda (company_id)

Per ottenere l'elenco e le informazioni sui progetti, è possibile utilizzare l'operazione "Returns activities of a specific company". Di seguito un esempio della richiesta e dei relativi parametri.

Request method: GET

Request headers:

  • content-type: application/json

  • accept: */*

  • x-fluida-app-uuid: {api_key}

Ottieni tramite API l'elenco delle rendicontazioni di attività di una persona relative ad una specifica giornata

Di seguito, un esempio di come utilizzare le API per ottenere in modo programmatico un elenco di tutte le rendicontazioni attività inserite da una persona relative ad una specifica data.

Prima di cominciare:

  • Sei in possesso di una chiave API autorizzata ad effettuare l'operazione

  • Sei in possesso dell'ID dell'azienda (company_id)

  • Sei in possesso dell'ID del contratto (contract_id) della persona di cui vuoi ottenere le informazioni

Per ottenere l'elenco e le informazioni sulle rendicontazioni attività, è possibile utilizzare l'operazione "List contract activities". Di seguito un esempio della richiesta e dei relativi parametri.

Request method: GET

Request headers:

  • content-type: application/json

  • accept: */*

  • x-fluida-app-uuid: {api_key}

Response: 200 OK ActivityReport

A partire da questo oggetto, è possibile, ad esempio, decodificare tipi di attività, progetti e committenti attraverso il loro id.


Domande frequenti sulle API

Posso autenticarmi tramite OAuth 2.0?

L’autenticazione OAuth ad oggi è utilizzata esclusivamente dalle applicazioni ufficiali Fluida. Per realizzare integrazioni con sistemi terzi, è possibile autenticarsi esclusivamente tramite chiave API (ApiKey).

Tutti gli endpoint sono disponibili con autenticazione tramite chiave API?

La maggior parte delle operazioni (e dei relativi endpoint) possono essere utilizzati anche autenticandosi tramite APIKey. L'autenticazione OAuth 2.0 è l'unica consentita solo per alcune operazioni specifiche, come la creazione, lettura, modifica ed eliminazione di Chiavi API.


⚠️ Negli esempi del Developer Portal, per alcune operazioni OAuth2 è indicato come unico metodo di autenticazione supportato: contattaci se hai esigenza utilizzare questi endpoint, fornendoci il maggior numero di informazioni sull'integrazione che vuoi realizzare.


Posso inserire tramite API una timbratura certificata per una persona?

Tramite le API accessibili a terze parti (clienti / partner) è possibile solo inserire timbrature NON certificate.

Le app Fluida HR Suite (iOS e Android) e Kiosk by Fluida (Android / Station) utilizzano le API per inserire timbrature certificate, ma con un processo complesso e non pubblicamente condivisibile.


Hai ricevuto la risposta alla tua domanda?