Contratti domestici

Gestisci i rapporti di lavoro domestico: anagrafica del lavoratore, orario settimanale, configurazione retributiva, impostazioni contrattuali e voci aggiuntive.


GET/v1/domestic-contracts

Restituisce l'elenco dei contratti domestici. Supporta paginazione, ricerca e filtri.

Parametri query

ParametroTipoObbligatorioDescrizione
organizationIdstringID dell'organizzazione.
pageintegerNoNumero di pagina (default 1).
limitintegerNoNumero massimo di risultati (default 20, max 100).
searchstringNoTermine di ricerca testuale.
statusstringNoFiltra per stato: draft, active, inactive.
sortFieldstringNoCampo per l'ordinamento.
sortDirectionstringNoDirezione ordinamento: asc o desc.

Risposta

{
  "data": [
    {
      "id": "dc_01H9Y4N",
      "humanReadableId": "DC-2026-001",
      "employerId": "123e4567-e89b-12d3-a456-426614174000",
      "organizationId": "org_01H8X3K",
      "status": "active",
      "termType": "indefinite",
      "employmentDate": "2026-01-15",
      "contractType": "non_livein",
      "contractLevel": "B",
      "paymentType": "bank_transfer",
      "personalInfo": {
        "firstName": "Anna",
        "lastName": "Bianchi",
        "fiscalCode": "BNCHNN90A01H501Z"
      },
      "weekSchedule": {
        "monday": "5",
        "tuesday": "5",
        "wednesday": "5",
        "thursday": "5",
        "friday": "5",
        "saturday": "0",
        "sunday": "0",
        "hoursPerWeek": "25",
        "workingDaysPerWeek": "5"
      },
      "archived": false,
      "createdAt": "2026-01-10T09:00:00Z",
      "updatedAt": "2026-01-10T09:00:00Z"
    }
  ]
}

GET/v1/domestic-contracts/{id}

Restituisce i dettagli completi di un singolo contratto domestico, inclusi orario, retribuzione, impostazioni e voci aggiuntive.

Parametri path

ParametroTipoObbligatorioDescrizione
idstringID del contratto domestico.

POST/v1/domestic-contracts

Crea un nuovo contratto domestico.

Parametri body

ParametroTipoObbligatorioDescrizione
employerIdstringID del datore di lavoro.
organizationIdstringID dell'organizzazione.
termTypestringTipo di contratto: indefinite (tempo indeterminato) o fixed (tempo determinato).
employmentDatestringData di assunzione (formato YYYY-MM-DD).
expirationDatestringNoData di scadenza (formato YYYY-MM-DD). Obbligatorio per contratti a tempo determinato.
contractTypestringTipo di rapporto: non_livein, livein_fulltime, livein_parttime, livein_night_assistance, livein_night_presence, replacement.
contractLevelstringLivello CCNL: unique, A, AS, B, BS, C, CS, D, DS.
domesticProfilestringNoDescrizione del profilo lavorativo.
domesticInspCodestringNoCodice ispettorato.
paymentTypestringModalità di pagamento: cash, bank_transfer, check.
paymentDetailsstringNoDettagli sul pagamento (es. IBAN).
personalInfoobjectDati anagrafici del lavoratore (vedi tabella sotto).
weekScheduleobjectOrario settimanale (vedi tabella sotto).
miscobjectImpostazioni contrattuali (vedi tabella sotto).
wageConfigobjectConfigurazione retributiva (vedi tabella sotto).
priorPayrollobjectNoDati di cedolini precedenti per continuità (vedi tabella sotto).
additionalEntriesarrayNoVoci aggiuntive ricorrenti (vedi tabella sotto).

personalInfo (dati del lavoratore)

Stessa struttura del campo personalInfo dei datori di lavoro: firstName, lastName, fiscalCode, birthDate, address, locality, province, zipCode, phone, email, pec, ecc.

weekSchedule (orario settimanale)

ParametroTipoObbligatorioDescrizione
mondaystringOre di lavoro il lunedì.
tuesdaystringOre di lavoro il martedì.
wednesdaystringOre di lavoro il mercoledì.
thursdaystringOre di lavoro il giovedì.
fridaystringOre di lavoro il venerdì.
saturdaystringOre di lavoro il sabato.
sundaystringOre di lavoro la domenica.

wageConfig (configurazione retributiva)

ParametroTipoObbligatorioDescrizione
wageTypeOverwritestringNoTipo di retribuzione: hourly o monthly.
basePaystringNoPaga base (importo decimale).
isBasePayOverwrittenbooleanNoSe true, il valore di basePay sovrascrive il minimo tabellare.
extraMinVariablestringNoSuperminimo variabile.
isExtraMinVariableAutomaticbooleanNoSe true, il superminimo variabile è calcolato automaticamente.
extraMinSetDatestringNoData di impostazione del superminimo variabile (YYYY-MM-DD).
extraMinNonVariablestringNoSuperminimo non variabile.
extraSenioritystringNoScatto di anzianità.
extraSeniorityCountstringNoNumero di scatti maturati.
nextSeniorityIncreaseDatestringNoData del prossimo scatto (YYYY-MM-DD).
isExtraSeniorityOverwrittenbooleanNoSe true, lo scatto è sovrascritto manualmente.
functioningAllowancestringNoIndennità di funzione.
isFunctioningAllowanceOverwrittenbooleanNoSe true, l'indennità di funzione è sovrascritta.
accommodationLunchstringNoIndennità vitto pranzo.
accommodationDinnerstringNoIndennità vitto cena.
accommodationLodgestringNoIndennità alloggio.
isAccommodationOverwrittenbooleanNoSe true, le indennità vitto/alloggio sono sovrascritte.

misc (impostazioni contrattuali)

ParametroTipoObbligatorioDescrizione
isRelativebooleanNoIl lavoratore è un familiare del datore.
isPreschoolChildCarebooleanNoAssistenza a bambini in età prescolare.
isCareForMultipleNotSelfSufficientbooleanNoAssistenza a persone non autosufficienti.
isUniCertificatedbooleanNoLavoratore con certificazione universitaria.
isVacationEnabledbooleanNoMaturazione ferie abilitata.
vacationCalculationTypestringNoCalcolo ferie: hours o days.
isVacationLiquidatedMonthlybooleanNoFerie liquidate mensilmente.
isSeveranceEnabledbooleanNoTFR abilitato.
isSeveranceLiquidatedMonthlybooleanNoTFR liquidato mensilmente.
isSeveranceCalculatedOnAnnualBasebooleanNoTFR calcolato su base annuale.
isThirteenthEnabledbooleanNoTredicesima abilitata.
isThirteenthLiquidatedMonthlybooleanNoTredicesima liquidata mensilmente.
isInpsContributionEnabledbooleanNoContributi INPS abilitati.
isInpsContributionWithheldbooleanNoContributi INPS trattenuti dal netto.
isCassaColfContributionEnabledbooleanNoContributi Cassa Colf abilitati.
isCassaColfContributionWithheldbooleanNoContributi Cassa Colf trattenuti dal netto.
isAccommodationEnabledbooleanNoIndennità vitto/alloggio abilitata.
accommodationDaysMonthstringNoCalcolo giorni vitto: week_schedule, days_26, days_30.

additionalEntries (voci aggiuntive ricorrenti)

ParametroTipoObbligatorioDescrizione
namestringDescrizione della voce.
amountstringImporto (decimale, es. '100.00').
typestringTipo di voce: earning (competenza), withholding (trattenuta), figurative (figurativo).

priorPayroll (dati pregressi)

Utilizzare questo oggetto quando si importa un contratto con cedolini già elaborati da un altro sistema, per garantire la continuità nei calcoli di ferie, TFR e tredicesima.

ParametroTipoObbligatorioDescrizione
datestringData di riferimento dei dati pregressi (YYYY-MM-DD).
ytdGrossstringNoImponibile lordo da inizio anno.
ytdInpsContributionsstringNoContributi INPS da inizio anno.
ytdCassacolfContributionsstringNoContributi Cassa Colf da inizio anno.
accruedPreviousYearsSeverancestringNoTFR maturato anni precedenti.
accruedThisYearSeverancestringNoTFR maturato anno corrente.
totalLiquidatedSeverancestringNoTFR totale liquidato.
leftPreviousYearsVacationstringNoFerie residue anni precedenti.
accruedThisYearVacationstringNoFerie maturate anno corrente.
usedThisYearVacationstringNoFerie godute anno corrente.
accruedThirteenthstringNoTredicesima maturata.

Esempio

curl -X POST https://api.workledger.it/v1/domestic-contracts \
  -H "Authorization: Bearer wl_test_abc123" \
  -H "Content-Type: application/json" \
  -d '{
    "employerId": "123e4567-e89b-12d3-a456-426614174000",
    "organizationId": "org_01H8X3K",
    "termType": "indefinite",
    "employmentDate": "2026-01-15",
    "contractType": "non_livein",
    "contractLevel": "B",
    "paymentType": "bank_transfer",
    "personalInfo": {
      "firstName": "Anna",
      "lastName": "Bianchi",
      "fiscalCode": "BNCHNN90A01H501Z"
    },
    "weekSchedule": {
      "monday": "5",
      "tuesday": "5",
      "wednesday": "5",
      "thursday": "5",
      "friday": "5",
      "saturday": "0",
      "sunday": "0"
    },
    "wageConfig": {},
    "misc": {
      "isVacationEnabled": true,
      "isSeveranceEnabled": true,
      "isThirteenthEnabled": true,
      "isInpsContributionEnabled": true,
      "isCassaColfContributionEnabled": true
    }
  }'

I campi di wageConfig non specificati vengono calcolati automaticamente in base al livello contrattuale e alle tabelle retributive CCNL vigenti.


PATCH/v1/domestic-contracts/{id}

Aggiorna un contratto domestico esistente. Accetta gli stessi campi della creazione; vengono aggiornati solo i campi inclusi nel body.

Parametri path

ParametroTipoObbligatorioDescrizione
idstringID del contratto domestico.

Esempio

curl -X PATCH https://api.workledger.it/v1/domestic-contracts/dc_01H9Y4N \
  -H "Authorization: Bearer wl_test_abc123" \
  -H "Content-Type: application/json" \
  -d '{
    "contractLevel": "CS",
    "weekSchedule": {
      "monday": "6",
      "tuesday": "6",
      "wednesday": "6",
      "thursday": "6",
      "friday": "6",
      "saturday": "0",
      "sunday": "0"
    }
  }'

DELETE/v1/domestic-contracts/{id}

Elimina un contratto domestico.

Parametri path

ParametroTipoObbligatorioDescrizione
idstringID del contratto domestico.

Operazione irreversibile

L'eliminazione rimuove il contratto e tutti i dati associati (eventi lavorativi, cedolini). Verificare attentamente prima di procedere.


Tipi di contratto

ValoreDescrizione
non_liveinNon convivente
livein_fulltimeConvivente a tempo pieno
livein_parttimeConvivente a tempo parziale
livein_night_assistanceConvivente con assistenza notturna
livein_night_presenceConvivente con presenza notturna
replacementSostituzione

Livelli contrattuali CCNL

LivelloDescrizione
uniqueLivello unico
ACollaboratore generico non addetto all'assistenza
ASAddetto alla compagnia
BCollaboratore generico con esperienza
BSAssistente a persone autosufficienti
CCollaboratore con competenze specifiche
CSAssistente a persone non autosufficienti
DCollaboratore con esperienza e responsabilità
DSAssistente formato a persone non autosufficienti