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 ID or external ID

URL

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

Method

GET

Parameters

ParametersTypeRequired
api_tokenstringrequired
idintegerrequired
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

Deleting 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)