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

ParametersTypeRequired
api_tokenStringrequired
absence_type_idIntegerrequired
absence_type_external_idStringrequired if absence_type_id is not set
user_idIntegerrequired
user_external_idStringrequired if user_id is not set
starts_atString (use ISO)required
ends_atString (use ISO)required
time_zoneStringoptional (but recommended)
full_dayBooleanoptional
external_idStringoptional
force_calc_custom_hoursBooleanoptional
paid_hoursFloatrequired if force_calc_custom_hours is true
vacation_daysFloatrequired 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":"2022-10-31T08:30:00+01:00",
        "ends_at":"2022-10-31T17:30:00+01:00",
        "time_zone":"Europe/Berlin",
        "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":                "2022-10-31T08:30:00+01:00",
            "ends_at":                  "2022-10-31T17:30:00+01:00",
            "time_zone":                                "Europe/Berlin",
            "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":"2022-10-21T12:07:34Z",
   "created_by":null,
   "ends_at":"2022-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":"2022-10-31T08:30:00Z",
   "time_zone":"Europe/Berlin",
   "title":"Urlaub",
   "updated_at":"2022-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

ParametersTypeRequired
api_tokenStringrequired
idIntegerrequired
external_idStringrequired if id is not set
starts_atString (use ISO)required
ends_atString (use ISO)required
time_zoneStringoptional (but recommended)
full_dayBooleanoptional
force_calc_custom_hoursBooleanoptional
paid_hoursFloatrequired if force_calc_custom_hours is true
vacation_daysFloatrequired 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":"2022-10-31T08:15:00+01:00",
      "ends_at":"2022-10-31T17:45:00+01:00",
      "time_zone":"Europe/Berlin",
      "full_day":false
   }
}
function updateAbsence() {
        var params = {
          "api_token":  "rJkAk7Bzm5uDipfJY9aZtWhHxfsz06oO5ggJyvI7",
          "absence": {
            "external_id":  "Absence-001",
            "id":           29971,
            "starts_at":    "2022-10-31T08:15:00+01:00",
            "ends_at":      "2022-10-31T17:45:00+01:00",
            "time_zone":        "Europe/Berlin",
            "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":"2022-10-21T12:07:34Z",
   "created_by":null,
   "ends_at":"2022-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":"2022-10-31T08:15:00Z",
   "time_zone":"Europe/Berlin",
   "title":"Urlaub",
   "updated_at":"2022-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

ParametersTypeRequired
api_tokenstringrequired
idintegerrequired (if external_id not set)
external_idstringrequired (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":"2022-03-27T10:44:31+01:00",
    "confirmed_by":141216,
    "created_at":"2022-03-27T10:44:31+01:00",
    "created_by":141216,
    "ends_at":"2022-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":"2022-03-13T00:00:00+01:00",
    "status":"active",
    "time_zone":"Europe/Berlin",
    "title":"Weiterbildung Firma",
    "updated_at":"2022-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

ParametersTypeRequired
api_tokenStringrequired
range_startString (use ISO)required
range_endString (use ISO)required
user_idIntegeroptional
user_external_idStringoptional
pageIntegeroptional

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":"2022-10-01",
    "range_end":"2022-10-31",
    "user_external_id":"User-001",
    "user_id":5,
    "page":1
}
function getAbsences() {
        var api_token = "rJkAk7Bzm5uDipfJY9aZtWhHxfsz06oO5ggJyvI7";
        var range_start = "2022-10-01";
        var range_end = "2022-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":"2022-10-21T12:07:34Z",
            "created_by":null,
            "ends_at":"2022-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":"2022-10-31T08:15:00Z",
            "time_zone":"Europe/Berlin",
            "title":"Urlaub",
            "updated_at":"2022-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

ParametersTypeRequired
api_tokenStringrequired
idIntegerrequired
external_idStringrequired 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":"2022-11-14T10:21:43+02:00",
    "confirmed_by":1,
    "created_at":"2022-09-25T10:21:43+02:00",
    "created_by":1,
    "ends_at":"2022-09-15T23:59:59+01: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":"2022-09-11T00:00:00+01:00",
    "time_zone":"Europe/Berlin",
    "title":"Urlaub",
    "updated_at":"2022-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

ParametersTypeRequired
api_tokenStringrequired
idIntegerrequired
external_idStringrequired 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)