The v3 User is the representation of an employee in the Legacy API. A v3 user is comprised of:
  • a hard-coded set of attributes (e.g firstName, mail, managerId, etc…) called coreData;
  • a dynamic set of extensions depending on installed applications called applicationData. Some of them are nested in a applicationData JSON object in read (GET) requests, and some are root properties.
  • a dynamic set of custom extensions depending on the Employee Directory configuration called extendedData. Their names are prefixed with "e_". For read requests, these are always nested in the extendedData attribute.
Examples:
NameDescriptionType
addressEmployee’s personal address.CodeData
e_bloodTypeEmployee’s blood type.ExtendedData
profile_cleemy_89Employee’s expenses management profile (for application 89).ApplicationData
// Read
{
    "data": {
        "id": 2938,
        // Dictionary of CoreData

        // Root level application data
        "frenchMotocyclesTaxHorsePower": "",
        "applicationData": {
            "profile_cleemy_89": {
                "id": 12,
                "name": "Regular employee",
                "url": "https://example.ilucca.net/api/v3/expenseprofiles-89/12"
            }
            // Dictionary of ApplicationData
        },
        "extendedData": {
            "e_bloodType": "AB"
            // Dictionary of ExtendedData
        }
    }
}
The v3 user existed before the introduction of work-contracts, as a result, contractual information (establishment/legal-entity, contract start and end dates, etc…) now comes from the “applicable” work-contract.
You may not be able to retrieve all properties, as you may not have access to every single one of them.

About Extended Data(s)

Read more about extended-data

About User Axis Values

User axis values can be used for matching users and axis-sections. Common use-case is giving each user a cost center, which are axis-sections in a “Cost Center” axis. Read more about axes and axis-sections. In order to attach an axis-section of a given axis to a user, you may use dynamic properties whose key must match: { "userAxisValues_{{axisId}}": {"id": {{axisSectionId}} }. For example, if user with ID 416 belongs to the cost center which corresponds to the axis-section with ID 35 in the axis with ID 2:
{
    "id": 416,
    ...
    "userAxisValues_2": {
    "id": 35
    }
}

About Application Data

Application-data are custom extensions to the user/employees defined by installed applications on your Lucca account. About Lucca Expenses Profile Expenses management profile in Lucca Expenses. Assigning a Lucca Expenses profile to a user is handled through a property whose name is dynamic, as it must conform to the pattern "profile_cleemy_{{appInstanceId}} where appInstanceId is the ID of the corresponding Cleemy Expense appplication instance (there can be more than one Cleemy Expenses application installed on any given account).
{
    "profile_cleemy_12": {
    "id": 34,
    "name": "Generic profile",
    "url": "..."
    }
}
firstName
string
required

Employee's first name (given name).

Minimum length: 1
lastName
string
required

Employee's last name (family name).

Minimum length: 1
login
string
required

Unique identifier of this employee.

Minimum length: 1
mail
string
required

Employee's professional email address.

Minimum length: 1
dtContractStart
string<date-time>
required

First day of employment.

Establishment this employee works for.

Required range: x >= 1
employeeNumber
string | null
required

Employee number. Must be unique by establishment (i.e. legalEntity).

Minimum length: 1
departmentId
integer
required

Identifier of the department this employee works in.

Required range: x >= 1
managerId
integer | null
required

Identifier this user/employee's manager. Is also a user/employee. Null may be interpreted as "this employee has no manager but themselves".

birthDate
string<date-time> | null
required

Birth date of this employee.

cultureID
integer
required

Language code identifiers (LCID).

Required range: 1025 <= x <= 58380
Examples:

1036

1033

1031

1034

calendarId
integer | null
required

Unique identifier of this employee's business-holidays calendar.

Required range: x >= 1
rolePrincipalId
integer
required

Identifier of the "primary" role this user/employee has.

There are two types of roles: "primary" and "secondary". A user/employee must have a single primary role, that dictates their overall level of access, as well as zero or several complementary "secondary" roles.

Required range: x >= 1
habilitedRoles
object[]
required

List of "secondary" (complementary) roles given to this user/employee.

id
number

Unique identifier

Required range: x >= 1
url
string<uri>
Minimum length: 1
name
string

Concatenation of both the firstName and lastName

Minimum length: 1
displayName
string

Concatenation of both the lastName and firstName.

Minimum length: 1
dtContractEnd
string<date-time> | null

Last day of employment. Leave null if unknown.

Embedded representation of the establishment this employee works for.

department
object

Embedded representation of the department. Read more about departments.

manager
object
cspId
integer | null

Identifier of the socio-professional category of this employee.

Required range: x >= 1
nationalityId
string | null

ISO 3166-1 alpha-2 country code

Required string length: 2
Examples:

"FR"

"UK"

"US"

"ES"

"IT"

"DE"

seniorityDate
string<date-time> | null

Seniority date of this employee. If left null, you may fall back on this employee's dtContractStart.

insuranceNumber
string | null

Social security number of this employee.

calendar
object
userWorkCycles
object[]

Work-cycles describe the expected (recurring) working hours of the employee. An employee may be given multiple work-cycles over their career, but no two may overlap.

picture
object

Profile picture of this user/employee.

rolePrincipal
object
address
string | null

Personal address of this user/employee.

directLine
string<phone> | null

Professional landline phone number of this user/employee.

jobTitle
string | null

Job title of this user/employee.

Minimum length: 1
gender
enum<string>
default:Undefined

Employee declared gender.

Available options:
Undefined,
Male,
Female,
Misc
personalEmail
string<email> | null

Personal email address of this user/employee.

personalMobile
string<phone> | null

Personal mobile phone number of this user/employee.

professionalMobile
string<phone> | null

Professional mobile phone number of this user/employee.

allowsElectronicPayslip
boolean | null

Whether this user/employee gave their consent to receive their payslip in an electronic format (i.e. PDF and email) rather than through physical means. This property is used by the Lucca Payslips application.

quote
string | null

Optional personal quote of this user/employee. Reflects their mood and/or character. Displayed in the "who's who".

personalCard
string | null

Personal credit card number. Only when Lucca Expenses is installed.

corporateCard
string | null

Coporate credit card number. Only when Lucca Expenses is installed.

bankName
string | null

Name of bank of this user/employee bank account.

rib
string | null

Employee personal bank account RIB (French: "Relevé d'identité Bancaire").

iban
string | null

Employee personal bank account IBAN (International Bank Account Number).

bic
string | null

Employee personal bank account SWIFT BIC code (routing number).

frenchCarTaxHorsePower
integer | null

Number of fiscal horspowers of the employee car in the context of mileage-related expense claims. Only when Lucca Expenses is installed.

frenchMotocyclesTaxHorsePower
integer | null

Number of fiscal horspowers of the employee motorcycle in the context of mileage-related expense claims. Only when Lucca Expenses is installed.

unitSellPrice
number | null

Legacy property. Should not be used.

modifiedAt
string<date-time>

Timestamp of the last time this user/employees attributes were modified.

Minimum length: 1
applicationData
object
Example:
{
"profile_figgo": {
"id": 1,
"name": "Cadre (218 jours)",
"url": "https://example.ilucca.net/api/v3/leaveprofiles/1"
},
"profile_cleemy_89": {
"id": 23,
"name": "Regular employee",
"url": "https://example.ilucca.net/api/v3/expenseprofiles-89/23"
},
"fullTimeEquivalent": { "value": "Full time", "link": null },
"theoreticalRemuneration": {
"value": "87,000.00 €",
"link": {
"url": "https://example.ilucca.net/popleerem/remunerations#/416",
"text": "Go to Lucca Compensation"
}
},
"manager2": null
}
extendedData
object

Dictionary of extended data, which are custom extensions to the base user/employee model. Keys are the custom extended-data definition identifier (e.g. e_Emergency-Contact). The value is polymorphic, and its type depends on the extended-data definition.

Read more about extended data.