# Absences

Part of the [GeoDynamics API](/api/geodynamics/index.md). Host: `https://api.geodynamics.dev`.

## GET /intellitracer/v2/absencetype?page={page}&search={search}

`https://api.geodynamics.dev/intellitracer/v2/absencetype?page={page}&search={search}`

Privilege required: `Api: Timesheet management`

Get absence types

Returns a paged list of absence types.

### Path parameters

| Name | Type | Required | Example |
| --- | --- | --- | --- |
| `page` | number | required | `1` |
| `search` | string | required | `ABC` |

### Responses

#### 200: OK

| Field | Type |
| --- | --- |
| `Data` (default = null) | array |
| `PagingFilter` (default = null) | object |

```json
{
  "Data": [
    {
      "Name": "Sickness",
      "AbsenceCode": "100",
      "Paid": false,
      "TemporaryUnemployment": false,
      "Color": "#000000",
      "IncludeInExport": true,
      "Id": "00000000-0000-0000-0000-000000000000"
    }
  ],
  "PagingFilter": {
    "Page": 1,
    "Search": "ABC",
    "PageCount": 4,
    "TotalCount": 100,
    "Links": {
      "Base": "https://api.geodynamics.dev",
      "First": "/intellitracer/v2/asset?page=1",
      "Prev": "/intellitracer/v2/asset?page=2",
      "Next": "/intellitracer/v2/asset?page=4",
      "Last": "/intellitracer/v2/asset?page=4"
    }
  }
}
```

#### 401: Unauthorized

#### 403: Forbidden

#### 417: ExpectationFailed

## GET /intellitracer/v2/absencetype/{id}

`https://api.geodynamics.dev/intellitracer/v2/absencetype/{id}`

Privilege required: `Api: Timesheet management`

Get absence type by Id

Gets an absence type by its Id.

### Path parameters

| Name | Type | Required | Example |
| --- | --- | --- | --- |
| `id` | string | required | `00000000-0000-0000-0000-000000000000` |

### Responses

#### 200: OK

| Field | Type |
| --- | --- |
| `Data` (default = null) | object |

```json
{
  "Data": {
    "Name": "Sickness",
    "AbsenceCode": "100",
    "Paid": false,
    "TemporaryUnemployment": false,
    "Color": "#000000",
    "IncludeInExport": true,
    "Id": "00000000-0000-0000-0000-000000000000"
  }
}
```

#### 401: Unauthorized

#### 403: Forbidden

#### 417: ExpectationFailed

## DELETE /intellitracer/v2/absencetype/{id}

`https://api.geodynamics.dev/intellitracer/v2/absencetype/{id}`

Privilege required: `Api: Timesheet management`

Delete absence type

Deletes an absence type.

### Path parameters

| Name | Type | Required | Example |
| --- | --- | --- | --- |
| `id` | string | required | `00000000-0000-0000-0000-000000000000` |

### Request body

### Responses

#### 200: OK

#### 401: Unauthorized

#### 403: Forbidden

#### 417: ExpectationFailed

## PUT /intellitracer/v2/absencetype

`https://api.geodynamics.dev/intellitracer/v2/absencetype`

Privilege required: `Api: Timesheet management`

Create absence type

Creates a new absence type.

### Request body

Type: `object`

| Field | Type | Required |
| --- | --- | --- |
| `Name` (default = null) | string | required |
| `AbsenceCode` (default = null) | string | required |
| `Paid` (default = false) | boolean | optional |
| `TemporaryUnemployment` (default = false) | boolean | optional |
| `Color` (default = null) | string | optional |
| `IncludeInExport` (default = true) Determines whether absences of this type will be included in exports to social secretaries created through specific Excel exports generated via our website. If unsure, don't include this boolean in your request or leave it on 'true'. | boolean | optional |

### Responses

#### 200: OK

#### 401: Unauthorized

#### 403: Forbidden

#### 417: ExpectationFailed

## POST /intellitracer/v2/absence/user/list?page={page}&search={search}

`https://api.geodynamics.dev/intellitracer/v2/absence/user/list?page={page}&search={search}`

Privilege required: `Api: Timesheet management`

Get absences

Returns a paged list of absences within a date/time range for one or more users.

Pagination and searching is explained in [Pagination](#pagination).

### Path parameters

| Name | Type | Required | Example |
| --- | --- | --- | --- |
| `page` | number | required | `1` |
| `search` | string | required | `ABC` |

### Request body

### Responses

#### 200: OK

| Field | Type |
| --- | --- |
| `Data` (default = null) | array |
| `PagingFilter` (default = null) | object |

```json
{
  "Data": [
    {
      "User": {
        "Id": "00000000-0000-0000-0000-000000000000",
        "Code": "012345",
        "Name": "John Doe",
        "Type": 0
      },
      "Absences": [
        {
          "Id": "00000000-0000-0000-0000-000000000000",
          "Date": "2019-01-24",
          "AbsenceType": {
            "Name": "Sickness",
            "AbsenceCode": "100",
            "Paid": false,
            "TemporaryUnemployment": false,
            "Color": "#000000",
            "IncludeInExport": true
          },
          "Start": "2019-01-24T07:00:00+01:00",
          "Stop": "2019-01-24T15:00:00+01:00",
          "Duration": "08:00:00",
          "Notes": "Notes"
        }
      ]
    }
  ],
  "PagingFilter": {
    "Page": 1,
    "Search": "ABC",
    "PageCount": 4,
    "TotalCount": 100,
    "Links": {
      "Base": "https://api.geodynamics.dev",
      "First": "/intellitracer/v2/asset?page=1",
      "Prev": "/intellitracer/v2/asset?page=2",
      "Next": "/intellitracer/v2/asset?page=4",
      "Last": "/intellitracer/v2/asset?page=4"
    }
  }
}
```

#### 401: Unauthorized

#### 403: Forbidden

## POST /intellitracer/v2/absence/bulk/user

`https://api.geodynamics.dev/intellitracer/v2/absence/bulk/user`

Privilege required: `Api: Timesheet management`

Update absences by user

Updates the absences for one user on one or more days. Existing absences for these users/days are removed.

The number of days is limited to a maximum of 100.

### Request body

Type: `object`

| Field | Type | Required |
| --- | --- | --- |
| `UserId` | string | required |
| `Absences` | array | required |

### Responses

#### 200: OK

| Field | Type |
| --- | --- |
| `Data` (default = null) | array |

```json
{
  "Data": [
    {
      "User": {
        "Id": "00000000-0000-0000-0000-000000000000",
        "Code": "012345",
        "Name": "John Doe",
        "Type": 0
      },
      "Absences": [
        {
          "Id": "00000000-0000-0000-0000-000000000000",
          "Date": "2019-01-24",
          "AbsenceType": {
            "Name": "Sickness",
            "AbsenceCode": "100",
            "Paid": false,
            "TemporaryUnemployment": false,
            "Color": "#000000",
            "IncludeInExport": true
          },
          "Start": "2019-01-24T07:00:00+01:00",
          "Stop": "2019-01-24T15:00:00+01:00",
          "Duration": "08:00:00",
          "Notes": "Notes"
        }
      ]
    }
  ]
}
```

#### 400: BadRequest

| Field | Type |
| --- | --- |
| `Data` (default = null) | array |

```json
{
  "Data": [
    {
      "Entity": {
        "Id": "00000000-0000-0000-0000-000000000000",
        "Date": "2019-01-24",
        "AbsenceType": {
          "Name": "Sickness",
          "AbsenceCode": "100",
          "Paid": false,
          "TemporaryUnemployment": false,
          "Color": "#000000",
          "IncludeInExport": true
        },
        "Start": "2019-01-24T07:00:00+01:00",
        "Stop": "2019-01-24T15:00:00+01:00",
        "Duration": "08:00:00",
        "Notes": "Notes"
      },
      "ValidationResult": [
        {
          "Message": "",
          "SourceMemberNames": []
        }
      ]
    }
  ]
}
```

#### 401: Unauthorized

#### 403: Forbidden

#### 417: ExpectationFailed

## POST /intellitracer/v2/absence/bulk/date

`https://api.geodynamics.dev/intellitracer/v2/absence/bulk/date`

Privilege required: `Api: Timesheet management`

Update absences by date

Updates the absences for one or more users on one day. Existing absences for these users/days are removed.

The number of users is limited to a maximum of 100.

### Request body

Type: `object`

| Field | Type | Required |
| --- | --- | --- |
| `Date` | string | required |
| `Absences` | array | required |

### Responses

#### 200: OK

| Field | Type |
| --- | --- |
| `Data` (default = null) | array |

```json
{
  "Data": [
    {
      "User": {
        "Id": "00000000-0000-0000-0000-000000000000",
        "Code": "012345",
        "Name": "John Doe",
        "Type": 0
      },
      "Absences": [
        {
          "Id": "00000000-0000-0000-0000-000000000000",
          "Date": "2019-01-24",
          "AbsenceType": {
            "Name": "Sickness",
            "AbsenceCode": "100",
            "Paid": false,
            "TemporaryUnemployment": false,
            "Color": "#000000",
            "IncludeInExport": true
          },
          "Start": "2019-01-24T07:00:00+01:00",
          "Stop": "2019-01-24T15:00:00+01:00",
          "Duration": "08:00:00",
          "Notes": "Notes"
        }
      ]
    }
  ]
}
```

#### 400: BadRequest

| Field | Type |
| --- | --- |
| `Data` (default = null) | array |

```json
{
  "Data": [
    {
      "Entity": {
        "Id": "00000000-0000-0000-0000-000000000000",
        "Date": "2019-01-24",
        "AbsenceType": {
          "Name": "Sickness",
          "AbsenceCode": "100",
          "Paid": false,
          "TemporaryUnemployment": false,
          "Color": "#000000",
          "IncludeInExport": true
        },
        "Start": "2019-01-24T07:00:00+01:00",
        "Stop": "2019-01-24T15:00:00+01:00",
        "Duration": "08:00:00",
        "Notes": "Notes"
      },
      "ValidationResult": [
        {
          "Message": "",
          "SourceMemberNames": []
        }
      ]
    }
  ]
}
```

#### 401: Unauthorized

#### 403: Forbidden

#### 417: ExpectationFailed

## POST /intellitracer/v3/absencerequests/user/?page={page}&search={search}&includeResolvedRequests={includeResolvedRequests}

`https://api.geodynamics.dev/intellitracer/v3/absencerequests/user/?page={page}&search={search}&includeResolvedRequests={includeResolvedRequests}`

Privilege required: `Api: Timesheet management`

Get absence requests

Returns a paged list of absence requests within a date/time range for one or more users.

Pagination and searching is explained in [Pagination](#pagination).

### Path parameters

| Name | Type | Required | Example |
| --- | --- | --- | --- |
| `page` | number | required | `1` |
| `search` | string | required | `ABC` |
| `includeResolvedRequests` | boolean | required | `false` |

### Request body

### Responses

#### 200: OK

| Field | Type |
| --- | --- |
| `Data` (default = null) | array |
| `PagingFilter` (default = null) | object |

```json
{
  "Data": [
    {
      "User": {
        "Id": "00000000-0000-0000-0000-000000000000",
        "Code": "012345",
        "Name": "John Doe",
        "Type": ""
      },
      "AbsenceRequests": [
        {
          "Id": "00000000-0000-0000-0000-000000000000",
          "RequestDateTime": "2019-01-24T07:00:00+01:00",
          "Type": "",
          "AbsenceType": {
            "Id": "00000000-0000-0000-0000-000000000000",
            "Name": "Sick leave",
            "Code": "SICKNESS",
            "Paid": true,
            "TemporaryUnemployed": false,
            "Color": "#FF0000",
            "IncludeInExport": true
          },
          "Date": "2019-01-24",
          "TimeslotType": "",
          "Status": "",
          "Hours": 4
        }
      ]
    }
  ],
  "PagingFilter": {
    "Page": 1,
    "Search": "ABC",
    "PageCount": 4,
    "TotalCount": 100,
    "Links": {
      "Base": "https://api.geodynamics.dev",
      "First": "/intellitracer/v2/asset?page=1",
      "Prev": "/intellitracer/v2/asset?page=2",
      "Next": "/intellitracer/v2/asset?page=4",
      "Last": "/intellitracer/v2/asset?page=4"
    }
  }
}
```

#### 401: Unauthorized

#### 403: Forbidden

## POST /intellitracer/v3/absencerequests/{id}/approve

`https://api.geodynamics.dev/intellitracer/v3/absencerequests/{id}/approve`

Privilege required: `Api: Timesheet management`

Approve absence request

Approves an absence request.

### Path parameters

| Name | Type | Required | Example |
| --- | --- | --- | --- |
| `id` | string | required | `00000000-0000-0000-0000-000000000000` |

### Responses

#### 200: OK

#### 400: BadRequest

```json
[
  {
    "Property": "Name",
    "Message": "Required"
  }
]
```

#### 401: Unauthorized

#### 403: Forbidden

#### 417: ExpectationFailed

## POST /intellitracer/v3/absencerequests/{id}/refuse

`https://api.geodynamics.dev/intellitracer/v3/absencerequests/{id}/refuse`

Privilege required: `Api: Timesheet management`

Refuse absence request

Refuses an absence request.

### Path parameters

| Name | Type | Required | Example |
| --- | --- | --- | --- |
| `id` | string | required | `00000000-0000-0000-0000-000000000000` |

### Request body

Type: `object`

| Field | Type | Required |
| --- | --- | --- |
| `Notes` | string | required |

### Responses

#### 200: OK

#### 400: BadRequest

```json
[
  {
    "Property": "Name",
    "Message": "Required"
  }
]
```

#### 401: Unauthorized

#### 403: Forbidden

#### 417: ExpectationFailed
