Back to top

Webhooks

Webhooks are an essential part of Beeple.

Webhooks can be either installed by marketplace extensions or manually configured by the end user.

For each type (collaborators, SMS communications, etc.) one can configure one or more URLs but one URL might receive different actions (create, update, delete) as different HTTP verbs. If you subscribe to one type, all the verbs should be accepted (but can be a no-op implementation).

Idempotency

All described URLs should be idempotent. Meaning that if for some reason, the Beeple system sends a request multiple times, and the request was already received nothing should change in the receiving system.

In case of network failures or other invalid responses, Beeple will retry the same request multiple times over a period of time.

Authentication

All requests are also signed with a private token so the authenticity of the sender and receiver can be validated.

Each request will contain 3 headers:

  • Authentication-Reference: (string) - A reference, this will be unique per request. The format is unspecified

  • Authentication-Epoch: (number) - A UNIX epoch timestamp.

  • Authentication-Signature: (string) - The signed combination of reference and epoch.

Beeple currently implements a timeout of 5 seconds, make sure your webhooks reply correctly in this time period. Beeple will retry multiple times after a timeout resending the webhook anyway.

To validate a request the following steps need to happen:

  • Authentication-Epoch should not be longer ago than 5 minutes.

  • Authentication-Reference should not be reused. In principle References can be recycled after 5 minutes, so there is no hard requirement to store the references for much longer than 5 minutes.

  • A string is created with the concatenation of Authentication-Reference and Authentication-Epoch

  • This string is hashed according with the SHA512 digest

  • The digest is HMAC encoded with a private token as key (known by both sender and receiver)

  • The hex value of this hash is taken, and should match the Authentication-Signature.

In pseudo code this looks like

epoch = Header[Authenticaion-Epoch]
  if age(epoch) > 5 minutes
    ignore message
  else
    digest = Sha512Digest(private_key)

    reference = Header[Authenticaion-Reference] + Header[Authenticaion-Epoch]
    hmac = hmac_hexdigest(SHA512, private_key, reference)

    if hexdigest equals Header[Authentication-Signature]
      accept message
    else
      ignore message
    end
  end

Collaborators

Collaborator

This webhook is sent every time a collaborator is created/deleted/updated within Beeple

Create a collaborator
POST/collaborators

Example URI

POST /collaborators
Request
HideShow
Headers
Content-Type: application/json
Body
{
  "company": {
    "name": "My company",
    "beeple_id": "273e949a-bb41-4f36-9526-d1d0a8043c91"
  },
  "collaborator": {
    "first_name": "John",
    "last_name": "Doe",
    "prefix": "De",
    "beeple_id": 2403,
    "birth_date": "1995-05-07",
    "birth_city": "Antwerpen",
    "birth_country": "BE",
    "gender": "male",
    "language": "en",
    "nationality": "BE",
    "national_registration_numbers": [
      {
        "country": "BE",
        "number": "YY.MM.DD-997.47"
      }
    ],
    "social_statute": "Arbeider",
    "social_statute_code": "career_pause",
    "home_address": {
      "name": "Some Name",
      "street1": "Dorpstraat 1",
      "street2": "Bus 1",
      "zip": "2018",
      "city": "Antwerpen",
      "administrative_area_level_1": "Hello, world!",
      "administrative_area_level_2": "Hello, world!",
      "administrative_area_level_3": "Hello, world!",
      "administrative_area_level_4": "Hello, world!",
      "administrative_area_level_5": "Hello, world!",
      "country": "BE",
      "applies_to_all_departments": true,
      "departments": [
        {
          "id": "101",
          "name": "Acme Corp",
          "description": "The department for Acme Corp"
        }
      ]
    },
    "bank_account": {
      "iban": "BE68539007547034",
      "bic": "HBKABE22"
    },
    "contact": {
      "email": "john.doe@example.org",
      "mobile": "+32498525251"
    },
    "email_confirmed": true,
    "profile_application_accepted": true,
    "blocked": false,
    "blocked_by": {
      "id": 2403,
      "first_name": "John",
      "last_name": "Doe",
      "email": "John-doe@example.com"
    },
    "blocked_at": "2017-04-01T10:00:00.000+02:00",
    "unblocked_by": {
      "id": 2403,
      "first_name": "John",
      "last_name": "Doe",
      "email": "John-doe@example.com"
    },
    "unblocked_at": "2017-04-01T10:00:00.000+02:00",
    "archived": false,
    "profile_properties": [
      {
        "group": "Legal information",
        "profile_property_id": 1888,
        "name": "Marital status",
        "description": "Here you can enter your official marital status",
        "type": "boolean",
        "numeric_unit": "km",
        "value_boolean": true,
        "value_string": "Married",
        "value_list_multi": [
          "english"
        ],
        "value_date": "2017-05-08",
        "value_time": "17:00:00.000+02:00",
        "value_datetime": "2017-05-08T17:00:00.000+02:00",
        "value_numeric": 23.5,
        "value_upload_url": "https://planning.tenant.be/api/v1/uploads/volunteers/volunteers_profile_property/upload_collaborator/5916/uploaded_file.docx",
        "comment": "Since 15/5/1995",
        "expiration_date": "2017-05-08",
        "piece_of_evidence": "https://planning.tenant.be/api/v1/uploads/volunteers/volunteers_profile_property/documented_proof_verified/43413/piece_of_evidence_file.docx"
      }
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "company": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the company (tenant). Can change and is mainly for displaying purposes"
        },
        "beeple_id": {
          "type": "string",
          "description": "The ID of the Beeple Tenant (a UUID). Will never change for a given tenant."
        }
      },
      "required": [
        "name",
        "beeple_id"
      ],
      "description": "Company that is sending this information."
    },
    "collaborator": {
      "type": "object",
      "properties": {
        "first_name": {
          "type": "string",
          "description": "First name"
        },
        "last_name": {
          "type": "string",
          "description": "Last name"
        },
        "prefix": {
          "type": "string",
          "description": "Last name prefix, this is what appears on the screen of the web application as \"infix\"; for example John De Doe"
        },
        "beeple_id": {
          "type": "number",
          "description": "Identification number within Beeple"
        },
        "birth_date": {
          "type": "string",
          "description": "Birth date according RFC 3339"
        },
        "birth_city": {
          "type": "string",
          "description": "Birth city"
        },
        "birth_country": {
          "type": "string",
          "description": "Birth country according to ISO 3166-1 alpha-2"
        },
        "gender": {
          "type": "string",
          "enum": [
            "male",
            "female"
          ],
          "description": "Gender"
        },
        "language": {
          "type": "string",
          "description": "Language in which to communicate with the collaborator according to ISO 639-1"
        },
        "nationality": {
          "type": "string",
          "description": "According to ISO 3166-1 alpha-2"
        },
        "national_registration_numbers": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "country": {
                "type": "string",
                "description": "Country for which the number is valid according to ISO 3166-1 alpha-2"
              },
              "number": {
                "type": "string",
                "description": "unique number format specified per person per country"
              }
            }
          }
        },
        "social_statute": {
          "type": "string",
          "description": "The social statute"
        },
        "social_statute_code": {
          "type": "string",
          "enum": [
            "career_pause",
            "disabled_entrepreneur",
            "early_retired",
            "entrepreneur",
            "flexijobs",
            "functionary",
            "incapacitated",
            "living_wager",
            "retired",
            "student",
            "unemployed",
            "unemployed_waiting_period",
            "unknown",
            "working_class",
            "working_class_blue_collar",
            "work_student"
          ],
          "description": "The social statute"
        },
        "home_address": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "description": "The human name of the address"
            },
            "street1": {
              "type": "string",
              "description": "Street + house number"
            },
            "street2": {
              "type": "string",
              "description": "Extension of street1"
            },
            "zip": {
              "type": "string"
            },
            "city": {
              "type": "string"
            },
            "administrative_area_level_1": {
              "type": "string",
              "description": "An extra administrative level, depends per country / tenant what this means"
            },
            "administrative_area_level_2": {
              "type": "string",
              "description": "An extra administrative level, depends per country / tenant what this means"
            },
            "administrative_area_level_3": {
              "type": "string",
              "description": "An extra administrative level, depends per country / tenant what this means"
            },
            "administrative_area_level_4": {
              "type": "string",
              "description": "An extra administrative level, depends per country / tenant what this means"
            },
            "administrative_area_level_5": {
              "type": "string",
              "description": "An extra administrative level, depends per country / tenant what this means"
            },
            "country": {
              "type": "string",
              "description": "According to ISO 3166-1 alpha-2"
            },
            "applies_to_all_departments": {
              "type": "boolean",
              "description": "If tenant uses department management, this property indicates whether address belongs to all departments of the tenant"
            },
            "departments": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The ID of the client"
                  },
                  "name": {
                    "type": "string",
                    "description": "The name of the department"
                  },
                  "description": {
                    "type": "string",
                    "description": "A description of the department"
                  }
                }
              },
              "description": "If tenant uses department management, this object lists departments of the address"
            }
          }
        },
        "bank_account": {
          "type": "object",
          "properties": {
            "iban": {
              "type": "string"
            },
            "bic": {
              "type": "string"
            }
          }
        },
        "contact": {
          "type": "object",
          "properties": {
            "email": {
              "type": "string"
            },
            "mobile": {
              "type": "string"
            }
          },
          "required": [
            "email"
          ]
        },
        "email_confirmed": {
          "type": "boolean",
          "description": "If the collaborator confirmed their account"
        },
        "profile_application_accepted": {
          "type": "boolean",
          "description": "If the collaborator was accepted by an admin after registration. Only applicable when setting registration = sollication is true"
        },
        "blocked": {
          "type": "boolean",
          "description": "If the user was blocked"
        },
        "blocked_by": {
          "type": "object",
          "properties": {
            "id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "first_name": {
              "type": "string",
              "description": "First name"
            },
            "last_name": {
              "type": "string",
              "description": "Last name"
            },
            "email": {
              "type": "string",
              "description": "Email"
            }
          },
          "required": [
            "id",
            "first_name",
            "last_name"
          ],
          "description": "The user who blocked the collaboraotr"
        },
        "blocked_at": {
          "type": "string",
          "description": "When the collaborator was blocked if he/she was unblocked"
        },
        "unblocked_by": {
          "type": "object",
          "properties": {
            "id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "first_name": {
              "type": "string",
              "description": "First name"
            },
            "last_name": {
              "type": "string",
              "description": "Last name"
            },
            "email": {
              "type": "string",
              "description": "Email"
            }
          },
          "required": [
            "id",
            "first_name",
            "last_name"
          ],
          "description": "The user who unblocked the collaboraotr"
        },
        "unblocked_at": {
          "type": "string",
          "description": "When the collaborator was unblocked if he/she was unblocked"
        },
        "archived": {
          "type": "boolean",
          "description": "If the user got archived"
        },
        "profile_properties": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "group": {
                "type": "string",
                "description": "Group of profile properties"
              },
              "profile_property_id": {
                "type": "number",
                "description": "Id of the profile property"
              },
              "name": {
                "type": "string",
                "description": "Name of the profile property"
              },
              "description": {
                "type": "string",
                "description": "Description of the profile property"
              },
              "type": {
                "type": "string",
                "enum": [
                  "boolean",
                  "numeric",
                  "freetext",
                  "freetext_multiline",
                  "list_single_option",
                  "list_multi_option",
                  "date",
                  "time",
                  "datetime",
                  "upload"
                ],
                "description": "Type of content of the profile property"
              },
              "numeric_unit": {
                "type": "string",
                "description": "Unit in which a profile property of type numeric is expressed"
              },
              "value_boolean": {
                "type": "boolean",
                "description": "Value of the profile property.  Filled for type = boolean"
              },
              "value_string": {
                "type": "string",
                "description": "Value of the profile property.  Filled for type = freetext, freetext_multiline or list_single_option"
              },
              "value_list_multi": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Filled for type = list_multi_option"
              },
              "value_date": {
                "type": "string",
                "description": "Value of the profile property. Filled for type = date according to RFC 3339"
              },
              "value_time": {
                "type": "string",
                "description": "Value of the profile property. Filled for type = time according to RFC 3339"
              },
              "value_datetime": {
                "type": "string",
                "description": "Value of the profile property. Filled for type = datetime according to RFC 3339"
              },
              "value_numeric": {
                "type": "number",
                "description": "Value of the profile property.  Filled for type = numeric"
              },
              "value_upload_url": {
                "type": "string",
                "description": "Value (URL) of the profile property. Filled for type = upload"
              },
              "comment": {
                "type": "string",
                "description": "Comment concerning the value of the profile property"
              },
              "expiration_date": {
                "type": "string",
                "description": "Date the value of the profile property expires according to RFC 3339"
              },
              "piece_of_evidence": {
                "type": "string",
                "description": "Piece of evidence (URL) for the value of the profile property"
              }
            }
          }
        }
      },
      "required": [
        "first_name",
        "last_name",
        "prefix",
        "beeple_id",
        "language"
      ]
    }
  }
}
Response  200

Delete a collaborator
DELETE/collaborators

Example URI

DELETE /collaborators
Request
HideShow
Headers
Content-Type: application/json
Body
{
  "company": {
    "name": "My company",
    "beeple_id": "273e949a-bb41-4f36-9526-d1d0a8043c91"
  },
  "collaborator": {
    "first_name": "John",
    "last_name": "Doe",
    "prefix": "De",
    "beeple_id": 2403,
    "birth_date": "1995-05-07",
    "birth_city": "Antwerpen",
    "birth_country": "BE",
    "gender": "male",
    "language": "en",
    "nationality": "BE",
    "national_registration_numbers": [
      {
        "country": "BE",
        "number": "YY.MM.DD-997.47"
      }
    ],
    "social_statute": "Arbeider",
    "social_statute_code": "career_pause",
    "home_address": {
      "name": "Some Name",
      "street1": "Dorpstraat 1",
      "street2": "Bus 1",
      "zip": "2018",
      "city": "Antwerpen",
      "administrative_area_level_1": "Hello, world!",
      "administrative_area_level_2": "Hello, world!",
      "administrative_area_level_3": "Hello, world!",
      "administrative_area_level_4": "Hello, world!",
      "administrative_area_level_5": "Hello, world!",
      "country": "BE",
      "applies_to_all_departments": true,
      "departments": [
        {
          "id": "101",
          "name": "Acme Corp",
          "description": "The department for Acme Corp"
        }
      ]
    },
    "bank_account": {
      "iban": "BE68539007547034",
      "bic": "HBKABE22"
    },
    "contact": {
      "email": "john.doe@example.org",
      "mobile": "+32498525251"
    },
    "email_confirmed": true,
    "profile_application_accepted": true,
    "blocked": false,
    "blocked_by": {
      "id": 2403,
      "first_name": "John",
      "last_name": "Doe",
      "email": "John-doe@example.com"
    },
    "blocked_at": "2017-04-01T10:00:00.000+02:00",
    "unblocked_by": {
      "id": 2403,
      "first_name": "John",
      "last_name": "Doe",
      "email": "John-doe@example.com"
    },
    "unblocked_at": "2017-04-01T10:00:00.000+02:00",
    "archived": false,
    "profile_properties": [
      {
        "group": "Legal information",
        "profile_property_id": 1888,
        "name": "Marital status",
        "description": "Here you can enter your official marital status",
        "type": "boolean",
        "numeric_unit": "km",
        "value_boolean": true,
        "value_string": "Married",
        "value_list_multi": [
          "english"
        ],
        "value_date": "2017-05-08",
        "value_time": "17:00:00.000+02:00",
        "value_datetime": "2017-05-08T17:00:00.000+02:00",
        "value_numeric": 23.5,
        "value_upload_url": "https://planning.tenant.be/api/v1/uploads/volunteers/volunteers_profile_property/upload_collaborator/5916/uploaded_file.docx",
        "comment": "Since 15/5/1995",
        "expiration_date": "2017-05-08",
        "piece_of_evidence": "https://planning.tenant.be/api/v1/uploads/volunteers/volunteers_profile_property/documented_proof_verified/43413/piece_of_evidence_file.docx"
      }
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "company": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the company (tenant). Can change and is mainly for displaying purposes"
        },
        "beeple_id": {
          "type": "string",
          "description": "The ID of the Beeple Tenant (a UUID). Will never change for a given tenant."
        }
      },
      "required": [
        "name",
        "beeple_id"
      ],
      "description": "Company that is sending this information."
    },
    "collaborator": {
      "type": "object",
      "properties": {
        "first_name": {
          "type": "string",
          "description": "First name"
        },
        "last_name": {
          "type": "string",
          "description": "Last name"
        },
        "prefix": {
          "type": "string",
          "description": "Last name prefix, this is what appears on the screen of the web application as \"infix\"; for example John De Doe"
        },
        "beeple_id": {
          "type": "number",
          "description": "Identification number within Beeple"
        },
        "birth_date": {
          "type": "string",
          "description": "Birth date according RFC 3339"
        },
        "birth_city": {
          "type": "string",
          "description": "Birth city"
        },
        "birth_country": {
          "type": "string",
          "description": "Birth country according to ISO 3166-1 alpha-2"
        },
        "gender": {
          "type": "string",
          "enum": [
            "male",
            "female"
          ],
          "description": "Gender"
        },
        "language": {
          "type": "string",
          "description": "Language in which to communicate with the collaborator according to ISO 639-1"
        },
        "nationality": {
          "type": "string",
          "description": "According to ISO 3166-1 alpha-2"
        },
        "national_registration_numbers": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "country": {
                "type": "string",
                "description": "Country for which the number is valid according to ISO 3166-1 alpha-2"
              },
              "number": {
                "type": "string",
                "description": "unique number format specified per person per country"
              }
            }
          }
        },
        "social_statute": {
          "type": "string",
          "description": "The social statute"
        },
        "social_statute_code": {
          "type": "string",
          "enum": [
            "career_pause",
            "disabled_entrepreneur",
            "early_retired",
            "entrepreneur",
            "flexijobs",
            "functionary",
            "incapacitated",
            "living_wager",
            "retired",
            "student",
            "unemployed",
            "unemployed_waiting_period",
            "unknown",
            "working_class",
            "working_class_blue_collar",
            "work_student"
          ],
          "description": "The social statute"
        },
        "home_address": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "description": "The human name of the address"
            },
            "street1": {
              "type": "string",
              "description": "Street + house number"
            },
            "street2": {
              "type": "string",
              "description": "Extension of street1"
            },
            "zip": {
              "type": "string"
            },
            "city": {
              "type": "string"
            },
            "administrative_area_level_1": {
              "type": "string",
              "description": "An extra administrative level, depends per country / tenant what this means"
            },
            "administrative_area_level_2": {
              "type": "string",
              "description": "An extra administrative level, depends per country / tenant what this means"
            },
            "administrative_area_level_3": {
              "type": "string",
              "description": "An extra administrative level, depends per country / tenant what this means"
            },
            "administrative_area_level_4": {
              "type": "string",
              "description": "An extra administrative level, depends per country / tenant what this means"
            },
            "administrative_area_level_5": {
              "type": "string",
              "description": "An extra administrative level, depends per country / tenant what this means"
            },
            "country": {
              "type": "string",
              "description": "According to ISO 3166-1 alpha-2"
            },
            "applies_to_all_departments": {
              "type": "boolean",
              "description": "If tenant uses department management, this property indicates whether address belongs to all departments of the tenant"
            },
            "departments": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The ID of the client"
                  },
                  "name": {
                    "type": "string",
                    "description": "The name of the department"
                  },
                  "description": {
                    "type": "string",
                    "description": "A description of the department"
                  }
                }
              },
              "description": "If tenant uses department management, this object lists departments of the address"
            }
          }
        },
        "bank_account": {
          "type": "object",
          "properties": {
            "iban": {
              "type": "string"
            },
            "bic": {
              "type": "string"
            }
          }
        },
        "contact": {
          "type": "object",
          "properties": {
            "email": {
              "type": "string"
            },
            "mobile": {
              "type": "string"
            }
          },
          "required": [
            "email"
          ]
        },
        "email_confirmed": {
          "type": "boolean",
          "description": "If the collaborator confirmed their account"
        },
        "profile_application_accepted": {
          "type": "boolean",
          "description": "If the collaborator was accepted by an admin after registration. Only applicable when setting registration = sollication is true"
        },
        "blocked": {
          "type": "boolean",
          "description": "If the user was blocked"
        },
        "blocked_by": {
          "type": "object",
          "properties": {
            "id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "first_name": {
              "type": "string",
              "description": "First name"
            },
            "last_name": {
              "type": "string",
              "description": "Last name"
            },
            "email": {
              "type": "string",
              "description": "Email"
            }
          },
          "required": [
            "id",
            "first_name",
            "last_name"
          ],
          "description": "The user who blocked the collaboraotr"
        },
        "blocked_at": {
          "type": "string",
          "description": "When the collaborator was blocked if he/she was unblocked"
        },
        "unblocked_by": {
          "type": "object",
          "properties": {
            "id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "first_name": {
              "type": "string",
              "description": "First name"
            },
            "last_name": {
              "type": "string",
              "description": "Last name"
            },
            "email": {
              "type": "string",
              "description": "Email"
            }
          },
          "required": [
            "id",
            "first_name",
            "last_name"
          ],
          "description": "The user who unblocked the collaboraotr"
        },
        "unblocked_at": {
          "type": "string",
          "description": "When the collaborator was unblocked if he/she was unblocked"
        },
        "archived": {
          "type": "boolean",
          "description": "If the user got archived"
        },
        "profile_properties": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "group": {
                "type": "string",
                "description": "Group of profile properties"
              },
              "profile_property_id": {
                "type": "number",
                "description": "Id of the profile property"
              },
              "name": {
                "type": "string",
                "description": "Name of the profile property"
              },
              "description": {
                "type": "string",
                "description": "Description of the profile property"
              },
              "type": {
                "type": "string",
                "enum": [
                  "boolean",
                  "numeric",
                  "freetext",
                  "freetext_multiline",
                  "list_single_option",
                  "list_multi_option",
                  "date",
                  "time",
                  "datetime",
                  "upload"
                ],
                "description": "Type of content of the profile property"
              },
              "numeric_unit": {
                "type": "string",
                "description": "Unit in which a profile property of type numeric is expressed"
              },
              "value_boolean": {
                "type": "boolean",
                "description": "Value of the profile property.  Filled for type = boolean"
              },
              "value_string": {
                "type": "string",
                "description": "Value of the profile property.  Filled for type = freetext, freetext_multiline or list_single_option"
              },
              "value_list_multi": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Filled for type = list_multi_option"
              },
              "value_date": {
                "type": "string",
                "description": "Value of the profile property. Filled for type = date according to RFC 3339"
              },
              "value_time": {
                "type": "string",
                "description": "Value of the profile property. Filled for type = time according to RFC 3339"
              },
              "value_datetime": {
                "type": "string",
                "description": "Value of the profile property. Filled for type = datetime according to RFC 3339"
              },
              "value_numeric": {
                "type": "number",
                "description": "Value of the profile property.  Filled for type = numeric"
              },
              "value_upload_url": {
                "type": "string",
                "description": "Value (URL) of the profile property. Filled for type = upload"
              },
              "comment": {
                "type": "string",
                "description": "Comment concerning the value of the profile property"
              },
              "expiration_date": {
                "type": "string",
                "description": "Date the value of the profile property expires according to RFC 3339"
              },
              "piece_of_evidence": {
                "type": "string",
                "description": "Piece of evidence (URL) for the value of the profile property"
              }
            }
          }
        }
      },
      "required": [
        "first_name",
        "last_name",
        "prefix",
        "beeple_id",
        "language"
      ]
    }
  }
}
Response  200

Modify a collaborator
PATCH/collaborators

Example URI

PATCH /collaborators
Request
HideShow
Headers
Content-Type: application/json
Body
{
  "company": {
    "name": "My company",
    "beeple_id": "273e949a-bb41-4f36-9526-d1d0a8043c91"
  },
  "collaborator": {
    "first_name": "John",
    "last_name": "Doe",
    "prefix": "De",
    "beeple_id": 2403,
    "birth_date": "1995-05-07",
    "birth_city": "Antwerpen",
    "birth_country": "BE",
    "gender": "male",
    "language": "en",
    "nationality": "BE",
    "national_registration_numbers": [
      {
        "country": "BE",
        "number": "YY.MM.DD-997.47"
      }
    ],
    "social_statute": "Arbeider",
    "social_statute_code": "career_pause",
    "home_address": {
      "name": "Some Name",
      "street1": "Dorpstraat 1",
      "street2": "Bus 1",
      "zip": "2018",
      "city": "Antwerpen",
      "administrative_area_level_1": "Hello, world!",
      "administrative_area_level_2": "Hello, world!",
      "administrative_area_level_3": "Hello, world!",
      "administrative_area_level_4": "Hello, world!",
      "administrative_area_level_5": "Hello, world!",
      "country": "BE",
      "applies_to_all_departments": true,
      "departments": [
        {
          "id": "101",
          "name": "Acme Corp",
          "description": "The department for Acme Corp"
        }
      ]
    },
    "bank_account": {
      "iban": "BE68539007547034",
      "bic": "HBKABE22"
    },
    "contact": {
      "email": "john.doe@example.org",
      "mobile": "+32498525251"
    },
    "email_confirmed": true,
    "profile_application_accepted": true,
    "blocked": false,
    "blocked_by": {
      "id": 2403,
      "first_name": "John",
      "last_name": "Doe",
      "email": "John-doe@example.com"
    },
    "blocked_at": "2017-04-01T10:00:00.000+02:00",
    "unblocked_by": {
      "id": 2403,
      "first_name": "John",
      "last_name": "Doe",
      "email": "John-doe@example.com"
    },
    "unblocked_at": "2017-04-01T10:00:00.000+02:00",
    "archived": false,
    "profile_properties": [
      {
        "group": "Legal information",
        "profile_property_id": 1888,
        "name": "Marital status",
        "description": "Here you can enter your official marital status",
        "type": "boolean",
        "numeric_unit": "km",
        "value_boolean": true,
        "value_string": "Married",
        "value_list_multi": [
          "english"
        ],
        "value_date": "2017-05-08",
        "value_time": "17:00:00.000+02:00",
        "value_datetime": "2017-05-08T17:00:00.000+02:00",
        "value_numeric": 23.5,
        "value_upload_url": "https://planning.tenant.be/api/v1/uploads/volunteers/volunteers_profile_property/upload_collaborator/5916/uploaded_file.docx",
        "comment": "Since 15/5/1995",
        "expiration_date": "2017-05-08",
        "piece_of_evidence": "https://planning.tenant.be/api/v1/uploads/volunteers/volunteers_profile_property/documented_proof_verified/43413/piece_of_evidence_file.docx"
      }
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "company": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the company (tenant). Can change and is mainly for displaying purposes"
        },
        "beeple_id": {
          "type": "string",
          "description": "The ID of the Beeple Tenant (a UUID). Will never change for a given tenant."
        }
      },
      "required": [
        "name",
        "beeple_id"
      ],
      "description": "Company that is sending this information."
    },
    "collaborator": {
      "type": "object",
      "properties": {
        "first_name": {
          "type": "string",
          "description": "First name"
        },
        "last_name": {
          "type": "string",
          "description": "Last name"
        },
        "prefix": {
          "type": "string",
          "description": "Last name prefix, this is what appears on the screen of the web application as \"infix\"; for example John De Doe"
        },
        "beeple_id": {
          "type": "number",
          "description": "Identification number within Beeple"
        },
        "birth_date": {
          "type": "string",
          "description": "Birth date according RFC 3339"
        },
        "birth_city": {
          "type": "string",
          "description": "Birth city"
        },
        "birth_country": {
          "type": "string",
          "description": "Birth country according to ISO 3166-1 alpha-2"
        },
        "gender": {
          "type": "string",
          "enum": [
            "male",
            "female"
          ],
          "description": "Gender"
        },
        "language": {
          "type": "string",
          "description": "Language in which to communicate with the collaborator according to ISO 639-1"
        },
        "nationality": {
          "type": "string",
          "description": "According to ISO 3166-1 alpha-2"
        },
        "national_registration_numbers": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "country": {
                "type": "string",
                "description": "Country for which the number is valid according to ISO 3166-1 alpha-2"
              },
              "number": {
                "type": "string",
                "description": "unique number format specified per person per country"
              }
            }
          }
        },
        "social_statute": {
          "type": "string",
          "description": "The social statute"
        },
        "social_statute_code": {
          "type": "string",
          "enum": [
            "career_pause",
            "disabled_entrepreneur",
            "early_retired",
            "entrepreneur",
            "flexijobs",
            "functionary",
            "incapacitated",
            "living_wager",
            "retired",
            "student",
            "unemployed",
            "unemployed_waiting_period",
            "unknown",
            "working_class",
            "working_class_blue_collar",
            "work_student"
          ],
          "description": "The social statute"
        },
        "home_address": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "description": "The human name of the address"
            },
            "street1": {
              "type": "string",
              "description": "Street + house number"
            },
            "street2": {
              "type": "string",
              "description": "Extension of street1"
            },
            "zip": {
              "type": "string"
            },
            "city": {
              "type": "string"
            },
            "administrative_area_level_1": {
              "type": "string",
              "description": "An extra administrative level, depends per country / tenant what this means"
            },
            "administrative_area_level_2": {
              "type": "string",
              "description": "An extra administrative level, depends per country / tenant what this means"
            },
            "administrative_area_level_3": {
              "type": "string",
              "description": "An extra administrative level, depends per country / tenant what this means"
            },
            "administrative_area_level_4": {
              "type": "string",
              "description": "An extra administrative level, depends per country / tenant what this means"
            },
            "administrative_area_level_5": {
              "type": "string",
              "description": "An extra administrative level, depends per country / tenant what this means"
            },
            "country": {
              "type": "string",
              "description": "According to ISO 3166-1 alpha-2"
            },
            "applies_to_all_departments": {
              "type": "boolean",
              "description": "If tenant uses department management, this property indicates whether address belongs to all departments of the tenant"
            },
            "departments": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The ID of the client"
                  },
                  "name": {
                    "type": "string",
                    "description": "The name of the department"
                  },
                  "description": {
                    "type": "string",
                    "description": "A description of the department"
                  }
                }
              },
              "description": "If tenant uses department management, this object lists departments of the address"
            }
          }
        },
        "bank_account": {
          "type": "object",
          "properties": {
            "iban": {
              "type": "string"
            },
            "bic": {
              "type": "string"
            }
          }
        },
        "contact": {
          "type": "object",
          "properties": {
            "email": {
              "type": "string"
            },
            "mobile": {
              "type": "string"
            }
          },
          "required": [
            "email"
          ]
        },
        "email_confirmed": {
          "type": "boolean",
          "description": "If the collaborator confirmed their account"
        },
        "profile_application_accepted": {
          "type": "boolean",
          "description": "If the collaborator was accepted by an admin after registration. Only applicable when setting registration = sollication is true"
        },
        "blocked": {
          "type": "boolean",
          "description": "If the user was blocked"
        },
        "blocked_by": {
          "type": "object",
          "properties": {
            "id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "first_name": {
              "type": "string",
              "description": "First name"
            },
            "last_name": {
              "type": "string",
              "description": "Last name"
            },
            "email": {
              "type": "string",
              "description": "Email"
            }
          },
          "required": [
            "id",
            "first_name",
            "last_name"
          ],
          "description": "The user who blocked the collaboraotr"
        },
        "blocked_at": {
          "type": "string",
          "description": "When the collaborator was blocked if he/she was unblocked"
        },
        "unblocked_by": {
          "type": "object",
          "properties": {
            "id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "first_name": {
              "type": "string",
              "description": "First name"
            },
            "last_name": {
              "type": "string",
              "description": "Last name"
            },
            "email": {
              "type": "string",
              "description": "Email"
            }
          },
          "required": [
            "id",
            "first_name",
            "last_name"
          ],
          "description": "The user who unblocked the collaboraotr"
        },
        "unblocked_at": {
          "type": "string",
          "description": "When the collaborator was unblocked if he/she was unblocked"
        },
        "archived": {
          "type": "boolean",
          "description": "If the user got archived"
        },
        "profile_properties": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "group": {
                "type": "string",
                "description": "Group of profile properties"
              },
              "profile_property_id": {
                "type": "number",
                "description": "Id of the profile property"
              },
              "name": {
                "type": "string",
                "description": "Name of the profile property"
              },
              "description": {
                "type": "string",
                "description": "Description of the profile property"
              },
              "type": {
                "type": "string",
                "enum": [
                  "boolean",
                  "numeric",
                  "freetext",
                  "freetext_multiline",
                  "list_single_option",
                  "list_multi_option",
                  "date",
                  "time",
                  "datetime",
                  "upload"
                ],
                "description": "Type of content of the profile property"
              },
              "numeric_unit": {
                "type": "string",
                "description": "Unit in which a profile property of type numeric is expressed"
              },
              "value_boolean": {
                "type": "boolean",
                "description": "Value of the profile property.  Filled for type = boolean"
              },
              "value_string": {
                "type": "string",
                "description": "Value of the profile property.  Filled for type = freetext, freetext_multiline or list_single_option"
              },
              "value_list_multi": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Filled for type = list_multi_option"
              },
              "value_date": {
                "type": "string",
                "description": "Value of the profile property. Filled for type = date according to RFC 3339"
              },
              "value_time": {
                "type": "string",
                "description": "Value of the profile property. Filled for type = time according to RFC 3339"
              },
              "value_datetime": {
                "type": "string",
                "description": "Value of the profile property. Filled for type = datetime according to RFC 3339"
              },
              "value_numeric": {
                "type": "number",
                "description": "Value of the profile property.  Filled for type = numeric"
              },
              "value_upload_url": {
                "type": "string",
                "description": "Value (URL) of the profile property. Filled for type = upload"
              },
              "comment": {
                "type": "string",
                "description": "Comment concerning the value of the profile property"
              },
              "expiration_date": {
                "type": "string",
                "description": "Date the value of the profile property expires according to RFC 3339"
              },
              "piece_of_evidence": {
                "type": "string",
                "description": "Piece of evidence (URL) for the value of the profile property"
              }
            }
          }
        }
      },
      "required": [
        "first_name",
        "last_name",
        "prefix",
        "beeple_id",
        "language"
      ]
    }
  }
}
Response  200

SMS Messages

SMS Messages

This webhook is sent every time an SMS is to be sent within Beeple.

This can be used for 2 use cases. The main use case is to actually deliver the SMS. In this case the webhook needs to be installed by a marketplace extension of type communication-channel::sms. After sending the SMS the extension should return a unique ID of the SMS which later can be reused to query or set the delivery status of the SMS. The other use case is to register the request to send an SMS within Beeple. In this case no information needs to be returned.

Sending a message
POST/communication/sms

Example URI

POST /communication/sms
Request
HideShow
Headers
Content-Type: application/json
Body
{
  "tenant_id": "237a3384-227b-4437-8585-39f4f4f7dfd4",
  "collaborator_id": "7454",
  "msisdn": "32498123456",
  "message": "Hello, world!"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "tenant_id": {
      "type": "string",
      "description": "The identifier of the tenant"
    },
    "collaborator_id": {
      "type": "string",
      "description": "The collaborator ID in beeple."
    },
    "msisdn": {
      "type": "string",
      "description": "The mobile phone number of the recipient"
    },
    "message": {
      "type": "string",
      "description": "The body of the SMS. This will be sent as normal UTF-8,\n\n        it is up to the implementation to make sure the message is\n        correctly sent to the users"
    }
  }
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "message_id": "dfdasgcvdfgfg",
  "cost": 2
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "message_id": {
      "type": "string",
      "description": "A unique ID to track status of delivery"
    },
    "cost": {
      "type": "number",
      "description": "The cost of the message in credits"
    }
  }
}
Response  200
HideShow
Headers
Content-Type: application/json

SMS Message statuses

Technically this is not a webhook from Beeple. This describes a call from the 3rd party marketplace extension to Beeple.

This message can be sent to update the status. It is up to the implementation to decide to implement this callback and for which statuses.

Updating status of a message
PATCH/api/v1/incoming/communications/{message_id}

Example URI

PATCH /api/v1/incoming/communications/dfdasgcvdfgfg
URI Parameters
HideShow
message_id
string (required) Example: dfdasgcvdfgfg

The ID of the message. This is the same ID as was sent by the 3rd party market place extension after sending the SMS.

Request
HideShow
Headers
Content-Type: application/json
Body
{
  "status": "sent"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "sent",
        "failed",
        "delivered",
        "opened"
      ],
      "description": "The new status of the message"
    }
  }
}
Response  200
HideShow
Headers
Content-Type: application/json

Projects

Project

This webhook is sent every time a Project is created/deleted/updated within Beeple

Beeple servers send a webhook when event happens to the specified integration url. Admins has ability to configure the specified integration url in the Admin Settings -> Modules -> Integrations section by adding an integration with a selected type and url so that Beeple could send HTTP request to the URL they specify.

Project is created
POST/specified-integration-url

Example URI

POST /specified-integration-url
Request
HideShow
Headers
Content-Type: application/json
Body
{
  "company": {
    "name": "My company",
    "beeple_id": "273e949a-bb41-4f36-9526-d1d0a8043c91"
  },
  "project": {
    "id": "2244",
    "name": "Example Project",
    "description": "Description of example project",
    "start_date": "2017-08-15",
    "end_date": "2017-09-15",
    "published": true,
    "practical_info": "Some practical info",
    "subprojects_enabled": true,
    "customer_id": "5",
    "department_id": "5",
    "custom_fields": [
      {
        "property_id": "2244",
        "text_value": "A house in the middle of a street",
        "numeric_value": 32212
      }
    ],
    "created_by": {
      "id": 2403,
      "first_name": "John",
      "last_name": "Doe",
      "email": "John-doe@example.com"
    },
    "created": "2022-06-21T13:59:27Z",
    "updated_by": {
      "id": 2403,
      "first_name": "John",
      "last_name": "Doe",
      "email": "John-doe@example.com"
    },
    "updated": "2022-06-21T13:59:27Z"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "company": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the company (tenant). Can change and is mainly for displaying purposes"
        },
        "beeple_id": {
          "type": "string",
          "description": "The ID of the Beeple Tenant (a UUID). Will never change for a given tenant."
        }
      },
      "required": [
        "name",
        "beeple_id"
      ],
      "description": "Company that is sending this information."
    },
    "project": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "The ID of the project"
        },
        "name": {
          "type": "string",
          "description": "The name of the project (max 255 characters)"
        },
        "description": {
          "type": "string",
          "description": "A description of the project"
        },
        "start_date": {
          "type": "string",
          "description": "Start date of the project in YYYY-MM-DD"
        },
        "end_date": {
          "type": "string",
          "description": "End date of the project in YYYY-MM-DD"
        },
        "published": {
          "type": "boolean",
          "description": "Indication whether the project is published"
        },
        "practical_info": {
          "type": "string",
          "description": "Text to describe some practical info"
        },
        "subprojects_enabled": {
          "type": "boolean",
          "description": "This allows the project to have subprojects"
        },
        "customer_id": {
          "type": "string",
          "description": "The ID of the customer of the Beeple tenant. If Beeple is configured to not use customers this will be unnecessary information and ignored"
        },
        "department_id": {
          "type": "string",
          "description": "The ID of the department of the Beeple tenant that executes the project. If Beeple is configured to not use departments this will be unnecessary information and ignored"
        },
        "custom_fields": {
          "type": "array",
          "description": "A list of extra custom planning fields."
        },
        "created_by": {
          "type": "object",
          "properties": {
            "id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "first_name": {
              "type": "string",
              "description": "First name"
            },
            "last_name": {
              "type": "string",
              "description": "Last name"
            },
            "email": {
              "type": "string",
              "description": "Email"
            }
          },
          "required": [
            "id",
            "first_name",
            "last_name"
          ],
          "description": "The user who created the project"
        },
        "created": {
          "type": "string",
          "description": "Time of when project was created in ISO 8601 format"
        },
        "updated_by": {
          "type": "object",
          "properties": {
            "id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "first_name": {
              "type": "string",
              "description": "First name"
            },
            "last_name": {
              "type": "string",
              "description": "Last name"
            },
            "email": {
              "type": "string",
              "description": "Email"
            }
          },
          "required": [
            "id",
            "first_name",
            "last_name"
          ],
          "description": "The user who updated the project"
        },
        "updated": {
          "type": "string",
          "description": "Time of when project was updated in ISO 8601 format"
        }
      },
      "required": [
        "id",
        "name",
        "description",
        "start_date",
        "end_date",
        "published",
        "subprojects_enabled",
        "created",
        "updated"
      ],
      "description": "Details of the project"
    }
  }
}
Response  200

Project is updated
PATCH/specified-integration-url

Example URI

PATCH /specified-integration-url
Request
HideShow
Headers
Content-Type: application/json
Body
{
  "company": {
    "name": "My company",
    "beeple_id": "273e949a-bb41-4f36-9526-d1d0a8043c91"
  },
  "project": {
    "id": "2244",
    "name": "Example Project",
    "description": "Description of example project",
    "start_date": "2017-08-15",
    "end_date": "2017-09-15",
    "published": true,
    "practical_info": "Some practical info",
    "subprojects_enabled": true,
    "customer_id": "5",
    "department_id": "5",
    "custom_fields": [
      {
        "property_id": "2244",
        "text_value": "A house in the middle of a street",
        "numeric_value": 32212
      }
    ],
    "created_by": {
      "id": 2403,
      "first_name": "John",
      "last_name": "Doe",
      "email": "John-doe@example.com"
    },
    "created": "2022-06-21T13:59:27Z",
    "updated_by": {
      "id": 2403,
      "first_name": "John",
      "last_name": "Doe",
      "email": "John-doe@example.com"
    },
    "updated": "2022-06-21T13:59:27Z"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "company": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the company (tenant). Can change and is mainly for displaying purposes"
        },
        "beeple_id": {
          "type": "string",
          "description": "The ID of the Beeple Tenant (a UUID). Will never change for a given tenant."
        }
      },
      "required": [
        "name",
        "beeple_id"
      ],
      "description": "Company that is sending this information."
    },
    "project": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "The ID of the project"
        },
        "name": {
          "type": "string",
          "description": "The name of the project (max 255 characters)"
        },
        "description": {
          "type": "string",
          "description": "A description of the project"
        },
        "start_date": {
          "type": "string",
          "description": "Start date of the project in YYYY-MM-DD"
        },
        "end_date": {
          "type": "string",
          "description": "End date of the project in YYYY-MM-DD"
        },
        "published": {
          "type": "boolean",
          "description": "Indication whether the project is published"
        },
        "practical_info": {
          "type": "string",
          "description": "Text to describe some practical info"
        },
        "subprojects_enabled": {
          "type": "boolean",
          "description": "This allows the project to have subprojects"
        },
        "customer_id": {
          "type": "string",
          "description": "The ID of the customer of the Beeple tenant. If Beeple is configured to not use customers this will be unnecessary information and ignored"
        },
        "department_id": {
          "type": "string",
          "description": "The ID of the department of the Beeple tenant that executes the project. If Beeple is configured to not use departments this will be unnecessary information and ignored"
        },
        "custom_fields": {
          "type": "array",
          "description": "A list of extra custom planning fields."
        },
        "created_by": {
          "type": "object",
          "properties": {
            "id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "first_name": {
              "type": "string",
              "description": "First name"
            },
            "last_name": {
              "type": "string",
              "description": "Last name"
            },
            "email": {
              "type": "string",
              "description": "Email"
            }
          },
          "required": [
            "id",
            "first_name",
            "last_name"
          ],
          "description": "The user who created the project"
        },
        "created": {
          "type": "string",
          "description": "Time of when project was created in ISO 8601 format"
        },
        "updated_by": {
          "type": "object",
          "properties": {
            "id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "first_name": {
              "type": "string",
              "description": "First name"
            },
            "last_name": {
              "type": "string",
              "description": "Last name"
            },
            "email": {
              "type": "string",
              "description": "Email"
            }
          },
          "required": [
            "id",
            "first_name",
            "last_name"
          ],
          "description": "The user who updated the project"
        },
        "updated": {
          "type": "string",
          "description": "Time of when project was updated in ISO 8601 format"
        }
      },
      "required": [
        "id",
        "name",
        "description",
        "start_date",
        "end_date",
        "published",
        "subprojects_enabled",
        "created",
        "updated"
      ],
      "description": "Details of the project"
    }
  }
}
Response  200

Project is deleted
DELETE/specified-integration-url

Example URI

DELETE /specified-integration-url
Request
HideShow
Headers
Content-Type: application/json
Body
{
  "id": "2244",
  "updated": "2019-04-01T00:23:59.000+00:00"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The ID of the project that was removed"
    },
    "updated": {
      "type": "string",
      "description": "Date and time when the project was removed"
    }
  },
  "required": [
    "id",
    "updated"
  ]
}
Response  200

Enrolments

Enrolments

This webhook is sent every time an enrolment is created/cancelled/updated within Beeple.

Create an enrolment
POST/enrolments

Example URI

POST /enrolments
Request
HideShow
Headers
Content-Type: application/json
Body
{
  "company": {
    "name": "My company",
    "beeple_id": "273e949a-bb41-4f36-9526-d1d0a8043c91"
  },
  "enrolment": {
    "beeple_id": 3,
    "collaborator": {
      "beeple_id": 3,
      "first_name": "John",
      "last_name": "Doe",
      "prefix": "Mr",
      "email": "John-doe@example.com"
    },
    "project": {
      "beeple_id": 3,
      "name": "test"
    },
    "subproject": {
      "beeple_id": 3,
      "name": "test"
    },
    "team": {
      "beeple_id": 3,
      "name": "test"
    },
    "department": {
      "beeple_id": "3",
      "name": "test"
    },
    "planned_shifts": [
      {
        "beeple_id": "5545",
        "start_datetime": "2017-07-05T15:30Z",
        "end_datetime": "2017-07-05T21:30Z",
        "break_duration": "00:30"
      }
    ],
    "work_station_address": {
      "beeple_id": "3",
      "name": "test",
      "street1": "stationstraat",
      "street2": "1",
      "zip": 2000,
      "city": "Antwerpen",
      "country": "BE",
      "addition": 2000,
      "latlon_lat": 41.2321,
      "latlon_lon": 23.1234
    },
    "function": {
      "beeple_id": 3,
      "name": "test"
    },
    "contract_type": "interim",
    "wages": {
      "per_hour": 10,
      "per_day": 80,
      "per_team": 10
    },
    "wage_scale": "Per age",
    "invitation": {
      "beeple_id": "1a9b10c0-3eac-43f2-9f5a-a4e24b7d1aae",
      "status": "accepted",
      "sent_at": "2017-09-07T11:06:56.300Z",
      "expires_at": "2017-09-07T11:06:56.300Z"
    },
    "commute_distance_in_km": 1,
    "enrolled_by_beeple_id": 422,
    "draft_mode": true,
    "confirmed": true,
    "cancelled": true,
    "created_by": {
      "id": 2403,
      "first_name": "John",
      "last_name": "Doe",
      "email": "John-doe@example.com"
    },
    "created": "2017-09-07T11:06:56.300Z",
    "updated": "2017-09-07T11:06:56.300Z"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "company": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the company (tenant). Can change and is mainly for displaying purposes"
        },
        "beeple_id": {
          "type": "string",
          "description": "The ID of the Beeple Tenant (a UUID). Will never change for a given tenant."
        }
      },
      "required": [
        "name",
        "beeple_id"
      ],
      "description": "Company that is sending this information."
    },
    "enrolment": {
      "type": "object",
      "properties": {
        "beeple_id": {
          "type": "number",
          "description": "ID Of the enrolment"
        },
        "collaborator": {
          "type": "object",
          "properties": {
            "beeple_id": {
              "type": "number",
              "description": "Collaborator ID"
            },
            "first_name": {
              "type": "string",
              "description": "First name"
            },
            "last_name": {
              "type": "string",
              "description": "Last name"
            },
            "prefix": {
              "type": "string",
              "description": "Prefix"
            },
            "email": {
              "type": "string",
              "description": "Email"
            }
          },
          "required": [
            "beeple_id",
            "first_name",
            "last_name",
            "prefix"
          ]
        },
        "project": {
          "type": "object",
          "properties": {
            "beeple_id": {
              "type": "number",
              "description": "Project ID"
            },
            "name": {
              "type": "string",
              "description": "Name"
            }
          },
          "required": [
            "beeple_id"
          ]
        },
        "subproject": {
          "type": "object",
          "properties": {
            "beeple_id": {
              "type": "number",
              "description": "Subproject ID"
            },
            "name": {
              "type": "string",
              "description": "Name"
            }
          },
          "required": [
            "beeple_id"
          ]
        },
        "team": {
          "type": "object",
          "properties": {
            "beeple_id": {
              "type": "number",
              "description": "Team ID"
            },
            "name": {
              "type": "string",
              "description": "Name"
            }
          },
          "required": [
            "beeple_id"
          ]
        },
        "department": {
          "type": "object",
          "properties": {
            "beeple_id": {
              "type": "string",
              "description": "Department ID"
            },
            "name": {
              "type": "string",
              "description": "Name"
            }
          },
          "required": [
            "beeple_id"
          ]
        },
        "planned_shifts": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "beeple_id": {
                "type": "string",
                "description": "ID of the shift"
              },
              "start_datetime": {
                "type": "string",
                "description": "When the shift starts according RFC 3339."
              },
              "end_datetime": {
                "type": "string",
                "description": "When the shift stops according RFC 3339."
              },
              "break_duration": {
                "type": "string",
                "description": "Total planned break duration in HH:MM."
              }
            }
          }
        },
        "work_station_address": {
          "type": "object",
          "properties": {
            "beeple_id": {
              "type": "string",
              "description": "Address ID"
            },
            "name": {
              "type": "string",
              "description": "Name of the address"
            },
            "street1": {
              "type": "string",
              "description": "Street + house number"
            },
            "street2": {
              "type": "string",
              "description": "Extension of street1"
            },
            "zip": {
              "type": "number"
            },
            "city": {
              "type": "string"
            },
            "country": {
              "type": "string",
              "description": "According to ISO 3166-1 alpha-2"
            },
            "addition": {
              "type": "number",
              "description": "Additional information about the work station"
            },
            "latlon_lat": {
              "type": "number",
              "description": "Geo Coordinates latitude of address."
            },
            "latlon_lon": {
              "type": "number",
              "description": "Geo Coordinates longitude of address."
            }
          },
          "required": [
            "beeple_id",
            "street1",
            "street2",
            "zip",
            "city",
            "country",
            "addition"
          ]
        },
        "function": {
          "type": "object",
          "properties": {
            "beeple_id": {
              "type": "number",
              "description": "Function ID"
            },
            "name": {
              "type": "string",
              "description": "Name"
            }
          },
          "required": [
            "beeple_id"
          ]
        },
        "contract_type": {
          "type": "string",
          "description": "Contract type"
        },
        "wages": {
          "type": "object",
          "properties": {
            "per_hour": {
              "type": "number",
              "description": "Compensation per hour"
            },
            "per_day": {
              "type": "number",
              "description": "Compensation per day"
            },
            "per_team": {
              "type": "number",
              "description": "Compensation per team"
            }
          }
        },
        "wage_scale": {
          "type": "string",
          "description": "Wage scale code"
        },
        "invitation": {
          "type": "object",
          "properties": {
            "beeple_id": {
              "type": "string",
              "description": "UUID of the invitation"
            },
            "status": {
              "type": "string",
              "description": "Status of the invitation"
            },
            "sent_at": {
              "type": "string",
              "description": "Invitation sent timestamp"
            },
            "expires_at": {
              "type": "string",
              "description": "Invitation expiration timestamp"
            }
          }
        },
        "commute_distance_in_km": {
          "type": "number",
          "description": "Commute distance in km"
        },
        "enrolled_by_beeple_id": {
          "type": "number",
          "description": "ID of the collaborator that made the enrolment (can be empty)"
        },
        "draft_mode": {
          "type": "boolean",
          "description": "Indicates if enrolment is in draft mode"
        },
        "confirmed": {
          "type": "boolean",
          "description": "whether enrolment was confirmed"
        },
        "cancelled": {
          "type": "boolean",
          "description": "whether enrolment was cancelled"
        },
        "created_by": {
          "type": "object",
          "properties": {
            "id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "first_name": {
              "type": "string",
              "description": "First name"
            },
            "last_name": {
              "type": "string",
              "description": "Last name"
            },
            "email": {
              "type": "string",
              "description": "Email"
            }
          },
          "required": [
            "id",
            "first_name",
            "last_name"
          ],
          "description": "The collaborator who created enrolment"
        },
        "created": {
          "type": "string",
          "description": "Created at timestamp according RFC 3339"
        },
        "updated": {
          "type": "string",
          "description": "Updated at timestamp according RFC 3339"
        }
      },
      "required": [
        "beeple_id",
        "contract_type"
      ]
    }
  }
}
Response  200

Remove an enrolment
DELETE/enrolments

Example URI

DELETE /enrolments
Request
HideShow
Headers
Content-Type: application/json
Body
{
  "company": {
    "name": "My company",
    "beeple_id": "273e949a-bb41-4f36-9526-d1d0a8043c91"
  },
  "enrolment": {
    "beeple_id": 3,
    "collaborator": {
      "beeple_id": 3,
      "first_name": "John",
      "last_name": "Doe",
      "prefix": "Mr",
      "email": "John-doe@example.com"
    },
    "project": {
      "beeple_id": 3,
      "name": "test"
    },
    "subproject": {
      "beeple_id": 3,
      "name": "test"
    },
    "team": {
      "beeple_id": 3,
      "name": "test"
    },
    "department": {
      "beeple_id": "3",
      "name": "test"
    },
    "planned_shifts": [
      {
        "beeple_id": "5545",
        "start_datetime": "2017-07-05T15:30Z",
        "end_datetime": "2017-07-05T21:30Z",
        "break_duration": "00:30"
      }
    ],
    "work_station_address": {
      "beeple_id": "3",
      "name": "test",
      "street1": "stationstraat",
      "street2": "1",
      "zip": 2000,
      "city": "Antwerpen",
      "country": "BE",
      "addition": 2000,
      "latlon_lat": 41.2321,
      "latlon_lon": 23.1234
    },
    "function": {
      "beeple_id": 3,
      "name": "test"
    },
    "contract_type": "interim",
    "wages": {
      "per_hour": 10,
      "per_day": 80,
      "per_team": 10
    },
    "wage_scale": "Per age",
    "invitation": {
      "beeple_id": "1a9b10c0-3eac-43f2-9f5a-a4e24b7d1aae",
      "status": "accepted",
      "sent_at": "2017-09-07T11:06:56.300Z",
      "expires_at": "2017-09-07T11:06:56.300Z"
    },
    "commute_distance_in_km": 1,
    "enrolled_by_beeple_id": 422,
    "draft_mode": true,
    "confirmed": true,
    "cancelled": true,
    "created_by": {
      "id": 2403,
      "first_name": "John",
      "last_name": "Doe",
      "email": "John-doe@example.com"
    },
    "created": "2017-09-07T11:06:56.300Z",
    "updated": "2017-09-07T11:06:56.300Z"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "company": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the company (tenant). Can change and is mainly for displaying purposes"
        },
        "beeple_id": {
          "type": "string",
          "description": "The ID of the Beeple Tenant (a UUID). Will never change for a given tenant."
        }
      },
      "required": [
        "name",
        "beeple_id"
      ],
      "description": "Company that is sending this information."
    },
    "enrolment": {
      "type": "object",
      "properties": {
        "beeple_id": {
          "type": "number",
          "description": "ID Of the enrolment"
        },
        "collaborator": {
          "type": "object",
          "properties": {
            "beeple_id": {
              "type": "number",
              "description": "Collaborator ID"
            },
            "first_name": {
              "type": "string",
              "description": "First name"
            },
            "last_name": {
              "type": "string",
              "description": "Last name"
            },
            "prefix": {
              "type": "string",
              "description": "Prefix"
            },
            "email": {
              "type": "string",
              "description": "Email"
            }
          },
          "required": [
            "beeple_id",
            "first_name",
            "last_name",
            "prefix"
          ]
        },
        "project": {
          "type": "object",
          "properties": {
            "beeple_id": {
              "type": "number",
              "description": "Project ID"
            },
            "name": {
              "type": "string",
              "description": "Name"
            }
          },
          "required": [
            "beeple_id"
          ]
        },
        "subproject": {
          "type": "object",
          "properties": {
            "beeple_id": {
              "type": "number",
              "description": "Subproject ID"
            },
            "name": {
              "type": "string",
              "description": "Name"
            }
          },
          "required": [
            "beeple_id"
          ]
        },
        "team": {
          "type": "object",
          "properties": {
            "beeple_id": {
              "type": "number",
              "description": "Team ID"
            },
            "name": {
              "type": "string",
              "description": "Name"
            }
          },
          "required": [
            "beeple_id"
          ]
        },
        "department": {
          "type": "object",
          "properties": {
            "beeple_id": {
              "type": "string",
              "description": "Department ID"
            },
            "name": {
              "type": "string",
              "description": "Name"
            }
          },
          "required": [
            "beeple_id"
          ]
        },
        "planned_shifts": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "beeple_id": {
                "type": "string",
                "description": "ID of the shift"
              },
              "start_datetime": {
                "type": "string",
                "description": "When the shift starts according RFC 3339."
              },
              "end_datetime": {
                "type": "string",
                "description": "When the shift stops according RFC 3339."
              },
              "break_duration": {
                "type": "string",
                "description": "Total planned break duration in HH:MM."
              }
            }
          }
        },
        "work_station_address": {
          "type": "object",
          "properties": {
            "beeple_id": {
              "type": "string",
              "description": "Address ID"
            },
            "name": {
              "type": "string",
              "description": "Name of the address"
            },
            "street1": {
              "type": "string",
              "description": "Street + house number"
            },
            "street2": {
              "type": "string",
              "description": "Extension of street1"
            },
            "zip": {
              "type": "number"
            },
            "city": {
              "type": "string"
            },
            "country": {
              "type": "string",
              "description": "According to ISO 3166-1 alpha-2"
            },
            "addition": {
              "type": "number",
              "description": "Additional information about the work station"
            },
            "latlon_lat": {
              "type": "number",
              "description": "Geo Coordinates latitude of address."
            },
            "latlon_lon": {
              "type": "number",
              "description": "Geo Coordinates longitude of address."
            }
          },
          "required": [
            "beeple_id",
            "street1",
            "street2",
            "zip",
            "city",
            "country",
            "addition"
          ]
        },
        "function": {
          "type": "object",
          "properties": {
            "beeple_id": {
              "type": "number",
              "description": "Function ID"
            },
            "name": {
              "type": "string",
              "description": "Name"
            }
          },
          "required": [
            "beeple_id"
          ]
        },
        "contract_type": {
          "type": "string",
          "description": "Contract type"
        },
        "wages": {
          "type": "object",
          "properties": {
            "per_hour": {
              "type": "number",
              "description": "Compensation per hour"
            },
            "per_day": {
              "type": "number",
              "description": "Compensation per day"
            },
            "per_team": {
              "type": "number",
              "description": "Compensation per team"
            }
          }
        },
        "wage_scale": {
          "type": "string",
          "description": "Wage scale code"
        },
        "invitation": {
          "type": "object",
          "properties": {
            "beeple_id": {
              "type": "string",
              "description": "UUID of the invitation"
            },
            "status": {
              "type": "string",
              "description": "Status of the invitation"
            },
            "sent_at": {
              "type": "string",
              "description": "Invitation sent timestamp"
            },
            "expires_at": {
              "type": "string",
              "description": "Invitation expiration timestamp"
            }
          }
        },
        "commute_distance_in_km": {
          "type": "number",
          "description": "Commute distance in km"
        },
        "enrolled_by_beeple_id": {
          "type": "number",
          "description": "ID of the collaborator that made the enrolment (can be empty)"
        },
        "draft_mode": {
          "type": "boolean",
          "description": "Indicates if enrolment is in draft mode"
        },
        "confirmed": {
          "type": "boolean",
          "description": "whether enrolment was confirmed"
        },
        "cancelled": {
          "type": "boolean",
          "description": "whether enrolment was cancelled"
        },
        "created_by": {
          "type": "object",
          "properties": {
            "id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "first_name": {
              "type": "string",
              "description": "First name"
            },
            "last_name": {
              "type": "string",
              "description": "Last name"
            },
            "email": {
              "type": "string",
              "description": "Email"
            }
          },
          "required": [
            "id",
            "first_name",
            "last_name"
          ],
          "description": "The collaborator who created enrolment"
        },
        "created": {
          "type": "string",
          "description": "Created at timestamp according RFC 3339"
        },
        "updated": {
          "type": "string",
          "description": "Updated at timestamp according RFC 3339"
        }
      },
      "required": [
        "beeple_id",
        "contract_type"
      ]
    }
  }
}
Response  200

Modify an enrolment
PATCH/enrolments

Example URI

PATCH /enrolments
Request
HideShow
Headers
Content-Type: application/json
Body
{
  "company": {
    "name": "My company",
    "beeple_id": "273e949a-bb41-4f36-9526-d1d0a8043c91"
  },
  "enrolment": {
    "beeple_id": 3,
    "collaborator": {
      "beeple_id": 3,
      "first_name": "John",
      "last_name": "Doe",
      "prefix": "Mr",
      "email": "John-doe@example.com"
    },
    "project": {
      "beeple_id": 3,
      "name": "test"
    },
    "subproject": {
      "beeple_id": 3,
      "name": "test"
    },
    "team": {
      "beeple_id": 3,
      "name": "test"
    },
    "department": {
      "beeple_id": "3",
      "name": "test"
    },
    "planned_shifts": [
      {
        "beeple_id": "5545",
        "start_datetime": "2017-07-05T15:30Z",
        "end_datetime": "2017-07-05T21:30Z",
        "break_duration": "00:30"
      }
    ],
    "work_station_address": {
      "beeple_id": "3",
      "name": "test",
      "street1": "stationstraat",
      "street2": "1",
      "zip": 2000,
      "city": "Antwerpen",
      "country": "BE",
      "addition": 2000,
      "latlon_lat": 41.2321,
      "latlon_lon": 23.1234
    },
    "function": {
      "beeple_id": 3,
      "name": "test"
    },
    "contract_type": "interim",
    "wages": {
      "per_hour": 10,
      "per_day": 80,
      "per_team": 10
    },
    "wage_scale": "Per age",
    "invitation": {
      "beeple_id": "1a9b10c0-3eac-43f2-9f5a-a4e24b7d1aae",
      "status": "accepted",
      "sent_at": "2017-09-07T11:06:56.300Z",
      "expires_at": "2017-09-07T11:06:56.300Z"
    },
    "commute_distance_in_km": 1,
    "enrolled_by_beeple_id": 422,
    "draft_mode": true,
    "confirmed": true,
    "cancelled": true,
    "created_by": {
      "id": 2403,
      "first_name": "John",
      "last_name": "Doe",
      "email": "John-doe@example.com"
    },
    "created": "2017-09-07T11:06:56.300Z",
    "updated": "2017-09-07T11:06:56.300Z"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "company": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the company (tenant). Can change and is mainly for displaying purposes"
        },
        "beeple_id": {
          "type": "string",
          "description": "The ID of the Beeple Tenant (a UUID). Will never change for a given tenant."
        }
      },
      "required": [
        "name",
        "beeple_id"
      ],
      "description": "Company that is sending this information."
    },
    "enrolment": {
      "type": "object",
      "properties": {
        "beeple_id": {
          "type": "number",
          "description": "ID Of the enrolment"
        },
        "collaborator": {
          "type": "object",
          "properties": {
            "beeple_id": {
              "type": "number",
              "description": "Collaborator ID"
            },
            "first_name": {
              "type": "string",
              "description": "First name"
            },
            "last_name": {
              "type": "string",
              "description": "Last name"
            },
            "prefix": {
              "type": "string",
              "description": "Prefix"
            },
            "email": {
              "type": "string",
              "description": "Email"
            }
          },
          "required": [
            "beeple_id",
            "first_name",
            "last_name",
            "prefix"
          ]
        },
        "project": {
          "type": "object",
          "properties": {
            "beeple_id": {
              "type": "number",
              "description": "Project ID"
            },
            "name": {
              "type": "string",
              "description": "Name"
            }
          },
          "required": [
            "beeple_id"
          ]
        },
        "subproject": {
          "type": "object",
          "properties": {
            "beeple_id": {
              "type": "number",
              "description": "Subproject ID"
            },
            "name": {
              "type": "string",
              "description": "Name"
            }
          },
          "required": [
            "beeple_id"
          ]
        },
        "team": {
          "type": "object",
          "properties": {
            "beeple_id": {
              "type": "number",
              "description": "Team ID"
            },
            "name": {
              "type": "string",
              "description": "Name"
            }
          },
          "required": [
            "beeple_id"
          ]
        },
        "department": {
          "type": "object",
          "properties": {
            "beeple_id": {
              "type": "string",
              "description": "Department ID"
            },
            "name": {
              "type": "string",
              "description": "Name"
            }
          },
          "required": [
            "beeple_id"
          ]
        },
        "planned_shifts": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "beeple_id": {
                "type": "string",
                "description": "ID of the shift"
              },
              "start_datetime": {
                "type": "string",
                "description": "When the shift starts according RFC 3339."
              },
              "end_datetime": {
                "type": "string",
                "description": "When the shift stops according RFC 3339."
              },
              "break_duration": {
                "type": "string",
                "description": "Total planned break duration in HH:MM."
              }
            }
          }
        },
        "work_station_address": {
          "type": "object",
          "properties": {
            "beeple_id": {
              "type": "string",
              "description": "Address ID"
            },
            "name": {
              "type": "string",
              "description": "Name of the address"
            },
            "street1": {
              "type": "string",
              "description": "Street + house number"
            },
            "street2": {
              "type": "string",
              "description": "Extension of street1"
            },
            "zip": {
              "type": "number"
            },
            "city": {
              "type": "string"
            },
            "country": {
              "type": "string",
              "description": "According to ISO 3166-1 alpha-2"
            },
            "addition": {
              "type": "number",
              "description": "Additional information about the work station"
            },
            "latlon_lat": {
              "type": "number",
              "description": "Geo Coordinates latitude of address."
            },
            "latlon_lon": {
              "type": "number",
              "description": "Geo Coordinates longitude of address."
            }
          },
          "required": [
            "beeple_id",
            "street1",
            "street2",
            "zip",
            "city",
            "country",
            "addition"
          ]
        },
        "function": {
          "type": "object",
          "properties": {
            "beeple_id": {
              "type": "number",
              "description": "Function ID"
            },
            "name": {
              "type": "string",
              "description": "Name"
            }
          },
          "required": [
            "beeple_id"
          ]
        },
        "contract_type": {
          "type": "string",
          "description": "Contract type"
        },
        "wages": {
          "type": "object",
          "properties": {
            "per_hour": {
              "type": "number",
              "description": "Compensation per hour"
            },
            "per_day": {
              "type": "number",
              "description": "Compensation per day"
            },
            "per_team": {
              "type": "number",
              "description": "Compensation per team"
            }
          }
        },
        "wage_scale": {
          "type": "string",
          "description": "Wage scale code"
        },
        "invitation": {
          "type": "object",
          "properties": {
            "beeple_id": {
              "type": "string",
              "description": "UUID of the invitation"
            },
            "status": {
              "type": "string",
              "description": "Status of the invitation"
            },
            "sent_at": {
              "type": "string",
              "description": "Invitation sent timestamp"
            },
            "expires_at": {
              "type": "string",
              "description": "Invitation expiration timestamp"
            }
          }
        },
        "commute_distance_in_km": {
          "type": "number",
          "description": "Commute distance in km"
        },
        "enrolled_by_beeple_id": {
          "type": "number",
          "description": "ID of the collaborator that made the enrolment (can be empty)"
        },
        "draft_mode": {
          "type": "boolean",
          "description": "Indicates if enrolment is in draft mode"
        },
        "confirmed": {
          "type": "boolean",
          "description": "whether enrolment was confirmed"
        },
        "cancelled": {
          "type": "boolean",
          "description": "whether enrolment was cancelled"
        },
        "created_by": {
          "type": "object",
          "properties": {
            "id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "first_name": {
              "type": "string",
              "description": "First name"
            },
            "last_name": {
              "type": "string",
              "description": "Last name"
            },
            "email": {
              "type": "string",
              "description": "Email"
            }
          },
          "required": [
            "id",
            "first_name",
            "last_name"
          ],
          "description": "The collaborator who created enrolment"
        },
        "created": {
          "type": "string",
          "description": "Created at timestamp according RFC 3339"
        },
        "updated": {
          "type": "string",
          "description": "Updated at timestamp according RFC 3339"
        }
      },
      "required": [
        "beeple_id",
        "contract_type"
      ]
    }
  }
}
Response  200

Worked Hours

Hour registration

This webhook is sent every time an hour registration is approved within Beeple.

Register hours
PATCH/worked_hours

Example URI

PATCH /worked_hours
Request
HideShow
Headers
Content-Type: application/json
Body
{
  "company": {
    "name": "My company",
    "beeple_id": "273e949a-bb41-4f36-9526-d1d0a8043c91",
    "enterprise_number": "0101010101",
    "payroll_service_id": "5"
  },
  "contract": {
    "beeple_id": 87643,
    "collaborator": {
      "id": 2403,
      "first_name": "John",
      "last_name": "Doe",
      "email": "John-doe@example.com"
    },
    "project": {
      "beeple_id": 31324,
      "name": "Example Project",
      "description": "Description of example project",
      "start_date": "2017-08-15",
      "end_date": "2017-09-15",
      "published": true
    },
    "subproject": {
      "beeple_id": 12412,
      "name": "Example subproject"
    },
    "team": {
      "beeple_id": 34513,
      "name": "Example Team"
    },
    "shift": {
      "beeple_id": 39512,
      "start_datetime": "2022-07-01T10:00:00Z",
      "end_datetime": "2022-07-01T15:00:00Z",
      "break_duration": "01:00"
    }
  },
  "worked_hours": {
    "beeple_id": 87643,
    "code": "other",
    "start": "2017-04-01T10:10:00.000+02:00",
    "end": "2017-04-01T19:05:00.000+02:00",
    "duration": "08:55",
    "break_duration": "00:30",
    "work_duration": "08:25",
    "remark": "Reviewed by Adam and approved by Betsy",
    "absent": false,
    "absence_reason": {
      "description": "Illness",
      "code": "ABC1"
    },
    "confirmed_at": "2017-04-01T10:10:00.000+02:00",
    "confirmed_by": {
      "id": 2403,
      "first_name": "John",
      "last_name": "Doe",
      "email": "John-doe@example.com"
    },
    "payments": [
      {
        "beeple_id": "42",
        "reference": "aa-bb",
        "amount": 400.5,
        "date_of_event": "2022-12-05",
        "source_type": "compensation-day",
        "status": "01-to-be-sent"
      }
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "company": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the company (tenant). Can change and is mainly for displaying purposes"
        },
        "beeple_id": {
          "type": "string",
          "description": "The ID of the Beeple Tenant (a UUID). Will never change for a given tenant."
        },
        "enterprise_number": {
          "type": "string",
          "description": "Enterprise number of this company"
        },
        "payroll_service_id": {
          "type": "string",
          "description": "A payroll service ID."
        }
      },
      "required": [
        "name",
        "beeple_id"
      ],
      "description": "Company that is sending this information."
    },
    "contract": {
      "type": "object",
      "properties": {
        "beeple_id": {
          "type": "number",
          "description": "Identification number within Beeple"
        },
        "collaborator": {
          "type": "object",
          "properties": {
            "id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "first_name": {
              "type": "string",
              "description": "First name"
            },
            "last_name": {
              "type": "string",
              "description": "Last name"
            },
            "email": {
              "type": "string",
              "description": "Email"
            }
          },
          "required": [
            "id",
            "first_name",
            "last_name"
          ],
          "description": "Collaborator of the contract"
        },
        "project": {
          "type": "object",
          "properties": {
            "beeple_id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "name": {
              "type": "string",
              "description": "The name of the project (max 255 characters)"
            },
            "description": {
              "type": "string",
              "description": "A description of the project"
            },
            "start_date": {
              "type": "string",
              "description": "Start date of the project in YYYY-MM-DD"
            },
            "end_date": {
              "type": "string",
              "description": "End date of the project in YYYY-MM-DD"
            },
            "published": {
              "type": "boolean",
              "description": "Indication whether the project is published"
            }
          },
          "required": [
            "beeple_id",
            "name",
            "description",
            "start_date",
            "end_date",
            "published"
          ],
          "description": "project info"
        },
        "subproject": {
          "type": "object",
          "properties": {
            "beeple_id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "name": {
              "type": "string",
              "description": "The name of the subproject"
            }
          },
          "required": [
            "beeple_id",
            "name"
          ],
          "description": "subproject info"
        },
        "team": {
          "type": "object",
          "properties": {
            "beeple_id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "name": {
              "type": "string",
              "description": "The name of the team"
            }
          },
          "required": [
            "beeple_id",
            "name"
          ],
          "description": "team info"
        },
        "shift": {
          "type": "object",
          "properties": {
            "beeple_id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "start_datetime": {
              "type": "string",
              "description": "A start time of the shift in ISO 8601 format"
            },
            "end_datetime": {
              "type": "string",
              "description": "An end time of the shift in ISO 8601 format"
            },
            "break_duration": {
              "type": "string",
              "description": "Duration of shift's break"
            }
          },
          "required": [
            "beeple_id",
            "start_datetime",
            "end_datetime",
            "break_duration"
          ],
          "description": "shift info"
        }
      },
      "required": [
        "beeple_id"
      ],
      "description": "Contract for which worked hours are reported"
    }
  },
  "oneOf": [
    {
      "properties": {
        "worked_hours": {
          "type": "object",
          "properties": {
            "beeple_id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "code": {
              "type": "string",
              "enum": [
                "other",
                "collaborator",
                "planned"
              ],
              "description": "Which hours are approved."
            },
            "start": {
              "type": "string",
              "description": "When the collaborator started working for the reported shift according RFC 3339."
            },
            "end": {
              "type": "string",
              "description": "When the collaborator stopped working for the reported shift according RFC 3339."
            },
            "duration": {
              "type": "string",
              "description": "How long the collaborator was present in the reported shift according RFC 3339."
            },
            "break_duration": {
              "type": "string",
              "description": "How long the collaborator didn't to work in the reported shift according RFC 3339. Can be 00:00."
            },
            "work_duration": {
              "type": "string",
              "description": "How long the collaborator worked in the reported shift according RFC 3339. Can be 00:00."
            },
            "remark": {
              "type": "string",
              "description": "Any remarks saved with the worked hour"
            },
            "absent": {
              "type": "boolean",
              "description": "true if the collaborator was absent, false otherwise"
            },
            "confirmed_at": {
              "type": "string",
              "description": "When the worked hour was confirmed according RFC 3339."
            },
            "confirmed_by": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "number",
                  "description": "Identification number within Beeple"
                },
                "first_name": {
                  "type": "string",
                  "description": "First name"
                },
                "last_name": {
                  "type": "string",
                  "description": "Last name"
                },
                "email": {
                  "type": "string",
                  "description": "Email"
                }
              },
              "required": [
                "id",
                "first_name",
                "last_name"
              ],
              "description": "The collaborator who confirmed worked hour"
            },
            "payments": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "beeple_id": {
                    "type": "string",
                    "description": "The ID of the transaction"
                  },
                  "reference": {
                    "type": "string",
                    "description": "A referece. Not guaranteed to be unique"
                  },
                  "amount": {
                    "type": "number",
                    "description": "The amount of the transaction"
                  },
                  "date_of_event": {
                    "type": "string",
                    "description": "The ISO date of the transaction"
                  },
                  "source_type": {
                    "type": "string",
                    "description": "The origin of the compensation"
                  },
                  "status": {
                    "type": "string",
                    "description": "A status indication"
                  }
                },
                "required": [
                  "beeple_id",
                  "reference",
                  "amount",
                  "date_of_event",
                  "source_type",
                  "status"
                ]
              },
              "description": "List of payments for this worked hour"
            },
            "absence_reason": {
              "type": "object",
              "properties": {
                "description": {
                  "type": "string",
                  "description": "The absence reason description"
                },
                "code": {
                  "type": "string",
                  "description": "The code assigned for the absence reason for this payroll integration"
                }
              },
              "description": "Only sent if collaborator was absent"
            }
          },
          "required": [
            "beeple_id",
            "start",
            "end",
            "duration",
            "break_duration"
          ],
          "description": "Sent regardless of the collaborator being absent"
        }
      }
    }
  ]
}
Response  200

Hour unapproved

This webhook is sent every time an hour registration is unapproved within Beeple.

Unapprove hour
POST/worked_hours_unapproved

Example URI

POST /worked_hours_unapproved
Request
HideShow
Headers
Content-Type: application/json
Body
{
  "company": {
    "name": "My company",
    "beeple_id": "273e949a-bb41-4f36-9526-d1d0a8043c91",
    "enterprise_number": "0101010101",
    "payroll_service_id": "5"
  },
  "contract": {
    "beeple_id": 87643,
    "collaborator": {
      "id": 2403,
      "first_name": "John",
      "last_name": "Doe",
      "email": "John-doe@example.com"
    },
    "project": {
      "beeple_id": 31324,
      "name": "Example Project",
      "description": "Description of example project",
      "start_date": "2017-08-15",
      "end_date": "2017-09-15",
      "published": true
    },
    "subproject": {
      "beeple_id": 12412,
      "name": "Example subproject"
    },
    "team": {
      "beeple_id": 34513,
      "name": "Example Team"
    },
    "shift": {
      "beeple_id": 39512,
      "start_datetime": "2022-07-01T10:00:00Z",
      "end_datetime": "2022-07-01T15:00:00Z",
      "break_duration": "01:00"
    }
  },
  "worked_hours": {
    "beeple_id": 87643,
    "code": "other",
    "start": "2017-04-01T10:10:00.000+02:00",
    "end": "2017-04-01T19:05:00.000+02:00",
    "duration": "08:55",
    "break_duration": "00:30",
    "work_duration": "08:25",
    "remark": "Reviewed by Adam and approved by Betsy",
    "absent": false,
    "absence_reason": {
      "description": "Illness",
      "code": "ABC1"
    },
    "confirmed_at": "2017-04-01T10:10:00.000+02:00",
    "confirmed_by": {
      "id": 2403,
      "first_name": "John",
      "last_name": "Doe",
      "email": "John-doe@example.com"
    },
    "payments": [
      {
        "beeple_id": "42",
        "reference": "aa-bb",
        "amount": 400.5,
        "date_of_event": "2022-12-05",
        "source_type": "compensation-day",
        "status": "01-to-be-sent"
      }
    ]
  },
  "unapproved_by": {
    "id": 2403,
    "first_name": "John",
    "last_name": "Doe",
    "email": "John-doe@example.com"
  },
  "unapproved_at": "2017-04-01T10:10:00.000+02:00"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "company": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the company (tenant). Can change and is mainly for displaying purposes"
        },
        "beeple_id": {
          "type": "string",
          "description": "The ID of the Beeple Tenant (a UUID). Will never change for a given tenant."
        },
        "enterprise_number": {
          "type": "string",
          "description": "Enterprise number of this company"
        },
        "payroll_service_id": {
          "type": "string",
          "description": "A payroll service ID."
        }
      },
      "required": [
        "name",
        "beeple_id"
      ],
      "description": "Company that is sending this information."
    },
    "contract": {
      "type": "object",
      "properties": {
        "beeple_id": {
          "type": "number",
          "description": "Identification number within Beeple"
        },
        "collaborator": {
          "type": "object",
          "properties": {
            "id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "first_name": {
              "type": "string",
              "description": "First name"
            },
            "last_name": {
              "type": "string",
              "description": "Last name"
            },
            "email": {
              "type": "string",
              "description": "Email"
            }
          },
          "required": [
            "id",
            "first_name",
            "last_name"
          ],
          "description": "Collaborator of the contract"
        },
        "project": {
          "type": "object",
          "properties": {
            "beeple_id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "name": {
              "type": "string",
              "description": "The name of the project (max 255 characters)"
            },
            "description": {
              "type": "string",
              "description": "A description of the project"
            },
            "start_date": {
              "type": "string",
              "description": "Start date of the project in YYYY-MM-DD"
            },
            "end_date": {
              "type": "string",
              "description": "End date of the project in YYYY-MM-DD"
            },
            "published": {
              "type": "boolean",
              "description": "Indication whether the project is published"
            }
          },
          "required": [
            "beeple_id",
            "name",
            "description",
            "start_date",
            "end_date",
            "published"
          ],
          "description": "project info"
        },
        "subproject": {
          "type": "object",
          "properties": {
            "beeple_id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "name": {
              "type": "string",
              "description": "The name of the subproject"
            }
          },
          "required": [
            "beeple_id",
            "name"
          ],
          "description": "subproject info"
        },
        "team": {
          "type": "object",
          "properties": {
            "beeple_id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "name": {
              "type": "string",
              "description": "The name of the team"
            }
          },
          "required": [
            "beeple_id",
            "name"
          ],
          "description": "team info"
        },
        "shift": {
          "type": "object",
          "properties": {
            "beeple_id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "start_datetime": {
              "type": "string",
              "description": "A start time of the shift in ISO 8601 format"
            },
            "end_datetime": {
              "type": "string",
              "description": "An end time of the shift in ISO 8601 format"
            },
            "break_duration": {
              "type": "string",
              "description": "Duration of shift's break"
            }
          },
          "required": [
            "beeple_id",
            "start_datetime",
            "end_datetime",
            "break_duration"
          ],
          "description": "shift info"
        }
      },
      "required": [
        "beeple_id"
      ],
      "description": "Contract for which worked hours are reported"
    },
    "unapproved_by": {
      "type": "object",
      "properties": {
        "id": {
          "type": "number",
          "description": "Identification number within Beeple"
        },
        "first_name": {
          "type": "string",
          "description": "First name"
        },
        "last_name": {
          "type": "string",
          "description": "Last name"
        },
        "email": {
          "type": "string",
          "description": "Email"
        }
      },
      "required": [
        "id",
        "first_name",
        "last_name"
      ],
      "description": "Admin info who unapproved worked hour"
    },
    "unapproved_at": {
      "type": "string",
      "description": "When worked hour was unapproved"
    }
  },
  "oneOf": [
    {
      "properties": {
        "worked_hours": {
          "type": "object",
          "properties": {
            "beeple_id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "code": {
              "type": "string",
              "enum": [
                "other",
                "collaborator",
                "planned"
              ],
              "description": "Which hours are approved."
            },
            "start": {
              "type": "string",
              "description": "When the collaborator started working for the reported shift according RFC 3339."
            },
            "end": {
              "type": "string",
              "description": "When the collaborator stopped working for the reported shift according RFC 3339."
            },
            "duration": {
              "type": "string",
              "description": "How long the collaborator was present in the reported shift according RFC 3339."
            },
            "break_duration": {
              "type": "string",
              "description": "How long the collaborator didn't to work in the reported shift according RFC 3339. Can be 00:00."
            },
            "work_duration": {
              "type": "string",
              "description": "How long the collaborator worked in the reported shift according RFC 3339. Can be 00:00."
            },
            "remark": {
              "type": "string",
              "description": "Any remarks saved with the worked hour"
            },
            "absent": {
              "type": "boolean",
              "description": "true if the collaborator was absent, false otherwise"
            },
            "confirmed_at": {
              "type": "string",
              "description": "When the worked hour was confirmed according RFC 3339."
            },
            "confirmed_by": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "number",
                  "description": "Identification number within Beeple"
                },
                "first_name": {
                  "type": "string",
                  "description": "First name"
                },
                "last_name": {
                  "type": "string",
                  "description": "Last name"
                },
                "email": {
                  "type": "string",
                  "description": "Email"
                }
              },
              "required": [
                "id",
                "first_name",
                "last_name"
              ],
              "description": "The collaborator who confirmed worked hour"
            },
            "payments": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "beeple_id": {
                    "type": "string",
                    "description": "The ID of the transaction"
                  },
                  "reference": {
                    "type": "string",
                    "description": "A referece. Not guaranteed to be unique"
                  },
                  "amount": {
                    "type": "number",
                    "description": "The amount of the transaction"
                  },
                  "date_of_event": {
                    "type": "string",
                    "description": "The ISO date of the transaction"
                  },
                  "source_type": {
                    "type": "string",
                    "description": "The origin of the compensation"
                  },
                  "status": {
                    "type": "string",
                    "description": "A status indication"
                  }
                },
                "required": [
                  "beeple_id",
                  "reference",
                  "amount",
                  "date_of_event",
                  "source_type",
                  "status"
                ]
              },
              "description": "List of payments for this worked hour"
            },
            "absence_reason": {
              "type": "object",
              "properties": {
                "description": {
                  "type": "string",
                  "description": "The absence reason description"
                },
                "code": {
                  "type": "string",
                  "description": "The code assigned for the absence reason for this payroll integration"
                }
              },
              "description": "Only sent if collaborator was absent"
            }
          },
          "required": [
            "beeple_id",
            "start",
            "end",
            "duration",
            "break_duration"
          ],
          "description": "Sent regardless of the collaborator being absent"
        }
      }
    }
  ]
}
Response  200

Costs

Cost approved

This webhook is sent every time an cost (allocated premium) is approved within Beeple.

Cost approved
POST/cost-webhook-integration-url

Example URI

POST /cost-webhook-integration-url
Request
HideShow
Headers
Content-Type: application/json
Body
{
  "company": {
    "name": "My company",
    "beeple_id": "273e949a-bb41-4f36-9526-d1d0a8043c91"
  },
  "contract": {
    "beeple_id": 87643,
    "collaborator": {
      "id": 2403,
      "first_name": "John",
      "last_name": "Doe",
      "email": "John-doe@example.com"
    },
    "project": {
      "beeple_id": 31324,
      "name": "Example Project",
      "description": "Description of example project",
      "start_date": "2017-08-15",
      "end_date": "2017-09-15",
      "published": true
    },
    "subproject": {
      "beeple_id": 12412,
      "name": "Example subproject"
    },
    "team": {
      "beeple_id": 34513,
      "name": "Example Team"
    },
    "shift": {
      "beeple_id": 39512,
      "start_datetime": "2022-07-01T10:00:00Z",
      "end_datetime": "2022-07-01T15:00:00Z",
      "break_duration": "01:00"
    }
  },
  "cost": {
    "beeple_id": 87643,
    "premium": {
      "id": "454",
      "premium_type": "expense",
      "unit": "day",
      "default_calculation_type": "currency",
      "default_value premium.default_value": 45,
      "proof_mandatory premium.proof_mandatory": "Hello, world!",
      "name": "An example",
      "description": "Example description",
      "public": false,
      "volunteer_can_add": false
    },
    "name": "name",
    "description": "description",
    "code": "other",
    "amount": 1.4,
    "total": 2.5,
    "units": 1.3,
    "approved": "2017-04-01T10:10:00.000+02:00",
    "confirmed_at": "2017-04-01T10:10:00.000+02:00",
    "confirmed_by": {
      "id": 2403,
      "first_name": "John",
      "last_name": "Doe",
      "email": "John-doe@example.com"
    }
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "company": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the company (tenant). Can change and is mainly for displaying purposes"
        },
        "beeple_id": {
          "type": "string",
          "description": "The ID of the Beeple Tenant (a UUID). Will never change for a given tenant."
        }
      },
      "required": [
        "name",
        "beeple_id"
      ],
      "description": "Company that is sending this information."
    },
    "contract": {
      "type": "object",
      "properties": {
        "beeple_id": {
          "type": "number",
          "description": "Identification number within Beeple"
        },
        "collaborator": {
          "type": "object",
          "properties": {
            "id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "first_name": {
              "type": "string",
              "description": "First name"
            },
            "last_name": {
              "type": "string",
              "description": "Last name"
            },
            "email": {
              "type": "string",
              "description": "Email"
            }
          },
          "required": [
            "id",
            "first_name",
            "last_name"
          ],
          "description": "Collaborator of the contract"
        },
        "project": {
          "type": "object",
          "properties": {
            "beeple_id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "name": {
              "type": "string",
              "description": "The name of the project (max 255 characters)"
            },
            "description": {
              "type": "string",
              "description": "A description of the project"
            },
            "start_date": {
              "type": "string",
              "description": "Start date of the project in YYYY-MM-DD"
            },
            "end_date": {
              "type": "string",
              "description": "End date of the project in YYYY-MM-DD"
            },
            "published": {
              "type": "boolean",
              "description": "Indication whether the project is published"
            }
          },
          "required": [
            "beeple_id",
            "name",
            "description",
            "start_date",
            "end_date",
            "published"
          ],
          "description": "project info"
        },
        "subproject": {
          "type": "object",
          "properties": {
            "beeple_id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "name": {
              "type": "string",
              "description": "The name of the subproject"
            }
          },
          "required": [
            "beeple_id",
            "name"
          ],
          "description": "subproject info"
        },
        "team": {
          "type": "object",
          "properties": {
            "beeple_id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "name": {
              "type": "string",
              "description": "The name of the team"
            }
          },
          "required": [
            "beeple_id",
            "name"
          ],
          "description": "team info"
        },
        "shift": {
          "type": "object",
          "properties": {
            "beeple_id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "start_datetime": {
              "type": "string",
              "description": "A start time of the shift in ISO 8601 format"
            },
            "end_datetime": {
              "type": "string",
              "description": "An end time of the shift in ISO 8601 format"
            },
            "break_duration": {
              "type": "string",
              "description": "Duration of shift's break"
            }
          },
          "required": [
            "beeple_id",
            "start_datetime",
            "end_datetime",
            "break_duration"
          ],
          "description": "shift info"
        }
      },
      "required": [
        "beeple_id"
      ],
      "description": "Contract for which worked hours are reported"
    },
    "cost": {
      "type": "object",
      "properties": {
        "beeple_id": {
          "type": "number",
          "description": "Identification number within Beeple"
        },
        "premium": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "description": "ID of the premium"
            },
            "premium_type": {
              "type": "string",
              "enum": [
                "expense",
                "premium"
              ],
              "description": "The type of premium (either expense, or premium)"
            },
            "unit": {
              "type": "string",
              "enum": [
                "day",
                "hour",
                "km",
                "unit"
              ],
              "description": "How the premium is allocated"
            },
            "default_calculation_type": {
              "type": "string",
              "enum": [
                "currency"
              ],
              "description": "How the premium is calculated"
            },
            "default_value premium.default_value": {
              "type": "number",
              "description": "The default allocated value"
            },
            "proof_mandatory premium.proof_mandatory": {
              "type": "string"
            },
            "name": {
              "type": "string",
              "description": "The name"
            },
            "description": {
              "type": "string",
              "description": "The description"
            },
            "public": {
              "type": "boolean",
              "description": "If the premium is visible to the collaborator"
            },
            "volunteer_can_add": {
              "type": "boolean",
              "description": "If the cost/premium can be reported by the collaborator as unforeseen"
            }
          },
          "required": [
            "id",
            "premium_type",
            "unit",
            "default_calculation_type",
            "name",
            "description",
            "public"
          ],
          "description": "cost parameters."
        },
        "name": {
          "type": "string",
          "description": "cost name"
        },
        "description": {
          "type": "string",
          "description": "cost description"
        },
        "code": {
          "type": "string",
          "enum": [
            "other",
            "collaborator"
          ],
          "description": "Which cost is approved."
        },
        "amount": {
          "type": "number",
          "description": "amount"
        },
        "total": {
          "type": "number",
          "description": "Total amount"
        },
        "units": {
          "type": "number",
          "description": "Measurement unit"
        },
        "approved": {
          "type": "string",
          "description": "When the cost was confirmed according RFC 3339."
        },
        "confirmed_at": {
          "type": "string",
          "description": "When the cost was confirmed according RFC 3339."
        },
        "confirmed_by": {
          "type": "object",
          "properties": {
            "id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "first_name": {
              "type": "string",
              "description": "First name"
            },
            "last_name": {
              "type": "string",
              "description": "Last name"
            },
            "email": {
              "type": "string",
              "description": "Email"
            }
          },
          "required": [
            "id",
            "first_name",
            "last_name"
          ],
          "description": "Info about user who confirmed the cost"
        }
      },
      "required": [
        "beeple_id"
      ],
      "description": "Sent regardless of the collaborator being absent"
    }
  }
}
Response  200

Cost unapproved

This webhook is sent every time an cost (allocated premium) is unapproved within Beeple.

Cost unapproved
POST/cost-unapproved-webhook-integration-url

Example URI

POST /cost-unapproved-webhook-integration-url
Request
HideShow
Headers
Content-Type: application/json
Body
{
  "company": {
    "name": "My company",
    "beeple_id": "273e949a-bb41-4f36-9526-d1d0a8043c91"
  },
  "contract": {
    "beeple_id": 87643,
    "collaborator": {
      "id": 2403,
      "first_name": "John",
      "last_name": "Doe",
      "email": "John-doe@example.com"
    },
    "project": {
      "beeple_id": 31324,
      "name": "Example Project",
      "description": "Description of example project",
      "start_date": "2017-08-15",
      "end_date": "2017-09-15",
      "published": true
    },
    "subproject": {
      "beeple_id": 12412,
      "name": "Example subproject"
    },
    "team": {
      "beeple_id": 34513,
      "name": "Example Team"
    },
    "shift": {
      "beeple_id": 39512,
      "start_datetime": "2022-07-01T10:00:00Z",
      "end_datetime": "2022-07-01T15:00:00Z",
      "break_duration": "01:00"
    }
  },
  "cost": {
    "beeple_id": 87643,
    "premium": {
      "id": "454",
      "premium_type": "expense",
      "unit": "day",
      "default_calculation_type": "currency",
      "default_value premium.default_value": 45,
      "proof_mandatory premium.proof_mandatory": "Hello, world!",
      "name": "An example",
      "description": "Example description",
      "public": false,
      "volunteer_can_add": false
    },
    "name": "name",
    "description": "description",
    "code": "other",
    "amount": 1.4,
    "total": 2.5,
    "units": 1.3,
    "approved": "2017-04-01T10:10:00.000+02:00",
    "confirmed_at": "2017-04-01T10:10:00.000+02:00",
    "confirmed_by": {
      "id": 2403,
      "first_name": "John",
      "last_name": "Doe",
      "email": "John-doe@example.com"
    }
  },
  "unapproved_by": {
    "id": 2403,
    "first_name": "John",
    "last_name": "Doe",
    "email": "John-doe@example.com"
  },
  "unapproved_at": "2017-04-01T10:10:00.000+02:00"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "company": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the company (tenant). Can change and is mainly for displaying purposes"
        },
        "beeple_id": {
          "type": "string",
          "description": "The ID of the Beeple Tenant (a UUID). Will never change for a given tenant."
        }
      },
      "required": [
        "name",
        "beeple_id"
      ],
      "description": "Company that is sending this information."
    },
    "contract": {
      "type": "object",
      "properties": {
        "beeple_id": {
          "type": "number",
          "description": "Identification number within Beeple"
        },
        "collaborator": {
          "type": "object",
          "properties": {
            "id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "first_name": {
              "type": "string",
              "description": "First name"
            },
            "last_name": {
              "type": "string",
              "description": "Last name"
            },
            "email": {
              "type": "string",
              "description": "Email"
            }
          },
          "required": [
            "id",
            "first_name",
            "last_name"
          ],
          "description": "Collaborator of the contract"
        },
        "project": {
          "type": "object",
          "properties": {
            "beeple_id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "name": {
              "type": "string",
              "description": "The name of the project (max 255 characters)"
            },
            "description": {
              "type": "string",
              "description": "A description of the project"
            },
            "start_date": {
              "type": "string",
              "description": "Start date of the project in YYYY-MM-DD"
            },
            "end_date": {
              "type": "string",
              "description": "End date of the project in YYYY-MM-DD"
            },
            "published": {
              "type": "boolean",
              "description": "Indication whether the project is published"
            }
          },
          "required": [
            "beeple_id",
            "name",
            "description",
            "start_date",
            "end_date",
            "published"
          ],
          "description": "project info"
        },
        "subproject": {
          "type": "object",
          "properties": {
            "beeple_id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "name": {
              "type": "string",
              "description": "The name of the subproject"
            }
          },
          "required": [
            "beeple_id",
            "name"
          ],
          "description": "subproject info"
        },
        "team": {
          "type": "object",
          "properties": {
            "beeple_id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "name": {
              "type": "string",
              "description": "The name of the team"
            }
          },
          "required": [
            "beeple_id",
            "name"
          ],
          "description": "team info"
        },
        "shift": {
          "type": "object",
          "properties": {
            "beeple_id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "start_datetime": {
              "type": "string",
              "description": "A start time of the shift in ISO 8601 format"
            },
            "end_datetime": {
              "type": "string",
              "description": "An end time of the shift in ISO 8601 format"
            },
            "break_duration": {
              "type": "string",
              "description": "Duration of shift's break"
            }
          },
          "required": [
            "beeple_id",
            "start_datetime",
            "end_datetime",
            "break_duration"
          ],
          "description": "shift info"
        }
      },
      "required": [
        "beeple_id"
      ],
      "description": "Contract for which worked hours are reported"
    },
    "cost": {
      "type": "object",
      "properties": {
        "beeple_id": {
          "type": "number",
          "description": "Identification number within Beeple"
        },
        "premium": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "description": "ID of the premium"
            },
            "premium_type": {
              "type": "string",
              "enum": [
                "expense",
                "premium"
              ],
              "description": "The type of premium (either expense, or premium)"
            },
            "unit": {
              "type": "string",
              "enum": [
                "day",
                "hour",
                "km",
                "unit"
              ],
              "description": "How the premium is allocated"
            },
            "default_calculation_type": {
              "type": "string",
              "enum": [
                "currency"
              ],
              "description": "How the premium is calculated"
            },
            "default_value premium.default_value": {
              "type": "number",
              "description": "The default allocated value"
            },
            "proof_mandatory premium.proof_mandatory": {
              "type": "string"
            },
            "name": {
              "type": "string",
              "description": "The name"
            },
            "description": {
              "type": "string",
              "description": "The description"
            },
            "public": {
              "type": "boolean",
              "description": "If the premium is visible to the collaborator"
            },
            "volunteer_can_add": {
              "type": "boolean",
              "description": "If the cost/premium can be reported by the collaborator as unforeseen"
            }
          },
          "required": [
            "id",
            "premium_type",
            "unit",
            "default_calculation_type",
            "name",
            "description",
            "public"
          ],
          "description": "cost parameters."
        },
        "name": {
          "type": "string",
          "description": "cost name"
        },
        "description": {
          "type": "string",
          "description": "cost description"
        },
        "code": {
          "type": "string",
          "enum": [
            "other",
            "collaborator"
          ],
          "description": "Which cost is approved."
        },
        "amount": {
          "type": "number",
          "description": "amount"
        },
        "total": {
          "type": "number",
          "description": "Total amount"
        },
        "units": {
          "type": "number",
          "description": "Measurement unit"
        },
        "approved": {
          "type": "string",
          "description": "When the cost was confirmed according RFC 3339."
        },
        "confirmed_at": {
          "type": "string",
          "description": "When the cost was confirmed according RFC 3339."
        },
        "confirmed_by": {
          "type": "object",
          "properties": {
            "id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "first_name": {
              "type": "string",
              "description": "First name"
            },
            "last_name": {
              "type": "string",
              "description": "Last name"
            },
            "email": {
              "type": "string",
              "description": "Email"
            }
          },
          "required": [
            "id",
            "first_name",
            "last_name"
          ],
          "description": "Info about user who confirmed the cost"
        }
      },
      "required": [
        "beeple_id"
      ],
      "description": "Sent regardless of the collaborator being absent"
    },
    "unapproved_by": {
      "type": "object",
      "properties": {
        "id": {
          "type": "number",
          "description": "Identification number within Beeple"
        },
        "first_name": {
          "type": "string",
          "description": "First name"
        },
        "last_name": {
          "type": "string",
          "description": "Last name"
        },
        "email": {
          "type": "string",
          "description": "Email"
        }
      },
      "required": [
        "id",
        "first_name",
        "last_name"
      ],
      "description": "Admin info who unapproved worked hour"
    },
    "unapproved_at": {
      "type": "string",
      "description": "When worked hour was unapproved"
    }
  }
}
Response  200

Unplanned Cost approved

This webhook is sent every time an unplanned cost (unplanned allocated premium) is approved within Beeple.

Unplanned Cost approved
POST/unplanned_costs

Example URI

POST /unplanned_costs
Request
HideShow
Headers
Content-Type: application/json
Body
{
  "company": {
    "name": "My company",
    "beeple_id": "273e949a-bb41-4f36-9526-d1d0a8043c91"
  },
  "unplanned_cost": {
    "collaborator_id": 123,
    "premium_id": 123,
    "value": 1,
    "units": 1,
    "confirmed": true
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "company": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the company (tenant). Can change and is mainly for displaying purposes"
        },
        "beeple_id": {
          "type": "string",
          "description": "The ID of the Beeple Tenant (a UUID). Will never change for a given tenant."
        }
      },
      "required": [
        "name",
        "beeple_id"
      ],
      "description": "Company that is sending this information."
    },
    "unplanned_cost": {
      "type": "object",
      "properties": {
        "collaborator_id": {
          "type": "number",
          "description": "Identification number within Beeple"
        },
        "premium_id": {
          "type": "number",
          "description": "Identification number within Beeple"
        },
        "value": {
          "type": "number",
          "description": "Total amount"
        },
        "units": {
          "type": "number",
          "description": "Measurement unit"
        },
        "confirmed": {
          "type": "boolean",
          "description": "set to true when the unplanned cost is approved. False when rejected."
        }
      },
      "required": [
        "collaborator_id",
        "premium_id"
      ],
      "description": "Sent regardless of the collaborator being absent"
    }
  }
}
Response  200

Unplanned Cost unapproved

This webhook is sent every time an unplanned cost (unplanned allocated premium) is unapproved within Beeple.

Unplanned Cost unapproved
POST/unplanned-cost-unapproved-webhook-integration-url

Example URI

POST /unplanned-cost-unapproved-webhook-integration-url
Request
HideShow
Headers
Content-Type: application/json
Body
{
  "company": {
    "name": "My company",
    "beeple_id": "273e949a-bb41-4f36-9526-d1d0a8043c91"
  },
  "unplanned_cost": {
    "collaborator_id": 123,
    "premium_id": 123,
    "value": 1,
    "units": 1,
    "confirmed": true
  },
  "unapproved_by": {
    "id": 2403,
    "first_name": "John",
    "last_name": "Doe",
    "email": "John-doe@example.com"
  },
  "unapproved_at": "2017-04-01T10:10:00.000+02:00"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "company": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the company (tenant). Can change and is mainly for displaying purposes"
        },
        "beeple_id": {
          "type": "string",
          "description": "The ID of the Beeple Tenant (a UUID). Will never change for a given tenant."
        }
      },
      "required": [
        "name",
        "beeple_id"
      ],
      "description": "Company that is sending this information."
    },
    "unplanned_cost": {
      "type": "object",
      "properties": {
        "collaborator_id": {
          "type": "number",
          "description": "Identification number within Beeple"
        },
        "premium_id": {
          "type": "number",
          "description": "Identification number within Beeple"
        },
        "value": {
          "type": "number",
          "description": "Total amount"
        },
        "units": {
          "type": "number",
          "description": "Measurement unit"
        },
        "confirmed": {
          "type": "boolean",
          "description": "set to true when the unplanned cost is approved. False when rejected."
        }
      },
      "required": [
        "collaborator_id",
        "premium_id"
      ],
      "description": "Sent regardless of the collaborator being absent"
    },
    "unapproved_by": {
      "type": "object",
      "properties": {
        "id": {
          "type": "number",
          "description": "Identification number within Beeple"
        },
        "first_name": {
          "type": "string",
          "description": "First name"
        },
        "last_name": {
          "type": "string",
          "description": "Last name"
        },
        "email": {
          "type": "string",
          "description": "Email"
        }
      },
      "required": [
        "id",
        "first_name",
        "last_name"
      ],
      "description": "Admin info who unapproved worked hour"
    },
    "unapproved_at": {
      "type": "string",
      "description": "When worked hour was unapproved"
    }
  }
}
Response  200

Availabilities

Availability

This webhook is sent every time a availability is created/deleted/updated within Beeple

Create a availability
POST/availabilities

Example URI

POST /availabilities
Request
HideShow
Headers
Content-Type: application/json
Body
{
  "id": "1",
  "beeple_id": "1025",
  "day_part_id": "1",
  "availability_type_id": "1",
  "start": "2017-04-01T06:00:00",
  "end": "2017-04-01T14:00:00",
  "start_time": "06:00",
  "end_time": "14:00",
  "available": true,
  "id_availability_type": "5",
  "name": "Holiday",
  "description": "Holiday",
  "remark": "Comment",
  "requested_at": "2017-01-01T14:35:25",
  "requested_by": "1625",
  "confirmed_at": "2017-01-01T18:35:25",
  "status": "approved",
  "approved_by": "1665",
  "beeple_approval_status": "approved",
  "payroll_approval_status": "approved",
  "pieces_of_evidence": [
    {
      "id": "546",
      "filename": "Maternity_leave.pdf",
      "url": "https://my.beeple.eu/evidences/87234",
      "uploaded_by": {
        "id": 2403,
        "first_name": "John",
        "last_name": "Doe",
        "email": "John-doe@example.com"
      },
      "uploaded_at": "2020-04-01T19:05:00.000+02:00"
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The ID of the collaborator availability"
    },
    "beeple_id": {
      "type": "string",
      "description": "Collaborator ID of the person (un)available"
    },
    "day_part_id": {
      "type": "string",
      "description": "The id of a Day Part"
    },
    "availability_type_id": {
      "type": "string",
      "description": "The id of the Availability Type associated with this collaborator availability"
    },
    "start": {
      "type": "string",
      "description": "The start time"
    },
    "end": {
      "type": "string",
      "description": "The end time"
    },
    "start_time": {
      "type": "string",
      "description": "Time of availability start in HH:MM 24 hour format"
    },
    "end_time": {
      "type": "string",
      "description": "Time of availability end in HH:MM 24 hour format"
    },
    "available": {
      "type": "boolean",
      "description": "If the availability indicates available or unavailable"
    },
    "id_availability_type": {
      "type": "string",
      "description": "The type of Availability ID"
    },
    "name": {
      "type": "string",
      "description": "The name of the availability"
    },
    "description": {
      "type": "string",
      "description": "The description of the availability"
    },
    "remark": {
      "type": "string",
      "description": "A comment/remark given"
    },
    "requested_at": {
      "type": "string",
      "description": "The time of the creation"
    },
    "requested_by": {
      "type": "string",
      "description": "Collaborator ID of the requestor"
    },
    "confirmed_at": {
      "type": "string",
      "description": "The time of the confirmation"
    },
    "status": {
      "type": "string",
      "description": "The status"
    },
    "approved_by": {
      "type": "string",
      "description": "Collaborator ID of the approver"
    },
    "beeple_approval_status": {
      "type": "string",
      "description": "The status for the in-beeple approval"
    },
    "payroll_approval_status": {
      "type": "string",
      "description": "The status for the payroll approval"
    },
    "pieces_of_evidence": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of the evidence file"
          },
          "filename": {
            "type": "string",
            "description": "The name of the file"
          },
          "url": {
            "type": "string",
            "description": "an url where an API client my download a copy of the file. Note that this URL is only temporary valid"
          },
          "uploaded_by": {
            "type": "object",
            "properties": {
              "id": {
                "type": "number",
                "description": "Identification number within Beeple"
              },
              "first_name": {
                "type": "string",
                "description": "First name"
              },
              "last_name": {
                "type": "string",
                "description": "Last name"
              },
              "email": {
                "type": "string",
                "description": "Email"
              }
            },
            "required": [
              "id",
              "first_name",
              "last_name"
            ],
            "description": "The user who created the piece of evidence"
          },
          "uploaded_at": {
            "type": "string",
            "description": "the time stamp when the counter event was recorded according RFC 3339."
          }
        },
        "required": [
          "uploaded_at"
        ]
      }
    }
  },
  "required": [
    "id",
    "start_time",
    "end_time"
  ]
}
Response  200

Delete a availability
DELETE/availabilities

Example URI

DELETE /availabilities
Request
HideShow
Headers
Content-Type: application/json
Body
{
  "id": "1234"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "the ID of the availability"
    }
  }
}
Response  200

Modify a availability
PATCH/availabilities

Example URI

PATCH /availabilities
Request
HideShow
Headers
Content-Type: application/json
Body
{
  "id": "1",
  "beeple_id": "1025",
  "day_part_id": "1",
  "availability_type_id": "1",
  "start": "2017-04-01T06:00:00",
  "end": "2017-04-01T14:00:00",
  "start_time": "06:00",
  "end_time": "14:00",
  "available": true,
  "id_availability_type": "5",
  "name": "Holiday",
  "description": "Holiday",
  "remark": "Comment",
  "requested_at": "2017-01-01T14:35:25",
  "requested_by": "1625",
  "confirmed_at": "2017-01-01T18:35:25",
  "status": "approved",
  "approved_by": "1665",
  "beeple_approval_status": "approved",
  "payroll_approval_status": "approved",
  "pieces_of_evidence": [
    {
      "id": "546",
      "filename": "Maternity_leave.pdf",
      "url": "https://my.beeple.eu/evidences/87234",
      "uploaded_by": {
        "id": 2403,
        "first_name": "John",
        "last_name": "Doe",
        "email": "John-doe@example.com"
      },
      "uploaded_at": "2020-04-01T19:05:00.000+02:00"
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The ID of the collaborator availability"
    },
    "beeple_id": {
      "type": "string",
      "description": "Collaborator ID of the person (un)available"
    },
    "day_part_id": {
      "type": "string",
      "description": "The id of a Day Part"
    },
    "availability_type_id": {
      "type": "string",
      "description": "The id of the Availability Type associated with this collaborator availability"
    },
    "start": {
      "type": "string",
      "description": "The start time"
    },
    "end": {
      "type": "string",
      "description": "The end time"
    },
    "start_time": {
      "type": "string",
      "description": "Time of availability start in HH:MM 24 hour format"
    },
    "end_time": {
      "type": "string",
      "description": "Time of availability end in HH:MM 24 hour format"
    },
    "available": {
      "type": "boolean",
      "description": "If the availability indicates available or unavailable"
    },
    "id_availability_type": {
      "type": "string",
      "description": "The type of Availability ID"
    },
    "name": {
      "type": "string",
      "description": "The name of the availability"
    },
    "description": {
      "type": "string",
      "description": "The description of the availability"
    },
    "remark": {
      "type": "string",
      "description": "A comment/remark given"
    },
    "requested_at": {
      "type": "string",
      "description": "The time of the creation"
    },
    "requested_by": {
      "type": "string",
      "description": "Collaborator ID of the requestor"
    },
    "confirmed_at": {
      "type": "string",
      "description": "The time of the confirmation"
    },
    "status": {
      "type": "string",
      "description": "The status"
    },
    "approved_by": {
      "type": "string",
      "description": "Collaborator ID of the approver"
    },
    "beeple_approval_status": {
      "type": "string",
      "description": "The status for the in-beeple approval"
    },
    "payroll_approval_status": {
      "type": "string",
      "description": "The status for the payroll approval"
    },
    "pieces_of_evidence": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of the evidence file"
          },
          "filename": {
            "type": "string",
            "description": "The name of the file"
          },
          "url": {
            "type": "string",
            "description": "an url where an API client my download a copy of the file. Note that this URL is only temporary valid"
          },
          "uploaded_by": {
            "type": "object",
            "properties": {
              "id": {
                "type": "number",
                "description": "Identification number within Beeple"
              },
              "first_name": {
                "type": "string",
                "description": "First name"
              },
              "last_name": {
                "type": "string",
                "description": "Last name"
              },
              "email": {
                "type": "string",
                "description": "Email"
              }
            },
            "required": [
              "id",
              "first_name",
              "last_name"
            ],
            "description": "The user who created the piece of evidence"
          },
          "uploaded_at": {
            "type": "string",
            "description": "the time stamp when the counter event was recorded according RFC 3339."
          }
        },
        "required": [
          "uploaded_at"
        ]
      }
    }
  },
  "required": [
    "id",
    "start_time",
    "end_time"
  ]
}
Response  200

Teams

Team

This webhook is sent every time a team is created/deleted/updated within Beeple

Beeple servers send a webhook when event happens to the specified integration url. Admins has ability to configure the specified integration url in the Admin Settings -> Modules -> Integrations section by adding an integration with a selected type and url so that Beeple could send HTTP request to the URL they specify.

Team is created
POST/teams-integration-url

Example URI

POST /teams-integration-url
Request
HideShow
Headers
Content-Type: application/json
Body
{
  "company": {
    "name": "My company",
    "beeple_id": "273e949a-bb41-4f36-9526-d1d0a8043c91"
  },
  "team": {
    "id": "2244",
    "name": "Example Team",
    "project": {
      "beeple_id": 31324,
      "name": "Example Project",
      "description": "Description of example project",
      "start_date": "2017-08-15",
      "end_date": "2017-09-15",
      "published": true
    },
    "volunteers_needed": "1",
    "work_location_id": "volunteer",
    "client_id": "volunteer",
    "department_id": "volunteer",
    "contract_type": "volunteer",
    "function": {
      "beeple_id": 39512,
      "name": "Example function",
      "description": "Some function description"
    },
    "shifts": [
      {
        "beeple_id": 39512,
        "start_datetime": "2022-07-01T10:00:00Z",
        "end_datetime": "2022-07-01T15:00:00Z",
        "break_duration": "01:00"
      }
    ],
    "created_by": {
      "id": 2403,
      "first_name": "John",
      "last_name": "Doe",
      "email": "John-doe@example.com"
    },
    "created": "2022-06-21T13:59:27Z",
    "updated_by": {
      "id": 2403,
      "first_name": "John",
      "last_name": "Doe",
      "email": "John-doe@example.com"
    },
    "updated": "2022-06-21T13:59:27Z"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "company": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the company (tenant). Can change and is mainly for displaying purposes"
        },
        "beeple_id": {
          "type": "string",
          "description": "The ID of the Beeple Tenant (a UUID). Will never change for a given tenant."
        }
      },
      "required": [
        "name",
        "beeple_id"
      ],
      "description": "Company that is sending this information."
    },
    "team": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "The ID of the team"
        },
        "name": {
          "type": "string",
          "description": "The name of the team"
        },
        "project": {
          "type": "object",
          "properties": {
            "beeple_id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "name": {
              "type": "string",
              "description": "The name of the project (max 255 characters)"
            },
            "description": {
              "type": "string",
              "description": "A description of the project"
            },
            "start_date": {
              "type": "string",
              "description": "Start date of the project in YYYY-MM-DD"
            },
            "end_date": {
              "type": "string",
              "description": "End date of the project in YYYY-MM-DD"
            },
            "published": {
              "type": "boolean",
              "description": "Indication whether the project is published"
            }
          },
          "required": [
            "beeple_id",
            "name",
            "description",
            "start_date",
            "end_date",
            "published"
          ]
        },
        "volunteers_needed": {
          "type": "string",
          "description": "Amount of collaborators needed"
        },
        "work_location_id": {
          "type": "string",
          "description": "Workstation id"
        },
        "client_id": {
          "type": "string",
          "description": "Customer id (customer module)"
        },
        "department_id": {
          "type": "string",
          "description": "Department id (of the project)"
        },
        "contract_type": {
          "type": "string",
          "description": "Contract type of the team"
        },
        "function": {
          "type": "object",
          "properties": {
            "beeple_id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "name": {
              "type": "string",
              "description": "The name of the function"
            },
            "description": {
              "type": "string",
              "description": "The description of the function"
            }
          },
          "required": [
            "beeple_id",
            "name",
            "description"
          ]
        },
        "shifts": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "beeple_id": {
                "type": "number",
                "description": "Identification number within Beeple"
              },
              "start_datetime": {
                "type": "string",
                "description": "A start time of the shift in ISO 8601 format"
              },
              "end_datetime": {
                "type": "string",
                "description": "An end time of the shift in ISO 8601 format"
              },
              "break_duration": {
                "type": "string",
                "description": "Duration of shift's break"
              }
            },
            "required": [
              "beeple_id",
              "start_datetime",
              "end_datetime",
              "break_duration"
            ]
          },
          "description": "Team shifts"
        },
        "created_by": {
          "type": "object",
          "properties": {
            "id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "first_name": {
              "type": "string",
              "description": "First name"
            },
            "last_name": {
              "type": "string",
              "description": "Last name"
            },
            "email": {
              "type": "string",
              "description": "Email"
            }
          },
          "required": [
            "id",
            "first_name",
            "last_name"
          ],
          "description": "The user who created the team"
        },
        "created": {
          "type": "string",
          "description": "Time of when team was created in ISO 8601 format"
        },
        "updated_by": {
          "type": "object",
          "properties": {
            "id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "first_name": {
              "type": "string",
              "description": "First name"
            },
            "last_name": {
              "type": "string",
              "description": "Last name"
            },
            "email": {
              "type": "string",
              "description": "Email"
            }
          },
          "required": [
            "id",
            "first_name",
            "last_name"
          ],
          "description": "The user who updated the team"
        },
        "updated": {
          "type": "string",
          "description": "Time of when team was updated in ISO 8601 format"
        }
      },
      "required": [
        "id",
        "name",
        "volunteers_needed",
        "work_location_id",
        "client_id",
        "department_id",
        "contract_type",
        "created",
        "updated"
      ],
      "description": "Details of the team"
    }
  }
}
Response  200

Team is deleted
DELETE/teams-integration-url

Example URI

DELETE /teams-integration-url
Request
HideShow
Headers
Content-Type: application/json
Body
{
  "company": {
    "name": "My company",
    "beeple_id": "273e949a-bb41-4f36-9526-d1d0a8043c91"
  },
  "team": {
    "id": "2244",
    "updated": "2022-06-21T13:59:27Z",
    "project": {
      "beeple_id": 31324,
      "name": "Example Project",
      "description": "Description of example project",
      "start_date": "2017-08-15",
      "end_date": "2017-09-15",
      "published": true
    },
    "subproject": {
      "beeple_id": 12412,
      "name": "Example subproject"
    },
    "shifts": [
      {
        "beeple_id": 39512,
        "start_datetime": "2022-07-01T10:00:00Z",
        "end_datetime": "2022-07-01T15:00:00Z",
        "break_duration": "01:00"
      }
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "company": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the company (tenant). Can change and is mainly for displaying purposes"
        },
        "beeple_id": {
          "type": "string",
          "description": "The ID of the Beeple Tenant (a UUID). Will never change for a given tenant."
        }
      },
      "required": [
        "name",
        "beeple_id"
      ],
      "description": "Company that is sending this information."
    },
    "team": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "The ID of the team"
        },
        "updated": {
          "type": "string",
          "description": "Time of when team was deleted in ISO 8601 format"
        },
        "project": {
          "type": "object",
          "properties": {
            "beeple_id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "name": {
              "type": "string",
              "description": "The name of the project (max 255 characters)"
            },
            "description": {
              "type": "string",
              "description": "A description of the project"
            },
            "start_date": {
              "type": "string",
              "description": "Start date of the project in YYYY-MM-DD"
            },
            "end_date": {
              "type": "string",
              "description": "End date of the project in YYYY-MM-DD"
            },
            "published": {
              "type": "boolean",
              "description": "Indication whether the project is published"
            }
          },
          "required": [
            "beeple_id",
            "name",
            "description",
            "start_date",
            "end_date",
            "published"
          ]
        },
        "subproject": {
          "type": "object",
          "properties": {
            "beeple_id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "name": {
              "type": "string",
              "description": "The name of the subproject"
            }
          },
          "required": [
            "beeple_id",
            "name"
          ]
        },
        "shifts": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "beeple_id": {
                "type": "number",
                "description": "Identification number within Beeple"
              },
              "start_datetime": {
                "type": "string",
                "description": "A start time of the shift in ISO 8601 format"
              },
              "end_datetime": {
                "type": "string",
                "description": "An end time of the shift in ISO 8601 format"
              },
              "break_duration": {
                "type": "string",
                "description": "Duration of shift's break"
              }
            },
            "required": [
              "beeple_id",
              "start_datetime",
              "end_datetime",
              "break_duration"
            ]
          },
          "description": "Team shifts"
        }
      },
      "required": [
        "id",
        "updated"
      ]
    }
  }
}
Response  200

Team is updated
PATCH/teams-integration-url

Example URI

PATCH /teams-integration-url
Request
HideShow
Headers
Content-Type: application/json
Body
{
  "company": {
    "name": "My company",
    "beeple_id": "273e949a-bb41-4f36-9526-d1d0a8043c91"
  },
  "team": {
    "id": "2244",
    "name": "Example Team",
    "project": {
      "beeple_id": 31324,
      "name": "Example Project",
      "description": "Description of example project",
      "start_date": "2017-08-15",
      "end_date": "2017-09-15",
      "published": true
    },
    "volunteers_needed": "1",
    "work_location_id": "volunteer",
    "client_id": "volunteer",
    "department_id": "volunteer",
    "contract_type": "volunteer",
    "function": {
      "beeple_id": 39512,
      "name": "Example function",
      "description": "Some function description"
    },
    "shifts": [
      {
        "beeple_id": 39512,
        "start_datetime": "2022-07-01T10:00:00Z",
        "end_datetime": "2022-07-01T15:00:00Z",
        "break_duration": "01:00"
      }
    ],
    "created_by": {
      "id": 2403,
      "first_name": "John",
      "last_name": "Doe",
      "email": "John-doe@example.com"
    },
    "created": "2022-06-21T13:59:27Z",
    "updated_by": {
      "id": 2403,
      "first_name": "John",
      "last_name": "Doe",
      "email": "John-doe@example.com"
    },
    "updated": "2022-06-21T13:59:27Z"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "company": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the company (tenant). Can change and is mainly for displaying purposes"
        },
        "beeple_id": {
          "type": "string",
          "description": "The ID of the Beeple Tenant (a UUID). Will never change for a given tenant."
        }
      },
      "required": [
        "name",
        "beeple_id"
      ],
      "description": "Company that is sending this information."
    },
    "team": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "The ID of the team"
        },
        "name": {
          "type": "string",
          "description": "The name of the team"
        },
        "project": {
          "type": "object",
          "properties": {
            "beeple_id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "name": {
              "type": "string",
              "description": "The name of the project (max 255 characters)"
            },
            "description": {
              "type": "string",
              "description": "A description of the project"
            },
            "start_date": {
              "type": "string",
              "description": "Start date of the project in YYYY-MM-DD"
            },
            "end_date": {
              "type": "string",
              "description": "End date of the project in YYYY-MM-DD"
            },
            "published": {
              "type": "boolean",
              "description": "Indication whether the project is published"
            }
          },
          "required": [
            "beeple_id",
            "name",
            "description",
            "start_date",
            "end_date",
            "published"
          ]
        },
        "volunteers_needed": {
          "type": "string",
          "description": "Amount of collaborators needed"
        },
        "work_location_id": {
          "type": "string",
          "description": "Workstation id"
        },
        "client_id": {
          "type": "string",
          "description": "Customer id (customer module)"
        },
        "department_id": {
          "type": "string",
          "description": "Department id (of the project)"
        },
        "contract_type": {
          "type": "string",
          "description": "Contract type of the team"
        },
        "function": {
          "type": "object",
          "properties": {
            "beeple_id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "name": {
              "type": "string",
              "description": "The name of the function"
            },
            "description": {
              "type": "string",
              "description": "The description of the function"
            }
          },
          "required": [
            "beeple_id",
            "name",
            "description"
          ]
        },
        "shifts": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "beeple_id": {
                "type": "number",
                "description": "Identification number within Beeple"
              },
              "start_datetime": {
                "type": "string",
                "description": "A start time of the shift in ISO 8601 format"
              },
              "end_datetime": {
                "type": "string",
                "description": "An end time of the shift in ISO 8601 format"
              },
              "break_duration": {
                "type": "string",
                "description": "Duration of shift's break"
              }
            },
            "required": [
              "beeple_id",
              "start_datetime",
              "end_datetime",
              "break_duration"
            ]
          },
          "description": "Team shifts"
        },
        "created_by": {
          "type": "object",
          "properties": {
            "id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "first_name": {
              "type": "string",
              "description": "First name"
            },
            "last_name": {
              "type": "string",
              "description": "Last name"
            },
            "email": {
              "type": "string",
              "description": "Email"
            }
          },
          "required": [
            "id",
            "first_name",
            "last_name"
          ],
          "description": "The user who created the team"
        },
        "created": {
          "type": "string",
          "description": "Time of when team was created in ISO 8601 format"
        },
        "updated_by": {
          "type": "object",
          "properties": {
            "id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "first_name": {
              "type": "string",
              "description": "First name"
            },
            "last_name": {
              "type": "string",
              "description": "Last name"
            },
            "email": {
              "type": "string",
              "description": "Email"
            }
          },
          "required": [
            "id",
            "first_name",
            "last_name"
          ],
          "description": "The user who updated the team"
        },
        "updated": {
          "type": "string",
          "description": "Time of when team was updated in ISO 8601 format"
        }
      },
      "required": [
        "id",
        "name",
        "volunteers_needed",
        "work_location_id",
        "client_id",
        "department_id",
        "contract_type",
        "created",
        "updated"
      ],
      "description": "Details of the team"
    }
  }
}
Response  200

Team Invitations

Beeple servers send a webhook when event happens to the specified integration url. Admins has ability to configure the specified integration url in the Admin Settings -> Modules -> Integrations section by adding an integration with a selected type and url so that Beeple could send HTTP request to the URL they specify.

Team invitation created

This webhook is sent every time a team invitation is created within Beeple

Team invitation is created
POST/team-invitations-created-integration-url

Example URI

POST /team-invitations-created-integration-url
Request
HideShow
Headers
Content-Type: application/json
Body
{
  "company": {
    "name": "My company",
    "beeple_id": "273e949a-bb41-4f36-9526-d1d0a8043c91"
  },
  "team_invitation": {
    "id": "123",
    "collaborator": {
      "id": 2403,
      "first_name": "John",
      "last_name": "Doe",
      "email": "John-doe@example.com"
    },
    "team_id": "123",
    "accepted": false,
    "sent_at": "2025-04-10",
    "expires_at": "2025-04-10"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "company": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the company (tenant). Can change and is mainly for displaying purposes"
        },
        "beeple_id": {
          "type": "string",
          "description": "The ID of the Beeple Tenant (a UUID). Will never change for a given tenant."
        }
      },
      "required": [
        "name",
        "beeple_id"
      ],
      "description": "Company that is sending this information."
    },
    "team_invitation": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "The ID of the team invitation"
        },
        "collaborator": {
          "type": "object",
          "properties": {
            "id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "first_name": {
              "type": "string",
              "description": "First name"
            },
            "last_name": {
              "type": "string",
              "description": "Last name"
            },
            "email": {
              "type": "string",
              "description": "Email"
            }
          },
          "required": [
            "id",
            "first_name",
            "last_name"
          ],
          "description": "The collaborator receiving the team invitation"
        },
        "team_id": {
          "type": "string",
          "description": "The ID of the team the invitation is for"
        },
        "accepted": {
          "type": "boolean",
          "description": "Indicates if the invitation has been accepted or not"
        },
        "sent_at": {
          "type": "string",
          "description": "Date when the invitation was sent to the collaborator"
        },
        "expires_at": {
          "type": "string",
          "description": "Expiration date of the invitation"
        }
      },
      "required": [
        "id",
        "team_id",
        "sent_at",
        "expires_at"
      ],
      "description": "Details of the team invitation."
    }
  }
}
Response  200

Team invitation resent

This webhook is sent every time a team invitation is resent within Beeple

Team invitation is resent
POST/team-invitations-resent-integration-url

Example URI

POST /team-invitations-resent-integration-url
Request
HideShow
Headers
Content-Type: application/json
Body
{
  "company": {
    "name": "My company",
    "beeple_id": "273e949a-bb41-4f36-9526-d1d0a8043c91"
  },
  "team_invitation": {
    "id": "123",
    "collaborator": {
      "id": 2403,
      "first_name": "John",
      "last_name": "Doe",
      "email": "John-doe@example.com"
    },
    "team_id": "123",
    "accepted": false,
    "sent_at": "2025-04-10",
    "expires_at": "2025-04-10"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "company": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the company (tenant). Can change and is mainly for displaying purposes"
        },
        "beeple_id": {
          "type": "string",
          "description": "The ID of the Beeple Tenant (a UUID). Will never change for a given tenant."
        }
      },
      "required": [
        "name",
        "beeple_id"
      ],
      "description": "Company that is sending this information."
    },
    "team_invitation": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "The ID of the team invitation"
        },
        "collaborator": {
          "type": "object",
          "properties": {
            "id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "first_name": {
              "type": "string",
              "description": "First name"
            },
            "last_name": {
              "type": "string",
              "description": "Last name"
            },
            "email": {
              "type": "string",
              "description": "Email"
            }
          },
          "required": [
            "id",
            "first_name",
            "last_name"
          ],
          "description": "The collaborator receiving the team invitation"
        },
        "team_id": {
          "type": "string",
          "description": "The ID of the team the invitation is for"
        },
        "accepted": {
          "type": "boolean",
          "description": "Indicates if the invitation has been accepted or not"
        },
        "sent_at": {
          "type": "string",
          "description": "Date when the invitation was sent to the collaborator"
        },
        "expires_at": {
          "type": "string",
          "description": "Expiration date of the invitation"
        }
      },
      "required": [
        "id",
        "team_id",
        "sent_at",
        "expires_at"
      ],
      "description": "Details of the team invitation."
    }
  }
}
Response  200

Subprojects

Subproject

This webhook is sent every time a subproject is created/deleted/updated within Beeple

Beeple servers send a webhook when event happens to the specified integration url. Admins has ability to configure the specified integration url in the Admin Settings -> Modules -> Integrations section by adding an integration with a selected type and url so that Beeple could send HTTP request to the URL they specify.

Subproject is created
POST/subprojects-integration-url

Example URI

POST /subprojects-integration-url
Request
HideShow
Headers
Content-Type: application/json
Body
{
  "company": {
    "name": "My company",
    "beeple_id": "273e949a-bb41-4f36-9526-d1d0a8043c91"
  },
  "subproject": {
    "id": "2244",
    "name": "Example subproject",
    "project": {
      "id": "2244",
      "name": "Example project",
      "description": "Description of example project"
    },
    "start_date": "2005-10-21",
    "end_date": "2100-10-27",
    "teams_are_published_by_default": false,
    "default_number_of_collaborators": "1",
    "registrations_count": "0",
    "volunteers_needed": "2",
    "created_by": {
      "id": 2403,
      "first_name": "John",
      "last_name": "Doe",
      "email": "John-doe@example.com"
    },
    "created": "2022-06-21T13:59:27Z",
    "updated_by": {
      "id": 2403,
      "first_name": "John",
      "last_name": "Doe",
      "email": "John-doe@example.com"
    },
    "updated": "2022-06-21T13:59:27Z"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "company": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the company (tenant). Can change and is mainly for displaying purposes"
        },
        "beeple_id": {
          "type": "string",
          "description": "The ID of the Beeple Tenant (a UUID). Will never change for a given tenant."
        }
      },
      "required": [
        "name",
        "beeple_id"
      ],
      "description": "Company that is sending this information."
    },
    "subproject": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "The ID of the subproject"
        },
        "name": {
          "type": "string",
          "description": "The name of the subproject"
        },
        "project": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "description": "The ID of the project"
            },
            "name": {
              "type": "string",
              "description": "A name of the project"
            },
            "description": {
              "type": "string",
              "description": "A description of the project"
            }
          },
          "required": [
            "id",
            "name",
            "description"
          ]
        },
        "start_date": {
          "type": "string",
          "description": "Start date of the subproject"
        },
        "end_date": {
          "type": "string",
          "description": "End date of the subproject"
        },
        "teams_are_published_by_default": {
          "type": "boolean",
          "description": "Indicates whether teams are published by default or not"
        },
        "default_number_of_collaborators": {
          "type": "string",
          "description": "Numbers of collaborators set by default"
        },
        "registrations_count": {
          "type": "string",
          "description": "Number of registrations"
        },
        "volunteers_needed": {
          "type": "string",
          "description": "Number of needed volunteers"
        },
        "created_by": {
          "type": "object",
          "properties": {
            "id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "first_name": {
              "type": "string",
              "description": "First name"
            },
            "last_name": {
              "type": "string",
              "description": "Last name"
            },
            "email": {
              "type": "string",
              "description": "Email"
            }
          },
          "required": [
            "id",
            "first_name",
            "last_name"
          ],
          "description": "The user who created the subproject"
        },
        "created": {
          "type": "string",
          "description": "Time of when subproject was created in ISO 8601 format"
        },
        "updated_by": {
          "type": "object",
          "properties": {
            "id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "first_name": {
              "type": "string",
              "description": "First name"
            },
            "last_name": {
              "type": "string",
              "description": "Last name"
            },
            "email": {
              "type": "string",
              "description": "Email"
            }
          },
          "required": [
            "id",
            "first_name",
            "last_name"
          ],
          "description": "The user who updated the subproject"
        },
        "updated": {
          "type": "string",
          "description": "Time of when subproject was updated in ISO 8601 format"
        }
      },
      "required": [
        "id",
        "name",
        "start_date",
        "end_date",
        "teams_are_published_by_default",
        "registrations_count",
        "volunteers_needed",
        "created",
        "updated"
      ],
      "description": "Details of the subproject"
    }
  }
}
Response  200

Subproject is deleted
DELETE/subprojects-integration-url

Example URI

DELETE /subprojects-integration-url
Request
HideShow
Headers
Content-Type: application/json
Body
{
  "company": {
    "name": "My company",
    "beeple_id": "273e949a-bb41-4f36-9526-d1d0a8043c91"
  },
  "subproject": {
    "id": "2244",
    "updated": "2022-06-21T13:59:27Z"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "company": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the company (tenant). Can change and is mainly for displaying purposes"
        },
        "beeple_id": {
          "type": "string",
          "description": "The ID of the Beeple Tenant (a UUID). Will never change for a given tenant."
        }
      },
      "required": [
        "name",
        "beeple_id"
      ],
      "description": "Company that is sending this information."
    },
    "subproject": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "The ID of the subproject"
        },
        "updated": {
          "type": "string",
          "description": "Time of when subproject was deleted in ISO 8601 format"
        }
      },
      "required": [
        "id",
        "updated"
      ]
    }
  }
}
Response  200

Subproject is updated
PATCH/subprojects-integration-url

Example URI

PATCH /subprojects-integration-url
Request
HideShow
Headers
Content-Type: application/json
Body
{
  "company": {
    "name": "My company",
    "beeple_id": "273e949a-bb41-4f36-9526-d1d0a8043c91"
  },
  "subproject": {
    "id": "2244",
    "name": "Example subproject",
    "project": {
      "id": "2244",
      "name": "Example project",
      "description": "Description of example project"
    },
    "start_date": "2005-10-21",
    "end_date": "2100-10-27",
    "teams_are_published_by_default": false,
    "default_number_of_collaborators": "1",
    "registrations_count": "0",
    "volunteers_needed": "2",
    "created_by": {
      "id": 2403,
      "first_name": "John",
      "last_name": "Doe",
      "email": "John-doe@example.com"
    },
    "created": "2022-06-21T13:59:27Z",
    "updated_by": {
      "id": 2403,
      "first_name": "John",
      "last_name": "Doe",
      "email": "John-doe@example.com"
    },
    "updated": "2022-06-21T13:59:27Z"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "company": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the company (tenant). Can change and is mainly for displaying purposes"
        },
        "beeple_id": {
          "type": "string",
          "description": "The ID of the Beeple Tenant (a UUID). Will never change for a given tenant."
        }
      },
      "required": [
        "name",
        "beeple_id"
      ],
      "description": "Company that is sending this information."
    },
    "subproject": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "The ID of the subproject"
        },
        "name": {
          "type": "string",
          "description": "The name of the subproject"
        },
        "project": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "description": "The ID of the project"
            },
            "name": {
              "type": "string",
              "description": "A name of the project"
            },
            "description": {
              "type": "string",
              "description": "A description of the project"
            }
          },
          "required": [
            "id",
            "name",
            "description"
          ]
        },
        "start_date": {
          "type": "string",
          "description": "Start date of the subproject"
        },
        "end_date": {
          "type": "string",
          "description": "End date of the subproject"
        },
        "teams_are_published_by_default": {
          "type": "boolean",
          "description": "Indicates whether teams are published by default or not"
        },
        "default_number_of_collaborators": {
          "type": "string",
          "description": "Numbers of collaborators set by default"
        },
        "registrations_count": {
          "type": "string",
          "description": "Number of registrations"
        },
        "volunteers_needed": {
          "type": "string",
          "description": "Number of needed volunteers"
        },
        "created_by": {
          "type": "object",
          "properties": {
            "id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "first_name": {
              "type": "string",
              "description": "First name"
            },
            "last_name": {
              "type": "string",
              "description": "Last name"
            },
            "email": {
              "type": "string",
              "description": "Email"
            }
          },
          "required": [
            "id",
            "first_name",
            "last_name"
          ],
          "description": "The user who created the subproject"
        },
        "created": {
          "type": "string",
          "description": "Time of when subproject was created in ISO 8601 format"
        },
        "updated_by": {
          "type": "object",
          "properties": {
            "id": {
              "type": "number",
              "description": "Identification number within Beeple"
            },
            "first_name": {
              "type": "string",
              "description": "First name"
            },
            "last_name": {
              "type": "string",
              "description": "Last name"
            },
            "email": {
              "type": "string",
              "description": "Email"
            }
          },
          "required": [
            "id",
            "first_name",
            "last_name"
          ],
          "description": "The user who updated the subproject"
        },
        "updated": {
          "type": "string",
          "description": "Time of when subproject was updated in ISO 8601 format"
        }
      },
      "required": [
        "id",
        "name",
        "start_date",
        "end_date",
        "teams_are_published_by_default",
        "registrations_count",
        "volunteers_needed",
        "created",
        "updated"
      ],
      "description": "Details of the subproject"
    }
  }
}
Response  200

Candidacies

Candidacy

This webhook is sent every time a candidacy is:

  • created

  • accepted

  • rejected

  • deleted

Beeple servers send a webhook when event happens to the specified integration url. Admins has ability to configure the specified integration url in the Admin Settings -> Modules -> Integrations section by adding an integration with a selected type and url so that Beeple could send HTTP request to the URL they specify.

Candidacy is created
POST/candidacies-integration-url

Example URI

POST /candidacies-integration-url
Request
HideShow
Headers
Content-Type: application/json
Body
{
  "company": {
    "name": "My company",
    "beeple_id": "273e949a-bb41-4f36-9526-d1d0a8043c91"
  },
  "candidacy": {
    "id": "2244",
    "status": "waiting",
    "comment": "Test comment",
    "contract_type": "interim",
    "team": {
      "id": "2244",
      "name": "Example team"
    },
    "collaborator": {
      "id": "2244",
      "name": "John Doe"
    },
    "updated": "2022-06-21T13:59:27Z"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "company": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the company (tenant). Can change and is mainly for displaying purposes"
        },
        "beeple_id": {
          "type": "string",
          "description": "The ID of the Beeple Tenant (a UUID). Will never change for a given tenant."
        }
      },
      "required": [
        "name",
        "beeple_id"
      ],
      "description": "Company that is sending this information."
    },
    "candidacy": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "The ID of the candidacy"
        },
        "status": {
          "type": "string",
          "enum": [
            "waiting",
            "standby",
            "accepted",
            "rejected",
            "cancelled"
          ],
          "description": "The type of the current status of the candidacy"
        },
        "comment": {
          "type": "string",
          "description": "The comment subbmited by volunteer with the candidacy"
        },
        "contract_type": {
          "type": "string",
          "enum": [
            "interim",
            "freelancer",
            "intern",
            "contractual",
            "volunteer"
          ],
          "description": "The type of contract"
        },
        "team": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "description": "The ID of the team"
            },
            "name": {
              "type": "string",
              "description": "A name of the team"
            }
          },
          "required": [
            "id",
            "name"
          ]
        },
        "collaborator": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "description": "The ID of the collaborator"
            },
            "name": {
              "type": "string",
              "description": "Collaborator's name"
            }
          },
          "required": [
            "id",
            "name"
          ]
        },
        "updated": {
          "type": "string",
          "description": "Time of when subproject was updated in ISO 8601 format"
        }
      },
      "required": [
        "id",
        "status",
        "updated"
      ],
      "description": "Details of the candidacy"
    }
  }
}
Response  200

Candidacy is updated (accepted or rejected)
PATCH/candidacies-integration-url

Example URI

PATCH /candidacies-integration-url
Request  candidacy is accepted
HideShow
Headers
Content-Type: application/json
Body
{
  "company": {
    "name": "My company",
    "beeple_id": "273e949a-bb41-4f36-9526-d1d0a8043c91"
  },
  "candidacy": {
    "id": "2244",
    "status": "waiting",
    "comment": "Test comment",
    "contract_type": "interim",
    "team": {
      "id": "2244",
      "name": "Example team"
    },
    "collaborator": {
      "id": "2244",
      "name": "John Doe"
    },
    "updated": "2022-06-21T13:59:27Z"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "company": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the company (tenant). Can change and is mainly for displaying purposes"
        },
        "beeple_id": {
          "type": "string",
          "description": "The ID of the Beeple Tenant (a UUID). Will never change for a given tenant."
        }
      },
      "required": [
        "name",
        "beeple_id"
      ],
      "description": "Company that is sending this information."
    },
    "candidacy": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "The ID of the candidacy"
        },
        "status": {
          "type": "string",
          "enum": [
            "waiting",
            "standby",
            "accepted",
            "rejected",
            "cancelled"
          ],
          "description": "The type of the current status of the candidacy"
        },
        "comment": {
          "type": "string",
          "description": "The comment subbmited by volunteer with the candidacy"
        },
        "contract_type": {
          "type": "string",
          "enum": [
            "interim",
            "freelancer",
            "intern",
            "contractual",
            "volunteer"
          ],
          "description": "The type of contract"
        },
        "team": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "description": "The ID of the team"
            },
            "name": {
              "type": "string",
              "description": "A name of the team"
            }
          },
          "required": [
            "id",
            "name"
          ]
        },
        "collaborator": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "description": "The ID of the collaborator"
            },
            "name": {
              "type": "string",
              "description": "Collaborator's name"
            }
          },
          "required": [
            "id",
            "name"
          ]
        },
        "updated": {
          "type": "string",
          "description": "Time of when subproject was updated in ISO 8601 format"
        }
      },
      "required": [
        "id",
        "status",
        "updated"
      ],
      "description": "Details of the candidacy"
    }
  }
}
Response  200
Request  candidacy is rejected
HideShow
Headers
Content-Type: application/json
Body
{
  "company": {
    "name": "My company",
    "beeple_id": "273e949a-bb41-4f36-9526-d1d0a8043c91"
  },
  "candidacy": {
    "id": "2244",
    "status": "rejected",
    "reject_reason": "Test reason",
    "reject_remark": "Test remark",
    "updated": "2022-06-21T13:59:27Z"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "company": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the company (tenant). Can change and is mainly for displaying purposes"
        },
        "beeple_id": {
          "type": "string",
          "description": "The ID of the Beeple Tenant (a UUID). Will never change for a given tenant."
        }
      },
      "required": [
        "name",
        "beeple_id"
      ],
      "description": "Company that is sending this information."
    },
    "candidacy": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "The ID of the candidacy"
        },
        "status": {
          "type": "string",
          "description": "The type of the current status of the candidacy"
        },
        "reject_reason": {
          "type": "string",
          "description": "Field contains a reason from admin why it was rejected"
        },
        "reject_remark": {
          "type": "string",
          "description": "Field contains admin remark submitted during rejection"
        },
        "updated": {
          "type": "string",
          "description": "Time of when subproject was updated in ISO 8601 format"
        }
      },
      "required": [
        "id",
        "status",
        "updated"
      ],
      "description": "Details of the candidacy which was rejected"
    }
  }
}
Response  200

Candidacy is cancelled
DELETE/candidacies-integration-url

Example URI

DELETE /candidacies-integration-url
Request
HideShow
Headers
Content-Type: application/json
Body
{
  "company": {
    "name": "My company",
    "beeple_id": "273e949a-bb41-4f36-9526-d1d0a8043c91"
  },
  "candidacy": {
    "id": "2244",
    "status": "cancelled",
    "updated": "2022-06-21T13:59:27Z"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "company": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the company (tenant). Can change and is mainly for displaying purposes"
        },
        "beeple_id": {
          "type": "string",
          "description": "The ID of the Beeple Tenant (a UUID). Will never change for a given tenant."
        }
      },
      "required": [
        "name",
        "beeple_id"
      ],
      "description": "Company that is sending this information."
    },
    "candidacy": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "The ID of the candidacy"
        },
        "status": {
          "type": "string",
          "description": "The type of the current status of the candidacy"
        },
        "updated": {
          "type": "string",
          "description": "Time of when subproject was updated in ISO 8601 format"
        }
      },
      "required": [
        "id",
        "status",
        "updated"
      ],
      "description": "Details of the candidacy which was cancelled"
    }
  }
}
Response  200

Generated by aglio on 01 Aug 2025