Absences

The API- functions for Absences in Papershift



Create a new Absence

Creates a new Absence in your Papershift Account

URL

https://app.papershift.com/public_api/v1/absences

Method

POST

Parameters

Parameters

Type

Required

api_token

String

required

absence_type_id

Integer

required

absence_type_external_id

String

required if absence_type_id is not set

user_id

Integer

required

user_external_id

String

required if user_id is not set

starts_at

String (use ISO)

required

ends_at

String (use ISO)

required

full_day

Boolean

optional

external_id

String

optional

force_calc_custom_hours

Boolean

optional

paid_hours

Float

required if force_calc_custom_hours is true

vacation_days

Float

required if force_calc_custom_hours is true

Information

Creating Absences requires a valid Absence-Type and User within the
authorized Enterprise. You either get these through the External-ID
you simply set by yourself or the Record’s ID from the Database.

Example

{
        "api_token":  "U6H2QWD6UWsI8sgs6TyvoK1E6HdliuTL2LgniO18",
        "absence":    {
                        "absence_type_external_id": "Urlaub-001",
                        "absence_type_id":          2,
                        "user_external_id":         "User-001",
                        "user_id":                  1,
                        "starts_at":                "2015-10-31T08:30:00+00:00",
                        "ends_at":                  "2015-10-31T17:30:00+00:00",
                        "full_day":                 false,
                        "external_id":              "Absence-001"
                      }
      }
function createAbsence() {
        var params = {
          "api_token":  "rJkAk7Bzm5uDipfJY9aZtWhHxfsz06oO5ggJyvI7",
          "absence": {
            "absence_type_external_id": "Urlaub-001",
            "user_external_id":         "User-001",
            "starts_at":                "2015-10-31T08:30:00+00:00",
            "ends_at":                  "2015-10-31T17:30:00+00:00",
            "full_day":                 false,
            "external_id":              "Absence-001"
          }
        };
  
        $.ajax({
          url: "https://app.papershift.com/public_api/v1/absences",
          type: 'POST',
          dataType: 'json',
          data: JSON.stringify(params),
          complete: function (data) {
            console.log(data.responseText);
          }
        });
      }
{
        "absence_type_id":          16114,
        "confirm":                  null,
        "confirmed_at":             null,
        "confirmed_by":             null,
        "created_at":               "2015-10-21T12:07:34Z",
        "created_by":               null,
        "ends_at":                  "2015-10-31T17:30:00Z",
        "external_id":              "Absence-001",
        "force_calc_custom_hours":  false,
        "full_day":                 false,
        "id":                       29971,
        "note":                     null,
        "paid_hours":               0,
        "starts_at":                "2015-10-31T08:30:00Z",
        "title":                    "Urlaub",
        "updated_at":               "2015-10-21T12:07:34Z",
        "user_id":                  1,
        "vacation_days":            0
      }



Update an existing Absence

Update an Absence in your Papershift Account

URL

https://app.papershift.com/public_api/v1/absences

Method

PUT

Parameters

Parameters

Type

Required

api_token

String

required

id

Integer

required

external_id

String

required if id is not set

starts_at

String (use ISO)

required

ends_at

String (use ISO)

required

full_day

Boolean

optional

force_calc_custom_hours

Boolean

optional

paid_hours

Float

required if force_calc_custom_hours is true

vacation_days

Float

required if force_calc_custom_hours is true

Information

Updating an existing Absence requires finding the specific record
in the Database. This can be achieved via the Absence’s External-ID
or Record-ID.

Example

{
        "api_token":  "U6H2QWD6UWsI8sgs6TyvoK1E6HdliuTL2LgniO18",
        "absence":    {
                        "external_id":              "Absence-001",
                        "id":                       29971,
                        "starts_at":                "2015-10-31T08:15:00+00:00",
                        "ends_at":                  "2015-10-31T17:45:00+00:00",
                        "full_day":                 false
                      }
      }
function updateAbsence() {
        var params = {
          "api_token":  "rJkAk7Bzm5uDipfJY9aZtWhHxfsz06oO5ggJyvI7",
          "absence": {
            "external_id":  "Absence-001",
            "id":           29971,
            "starts_at":    "2015-10-31T08:15:00+00:00",
            "ends_at":      "2015-10-31T17:45:00+00:00",
            "full_day":     false
          }
        };
  
        $.ajax({
          url: "https://app.papershift.com/public_api/v1/absences",
          type: 'PUT',
          dataType: 'json',
          data: JSON.stringify(params),
          complete: function (data) {
            console.log(data.responseText);
          }
        });
      }
{
        "absence_type_id":          16114,
        "confirm":                  null,
        "confirmed_at":             null,
        "confirmed_by":             null,
        "created_at":               "2015-10-21T12:07:34Z",
        "created_by":               null,
        "ends_at":                  "2015-10-31T17:45:00Z",
        "external_id":              "Absence-001",
        "force_calc_custom_hours":  false,
        "full_day":                 false,
        "id":                       29971,
        "note":                     null,
        "paid_hours":               0,
        "starts_at":                "2015-10-31T08:15:00Z",
        "title":                    "Urlaub",
        "updated_at":               "2015-10-21T15:36:34Z",
        "user_id":                  1,
        "vacation_days":            0
      }



Get Absence by ID

Get Absence by its unique ID or external ID

URL

https://app.papershift.com/public_api/v1/absences

Method

GET

Parameters

Parameters

Type

Required

api_token

string

required

id

integer

required (if external_id not set)

external_id

string

required (if id not set)

Example

{
    "api_token": "XXXX",
    "id": 873225
}
{
    "absence_type_id": 186571,
    "charge_days_job_status": "success",
    "confirm_message": null,
    "confirmed": true,
    "confirmed_at": "2019-03-27T10:44:31+01:00",
    "confirmed_by": 141216,
    "created_at": "2019-03-27T10:44:31+01:00",
    "created_by": 141216,
    "ends_at": "2019-03-13T23:59:59+01:00",
    "external_id": null,
    "force_calc_custom_hours": false,
    "full_day": true,
    "id": 873225,
    "import_id": null,
    "outlook_id": null,
    "paid_hours": 8,
    "secure_id": "934443d654c45167e71fbe6dbac2ddff",
    "starts_at": "2019-03-13T00:00:00+01:00",
    "status": "active",
    "title": "Weiterbildung Firma",
    "updated_at": "2019-03-27T10:44:31+01:00",
    "user_id": 271693,
    "uuid": "b0547997-3090-4014-a84b-fc59313790f9",
    "vacation_days": 0,
    "absence_type_external_id": ""
}



Get Absence in Range

Response Absence(s) between two dates

URL

https://app.papershift.com/public_api/v1/absences

Method

GET

Parameters

Parameters

Type

Required

api_token

String

required

range_start

String (use ISO)

required

range_end

String (use ISO)

required

user_id

Integer

optional

user_external_id

String

optional

page

Integer

optional

Information

A Successful Request returns an Array of the n-th 25 Absences depending
on the Page-Param. You can also pass a User’s External- or Record-ID
to only query for Absences of this specific User.

Example

{
        "api_token":                "U6H2QWD6UWsI8sgs6TyvoK1E6HdliuTL2LgniO18",
        "range_start":              "2015-10-01",
        "range_end":                "2015-10-31",
        "user_external_id":         "User-001",
        "user_id":                  5,
        "page":                     1
      }
function getAbsences() {
        var api_token = "rJkAk7Bzm5uDipfJY9aZtWhHxfsz06oO5ggJyvI7";
        var range_start = "2015-10-01";
        var range_end = "2015-10-31";
  
        $.ajax({
          url: "https://app.papershift.com/public_api/v1/absences?api_token=" + api_token + "&range_start=" + range_start + "&range_end=" + range_end,
          type: 'GET',
          dataType: 'json',
          complete: function (data) {
            console.log(data.responseText);
          }
        });
      }
{ 
  absences: 
    [
      {
        "absence_type_id":          16114,
        "confirm":                  null,
        "confirmed_at":             null,
        "confirmed_by":             null,
        "created_at":               "2015-10-21T12:07:34Z",
        "created_by":               null,
        "ends_at":                  "2015-10-31T17:45:00Z",
        "external_id":              "Absence-001",
        "force_calc_custom_hours":  false,
        "full_day":                 false,
        "id":                       29971,
        "note":                     null,
        "paid_hours":               0,
        "starts_at":                "2015-10-31T08:15:00Z",
        "title":                    "Urlaub",
        "updated_at":               "2015-10-21T15:36:34Z",
        "user_id":                  1,
        "vacation_days":            0
      }
    ],
  page_number: 1,
  total_pages: 1,
  next_page: null
}



Confirm/reset/reject an existing Absence

Confirm an existing Absence in your Papershift account.

URL

https://app.papershift.com/public_api/v1/absences/confirm

Method

PUT

Parameters

Parameters

Type

Required

api_token

String

required

id

Integer

required

external_id

String

required if id not set

Information

To confirm an existing Absence it requires finding the specific record
in the Database. This can be achieved via the Absence’s External-ID
or Record-ID. To reset or reject an absence just replace "confirm" in the
URL with the necessary action "reset" or "reject".

Example

{
    "api_token":  "U6H2QWD6UWsI8sgs6TyvoK1E6HdliuTL2LgniO18",
    "absence": {
        "external_id": "Absence-001"
    }
}
function confirmAbsence() {
  var params = {
    "api_token":  "rJkAk7Bzm5uDipfJY9aZtWhHxfsz06oO5ggJyvI7",
    "absence": {
      "external_id":  "Absence-001"
    }
  };

  $.ajax({
    url: "https://app.papershift.com/public_api/v1/absences/confirm",
    type: 'PUT',
    dataType: 'json',
    data: JSON.stringify(params),
    complete: function (data) {
      console.log(data.responseText);
    }
  });
}
{
    "absence_type_id": 1,
    "charge_days_job_status": "success",
    "confirm_message": null,
    "confirmed": null,
    "confirmed_at": "2017-11-14T10:21:43+02:00",
    "confirmed_by": 1,
    "created_at": "2017-09-25T10:21:43+02:00",
    "created_by": 1,
    "ends_at": "2017-09-15T23:59:59+02:00",
    "external_id": null,
    "force_calc_custom_hours": false,
    "full_day": true,
    "id": 319980,
    "outlook_id": null,
    "paid_hours": 40,
    "secure_id": "a2d71d879ac29213444b9cfb6e54abd5",
    "starts_at": "2017-09-11T00:00:00+02:00",
    "title": "Urlaub",
    "updated_at": "2017-11-14T13:25:12+01:00",
    "user_id": 1,
    "vacation_days": 5,
    "absence_type_external_id": "Absence-001"
}



Delete an existing Absence

Delete an existing Absence in your Papershift account.

URL

https://app.papershift.com/public_api/v1/absences

Method

DELETE

Parameters

Parameters

Type

Required

api_token

String

required

id

Integer

required

external_id

String

required if id not set

Information

To delete an existing Absence requires finding the specific record
in the Database. This can be achieved via the Absence’s External-ID
or Record-ID.

Example

{
        "api_token":  "U6H2QWD6UWsI8sgs6TyvoK1E6HdliuTL2LgniO18",
        "absence":    {
                        "external_id":              "Absence-001",
                        "id":                       29971
                      }
      }
function updateAbsence() {
        var params = {
          "api_token":  "rJkAk7Bzm5uDipfJY9aZtWhHxfsz06oO5ggJyvI7",
          "absence": {
            "external_id":  "Absence-001",
            "id":           29971
          }
        };
  
        $.ajax({
          url: "https://app.papershift.com/public_api/v1/absences",
          type: 'DELETE',
          dataType: 'json',
          data: JSON.stringify(params),
          complete: function (data) {
            console.log(data.responseText);
          }
        });
      }
Response 200 (application/json)