Mendato API

API Reference for Mendato API

Terms of Service

https://www.mendato.com/agb

API Endpoints
https://api.mendato.com/graphql
Version

1.4.0

Queries

absenceTypes

Description

The company's available absence types with label, paid flag and whether they deduct from the vacation quota.

Response

Returns [AbsenceTypeDefinition!]!

Example

Query
query absenceTypes {
  absenceTypes {
    type
    label
    paid
    deductsFromVacationQuota
  }
}
Response
{
  "data": {
    "absenceTypes": [
      {
        "type": "VACATION",
        "label": "xyz789",
        "paid": false,
        "deductsFromVacationQuota": false
      }
    ]
  }
}

company

Description

Master data of the authenticated company (the API token's company).

Response

Returns a Company

Example

Query
query company {
  company {
    id
    companyName
    legalForm
    streetAddress
    zip
    city
    country
    language
    currency
    taxNumber
    vatId
    email
    phone
    fax
    website
    iban
    bic
    registerCourt
    companyRegistrationNumber
    managingDirectors {
      ...ManagingDirectorFragment
    }
    logoUrl
    createdAt
  }
}
Response
{
  "data": {
    "company": {
      "id": "4",
      "companyName": "abc123",
      "legalForm": "DE_EINZELUNTERNEHMER",
      "streetAddress": "xyz789",
      "zip": "xyz789",
      "city": "abc123",
      "country": "US",
      "language": LanguageTag,
      "currency": CurrencyCode,
      "taxNumber": "xyz789",
      "vatId": "abc123",
      "email": "abc123",
      "phone": "abc123",
      "fax": "abc123",
      "website": "xyz789",
      "iban": "abc123",
      "bic": "abc123",
      "registerCourt": "abc123",
      "companyRegistrationNumber": "abc123",
      "managingDirectors": [ManagingDirector],
      "logoUrl": "http://www.test.com/",
      "createdAt": "2007-12-03T10:15:30Z"
    }
  }
}

creditNote

Response

Returns a CreditNote

Arguments
Name Description
id - ID!

Example

Query
query creditNote($id: ID!) {
  creditNote(id: $id) {
    id
    company {
      ...CompanyFragment
    }
    subcontractor {
      ...SubcontractorFragment
    }
    subcontractorContactPerson {
      ...SubcontractorContactPersonFragment
    }
    type
    status
    number
    numberPrefix
    numberSuffix
    items {
      ...CreditNoteItemFragment
    }
    totalAmount
    totalNetAmount
    dueDate
    dueDateFormat
    hideDueDateText
    creditNoteDate
    deliveryDate {
      ... on SingleDate {
        ...SingleDateFragment
      }
      ... on DateRange {
        ...DateRangeFragment
      }
    }
    hasKleinunternehmerregelung
    introductionText
    closingText
    isNegative
    creditNotePdf
    sentManually
    completedAt
    sentAt
    paidAt
    cancelledAt
    language
    currency
    createdAt
    payments {
      ...PaymentFragment
    }
    originalCreditNote {
      ...CreditNoteFragment
    }
    cancellationCreditNote {
      ...CreditNoteFragment
    }
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "creditNote": {
      "id": 4,
      "company": Company,
      "subcontractor": Subcontractor,
      "subcontractorContactPerson": SubcontractorContactPerson,
      "type": "CREDIT_NOTE",
      "status": "DRAFT",
      "number": 123,
      "numberPrefix": "abc123",
      "numberSuffix": "xyz789",
      "items": [CreditNoteItem],
      "totalAmount": 123,
      "totalNetAmount": 123,
      "dueDate": "2007-12-03",
      "dueDateFormat": "DAYS",
      "hideDueDateText": false,
      "creditNoteDate": "2007-12-03",
      "deliveryDate": SingleDate,
      "hasKleinunternehmerregelung": true,
      "introductionText": "xyz789",
      "closingText": "xyz789",
      "isNegative": true,
      "creditNotePdf": "abc123",
      "sentManually": false,
      "completedAt": "2007-12-03T10:15:30Z",
      "sentAt": "2007-12-03T10:15:30Z",
      "paidAt": "2007-12-03",
      "cancelledAt": "2007-12-03",
      "language": LanguageTag,
      "currency": CurrencyCode,
      "createdAt": "2007-12-03T10:15:30Z",
      "payments": [Payment],
      "originalCreditNote": CreditNote,
      "cancellationCreditNote": CreditNote
    }
  }
}

creditNoteDraft

Description

Builds an unsaved credit note draft prefilled from an existing credit note. Nothing is persisted.

Response

Returns a CreditNoteDraft

Arguments
Name Description
creditNoteId - ID

Example

Query
query creditNoteDraft($creditNoteId: ID) {
  creditNoteDraft(creditNoteId: $creditNoteId) {
    subcontractor {
      ...SubcontractorFragment
    }
    subcontractorContactPerson {
      ...SubcontractorContactPersonFragment
    }
    status
    number
    dueDate
    dueDateFormat
    hideDueDateText
    creditNoteDate
    deliveryDate {
      ... on SingleDate {
        ...SingleDateFragment
      }
      ... on DateRange {
        ...DateRangeFragment
      }
    }
    items {
      ...CreditNoteDraftItemFragment
    }
    introductionText
    closingText
    language
    currency
  }
}
Variables
{"creditNoteId": "4"}
Response
{
  "data": {
    "creditNoteDraft": {
      "subcontractor": Subcontractor,
      "subcontractorContactPerson": SubcontractorContactPerson,
      "status": "DRAFT",
      "number": 987,
      "dueDate": "2007-12-03",
      "dueDateFormat": "DAYS",
      "hideDueDateText": false,
      "creditNoteDate": "2007-12-03",
      "deliveryDate": SingleDate,
      "items": [CreditNoteDraftItem],
      "introductionText": "xyz789",
      "closingText": "abc123",
      "language": LanguageTag,
      "currency": CurrencyCode
    }
  }
}

creditNoteItem

Response

Returns a CreditNoteItem

Arguments
Name Description
id - ID!

Example

Query
query creditNoteItem($id: ID!) {
  creditNoteItem(id: $id) {
    id
    position
    title
    description
    quantity
    unitPrice
    taxRate
    unit
    createdAt
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "creditNoteItem": {
      "id": "4",
      "position": 987,
      "title": "abc123",
      "description": "xyz789",
      "quantity": 987.65,
      "unitPrice": 123,
      "taxRate": 123.45,
      "unit": "abc123",
      "createdAt": "2007-12-03T10:15:30Z"
    }
  }
}

creditNotes

Response

Returns a CreditNoteConnection!

Arguments
Name Description
after - String
before - String
first - Int
last - Int
query - String Query for numberPrefix and number, subcontractor name or item title
status - [CreditNoteStatus!] Only credit notes with one of the given statuses will be returned
creditNoteDateFrom - Date Only credit notes with credit note date at this date or later will be returned
creditNoteDateTo - Date Only credit notes with credit note date up to and including this date will be returned
dueDateFrom - Date
dueDateTo - Date
createdFrom - Date Only credit notes created at this date or later will be returned
createdTo - Date Only credit notes created up to and including this date will be returned
isCompleted - Boolean
isPaid - Boolean isPaid: false returns outstanding credit notes (not paid and not cancelled)
subcontractorId - ID
objectId - ID Only credit notes with at least one item assigned to this object
orderBy - CreditNoteOrder

Example

Query
query creditNotes(
  $after: String,
  $before: String,
  $first: Int,
  $last: Int,
  $query: String,
  $status: [CreditNoteStatus!],
  $creditNoteDateFrom: Date,
  $creditNoteDateTo: Date,
  $dueDateFrom: Date,
  $dueDateTo: Date,
  $createdFrom: Date,
  $createdTo: Date,
  $isCompleted: Boolean,
  $isPaid: Boolean,
  $subcontractorId: ID,
  $objectId: ID,
  $orderBy: CreditNoteOrder
) {
  creditNotes(
    after: $after,
    before: $before,
    first: $first,
    last: $last,
    query: $query,
    status: $status,
    creditNoteDateFrom: $creditNoteDateFrom,
    creditNoteDateTo: $creditNoteDateTo,
    dueDateFrom: $dueDateFrom,
    dueDateTo: $dueDateTo,
    createdFrom: $createdFrom,
    createdTo: $createdTo,
    isCompleted: $isCompleted,
    isPaid: $isPaid,
    subcontractorId: $subcontractorId,
    objectId: $objectId,
    orderBy: $orderBy
  ) {
    edges {
      ...CreditNoteEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
  }
}
Variables
{
  "after": "xyz789",
  "before": "abc123",
  "first": 987,
  "last": 123,
  "query": "xyz789",
  "status": ["DRAFT"],
  "creditNoteDateFrom": "2007-12-03",
  "creditNoteDateTo": "2007-12-03",
  "dueDateFrom": "2007-12-03",
  "dueDateTo": "2007-12-03",
  "createdFrom": "2007-12-03",
  "createdTo": "2007-12-03",
  "isCompleted": true,
  "isPaid": true,
  "subcontractorId": "4",
  "objectId": "4",
  "orderBy": CreditNoteOrder
}
Response
{
  "data": {
    "creditNotes": {
      "edges": [CreditNoteEdge],
      "pageInfo": PageInfo,
      "totalCount": 123
    }
  }
}

customer

Response

Returns a Customer

Arguments
Name Description
id - ID!

Example

Query
query customer($id: ID!) {
  customer(id: $id) {
    id
    number
    type
    salutation
    firstName
    lastName
    companyName
    addressSupplement
    streetAddress
    zip
    city
    country
    emails {
      ...CustomerEmailFragment
    }
    phone
    fax
    website
    vatId
    datevAccount
    sellerIdentifier
    leitwegId
    invoiceSettings {
      ...CustomerInvoiceSettingsFragment
    }
    note
    tags
    createdAt
    invoices {
      ...InvoiceConnectionFragment
    }
    estimates {
      ...EstimateConnectionFragment
    }
    receipts {
      ...ReceiptConnectionFragment
    }
    objects {
      ...ObjectConnectionFragment
    }
    contactPersons {
      ...CustomerContactPersonConnectionFragment
    }
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "customer": {
      "id": 4,
      "number": 987,
      "type": "PERSON",
      "salutation": "xyz789",
      "firstName": "xyz789",
      "lastName": "xyz789",
      "companyName": "xyz789",
      "addressSupplement": "xyz789",
      "streetAddress": "xyz789",
      "zip": "xyz789",
      "city": "abc123",
      "country": "US",
      "emails": [CustomerEmail],
      "phone": "abc123",
      "fax": "abc123",
      "website": "xyz789",
      "vatId": "xyz789",
      "datevAccount": 123,
      "sellerIdentifier": "abc123",
      "leitwegId": "xyz789",
      "invoiceSettings": CustomerInvoiceSettings,
      "note": "abc123",
      "tags": ["xyz789"],
      "createdAt": "2007-12-03T10:15:30Z",
      "invoices": InvoiceConnection,
      "estimates": EstimateConnection,
      "receipts": ReceiptConnection,
      "objects": ObjectConnection,
      "contactPersons": CustomerContactPersonConnection
    }
  }
}

customerContactPerson

Response

Returns a CustomerContactPerson

Arguments
Name Description
id - ID!

Example

Query
query customerContactPerson($id: ID!) {
  customerContactPerson(id: $id) {
    id
    isDefault
    salutation
    firstName
    lastName
    role
    email
    phone
    createdAt
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "customerContactPerson": {
      "id": 4,
      "isDefault": true,
      "salutation": "xyz789",
      "firstName": "xyz789",
      "lastName": "abc123",
      "role": "xyz789",
      "email": "abc123",
      "phone": "xyz789",
      "createdAt": "2007-12-03T10:15:30Z"
    }
  }
}

customers

Response

Returns a CustomerConnection!

Arguments
Name Description
after - String
before - String
first - Int
last - Int
query - String Query for number, name, addressSupplement, email or contact person name

Example

Query
query customers(
  $after: String,
  $before: String,
  $first: Int,
  $last: Int,
  $query: String
) {
  customers(
    after: $after,
    before: $before,
    first: $first,
    last: $last,
    query: $query
  ) {
    edges {
      ...CustomerEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
  }
}
Variables
{
  "after": "abc123",
  "before": "abc123",
  "first": 123,
  "last": 123,
  "query": "abc123"
}
Response
{
  "data": {
    "customers": {
      "edges": [CustomerEdge],
      "pageInfo": PageInfo,
      "totalCount": 123
    }
  }
}

employee

Response

Returns an Employee

Arguments
Name Description
id - ID!

Example

Query
query employee($id: ID!) {
  employee(id: $id) {
    id
    salutation
    firstName
    lastName
    status
    cancelDate
    addressSupplement
    streetAddress
    zip
    city
    country
    state {
      ...StateFragment
    }
    email
    phone
    birthDate
    personnelNumberPrefix
    personnelNumber
    fullPersonnelNumber
    note
    hasDrivingLicenceClassB
    locationBasedTimeRecording
    createdAt
    profilePicture {
      ...EmployeeProfilePictureFragment
    }
    timeAccount {
      ...EmployeeTimeAccountFragment
    }
    activeWorkingTimeModel {
      ...EmployeeWorkingTimeModelFragment
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "employee": {
      "id": 4,
      "salutation": "xyz789",
      "firstName": "xyz789",
      "lastName": "xyz789",
      "status": "IDLE",
      "cancelDate": "2007-12-03",
      "addressSupplement": "xyz789",
      "streetAddress": "abc123",
      "zip": "abc123",
      "city": "abc123",
      "country": "US",
      "state": State,
      "email": "abc123",
      "phone": "abc123",
      "birthDate": "2007-12-03",
      "personnelNumberPrefix": "abc123",
      "personnelNumber": 123,
      "fullPersonnelNumber": "xyz789",
      "note": "xyz789",
      "hasDrivingLicenceClassB": true,
      "locationBasedTimeRecording": false,
      "createdAt": "2007-12-03T10:15:30Z",
      "profilePicture": EmployeeProfilePicture,
      "timeAccount": EmployeeTimeAccount,
      "activeWorkingTimeModel": EmployeeWorkingTimeModel
    }
  }
}

employeeWorkingTimeModel

Response

Returns an EmployeeWorkingTimeModel

Arguments
Name Description
id - ID!

Example

Query
query employeeWorkingTimeModel($id: ID!) {
  employeeWorkingTimeModel(id: $id) {
    id
    employee {
      ...EmployeeFragment
    }
    startDate
    endDate
    weeklyHours
    mondayHours
    tuesdayHours
    wednesdayHours
    thursdayHours
    fridayHours
    saturdayHours
    sundayHours
    grossHourlyWage
    paidInterimCalculation
    isFirstJourneyPaid
    salaryCalculation
    absenceDurationCalculation
    timeAccountEnabled
    createdAt
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "employeeWorkingTimeModel": {
      "id": "4",
      "employee": Employee,
      "startDate": "2007-12-03",
      "endDate": "2007-12-03",
      "weeklyHours": 987.65,
      "mondayHours": 987.65,
      "tuesdayHours": 987.65,
      "wednesdayHours": 123.45,
      "thursdayHours": 987.65,
      "fridayHours": 987.65,
      "saturdayHours": 987.65,
      "sundayHours": 987.65,
      "grossHourlyWage": 123,
      "paidInterimCalculation": "FULL_INTERIM",
      "isFirstJourneyPaid": false,
      "salaryCalculation": "ACTUAL_HOURS",
      "absenceDurationCalculation": "PLAN_HOURS",
      "timeAccountEnabled": true,
      "createdAt": "2007-12-03T10:15:30Z"
    }
  }
}

employeeWorkingTimeModels

Arguments
Name Description
after - String
before - String
first - Int
last - Int
startDateFrom - Date Filter by start date from this date onwards
startDateTo - Date Filter by start date up to and including this date
endDateFrom - Date Filter by end date from this date onwards
endDateTo - Date Filter by end date up to and including this date
activeFrom - Date Only workingTimeModels active at this date or later will be counted
activeTo - Date Only workingTimeModels active before and including this date will be counted
isActive - Boolean Filter by active status today (start_date <= today AND (end_date IS NULL OR end_date >= today))
employeeIds - [ID!] Filter by specific employee IDs
query - String Query for employee name or personnel number
timeAccountEnabled - Boolean Filter by time account enabled status
orderBy - EmployeeWorkingTimeModelOrder

Example

Query
query employeeWorkingTimeModels(
  $after: String,
  $before: String,
  $first: Int,
  $last: Int,
  $startDateFrom: Date,
  $startDateTo: Date,
  $endDateFrom: Date,
  $endDateTo: Date,
  $activeFrom: Date,
  $activeTo: Date,
  $isActive: Boolean,
  $employeeIds: [ID!],
  $query: String,
  $timeAccountEnabled: Boolean,
  $orderBy: EmployeeWorkingTimeModelOrder
) {
  employeeWorkingTimeModels(
    after: $after,
    before: $before,
    first: $first,
    last: $last,
    startDateFrom: $startDateFrom,
    startDateTo: $startDateTo,
    endDateFrom: $endDateFrom,
    endDateTo: $endDateTo,
    activeFrom: $activeFrom,
    activeTo: $activeTo,
    isActive: $isActive,
    employeeIds: $employeeIds,
    query: $query,
    timeAccountEnabled: $timeAccountEnabled,
    orderBy: $orderBy
  ) {
    edges {
      ...EmployeeWorkingTimeModelEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
  }
}
Variables
{
  "after": "abc123",
  "before": "xyz789",
  "first": 987,
  "last": 987,
  "startDateFrom": "2007-12-03",
  "startDateTo": "2007-12-03",
  "endDateFrom": "2007-12-03",
  "endDateTo": "2007-12-03",
  "activeFrom": "2007-12-03",
  "activeTo": "2007-12-03",
  "isActive": false,
  "employeeIds": ["4"],
  "query": "abc123",
  "timeAccountEnabled": false,
  "orderBy": EmployeeWorkingTimeModelOrder
}
Response
{
  "data": {
    "employeeWorkingTimeModels": {
      "edges": [EmployeeWorkingTimeModelEdge],
      "pageInfo": PageInfo,
      "totalCount": 123
    }
  }
}

employees

Response

Returns an EmployeeConnection!

Arguments
Name Description
after - String
before - String
first - Int
last - Int
ids - [ID!] Ids of employees to query for
query - String Query for name or personnel number
status - EmployeeStatus
statusCheckDate - Date Check the EmployeeStatus at this date
serviceId - ID
cityOrZip - String
hasDrivingLicenceClassB - Boolean
orderBy - EmployeeOrder

Example

Query
query employees(
  $after: String,
  $before: String,
  $first: Int,
  $last: Int,
  $ids: [ID!],
  $query: String,
  $status: EmployeeStatus,
  $statusCheckDate: Date,
  $serviceId: ID,
  $cityOrZip: String,
  $hasDrivingLicenceClassB: Boolean,
  $orderBy: EmployeeOrder
) {
  employees(
    after: $after,
    before: $before,
    first: $first,
    last: $last,
    ids: $ids,
    query: $query,
    status: $status,
    statusCheckDate: $statusCheckDate,
    serviceId: $serviceId,
    cityOrZip: $cityOrZip,
    hasDrivingLicenceClassB: $hasDrivingLicenceClassB,
    orderBy: $orderBy
  ) {
    edges {
      ...EmployeeEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
  }
}
Variables
{
  "after": "abc123",
  "before": "xyz789",
  "first": 987,
  "last": 123,
  "ids": [4],
  "query": "abc123",
  "status": "IDLE",
  "statusCheckDate": "2007-12-03",
  "serviceId": 4,
  "cityOrZip": "xyz789",
  "hasDrivingLicenceClassB": false,
  "orderBy": EmployeeOrder
}
Response
{
  "data": {
    "employees": {
      "edges": [EmployeeEdge],
      "pageInfo": PageInfo,
      "totalCount": 123
    }
  }
}

estimate

Response

Returns an Estimate

Arguments
Name Description
id - ID!

Example

Query
query estimate($id: ID!) {
  estimate(id: $id) {
    id
    company {
      ...CompanyFragment
    }
    customer {
      ...CustomerFragment
    }
    status
    number
    numberPrefix
    items {
      ...EstimateItemFragment
    }
    estimateDate
    validityDate
    hasKleinunternehmerregelung
    introductionText
    closingText
    estimatePdf
    webUrl
    webEnabled
    isAnsweredByCustomer
    declineReason
    declineNote
    sentManually
    completedAt
    sentAt
    acceptedAt
    declinedAt
    language
    currency
    createdAt
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "estimate": {
      "id": 4,
      "company": Company,
      "customer": Customer,
      "status": "DRAFT",
      "number": 123,
      "numberPrefix": "xyz789",
      "items": [EstimateItem],
      "estimateDate": "2007-12-03",
      "validityDate": "2007-12-03",
      "hasKleinunternehmerregelung": true,
      "introductionText": "xyz789",
      "closingText": "abc123",
      "estimatePdf": "abc123",
      "webUrl": "http://www.test.com/",
      "webEnabled": false,
      "isAnsweredByCustomer": false,
      "declineReason": "PRICE_TOO_HIGH",
      "declineNote": "xyz789",
      "sentManually": true,
      "completedAt": "2007-12-03T10:15:30Z",
      "sentAt": "2007-12-03T10:15:30Z",
      "acceptedAt": "2007-12-03T10:15:30Z",
      "declinedAt": "2007-12-03T10:15:30Z",
      "language": LanguageTag,
      "currency": CurrencyCode,
      "createdAt": "2007-12-03T10:15:30Z"
    }
  }
}

estimateDraft

Description

Builds an unsaved estimate draft prefilled from an existing estimate. Nothing is persisted.

Response

Returns an EstimateDraft

Arguments
Name Description
estimateId - ID

Example

Query
query estimateDraft($estimateId: ID) {
  estimateDraft(estimateId: $estimateId) {
    customer {
      ...CustomerFragment
    }
    status
    number
    estimateDate
    validityDate
    items {
      ...EstimateDraftItemFragment
    }
    introductionText
    closingText
    language
    currency
  }
}
Variables
{"estimateId": 4}
Response
{
  "data": {
    "estimateDraft": {
      "customer": Customer,
      "status": "DRAFT",
      "number": 987,
      "estimateDate": "2007-12-03",
      "validityDate": "2007-12-03",
      "items": [EstimateDraftItem],
      "introductionText": "xyz789",
      "closingText": "xyz789",
      "language": LanguageTag,
      "currency": CurrencyCode
    }
  }
}

estimateItem

Response

Returns an EstimateItem

Arguments
Name Description
id - ID!

Example

Query
query estimateItem($id: ID!) {
  estimateItem(id: $id) {
    id
    position
    title
    description
    quantity
    unitPrice
    taxRate
    unit
    object {
      ...ObjectFragment
    }
    createdAt
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "estimateItem": {
      "id": "4",
      "position": 987,
      "title": "abc123",
      "description": "xyz789",
      "quantity": 123.45,
      "unitPrice": 123,
      "taxRate": 987.65,
      "unit": "xyz789",
      "object": Object,
      "createdAt": "2007-12-03T10:15:30Z"
    }
  }
}

estimates

Response

Returns an EstimateConnection!

Arguments
Name Description
after - String
before - String
first - Int
last - Int
query - String Query for numberPrefix and number or customer name
status - [EstimateStatus!] Only estimates with one of the given statuses will be returned
estimateDateFrom - Date Only estimates with estimate date at this date or later will be returned
estimateDateTo - Date Only estimates with estimate date up to and including this date will be returned
validityDateFrom - Date Only estimates with validity date at this date or later will be returned
validityDateTo - Date Only estimates with validity date up to and including this date will be returned
customerId - ID
serviceId - ID Only estimates with at least one item assigned to this service
materialId - ID Only estimates with at least one item assigned to this material
objectId - ID Only estimates with at least one item assigned to this object
orderBy - EstimateOrder

Example

Query
query estimates(
  $after: String,
  $before: String,
  $first: Int,
  $last: Int,
  $query: String,
  $status: [EstimateStatus!],
  $estimateDateFrom: Date,
  $estimateDateTo: Date,
  $validityDateFrom: Date,
  $validityDateTo: Date,
  $customerId: ID,
  $serviceId: ID,
  $materialId: ID,
  $objectId: ID,
  $orderBy: EstimateOrder
) {
  estimates(
    after: $after,
    before: $before,
    first: $first,
    last: $last,
    query: $query,
    status: $status,
    estimateDateFrom: $estimateDateFrom,
    estimateDateTo: $estimateDateTo,
    validityDateFrom: $validityDateFrom,
    validityDateTo: $validityDateTo,
    customerId: $customerId,
    serviceId: $serviceId,
    materialId: $materialId,
    objectId: $objectId,
    orderBy: $orderBy
  ) {
    edges {
      ...EstimateEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
  }
}
Variables
{
  "after": "abc123",
  "before": "abc123",
  "first": 987,
  "last": 987,
  "query": "xyz789",
  "status": ["DRAFT"],
  "estimateDateFrom": "2007-12-03",
  "estimateDateTo": "2007-12-03",
  "validityDateFrom": "2007-12-03",
  "validityDateTo": "2007-12-03",
  "customerId": 4,
  "serviceId": 4,
  "materialId": "4",
  "objectId": "4",
  "orderBy": EstimateOrder
}
Response
{
  "data": {
    "estimates": {
      "edges": [EstimateEdge],
      "pageInfo": PageInfo,
      "totalCount": 987
    }
  }
}

holiday

Response

Returns a Holiday

Arguments
Name Description
id - ID!

Example

Query
query holiday($id: ID!) {
  holiday(id: $id) {
    id
    date
    name
    country
    state
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "holiday": {
      "id": "4",
      "date": "2007-12-03",
      "name": "abc123",
      "country": "US",
      "state": StateCode
    }
  }
}

invoice

Response

Returns an Invoice

Arguments
Name Description
id - ID!

Example

Query
query invoice($id: ID!) {
  invoice(id: $id) {
    id
    company {
      ...CompanyFragment
    }
    customer {
      ...CustomerFragment
    }
    type
    status
    number
    numberPrefix
    numberSuffix
    items {
      ...InvoiceItemFragment
    }
    dueDate
    dueDateFormat
    hideDueDateText
    invoiceDate
    deliveryDate {
      ... on SingleDate {
        ...SingleDateFragment
      }
      ... on DateRange {
        ...DateRangeFragment
      }
    }
    totalAmount
    totalNetAmount
    outstandingAmount
    hasKleinunternehmerregelung
    introductionText
    closingText
    isNegative
    invoicePdf
    sentManually
    completedAt
    sentAt
    paidAt
    cancelledAt
    language
    currency
    createdAt
    payments {
      ...PaymentFragment
    }
    originalInvoice {
      ...InvoiceFragment
    }
    cancellationInvoice {
      ...InvoiceFragment
    }
    skontoEnabled
    skontoPercent
    skontoDays
    skontoDeadline
    skontoApplied
    skontoAmount
    skontoMessage
    serviceReceipts {
      ...ServiceReceiptFragment
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "invoice": {
      "id": "4",
      "company": Company,
      "customer": Customer,
      "type": "INVOICE",
      "status": "DRAFT",
      "number": 987,
      "numberPrefix": "abc123",
      "numberSuffix": "abc123",
      "items": [InvoiceItem],
      "dueDate": "2007-12-03",
      "dueDateFormat": "DAYS",
      "hideDueDateText": true,
      "invoiceDate": "2007-12-03",
      "deliveryDate": SingleDate,
      "totalAmount": 987,
      "totalNetAmount": 987,
      "outstandingAmount": 987,
      "hasKleinunternehmerregelung": true,
      "introductionText": "xyz789",
      "closingText": "xyz789",
      "isNegative": false,
      "invoicePdf": "abc123",
      "sentManually": true,
      "completedAt": "2007-12-03T10:15:30Z",
      "sentAt": "2007-12-03T10:15:30Z",
      "paidAt": "2007-12-03",
      "cancelledAt": "2007-12-03",
      "language": LanguageTag,
      "currency": CurrencyCode,
      "createdAt": "2007-12-03T10:15:30Z",
      "payments": [Payment],
      "originalInvoice": Invoice,
      "cancellationInvoice": Invoice,
      "skontoEnabled": false,
      "skontoPercent": 987.65,
      "skontoDays": 987,
      "skontoDeadline": "2007-12-03",
      "skontoApplied": true,
      "skontoAmount": 123,
      "skontoMessage": "xyz789",
      "serviceReceipts": [ServiceReceipt]
    }
  }
}

invoiceDraft

Description

Builds an unsaved invoice draft prefilled from an estimate (estimateId) or an existing invoice (invoiceId). Nothing is persisted.

Response

Returns an InvoiceDraft

Arguments
Name Description
estimateId - ID
invoiceId - ID

Example

Query
query invoiceDraft(
  $estimateId: ID,
  $invoiceId: ID
) {
  invoiceDraft(
    estimateId: $estimateId,
    invoiceId: $invoiceId
  ) {
    customer {
      ...CustomerFragment
    }
    status
    number
    dueDate
    dueDateFormat
    hideDueDateText
    invoiceDate
    deliveryDate {
      ... on SingleDate {
        ...SingleDateFragment
      }
      ... on DateRange {
        ...DateRangeFragment
      }
    }
    items {
      ...InvoiceDraftItemFragment
    }
    introductionText
    closingText
    skontoEnabled
    skontoPercent
    skontoDays
    skontoDeadline
    skontoMessage
    language
    currency
  }
}
Variables
{"estimateId": 4, "invoiceId": 4}
Response
{
  "data": {
    "invoiceDraft": {
      "customer": Customer,
      "status": "DRAFT",
      "number": 123,
      "dueDate": "2007-12-03",
      "dueDateFormat": "DAYS",
      "hideDueDateText": true,
      "invoiceDate": "2007-12-03",
      "deliveryDate": SingleDate,
      "items": [InvoiceDraftItem],
      "introductionText": "abc123",
      "closingText": "xyz789",
      "skontoEnabled": true,
      "skontoPercent": 987.65,
      "skontoDays": 987,
      "skontoDeadline": "2007-12-03",
      "skontoMessage": "xyz789",
      "language": LanguageTag,
      "currency": CurrencyCode
    }
  }
}

invoiceItem

Response

Returns an InvoiceItem

Arguments
Name Description
id - ID!

Example

Query
query invoiceItem($id: ID!) {
  invoiceItem(id: $id) {
    id
    position
    title
    description
    quantity
    unitPrice
    taxRate
    unit
    createdAt
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "invoiceItem": {
      "id": 4,
      "position": 123,
      "title": "abc123",
      "description": "xyz789",
      "quantity": 987.65,
      "unitPrice": 123,
      "taxRate": 987.65,
      "unit": "xyz789",
      "createdAt": "2007-12-03T10:15:30Z"
    }
  }
}

invoices

Response

Returns an InvoiceConnection!

Arguments
Name Description
after - String
before - String
first - Int
last - Int
query - String Query for numberPrefix and number, customer name or item title
status - [InvoiceStatus!] Only invoices with one of the given statuses will be returned
invoiceDateFrom - Date Only invoices with invoice date at this date or later will be returned
invoiceDateTo - Date Only invoices with invoice date up to and including this date will be returned
dueDateFrom - Date
dueDateTo - Date
createdFrom - Date Only invoices created at this date or later will be returned
createdTo - Date Only invoices created up to and including this date will be returned
isCompleted - Boolean
isPaid - Boolean isPaid: false returns outstanding invoices (not paid and not cancelled)
customerId - ID
orderId - ID
serviceId - ID Only invoices with at least one item assigned to this service
objectId - ID Only invoices with at least one item assigned to this object
orderBy - InvoiceOrder

Example

Query
query invoices(
  $after: String,
  $before: String,
  $first: Int,
  $last: Int,
  $query: String,
  $status: [InvoiceStatus!],
  $invoiceDateFrom: Date,
  $invoiceDateTo: Date,
  $dueDateFrom: Date,
  $dueDateTo: Date,
  $createdFrom: Date,
  $createdTo: Date,
  $isCompleted: Boolean,
  $isPaid: Boolean,
  $customerId: ID,
  $orderId: ID,
  $serviceId: ID,
  $objectId: ID,
  $orderBy: InvoiceOrder
) {
  invoices(
    after: $after,
    before: $before,
    first: $first,
    last: $last,
    query: $query,
    status: $status,
    invoiceDateFrom: $invoiceDateFrom,
    invoiceDateTo: $invoiceDateTo,
    dueDateFrom: $dueDateFrom,
    dueDateTo: $dueDateTo,
    createdFrom: $createdFrom,
    createdTo: $createdTo,
    isCompleted: $isCompleted,
    isPaid: $isPaid,
    customerId: $customerId,
    orderId: $orderId,
    serviceId: $serviceId,
    objectId: $objectId,
    orderBy: $orderBy
  ) {
    edges {
      ...InvoiceEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
  }
}
Variables
{
  "after": "xyz789",
  "before": "xyz789",
  "first": 987,
  "last": 123,
  "query": "abc123",
  "status": ["DRAFT"],
  "invoiceDateFrom": "2007-12-03",
  "invoiceDateTo": "2007-12-03",
  "dueDateFrom": "2007-12-03",
  "dueDateTo": "2007-12-03",
  "createdFrom": "2007-12-03",
  "createdTo": "2007-12-03",
  "isCompleted": false,
  "isPaid": false,
  "customerId": "4",
  "orderId": 4,
  "serviceId": "4",
  "objectId": 4,
  "orderBy": InvoiceOrder
}
Response
{
  "data": {
    "invoices": {
      "edges": [InvoiceEdge],
      "pageInfo": PageInfo,
      "totalCount": 987
    }
  }
}

material

Response

Returns a Material

Arguments
Name Description
id - ID!

Example

Query
query material($id: ID!) {
  material(id: $id) {
    id
    number
    name
    description
    manufacturer
    consumptionUnit
    salesUnitPrice
    salesTaxRate
    salesUnit
    quantityPerSalesUnit
    stockUnit
    quantityPerStockUnit
    stockEanNumber
    revenueAccount
    group {
      ...MaterialGroupFragment
    }
    originalImageUrl
    smallImageUrl
    largeImageUrl
    createdAt
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "material": {
      "id": 4,
      "number": 123,
      "name": "abc123",
      "description": "xyz789",
      "manufacturer": "abc123",
      "consumptionUnit": "xyz789",
      "salesUnitPrice": 987,
      "salesTaxRate": 987.65,
      "salesUnit": "xyz789",
      "quantityPerSalesUnit": 123.45,
      "stockUnit": "abc123",
      "quantityPerStockUnit": 123.45,
      "stockEanNumber": "xyz789",
      "revenueAccount": 123,
      "group": MaterialGroup,
      "originalImageUrl": "http://www.test.com/",
      "smallImageUrl": "http://www.test.com/",
      "largeImageUrl": "http://www.test.com/",
      "createdAt": "2007-12-03T10:15:30Z"
    }
  }
}

materialGroup

Response

Returns a MaterialGroup

Arguments
Name Description
id - ID!

Example

Query
query materialGroup($id: ID!) {
  materialGroup(id: $id) {
    id
    name
    createdAt
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "materialGroup": {
      "id": "4",
      "name": "abc123",
      "createdAt": "2007-12-03T10:15:30Z"
    }
  }
}

materialGroups

Response

Returns a MaterialGroupConnection!

Arguments
Name Description
after - String
before - String
first - Int
last - Int
query - String Query by name
orderBy - MaterialGroupOrder

Example

Query
query materialGroups(
  $after: String,
  $before: String,
  $first: Int,
  $last: Int,
  $query: String,
  $orderBy: MaterialGroupOrder
) {
  materialGroups(
    after: $after,
    before: $before,
    first: $first,
    last: $last,
    query: $query,
    orderBy: $orderBy
  ) {
    edges {
      ...MaterialGroupEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
  }
}
Variables
{
  "after": "xyz789",
  "before": "xyz789",
  "first": 987,
  "last": 123,
  "query": "xyz789",
  "orderBy": MaterialGroupOrder
}
Response
{
  "data": {
    "materialGroups": {
      "edges": [MaterialGroupEdge],
      "pageInfo": PageInfo,
      "totalCount": 987
    }
  }
}

materials

Response

Returns a MaterialConnection!

Arguments
Name Description
after - String
before - String
first - Int
last - Int
query - String Query by name
manufacturer - String Filter by manufacturer (partial match)
orderBy - MaterialOrder

Example

Query
query materials(
  $after: String,
  $before: String,
  $first: Int,
  $last: Int,
  $query: String,
  $manufacturer: String,
  $orderBy: MaterialOrder
) {
  materials(
    after: $after,
    before: $before,
    first: $first,
    last: $last,
    query: $query,
    manufacturer: $manufacturer,
    orderBy: $orderBy
  ) {
    edges {
      ...MaterialEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
  }
}
Variables
{
  "after": "abc123",
  "before": "xyz789",
  "first": 123,
  "last": 987,
  "query": "abc123",
  "manufacturer": "xyz789",
  "orderBy": MaterialOrder
}
Response
{
  "data": {
    "materials": {
      "edges": [MaterialEdge],
      "pageInfo": PageInfo,
      "totalCount": 987
    }
  }
}

nextEmployeePersonnelNumber

Response

Returns an Int!

Example

Query
query nextEmployeePersonnelNumber {
  nextEmployeePersonnelNumber
}
Response
{"data": {"nextEmployeePersonnelNumber": 987}}

object

Response

Returns an Object

Arguments
Name Description
id - ID!

Example

Query
query object($id: ID!) {
  object(id: $id) {
    id
    customer {
      ...CustomerFragment
    }
    customerContactPerson {
      ...CustomerContactPersonFragment
    }
    number
    name
    addressSupplement
    streetAddress
    zip
    city
    country
    state {
      ...StateFragment
    }
    location {
      ...LocationFragment
    }
    locationRadiusMeters
    email
    phone
    extraInvoiceAddressFieldLines
    costCenter
    invoiceAddress {
      ...ObjectInvoiceAddressFragment
    }
    invoiceSettings {
      ...ObjectInvoiceSettingsFragment
    }
    tags
    createdAt
    rooms {
      ...ObjectRoomConnectionFragment
    }
    invoices {
      ...InvoiceConnectionFragment
    }
    estimates {
      ...EstimateConnectionFragment
    }
    receipts {
      ...ReceiptConnectionFragment
    }
    serviceReceipts {
      ...ServiceReceiptConnectionFragment
    }
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "object": {
      "id": 4,
      "customer": Customer,
      "customerContactPerson": CustomerContactPerson,
      "number": 987,
      "name": "xyz789",
      "addressSupplement": "xyz789",
      "streetAddress": "xyz789",
      "zip": "xyz789",
      "city": "xyz789",
      "country": "US",
      "state": State,
      "location": Location,
      "locationRadiusMeters": 987,
      "email": "xyz789",
      "phone": "xyz789",
      "extraInvoiceAddressFieldLines": "abc123",
      "costCenter": "abc123",
      "invoiceAddress": ObjectInvoiceAddress,
      "invoiceSettings": ObjectInvoiceSettings,
      "tags": ["xyz789"],
      "createdAt": "2007-12-03T10:15:30Z",
      "rooms": ObjectRoomConnection,
      "invoices": InvoiceConnection,
      "estimates": EstimateConnection,
      "receipts": ReceiptConnection,
      "serviceReceipts": ServiceReceiptConnection
    }
  }
}

objects

Response

Returns an ObjectConnection!

Arguments
Name Description
after - String
before - String
first - Int
last - Int
query - String Query by number, name, streetAddress, zip, city
orderBy - ObjectOrder

Example

Query
query objects(
  $after: String,
  $before: String,
  $first: Int,
  $last: Int,
  $query: String,
  $orderBy: ObjectOrder
) {
  objects(
    after: $after,
    before: $before,
    first: $first,
    last: $last,
    query: $query,
    orderBy: $orderBy
  ) {
    edges {
      ...ObjectEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
  }
}
Variables
{
  "after": "abc123",
  "before": "xyz789",
  "first": 123,
  "last": 987,
  "query": "abc123",
  "orderBy": ObjectOrder
}
Response
{
  "data": {
    "objects": {
      "edges": [ObjectEdge],
      "pageInfo": PageInfo,
      "totalCount": 987
    }
  }
}

operation

Response

Returns an Operation

Arguments
Name Description
id - ID!

Example

Query
query operation($id: ID!) {
  operation(id: $id) {
    id
    object {
      ...ObjectFragment
    }
    instructions
    services {
      ...OperationServiceFragment
    }
    requiredExecutors
    missingExecutors
    toDos
    executor {
      ...OperationExecutorFragment
    }
    executors {
      ...OperationExecutorConnectionFragment
    }
    isExecuted
    executionStartDate
    executionStartTime
    executionEndDate
    executionEndTime
    duration
    originalExecutionStartDate
    originalExecutionStartTime
    originalExecutionEndDate
    originalExecutionEndTime
    order {
      ...OrderFragment
    }
    orderShift {
      ...OrderShiftFragment
    }
    holiday {
      ...HolidayFragment
    }
    report {
      ...OperationReportFragment
    }
    serviceReceipts {
      ...ServiceReceiptConnectionFragment
    }
    billingItems {
      ...OperationBillingItemConnectionFragment
    }
    materials {
      ...OperationMaterialConnectionFragment
    }
    createdAt
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "operation": {
      "id": 4,
      "object": Object,
      "instructions": "abc123",
      "services": [OperationService],
      "requiredExecutors": 123,
      "missingExecutors": 987,
      "toDos": ["MISSING_QUANTITY"],
      "executor": OperationExecutor,
      "executors": OperationExecutorConnection,
      "isExecuted": false,
      "executionStartDate": "2007-12-03",
      "executionStartTime": "10:15:30Z",
      "executionEndDate": "2007-12-03",
      "executionEndTime": "10:15:30Z",
      "duration": 123,
      "originalExecutionStartDate": "2007-12-03",
      "originalExecutionStartTime": "10:15:30Z",
      "originalExecutionEndDate": "2007-12-03",
      "originalExecutionEndTime": "10:15:30Z",
      "order": Order,
      "orderShift": OrderShift,
      "holiday": Holiday,
      "report": OperationReport,
      "serviceReceipts": ServiceReceiptConnection,
      "billingItems": OperationBillingItemConnection,
      "materials": OperationMaterialConnection,
      "createdAt": "2007-12-03T10:15:30Z"
    }
  }
}

operationBillingItem

Description

Returns a single billing position by id.

Response

Returns an OperationBillingItem

Arguments
Name Description
id - ID!

Example

Query
query operationBillingItem($id: ID!) {
  operationBillingItem(id: $id) {
    id
    orderBillingItem {
      ...OrderBillingItemFragment
    }
    pendingInvoiceItem {
      ...PendingInvoiceItemFragment
    }
    operation {
      ...OperationFragment
    }
    operationService {
      ...OperationServiceFragment
    }
    operationMaterial {
      ...OperationMaterialFragment
    }
    service {
      ...ServiceFragment
    }
    material {
      ...MaterialFragment
    }
    position
    type
    priceType
    title
    description
    unitPrice
    quantity
    quantitySource
    unit
    hasPersonHourUnit
    taxRate
    status
    groupOperation
    quantityInputAt
    updatedAt
    createdAt
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "operationBillingItem": {
      "id": 4,
      "orderBillingItem": OrderBillingItem,
      "pendingInvoiceItem": PendingInvoiceItem,
      "operation": Operation,
      "operationService": OperationService,
      "operationMaterial": OperationMaterial,
      "service": Service,
      "material": Material,
      "position": 123,
      "type": "SERVICE",
      "priceType": "FLAT_RATE",
      "title": "xyz789",
      "description": "abc123",
      "unitPrice": 987,
      "quantity": 987.65,
      "quantitySource": "INPUT",
      "unit": "xyz789",
      "hasPersonHourUnit": false,
      "taxRate": 987.65,
      "status": "OPEN",
      "groupOperation": false,
      "quantityInputAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "createdAt": "2007-12-03T10:15:30Z"
    }
  }
}

operationBillingItems

Description

Returns the billing positions of the authenticated company, newest first.

Response

Returns an OperationBillingItemConnection!

Arguments
Name Description
after - String
before - String
first - Int
last - Int
query - String Filters by the position's title.
orderBy - OperationBillingItemOrder

Example

Query
query operationBillingItems(
  $after: String,
  $before: String,
  $first: Int,
  $last: Int,
  $query: String,
  $orderBy: OperationBillingItemOrder
) {
  operationBillingItems(
    after: $after,
    before: $before,
    first: $first,
    last: $last,
    query: $query,
    orderBy: $orderBy
  ) {
    edges {
      ...OperationBillingItemEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
  }
}
Variables
{
  "after": "xyz789",
  "before": "abc123",
  "first": 123,
  "last": 987,
  "query": "abc123",
  "orderBy": OperationBillingItemOrder
}
Response
{
  "data": {
    "operationBillingItems": {
      "edges": [OperationBillingItemEdge],
      "pageInfo": PageInfo,
      "totalCount": 123
    }
  }
}

operationExecutor

Response

Returns an OperationExecutor

Arguments
Name Description
id - ID!

Example

Query
query operationExecutor($id: ID!) {
  operationExecutor(id: $id) {
    id
    operation {
      ...OperationFragment
    }
    employee {
      ...EmployeeFragment
    }
    subcontractor {
      ...SubcontractorFragment
    }
    orderExecutor {
      ...OrderExecutorFragment
    }
    timeRecord {
      ...TimeRecordFragment
    }
    absence {
      ...AbsenceFragment
    }
    markedAsNoShowAt
    createdAt
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "operationExecutor": {
      "id": 4,
      "operation": Operation,
      "employee": Employee,
      "subcontractor": Subcontractor,
      "orderExecutor": OrderExecutor,
      "timeRecord": TimeRecord,
      "absence": Absence,
      "markedAsNoShowAt": "2007-12-03T10:15:30Z",
      "createdAt": "2007-12-03T10:15:30Z"
    }
  }
}

operationExecutors

Response

Returns an OperationExecutorConnection!

Arguments
Name Description
after - String
before - String
first - Int
last - Int
executionFrom - Date Only operationExecutors with execution at this date or later will be counted.
executionTo - Date Only operationExecutors with execution before and up to and including this date will be counted.
hasEmployee - Boolean
hasTimeRecord - Boolean
hideAbsent - Boolean
orderBy - OperationExecutorOrder

Example

Query
query operationExecutors(
  $after: String,
  $before: String,
  $first: Int,
  $last: Int,
  $executionFrom: Date,
  $executionTo: Date,
  $hasEmployee: Boolean,
  $hasTimeRecord: Boolean,
  $hideAbsent: Boolean,
  $orderBy: OperationExecutorOrder
) {
  operationExecutors(
    after: $after,
    before: $before,
    first: $first,
    last: $last,
    executionFrom: $executionFrom,
    executionTo: $executionTo,
    hasEmployee: $hasEmployee,
    hasTimeRecord: $hasTimeRecord,
    hideAbsent: $hideAbsent,
    orderBy: $orderBy
  ) {
    edges {
      ...OperationExecutorEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
  }
}
Variables
{
  "after": "abc123",
  "before": "xyz789",
  "first": 987,
  "last": 987,
  "executionFrom": "2007-12-03",
  "executionTo": "2007-12-03",
  "hasEmployee": true,
  "hasTimeRecord": true,
  "hideAbsent": true,
  "orderBy": OperationExecutorOrder
}
Response
{
  "data": {
    "operationExecutors": {
      "edges": [OperationExecutorEdge],
      "pageInfo": PageInfo,
      "totalCount": 123
    }
  }
}

operationExecutorsMissingCheckIn

Description

Employees with no time record yet, assigned to today's operations whose execution start is at least minutesToBeLate minutes in the past. Excludes absent, no-show, and holiday-excluded operations.

Response

Returns an OperationExecutorConnection!

Arguments
Name Description
after - String
before - String
first - Int
last - Int
minutesToBeLate - Int Grace period in minutes; only executors whose operation execution start is this many minutes or more in the past are included. Defaults to 0.

Example

Query
query operationExecutorsMissingCheckIn(
  $after: String,
  $before: String,
  $first: Int,
  $last: Int,
  $minutesToBeLate: Int
) {
  operationExecutorsMissingCheckIn(
    after: $after,
    before: $before,
    first: $first,
    last: $last,
    minutesToBeLate: $minutesToBeLate
  ) {
    edges {
      ...OperationExecutorEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
  }
}
Variables
{
  "after": "xyz789",
  "before": "abc123",
  "first": 123,
  "last": 123,
  "minutesToBeLate": 987
}
Response
{
  "data": {
    "operationExecutorsMissingCheckIn": {
      "edges": [OperationExecutorEdge],
      "pageInfo": PageInfo,
      "totalCount": 123
    }
  }
}

operationMaterial

Description

Returns a single operation material by id.

Response

Returns an OperationMaterial

Arguments
Name Description
id - ID!

Example

Query
query operationMaterial($id: ID!) {
  operationMaterial(id: $id) {
    id
    operation {
      ...OperationFragment
    }
    material {
      ...MaterialFragment
    }
    orderMaterial {
      ...OrderMaterialFragment
    }
    serviceReceiptItem {
      ...ServiceReceiptItemFragment
    }
    position
    consumptionQuantity
    updatedAt
    createdAt
    billingItems {
      ...OperationBillingItemConnectionFragment
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "operationMaterial": {
      "id": 4,
      "operation": Operation,
      "material": Material,
      "orderMaterial": OrderMaterial,
      "serviceReceiptItem": ServiceReceiptItem,
      "position": 987,
      "consumptionQuantity": 123.45,
      "updatedAt": "2007-12-03T10:15:30Z",
      "createdAt": "2007-12-03T10:15:30Z",
      "billingItems": OperationBillingItemConnection
    }
  }
}

operationReports

Response

Returns an OperationReportConnection!

Arguments
Name Description
after - String
before - String
first - Int
last - Int
operationId - ID
query - String Query by body content
orderBy - OperationReportOrder

Example

Query
query operationReports(
  $after: String,
  $before: String,
  $first: Int,
  $last: Int,
  $operationId: ID,
  $query: String,
  $orderBy: OperationReportOrder
) {
  operationReports(
    after: $after,
    before: $before,
    first: $first,
    last: $last,
    operationId: $operationId,
    query: $query,
    orderBy: $orderBy
  ) {
    edges {
      ...OperationReportEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
  }
}
Variables
{
  "after": "xyz789",
  "before": "xyz789",
  "first": 987,
  "last": 987,
  "operationId": 4,
  "query": "abc123",
  "orderBy": OperationReportOrder
}
Response
{
  "data": {
    "operationReports": {
      "edges": [OperationReportEdge],
      "pageInfo": PageInfo,
      "totalCount": 987
    }
  }
}

operationService

Response

Returns an OperationService

Arguments
Name Description
id - ID!

Example

Query
query operationService($id: ID!) {
  operationService(id: $id) {
    id
    operation {
      ...OperationFragment
    }
    service {
      ...ServiceFragment
    }
    orderService {
      ...OrderServiceFragment
    }
    position
    title
    updatedAt
    createdAt
    tasks {
      ...OperationServiceTaskConnectionFragment
    }
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "operationService": {
      "id": "4",
      "operation": Operation,
      "service": Service,
      "orderService": OrderService,
      "position": 123,
      "title": "abc123",
      "updatedAt": "2007-12-03T10:15:30Z",
      "createdAt": "2007-12-03T10:15:30Z",
      "tasks": OperationServiceTaskConnection
    }
  }
}

operationServiceTask

Response

Returns an OperationServiceTask

Arguments
Name Description
id - ID!

Example

Query
query operationServiceTask($id: ID!) {
  operationServiceTask(id: $id) {
    id
    operationService {
      ...OperationServiceFragment
    }
    serviceArea {
      ...ServiceAreaFragment
    }
    orderServiceTask {
      ...OrderServiceTaskFragment
    }
    position
    title
    quantity
    unit
    completedAt
    createdAt
    rooms {
      ...OperationServiceTaskRoomConnectionFragment
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "operationServiceTask": {
      "id": "4",
      "operationService": OperationService,
      "serviceArea": ServiceArea,
      "orderServiceTask": OrderServiceTask,
      "position": 987,
      "title": "abc123",
      "quantity": 987.65,
      "unit": "abc123",
      "completedAt": "2007-12-03T10:15:30Z",
      "createdAt": "2007-12-03T10:15:30Z",
      "rooms": OperationServiceTaskRoomConnection
    }
  }
}

operations

Response

Returns an OperationConnection!

Arguments
Name Description
after - String
before - String
first - Int
last - Int
ids - [ID!] Ids of operations to query for
query - String Query for title
hasBillingItems - Boolean
hasMissingBillingItemQuantity - Boolean
executionFrom - Date Only operations with execution at this date or later will be counted.
executionTo - Date Only operations with execution before and up to and including this date will be counted.
orderExecutorIds - [ID!]
serviceIds - [ID!]
toDos - [OperationToDo!]
zips - [String!]
cities - [String!]
orderBy - OperationOrder

Example

Query
query operations(
  $after: String,
  $before: String,
  $first: Int,
  $last: Int,
  $ids: [ID!],
  $query: String,
  $hasBillingItems: Boolean,
  $hasMissingBillingItemQuantity: Boolean,
  $executionFrom: Date,
  $executionTo: Date,
  $orderExecutorIds: [ID!],
  $serviceIds: [ID!],
  $toDos: [OperationToDo!],
  $zips: [String!],
  $cities: [String!],
  $orderBy: OperationOrder
) {
  operations(
    after: $after,
    before: $before,
    first: $first,
    last: $last,
    ids: $ids,
    query: $query,
    hasBillingItems: $hasBillingItems,
    hasMissingBillingItemQuantity: $hasMissingBillingItemQuantity,
    executionFrom: $executionFrom,
    executionTo: $executionTo,
    orderExecutorIds: $orderExecutorIds,
    serviceIds: $serviceIds,
    toDos: $toDos,
    zips: $zips,
    cities: $cities,
    orderBy: $orderBy
  ) {
    edges {
      ...OperationEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
  }
}
Variables
{
  "after": "abc123",
  "before": "xyz789",
  "first": 123,
  "last": 123,
  "ids": ["4"],
  "query": "xyz789",
  "hasBillingItems": false,
  "hasMissingBillingItemQuantity": true,
  "executionFrom": "2007-12-03",
  "executionTo": "2007-12-03",
  "orderExecutorIds": ["4"],
  "serviceIds": ["4"],
  "toDos": ["MISSING_QUANTITY"],
  "zips": ["abc123"],
  "cities": ["xyz789"],
  "orderBy": OperationOrder
}
Response
{
  "data": {
    "operations": {
      "edges": [OperationEdge],
      "pageInfo": PageInfo,
      "totalCount": 987
    }
  }
}

order

Response

Returns an Order

Arguments
Name Description
id - ID!

Example

Query
query order($id: ID!) {
  order(id: $id) {
    id
    number
    object {
      ...ObjectFragment
    }
    estimate {
      ...EstimateFragment
    }
    instructions
    status
    requiredExecutors
    missingExecutors
    executionOnHolidays
    startDate
    endDate
    latestOperation {
      ...OperationFragment
    }
    services {
      ...OrderServiceFragment
    }
    shifts {
      ...OrderShiftConnectionFragment
    }
    executors {
      ...OrderExecutorConnectionFragment
    }
    operations {
      ...OperationConnectionFragment
    }
    tickets {
      ...TicketConnectionFragment
    }
    materials {
      ...OrderMaterialConnectionFragment
    }
    billingItems {
      ...OrderBillingItemConnectionFragment
    }
    pendingInvoiceItems {
      ...PendingInvoiceItemConnectionFragment
    }
    cancelledAt
    createdAt
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "order": {
      "id": "4",
      "number": 123,
      "object": Object,
      "estimate": Estimate,
      "instructions": "abc123",
      "status": "ACTIVE",
      "requiredExecutors": 123,
      "missingExecutors": 123,
      "executionOnHolidays": true,
      "startDate": "2007-12-03",
      "endDate": "2007-12-03",
      "latestOperation": Operation,
      "services": [OrderService],
      "shifts": OrderShiftConnection,
      "executors": OrderExecutorConnection,
      "operations": OperationConnection,
      "tickets": TicketConnection,
      "materials": OrderMaterialConnection,
      "billingItems": OrderBillingItemConnection,
      "pendingInvoiceItems": PendingInvoiceItemConnection,
      "cancelledAt": "2007-12-03T10:15:30Z",
      "createdAt": "2007-12-03T10:15:30Z"
    }
  }
}

orderExecutor

Response

Returns an OrderExecutor

Arguments
Name Description
id - ID!

Example

Query
query orderExecutor($id: ID!) {
  orderExecutor(id: $id) {
    id
    order {
      ...OrderFragment
    }
    employee {
      ...EmployeeFragment
    }
    subcontractor {
      ...SubcontractorFragment
    }
    startDate
    cancelDate
    isAddedToOrderShift
    createdAt
    orderShifts {
      ...OrderShiftConnectionFragment
    }
    billingItems {
      ...OrderExecutorBillingItemConnectionFragment
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "orderExecutor": {
      "id": 4,
      "order": Order,
      "employee": Employee,
      "subcontractor": Subcontractor,
      "startDate": "2007-12-03",
      "cancelDate": "2007-12-03",
      "isAddedToOrderShift": false,
      "createdAt": "2007-12-03T10:15:30Z",
      "orderShifts": OrderShiftConnection,
      "billingItems": OrderExecutorBillingItemConnection
    }
  }
}

orderService

Response

Returns an OrderService

Arguments
Name Description
id - ID!

Example

Query
query orderService($id: ID!) {
  orderService(id: $id) {
    id
    order {
      ...OrderFragment
    }
    service {
      ...ServiceFragment
    }
    position
    title
    unit
    hasPersonHourUnit
    executionOnDemand
    demandRrule
    nextDemandDate
    lastExecutionDate
    updatedAt
    createdAt
    tasks {
      ...OrderServiceTaskConnectionFragment
    }
    billingItems {
      ...OrderBillingItemConnectionFragment
    }
    materials {
      ...OrderMaterialConnectionFragment
    }
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "orderService": {
      "id": 4,
      "order": Order,
      "service": Service,
      "position": 123,
      "title": "abc123",
      "unit": "xyz789",
      "hasPersonHourUnit": false,
      "executionOnDemand": true,
      "demandRrule": "xyz789",
      "nextDemandDate": "2007-12-03",
      "lastExecutionDate": "2007-12-03",
      "updatedAt": "2007-12-03T10:15:30Z",
      "createdAt": "2007-12-03T10:15:30Z",
      "tasks": OrderServiceTaskConnection,
      "billingItems": OrderBillingItemConnection,
      "materials": OrderMaterialConnection
    }
  }
}

orderServices

Response

Returns an OrderServiceConnection

Arguments
Name Description
after - String
before - String
first - Int
last - Int
query - String Query by title
objectId - ID
orderId - ID
serviceIds - [ID!]
executionOnDemand - Boolean
nextDemandDateFrom - Date
nextDemandDateTo - Date
orderStatus - OrderStatus
orderBy - OrderServiceOrder

Example

Query
query orderServices(
  $after: String,
  $before: String,
  $first: Int,
  $last: Int,
  $query: String,
  $objectId: ID,
  $orderId: ID,
  $serviceIds: [ID!],
  $executionOnDemand: Boolean,
  $nextDemandDateFrom: Date,
  $nextDemandDateTo: Date,
  $orderStatus: OrderStatus,
  $orderBy: OrderServiceOrder
) {
  orderServices(
    after: $after,
    before: $before,
    first: $first,
    last: $last,
    query: $query,
    objectId: $objectId,
    orderId: $orderId,
    serviceIds: $serviceIds,
    executionOnDemand: $executionOnDemand,
    nextDemandDateFrom: $nextDemandDateFrom,
    nextDemandDateTo: $nextDemandDateTo,
    orderStatus: $orderStatus,
    orderBy: $orderBy
  ) {
    edges {
      ...OrderServiceEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
  }
}
Variables
{
  "after": "abc123",
  "before": "abc123",
  "first": 987,
  "last": 123,
  "query": "xyz789",
  "objectId": 4,
  "orderId": 4,
  "serviceIds": ["4"],
  "executionOnDemand": false,
  "nextDemandDateFrom": "2007-12-03",
  "nextDemandDateTo": "2007-12-03",
  "orderStatus": "ACTIVE",
  "orderBy": OrderServiceOrder
}
Response
{
  "data": {
    "orderServices": {
      "edges": [OrderServiceEdge],
      "pageInfo": PageInfo,
      "totalCount": 123
    }
  }
}

orderShift

Response

Returns an OrderShift

Arguments
Name Description
id - ID!

Example

Query
query orderShift($id: ID!) {
  orderShift(id: $id) {
    id
    order {
      ...OrderFragment
    }
    startDate
    endDate
    rrule
    timeFrom
    timeTo
    acrossMidnight
    duration
    requiredExecutors
    deviatingInstructions
    createServiceReceipt
    days {
      ...OrderShiftDayFragment
    }
    tasks {
      ...OrderShiftTaskFragment
    }
    orderServices {
      ...OrderServiceFragment
    }
    executors {
      ...OrderShiftExecutorConnectionFragment
    }
    endedAt
    createdAt
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "orderShift": {
      "id": "4",
      "order": Order,
      "startDate": "2007-12-03",
      "endDate": "2007-12-03",
      "rrule": "abc123",
      "timeFrom": "10:15:30Z",
      "timeTo": "10:15:30Z",
      "acrossMidnight": true,
      "duration": 123,
      "requiredExecutors": 123,
      "deviatingInstructions": "xyz789",
      "createServiceReceipt": true,
      "days": [OrderShiftDay],
      "tasks": [OrderShiftTask],
      "orderServices": [OrderService],
      "executors": OrderShiftExecutorConnection,
      "endedAt": "2007-12-03T10:15:30Z",
      "createdAt": "2007-12-03T10:15:30Z"
    }
  }
}

orders

Response

Returns an OrderConnection!

Arguments
Name Description
after - String
before - String
first - Int
last - Int
query - String Query for number, service title or billing item title
customerId - ID
objectId - ID
serviceIds - [ID!]
status - OrderStatus
isExecutorMissing - Boolean Order is not ended and has fewer active executors than requiredExecutors (active = started by today or the order's future start date, and not yet cancelled).
hasNoOperations - Boolean Order is not ended and has no non-deleted operations.
orderBy - OrderOrder

Example

Query
query orders(
  $after: String,
  $before: String,
  $first: Int,
  $last: Int,
  $query: String,
  $customerId: ID,
  $objectId: ID,
  $serviceIds: [ID!],
  $status: OrderStatus,
  $isExecutorMissing: Boolean,
  $hasNoOperations: Boolean,
  $orderBy: OrderOrder
) {
  orders(
    after: $after,
    before: $before,
    first: $first,
    last: $last,
    query: $query,
    customerId: $customerId,
    objectId: $objectId,
    serviceIds: $serviceIds,
    status: $status,
    isExecutorMissing: $isExecutorMissing,
    hasNoOperations: $hasNoOperations,
    orderBy: $orderBy
  ) {
    edges {
      ...OrderEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
  }
}
Variables
{
  "after": "abc123",
  "before": "abc123",
  "first": 123,
  "last": 987,
  "query": "xyz789",
  "customerId": "4",
  "objectId": 4,
  "serviceIds": ["4"],
  "status": "ACTIVE",
  "isExecutorMissing": true,
  "hasNoOperations": false,
  "orderBy": OrderOrder
}
Response
{
  "data": {
    "orders": {
      "edges": [OrderEdge],
      "pageInfo": PageInfo,
      "totalCount": 987
    }
  }
}

pendingInvoiceItem

Response

Returns a PendingInvoiceItem

Arguments
Name Description
id - ID!

Example

Query
query pendingInvoiceItem($id: ID!) {
  pendingInvoiceItem(id: $id) {
    id
    customer {
      ...CustomerFragment
    }
    object {
      ...ObjectFragment
    }
    status
    title
    description
    quantity
    unitPrice
    taxRate
    unit
    isCreatedManually
    isGroup
    executionStart
    executionEnd
    billingPeriodInterval
    service {
      ...ServiceFragment
    }
    material {
      ...MaterialFragment
    }
    order {
      ...OrderFragment
    }
    billedAt
    createdAt
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "pendingInvoiceItem": {
      "id": "4",
      "customer": Customer,
      "object": Object,
      "status": "PENDING",
      "title": "abc123",
      "description": "abc123",
      "quantity": 123.45,
      "unitPrice": 123,
      "taxRate": 987.65,
      "unit": "abc123",
      "isCreatedManually": true,
      "isGroup": true,
      "executionStart": "2007-12-03",
      "executionEnd": "2007-12-03",
      "billingPeriodInterval": "MONTH",
      "service": Service,
      "material": Material,
      "order": Order,
      "billedAt": "2007-12-03T10:15:30Z",
      "createdAt": "2007-12-03T10:15:30Z"
    }
  }
}

pendingInvoiceItems

Response

Returns a PendingInvoiceItemConnection!

Arguments
Name Description
after - String
before - String
first - Int
last - Int
query - String Query for title
executionFrom - Date Only items with execution at this date or later
executionTo - Date Only items with execution up to and including this date
customerId - ID
objectId - ID
orderId - ID
serviceId - ID
orderBy - PendingInvoiceItemOrder

Example

Query
query pendingInvoiceItems(
  $after: String,
  $before: String,
  $first: Int,
  $last: Int,
  $query: String,
  $executionFrom: Date,
  $executionTo: Date,
  $customerId: ID,
  $objectId: ID,
  $orderId: ID,
  $serviceId: ID,
  $orderBy: PendingInvoiceItemOrder
) {
  pendingInvoiceItems(
    after: $after,
    before: $before,
    first: $first,
    last: $last,
    query: $query,
    executionFrom: $executionFrom,
    executionTo: $executionTo,
    customerId: $customerId,
    objectId: $objectId,
    orderId: $orderId,
    serviceId: $serviceId,
    orderBy: $orderBy
  ) {
    edges {
      ...PendingInvoiceItemEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
  }
}
Variables
{
  "after": "xyz789",
  "before": "abc123",
  "first": 987,
  "last": 123,
  "query": "xyz789",
  "executionFrom": "2007-12-03",
  "executionTo": "2007-12-03",
  "customerId": "4",
  "objectId": "4",
  "orderId": "4",
  "serviceId": "4",
  "orderBy": PendingInvoiceItemOrder
}
Response
{
  "data": {
    "pendingInvoiceItems": {
      "edges": [PendingInvoiceItemEdge],
      "pageInfo": PageInfo,
      "totalCount": 123
    }
  }
}

receipt

Response

Returns a Receipt

Arguments
Name Description
id - ID!

Example

Query
query receipt($id: ID!) {
  receipt(id: $id) {
    id
    company {
      ...CompanyFragment
    }
    customer {
      ...CustomerFragment
    }
    subcontractor {
      ...SubcontractorFragment
    }
    type
    status
    number
    elements {
      ...ReceiptElementFragment
    }
    totalAmount
    outstandingAmount
    dueDate
    receiptDate
    files {
      ...ReceiptFileFragment
    }
    paidAt
    currency
    createdAt
    payments {
      ...PaymentFragment
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "receipt": {
      "id": "4",
      "company": Company,
      "customer": Customer,
      "subcontractor": Subcontractor,
      "type": "EXPENSE",
      "status": "UNPAID",
      "number": "xyz789",
      "elements": [ReceiptElement],
      "totalAmount": 987,
      "outstandingAmount": 987,
      "dueDate": "2007-12-03",
      "receiptDate": "2007-12-03",
      "files": [ReceiptFile],
      "paidAt": "2007-12-03",
      "currency": CurrencyCode,
      "createdAt": "2007-12-03T10:15:30Z",
      "payments": [Payment]
    }
  }
}

receiptElement

Response

Returns a ReceiptElement

Arguments
Name Description
id - ID!

Example

Query
query receiptElement($id: ID!) {
  receiptElement(id: $id) {
    id
    netAmount
    taxAmount
    taxRate
    totalAmount
    createdAt
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "receiptElement": {
      "id": "4",
      "netAmount": 123,
      "taxAmount": 987,
      "taxRate": 987.65,
      "totalAmount": 123,
      "createdAt": "2007-12-03T10:15:30Z"
    }
  }
}

receipts

Response

Returns a ReceiptConnection!

Arguments
Name Description
after - String
before - String
first - Int
last - Int
query - String Query for number
orderBy - ReceiptOrder

Example

Query
query receipts(
  $after: String,
  $before: String,
  $first: Int,
  $last: Int,
  $query: String,
  $orderBy: ReceiptOrder
) {
  receipts(
    after: $after,
    before: $before,
    first: $first,
    last: $last,
    query: $query,
    orderBy: $orderBy
  ) {
    edges {
      ...ReceiptEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
  }
}
Variables
{
  "after": "abc123",
  "before": "abc123",
  "first": 123,
  "last": 987,
  "query": "abc123",
  "orderBy": ReceiptOrder
}
Response
{
  "data": {
    "receipts": {
      "edges": [ReceiptEdge],
      "pageInfo": PageInfo,
      "totalCount": 123
    }
  }
}

service

Response

Returns a Service

Arguments
Name Description
id - ID!

Example

Query
query service($id: ID!) {
  service(id: $id) {
    id
    title
    description
    unitPrice
    taxRate
    unit
    revenueAccount
    areas {
      ...ServiceAreaFragment
    }
    createdAt
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "service": {
      "id": "4",
      "title": "abc123",
      "description": "xyz789",
      "unitPrice": 987,
      "taxRate": 123.45,
      "unit": "xyz789",
      "revenueAccount": 123,
      "areas": [ServiceArea],
      "createdAt": "2007-12-03T10:15:30Z"
    }
  }
}

serviceReceipt

Response

Returns a ServiceReceipt

Arguments
Name Description
id - ID!

Example

Query
query serviceReceipt($id: ID!) {
  serviceReceipt(id: $id) {
    id
    customer {
      ...CustomerFragment
    }
    customerContactPerson {
      ...CustomerContactPersonFragment
    }
    object {
      ...ObjectFragment
    }
    status
    number
    webUrl
    notes
    signatureCity
    signatureDate
    signatureImageUrl
    reviewStatus
    serviceReceiptPdf
    completedAt
    signedAt
    reviewedAt
    language
    currency
    createdAt
    items {
      ...ServiceReceiptItemConnectionFragment
    }
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "serviceReceipt": {
      "id": "4",
      "customer": Customer,
      "customerContactPerson": CustomerContactPerson,
      "object": Object,
      "status": "DRAFT",
      "number": 123,
      "webUrl": "http://www.test.com/",
      "notes": "abc123",
      "signatureCity": "xyz789",
      "signatureDate": "2007-12-03",
      "signatureImageUrl": "http://www.test.com/",
      "reviewStatus": "PENDING",
      "serviceReceiptPdf": "http://www.test.com/",
      "completedAt": "2007-12-03T10:15:30Z",
      "signedAt": "2007-12-03T10:15:30Z",
      "reviewedAt": "2007-12-03T10:15:30Z",
      "language": LanguageTag,
      "currency": CurrencyCode,
      "createdAt": "2007-12-03T10:15:30Z",
      "items": ServiceReceiptItemConnection
    }
  }
}

serviceReceipts

Response

Returns a ServiceReceiptConnection!

Arguments
Name Description
after - String
before - String
first - Int
last - Int
query - String Query by number, status or customer name
status - ServiceReceiptStatus
orderBy - ServiceReceiptOrder

Example

Query
query serviceReceipts(
  $after: String,
  $before: String,
  $first: Int,
  $last: Int,
  $query: String,
  $status: ServiceReceiptStatus,
  $orderBy: ServiceReceiptOrder
) {
  serviceReceipts(
    after: $after,
    before: $before,
    first: $first,
    last: $last,
    query: $query,
    status: $status,
    orderBy: $orderBy
  ) {
    edges {
      ...ServiceReceiptEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
  }
}
Variables
{
  "after": "abc123",
  "before": "abc123",
  "first": 123,
  "last": 123,
  "query": "abc123",
  "status": "DRAFT",
  "orderBy": ServiceReceiptOrder
}
Response
{
  "data": {
    "serviceReceipts": {
      "edges": [ServiceReceiptEdge],
      "pageInfo": PageInfo,
      "totalCount": 987
    }
  }
}

services

Response

Returns a ServiceConnection!

Arguments
Name Description
after - String
before - String
first - Int
last - Int
query - String Query by title
hideEmployeeId - ID Excludes services already assigned to this employee.
excludeIds - [ID!]
orderBy - ServiceOrder

Example

Query
query services(
  $after: String,
  $before: String,
  $first: Int,
  $last: Int,
  $query: String,
  $hideEmployeeId: ID,
  $excludeIds: [ID!],
  $orderBy: ServiceOrder
) {
  services(
    after: $after,
    before: $before,
    first: $first,
    last: $last,
    query: $query,
    hideEmployeeId: $hideEmployeeId,
    excludeIds: $excludeIds,
    orderBy: $orderBy
  ) {
    edges {
      ...ServiceEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
  }
}
Variables
{
  "after": "abc123",
  "before": "abc123",
  "first": 987,
  "last": 987,
  "query": "abc123",
  "hideEmployeeId": "4",
  "excludeIds": [4],
  "orderBy": ServiceOrder
}
Response
{
  "data": {
    "services": {
      "edges": [ServiceEdge],
      "pageInfo": PageInfo,
      "totalCount": 987
    }
  }
}

state

Response

Returns a State

Arguments
Name Description
id - ID!

Example

Query
query state($id: ID!) {
  state(id: $id) {
    id
    name
    countryCode
    stateCode
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "state": {
      "id": 4,
      "name": "xyz789",
      "countryCode": "US",
      "stateCode": StateCode
    }
  }
}

subcontractor

Response

Returns a Subcontractor

Arguments
Name Description
id - ID!

Example

Query
query subcontractor($id: ID!) {
  subcontractor(id: $id) {
    id
    company {
      ...CompanyFragment
    }
    number
    type
    salutation
    firstName
    lastName
    companyName
    addressSupplement
    streetAddress
    zip
    city
    country
    email
    phone
    fax
    website
    taxNumber
    vatId
    datevAccount
    note
    createdAt
    receipts {
      ...ReceiptConnectionFragment
    }
    contactPersons {
      ...SubcontractorContactPersonConnectionFragment
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "subcontractor": {
      "id": 4,
      "company": Company,
      "number": 987,
      "type": "PERSON",
      "salutation": "xyz789",
      "firstName": "abc123",
      "lastName": "xyz789",
      "companyName": "abc123",
      "addressSupplement": "abc123",
      "streetAddress": "xyz789",
      "zip": "abc123",
      "city": "abc123",
      "country": "US",
      "email": "abc123",
      "phone": "xyz789",
      "fax": "abc123",
      "website": "abc123",
      "taxNumber": "xyz789",
      "vatId": "xyz789",
      "datevAccount": 123,
      "note": "xyz789",
      "createdAt": "2007-12-03T10:15:30Z",
      "receipts": ReceiptConnection,
      "contactPersons": SubcontractorContactPersonConnection
    }
  }
}

subcontractorContactPerson

Response

Returns a SubcontractorContactPerson

Arguments
Name Description
id - ID!

Example

Query
query subcontractorContactPerson($id: ID!) {
  subcontractorContactPerson(id: $id) {
    id
    isDefault
    salutation
    firstName
    lastName
    role
    email
    phone
    createdAt
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "subcontractorContactPerson": {
      "id": "4",
      "isDefault": true,
      "salutation": "xyz789",
      "firstName": "xyz789",
      "lastName": "xyz789",
      "role": "abc123",
      "email": "abc123",
      "phone": "xyz789",
      "createdAt": "2007-12-03T10:15:30Z"
    }
  }
}

subcontractors

Response

Returns a SubcontractorConnection!

Arguments
Name Description
after - String
before - String
first - Int
last - Int
query - String Query for number, name, addressSupplement, email or contact person name

Example

Query
query subcontractors(
  $after: String,
  $before: String,
  $first: Int,
  $last: Int,
  $query: String
) {
  subcontractors(
    after: $after,
    before: $before,
    first: $first,
    last: $last,
    query: $query
  ) {
    edges {
      ...SubcontractorEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
  }
}
Variables
{
  "after": "xyz789",
  "before": "xyz789",
  "first": 123,
  "last": 987,
  "query": "abc123"
}
Response
{
  "data": {
    "subcontractors": {
      "edges": [SubcontractorEdge],
      "pageInfo": PageInfo,
      "totalCount": 123
    }
  }
}

supplier

Response

Returns a Supplier

Arguments
Name Description
id - ID!

Example

Query
query supplier($id: ID!) {
  supplier(id: $id) {
    id
    number
    type
    salutation
    firstName
    lastName
    companyName
    addressSupplement
    streetAddress
    zip
    city
    country
    email
    phone
    fax
    website
    taxNumber
    vatId
    datevAccount
    tags
    note
    createdAt
    contactPersons {
      ...SupplierContactPersonConnectionFragment
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "supplier": {
      "id": 4,
      "number": 123,
      "type": "PERSON",
      "salutation": "xyz789",
      "firstName": "xyz789",
      "lastName": "abc123",
      "companyName": "abc123",
      "addressSupplement": "abc123",
      "streetAddress": "abc123",
      "zip": "xyz789",
      "city": "abc123",
      "country": "US",
      "email": "abc123",
      "phone": "xyz789",
      "fax": "xyz789",
      "website": "xyz789",
      "taxNumber": "xyz789",
      "vatId": "abc123",
      "datevAccount": 123,
      "tags": ["abc123"],
      "note": "abc123",
      "createdAt": "2007-12-03T10:15:30Z",
      "contactPersons": SupplierContactPersonConnection
    }
  }
}

supplierContactPerson

Response

Returns a SupplierContactPerson

Arguments
Name Description
id - ID!

Example

Query
query supplierContactPerson($id: ID!) {
  supplierContactPerson(id: $id) {
    id
    isDefault
    salutation
    firstName
    lastName
    role
    email
    phone
    createdAt
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "supplierContactPerson": {
      "id": "4",
      "isDefault": true,
      "salutation": "xyz789",
      "firstName": "abc123",
      "lastName": "abc123",
      "role": "xyz789",
      "email": "xyz789",
      "phone": "abc123",
      "createdAt": "2007-12-03T10:15:30Z"
    }
  }
}

suppliers

Response

Returns a SupplierConnection!

Arguments
Name Description
after - String
before - String
first - Int
last - Int
query - String Query for number, name, addressSupplement, email or contact person name
tags - [String!] Filter by tags (suppliers must have at least one of the specified tags)
orderBy - SupplierOrder

Example

Query
query suppliers(
  $after: String,
  $before: String,
  $first: Int,
  $last: Int,
  $query: String,
  $tags: [String!],
  $orderBy: SupplierOrder
) {
  suppliers(
    after: $after,
    before: $before,
    first: $first,
    last: $last,
    query: $query,
    tags: $tags,
    orderBy: $orderBy
  ) {
    edges {
      ...SupplierEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
  }
}
Variables
{
  "after": "abc123",
  "before": "abc123",
  "first": 123,
  "last": 123,
  "query": "xyz789",
  "tags": ["xyz789"],
  "orderBy": SupplierOrder
}
Response
{
  "data": {
    "suppliers": {
      "edges": [SupplierEdge],
      "pageInfo": PageInfo,
      "totalCount": 987
    }
  }
}

ticket

Response

Returns a Ticket

Arguments
Name Description
id - ID!

Example

Query
query ticket($id: ID!) {
  ticket(id: $id) {
    id
    object {
      ...ObjectFragment
    }
    objectRoom {
      ...ObjectRoomFragment
    }
    order {
      ...OrderFragment
    }
    sourceOperation {
      ...OperationFragment
    }
    number
    type
    isPublic
    inputChannel
    location
    description
    status
    priority
    discoverDate
    dueDate
    rejectedAt
    completedAt
    files {
      ...TicketFileConnectionFragment
    }
    operations {
      ...OperationConnectionFragment
    }
    createdAt
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "ticket": {
      "id": 4,
      "object": Object,
      "objectRoom": ObjectRoom,
      "order": Order,
      "sourceOperation": Operation,
      "number": 987,
      "type": "COMPLAINT",
      "isPublic": false,
      "inputChannel": "PORTAL",
      "location": "xyz789",
      "description": "abc123",
      "status": "OPEN",
      "priority": "LOW",
      "discoverDate": "2007-12-03",
      "dueDate": "2007-12-03",
      "rejectedAt": "2007-12-03T10:15:30Z",
      "completedAt": "2007-12-03T10:15:30Z",
      "files": TicketFileConnection,
      "operations": OperationConnection,
      "createdAt": "2007-12-03T10:15:30Z"
    }
  }
}

tickets

Response

Returns a TicketConnection!

Arguments
Name Description
after - String
before - String
first - Int
last - Int
customerId - ID
objectId - ID
orderId - ID
query - String Query by number
type - TicketType
isPublic - Boolean
status - TicketStatus
priority - TicketPriority
orderBy - TicketOrder

Example

Query
query tickets(
  $after: String,
  $before: String,
  $first: Int,
  $last: Int,
  $customerId: ID,
  $objectId: ID,
  $orderId: ID,
  $query: String,
  $type: TicketType,
  $isPublic: Boolean,
  $status: TicketStatus,
  $priority: TicketPriority,
  $orderBy: TicketOrder
) {
  tickets(
    after: $after,
    before: $before,
    first: $first,
    last: $last,
    customerId: $customerId,
    objectId: $objectId,
    orderId: $orderId,
    query: $query,
    type: $type,
    isPublic: $isPublic,
    status: $status,
    priority: $priority,
    orderBy: $orderBy
  ) {
    edges {
      ...TicketEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
  }
}
Variables
{
  "after": "xyz789",
  "before": "abc123",
  "first": 987,
  "last": 123,
  "customerId": 4,
  "objectId": "4",
  "orderId": "4",
  "query": "xyz789",
  "type": "COMPLAINT",
  "isPublic": true,
  "status": "OPEN",
  "priority": "LOW",
  "orderBy": TicketOrder
}
Response
{
  "data": {
    "tickets": {
      "edges": [TicketEdge],
      "pageInfo": PageInfo,
      "totalCount": 987
    }
  }
}

timeRecord

Response

Returns a TimeRecord

Arguments
Name Description
id - ID!

Example

Query
query timeRecord($id: ID!) {
  timeRecord(id: $id) {
    id
    employee {
      ...EmployeeFragment
    }
    object {
      ...ObjectFragment
    }
    operationExecutor {
      ...OperationExecutorFragment
    }
    date
    journeyStart
    start
    end
    planDuration
    actualDuration
    breakDuration
    hasTotalBreakInput
    breaks {
      ...TimeRecordBreakFragment
    }
    journeyDuration
    journeyStartLocation {
      ...LocationFragment
    }
    startLocation {
      ...LocationFragment
    }
    endLocation {
      ...LocationFragment
    }
    createdAutomatically
    confirmedAt
    createdAt
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "timeRecord": {
      "id": 4,
      "employee": Employee,
      "object": Object,
      "operationExecutor": OperationExecutor,
      "date": "2007-12-03",
      "journeyStart": "2007-12-03T10:15:30Z",
      "start": "2007-12-03T10:15:30Z",
      "end": "2007-12-03T10:15:30Z",
      "planDuration": 987,
      "actualDuration": 123,
      "breakDuration": 123,
      "hasTotalBreakInput": true,
      "breaks": [TimeRecordBreak],
      "journeyDuration": 123,
      "journeyStartLocation": Location,
      "startLocation": Location,
      "endLocation": Location,
      "createdAutomatically": true,
      "confirmedAt": "2007-12-03T10:15:30Z",
      "createdAt": "2007-12-03T10:15:30Z"
    }
  }
}

timeRecordBreak

Response

Returns a TimeRecordBreak

Arguments
Name Description
id - ID!

Example

Query
query timeRecordBreak($id: ID!) {
  timeRecordBreak(id: $id) {
    id
    timeRecord {
      ...TimeRecordFragment
    }
    start
    end
    createdAt
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "timeRecordBreak": {
      "id": 4,
      "timeRecord": TimeRecord,
      "start": "2007-12-03T10:15:30Z",
      "end": "2007-12-03T10:15:30Z",
      "createdAt": "2007-12-03T10:15:30Z"
    }
  }
}

timeRecords

Response

Returns a TimeRecordConnection!

Arguments
Name Description
after - String
before - String
first - Int
last - Int
dateFrom - Date Only TimeRecords with date at this date or later will be counted.
dateTo - Date Only TimeRecords with date before and up to and including this date will be counted.
isRunning - Boolean If set, returns only running (true) or only finished (false) time records
isConfirmed - Boolean If set, returns only confirmed (true) or only unconfirmed (false) time records
orderBy - TimeRecordOrder

Example

Query
query timeRecords(
  $after: String,
  $before: String,
  $first: Int,
  $last: Int,
  $dateFrom: Date,
  $dateTo: Date,
  $isRunning: Boolean,
  $isConfirmed: Boolean,
  $orderBy: TimeRecordOrder
) {
  timeRecords(
    after: $after,
    before: $before,
    first: $first,
    last: $last,
    dateFrom: $dateFrom,
    dateTo: $dateTo,
    isRunning: $isRunning,
    isConfirmed: $isConfirmed,
    orderBy: $orderBy
  ) {
    edges {
      ...TimeRecordEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
  }
}
Variables
{
  "after": "abc123",
  "before": "abc123",
  "first": 987,
  "last": 987,
  "dateFrom": "2007-12-03",
  "dateTo": "2007-12-03",
  "isRunning": false,
  "isConfirmed": false,
  "orderBy": TimeRecordOrder
}
Response
{
  "data": {
    "timeRecords": {
      "edges": [TimeRecordEdge],
      "pageInfo": PageInfo,
      "totalCount": 987
    }
  }
}

unassignedOperations

Description

Operations which are not assigned to executors (or less than in requiredExecutors)

Response

Returns an OperationConnection!

Arguments
Name Description
objectId - ID
after - String
before - String
first - Int
last - Int
query - String Query for title
hasBillingItems - Boolean
hasMissingBillingItemQuantity - Boolean
executionFrom - Date Only operations with execution at this date or later will be counted.
executionTo - Date Only operations with execution before and up to and including this date will be counted.
serviceIds - [ID!]
zips - [String!]
cities - [String!]
orderBy - OperationOrder

Example

Query
query unassignedOperations(
  $objectId: ID,
  $after: String,
  $before: String,
  $first: Int,
  $last: Int,
  $query: String,
  $hasBillingItems: Boolean,
  $hasMissingBillingItemQuantity: Boolean,
  $executionFrom: Date,
  $executionTo: Date,
  $serviceIds: [ID!],
  $zips: [String!],
  $cities: [String!],
  $orderBy: OperationOrder
) {
  unassignedOperations(
    objectId: $objectId,
    after: $after,
    before: $before,
    first: $first,
    last: $last,
    query: $query,
    hasBillingItems: $hasBillingItems,
    hasMissingBillingItemQuantity: $hasMissingBillingItemQuantity,
    executionFrom: $executionFrom,
    executionTo: $executionTo,
    serviceIds: $serviceIds,
    zips: $zips,
    cities: $cities,
    orderBy: $orderBy
  ) {
    edges {
      ...OperationEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
  }
}
Variables
{
  "objectId": 4,
  "after": "xyz789",
  "before": "abc123",
  "first": 123,
  "last": 123,
  "query": "xyz789",
  "hasBillingItems": true,
  "hasMissingBillingItemQuantity": true,
  "executionFrom": "2007-12-03",
  "executionTo": "2007-12-03",
  "serviceIds": ["4"],
  "zips": ["xyz789"],
  "cities": ["xyz789"],
  "orderBy": OperationOrder
}
Response
{
  "data": {
    "unassignedOperations": {
      "edges": [OperationEdge],
      "pageInfo": PageInfo,
      "totalCount": 987
    }
  }
}

Mutations

acceptEstimate

Description

Marks a completed estimate as accepted on behalf of the company (acceptedAt set, isAnsweredByCustomer false). Not possible once the customer already answered.

Response

Returns an AcceptEstimatePayload

Arguments
Name Description
input - AcceptEstimateInput!

Example

Query
mutation acceptEstimate($input: AcceptEstimateInput!) {
  acceptEstimate(input: $input) {
    estimate {
      ...EstimateFragment
    }
  }
}
Variables
{"input": AcceptEstimateInput}
Response
{"data": {"acceptEstimate": {"estimate": Estimate}}}

addOrderShiftExecutors

Description

Adds executors to an OrderShift

Response

Returns an AddOrderShiftExecutorsPayload

Arguments
Name Description
input - AddOrderShiftExecutorsInput!

Example

Query
mutation addOrderShiftExecutors($input: AddOrderShiftExecutorsInput!) {
  addOrderShiftExecutors(input: $input) {
    orderShiftExecutors {
      ...OrderShiftExecutorFragment
    }
  }
}
Variables
{"input": AddOrderShiftExecutorsInput}
Response
{
  "data": {
    "addOrderShiftExecutors": {
      "orderShiftExecutors": [OrderShiftExecutor]
    }
  }
}

approveAbsence

Response

Returns an ApproveAbsencePayload

Arguments
Name Description
input - ApproveAbsenceInput!

Example

Query
mutation approveAbsence($input: ApproveAbsenceInput!) {
  approveAbsence(input: $input) {
    absence {
      ...AbsenceFragment
    }
  }
}
Variables
{"input": ApproveAbsenceInput}
Response
{"data": {"approveAbsence": {"absence": Absence}}}

billOrderBillingItem

Description

Forces billing of a PER_OPERATION OrderBillingItem up to untilDate by creating the pending items for every executed operation in that range. untilDate has to be in the future and within the item's and the order's start/end dates.

Response

Returns a BillOrderBillingItemPayload

Arguments
Name Description
input - BillOrderBillingItemInput!

Example

Query
mutation billOrderBillingItem($input: BillOrderBillingItemInput!) {
  billOrderBillingItem(input: $input) {
    orderBillingItem {
      ...OrderBillingItemFragment
    }
  }
}
Variables
{"input": BillOrderBillingItemInput}
Response
{
  "data": {
    "billOrderBillingItem": {
      "orderBillingItem": OrderBillingItem
    }
  }
}

cancelEmployee

Description

Soft-terminates an employee: sets cancelDate and keeps the record and history (status CANCELLED after that date).

Response

Returns a CancelEmployeePayload

Arguments
Name Description
input - CancelEmployeeInput!

Example

Query
mutation cancelEmployee($input: CancelEmployeeInput!) {
  cancelEmployee(input: $input) {
    employee {
      ...EmployeeFragment
    }
  }
}
Variables
{"input": CancelEmployeeInput}
Response
{"data": {"cancelEmployee": {"employee": Employee}}}

cancelInvoice

Description

Cancels a completed invoice by creating a CANCELLATION invoice (same number, suffix -ST, negated amounts); the original becomes CANCELLED. Cannot be undone.

Response

Returns a CancelInvoicePayload

Arguments
Name Description
input - CancelInvoiceInput!

Example

Query
mutation cancelInvoice($input: CancelInvoiceInput!) {
  cancelInvoice(input: $input) {
    invoice {
      ...InvoiceFragment
    }
  }
}
Variables
{"input": CancelInvoiceInput}
Response
{"data": {"cancelInvoice": {"invoice": Invoice}}}

cancelOrderExecutor

Description

Cancels an OrderExecutor as of cancelDate while keeping its operation history and any already billed amounts. Use cancelOrderExecutor for executors that have already started working or that have billing items — subcontractor executors with billing items must be cancelled rather than deleted. All of the executor's billing items must be ended via endOrderExecutorBillingItem beforehand.

Response

Returns a CancelOrderExecutorPayload

Arguments
Name Description
input - CancelOrderExecutorInput!

Example

Query
mutation cancelOrderExecutor($input: CancelOrderExecutorInput!) {
  cancelOrderExecutor(input: $input) {
    orderExecutor {
      ...OrderExecutorFragment
    }
  }
}
Variables
{"input": CancelOrderExecutorInput}
Response
{
  "data": {
    "cancelOrderExecutor": {
      "orderExecutor": OrderExecutor
    }
  }
}

completeCreditNote

Description

Finalizes a DRAFT credit note: generates the PDF and makes it immutable.

Response

Returns a CompleteCreditNotePayload

Arguments
Name Description
input - CompleteCreditNoteInput!

Example

Query
mutation completeCreditNote($input: CompleteCreditNoteInput!) {
  completeCreditNote(input: $input) {
    creditNote {
      ...CreditNoteFragment
    }
  }
}
Variables
{"input": CompleteCreditNoteInput}
Response
{
  "data": {
    "completeCreditNote": {"creditNote": CreditNote}
  }
}

completeEstimate

Description

Finalizes a DRAFT estimate: generates the PDF.

Response

Returns a CompleteEstimatePayload

Arguments
Name Description
input - CompleteEstimateInput!

Example

Query
mutation completeEstimate($input: CompleteEstimateInput!) {
  completeEstimate(input: $input) {
    estimate {
      ...EstimateFragment
    }
  }
}
Variables
{"input": CompleteEstimateInput}
Response
{"data": {"completeEstimate": {"estimate": Estimate}}}

completeInvoice

Description

Finalizes a DRAFT invoice: generates the PDF (and e-invoice XML when configured) and makes it immutable. The invoice number was already assigned at creation.

Response

Returns a CompleteInvoicePayload

Arguments
Name Description
input - CompleteInvoiceInput!

Example

Query
mutation completeInvoice($input: CompleteInvoiceInput!) {
  completeInvoice(input: $input) {
    invoice {
      ...InvoiceFragment
    }
  }
}
Variables
{"input": CompleteInvoiceInput}
Response
{"data": {"completeInvoice": {"invoice": Invoice}}}

completeTicket

Response

Returns a CompleteTicketPayload

Arguments
Name Description
input - CompleteTicketInput!

Example

Query
mutation completeTicket($input: CompleteTicketInput!) {
  completeTicket(input: $input) {
    ticket {
      ...TicketFragment
    }
  }
}
Variables
{"input": CompleteTicketInput}
Response
{"data": {"completeTicket": {"ticket": Ticket}}}

confirmTimeRecord

Response

Returns a ConfirmTimeRecordPayload

Arguments
Name Description
input - ConfirmTimeRecordInput!

Example

Query
mutation confirmTimeRecord($input: ConfirmTimeRecordInput!) {
  confirmTimeRecord(input: $input) {
    timeRecord {
      ...TimeRecordFragment
    }
  }
}
Variables
{"input": ConfirmTimeRecordInput}
Response
{
  "data": {
    "confirmTimeRecord": {"timeRecord": TimeRecord}
  }
}

confirmTimeRecords

Description

Confirms up to 100 time records with per-id results (partial success).

Response

Returns a ConfirmTimeRecordsPayload

Arguments
Name Description
input - ConfirmTimeRecordsInput!

Example

Query
mutation confirmTimeRecords($input: ConfirmTimeRecordsInput!) {
  confirmTimeRecords(input: $input) {
    results {
      ...ConfirmTimeRecordResultFragment
    }
  }
}
Variables
{"input": ConfirmTimeRecordsInput}
Response
{
  "data": {
    "confirmTimeRecords": {
      "results": [ConfirmTimeRecordResult]
    }
  }
}

createAbsence

Description

Creates an absence for an employee (status PENDING; approve via approveAbsence).

Response

Returns a CreateAbsencePayload

Arguments
Name Description
input - CreateAbsenceInput!

Example

Query
mutation createAbsence($input: CreateAbsenceInput!) {
  createAbsence(input: $input) {
    absence {
      ...AbsenceFragment
    }
  }
}
Variables
{"input": CreateAbsenceInput}
Response
{"data": {"createAbsence": {"absence": Absence}}}

createCreditNote

Description

Creates a credit note for a subcontractor with manually provided items.

Response

Returns a CreateCreditNotePayload

Arguments
Name Description
input - CreateCreditNoteInput!

Example

Query
mutation createCreditNote($input: CreateCreditNoteInput!) {
  createCreditNote(input: $input) {
    creditNote {
      ...CreditNoteFragment
    }
  }
}
Variables
{"input": CreateCreditNoteInput}
Response
{"data": {"createCreditNote": {"creditNote": CreditNote}}}

createCustomer

Response

Returns a CreateCustomerPayload

Arguments
Name Description
input - CreateCustomerInput!

Example

Query
mutation createCustomer($input: CreateCustomerInput!) {
  createCustomer(input: $input) {
    customer {
      ...CustomerFragment
    }
  }
}
Variables
{"input": CreateCustomerInput}
Response
{"data": {"createCustomer": {"customer": Customer}}}

createCustomerContactPerson

Arguments
Name Description
input - CreateCustomerContactPersonInput!

Example

Query
mutation createCustomerContactPerson($input: CreateCustomerContactPersonInput!) {
  createCustomerContactPerson(input: $input) {
    customerContactPerson {
      ...CustomerContactPersonFragment
    }
  }
}
Variables
{"input": CreateCustomerContactPersonInput}
Response
{
  "data": {
    "createCustomerContactPerson": {
      "customerContactPerson": CustomerContactPerson
    }
  }
}

createEmployee

Response

Returns a CreateEmployeePayload

Arguments
Name Description
input - CreateEmployeeInput!

Example

Query
mutation createEmployee($input: CreateEmployeeInput!) {
  createEmployee(input: $input) {
    employee {
      ...EmployeeFragment
    }
  }
}
Variables
{"input": CreateEmployeeInput}
Response
{"data": {"createEmployee": {"employee": Employee}}}

createEmployeeOperationExecutors

Arguments
Name Description
input - CreateEmployeeOperationExecutorsInput!

Example

Query
mutation createEmployeeOperationExecutors($input: CreateEmployeeOperationExecutorsInput!) {
  createEmployeeOperationExecutors(input: $input) {
    operationExecutors {
      ...OperationExecutorFragment
    }
  }
}
Variables
{"input": CreateEmployeeOperationExecutorsInput}
Response
{
  "data": {
    "createEmployeeOperationExecutors": {
      "operationExecutors": [OperationExecutor]
    }
  }
}

createEmployeeOrderExecutors

Description

Assigns one or more employees to the order as executors, creating their operation executors for the upcoming operations.

Arguments
Name Description
input - CreateEmployeeOrderExecutorsInput!

Example

Query
mutation createEmployeeOrderExecutors($input: CreateEmployeeOrderExecutorsInput!) {
  createEmployeeOrderExecutors(input: $input) {
    orderExecutors {
      ...OrderExecutorFragment
    }
  }
}
Variables
{"input": CreateEmployeeOrderExecutorsInput}
Response
{
  "data": {
    "createEmployeeOrderExecutors": {
      "orderExecutors": [OrderExecutor]
    }
  }
}

createEmployeeWorkingTimeModel

Arguments
Name Description
input - CreateEmployeeWorkingTimeModelInput!

Example

Query
mutation createEmployeeWorkingTimeModel($input: CreateEmployeeWorkingTimeModelInput!) {
  createEmployeeWorkingTimeModel(input: $input) {
    employeeWorkingTimeModel {
      ...EmployeeWorkingTimeModelFragment
    }
  }
}
Variables
{"input": CreateEmployeeWorkingTimeModelInput}
Response
{
  "data": {
    "createEmployeeWorkingTimeModel": {
      "employeeWorkingTimeModel": EmployeeWorkingTimeModel
    }
  }
}

createEstimate

Response

Returns a CreateEstimatePayload

Arguments
Name Description
input - CreateEstimateInput!

Example

Query
mutation createEstimate($input: CreateEstimateInput!) {
  createEstimate(input: $input) {
    estimate {
      ...EstimateFragment
    }
  }
}
Variables
{"input": CreateEstimateInput}
Response
{"data": {"createEstimate": {"estimate": Estimate}}}

createInvoice

Description

Creates a standalone invoice with manually provided items. To bill recorded work that is waiting as pending items (Ausstehende Posten), use createInvoiceFromPendingInvoiceItems instead. status COMPLETED finalizes immediately; PAID additionally records a full payment.

Response

Returns a CreateInvoicePayload

Arguments
Name Description
input - CreateInvoiceInput!

Example

Query
mutation createInvoice($input: CreateInvoiceInput!) {
  createInvoice(input: $input) {
    invoice {
      ...InvoiceFragment
    }
  }
}
Variables
{"input": CreateInvoiceInput}
Response
{"data": {"createInvoice": {"invoice": Invoice}}}

createInvoiceFromPendingInvoiceItems

Description

Bills the given pending invoice items (Ausstehende Posten) and directly creates a COMPLETED invoice — no separate completeInvoice call is needed. The items are marked BILLED. All pending invoice items must belong to the same customer.

Arguments
Name Description
input - CreateInvoiceFromPendingInvoiceItemsInput!

Example

Query
mutation createInvoiceFromPendingInvoiceItems($input: CreateInvoiceFromPendingInvoiceItemsInput!) {
  createInvoiceFromPendingInvoiceItems(input: $input) {
    invoice {
      ...InvoiceFragment
    }
  }
}
Variables
{"input": CreateInvoiceFromPendingInvoiceItemsInput}
Response
{
  "data": {
    "createInvoiceFromPendingInvoiceItems": {
      "invoice": Invoice
    }
  }
}

createMaterial

Description

Creates a catalog material. number is auto-generated (highest + 1) when omitted.

Response

Returns a CreateMaterialPayload

Arguments
Name Description
input - CreateMaterialInput!

Example

Query
mutation createMaterial($input: CreateMaterialInput!) {
  createMaterial(input: $input) {
    material {
      ...MaterialFragment
    }
  }
}
Variables
{"input": CreateMaterialInput}
Response
{"data": {"createMaterial": {"material": Material}}}

createMaterialGroup

Response

Returns a CreateMaterialGroupPayload

Arguments
Name Description
input - CreateMaterialGroupInput!

Example

Query
mutation createMaterialGroup($input: CreateMaterialGroupInput!) {
  createMaterialGroup(input: $input) {
    materialGroup {
      ...MaterialGroupFragment
    }
  }
}
Variables
{"input": CreateMaterialGroupInput}
Response
{
  "data": {
    "createMaterialGroup": {
      "materialGroup": MaterialGroup
    }
  }
}

createObject

Response

Returns a CreateObjectPayload

Arguments
Name Description
input - CreateObjectInput!

Example

Query
mutation createObject($input: CreateObjectInput!) {
  createObject(input: $input) {
    object {
      ...ObjectFragment
    }
  }
}
Variables
{"input": CreateObjectInput}
Response
{"data": {"createObject": {"object": Object}}}

createObjectRooms

Response

Returns a CreateObjectRoomsPayload

Arguments
Name Description
input - CreateObjectRoomsInput!

Example

Query
mutation createObjectRooms($input: CreateObjectRoomsInput!) {
  createObjectRooms(input: $input) {
    createdRooms {
      ...ObjectRoomFragment
    }
    errors {
      ...ObjectRoomErrorFragment
    }
  }
}
Variables
{"input": CreateObjectRoomsInput}
Response
{
  "data": {
    "createObjectRooms": {
      "createdRooms": [ObjectRoom],
      "errors": [ObjectRoomError]
    }
  }
}

createOperationBillingItem

Description

Creates a billing position (Abrechnungsposition) on an executed operation. The operation must already be executed. Provide either a fixed quantity or a quantitySource (INPUT, SERVICE_RECEIPT or TIME_RECORD), never both. quantitySource SERVICE_RECEIPT requires the matching operationServiceId (type SERVICE) or operationMaterialId (type MATERIAL); TIME_RECORD requires hasPersonHourUnit and type SERVICE or JOURNEY.

Arguments
Name Description
input - CreateOperationBillingItemInput!

Example

Query
mutation createOperationBillingItem($input: CreateOperationBillingItemInput!) {
  createOperationBillingItem(input: $input) {
    operationBillingItem {
      ...OperationBillingItemFragment
    }
  }
}
Variables
{"input": CreateOperationBillingItemInput}
Response
{
  "data": {
    "createOperationBillingItem": {
      "operationBillingItem": OperationBillingItem
    }
  }
}

createOperationReport

Response

Returns a CreateOperationReportPayload

Arguments
Name Description
input - CreateOperationReportInput!

Example

Query
mutation createOperationReport($input: CreateOperationReportInput!) {
  createOperationReport(input: $input) {
    operationReport {
      ...OperationReportFragment
    }
  }
}
Variables
{"input": CreateOperationReportInput}
Response
{
  "data": {
    "createOperationReport": {
      "operationReport": OperationReport
    }
  }
}

createOperationReportFile

Description

Registers a report file and returns a presigned uploadUrl to PUT the file to.

Arguments
Name Description
input - CreateOperationReportFileInput!

Example

Query
mutation createOperationReportFile($input: CreateOperationReportFileInput!) {
  createOperationReportFile(input: $input) {
    uploadUrl
    operationReportFile {
      ...OperationReportFileFragment
    }
  }
}
Variables
{"input": CreateOperationReportFileInput}
Response
{
  "data": {
    "createOperationReportFile": {
      "uploadUrl": "http://www.test.com/",
      "operationReportFile": OperationReportFile
    }
  }
}

createOperationReportFileFromComment

Arguments
Name Description
input - CreateOperationReportFileFromCommentInput!

Example

Query
mutation createOperationReportFileFromComment($input: CreateOperationReportFileFromCommentInput!) {
  createOperationReportFileFromComment(input: $input) {
    operationReportFiles {
      ...OperationReportFileFragment
    }
  }
}
Variables
{"input": CreateOperationReportFileFromCommentInput}
Response
{
  "data": {
    "createOperationReportFileFromComment": {
      "operationReportFiles": [OperationReportFile]
    }
  }
}

createOperations

Description

Creates one operation per date in executionDates — either for an existing order (orderId + orderServiceIds) or standalone at an object (objectId + operationServices). Executors and times apply to every created operation.

Response

Returns a CreateOperationsPayload

Arguments
Name Description
input - CreateOperationsInput!

Example

Query
mutation createOperations($input: CreateOperationsInput!) {
  createOperations(input: $input) {
    operations {
      ...OperationFragment
    }
  }
}
Variables
{"input": CreateOperationsInput}
Response
{
  "data": {
    "createOperations": {"operations": [Operation]}
  }
}

createOrder

Description

Creates an order (Auftrag) at an object together with its services, billing items and executors. An order is the recurring work agreement under which operations are scheduled and carried out at a customer's service location.

Response

Returns a CreateOrderPayload

Arguments
Name Description
input - CreateOrderInput!

Example

Query
mutation createOrder($input: CreateOrderInput!) {
  createOrder(input: $input) {
    order {
      ...OrderFragment
    }
  }
}
Variables
{"input": CreateOrderInput}
Response
{"data": {"createOrder": {"order": Order}}}

createOrderBillingItem

Description

Creates a billing position (OrderBillingItem) on an order, or directly on an object when no orderId is given. The billingModel determines how it is invoiced: ONE_TIME (billed once over the given period), RECURRING (repeats every frequency/interval) or PER_OPERATION (billed per executed operation). Provide either orderId or objectId. quantitySource can only be set on PER_OPERATION.

Response

Returns a CreateOrderBillingItemPayload

Arguments
Name Description
input - CreateOrderBillingItemInput!

Example

Query
mutation createOrderBillingItem($input: CreateOrderBillingItemInput!) {
  createOrderBillingItem(input: $input) {
    orderBillingItem {
      ...OrderBillingItemFragment
    }
  }
}
Variables
{"input": CreateOrderBillingItemInput}
Response
{
  "data": {
    "createOrderBillingItem": {
      "orderBillingItem": OrderBillingItem
    }
  }
}

createOrderBillingItemReduction

Description

Creates a manual reduction for an OrderBillingItem over the given execution period. unitPrice has to be negative. Returns the reduction PendingInvoiceItem and one PendingCreditNoteItem per affected executor billing item.

Arguments
Name Description
input - CreateOrderBillingItemReductionInput!

Example

Query
mutation createOrderBillingItemReduction($input: CreateOrderBillingItemReductionInput!) {
  createOrderBillingItemReduction(input: $input) {
    pendingInvoiceItem {
      ...PendingInvoiceItemFragment
    }
    pendingCreditNoteItems {
      ...PendingCreditNoteItemFragment
    }
  }
}
Variables
{"input": CreateOrderBillingItemReductionInput}
Response
{
  "data": {
    "createOrderBillingItemReduction": {
      "pendingInvoiceItem": PendingInvoiceItem,
      "pendingCreditNoteItems": [PendingCreditNoteItem]
    }
  }
}

createOrderExecutorBillingItem

Description

Creates a billing position for a subcontractor order executor — the credit-note side describing what the subcontractor is paid. Mirrors the OrderBillingItem billing models (ONE_TIME, RECURRING, PER_OPERATION).

Arguments
Name Description
input - CreateOrderExecutorBillingItemInput!

Example

Query
mutation createOrderExecutorBillingItem($input: CreateOrderExecutorBillingItemInput!) {
  createOrderExecutorBillingItem(input: $input) {
    orderExecutorBillingItem {
      ...OrderExecutorBillingItemFragment
    }
  }
}
Variables
{"input": CreateOrderExecutorBillingItemInput}
Response
{
  "data": {
    "createOrderExecutorBillingItem": {
      "orderExecutorBillingItem": OrderExecutorBillingItem
    }
  }
}

createOrderService

Description

Adds a service (OrderService) from the company's service catalog to an order. With executionOnDemand the service is executed only on demand, optionally driven by a demandRrule; otherwise it is executed via the order's shifts.

Response

Returns a CreateOrderServicePayload

Arguments
Name Description
input - CreateOrderServiceInput!

Example

Query
mutation createOrderService($input: CreateOrderServiceInput!) {
  createOrderService(input: $input) {
    orderService {
      ...OrderServiceFragment
    }
  }
}
Variables
{"input": CreateOrderServiceInput}
Response
{
  "data": {
    "createOrderService": {"orderService": OrderService}
  }
}

createOrderServiceTask

Description

Adds a task to an OrderService and propagates it to the OrderService's upcoming operations. An optional serviceAreaId must belong to the same service.

Response

Returns a CreateOrderServiceTaskPayload

Arguments
Name Description
input - CreateOrderServiceTaskInput!

Example

Query
mutation createOrderServiceTask($input: CreateOrderServiceTaskInput!) {
  createOrderServiceTask(input: $input) {
    orderServiceTask {
      ...OrderServiceTaskFragment
    }
  }
}
Variables
{"input": CreateOrderServiceTaskInput}
Response
{
  "data": {
    "createOrderServiceTask": {
      "orderServiceTask": OrderServiceTask
    }
  }
}

createOrderServiceTaskRooms

Description

Links up to 100 object rooms to an OrderServiceTask and propagates them to its non-completed operation tasks. Rooms must belong to the order's object; already linked rooms are skipped. Returns the ids of the newly linked object rooms.

Arguments
Name Description
input - CreateOrderServiceTaskRoomsInput!

Example

Query
mutation createOrderServiceTaskRooms($input: CreateOrderServiceTaskRoomsInput!) {
  createOrderServiceTaskRooms(input: $input) {
    objectRoomIds
  }
}
Variables
{"input": CreateOrderServiceTaskRoomsInput}
Response
{"data": {"createOrderServiceTaskRooms": {"objectRoomIds": [4]}}}

createOrderShift

Description

Creates a shift (recurring schedule) on an order; operations are generated asynchronously.

Response

Returns a CreateOrderShiftPayload

Arguments
Name Description
input - CreateOrderShiftInput!

Example

Query
mutation createOrderShift($input: CreateOrderShiftInput!) {
  createOrderShift(input: $input) {
    orderShift {
      ...OrderShiftFragment
    }
  }
}
Variables
{"input": CreateOrderShiftInput}
Response
{"data": {"createOrderShift": {"orderShift": OrderShift}}}

createPayment

Description

Records a payment on an invoice or a receipt (provide exactly one id). When the payments cover the outstanding amount, status changes to PAID and paidAt is set. Skonto is applied automatically when the invoice qualifies and is paid within the skonto deadline.

Response

Returns a CreatePaymentPayload

Arguments
Name Description
input - CreatePaymentInput!

Example

Query
mutation createPayment($input: CreatePaymentInput!) {
  createPayment(input: $input) {
    payment {
      ...PaymentFragment
    }
    invoice {
      ...InvoiceFragment
    }
  }
}
Variables
{"input": CreatePaymentInput}
Response
{
  "data": {
    "createPayment": {
      "payment": Payment,
      "invoice": Invoice
    }
  }
}

createPendingInvoiceItem

Description

Creates a manual pending item (Ausstehender Posten) to be billed later via createInvoiceFromPendingInvoiceItems.

Response

Returns a CreatePendingInvoiceItemPayload

Arguments
Name Description
input - CreatePendingInvoiceItemInput!

Example

Query
mutation createPendingInvoiceItem($input: CreatePendingInvoiceItemInput!) {
  createPendingInvoiceItem(input: $input) {
    pendingInvoiceItem {
      ...PendingInvoiceItemFragment
    }
  }
}
Variables
{"input": CreatePendingInvoiceItemInput}
Response
{
  "data": {
    "createPendingInvoiceItem": {
      "pendingInvoiceItem": PendingInvoiceItem
    }
  }
}

createSubcontractor

Response

Returns a CreateSubcontractorPayload

Arguments
Name Description
input - CreateSubcontractorInput!

Example

Query
mutation createSubcontractor($input: CreateSubcontractorInput!) {
  createSubcontractor(input: $input) {
    subcontractor {
      ...SubcontractorFragment
    }
  }
}
Variables
{"input": CreateSubcontractorInput}
Response
{
  "data": {
    "createSubcontractor": {
      "subcontractor": Subcontractor
    }
  }
}

createSubcontractorContactPerson

Arguments
Name Description
input - CreateSubcontractorContactPersonInput!

Example

Query
mutation createSubcontractorContactPerson($input: CreateSubcontractorContactPersonInput!) {
  createSubcontractorContactPerson(input: $input) {
    subcontractorContactPerson {
      ...SubcontractorContactPersonFragment
    }
  }
}
Variables
{"input": CreateSubcontractorContactPersonInput}
Response
{
  "data": {
    "createSubcontractorContactPerson": {
      "subcontractorContactPerson": SubcontractorContactPerson
    }
  }
}

createSubcontractorOperationExecutor

Arguments
Name Description
input - CreateSubcontractorOperationExecutorInput!

Example

Query
mutation createSubcontractorOperationExecutor($input: CreateSubcontractorOperationExecutorInput!) {
  createSubcontractorOperationExecutor(input: $input) {
    operationExecutor {
      ...OperationExecutorFragment
    }
  }
}
Variables
{"input": CreateSubcontractorOperationExecutorInput}
Response
{
  "data": {
    "createSubcontractorOperationExecutor": {
      "operationExecutor": OperationExecutor
    }
  }
}

createSubcontractorOrderExecutor

Description

Assigns a subcontractor to the order as an executor. Subcontractor executors can carry billing items for the amounts they are credited.

Arguments
Name Description
input - CreateSubcontractorOrderExecutorInput!

Example

Query
mutation createSubcontractorOrderExecutor($input: CreateSubcontractorOrderExecutorInput!) {
  createSubcontractorOrderExecutor(input: $input) {
    orderExecutor {
      ...OrderExecutorFragment
    }
  }
}
Variables
{"input": CreateSubcontractorOrderExecutorInput}
Response
{
  "data": {
    "createSubcontractorOrderExecutor": {
      "orderExecutor": OrderExecutor
    }
  }
}

createSupplier

Response

Returns a CreateSupplierPayload

Arguments
Name Description
input - CreateSupplierInput!

Example

Query
mutation createSupplier($input: CreateSupplierInput!) {
  createSupplier(input: $input) {
    supplier {
      ...SupplierFragment
    }
  }
}
Variables
{"input": CreateSupplierInput}
Response
{"data": {"createSupplier": {"supplier": Supplier}}}

createSupplierContactPerson

Arguments
Name Description
input - CreateSupplierContactPersonInput!

Example

Query
mutation createSupplierContactPerson($input: CreateSupplierContactPersonInput!) {
  createSupplierContactPerson(input: $input) {
    supplierContactPerson {
      ...SupplierContactPersonFragment
    }
  }
}
Variables
{"input": CreateSupplierContactPersonInput}
Response
{
  "data": {
    "createSupplierContactPerson": {
      "supplierContactPerson": SupplierContactPerson
    }
  }
}

createTicket

Response

Returns a CreateTicketPayload

Arguments
Name Description
input - CreateTicketInput!

Example

Query
mutation createTicket($input: CreateTicketInput!) {
  createTicket(input: $input) {
    ticket {
      ...TicketFragment
    }
  }
}
Variables
{"input": CreateTicketInput}
Response
{"data": {"createTicket": {"ticket": Ticket}}}

createTicketFile

Response

Returns a CreateTicketFilePayload

Arguments
Name Description
input - CreateTicketFileInput!

Example

Query
mutation createTicketFile($input: CreateTicketFileInput!) {
  createTicketFile(input: $input) {
    uploadUrl
    ticketFile {
      ...TicketFileFragment
    }
  }
}
Variables
{"input": CreateTicketFileInput}
Response
{
  "data": {
    "createTicketFile": {
      "uploadUrl": "http://www.test.com/",
      "ticketFile": TicketFile
    }
  }
}

createTimeRecordBreak

Response

Returns a CreateTimeRecordBreakPayload

Arguments
Name Description
input - CreateTimeRecordBreakInput!

Example

Query
mutation createTimeRecordBreak($input: CreateTimeRecordBreakInput!) {
  createTimeRecordBreak(input: $input) {
    timeRecordBreak {
      ...TimeRecordBreakFragment
    }
  }
}
Variables
{"input": CreateTimeRecordBreakInput}
Response
{
  "data": {
    "createTimeRecordBreak": {
      "timeRecordBreak": TimeRecordBreak
    }
  }
}

createTimeRecords

Description

Creates up to 100 time records in one call with per-record results (partial success): each result carries either the created timeRecord or an error. Typical errors: overlapping time record, approved absence on that date, end before start.

Response

Returns a CreateTimeRecordsPayload

Arguments
Name Description
input - CreateTimeRecordsInput!

Example

Query
mutation createTimeRecords($input: CreateTimeRecordsInput!) {
  createTimeRecords(input: $input) {
    results {
      ...CreateTimeRecordResultFragment
    }
  }
}
Variables
{"input": CreateTimeRecordsInput}
Response
{
  "data": {
    "createTimeRecords": {
      "results": [CreateTimeRecordResult]
    }
  }
}

declineAbsence

Response

Returns a DeclineAbsencePayload

Arguments
Name Description
input - DeclineAbsenceInput!

Example

Query
mutation declineAbsence($input: DeclineAbsenceInput!) {
  declineAbsence(input: $input) {
    absence {
      ...AbsenceFragment
    }
  }
}
Variables
{"input": DeclineAbsenceInput}
Response
{"data": {"declineAbsence": {"absence": Absence}}}

declineEstimate

Description

Marks a completed estimate as declined on behalf of the company (declinedAt set). Not possible once the customer already answered.

Response

Returns a DeclineEstimatePayload

Arguments
Name Description
input - DeclineEstimateInput!

Example

Query
mutation declineEstimate($input: DeclineEstimateInput!) {
  declineEstimate(input: $input) {
    estimate {
      ...EstimateFragment
    }
  }
}
Variables
{"input": DeclineEstimateInput}
Response
{"data": {"declineEstimate": {"estimate": Estimate}}}

deleteCustomer

Response

Returns a DeleteCustomerPayload

Arguments
Name Description
input - DeleteCustomerInput!

Example

Query
mutation deleteCustomer($input: DeleteCustomerInput!) {
  deleteCustomer(input: $input) {
    deletedCustomerId
  }
}
Variables
{"input": DeleteCustomerInput}
Response
{"data": {"deleteCustomer": {"deletedCustomerId": 4}}}

deleteCustomerContactPerson

Arguments
Name Description
input - DeleteCustomerContactPersonInput!

Example

Query
mutation deleteCustomerContactPerson($input: DeleteCustomerContactPersonInput!) {
  deleteCustomerContactPerson(input: $input) {
    deletedCustomerContactPersonId
  }
}
Variables
{"input": DeleteCustomerContactPersonInput}
Response
{
  "data": {
    "deleteCustomerContactPerson": {
      "deletedCustomerContactPersonId": "4"
    }
  }
}

deleteEmployee

Description

Permanently deletes the employee including profile picture and, where applicable, the login. Prefer cancelEmployee for terminations.

Response

Returns a DeleteEmployeePayload

Arguments
Name Description
input - DeleteEmployeeInput!

Example

Query
mutation deleteEmployee($input: DeleteEmployeeInput!) {
  deleteEmployee(input: $input) {
    deletedEmployeeId
  }
}
Variables
{"input": DeleteEmployeeInput}
Response
{"data": {"deleteEmployee": {"deletedEmployeeId": 4}}}

deleteEmployeeProfilePicture

Arguments
Name Description
input - DeleteEmployeeProfilePictureInput!

Example

Query
mutation deleteEmployeeProfilePicture($input: DeleteEmployeeProfilePictureInput!) {
  deleteEmployeeProfilePicture(input: $input) {
    success
  }
}
Variables
{"input": DeleteEmployeeProfilePictureInput}
Response
{"data": {"deleteEmployeeProfilePicture": {"success": true}}}

deleteEmployeeWorkingTimeModel

Arguments
Name Description
input - DeleteEmployeeWorkingTimeModelInput!

Example

Query
mutation deleteEmployeeWorkingTimeModel($input: DeleteEmployeeWorkingTimeModelInput!) {
  deleteEmployeeWorkingTimeModel(input: $input) {
    deletedEmployeeWorkingTimeModelId
  }
}
Variables
{"input": DeleteEmployeeWorkingTimeModelInput}
Response
{
  "data": {
    "deleteEmployeeWorkingTimeModel": {"deletedEmployeeWorkingTimeModelId": 4}
  }
}

deleteEstimate

Response

Returns a DeleteEstimatePayload

Arguments
Name Description
input - DeleteEstimateInput!

Example

Query
mutation deleteEstimate($input: DeleteEstimateInput!) {
  deleteEstimate(input: $input) {
    deletedEstimateId
  }
}
Variables
{"input": DeleteEstimateInput}
Response
{
  "data": {
    "deleteEstimate": {
      "deletedEstimateId": "4"
    }
  }
}

deleteInvoice

Description

Permanently deletes an invoice of type INVOICE (cancellation invoices can't be deleted this way); not limited to DRAFT status — any status can be deleted.

Response

Returns a DeleteInvoicePayload

Arguments
Name Description
input - DeleteInvoiceInput!

Example

Query
mutation deleteInvoice($input: DeleteInvoiceInput!) {
  deleteInvoice(input: $input) {
    deletedInvoiceId
  }
}
Variables
{"input": DeleteInvoiceInput}
Response
{
  "data": {
    "deleteInvoice": {
      "deletedInvoiceId": "4"
    }
  }
}

deleteObject

Response

Returns a DeleteObjectPayload

Arguments
Name Description
input - DeleteObjectInput!

Example

Query
mutation deleteObject($input: DeleteObjectInput!) {
  deleteObject(input: $input) {
    deletedObjectId
  }
}
Variables
{"input": DeleteObjectInput}
Response
{
  "data": {
    "deleteObject": {"deletedObjectId": "4"}
  }
}

deleteObjectRoom

Response

Returns a DeleteObjectRoomPayload

Arguments
Name Description
input - DeleteObjectRoomInput!

Example

Query
mutation deleteObjectRoom($input: DeleteObjectRoomInput!) {
  deleteObjectRoom(input: $input) {
    deletedObjectRoomId
  }
}
Variables
{"input": DeleteObjectRoomInput}
Response
{"data": {"deleteObjectRoom": {"deletedObjectRoomId": 4}}}

deleteOperationBillingItem

Description

Permanently deletes a billing position and re-orders the remaining positions. Not possible once the position or one of its executor billing items has been billed.

Arguments
Name Description
input - DeleteOperationBillingItemInput!

Example

Query
mutation deleteOperationBillingItem($input: DeleteOperationBillingItemInput!) {
  deleteOperationBillingItem(input: $input) {
    deletedOperationBillingItemId
  }
}
Variables
{"input": DeleteOperationBillingItemInput}
Response
{
  "data": {
    "deleteOperationBillingItem": {
      "deletedOperationBillingItemId": "4"
    }
  }
}

deleteOperationExecutor

Response

Returns a DeleteOperationExecutorPayload

Arguments
Name Description
input - DeleteOperationExecutorInput!

Example

Query
mutation deleteOperationExecutor($input: DeleteOperationExecutorInput!) {
  deleteOperationExecutor(input: $input) {
    deletedOperationExecutorId
  }
}
Variables
{"input": DeleteOperationExecutorInput}
Response
{"data": {"deleteOperationExecutor": {"deletedOperationExecutorId": 4}}}

deleteOperationReport

Response

Returns a DeleteOperationReportPayload

Arguments
Name Description
input - DeleteOperationReportInput!

Example

Query
mutation deleteOperationReport($input: DeleteOperationReportInput!) {
  deleteOperationReport(input: $input) {
    deletedOperationReportId
  }
}
Variables
{"input": DeleteOperationReportInput}
Response
{
  "data": {
    "deleteOperationReport": {
      "deletedOperationReportId": "4"
    }
  }
}

deleteOperationReportFile

Arguments
Name Description
input - DeleteOperationReportFileInput!

Example

Query
mutation deleteOperationReportFile($input: DeleteOperationReportFileInput!) {
  deleteOperationReportFile(input: $input) {
    deletedOperationReportFileId
  }
}
Variables
{"input": DeleteOperationReportFileInput}
Response
{"data": {"deleteOperationReportFile": {"deletedOperationReportFileId": 4}}}

deleteOrder

Description

Permanently deletes an order together with its not-yet-billed pending invoice and credit-note items and the operations that have no recorded time or billed amounts. The order must be ended first (endDate set) and may not have shifts still creating operations; operations with time records or billed items are preserved.

Response

Returns a DeleteOrderPayload

Arguments
Name Description
input - DeleteOrderInput!

Example

Query
mutation deleteOrder($input: DeleteOrderInput!) {
  deleteOrder(input: $input) {
    deletedOrderId
  }
}
Variables
{"input": DeleteOrderInput}
Response
{"data": {"deleteOrder": {"deletedOrderId": 4}}}

deleteOrderBillingItem

Description

Permanently deletes an OrderBillingItem. Only possible once it has been ended (endDate set), has no executor billing items and — for ONE_TIME items — has not been billed yet. Use endOrderBillingItem to merely stop future billing.

Response

Returns a DeleteOrderBillingItemPayload

Arguments
Name Description
input - DeleteOrderBillingItemInput!

Example

Query
mutation deleteOrderBillingItem($input: DeleteOrderBillingItemInput!) {
  deleteOrderBillingItem(input: $input) {
    deletedOrderBillingItemId
  }
}
Variables
{"input": DeleteOrderBillingItemInput}
Response
{
  "data": {
    "deleteOrderBillingItem": {
      "deletedOrderBillingItemId": "4"
    }
  }
}

deleteOrderExecutor

Description

Permanently deletes an OrderExecutor together with its OrderShiftExecutors and its OperationExecutors that have no TimeRecord. Use deleteOrderExecutor only to undo an assignment before any relevant data has been recorded. Subcontractor executors that have billing items must first be cancelled via cancelOrderExecutor before they can be deleted.

Response

Returns a DeleteOrderExecutorPayload

Arguments
Name Description
input - DeleteOrderExecutorInput!

Example

Query
mutation deleteOrderExecutor($input: DeleteOrderExecutorInput!) {
  deleteOrderExecutor(input: $input) {
    deletedOrderExecutorId
  }
}
Variables
{"input": DeleteOrderExecutorInput}
Response
{"data": {"deleteOrderExecutor": {"deletedOrderExecutorId": 4}}}

deleteOrderExecutorBillingItem

Description

Permanently deletes an OrderExecutorBillingItem. Only possible once it has been ended (endDate set) and — for ONE_TIME items — has not been billed yet. Use endOrderExecutorBillingItem to merely stop future crediting.

Arguments
Name Description
input - DeleteOrderExecutorBillingItemInput!

Example

Query
mutation deleteOrderExecutorBillingItem($input: DeleteOrderExecutorBillingItemInput!) {
  deleteOrderExecutorBillingItem(input: $input) {
    deletedOrderExecutorBillingItemId
  }
}
Variables
{"input": DeleteOrderExecutorBillingItemInput}
Response
{
  "data": {
    "deleteOrderExecutorBillingItem": {"deletedOrderExecutorBillingItemId": 4}
  }
}

deleteOrderService

Description

Permanently deletes an OrderService and removes its future, unbilled operations (those after lastExecutionDate). Not possible while billing items still reference it; operations with recorded times or already billed amounts are kept.

Response

Returns a DeleteOrderServicePayload

Arguments
Name Description
input - DeleteOrderServiceInput!

Example

Query
mutation deleteOrderService($input: DeleteOrderServiceInput!) {
  deleteOrderService(input: $input) {
    deletedOrderServiceId
  }
}
Variables
{"input": DeleteOrderServiceInput}
Response
{
  "data": {
    "deleteOrderService": {
      "deletedOrderServiceId": "4"
    }
  }
}

deleteOrderServiceTaskRooms

Description

Removes up to 100 room links from OrderServiceTasks together with the related non-completed operation task rooms. Ids that don't belong to your company are ignored.

Arguments
Name Description
input - DeleteOrderServiceTaskRoomsInput!

Example

Query
mutation deleteOrderServiceTaskRooms($input: DeleteOrderServiceTaskRoomsInput!) {
  deleteOrderServiceTaskRooms(input: $input) {
    deletedOrderServiceTaskRoomIds
  }
}
Variables
{"input": DeleteOrderServiceTaskRoomsInput}
Response
{
  "data": {
    "deleteOrderServiceTaskRooms": {"deletedOrderServiceTaskRoomIds": [4]}
  }
}

deleteOrderServiceTasks

Description

Deletes up to 100 OrderServiceTasks at once and removes their non-completed operation tasks. Ids that don't belong to your company are ignored.

Response

Returns a DeleteOrderServiceTasksPayload

Arguments
Name Description
input - DeleteOrderServiceTasksInput!

Example

Query
mutation deleteOrderServiceTasks($input: DeleteOrderServiceTasksInput!) {
  deleteOrderServiceTasks(input: $input) {
    deletedOrderServiceTaskIds
  }
}
Variables
{"input": DeleteOrderServiceTasksInput}
Response
{"data": {"deleteOrderServiceTasks": {"deletedOrderServiceTaskIds": [4]}}}

deleteOrderShift

Description

Permanently deletes a shift and its future operations.

Response

Returns a DeleteOrderShiftPayload

Arguments
Name Description
input - DeleteOrderShiftInput!

Example

Query
mutation deleteOrderShift($input: DeleteOrderShiftInput!) {
  deleteOrderShift(input: $input) {
    deletedOrderShiftId
  }
}
Variables
{"input": DeleteOrderShiftInput}
Response
{
  "data": {
    "deleteOrderShift": {
      "deletedOrderShiftId": "4"
    }
  }
}

deleteOrderShiftExecutor

Description

Deletes an executor from an OrderShift

Response

Returns a DeleteOrderShiftExecutorPayload

Arguments
Name Description
input - DeleteOrderShiftExecutorInput!

Example

Query
mutation deleteOrderShiftExecutor($input: DeleteOrderShiftExecutorInput!) {
  deleteOrderShiftExecutor(input: $input) {
    deletedOrderShiftExecutorId
  }
}
Variables
{"input": DeleteOrderShiftExecutorInput}
Response
{
  "data": {
    "deleteOrderShiftExecutor": {
      "deletedOrderShiftExecutorId": "4"
    }
  }
}

deletePendingInvoiceItems

Description

Permanently deletes pending items. Fails if any item, or a linked pending credit-note item, is already billed.

Arguments
Name Description
input - DeletePendingInvoiceItemsInput!

Example

Query
mutation deletePendingInvoiceItems($input: DeletePendingInvoiceItemsInput!) {
  deletePendingInvoiceItems(input: $input) {
    deletedPendingInvoiceItemIds
  }
}
Variables
{"input": DeletePendingInvoiceItemsInput}
Response
{"data": {"deletePendingInvoiceItems": {"deletedPendingInvoiceItemIds": [4]}}}

deleteSubcontractor

Response

Returns a DeleteSubcontractorPayload

Arguments
Name Description
input - DeleteSubcontractorInput!

Example

Query
mutation deleteSubcontractor($input: DeleteSubcontractorInput!) {
  deleteSubcontractor(input: $input) {
    deletedSubcontractorId
  }
}
Variables
{"input": DeleteSubcontractorInput}
Response
{"data": {"deleteSubcontractor": {"deletedSubcontractorId": 4}}}

deleteSubcontractorContactPerson

Arguments
Name Description
input - DeleteSubcontractorContactPersonInput!

Example

Query
mutation deleteSubcontractorContactPerson($input: DeleteSubcontractorContactPersonInput!) {
  deleteSubcontractorContactPerson(input: $input) {
    deletedSubcontractorContactPersonId
  }
}
Variables
{"input": DeleteSubcontractorContactPersonInput}
Response
{
  "data": {
    "deleteSubcontractorContactPerson": {
      "deletedSubcontractorContactPersonId": "4"
    }
  }
}

deleteSupplier

Response

Returns a DeleteSupplierPayload

Arguments
Name Description
input - DeleteSupplierInput!

Example

Query
mutation deleteSupplier($input: DeleteSupplierInput!) {
  deleteSupplier(input: $input) {
    deletedSupplierId
  }
}
Variables
{"input": DeleteSupplierInput}
Response
{"data": {"deleteSupplier": {"deletedSupplierId": 4}}}

deleteSupplierContactPerson

Arguments
Name Description
input - DeleteSupplierContactPersonInput!

Example

Query
mutation deleteSupplierContactPerson($input: DeleteSupplierContactPersonInput!) {
  deleteSupplierContactPerson(input: $input) {
    deletedSupplierContactPersonId
  }
}
Variables
{"input": DeleteSupplierContactPersonInput}
Response
{"data": {"deleteSupplierContactPerson": {"deletedSupplierContactPersonId": 4}}}

deleteTicket

Response

Returns a DeleteTicketPayload

Arguments
Name Description
input - DeleteTicketInput!

Example

Query
mutation deleteTicket($input: DeleteTicketInput!) {
  deleteTicket(input: $input) {
    deletedTicketId
  }
}
Variables
{"input": DeleteTicketInput}
Response
{"data": {"deleteTicket": {"deletedTicketId": 4}}}

deleteTicketFile

Response

Returns a DeleteTicketFilePayload

Arguments
Name Description
input - DeleteTicketFileInput!

Example

Query
mutation deleteTicketFile($input: DeleteTicketFileInput!) {
  deleteTicketFile(input: $input) {
    deletedTicketFileId
  }
}
Variables
{"input": DeleteTicketFileInput}
Response
{
  "data": {
    "deleteTicketFile": {
      "deletedTicketFileId": "4"
    }
  }
}

deleteTimeRecord

Response

Returns a DeleteTimeRecordPayload

Arguments
Name Description
input - DeleteTimeRecordInput!

Example

Query
mutation deleteTimeRecord($input: DeleteTimeRecordInput!) {
  deleteTimeRecord(input: $input) {
    deletedTimeRecordId
  }
}
Variables
{"input": DeleteTimeRecordInput}
Response
{
  "data": {
    "deleteTimeRecord": {
      "deletedTimeRecordId": "4"
    }
  }
}

deleteTimeRecordBreak

Response

Returns a DeleteTimeRecordBreakPayload

Arguments
Name Description
input - DeleteTimeRecordBreakInput!

Example

Query
mutation deleteTimeRecordBreak($input: DeleteTimeRecordBreakInput!) {
  deleteTimeRecordBreak(input: $input) {
    deletedTimeRecordBreakId
  }
}
Variables
{"input": DeleteTimeRecordBreakInput}
Response
{
  "data": {
    "deleteTimeRecordBreak": {
      "deletedTimeRecordBreakId": "4"
    }
  }
}

deleteTimeRecords

Description

Deletes up to 100 time records with per-id results (partial success).

Response

Returns a DeleteTimeRecordsPayload

Arguments
Name Description
input - DeleteTimeRecordsInput!

Example

Query
mutation deleteTimeRecords($input: DeleteTimeRecordsInput!) {
  deleteTimeRecords(input: $input) {
    results {
      ...DeleteTimeRecordResultFragment
    }
  }
}
Variables
{"input": DeleteTimeRecordsInput}
Response
{
  "data": {
    "deleteTimeRecords": {
      "results": [DeleteTimeRecordResult]
    }
  }
}

endOrder

Description

Ends an order (Auftrag) as of endDate. Operations scheduled after endDate are removed while the order and its history are kept (status ENDED). All shifts and billing items must already be ended on or before endDate. Use deleteOrder to remove the order entirely.

Response

Returns an EndOrderPayload

Arguments
Name Description
input - EndOrderInput!

Example

Query
mutation endOrder($input: EndOrderInput!) {
  endOrder(input: $input) {
    order {
      ...OrderFragment
    }
  }
}
Variables
{"input": EndOrderInput}
Response
{"data": {"endOrder": {"order": Order}}}

endOrderBillingItem

Description

Ends a RECURRING or PER_OPERATION OrderBillingItem as of endDate; no further amounts are billed after that date while everything already billed is kept. To remove an item entirely use deleteOrderBillingItem instead.

Response

Returns an EndOrderBillingItemPayload

Arguments
Name Description
input - EndOrderBillingItemInput!

Example

Query
mutation endOrderBillingItem($input: EndOrderBillingItemInput!) {
  endOrderBillingItem(input: $input) {
    orderBillingItem {
      ...OrderBillingItemFragment
    }
  }
}
Variables
{"input": EndOrderBillingItemInput}
Response
{
  "data": {
    "endOrderBillingItem": {
      "orderBillingItem": OrderBillingItem
    }
  }
}

endOrderExecutorBillingItem

Description

Ends a RECURRING or PER_OPERATION OrderExecutorBillingItem as of endDate; nothing is credited to the subcontractor after that date while everything already credited is kept. Use deleteOrderExecutorBillingItem to remove it entirely.

Arguments
Name Description
input - EndOrderExecutorBillingItemInput!

Example

Query
mutation endOrderExecutorBillingItem($input: EndOrderExecutorBillingItemInput!) {
  endOrderExecutorBillingItem(input: $input) {
    orderExecutorBillingItem {
      ...OrderExecutorBillingItemFragment
    }
  }
}
Variables
{"input": EndOrderExecutorBillingItemInput}
Response
{
  "data": {
    "endOrderExecutorBillingItem": {
      "orderExecutorBillingItem": OrderExecutorBillingItem
    }
  }
}

endOrderShift

Description

Ends a shift; operations after endDate are removed.

Response

Returns an EndOrderShiftPayload

Arguments
Name Description
input - EndOrderShiftInput!

Example

Query
mutation endOrderShift($input: EndOrderShiftInput!) {
  endOrderShift(input: $input) {
    orderShift {
      ...OrderShiftFragment
    }
  }
}
Variables
{"input": EndOrderShiftInput}
Response
{"data": {"endOrderShift": {"orderShift": OrderShift}}}

inputOperationBillingItemQuantity

Description

Sets the quantity of a billing position whose quantitySource is INPUT. The quantity has to be greater than 0. Updates the linked pending items and propagates the quantity to the operation's executor billing items.

Arguments
Name Description
input - InputOperationBillingItemQuantityInput!

Example

Query
mutation inputOperationBillingItemQuantity($input: InputOperationBillingItemQuantityInput!) {
  inputOperationBillingItemQuantity(input: $input) {
    operationBillingItem {
      ...OperationBillingItemFragment
    }
  }
}
Variables
{"input": InputOperationBillingItemQuantityInput}
Response
{
  "data": {
    "inputOperationBillingItemQuantity": {
      "operationBillingItem": OperationBillingItem
    }
  }
}

markOperationExecutorAsNoShow

Arguments
Name Description
input - MarkOperationExecutorAsNoShowInput!

Example

Query
mutation markOperationExecutorAsNoShow($input: MarkOperationExecutorAsNoShowInput!) {
  markOperationExecutorAsNoShow(input: $input) {
    operationExecutor {
      ...OperationExecutorFragment
    }
  }
}
Variables
{"input": MarkOperationExecutorAsNoShowInput}
Response
{
  "data": {
    "markOperationExecutorAsNoShow": {
      "operationExecutor": OperationExecutor
    }
  }
}

rejectTicket

Response

Returns a RejectTicketPayload

Arguments
Name Description
input - RejectTicketInput!

Example

Query
mutation rejectTicket($input: RejectTicketInput!) {
  rejectTicket(input: $input) {
    ticket {
      ...TicketFragment
    }
  }
}
Variables
{"input": RejectTicketInput}
Response
{"data": {"rejectTicket": {"ticket": Ticket}}}

replaceEmployeeOnOperations

Description

Replaces an employee on a single operation.

Arguments
Name Description
input - ReplaceEmployeeOnOperationsInput!

Example

Query
mutation replaceEmployeeOnOperations($input: ReplaceEmployeeOnOperationsInput!) {
  replaceEmployeeOnOperations(input: $input) {
    operationExecutors {
      ...OperationExecutorFragment
    }
  }
}
Variables
{"input": ReplaceEmployeeOnOperationsInput}
Response
{
  "data": {
    "replaceEmployeeOnOperations": {
      "operationExecutors": [OperationExecutor]
    }
  }
}

replaceEmployeeOnOrderShiftUntil

Description

Adds or replaces an employee across all operations of an OrderShift up to a given date. Omit oldEmployeeId to only add the new employee.

Arguments
Name Description
input - ReplaceEmployeeOnOrderShiftUntilInput!

Example

Query
mutation replaceEmployeeOnOrderShiftUntil($input: ReplaceEmployeeOnOrderShiftUntilInput!) {
  replaceEmployeeOnOrderShiftUntil(input: $input) {
    operationExecutors {
      ...OperationExecutorFragment
    }
  }
}
Variables
{"input": ReplaceEmployeeOnOrderShiftUntilInput}
Response
{
  "data": {
    "replaceEmployeeOnOrderShiftUntil": {
      "operationExecutors": [OperationExecutor]
    }
  }
}

replaceSubcontractorOnOperation

Description

Replaces a subcontractor on a single operation.

Arguments
Name Description
input - ReplaceSubcontractorOnOperationInput!

Example

Query
mutation replaceSubcontractorOnOperation($input: ReplaceSubcontractorOnOperationInput!) {
  replaceSubcontractorOnOperation(input: $input) {
    operationExecutor {
      ...OperationExecutorFragment
    }
  }
}
Variables
{"input": ReplaceSubcontractorOnOperationInput}
Response
{
  "data": {
    "replaceSubcontractorOnOperation": {
      "operationExecutor": OperationExecutor
    }
  }
}

replaceSubcontractorOnOrderShiftUntil

Description

Adds or replaces a subcontractor across all operations of an OrderShift up to a given date. Omit oldSubcontractorId to only add the new subcontractor.

Example

Query
mutation replaceSubcontractorOnOrderShiftUntil($input: ReplaceSubcontractorOnOrderShiftUntilInput!) {
  replaceSubcontractorOnOrderShiftUntil(input: $input) {
    operationExecutors {
      ...OperationExecutorFragment
    }
  }
}
Variables
{"input": ReplaceSubcontractorOnOrderShiftUntilInput}
Response
{
  "data": {
    "replaceSubcontractorOnOrderShiftUntil": {
      "operationExecutors": [OperationExecutor]
    }
  }
}

resumeOrderShift

Description

Resumes an ended shift from resumeDate on.

Response

Returns a ResumeOrderShiftPayload

Arguments
Name Description
input - ResumeOrderShiftInput!

Example

Query
mutation resumeOrderShift($input: ResumeOrderShiftInput!) {
  resumeOrderShift(input: $input) {
    orderShift {
      ...OrderShiftFragment
    }
  }
}
Variables
{"input": ResumeOrderShiftInput}
Response
{"data": {"resumeOrderShift": {"orderShift": OrderShift}}}

unmarkOperationExecutorAsNoShow

Arguments
Name Description
input - UnmarkOperationExecutorAsNoShowInput!

Example

Query
mutation unmarkOperationExecutorAsNoShow($input: UnmarkOperationExecutorAsNoShowInput!) {
  unmarkOperationExecutorAsNoShow(input: $input) {
    operationExecutor {
      ...OperationExecutorFragment
    }
  }
}
Variables
{"input": UnmarkOperationExecutorAsNoShowInput}
Response
{
  "data": {
    "unmarkOperationExecutorAsNoShow": {
      "operationExecutor": OperationExecutor
    }
  }
}

updateAbsence

Response

Returns an UpdateAbsencePayload

Arguments
Name Description
input - UpdateAbsenceInput!

Example

Query
mutation updateAbsence($input: UpdateAbsenceInput!) {
  updateAbsence(input: $input) {
    absence {
      ...AbsenceFragment
    }
  }
}
Variables
{"input": UpdateAbsenceInput}
Response
{"data": {"updateAbsence": {"absence": Absence}}}

updateCreditNote

Description

Updates a DRAFT credit note. Completed credit notes are immutable.

Response

Returns an UpdateCreditNotePayload

Arguments
Name Description
input - UpdateCreditNoteInput!

Example

Query
mutation updateCreditNote($input: UpdateCreditNoteInput!) {
  updateCreditNote(input: $input) {
    creditNote {
      ...CreditNoteFragment
    }
  }
}
Variables
{"input": UpdateCreditNoteInput}
Response
{"data": {"updateCreditNote": {"creditNote": CreditNote}}}

updateCustomer

Response

Returns an UpdateCustomerPayload

Arguments
Name Description
input - UpdateCustomerInput!

Example

Query
mutation updateCustomer($input: UpdateCustomerInput!) {
  updateCustomer(input: $input) {
    customer {
      ...CustomerFragment
    }
  }
}
Variables
{"input": UpdateCustomerInput}
Response
{"data": {"updateCustomer": {"customer": Customer}}}

updateCustomerContactPerson

Arguments
Name Description
input - UpdateCustomerContactPersonInput!

Example

Query
mutation updateCustomerContactPerson($input: UpdateCustomerContactPersonInput!) {
  updateCustomerContactPerson(input: $input) {
    customerContactPerson {
      ...CustomerContactPersonFragment
    }
  }
}
Variables
{"input": UpdateCustomerContactPersonInput}
Response
{
  "data": {
    "updateCustomerContactPerson": {
      "customerContactPerson": CustomerContactPerson
    }
  }
}

updateEmployee

Response

Returns an UpdateEmployeePayload

Arguments
Name Description
input - UpdateEmployeeInput!

Example

Query
mutation updateEmployee($input: UpdateEmployeeInput!) {
  updateEmployee(input: $input) {
    employee {
      ...EmployeeFragment
    }
  }
}
Variables
{"input": UpdateEmployeeInput}
Response
{"data": {"updateEmployee": {"employee": Employee}}}

updateEmployeeProfilePicture

Arguments
Name Description
input - UpdateEmployeeProfilePictureInput!

Example

Query
mutation updateEmployeeProfilePicture($input: UpdateEmployeeProfilePictureInput!) {
  updateEmployeeProfilePicture(input: $input) {
    uploadUrl
    employeeProfilePicture {
      ...EmployeeProfilePictureFragment
    }
  }
}
Variables
{"input": UpdateEmployeeProfilePictureInput}
Response
{
  "data": {
    "updateEmployeeProfilePicture": {
      "uploadUrl": "http://www.test.com/",
      "employeeProfilePicture": EmployeeProfilePicture
    }
  }
}

updateEmployeeWorkingTimeModel

Arguments
Name Description
input - UpdateEmployeeWorkingTimeModelInput!

Example

Query
mutation updateEmployeeWorkingTimeModel($input: UpdateEmployeeWorkingTimeModelInput!) {
  updateEmployeeWorkingTimeModel(input: $input) {
    employeeWorkingTimeModel {
      ...EmployeeWorkingTimeModelFragment
    }
  }
}
Variables
{"input": UpdateEmployeeWorkingTimeModelInput}
Response
{
  "data": {
    "updateEmployeeWorkingTimeModel": {
      "employeeWorkingTimeModel": EmployeeWorkingTimeModel
    }
  }
}

updateEstimate

Response

Returns an UpdateEstimatePayload

Arguments
Name Description
input - UpdateEstimateInput!

Example

Query
mutation updateEstimate($input: UpdateEstimateInput!) {
  updateEstimate(input: $input) {
    estimate {
      ...EstimateFragment
    }
  }
}
Variables
{"input": UpdateEstimateInput}
Response
{"data": {"updateEstimate": {"estimate": Estimate}}}

updateEstimateWebEnabled

Response

Returns an UpdateEstimateWebEnabledPayload

Arguments
Name Description
input - UpdateEstimateWebEnabledInput!

Example

Query
mutation updateEstimateWebEnabled($input: UpdateEstimateWebEnabledInput!) {
  updateEstimateWebEnabled(input: $input) {
    estimate {
      ...EstimateFragment
    }
  }
}
Variables
{"input": UpdateEstimateWebEnabledInput}
Response
{
  "data": {
    "updateEstimateWebEnabled": {"estimate": Estimate}
  }
}

updateExecutionAndAddEmployeeToOperation

Example

Query
mutation updateExecutionAndAddEmployeeToOperation($input: UpdateExecutionAndAddEmployeeToOperationInput!) {
  updateExecutionAndAddEmployeeToOperation(input: $input) {
    operationExecutor {
      ...OperationExecutorFragment
    }
  }
}
Variables
{"input": UpdateExecutionAndAddEmployeeToOperationInput}
Response
{
  "data": {
    "updateExecutionAndAddEmployeeToOperation": {
      "operationExecutor": OperationExecutor
    }
  }
}

updateExecutionAndReplaceEmployeeOnOperation

Example

Query
mutation updateExecutionAndReplaceEmployeeOnOperation($input: UpdateExecutionAndReplaceEmployeeOnOperationInput!) {
  updateExecutionAndReplaceEmployeeOnOperation(input: $input) {
    operationExecutor {
      ...OperationExecutorFragment
    }
  }
}
Variables
{
  "input": UpdateExecutionAndReplaceEmployeeOnOperationInput
}
Response
{
  "data": {
    "updateExecutionAndReplaceEmployeeOnOperation": {
      "operationExecutor": OperationExecutor
    }
  }
}

updateInvoice

Description

Updates a DRAFT invoice. Completed invoices are immutable.

Response

Returns an UpdateInvoicePayload

Arguments
Name Description
input - UpdateInvoiceInput!

Example

Query
mutation updateInvoice($input: UpdateInvoiceInput!) {
  updateInvoice(input: $input) {
    invoice {
      ...InvoiceFragment
    }
  }
}
Variables
{"input": UpdateInvoiceInput}
Response
{"data": {"updateInvoice": {"invoice": Invoice}}}

updateMaterial

Description

Updates only the provided fields; pass null to clear an optional field.

Response

Returns an UpdateMaterialPayload

Arguments
Name Description
input - UpdateMaterialInput!

Example

Query
mutation updateMaterial($input: UpdateMaterialInput!) {
  updateMaterial(input: $input) {
    material {
      ...MaterialFragment
    }
  }
}
Variables
{"input": UpdateMaterialInput}
Response
{"data": {"updateMaterial": {"material": Material}}}

updateMaterialGroup

Response

Returns an UpdateMaterialGroupPayload

Arguments
Name Description
input - UpdateMaterialGroupInput!

Example

Query
mutation updateMaterialGroup($input: UpdateMaterialGroupInput!) {
  updateMaterialGroup(input: $input) {
    materialGroup {
      ...MaterialGroupFragment
    }
  }
}
Variables
{"input": UpdateMaterialGroupInput}
Response
{
  "data": {
    "updateMaterialGroup": {
      "materialGroup": MaterialGroup
    }
  }
}

updateObject

Response

Returns an UpdateObjectPayload

Arguments
Name Description
input - UpdateObjectInput!

Example

Query
mutation updateObject($input: UpdateObjectInput!) {
  updateObject(input: $input) {
    object {
      ...ObjectFragment
    }
  }
}
Variables
{"input": UpdateObjectInput}
Response
{"data": {"updateObject": {"object": Object}}}

updateObjectRoom

Response

Returns an UpdateObjectRoomPayload

Arguments
Name Description
input - UpdateObjectRoomInput!

Example

Query
mutation updateObjectRoom($input: UpdateObjectRoomInput!) {
  updateObjectRoom(input: $input) {
    objectRoom {
      ...ObjectRoomFragment
    }
  }
}
Variables
{"input": UpdateObjectRoomInput}
Response
{"data": {"updateObjectRoom": {"objectRoom": ObjectRoom}}}

updateOperationBillingItem

Description

Updates an existing billing position. Not possible once the position — or one of its executor billing items — has already been billed. Changing the quantity, service or material propagates to the linked pending items and executor billing items.

Response

Returns an UpdateOperationBillingItemPayload

Arguments
Name Description
input - UpdateOperationBillingItemInput!

Example

Query
mutation updateOperationBillingItem($input: UpdateOperationBillingItemInput!) {
  updateOperationBillingItem(input: $input) {
    operationBillingItem {
      ...OperationBillingItemFragment
    }
  }
}
Variables
{"input": UpdateOperationBillingItemInput}
Response
{
  "data": {
    "updateOperationBillingItem": {
      "operationBillingItem": OperationBillingItem
    }
  }
}

updateOperationReport

Response

Returns an UpdateOperationReportPayload

Arguments
Name Description
input - UpdateOperationReportInput!

Example

Query
mutation updateOperationReport($input: UpdateOperationReportInput!) {
  updateOperationReport(input: $input) {
    operationReport {
      ...OperationReportFragment
    }
  }
}
Variables
{"input": UpdateOperationReportInput}
Response
{
  "data": {
    "updateOperationReport": {
      "operationReport": OperationReport
    }
  }
}

updateOrder

Description

Updates an order's master data: start/end date, instructions and the number of required executors per operation. effectiveDate limits instruction and requiredExecutors changes to operations on or after that date.

Response

Returns an UpdateOrderPayload

Arguments
Name Description
input - UpdateOrderInput!

Example

Query
mutation updateOrder($input: UpdateOrderInput!) {
  updateOrder(input: $input) {
    order {
      ...OrderFragment
    }
  }
}
Variables
{"input": UpdateOrderInput}
Response
{"data": {"updateOrder": {"order": Order}}}

updateOrderBillingItem

Description

Updates an existing OrderBillingItem. startDate can only be changed on ONE_TIME items; for the other billing models it is fixed. Changing quantity, service or material propagates to the already generated pending items and per-operation billing items.

Response

Returns an UpdateOrderBillingItemPayload

Arguments
Name Description
input - UpdateOrderBillingItemInput!

Example

Query
mutation updateOrderBillingItem($input: UpdateOrderBillingItemInput!) {
  updateOrderBillingItem(input: $input) {
    orderBillingItem {
      ...OrderBillingItemFragment
    }
  }
}
Variables
{"input": UpdateOrderBillingItemInput}
Response
{
  "data": {
    "updateOrderBillingItem": {
      "orderBillingItem": OrderBillingItem
    }
  }
}

updateOrderExecutorBillingItem

Description

Updates an existing OrderExecutorBillingItem. Changes propagate to the pending credit-note items already generated for the executor.

Arguments
Name Description
input - UpdateOrderExecutorBillingItemInput!

Example

Query
mutation updateOrderExecutorBillingItem($input: UpdateOrderExecutorBillingItemInput!) {
  updateOrderExecutorBillingItem(input: $input) {
    orderExecutorBillingItem {
      ...OrderExecutorBillingItemFragment
    }
  }
}
Variables
{"input": UpdateOrderExecutorBillingItemInput}
Response
{
  "data": {
    "updateOrderExecutorBillingItem": {
      "orderExecutorBillingItem": OrderExecutorBillingItem
    }
  }
}

updateOrderService

Description

Updates an OrderService's service and title as of effectiveDate. The change propagates to operations on or after that date and to the related draft service receipt items. effectiveDate can not be before the order's start date.

Response

Returns an UpdateOrderServicePayload

Arguments
Name Description
input - UpdateOrderServiceInput!

Example

Query
mutation updateOrderService($input: UpdateOrderServiceInput!) {
  updateOrderService(input: $input) {
    orderService {
      ...OrderServiceFragment
    }
  }
}
Variables
{"input": UpdateOrderServiceInput}
Response
{
  "data": {
    "updateOrderService": {"orderService": OrderService}
  }
}

updateOrderServiceExecutionOnDemand

Description

Switches an OrderService between scheduled and on-demand execution. When enabling on-demand, the next demand date is recalculated from demandRrule.

Arguments
Name Description
input - UpdateOrderServiceExecutionOnDemandInput!

Example

Query
mutation updateOrderServiceExecutionOnDemand($input: UpdateOrderServiceExecutionOnDemandInput!) {
  updateOrderServiceExecutionOnDemand(input: $input) {
    orderService {
      ...OrderServiceFragment
    }
  }
}
Variables
{"input": UpdateOrderServiceExecutionOnDemandInput}
Response
{
  "data": {
    "updateOrderServiceExecutionOnDemand": {
      "orderService": OrderService
    }
  }
}

updateOrderServiceNextDemandDate

Description

Sets the next demand date of an on-demand OrderService. executionOnDemand must be enabled. The date is clamped to at least one day after the latest executed operation.

Arguments
Name Description
input - UpdateOrderServiceNextDemandDateInput!

Example

Query
mutation updateOrderServiceNextDemandDate($input: UpdateOrderServiceNextDemandDateInput!) {
  updateOrderServiceNextDemandDate(input: $input) {
    orderService {
      ...OrderServiceFragment
    }
  }
}
Variables
{"input": UpdateOrderServiceNextDemandDateInput}
Response
{
  "data": {
    "updateOrderServiceNextDemandDate": {
      "orderService": OrderService
    }
  }
}

updateOrderServiceTask

Description

Updates a task's title, service area and position, propagating the changes to the related non-completed operation tasks.

Response

Returns an UpdateOrderServiceTaskPayload

Arguments
Name Description
input - UpdateOrderServiceTaskInput!

Example

Query
mutation updateOrderServiceTask($input: UpdateOrderServiceTaskInput!) {
  updateOrderServiceTask(input: $input) {
    orderServiceTask {
      ...OrderServiceTaskFragment
    }
  }
}
Variables
{"input": UpdateOrderServiceTaskInput}
Response
{
  "data": {
    "updateOrderServiceTask": {
      "orderServiceTask": OrderServiceTask
    }
  }
}

updateOrderShift

Description

Updates a shift as of effectiveDate; the update* flags choose which parts change. Operations are regenerated from effectiveDate where needed.

Response

Returns an UpdateOrderShiftPayload

Arguments
Name Description
input - UpdateOrderShiftInput!

Example

Query
mutation updateOrderShift($input: UpdateOrderShiftInput!) {
  updateOrderShift(input: $input) {
    orderShift {
      ...OrderShiftFragment
    }
  }
}
Variables
{"input": UpdateOrderShiftInput}
Response
{"data": {"updateOrderShift": {"orderShift": OrderShift}}}

updatePendingInvoiceItem

Description

Updates a pending item. Fails once the item is already billed.

Response

Returns an UpdatePendingInvoiceItemPayload

Arguments
Name Description
input - UpdatePendingInvoiceItemInput!

Example

Query
mutation updatePendingInvoiceItem($input: UpdatePendingInvoiceItemInput!) {
  updatePendingInvoiceItem(input: $input) {
    pendingInvoiceItem {
      ...PendingInvoiceItemFragment
    }
  }
}
Variables
{"input": UpdatePendingInvoiceItemInput}
Response
{
  "data": {
    "updatePendingInvoiceItem": {
      "pendingInvoiceItem": PendingInvoiceItem
    }
  }
}

updateSubcontractor

Response

Returns an UpdateSubcontractorPayload

Arguments
Name Description
input - UpdateSubcontractorInput!

Example

Query
mutation updateSubcontractor($input: UpdateSubcontractorInput!) {
  updateSubcontractor(input: $input) {
    subcontractor {
      ...SubcontractorFragment
    }
  }
}
Variables
{"input": UpdateSubcontractorInput}
Response
{
  "data": {
    "updateSubcontractor": {
      "subcontractor": Subcontractor
    }
  }
}

updateSubcontractorContactPerson

Arguments
Name Description
input - UpdateSubcontractorContactPersonInput!

Example

Query
mutation updateSubcontractorContactPerson($input: UpdateSubcontractorContactPersonInput!) {
  updateSubcontractorContactPerson(input: $input) {
    subcontractorContactPerson {
      ...SubcontractorContactPersonFragment
    }
  }
}
Variables
{"input": UpdateSubcontractorContactPersonInput}
Response
{
  "data": {
    "updateSubcontractorContactPerson": {
      "subcontractorContactPerson": SubcontractorContactPerson
    }
  }
}

updateSupplier

Response

Returns an UpdateSupplierPayload

Arguments
Name Description
input - UpdateSupplierInput!

Example

Query
mutation updateSupplier($input: UpdateSupplierInput!) {
  updateSupplier(input: $input) {
    supplier {
      ...SupplierFragment
    }
  }
}
Variables
{"input": UpdateSupplierInput}
Response
{"data": {"updateSupplier": {"supplier": Supplier}}}

updateSupplierContactPerson

Arguments
Name Description
input - UpdateSupplierContactPersonInput!

Example

Query
mutation updateSupplierContactPerson($input: UpdateSupplierContactPersonInput!) {
  updateSupplierContactPerson(input: $input) {
    supplierContactPerson {
      ...SupplierContactPersonFragment
    }
  }
}
Variables
{"input": UpdateSupplierContactPersonInput}
Response
{
  "data": {
    "updateSupplierContactPerson": {
      "supplierContactPerson": SupplierContactPerson
    }
  }
}

updateTicket

Response

Returns an UpdateTicketPayload

Arguments
Name Description
input - UpdateTicketInput!

Example

Query
mutation updateTicket($input: UpdateTicketInput!) {
  updateTicket(input: $input) {
    ticket {
      ...TicketFragment
    }
  }
}
Variables
{"input": UpdateTicketInput}
Response
{"data": {"updateTicket": {"ticket": Ticket}}}

updateTimeRecord

Description

Updates start/end/journey/breaks of a time record. start must stay on the record's date; moving it to a different day is rejected (delete and recreate it instead).

Response

Returns an UpdateTimeRecordPayload

Arguments
Name Description
input - UpdateTimeRecordInput!

Example

Query
mutation updateTimeRecord($input: UpdateTimeRecordInput!) {
  updateTimeRecord(input: $input) {
    timeRecord {
      ...TimeRecordFragment
    }
  }
}
Variables
{"input": UpdateTimeRecordInput}
Response
{"data": {"updateTimeRecord": {"timeRecord": TimeRecord}}}

updateTimeRecordBreak

Response

Returns an UpdateTimeRecordBreakPayload

Arguments
Name Description
input - UpdateTimeRecordBreakInput!

Example

Query
mutation updateTimeRecordBreak($input: UpdateTimeRecordBreakInput!) {
  updateTimeRecordBreak(input: $input) {
    timeRecordBreak {
      ...TimeRecordBreakFragment
    }
  }
}
Variables
{"input": UpdateTimeRecordBreakInput}
Response
{
  "data": {
    "updateTimeRecordBreak": {
      "timeRecordBreak": TimeRecordBreak
    }
  }
}

Types

Absence

Description

An employee absence (Abwesenheit). Full-day absences block time records on those days. Absences cannot be listed via this API — read them from the mutation payloads or via operationExecutor.absence.

Fields
Field Name Description
id - ID!
employee - Employee!
type - AbsenceType! One of the company's absence types — query absenceTypes for label, paid and vacation-quota metadata.
status - AbsenceStatus!
start - DateTime!
end - DateTime!
startDayFraction - Float! Absent fraction of the first day (0 < x <= 1; 0.5 = half day). Fractions below 1 do not block time records.
endDayFraction - Float! Absent fraction of the last day (0 < x <= 1). For single-day absences it equals startDayFraction.
daysCount - Float Absence duration in days, computed from the period and the day fractions.
hoursCount - Float Currently not populated (always null).
countSetManually - Boolean!
note - String
operationExecutors - OperationExecutorConnection!
Arguments
after - String
before - String
first - Int
last - Int
hasTimeRecord - Boolean
hideAbsent - Boolean
approvedAt - DateTime Set if Absence is approved
declinedAt - DateTime Set if Absence is declined
createdAt - DateTime!
Example
{
  "id": "4",
  "employee": Employee,
  "type": "VACATION",
  "status": "PENDING",
  "start": "2007-12-03T10:15:30Z",
  "end": "2007-12-03T10:15:30Z",
  "startDayFraction": 987.65,
  "endDayFraction": 987.65,
  "daysCount": 123.45,
  "hoursCount": 123.45,
  "countSetManually": false,
  "note": "abc123",
  "operationExecutors": OperationExecutorConnection,
  "approvedAt": "2007-12-03T10:15:30Z",
  "declinedAt": "2007-12-03T10:15:30Z",
  "createdAt": "2007-12-03T10:15:30Z"
}

AbsenceStatus

Values
Enum Value Description

PENDING

Waiting for approval.

APPROVED

Approved via approveAbsence; approvedAt is set.

DECLINED

Declined via declineAbsence; declinedAt is set.
Example
"PENDING"

AbsenceType

Values
Enum Value Description

VACATION

SICK

CHILD_SICK

SPECIAL_LEAVE

UNPAID_LEAVE

COMP_TIME_OFF

PARENTAL_LEAVE

MATERNITY_PROTECTION

EDUCATIONAL_LEAVE

Example
"VACATION"

AbsenceTypeDefinition

Fields
Field Name Description
type - AbsenceType!
label - String!
paid - Boolean!
deductsFromVacationQuota - Boolean!
Example
{
  "type": "VACATION",
  "label": "xyz789",
  "paid": false,
  "deductsFromVacationQuota": false
}

AcceptEstimateInput

Fields
Input Field Description
estimateId - ID!
Example
{"estimateId": 4}

AcceptEstimatePayload

Fields
Field Name Description
estimate - Estimate
Example
{"estimate": Estimate}

AddOrderShiftExecutorsInput

Fields
Input Field Description
orderShiftId - ID!
orderExecutorIds - [ID!]!
startDate - Date!
Example
{
  "orderShiftId": 4,
  "orderExecutorIds": [4],
  "startDate": "2007-12-03"
}

AddOrderShiftExecutorsPayload

Fields
Field Name Description
orderShiftExecutors - [OrderShiftExecutor!]
Example
{"orderShiftExecutors": [OrderShiftExecutor]}

ApproveAbsenceInput

Fields
Input Field Description
absenceId - ID!
Example
{"absenceId": "4"}

ApproveAbsencePayload

Fields
Field Name Description
absence - Absence
Example
{"absence": Absence}

BillOrderBillingItemInput

Fields
Input Field Description
orderBillingItemId - ID!
untilDate - Date! Bill until this date. Has to be in the future
Example
{
  "orderBillingItemId": 4,
  "untilDate": "2007-12-03"
}

BillOrderBillingItemPayload

Fields
Field Name Description
orderBillingItem - OrderBillingItem
Example
{"orderBillingItem": OrderBillingItem}

BillingPeriodInterval

Values
Enum Value Description

MONTH

QUARTER

Example
"MONTH"

Boolean

Description

The Boolean scalar type represents true or false.

CancelEmployeeInput

Fields
Input Field Description
employeeId - ID!
cancelDate - Date!
updateAbsences - Boolean Must be true if there are approved absences after cancelDate that should be adjusted/removed.
Example
{
  "employeeId": "4",
  "cancelDate": "2007-12-03",
  "updateAbsences": true
}

CancelEmployeePayload

Fields
Field Name Description
employee - Employee
Example
{"employee": Employee}

CancelInvoiceInput

Fields
Input Field Description
invoiceId - ID!
invoiceDate - String
dueDate - String
dueDateFormat - InvoiceDueDateFormat
introductionText - String
closingText - String
extraAddressFieldLines - String
Example
{
  "invoiceId": 4,
  "invoiceDate": "abc123",
  "dueDate": "xyz789",
  "dueDateFormat": "DAYS",
  "introductionText": "abc123",
  "closingText": "xyz789",
  "extraAddressFieldLines": "xyz789"
}

CancelInvoicePayload

Fields
Field Name Description
invoice - Invoice
Example
{"invoice": Invoice}

CancelOrderExecutorInput

Fields
Input Field Description
orderExecutorId - ID!
cancelDate - Date!
Example
{
  "orderExecutorId": 4,
  "cancelDate": "2007-12-03"
}

CancelOrderExecutorPayload

Fields
Field Name Description
orderExecutor - OrderExecutor
Example
{"orderExecutor": OrderExecutor}

Company

Fields
Field Name Description
id - ID!
companyName - String
legalForm - LegalForm
streetAddress - String
zip - String
city - String
country - CountryCode
language - LanguageTag!
currency - CurrencyCode!
taxNumber - String German tax number (Steuernummer).
vatId - String VAT ID (USt-IdNr.).
email - String
phone - String
fax - String
website - String
iban - String
bic - String
registerCourt - String
companyRegistrationNumber - String
managingDirectors - [ManagingDirector]
logoUrl - URL
createdAt - DateTime
Example
{
  "id": 4,
  "companyName": "abc123",
  "legalForm": "DE_EINZELUNTERNEHMER",
  "streetAddress": "xyz789",
  "zip": "xyz789",
  "city": "abc123",
  "country": "US",
  "language": LanguageTag,
  "currency": CurrencyCode,
  "taxNumber": "xyz789",
  "vatId": "abc123",
  "email": "abc123",
  "phone": "xyz789",
  "fax": "xyz789",
  "website": "abc123",
  "iban": "abc123",
  "bic": "abc123",
  "registerCourt": "xyz789",
  "companyRegistrationNumber": "abc123",
  "managingDirectors": [ManagingDirector],
  "logoUrl": "http://www.test.com/",
  "createdAt": "2007-12-03T10:15:30Z"
}

CompleteCreditNoteInput

Fields
Input Field Description
creditNoteId - ID!
Example
{"creditNoteId": "4"}

CompleteCreditNotePayload

Fields
Field Name Description
creditNote - CreditNote
Example
{"creditNote": CreditNote}

CompleteEstimateInput

Fields
Input Field Description
estimateId - ID!
Example
{"estimateId": 4}

CompleteEstimatePayload

Fields
Field Name Description
estimate - Estimate
Example
{"estimate": Estimate}

CompleteInvoiceInput

Fields
Input Field Description
invoiceId - ID!
Example
{"invoiceId": 4}

CompleteInvoicePayload

Fields
Field Name Description
invoice - Invoice
Example
{"invoice": Invoice}

CompleteTicketInput

Fields
Input Field Description
ticketId - ID!
Example
{"ticketId": 4}

CompleteTicketPayload

Fields
Field Name Description
ticket - Ticket
Example
{"ticket": Ticket}

ConfirmTimeRecordInput

Fields
Input Field Description
timeRecordId - ID!
Example
{"timeRecordId": 4}

ConfirmTimeRecordPayload

Fields
Field Name Description
timeRecord - TimeRecord
Example
{"timeRecord": TimeRecord}

ConfirmTimeRecordResult

Fields
Field Name Description
id - ID! The time record hash id from the input
timeRecord - TimeRecord The confirmed time record (null if failed)
error - String Error message (null if succeeded)
Example
{
  "id": 4,
  "timeRecord": TimeRecord,
  "error": "xyz789"
}

ConfirmTimeRecordsInput

Fields
Input Field Description
timeRecordIds - [ID!]!
Example
{"timeRecordIds": [4]}

ConfirmTimeRecordsPayload

Fields
Field Name Description
results - [ConfirmTimeRecordResult!]!
Example
{"results": [ConfirmTimeRecordResult]}

CountryCode

Description

ISO 3166-1 alpha-2 country codes

Example
"US"

CreateAbsenceInput

Fields
Input Field Description
employeeId - ID!
type - AbsenceType!
start - DateTime! Start of absence in UTC
end - DateTime! End of absence in UTC
note - String
startDayFraction - Float
endDayFraction - Float
Example
{
  "employeeId": 4,
  "type": "VACATION",
  "start": "2007-12-03T10:15:30Z",
  "end": "2007-12-03T10:15:30Z",
  "note": "xyz789",
  "startDayFraction": 123.45,
  "endDayFraction": 987.65
}

CreateAbsencePayload

Fields
Field Name Description
absence - Absence
Example
{"absence": Absence}

CreateCreditNoteDeliveryDateInput

Description

Either date or start and end can be set. Date will be set to current date if date, start and end is empty.

Fields
Input Field Description
date - Date
start - Date
end - Date
Example
{
  "date": "2007-12-03",
  "start": "2007-12-03",
  "end": "2007-12-03"
}

CreateCreditNoteInput

Fields
Input Field Description
subcontractorId - ID!
subcontractorContactPersonId - ID
number - Int Will be set to the next credit note number if empty
dueDate - Date Will be set to current date if empty
dueDateFormat - CreditNoteDueDateFormat
hideDueDateText - Boolean This will hide the due date text on the credit note pdf
creditNoteDate - Date Will be set to current date if empty
deliveryDate - CreateCreditNoteDeliveryDateInput!
items - [CreateCreditNoteItemInput]
introductionText - String
closingText - String
status - CreateCreditNoteStatus Status of created credit note. Set to DRAFT if empty.
sendAfterCreation - Boolean Sends credit note to subcontractor after creation, if set to true. Does not work with credit notes in status DRAFT.
Example
{
  "subcontractorId": 4,
  "subcontractorContactPersonId": 4,
  "number": 123,
  "dueDate": "2007-12-03",
  "dueDateFormat": "DAYS",
  "hideDueDateText": false,
  "creditNoteDate": "2007-12-03",
  "deliveryDate": CreateCreditNoteDeliveryDateInput,
  "items": [CreateCreditNoteItemInput],
  "introductionText": "xyz789",
  "closingText": "xyz789",
  "status": "DRAFT",
  "sendAfterCreation": false
}

CreateCreditNoteItemInput

Fields
Input Field Description
title - String!
description - String
quantity - Float!
unitPrice - Int! Net unit price in cents.
taxRate - Float! VAT rate in percent (19 = 19 %).
unit - String
serviceId - ID
materialId - ID
Example
{
  "title": "xyz789",
  "description": "abc123",
  "quantity": 123.45,
  "unitPrice": 987,
  "taxRate": 987.65,
  "unit": "abc123",
  "serviceId": 4,
  "materialId": 4
}

CreateCreditNotePayload

Fields
Field Name Description
creditNote - CreditNote
Example
{"creditNote": CreditNote}

CreateCreditNoteStatus

Values
Enum Value Description

DRAFT

Create as editable draft (default).

COMPLETED

Create and finalize immediately.

PAID

Create, finalize and record a payment over the full amount.
Example
"DRAFT"

CreateCustomerContactPersonInput

Fields
Input Field Description
customerId - ID!
isDefault - Boolean
salutation - String!
firstName - String
lastName - String!
role - String
email - String
phone - String
Example
{
  "customerId": 4,
  "isDefault": true,
  "salutation": "abc123",
  "firstName": "abc123",
  "lastName": "xyz789",
  "role": "xyz789",
  "email": "abc123",
  "phone": "xyz789"
}

CreateCustomerContactPersonPayload

Fields
Field Name Description
customerContactPerson - CustomerContactPerson
Example
{"customerContactPerson": CustomerContactPerson}

CreateCustomerEmailInput

Fields
Input Field Description
type - CustomerEmailType!
email - String!
Example
{"type": "GENERAL", "email": "abc123"}

CreateCustomerInput

Fields
Input Field Description
type - CustomerType!
salutation - String
firstName - String
lastName - String
companyName - String
addressSupplement - String
streetAddress - String
zip - String
city - String
country - CountryCode
emails - [CreateCustomerEmailInput!]
phone - String
fax - String
website - String
vatId - String VAT ID (USt-IdNr.).
Example
{
  "type": "PERSON",
  "salutation": "abc123",
  "firstName": "abc123",
  "lastName": "xyz789",
  "companyName": "xyz789",
  "addressSupplement": "xyz789",
  "streetAddress": "abc123",
  "zip": "xyz789",
  "city": "abc123",
  "country": "US",
  "emails": [CreateCustomerEmailInput],
  "phone": "xyz789",
  "fax": "abc123",
  "website": "abc123",
  "vatId": "xyz789"
}

CreateCustomerPayload

Fields
Field Name Description
customer - Customer
Example
{"customer": Customer}

CreateEmployeeInput

Fields
Input Field Description
salutation - String!
firstName - String
lastName - String!
addressSupplement - String
streetAddress - String
zip - String
city - String
country - CountryCode
state - StateCode
email - String
phone - String
birthDate - Date
personnelNumberPrefix - String
personnelNumber - Int!
hasDrivingLicenceClassB - Boolean
automaticTimeRecording - Boolean Sets the employee's automaticTimeRecording flag, stored separately from Employee.locationBasedTimeRecording (not writable through this API).
tags - [String!]
Example
{
  "salutation": "xyz789",
  "firstName": "abc123",
  "lastName": "abc123",
  "addressSupplement": "xyz789",
  "streetAddress": "xyz789",
  "zip": "xyz789",
  "city": "abc123",
  "country": "US",
  "state": StateCode,
  "email": "xyz789",
  "phone": "abc123",
  "birthDate": "2007-12-03",
  "personnelNumberPrefix": "abc123",
  "personnelNumber": 123,
  "hasDrivingLicenceClassB": false,
  "automaticTimeRecording": false,
  "tags": ["abc123"]
}

CreateEmployeeOperationExecutorsInput

Fields
Input Field Description
operationId - ID!
employeeIds - [ID!]!
changeForOrderShiftUntil - Date If set, the employees are added to every operation of the operation's OrderShift from the operation's execution date up to and including this date (max. 50 operations).
addToOrderShift - Boolean Also add the employees to the operation's order shift (future operations).
Example
{
  "operationId": 4,
  "employeeIds": [4],
  "changeForOrderShiftUntil": "2007-12-03",
  "addToOrderShift": false
}

CreateEmployeeOperationExecutorsPayload

Fields
Field Name Description
operationExecutors - [OperationExecutor!]
Example
{"operationExecutors": [OperationExecutor]}

CreateEmployeeOrderExecutorsInput

Fields
Input Field Description
orderId - ID!
employeeIds - [ID!]!
startDate - Date!
doNotAddToShifts - Boolean
Example
{
  "orderId": "4",
  "employeeIds": ["4"],
  "startDate": "2007-12-03",
  "doNotAddToShifts": false
}

CreateEmployeeOrderExecutorsPayload

Fields
Field Name Description
orderExecutors - [OrderExecutor!]
Example
{"orderExecutors": [OrderExecutor]}

CreateEmployeePayload

Fields
Field Name Description
employee - Employee
Example
{"employee": Employee}

CreateEmployeeWorkingTimeModelInput

Fields
Input Field Description
employeeId - ID!
startDate - Date!
endDate - Date
mondayHours - Float
tuesdayHours - Float
wednesdayHours - Float
thursdayHours - Float
fridayHours - Float
saturdayHours - Float
sundayHours - Float
grossHourlyWage - Int Gross hourly wage in cents.
paidInterimCalculation - WorkingTimeModelPaidInterimCalculation!
isFirstJourneyPaid - Boolean!
salaryCalculation - WorkingTimeModelSalaryCalculation
absenceDurationCalculation - WorkingTimeModelAbsenceDurationCalculation!
timeAccountEnabled - Boolean! Enables the employee's time account: the daily target-vs-actual time difference is booked to the balance.
updateAbsences - Boolean Must be true if there are approved absences in the affected period that should be adjusted.
Example
{
  "employeeId": 4,
  "startDate": "2007-12-03",
  "endDate": "2007-12-03",
  "mondayHours": 123.45,
  "tuesdayHours": 987.65,
  "wednesdayHours": 987.65,
  "thursdayHours": 123.45,
  "fridayHours": 987.65,
  "saturdayHours": 123.45,
  "sundayHours": 987.65,
  "grossHourlyWage": 123,
  "paidInterimCalculation": "FULL_INTERIM",
  "isFirstJourneyPaid": true,
  "salaryCalculation": "ACTUAL_HOURS",
  "absenceDurationCalculation": "PLAN_HOURS",
  "timeAccountEnabled": true,
  "updateAbsences": true
}

CreateEmployeeWorkingTimeModelPayload

Fields
Field Name Description
employeeWorkingTimeModel - EmployeeWorkingTimeModel
Example
{"employeeWorkingTimeModel": EmployeeWorkingTimeModel}

CreateEstimateInput

Fields
Input Field Description
customerId - ID!
number - Int Will be set to the next estimate number if empty
estimateDate - Date Will be set to current date if empty
validityDate - Date Will be set to one month if empty
items - [CreateEstimateItemInput]
introductionText - String
closingText - String
Example
{
  "customerId": "4",
  "number": 987,
  "estimateDate": "2007-12-03",
  "validityDate": "2007-12-03",
  "items": [CreateEstimateItemInput],
  "introductionText": "abc123",
  "closingText": "xyz789"
}

CreateEstimateItemInput

Fields
Input Field Description
position - Int Position of this item within the estimate. Defaults to the item's index if omitted.
title - String!
description - String
quantity - Float!
unitPrice - Int! Net unit price in cents.
taxRate - Float! VAT rate in percent (19 = 19 %).
unit - String
serviceId - ID The service this item is based on.
materialId - ID
objectId - ID The object (Objekt / service location) this item is assigned to. Its customer must match the estimate's customer.
Example
{
  "position": 123,
  "title": "abc123",
  "description": "abc123",
  "quantity": 987.65,
  "unitPrice": 123,
  "taxRate": 987.65,
  "unit": "xyz789",
  "serviceId": 4,
  "materialId": 4,
  "objectId": 4
}

CreateEstimatePayload

Fields
Field Name Description
estimate - Estimate
Example
{"estimate": Estimate}

CreateInvoiceDeliveryDateInput

Description

Either date or start and end can be set. Date will be set to current date if date, start and end is empty.

Fields
Input Field Description
date - Date
start - Date
end - Date
Example
{
  "date": "2007-12-03",
  "start": "2007-12-03",
  "end": "2007-12-03"
}

CreateInvoiceFromPendingInvoiceItemsInput

Fields
Input Field Description
pendingInvoiceItemIds - [ID!]!
invoiceDate - Date Will be set to current date if empty
eInvoiceType - EInvoiceType
number - Int Will be set to the next invoice number if empty
customerContactPersonId - ID
dueDate - Date Will be set to current date if empty
dueDateFormat - InvoiceDueDateFormat
billingPeriodDueDateType - DueDateType
billingPeriodsAreDueAtEnd - Boolean
hideDueDateText - Boolean
introductionText - String
closingText - String
skontoEnabled - Boolean
skontoPercent - Float Skonto discount in percent (3 = 3 %).
skontoDays - Int Days after invoiceDate within which skonto may be taken.
Example
{
  "pendingInvoiceItemIds": ["4"],
  "invoiceDate": "2007-12-03",
  "eInvoiceType": "NONE",
  "number": 123,
  "customerContactPersonId": "4",
  "dueDate": "2007-12-03",
  "dueDateFormat": "DAYS",
  "billingPeriodDueDateType": "IMMEDIATELY",
  "billingPeriodsAreDueAtEnd": false,
  "hideDueDateText": true,
  "introductionText": "xyz789",
  "closingText": "abc123",
  "skontoEnabled": false,
  "skontoPercent": 123.45,
  "skontoDays": 987
}

CreateInvoiceFromPendingInvoiceItemsPayload

Fields
Field Name Description
invoice - Invoice
Example
{"invoice": Invoice}

CreateInvoiceInput

Fields
Input Field Description
customerId - ID!
number - Int Will be set to the next invoice number if empty
dueDate - Date Will be set to current date if empty
dueDateFormat - InvoiceDueDateFormat
hideDueDateText - Boolean This will hide the due date text on the invoice pdf
invoiceDate - Date Will be set to current date if empty
deliveryDate - CreateInvoiceDeliveryDateInput
items - [CreateInvoiceItemInput]
introductionText - String
closingText - String
status - CreateInvoiceStatus Status of created invoice. Set to DRAFT if empty.
sendAfterCreation - Boolean Sends invoice to customer after creation, if set to true. Does not work with invoices in status DRAFT.
Example
{
  "customerId": "4",
  "number": 987,
  "dueDate": "2007-12-03",
  "dueDateFormat": "DAYS",
  "hideDueDateText": true,
  "invoiceDate": "2007-12-03",
  "deliveryDate": CreateInvoiceDeliveryDateInput,
  "items": [CreateInvoiceItemInput],
  "introductionText": "xyz789",
  "closingText": "abc123",
  "status": "DRAFT",
  "sendAfterCreation": true
}

CreateInvoiceItemInput

Fields
Input Field Description
title - String!
description - String
quantity - Float!
unitPrice - Int! Net unit price in cents.
taxRate - Float! VAT rate in percent (19 = 19 %).
unit - String
serviceId - ID The service this item is based on.
materialId - ID
Example
{
  "title": "xyz789",
  "description": "xyz789",
  "quantity": 123.45,
  "unitPrice": 123,
  "taxRate": 123.45,
  "unit": "abc123",
  "serviceId": "4",
  "materialId": "4"
}

CreateInvoicePayload

Fields
Field Name Description
invoice - Invoice
Example
{"invoice": Invoice}

CreateInvoiceStatus

Values
Enum Value Description

DRAFT

Create as editable draft (default).

COMPLETED

Create and finalize immediately (PDF/e-invoice generated).

PAID

Create, finalize and record a payment over the full amount.
Example
"DRAFT"

CreateMaterialGroupInput

Fields
Input Field Description
name - String!
Example
{"name": "abc123"}

CreateMaterialGroupPayload

Fields
Field Name Description
materialGroup - MaterialGroup
Example
{"materialGroup": MaterialGroup}

CreateMaterialInput

Fields
Input Field Description
materialGroupId - ID The material group to assign. Discover ids via materialGroups or another material's group.
number - Int Unique per company. Auto-generated (highest + 1) when omitted.
name - String!
description - String
manufacturer - String
consumptionUnit - String Base unit consumption is recorded in (e.g. l, piece).
salesUnitPrice - Int Net sales price per salesUnit in cents.
salesTaxRate - Float VAT rate in percent (19 = 19 %).
salesUnit - String Unit the material is sold in (e.g. canister).
quantityPerSalesUnit - Float Quantity contained in one salesUnit.
stockUnit - String Unit the material is stocked in.
quantityPerStockUnit - Float Quantity contained in one stockUnit.
stockEanNumber - String EAN/barcode of the stock unit.
revenueAccount - Int Revenue account number.
Example
{
  "materialGroupId": 4,
  "number": 987,
  "name": "xyz789",
  "description": "xyz789",
  "manufacturer": "abc123",
  "consumptionUnit": "abc123",
  "salesUnitPrice": 123,
  "salesTaxRate": 123.45,
  "salesUnit": "xyz789",
  "quantityPerSalesUnit": 987.65,
  "stockUnit": "xyz789",
  "quantityPerStockUnit": 987.65,
  "stockEanNumber": "abc123",
  "revenueAccount": 987
}

CreateMaterialPayload

Fields
Field Name Description
material - Material
Example
{"material": Material}

CreateObjectInput

Description

Either name, streetAddress or city has to be set

Fields
Input Field Description
customerId - ID!
customerContactPersonId - ID
name - String
addressSupplement - String
streetAddress - String
zip - String
city - String
country - CountryCode
state - StateCode
locationRadiusMeters - Int Radius around the object's location, in meters.
email - String
phone - String
extraInvoiceAddressFieldLines - String Extra lines printed in the invoice address block.
costCenter - String Cost center (Kostenstelle) of the object.
invoiceAddress - CreateObjectInvoiceAddressInput Deviating billing address used instead of the customer's address.
invoiceSettings - CreateObjectInvoiceSettingsInput
tags - [String!]
Example
{
  "customerId": 4,
  "customerContactPersonId": 4,
  "name": "xyz789",
  "addressSupplement": "xyz789",
  "streetAddress": "abc123",
  "zip": "xyz789",
  "city": "xyz789",
  "country": "US",
  "state": StateCode,
  "locationRadiusMeters": 987,
  "email": "xyz789",
  "phone": "xyz789",
  "extraInvoiceAddressFieldLines": "abc123",
  "costCenter": "xyz789",
  "invoiceAddress": CreateObjectInvoiceAddressInput,
  "invoiceSettings": CreateObjectInvoiceSettingsInput,
  "tags": ["abc123"]
}

CreateObjectInvoiceAddressInput

Fields
Input Field Description
type - ObjectInvoiceAddressType!
salutation - String Has to be set on type PERSON
firstName - String
lastName - String Has to be set on type PERSON
companyName - String Has to be set on type COMPANY
addressSupplement - String
streetAddress - String!
zip - String!
city - String!
country - CountryCode
Example
{
  "type": "PERSON",
  "salutation": "xyz789",
  "firstName": "abc123",
  "lastName": "abc123",
  "companyName": "xyz789",
  "addressSupplement": "xyz789",
  "streetAddress": "xyz789",
  "zip": "xyz789",
  "city": "xyz789",
  "country": "US"
}

CreateObjectInvoiceSettingsInput

Fields
Input Field Description
eInvoiceType - EInvoiceType
dueDateType - DueDateType
hideDueDateText - Boolean This will hide the due date text on the invoice pdf
introductionText - String
closingText - String
Example
{
  "eInvoiceType": "NONE",
  "dueDateType": "IMMEDIATELY",
  "hideDueDateText": false,
  "introductionText": "abc123",
  "closingText": "xyz789"
}

CreateObjectPayload

Fields
Field Name Description
object - Object
Example
{"object": Object}

CreateObjectRoomsInput

Fields
Input Field Description
objectId - ID!
rooms - [ObjectRoomInput!]!
Example
{
  "objectId": "4",
  "rooms": [ObjectRoomInput]
}

CreateObjectRoomsPayload

Fields
Field Name Description
createdRooms - [ObjectRoom!]!
errors - [ObjectRoomError!]!
Example
{
  "createdRooms": [ObjectRoom],
  "errors": [ObjectRoomError]
}

CreateOperationBillingItemInput

Description

Input for creating a billing position on an executed operation.

Fields
Input Field Description
operationId - ID! The executed operation to add the position to.
operationServiceId - ID Optional link to a specific operation service of the operation.
operationMaterialId - ID Optional link to a specific operation material of the operation.
serviceId - ID Catalog service to bill. Defaults to the operation service's service when omitted.
materialId - ID Catalog material to bill. Defaults to the operation material's material when omitted.
position - Int Optional 1-based sort position. Appended at the end when omitted.
type - OperationBillingItemType!
priceType - OperationBillingItemPriceType!
title - String!
description - String
unitPrice - Int! Net unit price in cents.
quantity - Float Either quantity or quantitySource has to be set, never both.
quantitySource - OperationBillingItemQuantitySource Either quantity or quantitySource has to be set, never both.
unit - String
hasPersonHourUnit - Boolean! Must be true when quantitySource is TIME_RECORD.
taxRate - Float! VAT rate in percent.
Example
{
  "operationId": "4",
  "operationServiceId": "4",
  "operationMaterialId": 4,
  "serviceId": "4",
  "materialId": "4",
  "position": 123,
  "type": "SERVICE",
  "priceType": "FLAT_RATE",
  "title": "xyz789",
  "description": "abc123",
  "unitPrice": 987,
  "quantity": 987.65,
  "quantitySource": "INPUT",
  "unit": "xyz789",
  "hasPersonHourUnit": true,
  "taxRate": 123.45
}

CreateOperationBillingItemPayload

Fields
Field Name Description
operationBillingItem - OperationBillingItem
Example
{"operationBillingItem": OperationBillingItem}

CreateOperationReportFileFromCommentInput

Fields
Input Field Description
operationCommentFileIds - [ID!]! IDs of the OperationCommentFiles to copy from
operationReportId - ID Optional: ID of an existing OperationReport to link the files to
Example
{
  "operationCommentFileIds": ["4"],
  "operationReportId": 4
}

CreateOperationReportFileFromCommentPayload

Fields
Field Name Description
operationReportFiles - [OperationReportFile!]!
Example
{"operationReportFiles": [OperationReportFile]}

CreateOperationReportFileInput

Fields
Input Field Description
operationReportId - ID Either operationReportId or operationId must be provided
operationId - ID
fileName - String! Name of the file with extension
mimeType - String! MIME type of the file
Example
{
  "operationReportId": 4,
  "operationId": "4",
  "fileName": "abc123",
  "mimeType": "xyz789"
}

CreateOperationReportFilePayload

Fields
Field Name Description
uploadUrl - URL Presigned S3 URL, valid for 1 hour. Upload the file with an HTTP PUT of the raw bytes and a Content-Type header equal to the mimeType from the input. The file record exists immediately; no confirmation call is needed.
operationReportFile - OperationReportFile
Example
{
  "uploadUrl": "http://www.test.com/",
  "operationReportFile": OperationReportFile
}

CreateOperationReportInput

Fields
Input Field Description
operationId - ID!
description - String
operationReportFileIds - [ID!] Optional: IDs of previously created OperationReportFiles to link
Example
{
  "operationId": "4",
  "description": "abc123",
  "operationReportFileIds": [4]
}

CreateOperationReportPayload

Fields
Field Name Description
operationReport - OperationReport!
Example
{"operationReport": OperationReport}

CreateOperationsExecutorInput

Fields
Input Field Description
employeeId - ID Either employeeId or subcontractorId must be provided
subcontractorId - ID
Example
{"employeeId": "4", "subcontractorId": 4}

CreateOperationsInput

Fields
Input Field Description
orderId - ID
orderServiceIds - [ID!]
objectId - ID When orderId is not provided, objectId and operationServices are required
operationServices - [CreateOperationsServiceInput!]
operationExecutors - [CreateOperationsExecutorInput!]
instructions - String
requiredExecutors - Int! Minimum number of executors required per operation
executionDates - [Date!]!
executionStartTime - Time
executionEndTime - Time
executionAcrossMidnight - Boolean When true the operation ends on the following day (executionEndDate = start date + 1 day).
duration - Int Planned duration in seconds (derived from execution start/end time).
Example
{
  "orderId": "4",
  "orderServiceIds": ["4"],
  "objectId": "4",
  "operationServices": [CreateOperationsServiceInput],
  "operationExecutors": [CreateOperationsExecutorInput],
  "instructions": "xyz789",
  "requiredExecutors": 123,
  "executionDates": ["2007-12-03"],
  "executionStartTime": "10:15:30Z",
  "executionEndTime": "10:15:30Z",
  "executionAcrossMidnight": false,
  "duration": 123
}

CreateOperationsPayload

Fields
Field Name Description
operations - [Operation]
Example
{"operations": [Operation]}

CreateOperationsServiceInput

Fields
Input Field Description
serviceId - ID!
position - Int
title - String!
Example
{
  "serviceId": "4",
  "position": 987,
  "title": "xyz789"
}

CreateOrderBillingItemInput

Fields
Input Field Description
orderId - ID
objectId - ID
orderServiceId - ID
orderMaterialId - ID
serviceId - ID
materialId - ID
position - Int
type - OrderBillingItemType!
billingModel - OrderBillingModel!
priceType - OrderBillingItemPriceType!
title - String!
description - String
unitPrice - Int! Net unit price in cents.
quantity - Float
quantitySource - OrderBillingItemQuantitySource Can only be set on billingModel PER_OPERATION
unit - String
hasPersonHourUnit - Boolean!
taxRate - Float! VAT rate in percent (19 = 19 %).
startDate - Date!
endDate - Date
listExecutionDates - Boolean
groupOperations - Boolean
frequency - Int Billing cycle length together with interval (e.g. frequency 3 + interval MONTH = quarterly). Only for RECURRING.
interval - OrderBillingItemInterval
billingPeriodsPerInvoice - Int How many billing periods (frequency x interval) are combined into one invoice. Only for RECURRING.
Example
{
  "orderId": "4",
  "objectId": "4",
  "orderServiceId": "4",
  "orderMaterialId": "4",
  "serviceId": "4",
  "materialId": "4",
  "position": 123,
  "type": "SERVICE",
  "billingModel": "ONE_TIME",
  "priceType": "FLAT_RATE",
  "title": "abc123",
  "description": "abc123",
  "unitPrice": 987,
  "quantity": 987.65,
  "quantitySource": "INPUT",
  "unit": "abc123",
  "hasPersonHourUnit": true,
  "taxRate": 987.65,
  "startDate": "2007-12-03",
  "endDate": "2007-12-03",
  "listExecutionDates": true,
  "groupOperations": true,
  "frequency": 123,
  "interval": "WEEK",
  "billingPeriodsPerInvoice": 987
}

CreateOrderBillingItemPayload

Fields
Field Name Description
orderBillingItem - OrderBillingItem
Example
{"orderBillingItem": OrderBillingItem}

CreateOrderBillingItemReductionInput

Fields
Input Field Description
orderBillingItemId - ID!
title - String!
description - String
quantity - Float!
unitPrice - Int! Net unit price in cents. Has to be negative.
unit - String
executionStart - Date!
executionEnd - Date!
Example
{
  "orderBillingItemId": 4,
  "title": "abc123",
  "description": "abc123",
  "quantity": 987.65,
  "unitPrice": 987,
  "unit": "abc123",
  "executionStart": "2007-12-03",
  "executionEnd": "2007-12-03"
}

CreateOrderBillingItemReductionPayload

Fields
Field Name Description
pendingInvoiceItem - PendingInvoiceItem
pendingCreditNoteItems - [PendingCreditNoteItem]
Example
{
  "pendingInvoiceItem": PendingInvoiceItem,
  "pendingCreditNoteItems": [PendingCreditNoteItem]
}

CreateOrderExecutorBillingItemInput

Fields
Input Field Description
orderExecutorId - ID!
orderBillingItemId - ID
orderServiceId - ID
orderMaterialId - ID
position - Int
type - OrderExecutorBillingItemType!
billingModel - OrderExecutorBillingModel!
priceType - OrderExecutorBillingItemPriceType!
title - String!
description - String
unitPrice - Int Provide either unitPrice or pricePercentage, not both.
pricePercentage - Int Provide either unitPrice or pricePercentage, not both. Percent of the linked orderBillingItem's unitPrice (19 = 19 %); requires orderBillingItemId.
quantity - Float
quantitySource - OrderExecutorBillingItemQuantitySource Can only be set on billingModel PER_OPERATION
unit - String
hasPersonHourUnit - Boolean!
taxRate - Float! VAT rate in percent (19 = 19 %).
startDate - Date!
endDate - Date
frequency - Int Billing cycle length together with interval (e.g. frequency 3 + interval MONTH = quarterly). Only for RECURRING.
interval - OrderExecutorBillingItemInterval
Example
{
  "orderExecutorId": 4,
  "orderBillingItemId": 4,
  "orderServiceId": "4",
  "orderMaterialId": "4",
  "position": 123,
  "type": "SERVICE",
  "billingModel": "ONE_TIME",
  "priceType": "FLAT_RATE",
  "title": "abc123",
  "description": "xyz789",
  "unitPrice": 987,
  "pricePercentage": 987,
  "quantity": 123.45,
  "quantitySource": "INPUT",
  "unit": "xyz789",
  "hasPersonHourUnit": true,
  "taxRate": 123.45,
  "startDate": "2007-12-03",
  "endDate": "2007-12-03",
  "frequency": 987,
  "interval": "WEEK"
}

CreateOrderExecutorBillingItemPayload

Fields
Field Name Description
orderExecutorBillingItem - OrderExecutorBillingItem
Example
{"orderExecutorBillingItem": OrderExecutorBillingItem}

CreateOrderInput

Fields
Input Field Description
objectId - ID!
estimateId - ID
startDate - Date Can maximum be 24 months in the past
endDate - Date
instructions - String
requiredExecutors - Int! Minimum number of executors required per operation
executionOnHolidays - Boolean! Should operations on holidays be executed?
services - [OrderServiceInput!]! At least one service is required — an order can not be created without a service.
materials - [OrderMaterialInput!]
executors - [OrderExecutorInput!]
Example
{
  "objectId": 4,
  "estimateId": "4",
  "startDate": "2007-12-03",
  "endDate": "2007-12-03",
  "instructions": "xyz789",
  "requiredExecutors": 123,
  "executionOnHolidays": false,
  "services": [OrderServiceInput],
  "materials": [OrderMaterialInput],
  "executors": [OrderExecutorInput]
}

CreateOrderPayload

Fields
Field Name Description
order - Order
Example
{"order": Order}

CreateOrderServiceInput

Fields
Input Field Description
orderId - ID!
serviceId - ID!
position - Int 1-based position within the order's service list. Existing services at or after this position are shifted down. Appended at the end when omitted.
title - String!
executionOnDemand - Boolean! When true the service is only executed on demand instead of via the order's shifts.
demandRrule - String Recurrence rule that drives the next demand date when executionOnDemand is true.
Example
{
  "orderId": "4",
  "serviceId": "4",
  "position": 987,
  "title": "abc123",
  "executionOnDemand": true,
  "demandRrule": "xyz789"
}

CreateOrderServicePayload

Fields
Field Name Description
orderService - OrderService
Example
{"orderService": OrderService}

CreateOrderServiceTaskInput

Fields
Input Field Description
orderServiceId - ID!
serviceAreaId - ID Optional service area to assign the task to. Must belong to the same service as the OrderService.
position - Int 1-based position within the OrderService's task list. Existing tasks at or after this position are shifted down. Appended at the end when omitted.
title - String!
rrule - String Recurrence rule (RFC 5545 RRULE) for how often the task is due, e.g. "FREQ=MONTHLY;BYDAY=2WE". Monthly/quarterly rules must be weekday-based (BYDAY). null means it applies on every operation of its shift.
startDate - Date Anchor / first execution of the recurrence. null = anchored at the shift's start date.
quantity - Float Quantity/area covered by the task (e.g. square meters). Paired with unit.
unit - String Free-form unit for quantity, e.g. "m²".
Example
{
  "orderServiceId": "4",
  "serviceAreaId": 4,
  "position": 987,
  "title": "abc123",
  "rrule": "abc123",
  "startDate": "2007-12-03",
  "quantity": 123.45,
  "unit": "xyz789"
}

CreateOrderServiceTaskPayload

Fields
Field Name Description
orderServiceTask - OrderServiceTask
Example
{"orderServiceTask": OrderServiceTask}

CreateOrderServiceTaskRoomsInput

Fields
Input Field Description
orderServiceTaskId - ID!
objectRoomIds - [ID!]! The object rooms to link to the task. Must belong to the order's object. At most 100 ids per call.
Example
{
  "orderServiceTaskId": "4",
  "objectRoomIds": [4]
}

CreateOrderServiceTaskRoomsPayload

Fields
Field Name Description
objectRoomIds - [ID!]
Example
{"objectRoomIds": ["4"]}

CreateOrderShiftInput

Fields
Input Field Description
orderId - ID!
orderServiceIds - [ID!]!
orderExecutorIds - [ID!]!
rrule - String! Recurrence rule (RFC 5545 RRULE) generating the shift's operations, e.g. FREQ=WEEKLY;BYDAY=MO,TH.
startDate - Date! Can maximum be two months in the past
timeFrom - Time
timeTo - Time
acrossMidnight - Boolean Operations end on the day after their start date.
duration - Int Planned duration per operation in seconds (alternative to timeFrom/timeTo).
requiredExecutors - Int! Minimum number of executors required per operation
deviatingInstructions - String
createServiceReceipt - Boolean
days - [OrderShiftDayInput!] Per-weekday overrides. At most one entry per weekday (ISO 1=Mon .. 7=Sun).
tasks - [OrderShiftTaskInput!] Per-shift task selection. Omit or pass an empty list to run all tasks of the shift's services.
Example
{
  "orderId": 4,
  "orderServiceIds": ["4"],
  "orderExecutorIds": ["4"],
  "rrule": "abc123",
  "startDate": "2007-12-03",
  "timeFrom": "10:15:30Z",
  "timeTo": "10:15:30Z",
  "acrossMidnight": false,
  "duration": 987,
  "requiredExecutors": 123,
  "deviatingInstructions": "xyz789",
  "createServiceReceipt": true,
  "days": [OrderShiftDayInput],
  "tasks": [OrderShiftTaskInput]
}

CreateOrderShiftPayload

Fields
Field Name Description
orderShift - OrderShift
Example
{"orderShift": OrderShift}

CreatePaymentInput

Fields
Input Field Description
invoiceId - ID Provide exactly one of invoiceId or receiptId.
receiptId - ID Provide exactly one of invoiceId or receiptId.
amount - Int! Amount in cents (negative values are used as their absolute value).
paymentDate - Date!
Example
{
  "invoiceId": "4",
  "receiptId": 4,
  "amount": 987,
  "paymentDate": "2007-12-03"
}

CreatePaymentPayload

Fields
Field Name Description
payment - Payment
invoice - Invoice
Example
{
  "payment": Payment,
  "invoice": Invoice
}

CreatePendingInvoiceItemInput

Fields
Input Field Description
customerId - ID!
objectId - ID
serviceId - ID
materialId - ID
title - String!
description - String
quantity - Float
unitPrice - Int! Net unit price in cents.
taxRate - Float! VAT rate in percent (19 = 19 %).
unit - String
executionStart - Date! Start of the execution period this item bills.
executionEnd - Date! End of the execution period this item bills.
billingPeriodInterval - BillingPeriodInterval Marks the item as billing a recurring period (MONTH or QUARTER).
Example
{
  "customerId": 4,
  "objectId": 4,
  "serviceId": "4",
  "materialId": "4",
  "title": "abc123",
  "description": "abc123",
  "quantity": 123.45,
  "unitPrice": 123,
  "taxRate": 987.65,
  "unit": "abc123",
  "executionStart": "2007-12-03",
  "executionEnd": "2007-12-03",
  "billingPeriodInterval": "MONTH"
}

CreatePendingInvoiceItemPayload

Fields
Field Name Description
pendingInvoiceItem - PendingInvoiceItem
Example
{"pendingInvoiceItem": PendingInvoiceItem}

CreateSubcontractorContactPersonInput

Fields
Input Field Description
subcontractorId - ID!
isDefault - Boolean
salutation - String!
firstName - String
lastName - String!
role - String
email - String
phone - String
Example
{
  "subcontractorId": "4",
  "isDefault": true,
  "salutation": "xyz789",
  "firstName": "xyz789",
  "lastName": "abc123",
  "role": "abc123",
  "email": "xyz789",
  "phone": "xyz789"
}

CreateSubcontractorContactPersonPayload

Fields
Field Name Description
subcontractorContactPerson - SubcontractorContactPerson
Example
{"subcontractorContactPerson": SubcontractorContactPerson}

CreateSubcontractorInput

Fields
Input Field Description
type - SubcontractorType!
salutation - String
firstName - String
lastName - String
companyName - String
streetAddress - String
zip - String
city - String
country - CountryCode
email - String
phone - String
fax - String
website - String
taxNumber - String
vatId - String VAT ID (USt-IdNr.).
Example
{
  "type": "PERSON",
  "salutation": "xyz789",
  "firstName": "xyz789",
  "lastName": "abc123",
  "companyName": "xyz789",
  "streetAddress": "abc123",
  "zip": "abc123",
  "city": "xyz789",
  "country": "US",
  "email": "abc123",
  "phone": "xyz789",
  "fax": "xyz789",
  "website": "xyz789",
  "taxNumber": "abc123",
  "vatId": "xyz789"
}

CreateSubcontractorOperationExecutorInput

Fields
Input Field Description
operationId - ID!
subcontractorId - ID!
Example
{"operationId": "4", "subcontractorId": 4}

CreateSubcontractorOperationExecutorPayload

Fields
Field Name Description
operationExecutor - OperationExecutor
Example
{"operationExecutor": OperationExecutor}

CreateSubcontractorOrderExecutorInput

Fields
Input Field Description
orderId - ID!
subcontractorId - ID!
startDate - Date!
doNotAddToShifts - Boolean
Example
{
  "orderId": 4,
  "subcontractorId": 4,
  "startDate": "2007-12-03",
  "doNotAddToShifts": true
}

CreateSubcontractorOrderExecutorPayload

Fields
Field Name Description
orderExecutor - OrderExecutor
Example
{"orderExecutor": OrderExecutor}

CreateSubcontractorPayload

Fields
Field Name Description
subcontractor - Subcontractor
Example
{"subcontractor": Subcontractor}

CreateSupplierContactPersonInput

Fields
Input Field Description
supplierId - ID!
isDefault - Boolean
salutation - String!
firstName - String
lastName - String!
role - String
email - String
phone - String
Example
{
  "supplierId": 4,
  "isDefault": true,
  "salutation": "xyz789",
  "firstName": "abc123",
  "lastName": "abc123",
  "role": "abc123",
  "email": "xyz789",
  "phone": "xyz789"
}

CreateSupplierContactPersonPayload

Fields
Field Name Description
supplierContactPerson - SupplierContactPerson
Example
{"supplierContactPerson": SupplierContactPerson}

CreateSupplierInput

Fields
Input Field Description
type - SupplierType!
salutation - String
firstName - String
lastName - String
companyName - String
addressSupplement - String
streetAddress - String
zip - String
city - String
country - CountryCode
email - String
phone - String
fax - String
website - String
taxNumber - String
vatId - String VAT ID (USt-IdNr.).
tags - [String!]
Example
{
  "type": "PERSON",
  "salutation": "xyz789",
  "firstName": "xyz789",
  "lastName": "abc123",
  "companyName": "xyz789",
  "addressSupplement": "abc123",
  "streetAddress": "xyz789",
  "zip": "xyz789",
  "city": "abc123",
  "country": "US",
  "email": "abc123",
  "phone": "abc123",
  "fax": "abc123",
  "website": "xyz789",
  "taxNumber": "xyz789",
  "vatId": "xyz789",
  "tags": ["xyz789"]
}

CreateSupplierPayload

Fields
Field Name Description
supplier - Supplier
Example
{"supplier": Supplier}

CreateTicketFileInput

Fields
Input Field Description
ticketId - ID!
fileName - String! Name of the file with extension
mimeType - String! MIME type of the file
Example
{
  "ticketId": 4,
  "fileName": "xyz789",
  "mimeType": "abc123"
}

CreateTicketFilePayload

Fields
Field Name Description
uploadUrl - URL Presigned S3 URL, valid for 1 hour. Upload the file with an HTTP PUT of the raw bytes and a Content-Type header equal to the mimeType from the input. The file record exists immediately; no confirmation call is needed.
ticketFile - TicketFile
Example
{
  "uploadUrl": "http://www.test.com/",
  "ticketFile": TicketFile
}

CreateTicketInput

Fields
Input Field Description
objectId - ID!
objectRoomId - ID
orderId - ID
sourceOperationId - ID
type - TicketType
isPublic - Boolean
inputChannel - TicketInputChannel
location - String
description - String!
priority - TicketPriority!
discoverDate - Date
dueDate - Date
Example
{
  "objectId": 4,
  "objectRoomId": "4",
  "orderId": 4,
  "sourceOperationId": "4",
  "type": "COMPLAINT",
  "isPublic": false,
  "inputChannel": "PORTAL",
  "location": "xyz789",
  "description": "xyz789",
  "priority": "LOW",
  "discoverDate": "2007-12-03",
  "dueDate": "2007-12-03"
}

CreateTicketPayload

Fields
Field Name Description
ticket - Ticket
Example
{"ticket": Ticket}

CreateTimeRecordBreakInput

Fields
Input Field Description
timeRecordId - ID!
start - DateTime! Break start in UTC (must be within the time record)
end - DateTime! Break end in UTC (after start, within the time record)
Example
{
  "timeRecordId": "4",
  "start": "2007-12-03T10:15:30Z",
  "end": "2007-12-03T10:15:30Z"
}

CreateTimeRecordBreakPayload

Fields
Field Name Description
timeRecordBreak - TimeRecordBreak
Example
{"timeRecordBreak": TimeRecordBreak}

CreateTimeRecordInput

Fields
Input Field Description
employeeId - ID Employee hash ID. Provide either this or personnelNumber.
personnelNumber - Int Personnel number. Provide either this or employeeId.
start - DateTime! Start of time record in UTC
end - DateTime! End of time record in UTC
journeyStart - DateTime Start of journey in UTC (must be before start)
breakDuration - Int Total break duration in seconds
objectId - ID Object hash ID. Provide either this or objectNumber.
objectNumber - Int Object number. Provide either this or objectId.
Example
{
  "employeeId": "4",
  "personnelNumber": 987,
  "start": "2007-12-03T10:15:30Z",
  "end": "2007-12-03T10:15:30Z",
  "journeyStart": "2007-12-03T10:15:30Z",
  "breakDuration": 987,
  "objectId": 4,
  "objectNumber": 123
}

CreateTimeRecordResult

Fields
Field Name Description
index - Int! 0-based index in the input array
timeRecord - TimeRecord The created time record (null if failed)
error - String Error message (null if succeeded)
Example
{
  "index": 987,
  "timeRecord": TimeRecord,
  "error": "xyz789"
}

CreateTimeRecordsInput

Fields
Input Field Description
records - [CreateTimeRecordInput!]!
Example
{"records": [CreateTimeRecordInput]}

CreateTimeRecordsPayload

Fields
Field Name Description
results - [CreateTimeRecordResult!]!
Example
{"results": [CreateTimeRecordResult]}

CreditNote

Description

A credit note (Gutschrift) crediting a subcontractor (Nachunternehmer) for performed work. Customer-side documents are invoices.

Fields
Field Name Description
id - ID!
company - Company Company of that credit note. If credit note is completed, it provides data at the time the credit note was completed.
subcontractor - Subcontractor!
subcontractorContactPerson - SubcontractorContactPerson
type - CreditNoteType!
status - CreditNoteStatus!
number - Int! Sequential credit note number, assigned at creation.
numberPrefix - String
numberSuffix - String
items - [CreditNoteItem!]!
totalAmount - Int! Gross total in cents.
totalNetAmount - Int! Net total in cents.
dueDate - Date
dueDateFormat - CreditNoteDueDateFormat
hideDueDateText - Boolean! This will hide the due date text on the credit note pdf
creditNoteDate - Date!
deliveryDate - CreditNoteDeliveryDate! Service/delivery date (Leistungsdatum): a single date or a range.
hasKleinunternehmerregelung - Boolean! German small-business rule (§ 19 UStG): no VAT is charged or shown.
introductionText - String
closingText - String
isNegative - Boolean! True when the item total is negative.
creditNotePdf - String
sentManually - Boolean
completedAt - DateTime
sentAt - DateTime
paidAt - Date
cancelledAt - Date
language - LanguageTag!
currency - CurrencyCode!
createdAt - DateTime!
payments - [Payment]
originalCreditNote - CreditNote Original credit note if credit note is a cancellation (type is CANCELLATION)
cancellationCreditNote - CreditNote Cancellation credit note if credit note is cancelled (status is CANCELLED)
Example
{
  "id": 4,
  "company": Company,
  "subcontractor": Subcontractor,
  "subcontractorContactPerson": SubcontractorContactPerson,
  "type": "CREDIT_NOTE",
  "status": "DRAFT",
  "number": 987,
  "numberPrefix": "xyz789",
  "numberSuffix": "abc123",
  "items": [CreditNoteItem],
  "totalAmount": 123,
  "totalNetAmount": 123,
  "dueDate": "2007-12-03",
  "dueDateFormat": "DAYS",
  "hideDueDateText": false,
  "creditNoteDate": "2007-12-03",
  "deliveryDate": SingleDate,
  "hasKleinunternehmerregelung": true,
  "introductionText": "abc123",
  "closingText": "xyz789",
  "isNegative": false,
  "creditNotePdf": "xyz789",
  "sentManually": false,
  "completedAt": "2007-12-03T10:15:30Z",
  "sentAt": "2007-12-03T10:15:30Z",
  "paidAt": "2007-12-03",
  "cancelledAt": "2007-12-03",
  "language": LanguageTag,
  "currency": CurrencyCode,
  "createdAt": "2007-12-03T10:15:30Z",
  "payments": [Payment],
  "originalCreditNote": CreditNote,
  "cancellationCreditNote": CreditNote
}

CreditNoteConnection

Fields
Field Name Description
edges - [CreditNoteEdge]
pageInfo - PageInfo!
totalCount - Int!
Example
{
  "edges": [CreditNoteEdge],
  "pageInfo": PageInfo,
  "totalCount": 123
}

CreditNoteDeliveryDate

Types
Union Types

SingleDate

DateRange

Example
SingleDate

CreditNoteDraft

Fields
Field Name Description
subcontractor - Subcontractor
subcontractorContactPerson - SubcontractorContactPerson
status - CreditNoteStatus!
number - Int!
dueDate - Date
dueDateFormat - CreditNoteDueDateFormat
hideDueDateText - Boolean! This will hide the due date text on the credit note pdf
creditNoteDate - Date
deliveryDate - CreditNoteDeliveryDate
items - [CreditNoteDraftItem]
introductionText - String
closingText - String
language - LanguageTag!
currency - CurrencyCode!
Example
{
  "subcontractor": Subcontractor,
  "subcontractorContactPerson": SubcontractorContactPerson,
  "status": "DRAFT",
  "number": 123,
  "dueDate": "2007-12-03",
  "dueDateFormat": "DAYS",
  "hideDueDateText": true,
  "creditNoteDate": "2007-12-03",
  "deliveryDate": SingleDate,
  "items": [CreditNoteDraftItem],
  "introductionText": "abc123",
  "closingText": "abc123",
  "language": LanguageTag,
  "currency": CurrencyCode
}

CreditNoteDraftItem

Fields
Field Name Description
position - Int
title - String
description - String
quantity - Float
unitPrice - Int Net unit price in cents.
taxRate - Float VAT rate in percent (19 = 19 %).
unit - String
Example
{
  "position": 123,
  "title": "abc123",
  "description": "xyz789",
  "quantity": 123.45,
  "unitPrice": 123,
  "taxRate": 123.45,
  "unit": "xyz789"
}

CreditNoteDueDateFormat

Values
Enum Value Description

DAYS

DATE

Example
"DAYS"

CreditNoteEdge

Fields
Field Name Description
cursor - String!
node - CreditNote!
Example
{
  "cursor": "abc123",
  "node": CreditNote
}

CreditNoteItem

Fields
Field Name Description
id - ID!
position - Int!
title - String!
description - String
quantity - Float!
unitPrice - Int! Net unit price in cents.
taxRate - Float! VAT rate in percent (19 = 19 %).
unit - String
createdAt - DateTime
Example
{
  "id": "4",
  "position": 987,
  "title": "xyz789",
  "description": "abc123",
  "quantity": 123.45,
  "unitPrice": 123,
  "taxRate": 123.45,
  "unit": "xyz789",
  "createdAt": "2007-12-03T10:15:30Z"
}

CreditNoteOrder

Fields
Input Field Description
field - CreditNoteOrderField!
direction - OrderDirection!
Example
{"field": "CREATED_AT", "direction": "ASC"}

CreditNoteOrderField

Values
Enum Value Description

CREATED_AT

CREDIT_NOTE_DATE

DUE_DATE

Example
"CREATED_AT"

CreditNoteStatus

Description

Lifecycle: DRAFT -> COMPLETED (completeCreditNote) -> SENT -> PAID; CANCELLED via cancellation inside Mendato.

Values
Enum Value Description

DRAFT

Editable draft.

COMPLETED

Finalized; PDF generated, completedAt set.

SENT

Sent to the subcontractor; sentAt is set.

PAID

Payments cover the total; paidAt is set.

CANCELLED

Cancelled; cancellationCreditNote references the reversing document.
Example
"DRAFT"

CreditNoteType

Values
Enum Value Description

CREDIT_NOTE

CANCELLATION

Cancellation credit note reversing its originalCreditNote.
Example
"CREDIT_NOTE"

CurrencyCode

Description

ISO 4217 currency code

Example
CurrencyCode

Customer

Description

A customer (Kunde). Owns objects (service locations); invoices and estimates are addressed to customers.

Fields
Field Name Description
id - ID!
number - Int!
type - CustomerType!
salutation - String
firstName - String
lastName - String
companyName - String
addressSupplement - String
streetAddress - String
zip - String
city - String
country - CountryCode
emails - [CustomerEmail!]
phone - String
fax - String
website - String
vatId - String VAT ID (USt-IdNr.).
datevAccount - Int! DATEV debtor account number (accounting export).
sellerIdentifier - String Your company's supplier/seller number at this customer, printed in e-invoices.
leitwegId - String Leitweg-ID for XRechnung e-invoices to public-sector customers.
invoiceSettings - CustomerInvoiceSettings
note - String
tags - [String!]!
createdAt - DateTime
invoices - InvoiceConnection!
Arguments
after - String
before - String
first - Int
last - Int
estimates - EstimateConnection!
Arguments
after - String
before - String
first - Int
last - Int
receipts - ReceiptConnection!
Arguments
after - String
before - String
first - Int
last - Int
objects - ObjectConnection!
Arguments
after - String
before - String
first - Int
last - Int
query - String

Query by number, name, streetAddress, zip, city

orderBy - ObjectOrder
contactPersons - CustomerContactPersonConnection!
Arguments
after - String
before - String
first - Int
last - Int
query - String

Query for firstName, lastName and email

Example
{
  "id": "4",
  "number": 987,
  "type": "PERSON",
  "salutation": "abc123",
  "firstName": "abc123",
  "lastName": "abc123",
  "companyName": "abc123",
  "addressSupplement": "abc123",
  "streetAddress": "abc123",
  "zip": "xyz789",
  "city": "xyz789",
  "country": "US",
  "emails": [CustomerEmail],
  "phone": "xyz789",
  "fax": "xyz789",
  "website": "xyz789",
  "vatId": "xyz789",
  "datevAccount": 987,
  "sellerIdentifier": "xyz789",
  "leitwegId": "xyz789",
  "invoiceSettings": CustomerInvoiceSettings,
  "note": "abc123",
  "tags": ["abc123"],
  "createdAt": "2007-12-03T10:15:30Z",
  "invoices": InvoiceConnection,
  "estimates": EstimateConnection,
  "receipts": ReceiptConnection,
  "objects": ObjectConnection,
  "contactPersons": CustomerContactPersonConnection
}

CustomerConnection

Fields
Field Name Description
edges - [CustomerEdge]
pageInfo - PageInfo!
totalCount - Int!
Example
{
  "edges": [CustomerEdge],
  "pageInfo": PageInfo,
  "totalCount": 987
}

CustomerContactPerson

Fields
Field Name Description
id - ID!
isDefault - Boolean!
salutation - String!
firstName - String
lastName - String!
role - String
email - String
phone - String
createdAt - DateTime!
Example
{
  "id": "4",
  "isDefault": true,
  "salutation": "xyz789",
  "firstName": "xyz789",
  "lastName": "xyz789",
  "role": "abc123",
  "email": "xyz789",
  "phone": "xyz789",
  "createdAt": "2007-12-03T10:15:30Z"
}

CustomerContactPersonConnection

Fields
Field Name Description
edges - [CustomerContactPersonEdge]
pageInfo - PageInfo!
totalCount - Int!
Example
{
  "edges": [CustomerContactPersonEdge],
  "pageInfo": PageInfo,
  "totalCount": 987
}

CustomerContactPersonEdge

Fields
Field Name Description
cursor - String!
node - CustomerContactPerson!
Example
{
  "cursor": "xyz789",
  "node": CustomerContactPerson
}

CustomerEdge

Fields
Field Name Description
cursor - String!
node - Customer!
Example
{
  "cursor": "xyz789",
  "node": Customer
}

CustomerEmail

Fields
Field Name Description
id - ID!
type - CustomerEmailType!
email - String!
createdAt - DateTime!
Example
{
  "id": "4",
  "type": "GENERAL",
  "email": "abc123",
  "createdAt": "2007-12-03T10:15:30Z"
}

CustomerEmailType

Values
Enum Value Description

GENERAL

General correspondence address.

INVOICE

Address used for sending invoices.
Example
"GENERAL"

CustomerInvoiceSettings

Description

Customer-level overrides of the company invoice settings (null = inherit).

Fields
Field Name Description
eInvoiceType - EInvoiceType
dueDateType - DueDateType
hideDueDateText - Boolean This will hide the due date text on the invoice pdf
introductionText - String
closingText - String
skontoEnabled - Boolean
skontoPercent - Float Skonto discount in percent (3 = 3 %).
skontoDays - Int Days after invoiceDate within which skonto may be taken.
attachServiceReceiptPdfs - Boolean
Example
{
  "eInvoiceType": "NONE",
  "dueDateType": "IMMEDIATELY",
  "hideDueDateText": false,
  "introductionText": "xyz789",
  "closingText": "abc123",
  "skontoEnabled": false,
  "skontoPercent": 123.45,
  "skontoDays": 987,
  "attachServiceReceiptPdfs": false
}

CustomerType

Values
Enum Value Description

PERSON

COMPANY

Example
"PERSON"

Date

Description

Calendar date in the form YYYY-MM-DD, e.g. 2026-07-01.

Example
"2007-12-03"

DateRange

Fields
Field Name Description
start - Date!
end - Date!
Example
{
  "start": "2007-12-03",
  "end": "2007-12-03"
}

DateTime

Description

Timestamp in ISO 8601 UTC, e.g. 2026-07-01T10:20:30.000Z.

Example
"2007-12-03T10:15:30Z"

DeclineAbsenceInput

Fields
Input Field Description
absenceId - ID!
Example
{"absenceId": "4"}

DeclineAbsencePayload

Fields
Field Name Description
absence - Absence
Example
{"absence": Absence}

DeclineEstimateInput

Fields
Input Field Description
estimateId - ID!
Example
{"estimateId": 4}

DeclineEstimatePayload

Fields
Field Name Description
estimate - Estimate
Example
{"estimate": Estimate}

DeleteCustomerContactPersonInput

Fields
Input Field Description
customerContactPersonId - ID!
Example
{"customerContactPersonId": "4"}

DeleteCustomerContactPersonPayload

Fields
Field Name Description
deletedCustomerContactPersonId - ID
Example
{"deletedCustomerContactPersonId": 4}

DeleteCustomerInput

Fields
Input Field Description
customerId - ID!
Example
{"customerId": 4}

DeleteCustomerPayload

Fields
Field Name Description
deletedCustomerId - ID
Example
{"deletedCustomerId": "4"}

DeleteEmployeeInput

Fields
Input Field Description
employeeId - ID!
Example
{"employeeId": "4"}

DeleteEmployeePayload

Fields
Field Name Description
deletedEmployeeId - ID
Example
{"deletedEmployeeId": 4}

DeleteEmployeeProfilePictureInput

Fields
Input Field Description
employeeId - ID!
Example
{"employeeId": 4}

DeleteEmployeeProfilePicturePayload

Fields
Field Name Description
success - Boolean
Example
{"success": true}

DeleteEmployeeWorkingTimeModelInput

Fields
Input Field Description
employeeWorkingTimeModelId - ID!
updateAbsences - Boolean Must be true if there are approved absences in the affected period that should be adjusted.
Example
{
  "employeeWorkingTimeModelId": "4",
  "updateAbsences": true
}

DeleteEmployeeWorkingTimeModelPayload

Fields
Field Name Description
deletedEmployeeWorkingTimeModelId - ID
Example
{"deletedEmployeeWorkingTimeModelId": 4}

DeleteEstimateInput

Fields
Input Field Description
estimateId - ID!
Example
{"estimateId": 4}

DeleteEstimatePayload

Fields
Field Name Description
deletedEstimateId - ID
Example
{"deletedEstimateId": "4"}

DeleteInvoiceInput

Fields
Input Field Description
invoiceId - ID!
Example
{"invoiceId": 4}

DeleteInvoicePayload

Fields
Field Name Description
deletedInvoiceId - ID
Example
{"deletedInvoiceId": "4"}

DeleteObjectInput

Fields
Input Field Description
objectId - ID!
Example
{"objectId": "4"}

DeleteObjectPayload

Fields
Field Name Description
deletedObjectId - ID
Example
{"deletedObjectId": "4"}

DeleteObjectRoomInput

Fields
Input Field Description
objectRoomId - ID!
Example
{"objectRoomId": 4}

DeleteObjectRoomPayload

Fields
Field Name Description
deletedObjectRoomId - ID
Example
{"deletedObjectRoomId": "4"}

DeleteOperationBillingItemInput

Fields
Input Field Description
operationBillingItemId - ID!
Example
{"operationBillingItemId": 4}

DeleteOperationBillingItemPayload

Fields
Field Name Description
deletedOperationBillingItemId - ID
Example
{"deletedOperationBillingItemId": 4}

DeleteOperationExecutorInput

Fields
Input Field Description
operationExecutorId - ID!
Example
{"operationExecutorId": "4"}

DeleteOperationExecutorPayload

Fields
Field Name Description
deletedOperationExecutorId - ID
Example
{"deletedOperationExecutorId": "4"}

DeleteOperationReportFileInput

Fields
Input Field Description
operationReportFileId - ID!
Example
{"operationReportFileId": "4"}

DeleteOperationReportFilePayload

Fields
Field Name Description
deletedOperationReportFileId - ID!
Example
{"deletedOperationReportFileId": "4"}

DeleteOperationReportInput

Fields
Input Field Description
operationReportId - ID!
Example
{"operationReportId": "4"}

DeleteOperationReportPayload

Fields
Field Name Description
deletedOperationReportId - ID!
Example
{"deletedOperationReportId": 4}

DeleteOrderBillingItemInput

Fields
Input Field Description
orderBillingItemId - ID!
Example
{"orderBillingItemId": "4"}

DeleteOrderBillingItemPayload

Fields
Field Name Description
deletedOrderBillingItemId - ID
Example
{"deletedOrderBillingItemId": "4"}

DeleteOrderExecutorBillingItemInput

Fields
Input Field Description
orderExecutorBillingItemId - ID!
Example
{"orderExecutorBillingItemId": 4}

DeleteOrderExecutorBillingItemPayload

Fields
Field Name Description
deletedOrderExecutorBillingItemId - ID
Example
{"deletedOrderExecutorBillingItemId": 4}

DeleteOrderExecutorInput

Description

Deletes all related OrderShiftExecutors and OperationExecutors without related TimeRecord

Fields
Input Field Description
orderExecutorId - ID!
lastExecutionDate - Date Only OperationExecutors with execution date after this date will be deleted if set
Example
{
  "orderExecutorId": 4,
  "lastExecutionDate": "2007-12-03"
}

DeleteOrderExecutorPayload

Fields
Field Name Description
deletedOrderExecutorId - ID
Example
{"deletedOrderExecutorId": "4"}

DeleteOrderInput

Fields
Input Field Description
orderId - ID!
Example
{"orderId": 4}

DeleteOrderPayload

Fields
Field Name Description
deletedOrderId - ID
Example
{"deletedOrderId": 4}

DeleteOrderServiceInput

Fields
Input Field Description
orderServiceId - ID!
lastExecutionDate - Date! Only OperationServices with execution date after this date will be deleted.
Example
{
  "orderServiceId": "4",
  "lastExecutionDate": "2007-12-03"
}

DeleteOrderServicePayload

Fields
Field Name Description
deletedOrderServiceId - ID
Example
{"deletedOrderServiceId": "4"}

DeleteOrderServiceTaskRoomsInput

Fields
Input Field Description
orderServiceTaskRoomIds - [ID!]! The OrderServiceTaskRooms to delete. At most 100 ids per call.
Example
{"orderServiceTaskRoomIds": [4]}

DeleteOrderServiceTaskRoomsPayload

Fields
Field Name Description
deletedOrderServiceTaskRoomIds - [ID!]
Example
{"deletedOrderServiceTaskRoomIds": ["4"]}

DeleteOrderServiceTasksInput

Fields
Input Field Description
orderServiceTaskIds - [ID!]! The OrderServiceTasks to delete. At most 100 ids per call.
Example
{"orderServiceTaskIds": [4]}

DeleteOrderServiceTasksPayload

Fields
Field Name Description
deletedOrderServiceTaskIds - [ID!]
Example
{"deletedOrderServiceTaskIds": [4]}

DeleteOrderShiftExecutorInput

Fields
Input Field Description
orderShiftExecutorId - ID!
lastExecutionDate - Date Only OperationExecutors with execution date after this date will be deleted if set
Example
{
  "orderShiftExecutorId": 4,
  "lastExecutionDate": "2007-12-03"
}

DeleteOrderShiftExecutorPayload

Fields
Field Name Description
deletedOrderShiftExecutorId - ID
Example
{"deletedOrderShiftExecutorId": "4"}

DeleteOrderShiftInput

Fields
Input Field Description
orderShiftId - ID!
Example
{"orderShiftId": 4}

DeleteOrderShiftPayload

Fields
Field Name Description
deletedOrderShiftId - ID
Example
{"deletedOrderShiftId": "4"}

DeletePendingInvoiceItemsInput

Fields
Input Field Description
pendingInvoiceItemIds - [ID!]!
Example
{"pendingInvoiceItemIds": ["4"]}

DeletePendingInvoiceItemsPayload

Fields
Field Name Description
deletedPendingInvoiceItemIds - [ID]
Example
{"deletedPendingInvoiceItemIds": [4]}

DeleteSubcontractorContactPersonInput

Fields
Input Field Description
subcontractorContactPersonId - ID!
Example
{"subcontractorContactPersonId": "4"}

DeleteSubcontractorContactPersonPayload

Fields
Field Name Description
deletedSubcontractorContactPersonId - ID
Example
{"deletedSubcontractorContactPersonId": 4}

DeleteSubcontractorInput

Fields
Input Field Description
subcontractorId - ID!
Example
{"subcontractorId": 4}

DeleteSubcontractorPayload

Fields
Field Name Description
deletedSubcontractorId - ID
Example
{"deletedSubcontractorId": 4}

DeleteSupplierContactPersonInput

Fields
Input Field Description
supplierContactPersonId - ID!
Example
{"supplierContactPersonId": 4}

DeleteSupplierContactPersonPayload

Fields
Field Name Description
deletedSupplierContactPersonId - ID
Example
{"deletedSupplierContactPersonId": "4"}

DeleteSupplierInput

Fields
Input Field Description
supplierId - ID!
Example
{"supplierId": 4}

DeleteSupplierPayload

Fields
Field Name Description
deletedSupplierId - ID
Example
{"deletedSupplierId": 4}

DeleteTicketFileInput

Fields
Input Field Description
ticketFileId - ID!
Example
{"ticketFileId": 4}

DeleteTicketFilePayload

Fields
Field Name Description
deletedTicketFileId - ID
Example
{"deletedTicketFileId": 4}

DeleteTicketInput

Fields
Input Field Description
ticketId - ID!
Example
{"ticketId": "4"}

DeleteTicketPayload

Fields
Field Name Description
deletedTicketId - ID
Example
{"deletedTicketId": "4"}

DeleteTimeRecordBreakInput

Fields
Input Field Description
timeRecordBreakId - ID!
Example
{"timeRecordBreakId": "4"}

DeleteTimeRecordBreakPayload

Fields
Field Name Description
deletedTimeRecordBreakId - ID
Example
{"deletedTimeRecordBreakId": "4"}

DeleteTimeRecordInput

Fields
Input Field Description
timeRecordId - ID!
Example
{"timeRecordId": "4"}

DeleteTimeRecordPayload

Fields
Field Name Description
deletedTimeRecordId - ID
Example
{"deletedTimeRecordId": "4"}

DeleteTimeRecordResult

Fields
Field Name Description
id - ID!
deletedTimeRecordId - ID
error - String
Example
{
  "id": "4",
  "deletedTimeRecordId": "4",
  "error": "xyz789"
}

DeleteTimeRecordsInput

Fields
Input Field Description
timeRecordIds - [ID!]!
Example
{"timeRecordIds": ["4"]}

DeleteTimeRecordsPayload

Fields
Field Name Description
results - [DeleteTimeRecordResult!]!
Example
{"results": [DeleteTimeRecordResult]}

DueDateType

Description

Due-date rule for invoices, relative to the invoice date.

Values
Enum Value Description

IMMEDIATELY

DAYS_7

DAYS_10

DAYS_14

DAYS_20

DAYS_30

END_OF_MONTH

Due at the end of the invoice month.
Example
"IMMEDIATELY"

EInvoiceType

Description

E-invoice (E-Rechnung) format used when completing invoices.

Values
Enum Value Description

NONE

No e-invoice, PDF only.

ZUGFERD

ZUGFeRD: PDF with embedded EN 16931 XML.

XRECHNUNG

XRechnung: German public-sector XML format. Buyers usually require a Leitweg-ID (Customer.leitwegId).
Example
"NONE"

Employee

Fields
Field Name Description
id - ID!
salutation - String
firstName - String
lastName - String!
status - EmployeeStatus! Status as of the given date (default: today, Europe/Berlin): CANCELLED once cancelDate has passed, ACTIVE while a working time model covers the date, IDLE otherwise.
Arguments
date - Date
cancelDate - Date
addressSupplement - String
streetAddress - String
zip - String
city - String
country - CountryCode
state - State
email - String
phone - String
birthDate - Date
personnelNumberPrefix - String
personnelNumber - Int!
fullPersonnelNumber - String! personnelNumberPrefix + personnelNumber.
note - String
hasDrivingLicenceClassB - Boolean
locationBasedTimeRecording - Boolean!
createdAt - DateTime!
profilePicture - EmployeeProfilePicture
timeAccount - EmployeeTimeAccount
activeWorkingTimeModel - EmployeeWorkingTimeModel
Arguments
date - Date
Example
{
  "id": 4,
  "salutation": "xyz789",
  "firstName": "xyz789",
  "lastName": "xyz789",
  "status": "IDLE",
  "cancelDate": "2007-12-03",
  "addressSupplement": "abc123",
  "streetAddress": "abc123",
  "zip": "xyz789",
  "city": "abc123",
  "country": "US",
  "state": State,
  "email": "abc123",
  "phone": "xyz789",
  "birthDate": "2007-12-03",
  "personnelNumberPrefix": "xyz789",
  "personnelNumber": 123,
  "fullPersonnelNumber": "abc123",
  "note": "abc123",
  "hasDrivingLicenceClassB": false,
  "locationBasedTimeRecording": true,
  "createdAt": "2007-12-03T10:15:30Z",
  "profilePicture": EmployeeProfilePicture,
  "timeAccount": EmployeeTimeAccount,
  "activeWorkingTimeModel": EmployeeWorkingTimeModel
}

EmployeeConnection

Fields
Field Name Description
edges - [EmployeeEdge]
pageInfo - PageInfo!
totalCount - Int!
Example
{
  "edges": [EmployeeEdge],
  "pageInfo": PageInfo,
  "totalCount": 123
}

EmployeeEdge

Fields
Field Name Description
cursor - String!
node - Employee!
Example
{
  "cursor": "abc123",
  "node": Employee
}

EmployeeOrder

Fields
Input Field Description
field - EmployeeOrderField!
direction - OrderDirection!
Example
{"field": "NAME", "direction": "ASC"}

EmployeeOrderField

Values
Enum Value Description

NAME

PERSONNEL_NUMBER

CREATED_AT

Example
"NAME"

EmployeeProfilePicture

Fields
Field Name Description
id - ID!
originalImageUrl - URL!
smallImageUrl - URL!
largeImageUrl - URL!
createdAt - DateTime!
Example
{
  "id": "4",
  "originalImageUrl": "http://www.test.com/",
  "smallImageUrl": "http://www.test.com/",
  "largeImageUrl": "http://www.test.com/",
  "createdAt": "2007-12-03T10:15:30Z"
}

EmployeeStatus

Values
Enum Value Description

IDLE

No working time model covers the date.

ACTIVE

A working time model covers the date.

CANCELLED

The cancel date has passed.
Example
"IDLE"

EmployeeTimeAccount

Fields
Field Name Description
id - ID!
balance - Int! Time account (overtime) balance in seconds; deductions are negative.
updatedAt - DateTime!
createdAt - DateTime!
Example
{
  "id": 4,
  "balance": 123,
  "updatedAt": "2007-12-03T10:15:30Z",
  "createdAt": "2007-12-03T10:15:30Z"
}

EmployeeWorkingTimeModel

Description

An employee's working time model (Arbeitszeitmodell): contract hours, wage and payroll calculation settings, valid from startDate to endDate.

Fields
Field Name Description
id - ID!
employee - Employee!
startDate - Date!
endDate - Date
weeklyHours - Float! Contractual hours per week.
mondayHours - Float
tuesdayHours - Float
wednesdayHours - Float
thursdayHours - Float
fridayHours - Float
saturdayHours - Float
sundayHours - Float
grossHourlyWage - Int Gross hourly wage in cents.
paidInterimCalculation - WorkingTimeModelPaidInterimCalculation!
isFirstJourneyPaid - Boolean!
salaryCalculation - WorkingTimeModelSalaryCalculation!
absenceDurationCalculation - WorkingTimeModelAbsenceDurationCalculation!
timeAccountEnabled - Boolean! Enables the employee's time account: the daily target-vs-actual time difference is booked to the balance.
createdAt - DateTime!
Example
{
  "id": 4,
  "employee": Employee,
  "startDate": "2007-12-03",
  "endDate": "2007-12-03",
  "weeklyHours": 987.65,
  "mondayHours": 123.45,
  "tuesdayHours": 123.45,
  "wednesdayHours": 987.65,
  "thursdayHours": 987.65,
  "fridayHours": 987.65,
  "saturdayHours": 123.45,
  "sundayHours": 987.65,
  "grossHourlyWage": 123,
  "paidInterimCalculation": "FULL_INTERIM",
  "isFirstJourneyPaid": false,
  "salaryCalculation": "ACTUAL_HOURS",
  "absenceDurationCalculation": "PLAN_HOURS",
  "timeAccountEnabled": true,
  "createdAt": "2007-12-03T10:15:30Z"
}

EmployeeWorkingTimeModelConnection

Fields
Field Name Description
edges - [EmployeeWorkingTimeModelEdge]
pageInfo - PageInfo!
totalCount - Int!
Example
{
  "edges": [EmployeeWorkingTimeModelEdge],
  "pageInfo": PageInfo,
  "totalCount": 987
}

EmployeeWorkingTimeModelEdge

Fields
Field Name Description
cursor - String!
node - EmployeeWorkingTimeModel!
Example
{
  "cursor": "abc123",
  "node": EmployeeWorkingTimeModel
}

EmployeeWorkingTimeModelOrder

Fields
Input Field Description
field - EmployeeWorkingTimeModelOrderField!
direction - OrderDirection!
Example
{"field": "START_DATE", "direction": "ASC"}

EmployeeWorkingTimeModelOrderField

Values
Enum Value Description

START_DATE

END_DATE

GROSS_HOURLY_WAGE

CREATED_AT

Example
"START_DATE"

EndOrderBillingItemInput

Fields
Input Field Description
orderBillingItemId - ID!
endDate - Date!
Example
{
  "orderBillingItemId": "4",
  "endDate": "2007-12-03"
}

EndOrderBillingItemPayload

Fields
Field Name Description
orderBillingItem - OrderBillingItem
Example
{"orderBillingItem": OrderBillingItem}

EndOrderExecutorBillingItemInput

Fields
Input Field Description
orderExecutorBillingItemId - ID!
endDate - Date!
Example
{
  "orderExecutorBillingItemId": 4,
  "endDate": "2007-12-03"
}

EndOrderExecutorBillingItemPayload

Fields
Field Name Description
orderExecutorBillingItem - OrderExecutorBillingItem
Example
{"orderExecutorBillingItem": OrderExecutorBillingItem}

EndOrderInput

Fields
Input Field Description
orderId - ID!
endDate - Date!
Example
{
  "orderId": "4",
  "endDate": "2007-12-03"
}

EndOrderPayload

Fields
Field Name Description
order - Order
Example
{"order": Order}

EndOrderShiftInput

Fields
Input Field Description
orderShiftId - ID!
endDate - Date Only Operations with execution date after this date will be deleted if set
Example
{"orderShiftId": 4, "endDate": "2007-12-03"}

EndOrderShiftPayload

Fields
Field Name Description
orderShift - OrderShift
Example
{"orderShift": OrderShift}

Estimate

Fields
Field Name Description
id - ID!
company - Company! Company of that estimate. If estimate is completed, it provides data at the time the estimate was completed.
customer - Customer!
status - EstimateStatus!
number - Int! Sequential estimate number, assigned at creation.
numberPrefix - String
items - [EstimateItem!]!
estimateDate - Date!
validityDate - Date Date until which the estimate is valid.
hasKleinunternehmerregelung - Boolean!
introductionText - String
closingText - String
estimatePdf - String
webUrl - URL! Customer-facing web view; the customer can accept or decline there when webEnabled is true.
webEnabled - Boolean!
isAnsweredByCustomer - Boolean True if estimate is answered by customer, false if answered by company and null if not answered yet.
declineReason - EstimateDeclineReason
declineNote - String
sentManually - Boolean
completedAt - DateTime
sentAt - DateTime
acceptedAt - DateTime
declinedAt - DateTime
language - LanguageTag!
currency - CurrencyCode!
createdAt - DateTime!
Example
{
  "id": "4",
  "company": Company,
  "customer": Customer,
  "status": "DRAFT",
  "number": 987,
  "numberPrefix": "xyz789",
  "items": [EstimateItem],
  "estimateDate": "2007-12-03",
  "validityDate": "2007-12-03",
  "hasKleinunternehmerregelung": true,
  "introductionText": "abc123",
  "closingText": "xyz789",
  "estimatePdf": "xyz789",
  "webUrl": "http://www.test.com/",
  "webEnabled": true,
  "isAnsweredByCustomer": false,
  "declineReason": "PRICE_TOO_HIGH",
  "declineNote": "abc123",
  "sentManually": true,
  "completedAt": "2007-12-03T10:15:30Z",
  "sentAt": "2007-12-03T10:15:30Z",
  "acceptedAt": "2007-12-03T10:15:30Z",
  "declinedAt": "2007-12-03T10:15:30Z",
  "language": LanguageTag,
  "currency": CurrencyCode,
  "createdAt": "2007-12-03T10:15:30Z"
}

EstimateConnection

Fields
Field Name Description
edges - [EstimateEdge]
pageInfo - PageInfo!
totalCount - Int!
Example
{
  "edges": [EstimateEdge],
  "pageInfo": PageInfo,
  "totalCount": 987
}

EstimateDeclineReason

Values
Enum Value Description

PRICE_TOO_HIGH

QUALITY_TOO_LOW

FOUND_OTHER_SUPPLIER

NO_MORE_DEMAND

OTHER_REASON

Example
"PRICE_TOO_HIGH"

EstimateDraft

Fields
Field Name Description
customer - Customer
status - EstimateStatus!
number - Int!
estimateDate - Date
validityDate - Date
items - [EstimateDraftItem]
introductionText - String
closingText - String
language - LanguageTag!
currency - CurrencyCode!
Example
{
  "customer": Customer,
  "status": "DRAFT",
  "number": 987,
  "estimateDate": "2007-12-03",
  "validityDate": "2007-12-03",
  "items": [EstimateDraftItem],
  "introductionText": "xyz789",
  "closingText": "abc123",
  "language": LanguageTag,
  "currency": CurrencyCode
}

EstimateDraftItem

Fields
Field Name Description
title - String
description - String
quantity - Float
unitPrice - Int Net unit price in cents.
taxRate - Float VAT rate in percent (19 = 19 %).
unit - String
Example
{
  "title": "xyz789",
  "description": "xyz789",
  "quantity": 987.65,
  "unitPrice": 987,
  "taxRate": 987.65,
  "unit": "xyz789"
}

EstimateEdge

Fields
Field Name Description
cursor - String!
node - Estimate!
Example
{
  "cursor": "xyz789",
  "node": Estimate
}

EstimateItem

Fields
Field Name Description
id - ID!
position - Int!
title - String!
description - String
quantity - Float!
unitPrice - Int! Net unit price in cents.
taxRate - Float! VAT rate in percent (19 = 19 %).
unit - String
object - Object The object (Objekt / service location) this item is assigned to.
createdAt - DateTime
Example
{
  "id": "4",
  "position": 123,
  "title": "abc123",
  "description": "xyz789",
  "quantity": 987.65,
  "unitPrice": 987,
  "taxRate": 123.45,
  "unit": "xyz789",
  "object": Object,
  "createdAt": "2007-12-03T10:15:30Z"
}

EstimateOrder

Fields
Input Field Description
field - EstimateOrderField!
direction - OrderDirection!
Example
{"field": "CREATED_AT", "direction": "ASC"}

EstimateOrderField

Values
Enum Value Description

CREATED_AT

ESTIMATE_DATE

VALIDITY_DATE

Example
"CREATED_AT"

EstimateStatus

Description

Lifecycle: DRAFT -> COMPLETED (completeEstimate) -> ACCEPTED or DECLINED. SENT is set when the estimate is emailed to the customer from Mendato and is not required before accepting or declining.

Values
Enum Value Description

DRAFT

Editable draft.

COMPLETED

Finalized; PDF generated.

SENT

Sent to the customer; sentAt is set.

ACCEPTED

Accepted; acceptedAt is set (via acceptEstimate or by the customer in the web view).

DECLINED

Declined; declinedAt and optionally declineReason/declineNote are set.
Example
"DRAFT"

Float

Description

The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.

Example
987.65

Holiday

Description

A public holiday (Feiertag) of a German state. Only by-id lookup is available; holidays are referenced from operations (operation.holiday).

Fields
Field Name Description
id - ID!
date - Date!
name - String!
country - CountryCode!
state - StateCode!
Example
{
  "id": "4",
  "date": "2007-12-03",
  "name": "abc123",
  "country": "US",
  "state": StateCode
}

ID

Description

The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4") or integer (such as 4) input value will be accepted as an ID.

Example
"4"

InputOperationBillingItemQuantityInput

Description

Input for setting the manual quantity of an INPUT-sourced billing position.

Fields
Input Field Description
operationBillingItemId - ID!
quantity - Float! The quantity to set. Has to be greater than 0.
Example
{"operationBillingItemId": 4, "quantity": 987.65}

InputOperationBillingItemQuantityPayload

Fields
Field Name Description
operationBillingItem - OperationBillingItem
Example
{"operationBillingItem": OperationBillingItem}

Int

Description

The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.

Example
123

Invoice

Fields
Field Name Description
id - ID!
company - Company Company of that invoice. If invoice is completed, it provides data at the time the invoice was completed.
customer - Customer
type - InvoiceType!
status - InvoiceStatus!
number - Int! Sequential invoice number, assigned at creation.
numberPrefix - String Printed number is numberPrefix + number + numberSuffix.
numberSuffix - String Suffix of the printed number; cancellation invoices get -ST.
items - [InvoiceItem!]!
dueDate - Date
dueDateFormat - InvoiceDueDateFormat
hideDueDateText - Boolean! This will hide the due date text on the invoice pdf
invoiceDate - Date!
deliveryDate - InvoiceDeliveryDate! Service/delivery date (Leistungsdatum): a single date or a range.
totalAmount - Int! Gross total in cents.
totalNetAmount - Int! Net total in cents.
outstandingAmount - Int! Open amount in cents. 0 for non-completed or cancelled invoices.
hasKleinunternehmerregelung - Boolean! German small-business rule (§ 19 UStG): no VAT is charged or shown.
introductionText - String
closingText - String
isNegative - Boolean! True when the item total is negative; skonto is disabled for negative invoices.
invoicePdf - String URL of the generated PDF; available once completed.
sentManually - Boolean Marked as sent outside Mendato.
completedAt - DateTime
sentAt - DateTime
paidAt - Date
cancelledAt - Date
language - LanguageTag!
currency - CurrencyCode!
createdAt - DateTime!
payments - [Payment]
originalInvoice - Invoice Original invoice if invoice is a cancellation (type is CANCELLATION)
cancellationInvoice - Invoice Cancellation invoice if invoice is cancelled (status is CANCELLED)
skontoEnabled - Boolean! Whether skonto (early-payment cash discount) is offered.
skontoPercent - Float Skonto discount in percent (3 = 3 %).
skontoDays - Int Days after invoiceDate within which skonto may be taken.
skontoDeadline - Date invoiceDate + skontoDays.
skontoApplied - Boolean! True once payments settled the invoice within the deadline at the discounted amount.
skontoAmount - Int Gross discount amount in cents.
skontoMessage - String Formatted message for the skonto discount
serviceReceipts - [ServiceReceipt!]
Example
{
  "id": 4,
  "company": Company,
  "customer": Customer,
  "type": "INVOICE",
  "status": "DRAFT",
  "number": 987,
  "numberPrefix": "abc123",
  "numberSuffix": "xyz789",
  "items": [InvoiceItem],
  "dueDate": "2007-12-03",
  "dueDateFormat": "DAYS",
  "hideDueDateText": true,
  "invoiceDate": "2007-12-03",
  "deliveryDate": SingleDate,
  "totalAmount": 987,
  "totalNetAmount": 987,
  "outstandingAmount": 123,
  "hasKleinunternehmerregelung": true,
  "introductionText": "abc123",
  "closingText": "abc123",
  "isNegative": true,
  "invoicePdf": "xyz789",
  "sentManually": false,
  "completedAt": "2007-12-03T10:15:30Z",
  "sentAt": "2007-12-03T10:15:30Z",
  "paidAt": "2007-12-03",
  "cancelledAt": "2007-12-03",
  "language": LanguageTag,
  "currency": CurrencyCode,
  "createdAt": "2007-12-03T10:15:30Z",
  "payments": [Payment],
  "originalInvoice": Invoice,
  "cancellationInvoice": Invoice,
  "skontoEnabled": false,
  "skontoPercent": 987.65,
  "skontoDays": 123,
  "skontoDeadline": "2007-12-03",
  "skontoApplied": true,
  "skontoAmount": 987,
  "skontoMessage": "abc123",
  "serviceReceipts": [ServiceReceipt]
}

InvoiceConnection

Fields
Field Name Description
edges - [InvoiceEdge]
pageInfo - PageInfo!
totalCount - Int!
Example
{
  "edges": [InvoiceEdge],
  "pageInfo": PageInfo,
  "totalCount": 123
}

InvoiceDeliveryDate

Types
Union Types

SingleDate

DateRange

Example
SingleDate

InvoiceDraft

Fields
Field Name Description
customer - Customer
status - InvoiceStatus!
number - Int!
dueDate - Date
dueDateFormat - InvoiceDueDateFormat
hideDueDateText - Boolean! This will hide the due date text on the invoice pdf
invoiceDate - Date
deliveryDate - InvoiceDeliveryDate
items - [InvoiceDraftItem]
introductionText - String
closingText - String
skontoEnabled - Boolean!
skontoPercent - Float
skontoDays - Int
skontoDeadline - Date
skontoMessage - String
language - LanguageTag!
currency - CurrencyCode!
Example
{
  "customer": Customer,
  "status": "DRAFT",
  "number": 123,
  "dueDate": "2007-12-03",
  "dueDateFormat": "DAYS",
  "hideDueDateText": true,
  "invoiceDate": "2007-12-03",
  "deliveryDate": SingleDate,
  "items": [InvoiceDraftItem],
  "introductionText": "abc123",
  "closingText": "xyz789",
  "skontoEnabled": true,
  "skontoPercent": 123.45,
  "skontoDays": 123,
  "skontoDeadline": "2007-12-03",
  "skontoMessage": "xyz789",
  "language": LanguageTag,
  "currency": CurrencyCode
}

InvoiceDraftItem

Fields
Field Name Description
position - Int
title - String
description - String
quantity - Float
unitPrice - Int Net unit price in cents.
taxRate - Float VAT rate in percent (19 = 19 %).
unit - String
Example
{
  "position": 123,
  "title": "xyz789",
  "description": "abc123",
  "quantity": 987.65,
  "unitPrice": 987,
  "taxRate": 987.65,
  "unit": "abc123"
}

InvoiceDueDateFormat

Values
Enum Value Description

DAYS

DATE

Example
"DAYS"

InvoiceEdge

Fields
Field Name Description
cursor - String!
node - Invoice!
Example
{
  "cursor": "abc123",
  "node": Invoice
}

InvoiceItem

Fields
Field Name Description
id - ID!
position - Int!
title - String!
description - String
quantity - Float!
unitPrice - Int! Net unit price in cents.
taxRate - Float! VAT rate in percent (19 = 19 %).
unit - String
createdAt - DateTime
Example
{
  "id": 4,
  "position": 987,
  "title": "abc123",
  "description": "abc123",
  "quantity": 123.45,
  "unitPrice": 987,
  "taxRate": 987.65,
  "unit": "abc123",
  "createdAt": "2007-12-03T10:15:30Z"
}

InvoiceOrder

Fields
Input Field Description
field - InvoiceOrderField!
direction - OrderDirection!
Example
{"field": "CREATED_AT", "direction": "ASC"}

InvoiceOrderField

Values
Enum Value Description

CREATED_AT

INVOICE_DATE

DUE_DATE

Example
"CREATED_AT"

InvoiceStatus

Description

Lifecycle: DRAFT -> COMPLETED (completeInvoice) -> SENT -> PAID. CANCELLED via cancelInvoice. REMINDED and IN_COLLECTION are set by Mendato's internal dunning and cannot be set through this API.

Values
Enum Value Description

DRAFT

Editable draft; not yet a binding document.

COMPLETED

Finalized: PDF/e-invoice generated, invoice is immutable. completedAt is set.

SENT

Sent to the customer; sentAt is set.

PAID

Payments cover the total; paidAt is set.

REMINDED

A payment reminder (Mahnung) exists.

IN_COLLECTION

Handed to debt collection (Inkasso).

CANCELLED

Cancelled; cancellationInvoice references the reversing document.
Example
"DRAFT"

InvoiceType

Values
Enum Value Description

INVOICE

CANCELLATION

Cancellation invoice (Stornorechnung) reversing its originalInvoice.
Example
"INVOICE"

LanguageTag

Description

BCP-47 language tag

Example
LanguageTag

LegalForm

Description

German legal forms (Rechtsform).

Values
Enum Value Description

DE_EINZELUNTERNEHMER

DE_EINGETRAGENER_KAUFMANN

DE_GBR

DE_GMBH

DE_UG

Example
"DE_EINZELUNTERNEHMER"

Location

Fields
Field Name Description
latitude - Float!
longitude - Float!
Example
{"latitude": 987.65, "longitude": 987.65}

ManagingDirector

Fields
Field Name Description
id - ID!
name - String!
Example
{"id": 4, "name": "abc123"}

MarkOperationExecutorAsNoShowInput

Fields
Input Field Description
operationExecutorId - ID!
Example
{"operationExecutorId": "4"}

MarkOperationExecutorAsNoShowPayload

Fields
Field Name Description
operationExecutor - OperationExecutor
Example
{"operationExecutor": OperationExecutor}

Material

Description

A material (Material/Artikel) from the company's catalog. Consumption is recorded in consumptionUnit; sales and stock keeping can use their own units with conversion factors.

Fields
Field Name Description
id - ID!
number - Int! Unique material number per company.
name - String!
description - String
manufacturer - String
consumptionUnit - String Base unit consumption is recorded in (e.g. l, piece).
salesUnitPrice - Int Net sales price per salesUnit in cents.
salesTaxRate - Float VAT rate in percent (19 = 19 %).
salesUnit - String Unit the material is sold in (e.g. canister).
quantityPerSalesUnit - Float Quantity contained in one salesUnit.
stockUnit - String Unit the material is stocked in.
quantityPerStockUnit - Float Quantity contained in one stockUnit.
stockEanNumber - String EAN/barcode of the stock unit.
revenueAccount - Int Revenue account number.
group - MaterialGroup
originalImageUrl - URL
smallImageUrl - URL
largeImageUrl - URL
createdAt - DateTime!
Example
{
  "id": 4,
  "number": 987,
  "name": "xyz789",
  "description": "xyz789",
  "manufacturer": "abc123",
  "consumptionUnit": "xyz789",
  "salesUnitPrice": 123,
  "salesTaxRate": 123.45,
  "salesUnit": "abc123",
  "quantityPerSalesUnit": 987.65,
  "stockUnit": "abc123",
  "quantityPerStockUnit": 987.65,
  "stockEanNumber": "abc123",
  "revenueAccount": 123,
  "group": MaterialGroup,
  "originalImageUrl": "http://www.test.com/",
  "smallImageUrl": "http://www.test.com/",
  "largeImageUrl": "http://www.test.com/",
  "createdAt": "2007-12-03T10:15:30Z"
}

MaterialConnection

Fields
Field Name Description
edges - [MaterialEdge]
pageInfo - PageInfo!
totalCount - Int!
Example
{
  "edges": [MaterialEdge],
  "pageInfo": PageInfo,
  "totalCount": 987
}

MaterialEdge

Fields
Field Name Description
cursor - String!
node - Material!
Example
{
  "cursor": "xyz789",
  "node": Material
}

MaterialGroup

Fields
Field Name Description
id - ID!
name - String!
createdAt - DateTime!
Example
{
  "id": 4,
  "name": "xyz789",
  "createdAt": "2007-12-03T10:15:30Z"
}

MaterialGroupConnection

Fields
Field Name Description
edges - [MaterialGroupEdge]
pageInfo - PageInfo!
totalCount - Int!
Example
{
  "edges": [MaterialGroupEdge],
  "pageInfo": PageInfo,
  "totalCount": 123
}

MaterialGroupEdge

Fields
Field Name Description
cursor - String!
node - MaterialGroup!
Example
{
  "cursor": "xyz789",
  "node": MaterialGroup
}

MaterialGroupOrder

Fields
Input Field Description
field - MaterialGroupOrderField!
direction - OrderDirection!
Example
{"field": "CREATED_AT", "direction": "ASC"}

MaterialGroupOrderField

Values
Enum Value Description

CREATED_AT

NAME

Example
"CREATED_AT"

MaterialOrder

Fields
Input Field Description
field - MaterialOrderField!
direction - OrderDirection!
Example
{"field": "CREATED_AT", "direction": "ASC"}

MaterialOrderField

Values
Enum Value Description

CREATED_AT

NUMBER

NAME

Example
"CREATED_AT"

Object

Description

An object (Objekt): the service location where work is performed. Belongs to a customer; orders, operations and tickets happen at objects.

Fields
Field Name Description
id - ID!
customer - Customer!
customerContactPerson - CustomerContactPerson
number - Int!
name - String
addressSupplement - String
streetAddress - String
zip - String
city - String
country - CountryCode
state - State
location - Location
locationRadiusMeters - Int! Radius around the object's location, in meters.
email - String
phone - String
extraInvoiceAddressFieldLines - String Extra lines printed in the invoice address block.
costCenter - String Cost center (Kostenstelle) of the object.
invoiceAddress - ObjectInvoiceAddress Deviating billing address used instead of the customer's address.
invoiceSettings - ObjectInvoiceSettings
tags - [String!]!
createdAt - DateTime!
rooms - ObjectRoomConnection!
Arguments
after - String
before - String
first - Int
last - Int
query - String

Query for name or building

building - String
floor - String
orderBy - ObjectRoomOrder
invoices - InvoiceConnection!
Arguments
after - String
before - String
first - Int
last - Int
query - String

Query for numberPrefix and number

orderBy - InvoiceOrder
estimates - EstimateConnection!
Arguments
after - String
before - String
first - Int
last - Int
query - String

Query for numberPrefix and number

receipts - ReceiptConnection!
Arguments
after - String
before - String
first - Int
last - Int
query - String

Query for number

orderBy - ReceiptOrder
serviceReceipts - ServiceReceiptConnection!
Arguments
after - String
before - String
first - Int
last - Int
query - String

Query for number and status

Example
{
  "id": "4",
  "customer": Customer,
  "customerContactPerson": CustomerContactPerson,
  "number": 123,
  "name": "xyz789",
  "addressSupplement": "xyz789",
  "streetAddress": "abc123",
  "zip": "xyz789",
  "city": "xyz789",
  "country": "US",
  "state": State,
  "location": Location,
  "locationRadiusMeters": 123,
  "email": "abc123",
  "phone": "xyz789",
  "extraInvoiceAddressFieldLines": "xyz789",
  "costCenter": "abc123",
  "invoiceAddress": ObjectInvoiceAddress,
  "invoiceSettings": ObjectInvoiceSettings,
  "tags": ["abc123"],
  "createdAt": "2007-12-03T10:15:30Z",
  "rooms": ObjectRoomConnection,
  "invoices": InvoiceConnection,
  "estimates": EstimateConnection,
  "receipts": ReceiptConnection,
  "serviceReceipts": ServiceReceiptConnection
}

ObjectConnection

Fields
Field Name Description
edges - [ObjectEdge]
pageInfo - PageInfo!
totalCount - Int!
Example
{
  "edges": [ObjectEdge],
  "pageInfo": PageInfo,
  "totalCount": 987
}

ObjectEdge

Fields
Field Name Description
cursor - String!
node - Object!
Example
{
  "cursor": "xyz789",
  "node": Object
}

ObjectInvoiceAddress

Fields
Field Name Description
id - ID!
type - ObjectInvoiceAddressType!
salutation - String
firstName - String
lastName - String
companyName - String
addressSupplement - String
streetAddress - String!
zip - String!
city - String!
country - CountryCode
Example
{
  "id": 4,
  "type": "PERSON",
  "salutation": "xyz789",
  "firstName": "abc123",
  "lastName": "abc123",
  "companyName": "xyz789",
  "addressSupplement": "xyz789",
  "streetAddress": "abc123",
  "zip": "xyz789",
  "city": "abc123",
  "country": "US"
}

ObjectInvoiceAddressType

Values
Enum Value Description

PERSON

COMPANY

Example
"PERSON"

ObjectInvoiceSettings

Description

Object-level overrides of the invoice settings (null = inherit).

Fields
Field Name Description
eInvoiceType - EInvoiceType
dueDateType - DueDateType
hideDueDateText - Boolean This will hide the due date text on the invoice pdf
introductionText - String
closingText - String
Example
{
  "eInvoiceType": "NONE",
  "dueDateType": "IMMEDIATELY",
  "hideDueDateText": false,
  "introductionText": "abc123",
  "closingText": "abc123"
}

ObjectOrder

Fields
Input Field Description
field - ObjectOrderField!
direction - OrderDirection!
Example
{"field": "NUMBER", "direction": "ASC"}

ObjectOrderField

Values
Enum Value Description

NUMBER

ZIP

CITY

CREATED_AT

Example
"NUMBER"

ObjectRoom

Description

A room of the object; rooms can be assigned to order service tasks.

Fields
Field Name Description
id - ID!
name - String!
floor - String
building - String
sizeInSquareMeters - Int
note - String
createdAt - DateTime!
Example
{
  "id": 4,
  "name": "abc123",
  "floor": "xyz789",
  "building": "abc123",
  "sizeInSquareMeters": 987,
  "note": "abc123",
  "createdAt": "2007-12-03T10:15:30Z"
}

ObjectRoomConnection

Fields
Field Name Description
edges - [ObjectRoomEdge]
pageInfo - PageInfo!
totalCount - Int!
Example
{
  "edges": [ObjectRoomEdge],
  "pageInfo": PageInfo,
  "totalCount": 123
}

ObjectRoomEdge

Fields
Field Name Description
cursor - String!
node - ObjectRoom!
Example
{
  "cursor": "xyz789",
  "node": ObjectRoom
}

ObjectRoomError

Fields
Field Name Description
index - Int!
message - String!
Example
{"index": 987, "message": "xyz789"}

ObjectRoomInput

Fields
Input Field Description
name - String!
floor - String
building - String
sizeInSquareMeters - Int
note - String
Example
{
  "name": "abc123",
  "floor": "xyz789",
  "building": "abc123",
  "sizeInSquareMeters": 987,
  "note": "abc123"
}

ObjectRoomOrder

Fields
Input Field Description
field - ObjectRoomOrderField!
direction - OrderDirection!
Example
{"field": "NAME", "direction": "ASC"}

ObjectRoomOrderField

Values
Enum Value Description

NAME

SIZE

CREATED_AT

Example
"NAME"

Operation

Description

A scheduled work assignment (Einsatz) at an object — usually generated asynchronously from an order's shifts, or created standalone via createOperations.

Fields
Field Name Description
id - ID!
object - Object!
instructions - String
services - [OperationService!]!
requiredExecutors - Int! Minimum number of executors required per operation
missingExecutors - Int! requiredExecutors minus assigned executors; absent or no-show executors do not count.
toDos - [OperationToDo!]! Open follow-ups of this operation (see OperationToDo). Empty until the execution date is reached.
executor - OperationExecutor
Arguments
employeeId - ID

Provide either employeeId or subcontractorId.

subcontractorId - ID

Provide either employeeId or subcontractorId.

executors - OperationExecutorConnection
Arguments
after - String
before - String
first - Int
last - Int
hideAbsent - Boolean
isExecuted - Boolean! False when the operation falls on a public holiday and the order's executionOnHolidays is false; true otherwise.
executionStartDate - Date!
executionStartTime - Time
executionEndDate - Date!
executionEndTime - Time
duration - Int Planned duration in seconds (derived from execution start/end time).
originalExecutionStartDate - Date Is set if the initial executionStartDate was changed
originalExecutionStartTime - Time Is set if the initial executionStartTime was changed
originalExecutionEndDate - Date Is set if the initial executionEndDate was changed
originalExecutionEndTime - Time Is set if the initial executionEndTime was changed
order - Order
orderShift - OrderShift
holiday - Holiday The public holiday on the execution date, if any.
report - OperationReport
serviceReceipts - ServiceReceiptConnection!
Arguments
after - String
before - String
first - Int
last - Int
billingItems - OperationBillingItemConnection! The billing positions (Abrechnungspositionen) of this operation.
Arguments
after - String
before - String
first - Int
last - Int
query - String

Filters by the position's title.

materials - OperationMaterialConnection! The materials consumed on this operation.
Arguments
after - String
before - String
first - Int
last - Int
createdAt - DateTime!
Example
{
  "id": "4",
  "object": Object,
  "instructions": "xyz789",
  "services": [OperationService],
  "requiredExecutors": 987,
  "missingExecutors": 123,
  "toDos": ["MISSING_QUANTITY"],
  "executor": OperationExecutor,
  "executors": OperationExecutorConnection,
  "isExecuted": true,
  "executionStartDate": "2007-12-03",
  "executionStartTime": "10:15:30Z",
  "executionEndDate": "2007-12-03",
  "executionEndTime": "10:15:30Z",
  "duration": 987,
  "originalExecutionStartDate": "2007-12-03",
  "originalExecutionStartTime": "10:15:30Z",
  "originalExecutionEndDate": "2007-12-03",
  "originalExecutionEndTime": "10:15:30Z",
  "order": Order,
  "orderShift": OrderShift,
  "holiday": Holiday,
  "report": OperationReport,
  "serviceReceipts": ServiceReceiptConnection,
  "billingItems": OperationBillingItemConnection,
  "materials": OperationMaterialConnection,
  "createdAt": "2007-12-03T10:15:30Z"
}

OperationBillingItem

Description

A billing position (Abrechnungsposition) on a single executed operation (Einsatz). Each item bills one service, journey or material of that operation. Its quantity is either entered manually or derived from a linked service receipt or the recorded times.

Fields
Field Name Description
id - ID!
orderBillingItem - OrderBillingItem The order billing item this position was generated from, if it originates from a recurring or per-operation order billing item.
pendingInvoiceItem - PendingInvoiceItem The pending invoice item (Ausstehender Posten) this position has been collected into once it is being billed.
operation - Operation! The executed operation this billing position belongs to.
operationService - OperationService The operation service this position bills, if it is tied to one.
operationMaterial - OperationMaterial The operation material this position bills, if it is tied to one.
service - Service The underlying catalog service this position bills.
material - Material The underlying catalog material this position bills.
position - Int! Sort position within the operation's billing positions (1-based).
type - OperationBillingItemType!
priceType - OperationBillingItemPriceType!
title - String!
description - String
unitPrice - Int! Net unit price in cents.
quantity - Float The billed quantity. Null while it is still derived from a quantitySource and has not been resolved yet.
quantitySource - OperationBillingItemQuantitySource
unit - String Unit label shown on the invoice, e.g. Stk or h.
hasPersonHourUnit - Boolean! Whether the quantity is measured in person-hours. Required for quantities sourced from time records.
taxRate - Float! VAT rate in percent.
status - OperationBillingItemStatus!
groupOperation - Boolean! Whether this position is grouped with the other operations of its order on the resulting invoice.
quantityInputAt - DateTime When the quantity was last entered manually. Only set for INPUT quantities.
updatedAt - DateTime!
createdAt - DateTime!
Example
{
  "id": 4,
  "orderBillingItem": OrderBillingItem,
  "pendingInvoiceItem": PendingInvoiceItem,
  "operation": Operation,
  "operationService": OperationService,
  "operationMaterial": OperationMaterial,
  "service": Service,
  "material": Material,
  "position": 123,
  "type": "SERVICE",
  "priceType": "FLAT_RATE",
  "title": "abc123",
  "description": "abc123",
  "unitPrice": 987,
  "quantity": 987.65,
  "quantitySource": "INPUT",
  "unit": "xyz789",
  "hasPersonHourUnit": false,
  "taxRate": 123.45,
  "status": "OPEN",
  "groupOperation": true,
  "quantityInputAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z",
  "createdAt": "2007-12-03T10:15:30Z"
}

OperationBillingItemConnection

Fields
Field Name Description
edges - [OperationBillingItemEdge]
pageInfo - PageInfo!
totalCount - Int!
Example
{
  "edges": [OperationBillingItemEdge],
  "pageInfo": PageInfo,
  "totalCount": 987
}

OperationBillingItemEdge

Fields
Field Name Description
cursor - String!
node - OperationBillingItem!
Example
{
  "cursor": "abc123",
  "node": OperationBillingItem
}

OperationBillingItemOrder

Fields
Input Field Description
field - OperationBillingItemOrderField!
direction - OrderDirection!
Example
{"field": "CREATED_AT", "direction": "ASC"}

OperationBillingItemOrderField

Values
Enum Value Description

CREATED_AT

POSITION

EXECUTION_DATE

The execution date of the position's operation.
Example
"CREATED_AT"

OperationBillingItemPriceType

Values
Enum Value Description

FLAT_RATE

A fixed total price, independent of the quantity.

PER_UNIT

A price per unit, multiplied by the quantity.
Example
"FLAT_RATE"

OperationBillingItemQuantitySource

Description

Where the quantity comes from when it is not set as a fixed value.

Values
Enum Value Description

INPUT

Entered manually via inputOperationBillingItemQuantity.

SERVICE_RECEIPT

Taken from the linked service receipt.

TIME_RECORD

Taken from the operation's recorded working times.
Example
"INPUT"

OperationBillingItemStatus

Description

Billing status, derived from the linked pending invoice item.

Values
Enum Value Description

OPEN

Not yet collected into a pending invoice item.

BILLING

Collected into an open pending invoice item, not billed yet.

BILLED

The pending invoice item has been billed.
Example
"OPEN"

OperationBillingItemType

Description

What kind of position this is.

Values
Enum Value Description

SERVICE

A performed service.

JOURNEY

A travel or journey surcharge.

MATERIAL

Consumed material.
Example
"SERVICE"

OperationConnection

Fields
Field Name Description
edges - [OperationEdge]
pageInfo - PageInfo!
totalCount - Int!
Example
{
  "edges": [OperationEdge],
  "pageInfo": PageInfo,
  "totalCount": 987
}

OperationEdge

Fields
Field Name Description
cursor - String!
node - Operation!
Example
{
  "cursor": "abc123",
  "node": Operation
}

OperationExecutor

Description

An employee or subcontractor assigned to one operation.

Fields
Field Name Description
id - ID!
operation - Operation!
employee - Employee
subcontractor - Subcontractor
orderExecutor - OrderExecutor
timeRecord - TimeRecord The executor's time record on this operation, if any.
absence - Absence The executor's absence overlapping this operation, if any.
markedAsNoShowAt - DateTime Set via markOperationExecutorAsNoShow when the executor did not show up.
createdAt - DateTime!
Example
{
  "id": 4,
  "operation": Operation,
  "employee": Employee,
  "subcontractor": Subcontractor,
  "orderExecutor": OrderExecutor,
  "timeRecord": TimeRecord,
  "absence": Absence,
  "markedAsNoShowAt": "2007-12-03T10:15:30Z",
  "createdAt": "2007-12-03T10:15:30Z"
}

OperationExecutorConnection

Fields
Field Name Description
edges - [OperationExecutorEdge]
pageInfo - PageInfo!
totalCount - Int!
Example
{
  "edges": [OperationExecutorEdge],
  "pageInfo": PageInfo,
  "totalCount": 987
}

OperationExecutorEdge

Fields
Field Name Description
cursor - String!
node - OperationExecutor!
Example
{
  "cursor": "xyz789",
  "node": OperationExecutor
}

OperationExecutorOrder

Fields
Input Field Description
field - OperationExecutorOrderField!
direction - OrderDirection!
Example
{"field": "CREATED_AT", "direction": "ASC"}

OperationExecutorOrderField

Values
Enum Value Description

CREATED_AT

EXECUTION_START

Example
"CREATED_AT"

OperationMaterial

Description

A material consumed on an executed operation (Einsatzmaterial). It links the operation to a catalog material and, where applicable, to the order material it stems from and the service receipt item that recorded the consumption.

Fields
Field Name Description
id - ID!
operation - Operation! The executed operation this material belongs to.
material - Material! The underlying catalog material.
orderMaterial - OrderMaterial The order material this consumption stems from, if any.
serviceReceiptItem - ServiceReceiptItem The service receipt item that recorded this consumption, if any.
position - Int! Sort position within the operation's materials (1-based).
consumptionQuantity - Float Quantity of the material consumed on the operation.
updatedAt - DateTime!
createdAt - DateTime!
billingItems - OperationBillingItemConnection The billing positions that bill this operation material.
Arguments
after - String
before - String
first - Int
last - Int
Example
{
  "id": "4",
  "operation": Operation,
  "material": Material,
  "orderMaterial": OrderMaterial,
  "serviceReceiptItem": ServiceReceiptItem,
  "position": 987,
  "consumptionQuantity": 123.45,
  "updatedAt": "2007-12-03T10:15:30Z",
  "createdAt": "2007-12-03T10:15:30Z",
  "billingItems": OperationBillingItemConnection
}

OperationMaterialConnection

Fields
Field Name Description
edges - [OperationMaterialEdge]
pageInfo - PageInfo!
totalCount - Int!
Example
{
  "edges": [OperationMaterialEdge],
  "pageInfo": PageInfo,
  "totalCount": 987
}

OperationMaterialEdge

Fields
Field Name Description
cursor - String!
node - OperationMaterial!
Example
{
  "cursor": "xyz789",
  "node": OperationMaterial
}

OperationMaterialOrder

Fields
Input Field Description
field - OperationMaterialOrderField!
direction - OrderDirection!
Example
{"field": "CREATED_AT", "direction": "ASC"}

OperationMaterialOrderField

Values
Enum Value Description

CREATED_AT

POSITION

Example
"CREATED_AT"

OperationOrder

Fields
Input Field Description
field - OperationOrderField!
direction - OrderDirection!
Example
{"field": "CREATED_AT", "direction": "ASC"}

OperationOrderField

Values
Enum Value Description

CREATED_AT

TITLE

STATUS

UNIT_PRICE

EXECUTION_START

EXECUTION_END

Example
"CREATED_AT"

OperationReport

Fields
Field Name Description
id - ID!
operation - Operation!
description - String
files - [OperationReportFile]
createdAt - DateTime!
Example
{
  "id": 4,
  "operation": Operation,
  "description": "abc123",
  "files": [OperationReportFile],
  "createdAt": "2007-12-03T10:15:30Z"
}

OperationReportConnection

Fields
Field Name Description
edges - [OperationReportEdge]
pageInfo - PageInfo!
totalCount - Int!
Example
{
  "edges": [OperationReportEdge],
  "pageInfo": PageInfo,
  "totalCount": 123
}

OperationReportEdge

Fields
Field Name Description
cursor - String!
node - OperationReport!
Example
{
  "cursor": "xyz789",
  "node": OperationReport
}

OperationReportFile

Fields
Field Name Description
id - ID!
fileName - String!
mimeType - String!
size - Int
url - URL!
thumbnailUrl - URL
createdAt - DateTime!
Example
{
  "id": "4",
  "fileName": "xyz789",
  "mimeType": "abc123",
  "size": 123,
  "url": "http://www.test.com/",
  "thumbnailUrl": "http://www.test.com/",
  "createdAt": "2007-12-03T10:15:30Z"
}

OperationReportOrder

Fields
Input Field Description
field - OperationReportOrderField!
direction - OrderDirection!
Example
{"field": "CREATED_AT", "direction": "ASC"}

OperationReportOrderField

Values
Enum Value Description

CREATED_AT

Example
"CREATED_AT"

OperationService

Fields
Field Name Description
id - ID!
operation - Operation!
service - Service!
orderService - OrderService
position - Int!
title - String!
updatedAt - DateTime!
createdAt - DateTime!
tasks - OperationServiceTaskConnection
Arguments
after - String
before - String
first - Int
last - Int
serviceAreaId - ID
query - String
Example
{
  "id": 4,
  "operation": Operation,
  "service": Service,
  "orderService": OrderService,
  "position": 123,
  "title": "xyz789",
  "updatedAt": "2007-12-03T10:15:30Z",
  "createdAt": "2007-12-03T10:15:30Z",
  "tasks": OperationServiceTaskConnection
}

OperationServiceTask

Fields
Field Name Description
id - ID!
operationService - OperationService!
serviceArea - ServiceArea
orderServiceTask - OrderServiceTask
position - Int!
title - String!
quantity - Float Quantity/area covered by this task (e.g. square meters), paired with unit.
unit - String
completedAt - DateTime Set when the task was completed on this operation.
createdAt - DateTime!
rooms - OperationServiceTaskRoomConnection
Arguments
after - String
before - String
first - Int
last - Int
Example
{
  "id": "4",
  "operationService": OperationService,
  "serviceArea": ServiceArea,
  "orderServiceTask": OrderServiceTask,
  "position": 123,
  "title": "abc123",
  "quantity": 987.65,
  "unit": "xyz789",
  "completedAt": "2007-12-03T10:15:30Z",
  "createdAt": "2007-12-03T10:15:30Z",
  "rooms": OperationServiceTaskRoomConnection
}

OperationServiceTaskConnection

Fields
Field Name Description
edges - [OperationServiceTaskEdge]
pageInfo - PageInfo!
totalCount - Int!
Example
{
  "edges": [OperationServiceTaskEdge],
  "pageInfo": PageInfo,
  "totalCount": 123
}

OperationServiceTaskEdge

Fields
Field Name Description
cursor - String!
node - OperationServiceTask!
Example
{
  "cursor": "abc123",
  "node": OperationServiceTask
}

OperationServiceTaskOrder

Fields
Input Field Description
field - OperationServiceTaskOrderField!
direction - OrderDirection!
Example
{"field": "CREATED_AT", "direction": "ASC"}

OperationServiceTaskOrderField

Values
Enum Value Description

CREATED_AT

POSITION

TITLE

Example
"CREATED_AT"

OperationServiceTaskRoom

Fields
Field Name Description
id - ID!
operationServiceTask - OperationServiceTask!
objectRoom - ObjectRoom!
completedAt - DateTime Set when the room was completed on this operation.
createdAt - DateTime!
Example
{
  "id": "4",
  "operationServiceTask": OperationServiceTask,
  "objectRoom": ObjectRoom,
  "completedAt": "2007-12-03T10:15:30Z",
  "createdAt": "2007-12-03T10:15:30Z"
}

OperationServiceTaskRoomConnection

Fields
Field Name Description
edges - [OperationServiceTaskRoomEdge]
pageInfo - PageInfo!
totalCount - Int!
Example
{
  "edges": [OperationServiceTaskRoomEdge],
  "pageInfo": PageInfo,
  "totalCount": 987
}

OperationServiceTaskRoomEdge

Fields
Field Name Description
cursor - String!
node - OperationServiceTaskRoom!
Example
{
  "cursor": "xyz789",
  "node": OperationServiceTaskRoom
}

OperationServiceTaskRoomOrder

Fields
Input Field Description
field - OperationServiceTaskRoomOrderField!
direction - OrderDirection!
Example
{"field": "CREATED_AT", "direction": "ASC"}

OperationServiceTaskRoomOrderField

Values
Enum Value Description

CREATED_AT

COMPLETED_AT

Example
"CREATED_AT"

OperationToDo

Description

Open follow-ups of an operation, computed once its execution date is reached and it is not skipped due to a holiday.

Values
Enum Value Description

MISSING_QUANTITY

A billing item of the operation still has no quantity.

MISSING_TIME_RECORD

An assigned employee (not absent, not no-show) has no time record.

UNCONFIRMED_TIME_RECORD

A time record of the operation is not confirmed yet.
Example
"MISSING_QUANTITY"

Order

Description

A service contract (Auftrag) at one object: OrderServices define what to do, OrderShifts define the recurring schedule (RRULE), OrderExecutors define who works. Operations are generated from the shifts asynchronously.

Fields
Field Name Description
id - ID!
number - Int! Sequential order number.
object - Object!
estimate - Estimate
instructions - String
status - OrderStatus!
requiredExecutors - Int! Minimum number of executors required per operation
missingExecutors - Int! requiredExecutors minus active executors as of today (or the order's start date if that is in the future); cancelled executors do not count.
executionOnHolidays - Boolean! Should operations on holidays be executed?
startDate - Date
endDate - Date
latestOperation - Operation Operation of this Order with latest executionStart date
services - [OrderService!]!
shifts - OrderShiftConnection
Arguments
after - String
before - String
first - Int
last - Int
query - String

Query for interval

isEnded - Boolean
orderBy - OrderShiftOrder
executors - OrderExecutorConnection
Arguments
after - String
before - String
first - Int
last - Int
isActive - Boolean

Executor is not cancelled

operations - OperationConnection!
Arguments
after - String
before - String
first - Int
last - Int
query - String

Query for title

hasBillingItems - Boolean
hasMissingBillingItemQuantity - Boolean
executionFrom - Date

Only operations with execution at this date or later will be counted.

executionTo - Date

Only operations with execution before and up to and including this date will be counted.

orderExecutorIds - [ID!]
serviceIds - [ID!]
hasNoExecutor - Boolean
orderBy - OperationOrder
tickets - TicketConnection!
Arguments
after - String
before - String
first - Int
last - Int
query - String

Query by number

type - TicketType
isPublic - Boolean
status - TicketStatus
priority - TicketPriority
orderBy - TicketOrder
materials - OrderMaterialConnection!
Arguments
after - String
before - String
first - Int
last - Int
query - String

Query for material name, number, manufacturer or material group

orderBy - OrderMaterialOrder
billingItems - OrderBillingItemConnection
Arguments
after - String
before - String
first - Int
last - Int
query - String

Query for title or unit

pendingInvoiceItems - PendingInvoiceItemConnection!
Arguments
after - String
before - String
first - Int
last - Int
query - String

Query for title

executionFrom - Date
executionTo - Date
isBilled - Boolean
cancelledAt - DateTime
createdAt - DateTime!
Example
{
  "id": "4",
  "number": 987,
  "object": Object,
  "estimate": Estimate,
  "instructions": "abc123",
  "status": "ACTIVE",
  "requiredExecutors": 987,
  "missingExecutors": 987,
  "executionOnHolidays": false,
  "startDate": "2007-12-03",
  "endDate": "2007-12-03",
  "latestOperation": Operation,
  "services": [OrderService],
  "shifts": OrderShiftConnection,
  "executors": OrderExecutorConnection,
  "operations": OperationConnection,
  "tickets": TicketConnection,
  "materials": OrderMaterialConnection,
  "billingItems": OrderBillingItemConnection,
  "pendingInvoiceItems": PendingInvoiceItemConnection,
  "cancelledAt": "2007-12-03T10:15:30Z",
  "createdAt": "2007-12-03T10:15:30Z"
}

OrderBillingItem

Description

A billing rule (Abrechnungsposition) on an order or object that generates pending invoice items. billingModel controls how: ONE_TIME (billed once), RECURRING (every frequency x interval), PER_OPERATION (per executed operation).

Fields
Field Name Description
id - ID!
object - Object
order - Order
orderService - OrderService
orderMaterial - OrderMaterial
position - Int!
type - OrderBillingItemType!
billingModel - OrderBillingModel!
priceType - OrderBillingItemPriceType!
title - String!
description - String
unitPrice - Int! Net unit price in cents.
quantity - Float
quantitySource - OrderBillingItemQuantitySource
unit - String
hasPersonHourUnit - Boolean!
taxRate - Float! VAT rate in percent (19 = 19 %).
startDate - Date!
endDate - Date
status - OrderBillingItemStatus!
listExecutionDates - Boolean
groupOperations - Boolean
frequency - Int Billing cycle length together with interval (e.g. frequency 3 + interval MONTH = quarterly). Only for RECURRING.
interval - OrderBillingItemInterval
billingPeriodsPerInvoice - Int How many billing periods (frequency x interval) are combined into one invoice. Only for RECURRING.
currentPeriodStart - Date Start date of the most recently invoiced period. Only for RECURRING.
currentPeriodEnd - Date End date of the most recently invoiced period. Only for RECURRING.
nextInvoicingDate - Date Date the next period is invoiced from; the billing run generates its pending item once this date is reached. null once nothing is left to bill (e.g. after endDate). Only for RECURRING.
updatedAt - DateTime!
createdAt - DateTime!
pendingInvoiceItems - PendingInvoiceItemConnection!
Arguments
after - String
before - String
first - Int
last - Int
query - String

Query for title

executionFrom - Date
executionTo - Date
Example
{
  "id": "4",
  "object": Object,
  "order": Order,
  "orderService": OrderService,
  "orderMaterial": OrderMaterial,
  "position": 123,
  "type": "SERVICE",
  "billingModel": "ONE_TIME",
  "priceType": "FLAT_RATE",
  "title": "abc123",
  "description": "xyz789",
  "unitPrice": 987,
  "quantity": 987.65,
  "quantitySource": "INPUT",
  "unit": "abc123",
  "hasPersonHourUnit": false,
  "taxRate": 123.45,
  "startDate": "2007-12-03",
  "endDate": "2007-12-03",
  "status": "ACTIVE",
  "listExecutionDates": true,
  "groupOperations": true,
  "frequency": 987,
  "interval": "WEEK",
  "billingPeriodsPerInvoice": 987,
  "currentPeriodStart": "2007-12-03",
  "currentPeriodEnd": "2007-12-03",
  "nextInvoicingDate": "2007-12-03",
  "updatedAt": "2007-12-03T10:15:30Z",
  "createdAt": "2007-12-03T10:15:30Z",
  "pendingInvoiceItems": PendingInvoiceItemConnection
}

OrderBillingItemConnection

Fields
Field Name Description
edges - [OrderBillingItemEdge]
pageInfo - PageInfo!
totalCount - Int!
Example
{
  "edges": [OrderBillingItemEdge],
  "pageInfo": PageInfo,
  "totalCount": 987
}

OrderBillingItemEdge

Fields
Field Name Description
cursor - String!
node - OrderBillingItem!
Example
{
  "cursor": "abc123",
  "node": OrderBillingItem
}

OrderBillingItemInterval

Values
Enum Value Description

WEEK

MONTH

YEAR

Example
"WEEK"

OrderBillingItemOrder

Fields
Input Field Description
field - OrderBillingItemOrderField!
direction - OrderDirection!
Example
{"field": "CREATED_AT", "direction": "ASC"}

OrderBillingItemOrderField

Values
Enum Value Description

CREATED_AT

POSITION

START_DATE

END_DATE

Example
"CREATED_AT"

OrderBillingItemPriceType

Values
Enum Value Description

FLAT_RATE

PER_UNIT

Example
"FLAT_RATE"

OrderBillingItemQuantitySource

Description

Where PER_OPERATION quantities come from when not fixed.

Values
Enum Value Description

INPUT

Entered manually per operation (inputOperationBillingItemQuantity).

SERVICE_RECEIPT

Taken from the linked service receipt.

TIME_RECORD

Taken from the recorded working times.
Example
"INPUT"

OrderBillingItemStatus

Description

Two lifecycles depending on billingModel: ONE_TIME items move OPEN -> BILLING -> BILLED through the pending-item workflow; RECURRING and PER_OPERATION items are ACTIVE until their endDate passes (ENDED).

Values
Enum Value Description

ACTIVE

RECURRING/PER_OPERATION: endDate not reached.

ENDED

RECURRING/PER_OPERATION: endDate passed.

OPEN

ONE_TIME: no pending item generated yet.

BILLING

ONE_TIME: pending item exists, not billed yet.

BILLED

ONE_TIME: the pending item has been billed.
Example
"ACTIVE"

OrderBillingItemType

Values
Enum Value Description

SERVICE

A performed service.

JOURNEY

A travel or journey surcharge.

MATERIAL

Consumed material.
Example
"SERVICE"

OrderBillingModel

Values
Enum Value Description

ONE_TIME

Billed once over the item's period.

RECURRING

Repeats every frequency x interval.

PER_OPERATION

Billed per executed operation; quantity from quantitySource.
Example
"ONE_TIME"

OrderConnection

Fields
Field Name Description
edges - [OrderEdge]
pageInfo - PageInfo!
totalCount - Int!
Example
{
  "edges": [OrderEdge],
  "pageInfo": PageInfo,
  "totalCount": 123
}

OrderDirection

Values
Enum Value Description

ASC

Specifies an ascending order

DESC

Specifies a descending order
Example
"ASC"

OrderEdge

Fields
Field Name Description
cursor - String!
node - Order!
Example
{
  "cursor": "xyz789",
  "node": Order
}

OrderExecutor

Fields
Field Name Description
id - ID!
order - Order!
employee - Employee
subcontractor - Subcontractor
startDate - Date! The executor is assigned from this date on.
cancelDate - Date Set via cancelOrderExecutor; the executor is inactive from this date.
isAddedToOrderShift - Boolean!
Arguments
orderShiftId - ID
createdAt - DateTime!
orderShifts - OrderShiftConnection
Arguments
after - String
before - String
first - Int
last - Int
query - String

Query for interval

isEnded - Boolean
orderBy - OrderShiftOrder
billingItems - OrderExecutorBillingItemConnection
Arguments
after - String
before - String
first - Int
last - Int
query - String

Query for title

isActive - Boolean

OrderExecutorBillingItem is not ended

Example
{
  "id": "4",
  "order": Order,
  "employee": Employee,
  "subcontractor": Subcontractor,
  "startDate": "2007-12-03",
  "cancelDate": "2007-12-03",
  "isAddedToOrderShift": true,
  "createdAt": "2007-12-03T10:15:30Z",
  "orderShifts": OrderShiftConnection,
  "billingItems": OrderExecutorBillingItemConnection
}

OrderExecutorBillingItem

Description

The credit-note counterpart of an OrderBillingItem: what a subcontractor order executor is credited. Generates pending credit-note items. Price is either unitPrice (cents) or pricePercentage of the linked orderBillingItem.

Fields
Field Name Description
id - ID!
orderExecutor - OrderExecutor!
orderBillingItem - OrderBillingItem
orderService - OrderService
orderMaterial - OrderMaterial
position - Int!
type - OrderExecutorBillingItemType!
billingModel - OrderExecutorBillingModel!
priceType - OrderExecutorBillingItemPriceType!
title - String!
description - String
unitPrice - Int Net unit price in cents.
pricePercentage - Int Percent of the linked orderBillingItem's unitPrice (19 = 19 %). Mutually exclusive with unitPrice; requires orderBillingItem.
quantity - Float
quantitySource - OrderExecutorBillingItemQuantitySource
unit - String
hasPersonHourUnit - Boolean!
taxRate - Float! VAT rate in percent (19 = 19 %).
startDate - Date!
endDate - Date
status - OrderExecutorBillingItemStatus!
listExecutionDates - Boolean
groupOperations - Boolean
frequency - Int Billing cycle length together with interval (e.g. frequency 3 + interval MONTH = quarterly). Only for RECURRING.
interval - OrderExecutorBillingItemInterval
currentPeriodStart - Date Start date of the most recently credited period. Only for RECURRING.
currentPeriodEnd - Date End date of the most recently credited period. Only for RECURRING.
nextInvoicingDate - Date Date the next period is credited from; the billing run generates its pending credit-note item once this date is reached. null once nothing is left to credit (e.g. after endDate). Only for RECURRING.
updatedAt - DateTime!
createdAt - DateTime!
Example
{
  "id": 4,
  "orderExecutor": OrderExecutor,
  "orderBillingItem": OrderBillingItem,
  "orderService": OrderService,
  "orderMaterial": OrderMaterial,
  "position": 987,
  "type": "SERVICE",
  "billingModel": "ONE_TIME",
  "priceType": "FLAT_RATE",
  "title": "abc123",
  "description": "xyz789",
  "unitPrice": 987,
  "pricePercentage": 123,
  "quantity": 123.45,
  "quantitySource": "INPUT",
  "unit": "xyz789",
  "hasPersonHourUnit": false,
  "taxRate": 123.45,
  "startDate": "2007-12-03",
  "endDate": "2007-12-03",
  "status": "ACTIVE",
  "listExecutionDates": true,
  "groupOperations": true,
  "frequency": 987,
  "interval": "WEEK",
  "currentPeriodStart": "2007-12-03",
  "currentPeriodEnd": "2007-12-03",
  "nextInvoicingDate": "2007-12-03",
  "updatedAt": "2007-12-03T10:15:30Z",
  "createdAt": "2007-12-03T10:15:30Z"
}

OrderExecutorBillingItemConnection

Fields
Field Name Description
edges - [OrderExecutorBillingItemEdge]
pageInfo - PageInfo!
totalCount - Int!
Example
{
  "edges": [OrderExecutorBillingItemEdge],
  "pageInfo": PageInfo,
  "totalCount": 987
}

OrderExecutorBillingItemEdge

Fields
Field Name Description
cursor - String!
node - OrderExecutorBillingItem!
Example
{
  "cursor": "abc123",
  "node": OrderExecutorBillingItem
}

OrderExecutorBillingItemInterval

Values
Enum Value Description

WEEK

MONTH

YEAR

Example
"WEEK"

OrderExecutorBillingItemOrder

Fields
Input Field Description
field - OrderExecutorBillingItemOrderField!
direction - OrderDirection!
Example
{"field": "CREATED_AT", "direction": "ASC"}

OrderExecutorBillingItemOrderField

Values
Enum Value Description

CREATED_AT

START_DATE

POSITION

Example
"CREATED_AT"

OrderExecutorBillingItemPriceType

Values
Enum Value Description

FLAT_RATE

PER_UNIT

Example
"FLAT_RATE"

OrderExecutorBillingItemQuantitySource

Description

Where PER_OPERATION quantities come from when not fixed.

Values
Enum Value Description

INPUT

Entered manually per operation (inputOperationBillingItemQuantity).

SERVICE_RECEIPT

Taken from the linked service receipt.
Example
"INPUT"

OrderExecutorBillingItemStatus

Description

Two lifecycles depending on billingModel: ONE_TIME items move OPEN -> BILLING -> BILLED through the pending-item workflow; RECURRING and PER_OPERATION items are ACTIVE until their endDate passes (ENDED).

Values
Enum Value Description

ACTIVE

RECURRING/PER_OPERATION: endDate not reached.

ENDED

RECURRING/PER_OPERATION: endDate passed.

OPEN

ONE_TIME: no pending item generated yet.

BILLING

ONE_TIME: pending item exists, not billed yet.

BILLED

ONE_TIME: the pending item has been billed.
Example
"ACTIVE"

OrderExecutorBillingItemType

Values
Enum Value Description

SERVICE

A performed service.

JOURNEY

A travel or journey surcharge.

MATERIAL

Consumed material.
Example
"SERVICE"

OrderExecutorBillingModel

Values
Enum Value Description

ONE_TIME

Billed once over the item's period.

RECURRING

Repeats every frequency x interval.

PER_OPERATION

Billed per executed operation; quantity from quantitySource.
Example
"ONE_TIME"

OrderExecutorConnection

Fields
Field Name Description
edges - [OrderExecutorEdge]
pageInfo - PageInfo!
totalCount - Int!
Example
{
  "edges": [OrderExecutorEdge],
  "pageInfo": PageInfo,
  "totalCount": 123
}

OrderExecutorEdge

Fields
Field Name Description
cursor - String!
node - OrderExecutor!
Example
{
  "cursor": "abc123",
  "node": OrderExecutor
}

OrderExecutorInput

Fields
Input Field Description
employeeId - ID Provide exactly one of employeeId or subcontractorId.
subcontractorId - ID
startDate - Date Defaults to the order start date when omitted.
Example
{
  "employeeId": "4",
  "subcontractorId": "4",
  "startDate": "2007-12-03"
}

OrderMaterial

Description

A material planned on an order and its services.

Fields
Field Name Description
id - ID!
order - Order!
orderServices - [OrderService!]!
material - Material!
position - Int!
updatedAt - DateTime!
createdAt - DateTime!
billingItems - OrderBillingItemConnection
Arguments
after - String
before - String
first - Int
last - Int
query - String

Query for title or unit

billingModel - OrderBillingModel
executorBillingItems - OrderExecutorBillingItemConnection
Arguments
after - String
before - String
first - Int
last - Int
query - String

Query for title

billingModel - OrderExecutorBillingModel
Example
{
  "id": "4",
  "order": Order,
  "orderServices": [OrderService],
  "material": Material,
  "position": 987,
  "updatedAt": "2007-12-03T10:15:30Z",
  "createdAt": "2007-12-03T10:15:30Z",
  "billingItems": OrderBillingItemConnection,
  "executorBillingItems": OrderExecutorBillingItemConnection
}

OrderMaterialConnection

Fields
Field Name Description
edges - [OrderMaterialEdge]
pageInfo - PageInfo!
totalCount - Int!
Example
{
  "edges": [OrderMaterialEdge],
  "pageInfo": PageInfo,
  "totalCount": 123
}

OrderMaterialEdge

Fields
Field Name Description
cursor - String!
node - OrderMaterial!
Example
{
  "cursor": "abc123",
  "node": OrderMaterial
}

OrderMaterialInput

Fields
Input Field Description
materialId - ID!
position - Int
serviceIndexes - [Int!]! Zero-based indexes into the services list this material applies to. At least one is required.
Example
{
  "materialId": "4",
  "position": 123,
  "serviceIndexes": [123]
}

OrderMaterialOrder

Fields
Input Field Description
field - OrderMaterialOrderField!
direction - OrderDirection!
Example
{"field": "CREATED_AT", "direction": "ASC"}

OrderMaterialOrderField

Values
Enum Value Description

CREATED_AT

POSITION

Example
"CREATED_AT"

OrderOrder

Fields
Input Field Description
field - OrderOrderField!
direction - OrderDirection!
Example
{"field": "CREATED_AT", "direction": "ASC"}

OrderOrderField

Values
Enum Value Description

CREATED_AT

NUMBER

START_DATE

Example
"CREATED_AT"

OrderService

Fields
Field Name Description
id - ID!
order - Order!
service - Service!
position - Int!
title - String!
unit - String
hasPersonHourUnit - Boolean! Quantity is measured in person-hours.
executionOnDemand - Boolean!
demandRrule - String
nextDemandDate - Date Next date an on-demand execution is due (driven by demandRrule).
lastExecutionDate - Date Execution date of the service's latest operation.
updatedAt - DateTime!
createdAt - DateTime!
tasks - OrderServiceTaskConnection
Arguments
after - String
before - String
first - Int
last - Int
serviceAreaId - ID
query - String
billingItems - OrderBillingItemConnection
Arguments
after - String
before - String
first - Int
last - Int
query - String

Query for title or unit

materials - OrderMaterialConnection
Arguments
after - String
before - String
first - Int
last - Int
query - String

Query for material name, number, manufacturer or material group

manufacturer - String
materialGroupName - String
orderBy - OrderMaterialOrder
Example
{
  "id": 4,
  "order": Order,
  "service": Service,
  "position": 123,
  "title": "xyz789",
  "unit": "xyz789",
  "hasPersonHourUnit": false,
  "executionOnDemand": false,
  "demandRrule": "abc123",
  "nextDemandDate": "2007-12-03",
  "lastExecutionDate": "2007-12-03",
  "updatedAt": "2007-12-03T10:15:30Z",
  "createdAt": "2007-12-03T10:15:30Z",
  "tasks": OrderServiceTaskConnection,
  "billingItems": OrderBillingItemConnection,
  "materials": OrderMaterialConnection
}

OrderServiceConnection

Fields
Field Name Description
edges - [OrderServiceEdge]
pageInfo - PageInfo!
totalCount - Int!
Example
{
  "edges": [OrderServiceEdge],
  "pageInfo": PageInfo,
  "totalCount": 987
}

OrderServiceEdge

Fields
Field Name Description
cursor - String!
node - OrderService!
Example
{
  "cursor": "xyz789",
  "node": OrderService
}

OrderServiceInput

Fields
Input Field Description
serviceId - ID!
title - String Defaults to the catalog service title when omitted.
executionOnDemand - Boolean
demandRrule - String
Example
{
  "serviceId": "4",
  "title": "xyz789",
  "executionOnDemand": true,
  "demandRrule": "xyz789"
}

OrderServiceOrder

Fields
Input Field Description
field - OrderServiceOrderField!
direction - OrderDirection!
Example
{"field": "CREATED_AT", "direction": "ASC"}

OrderServiceOrderField

Values
Enum Value Description

CREATED_AT

POSITION

ORDER_NUMBER

ORDER_START_DATE

NEXT_DEMAND_DATE

Example
"CREATED_AT"

OrderServiceTask

Fields
Field Name Description
id - ID!
orderService - OrderService!
serviceArea - ServiceArea
position - Int!
title - String!
rrule - String Recurrence rule (RFC 5545 RRULE) for how often this task is due, e.g. "FREQ=MONTHLY;BYDAY=2WE" (every 2nd Wednesday). Monthly/quarterly rules must be weekday-based (BYDAY), not BYMONTHDAY, so the task always falls on the same weekday. null means the task applies on every operation of its shift. A per-shift override can be set via OrderShiftTask.rrule.
quantity - Float Quantity/area covered by this task (e.g. square meters). Paired with unit.
unit - String Free-form unit for quantity, e.g. "m²".
startDate - Date Anchor / first execution of the recurrence. null = anchored at the shift's start date (legacy behavior).
createdAt - DateTime!
rooms - OrderServiceTaskRoomConnection
Arguments
after - String
before - String
first - Int
last - Int
Example
{
  "id": "4",
  "orderService": OrderService,
  "serviceArea": ServiceArea,
  "position": 987,
  "title": "abc123",
  "rrule": "xyz789",
  "quantity": 123.45,
  "unit": "abc123",
  "startDate": "2007-12-03",
  "createdAt": "2007-12-03T10:15:30Z",
  "rooms": OrderServiceTaskRoomConnection
}

OrderServiceTaskConnection

Fields
Field Name Description
edges - [OrderServiceTaskEdge]
pageInfo - PageInfo!
totalCount - Int!
Example
{
  "edges": [OrderServiceTaskEdge],
  "pageInfo": PageInfo,
  "totalCount": 123
}

OrderServiceTaskEdge

Fields
Field Name Description
cursor - String!
node - OrderServiceTask!
Example
{
  "cursor": "abc123",
  "node": OrderServiceTask
}

OrderServiceTaskOrder

Fields
Input Field Description
field - OrderServiceTaskOrderField!
direction - OrderDirection!
Example
{"field": "CREATED_AT", "direction": "ASC"}

OrderServiceTaskOrderField

Values
Enum Value Description

CREATED_AT

POSITION

TITLE

Example
"CREATED_AT"

OrderServiceTaskRoom

Fields
Field Name Description
id - ID!
orderServiceTask - OrderServiceTask!
objectRoom - ObjectRoom!
createdAt - DateTime!
Example
{
  "id": 4,
  "orderServiceTask": OrderServiceTask,
  "objectRoom": ObjectRoom,
  "createdAt": "2007-12-03T10:15:30Z"
}

OrderServiceTaskRoomConnection

Fields
Field Name Description
edges - [OrderServiceTaskRoomEdge]
pageInfo - PageInfo!
totalCount - Int!
Example
{
  "edges": [OrderServiceTaskRoomEdge],
  "pageInfo": PageInfo,
  "totalCount": 123
}

OrderServiceTaskRoomEdge

Fields
Field Name Description
cursor - String!
node - OrderServiceTaskRoom!
Example
{
  "cursor": "abc123",
  "node": OrderServiceTaskRoom
}

OrderServiceTaskRoomOrder

Fields
Input Field Description
field - OrderServiceTaskRoomOrderField!
direction - OrderDirection!
Example
{"field": "CREATED_AT", "direction": "ASC"}

OrderServiceTaskRoomOrderField

Values
Enum Value Description

CREATED_AT

Example
"CREATED_AT"

OrderShift

Description

A recurring schedule of an order that generates its operations.

Fields
Field Name Description
id - ID!
order - Order!
startDate - Date!
endDate - Date
rrule - String! Recurrence rule (RFC 5545 RRULE) generating the shift's operations, e.g. FREQ=WEEKLY;BYDAY=MO,TH.
timeFrom - Time
timeTo - Time
acrossMidnight - Boolean! Operations end on the day after their start date.
duration - Int Planned duration per operation in seconds (alternative to timeFrom/timeTo).
requiredExecutors - Int! Minimum number of executors required per operation
deviatingInstructions - String
createServiceReceipt - Boolean!
days - [OrderShiftDay!]! Per-weekday overrides of time/duration/requiredExecutors. At most one entry per weekday (ISO 1=Mon .. 7=Sun). Operations on a weekday with an override use these values.
tasks - [OrderShiftTask!]! Per-shift task selection with an optional per-shift recurrence override. An empty list means all tasks of the shift's OrderServices apply (backward compatible).
orderServices - [OrderService!]!
executors - OrderShiftExecutorConnection
Arguments
after - String
before - String
first - Int
last - Int
isActive - Boolean

OrderExecutor is not cancelled

endedAt - DateTime
createdAt - DateTime!
Example
{
  "id": "4",
  "order": Order,
  "startDate": "2007-12-03",
  "endDate": "2007-12-03",
  "rrule": "abc123",
  "timeFrom": "10:15:30Z",
  "timeTo": "10:15:30Z",
  "acrossMidnight": false,
  "duration": 987,
  "requiredExecutors": 123,
  "deviatingInstructions": "xyz789",
  "createServiceReceipt": true,
  "days": [OrderShiftDay],
  "tasks": [OrderShiftTask],
  "orderServices": [OrderService],
  "executors": OrderShiftExecutorConnection,
  "endedAt": "2007-12-03T10:15:30Z",
  "createdAt": "2007-12-03T10:15:30Z"
}

OrderShiftConnection

Fields
Field Name Description
edges - [OrderShiftEdge]
pageInfo - PageInfo!
totalCount - Int!
Example
{
  "edges": [OrderShiftEdge],
  "pageInfo": PageInfo,
  "totalCount": 123
}

OrderShiftDay

Fields
Field Name Description
id - ID!
weekday - Int! ISO weekday: 1=Mon .. 7=Sun
timeFrom - Time
timeTo - Time
duration - Int Planned duration per operation in seconds (alternative to timeFrom/timeTo).
requiredExecutors - Int
Example
{
  "id": "4",
  "weekday": 987,
  "timeFrom": "10:15:30Z",
  "timeTo": "10:15:30Z",
  "duration": 123,
  "requiredExecutors": 987
}

OrderShiftDayInput

Fields
Input Field Description
weekday - Int! ISO weekday: 1=Mon .. 7=Sun
timeFrom - Time
timeTo - Time
duration - Int Planned duration per operation in seconds (alternative to timeFrom/timeTo).
requiredExecutors - Int
Example
{
  "weekday": 123,
  "timeFrom": "10:15:30Z",
  "timeTo": "10:15:30Z",
  "duration": 987,
  "requiredExecutors": 987
}

OrderShiftEdge

Fields
Field Name Description
cursor - String!
node - OrderShift!
Example
{
  "cursor": "xyz789",
  "node": OrderShift
}

OrderShiftExecutor

Fields
Field Name Description
id - ID!
orderShift - OrderShift!
orderExecutor - OrderExecutor!
startDate - Date!
createdAt - DateTime!
Example
{
  "id": "4",
  "orderShift": OrderShift,
  "orderExecutor": OrderExecutor,
  "startDate": "2007-12-03",
  "createdAt": "2007-12-03T10:15:30Z"
}

OrderShiftExecutorConnection

Fields
Field Name Description
edges - [OrderShiftExecutorEdge]
pageInfo - PageInfo!
totalCount - Int!
Example
{
  "edges": [OrderShiftExecutorEdge],
  "pageInfo": PageInfo,
  "totalCount": 123
}

OrderShiftExecutorEdge

Fields
Field Name Description
cursor - String!
node - OrderShiftExecutor!
Example
{
  "cursor": "xyz789",
  "node": OrderShiftExecutor
}

OrderShiftOrder

Fields
Input Field Description
field - OrderShiftOrderField!
direction - OrderDirection!
Example
{"field": "CREATED_AT", "direction": "ASC"}

OrderShiftOrderField

Values
Enum Value Description

CREATED_AT

INTERVAL

Example
"CREATED_AT"

OrderShiftTask

Fields
Field Name Description
id - ID!
orderServiceTask - OrderServiceTask!
rrule - String Per-shift recurrence override (RFC 5545 RRULE). null means the task's own OrderServiceTask.rrule applies.
Example
{
  "id": "4",
  "orderServiceTask": OrderServiceTask,
  "rrule": "xyz789"
}

OrderShiftTaskInput

Fields
Input Field Description
orderServiceTaskId - ID!
rrule - String Per-shift recurrence override (RFC 5545 RRULE). Omit or pass null to use the task's own rrule.
Example
{"orderServiceTaskId": 4, "rrule": "abc123"}

OrderStatus

Values
Enum Value Description

ACTIVE

ENDED

Ended via endOrder; no further operations are generated.
Example
"ACTIVE"

PageInfo

Fields
Field Name Description
endCursor - String When paginating forwards, the cursor to continue.
hasNextPage - Boolean! When paginating forwards, are there more items?
hasPreviousPage - Boolean! When paginating backwards, are there more items?
startCursor - String When paginating backwards, the cursor to continue.
Example
{
  "endCursor": "abc123",
  "hasNextPage": false,
  "hasPreviousPage": true,
  "startCursor": "xyz789"
}

Payment

Description

A payment (Zahlung) recorded on an invoice or a receipt.

Fields
Field Name Description
id - ID!
amount - Int Amount in cents.
paymentDate - Date
invoice - Invoice Set when the payment belongs to an invoice.
receipt - Receipt Set when the payment belongs to a receipt.
createdAt - DateTime
Example
{
  "id": "4",
  "amount": 123,
  "paymentDate": "2007-12-03",
  "invoice": Invoice,
  "receipt": Receipt,
  "createdAt": "2007-12-03T10:15:30Z"
}

PendingCreditNoteItem

Description

A pending credit-note item (Ausstehender Gutschrift-Posten): an amount to be credited to a subcontractor, generated from order executor billing items. Read-only here — credit notes are created from these inside Mendato, not via this API.

Fields
Field Name Description
id - ID!
subcontractor - Subcontractor!
object - Object
title - String!
description - String
quantity - Float
unitPrice - Int! Net unit price in cents.
taxRate - Float! VAT rate in percent (19 = 19 %).
unit - String
isCreatedManually - Boolean!
executionStart - Date!
executionEnd - Date!
orderExecutor - OrderExecutor
orderExecutorBillingItem - OrderExecutorBillingItem
pendingInvoiceItem - PendingInvoiceItem
service - Service
material - Material
billedAt - DateTime
createdAt - DateTime!
Example
{
  "id": "4",
  "subcontractor": Subcontractor,
  "object": Object,
  "title": "abc123",
  "description": "abc123",
  "quantity": 123.45,
  "unitPrice": 987,
  "taxRate": 123.45,
  "unit": "xyz789",
  "isCreatedManually": true,
  "executionStart": "2007-12-03",
  "executionEnd": "2007-12-03",
  "orderExecutor": OrderExecutor,
  "orderExecutorBillingItem": OrderExecutorBillingItem,
  "pendingInvoiceItem": PendingInvoiceItem,
  "service": Service,
  "material": Material,
  "billedAt": "2007-12-03T10:15:30Z",
  "createdAt": "2007-12-03T10:15:30Z"
}

PendingInvoiceItem

Description

A pending invoice item (Ausstehender Posten): billable work waiting to be invoiced. Created automatically from operation/order billing items once their quantity is known, or manually via createPendingInvoiceItem. Bill pending items with createInvoiceFromPendingInvoiceItems.

Fields
Field Name Description
id - ID!
customer - Customer!
object - Object
status - PendingInvoiceItemStatus!
title - String!
description - String
quantity - Float
unitPrice - Int! Net unit price in cents.
taxRate - Float! VAT rate in percent (19 = 19 %).
unit - String
isCreatedManually - Boolean! True when created via createPendingInvoiceItem instead of from billing items.
isGroup - Boolean! True when this item groups the billing items of an order's operations into one position (order billing item setting groupOperations).
executionStart - Date! Start of the execution period this item bills.
executionEnd - Date! End of the execution period this item bills.
billingPeriodInterval - BillingPeriodInterval Set on manually created items when an interval is provided, and on generated items only when they bundle more than one full billing period (whole months/quarters).
service - Service
material - Material
order - Order
billedAt - DateTime Set when the item was billed into an invoice.
createdAt - DateTime!
Example
{
  "id": "4",
  "customer": Customer,
  "object": Object,
  "status": "PENDING",
  "title": "xyz789",
  "description": "xyz789",
  "quantity": 123.45,
  "unitPrice": 987,
  "taxRate": 987.65,
  "unit": "abc123",
  "isCreatedManually": true,
  "isGroup": true,
  "executionStart": "2007-12-03",
  "executionEnd": "2007-12-03",
  "billingPeriodInterval": "MONTH",
  "service": Service,
  "material": Material,
  "order": Order,
  "billedAt": "2007-12-03T10:15:30Z",
  "createdAt": "2007-12-03T10:15:30Z"
}

PendingInvoiceItemConnection

Fields
Field Name Description
edges - [PendingInvoiceItemEdge]
pageInfo - PageInfo!
totalCount - Int!
Example
{
  "edges": [PendingInvoiceItemEdge],
  "pageInfo": PageInfo,
  "totalCount": 123
}

PendingInvoiceItemEdge

Fields
Field Name Description
cursor - String!
node - PendingInvoiceItem!
Example
{
  "cursor": "xyz789",
  "node": PendingInvoiceItem
}

PendingInvoiceItemOrder

Fields
Input Field Description
field - PendingInvoiceItemOrderField!
direction - OrderDirection!
Example
{"field": "CREATED_AT", "direction": "ASC"}

PendingInvoiceItemOrderField

Values
Enum Value Description

CREATED_AT

EXECUTION_START

EXECUTION_END

Example
"CREATED_AT"

PendingInvoiceItemStatus

Values
Enum Value Description

PENDING

Waiting to be billed.

BILLED

Included in an invoice; billedAt is set.
Example
"PENDING"

Receipt

Description

An incoming document (Beleg): an expense such as a supplier invoice, or an incoming credit. Read-only.

Fields
Field Name Description
id - ID!
company - Company
customer - Customer
subcontractor - Subcontractor
type - ReceiptType!
status - ReceiptStatus!
number - String
elements - [ReceiptElement]
totalAmount - Int! Gross total in cents.
outstandingAmount - Int! Open amount in cents.
dueDate - Date!
receiptDate - Date!
files - [ReceiptFile]
paidAt - Date
currency - CurrencyCode!
createdAt - DateTime
payments - [Payment]
Example
{
  "id": "4",
  "company": Company,
  "customer": Customer,
  "subcontractor": Subcontractor,
  "type": "EXPENSE",
  "status": "UNPAID",
  "number": "xyz789",
  "elements": [ReceiptElement],
  "totalAmount": 987,
  "outstandingAmount": 123,
  "dueDate": "2007-12-03",
  "receiptDate": "2007-12-03",
  "files": [ReceiptFile],
  "paidAt": "2007-12-03",
  "currency": CurrencyCode,
  "createdAt": "2007-12-03T10:15:30Z",
  "payments": [Payment]
}

ReceiptConnection

Fields
Field Name Description
edges - [ReceiptEdge]
pageInfo - PageInfo!
totalCount - Int!
Example
{
  "edges": [ReceiptEdge],
  "pageInfo": PageInfo,
  "totalCount": 123
}

ReceiptEdge

Fields
Field Name Description
cursor - String!
node - Receipt!
Example
{
  "cursor": "xyz789",
  "node": Receipt
}

ReceiptElement

Fields
Field Name Description
id - ID!
netAmount - Int! Net amount in cents.
taxAmount - Int! VAT amount in cents.
taxRate - Float! VAT rate in percent (19 = 19 %).
totalAmount - Int! Gross amount in cents.
createdAt - DateTime
Example
{
  "id": 4,
  "netAmount": 987,
  "taxAmount": 123,
  "taxRate": 123.45,
  "totalAmount": 987,
  "createdAt": "2007-12-03T10:15:30Z"
}

ReceiptFile

Fields
Field Name Description
id - ID!
url - String
mimeType - String
Example
{
  "id": "4",
  "url": "abc123",
  "mimeType": "abc123"
}

ReceiptOrder

Fields
Input Field Description
field - ReceiptOrderField!
direction - OrderDirection!
Example
{"field": "CREATED_AT", "direction": "ASC"}

ReceiptOrderField

Values
Enum Value Description

CREATED_AT

RECEIPT_DATE

DUE_DATE

Example
"CREATED_AT"

ReceiptStatus

Description

Set automatically from payments (createPayment with receiptId).

Values
Enum Value Description

UNPAID

PAID

Payments cover the amount; paidAt is set.
Example
"UNPAID"

ReceiptType

Values
Enum Value Description

EXPENSE

Money the company owes or paid out (e.g. supplier invoice).

CREDIT

Incoming credit in the company's favor.
Example
"EXPENSE"

RejectTicketInput

Fields
Input Field Description
ticketId - ID!
Example
{"ticketId": "4"}

RejectTicketPayload

Fields
Field Name Description
ticket - Ticket
Example
{"ticket": Ticket}

ReplaceEmployeeOnOperationsInput

Fields
Input Field Description
operationId - ID!
oldEmployeeId - ID! Id of the employee to be replaced
newEmployeeId - ID! Id of the employee who replaces the old employee
Example
{
  "operationId": "4",
  "oldEmployeeId": "4",
  "newEmployeeId": "4"
}

ReplaceEmployeeOnOperationsPayload

Fields
Field Name Description
operationExecutors - [OperationExecutor!]
Example
{"operationExecutors": [OperationExecutor]}

ReplaceEmployeeOnOrderShiftUntilInput

Fields
Input Field Description
operationId - ID!
oldEmployeeId - ID Id of the employee to be replaced. If omitted, the new employee is only added (no one is removed) across the operations in range.
newEmployeeId - ID! Id of the employee who is added / replaces the old employee
changeForOrderShiftUntil - Date! The new employee is added / replaces the old one on every operation of the operation's OrderShift from the operation's execution date up to and including this date (max. 50 operations).
Example
{
  "operationId": "4",
  "oldEmployeeId": "4",
  "newEmployeeId": 4,
  "changeForOrderShiftUntil": "2007-12-03"
}

ReplaceEmployeeOnOrderShiftUntilPayload

Fields
Field Name Description
operationExecutors - [OperationExecutor!]
Example
{"operationExecutors": [OperationExecutor]}

ReplaceSubcontractorOnOperationInput

Fields
Input Field Description
operationId - ID!
oldSubcontractorId - ID! Id of the subcontractor to be replaced
newSubcontractorId - ID! Id of the subcontractor who replaces the old subcontractor
Example
{
  "operationId": 4,
  "oldSubcontractorId": 4,
  "newSubcontractorId": "4"
}

ReplaceSubcontractorOnOperationPayload

Fields
Field Name Description
operationExecutor - OperationExecutor
Example
{"operationExecutor": OperationExecutor}

ReplaceSubcontractorOnOrderShiftUntilInput

Fields
Input Field Description
operationId - ID!
oldSubcontractorId - ID Id of the subcontractor to be replaced. If omitted, the new subcontractor is only added (no one is removed) across the operations in range.
newSubcontractorId - ID! Id of the subcontractor who is added / replaces the old subcontractor
changeForOrderShiftUntil - Date! The new subcontractor is added / replaces the old one on every operation of the operation's OrderShift from the operation's execution date up to and including this date (max. 50 operations).
Example
{
  "operationId": "4",
  "oldSubcontractorId": 4,
  "newSubcontractorId": "4",
  "changeForOrderShiftUntil": "2007-12-03"
}

ReplaceSubcontractorOnOrderShiftUntilPayload

Fields
Field Name Description
operationExecutors - [OperationExecutor!]
Example
{"operationExecutors": [OperationExecutor]}

ResumeOrderShiftInput

Fields
Input Field Description
orderShiftId - ID!
resumeDate - Date!
Example
{
  "orderShiftId": "4",
  "resumeDate": "2007-12-03"
}

ResumeOrderShiftPayload

Fields
Field Name Description
orderShift - OrderShift
Example
{"orderShift": OrderShift}

Service

Description

A service (Leistung) from the company's catalog: default title, price and unit used on orders, estimates and invoices.

Fields
Field Name Description
id - ID!
title - String!
description - String
unitPrice - Int Default net unit price in cents.
taxRate - Float Default VAT rate in percent (19 = 19 %).
unit - String
revenueAccount - Int Revenue account number.
areas - [ServiceArea!]!
createdAt - DateTime!
Example
{
  "id": 4,
  "title": "xyz789",
  "description": "abc123",
  "unitPrice": 123,
  "taxRate": 123.45,
  "unit": "xyz789",
  "revenueAccount": 123,
  "areas": [ServiceArea],
  "createdAt": "2007-12-03T10:15:30Z"
}

ServiceArea

Description

A named area of a service used to group its tasks.

Fields
Field Name Description
id - ID!
title - String!
description - String
createdAt - DateTime!
Example
{
  "id": 4,
  "title": "abc123",
  "description": "abc123",
  "createdAt": "2007-12-03T10:15:30Z"
}

ServiceConnection

Fields
Field Name Description
edges - [ServiceEdge]
pageInfo - PageInfo!
totalCount - Int!
Example
{
  "edges": [ServiceEdge],
  "pageInfo": PageInfo,
  "totalCount": 123
}

ServiceEdge

Fields
Field Name Description
cursor - String!
node - Service!
Example
{
  "cursor": "abc123",
  "node": Service
}

ServiceOrder

Fields
Input Field Description
field - ServiceOrderField!
direction - OrderDirection!
Example
{"field": "CREATED_AT", "direction": "ASC"}

ServiceOrderField

Values
Enum Value Description

CREATED_AT

TITLE

UNIT_PRICE

Example
"CREATED_AT"

ServiceReceipt

Description

A service receipt (Leistungsbeleg/Leistungsnachweis) documenting performed work, optionally signed by the customer via its web view. Read-only in this API — receipts are created and completed from operations inside Mendato.

Fields
Field Name Description
id - ID!
customer - Customer!
customerContactPerson - CustomerContactPerson
object - Object
status - ServiceReceiptStatus!
number - Int!
webUrl - URL! Customer-facing web view of the receipt (also used for signing).
notes - String
signatureCity - String
signatureDate - Date
signatureImageUrl - URL Image of the customer's signature, when signed.
reviewStatus - ServiceReceiptReviewStatus Internal review track: PENDING while a review is open, COMPLETED once reviewed.
serviceReceiptPdf - URL
completedAt - DateTime
signedAt - DateTime
reviewedAt - DateTime
language - LanguageTag!
currency - CurrencyCode!
createdAt - DateTime!
items - ServiceReceiptItemConnection!
Arguments
after - String
before - String
first - Int
last - Int
query - String

Query for title

Example
{
  "id": 4,
  "customer": Customer,
  "customerContactPerson": CustomerContactPerson,
  "object": Object,
  "status": "DRAFT",
  "number": 987,
  "webUrl": "http://www.test.com/",
  "notes": "xyz789",
  "signatureCity": "abc123",
  "signatureDate": "2007-12-03",
  "signatureImageUrl": "http://www.test.com/",
  "reviewStatus": "PENDING",
  "serviceReceiptPdf": "http://www.test.com/",
  "completedAt": "2007-12-03T10:15:30Z",
  "signedAt": "2007-12-03T10:15:30Z",
  "reviewedAt": "2007-12-03T10:15:30Z",
  "language": LanguageTag,
  "currency": CurrencyCode,
  "createdAt": "2007-12-03T10:15:30Z",
  "items": ServiceReceiptItemConnection
}

ServiceReceiptConnection

Fields
Field Name Description
edges - [ServiceReceiptEdge]
pageInfo - PageInfo!
totalCount - Int!
Example
{
  "edges": [ServiceReceiptEdge],
  "pageInfo": PageInfo,
  "totalCount": 987
}

ServiceReceiptEdge

Fields
Field Name Description
cursor - String!
node - ServiceReceipt!
Example
{
  "cursor": "abc123",
  "node": ServiceReceipt
}

ServiceReceiptItem

Fields
Field Name Description
id - ID!
serviceReceipt - ServiceReceipt!
type - ServiceReceiptItemType!
title - String!
description - String
quantity - Float
quantityInputRequired - Boolean! The quantity still has to be entered when executing the operation.
hideQuantity - Boolean!
unit - String
hasPersonHourUnit - Boolean! Quantity is measured in person-hours.
hideDuration - Boolean!
executionStartDate - Date
executionStartTime - Time
executionEndDate - Date
executionEndTime - Time
service - Service The service this item is based on.
object - Object
createdAt - DateTime!
Example
{
  "id": "4",
  "serviceReceipt": ServiceReceipt,
  "type": "SERVICE",
  "title": "abc123",
  "description": "xyz789",
  "quantity": 123.45,
  "quantityInputRequired": true,
  "hideQuantity": false,
  "unit": "abc123",
  "hasPersonHourUnit": true,
  "hideDuration": true,
  "executionStartDate": "2007-12-03",
  "executionStartTime": "10:15:30Z",
  "executionEndDate": "2007-12-03",
  "executionEndTime": "10:15:30Z",
  "service": Service,
  "object": Object,
  "createdAt": "2007-12-03T10:15:30Z"
}

ServiceReceiptItemConnection

Fields
Field Name Description
edges - [ServiceReceiptItemEdge]
pageInfo - PageInfo!
totalCount - Int!
Example
{
  "edges": [ServiceReceiptItemEdge],
  "pageInfo": PageInfo,
  "totalCount": 987
}

ServiceReceiptItemEdge

Fields
Field Name Description
cursor - String!
node - ServiceReceiptItem!
Example
{
  "cursor": "abc123",
  "node": ServiceReceiptItem
}

ServiceReceiptItemOrder

Fields
Input Field Description
field - ServiceReceiptItemOrderField!
direction - OrderDirection!
Example
{"field": "CREATED_AT", "direction": "ASC"}

ServiceReceiptItemOrderField

Values
Enum Value Description

CREATED_AT

TITLE

EXECUTION_START

EXECUTION_END

Example
"CREATED_AT"

ServiceReceiptItemType

Values
Enum Value Description

SERVICE

MATERIAL

Example
"SERVICE"

ServiceReceiptOrder

Fields
Input Field Description
field - ServiceReceiptOrderField!
direction - OrderDirection!
Example
{"field": "NUMBER", "direction": "ASC"}

ServiceReceiptOrderField

Values
Enum Value Description

NUMBER

STATUS

REVIEW_STATUS

COMPLETED_AT

SIGNED_AT

CREATED_AT

Example
"NUMBER"

ServiceReceiptReviewStatus

Values
Enum Value Description

PENDING

COMPLETED

Example
"PENDING"

ServiceReceiptStatus

Values
Enum Value Description

DRAFT

Being prepared.

COMPLETED

Finalized; PDF generated, completedAt set.

SIGNED

Signed by the customer via the web view; signedAt set.

WAITING_FOR_REVIEW

Awaiting internal review (set by the web signing flow).

REVIEWED

Internal review completed; reviewedAt set.
Example
"DRAFT"

SingleDate

Fields
Field Name Description
date - Date!
Example
{"date": "2007-12-03"}

State

Description

A German federal state (Bundesland). Only by-id lookup is available.

Fields
Field Name Description
id - ID!
name - String!
countryCode - CountryCode!
stateCode - StateCode!
Example
{
  "id": 4,
  "name": "xyz789",
  "countryCode": "US",
  "stateCode": StateCode
}

StateCode

Description

ISO 3166-2 state codes

Example
StateCode

String

Description

The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.

Example
"abc123"

Subcontractor

Description

A subcontractor (Nachunternehmer) who executes work and is paid via credit notes (Gutschriften).

Fields
Field Name Description
id - ID!
company - Company!
number - Int!
type - SubcontractorType!
salutation - String
firstName - String
lastName - String
companyName - String
addressSupplement - String
streetAddress - String
zip - String
city - String
country - CountryCode
email - String
phone - String
fax - String
website - String
taxNumber - String
vatId - String VAT ID (USt-IdNr.).
datevAccount - Int! DATEV account number (accounting export).
note - String
createdAt - DateTime!
receipts - ReceiptConnection!
Arguments
after - String
before - String
first - Int
last - Int
contactPersons - SubcontractorContactPersonConnection!
Arguments
after - String
before - String
first - Int
last - Int
query - String

Query for firstName, lastName and email

Example
{
  "id": 4,
  "company": Company,
  "number": 123,
  "type": "PERSON",
  "salutation": "abc123",
  "firstName": "xyz789",
  "lastName": "abc123",
  "companyName": "xyz789",
  "addressSupplement": "abc123",
  "streetAddress": "xyz789",
  "zip": "xyz789",
  "city": "xyz789",
  "country": "US",
  "email": "abc123",
  "phone": "xyz789",
  "fax": "abc123",
  "website": "xyz789",
  "taxNumber": "xyz789",
  "vatId": "abc123",
  "datevAccount": 987,
  "note": "xyz789",
  "createdAt": "2007-12-03T10:15:30Z",
  "receipts": ReceiptConnection,
  "contactPersons": SubcontractorContactPersonConnection
}

SubcontractorConnection

Fields
Field Name Description
edges - [SubcontractorEdge]
pageInfo - PageInfo!
totalCount - Int!
Example
{
  "edges": [SubcontractorEdge],
  "pageInfo": PageInfo,
  "totalCount": 987
}

SubcontractorContactPerson

Fields
Field Name Description
id - ID!
isDefault - Boolean!
salutation - String!
firstName - String
lastName - String!
role - String
email - String
phone - String
createdAt - DateTime!
Example
{
  "id": 4,
  "isDefault": false,
  "salutation": "abc123",
  "firstName": "abc123",
  "lastName": "abc123",
  "role": "abc123",
  "email": "xyz789",
  "phone": "xyz789",
  "createdAt": "2007-12-03T10:15:30Z"
}

SubcontractorContactPersonConnection

Fields
Field Name Description
edges - [SubcontractorContactPersonEdge]
pageInfo - PageInfo!
totalCount - Int!
Example
{
  "edges": [SubcontractorContactPersonEdge],
  "pageInfo": PageInfo,
  "totalCount": 987
}

SubcontractorContactPersonEdge

Fields
Field Name Description
cursor - String!
node - SubcontractorContactPerson!
Example
{
  "cursor": "xyz789",
  "node": SubcontractorContactPerson
}

SubcontractorEdge

Fields
Field Name Description
cursor - String!
node - Subcontractor!
Example
{
  "cursor": "xyz789",
  "node": Subcontractor
}

SubcontractorType

Values
Enum Value Description

PERSON

COMPANY

Example
"PERSON"

Supplier

Description

A supplier (Lieferant) of materials/services.

Fields
Field Name Description
id - ID!
number - Int!
type - SupplierType!
salutation - String
firstName - String
lastName - String
companyName - String
addressSupplement - String
streetAddress - String
zip - String
city - String
country - CountryCode
email - String
phone - String
fax - String
website - String
taxNumber - String
vatId - String VAT ID (USt-IdNr.).
datevAccount - Int! DATEV account number (accounting export).
tags - [String!]!
note - String
createdAt - DateTime!
contactPersons - SupplierContactPersonConnection!
Arguments
after - String
before - String
first - Int
last - Int
query - String

Query for firstName, lastName and email

Example
{
  "id": 4,
  "number": 987,
  "type": "PERSON",
  "salutation": "abc123",
  "firstName": "xyz789",
  "lastName": "xyz789",
  "companyName": "xyz789",
  "addressSupplement": "abc123",
  "streetAddress": "abc123",
  "zip": "xyz789",
  "city": "abc123",
  "country": "US",
  "email": "abc123",
  "phone": "xyz789",
  "fax": "xyz789",
  "website": "abc123",
  "taxNumber": "abc123",
  "vatId": "xyz789",
  "datevAccount": 987,
  "tags": ["xyz789"],
  "note": "xyz789",
  "createdAt": "2007-12-03T10:15:30Z",
  "contactPersons": SupplierContactPersonConnection
}

SupplierConnection

Fields
Field Name Description
edges - [SupplierEdge]
pageInfo - PageInfo!
totalCount - Int!
Example
{
  "edges": [SupplierEdge],
  "pageInfo": PageInfo,
  "totalCount": 123
}

SupplierContactPerson

Fields
Field Name Description
id - ID!
isDefault - Boolean!
salutation - String!
firstName - String
lastName - String!
role - String
email - String
phone - String
createdAt - DateTime!
Example
{
  "id": 4,
  "isDefault": false,
  "salutation": "xyz789",
  "firstName": "xyz789",
  "lastName": "abc123",
  "role": "xyz789",
  "email": "abc123",
  "phone": "abc123",
  "createdAt": "2007-12-03T10:15:30Z"
}

SupplierContactPersonConnection

Fields
Field Name Description
edges - [SupplierContactPersonEdge]
pageInfo - PageInfo!
totalCount - Int!
Example
{
  "edges": [SupplierContactPersonEdge],
  "pageInfo": PageInfo,
  "totalCount": 123
}

SupplierContactPersonEdge

Fields
Field Name Description
cursor - String!
node - SupplierContactPerson!
Example
{
  "cursor": "xyz789",
  "node": SupplierContactPerson
}

SupplierEdge

Fields
Field Name Description
cursor - String!
node - Supplier!
Example
{
  "cursor": "abc123",
  "node": Supplier
}

SupplierOrder

Fields
Input Field Description
field - SupplierOrderField!
direction - OrderDirection!
Example
{"field": "NUMBER", "direction": "ASC"}

SupplierOrderField

Values
Enum Value Description

NUMBER

NAME

CREATED_AT

Example
"NUMBER"

SupplierType

Values
Enum Value Description

PERSON

COMPANY

Example
"PERSON"

Ticket

Description

A ticket (Meldung/Aufgabe) at an object, e.g. a complaint or material demand. Operations can be linked to resolve tickets.

Fields
Field Name Description
id - ID!
object - Object!
objectRoom - ObjectRoom
order - Order
sourceOperation - Operation The operation during which the issue was reported.
number - Int!
type - TicketType
isPublic - Boolean! Whether the ticket is public.
inputChannel - TicketInputChannel
location - String
description - String!
status - TicketStatus!
priority - TicketPriority!
discoverDate - Date
dueDate - Date
rejectedAt - DateTime
completedAt - DateTime
files - TicketFileConnection!
Arguments
after - String
before - String
first - Int
last - Int
query - String

Query for fileName

orderBy - TicketFileOrder
operations - OperationConnection!
Arguments
after - String
before - String
first - Int
last - Int
query - String

Query for title

hasBillingItems - Boolean
hasMissingBillingItemQuantity - Boolean
executionFrom - Date

Only operations with execution at this date or later will be counted.

executionTo - Date

Only operations with execution before and up to and including this date will be counted.

hasNoExecutor - Boolean
zips - [String!]
cities - [String!]
orderBy - OperationOrder
createdAt - DateTime!
Example
{
  "id": 4,
  "object": Object,
  "objectRoom": ObjectRoom,
  "order": Order,
  "sourceOperation": Operation,
  "number": 123,
  "type": "COMPLAINT",
  "isPublic": true,
  "inputChannel": "PORTAL",
  "location": "abc123",
  "description": "abc123",
  "status": "OPEN",
  "priority": "LOW",
  "discoverDate": "2007-12-03",
  "dueDate": "2007-12-03",
  "rejectedAt": "2007-12-03T10:15:30Z",
  "completedAt": "2007-12-03T10:15:30Z",
  "files": TicketFileConnection,
  "operations": OperationConnection,
  "createdAt": "2007-12-03T10:15:30Z"
}

TicketConnection

Fields
Field Name Description
edges - [TicketEdge]
pageInfo - PageInfo!
totalCount - Int!
Example
{
  "edges": [TicketEdge],
  "pageInfo": PageInfo,
  "totalCount": 123
}

TicketEdge

Fields
Field Name Description
cursor - String!
node - Ticket!
Example
{
  "cursor": "abc123",
  "node": Ticket
}

TicketFile

Fields
Field Name Description
id - ID!
fileName - String!
mimeType - String!
size - Int
url - URL!
createdAt - DateTime!
Example
{
  "id": 4,
  "fileName": "abc123",
  "mimeType": "xyz789",
  "size": 987,
  "url": "http://www.test.com/",
  "createdAt": "2007-12-03T10:15:30Z"
}

TicketFileConnection

Fields
Field Name Description
edges - [TicketFileEdge]
pageInfo - PageInfo!
totalCount - Int!
Example
{
  "edges": [TicketFileEdge],
  "pageInfo": PageInfo,
  "totalCount": 123
}

TicketFileEdge

Fields
Field Name Description
cursor - String!
node - TicketFile!
Example
{
  "cursor": "xyz789",
  "node": TicketFile
}

TicketFileOrder

Fields
Input Field Description
field - TicketFileOrderField!
direction - OrderDirection!
Example
{"field": "CREATED_AT", "direction": "ASC"}

TicketFileOrderField

Values
Enum Value Description

CREATED_AT

FILE_NAME

MIME_TYPE

SIZE

Example
"CREATED_AT"

TicketInputChannel

Description

How the ticket was received.

Values
Enum Value Description

PORTAL

PHONE

EMAIL

VERBAL

Example
"PORTAL"

TicketOrder

Fields
Input Field Description
field - TicketOrderField!
direction - OrderDirection!
Example
{"field": "CREATED_AT", "direction": "ASC"}

TicketOrderField

Values
Enum Value Description

CREATED_AT

UPDATED_AT

NUMBER

DISCOVER_DATE

DUE_DATE

REJECTED_AT

COMPLETED_AT

Example
"CREATED_AT"

TicketPriority

Values
Enum Value Description

LOW

MIDDLE

HIGH

Example
"LOW"

TicketStatus

Values
Enum Value Description

OPEN

New; not yet scheduled.

SCHEDULED

An operation is linked to resolve the ticket (set automatically; linking is not available in this API).

REJECTED

Rejected via rejectTicket; rejectedAt set, operation links removed.

COMPLETED

Completed via completeTicket; completedAt set.
Example
"OPEN"

TicketType

Description

What the ticket reports.

Values
Enum Value Description

COMPLAINT

Complaint (Reklamation).

EXTRA

Additional work (Zusatzleistung).

MATERIAL_DEMAND

Material demand (Materialbedarf).

PROPERTY_DAMAGE

Property damage (Sachschaden).

OTHER

Example
"COMPLAINT"

Time

Description

Time of day in the form HH:mm:ss (24h), e.g. 14:30:00.

Example
"10:15:30Z"

TimeRecord

Description

A time record (Zeiterfassung) of an employee, usually linked to an operation executor.

Fields
Field Name Description
id - ID!
employee - Employee!
object - Object
operationExecutor - OperationExecutor
date - Date! The working day this record belongs to.
journeyStart - DateTime Start of journey in UTC
start - DateTime Start of time record in UTC
end - DateTime End of time record in UTC. If end is null means the TimeRecord is running.
planDuration - Int Planned duration in seconds (from the operation's planned duration).
actualDuration - Int Worked duration in seconds.
breakDuration - Int Total break duration in seconds.
hasTotalBreakInput - Boolean! True when breakDuration was entered as a manual total instead of derived from the individual breaks.
breaks - [TimeRecordBreak]
journeyDuration - Int Journey duration in seconds.
journeyStartLocation - Location
startLocation - Location
endLocation - Location
createdAutomatically - Boolean! Created by Mendato's automatic time recording.
confirmedAt - DateTime If set the TimeRecord is confirmed
createdAt - DateTime!
Example
{
  "id": 4,
  "employee": Employee,
  "object": Object,
  "operationExecutor": OperationExecutor,
  "date": "2007-12-03",
  "journeyStart": "2007-12-03T10:15:30Z",
  "start": "2007-12-03T10:15:30Z",
  "end": "2007-12-03T10:15:30Z",
  "planDuration": 123,
  "actualDuration": 987,
  "breakDuration": 123,
  "hasTotalBreakInput": false,
  "breaks": [TimeRecordBreak],
  "journeyDuration": 123,
  "journeyStartLocation": Location,
  "startLocation": Location,
  "endLocation": Location,
  "createdAutomatically": false,
  "confirmedAt": "2007-12-03T10:15:30Z",
  "createdAt": "2007-12-03T10:15:30Z"
}

TimeRecordBreak

Fields
Field Name Description
id - ID!
timeRecord - TimeRecord!
start - DateTime!
end - DateTime
createdAt - DateTime
Example
{
  "id": 4,
  "timeRecord": TimeRecord,
  "start": "2007-12-03T10:15:30Z",
  "end": "2007-12-03T10:15:30Z",
  "createdAt": "2007-12-03T10:15:30Z"
}

TimeRecordConnection

Fields
Field Name Description
edges - [TimeRecordEdge]
pageInfo - PageInfo!
totalCount - Int!
Example
{
  "edges": [TimeRecordEdge],
  "pageInfo": PageInfo,
  "totalCount": 123
}

TimeRecordEdge

Fields
Field Name Description
cursor - String!
node - TimeRecord!
Example
{
  "cursor": "xyz789",
  "node": TimeRecord
}

TimeRecordOrder

Fields
Input Field Description
field - TimeRecordOrderField!
direction - OrderDirection!
Example
{"field": "CREATED_AT", "direction": "ASC"}

TimeRecordOrderField

Values
Enum Value Description

CREATED_AT

DATE

START

Example
"CREATED_AT"

URL

Description

Absolute URL string.

Example
"http://www.test.com/"

UnmarkOperationExecutorAsNoShowInput

Fields
Input Field Description
operationExecutorId - ID!
Example
{"operationExecutorId": "4"}

UnmarkOperationExecutorAsNoShowPayload

Fields
Field Name Description
operationExecutor - OperationExecutor
Example
{"operationExecutor": OperationExecutor}

UpdateAbsenceInput

Fields
Input Field Description
absenceId - ID!
type - AbsenceType!
start - DateTime!
end - DateTime!
note - String
startDayFraction - Float
endDayFraction - Float
Example
{
  "absenceId": "4",
  "type": "VACATION",
  "start": "2007-12-03T10:15:30Z",
  "end": "2007-12-03T10:15:30Z",
  "note": "abc123",
  "startDayFraction": 123.45,
  "endDayFraction": 123.45
}

UpdateAbsencePayload

Fields
Field Name Description
absence - Absence
Example
{"absence": Absence}

UpdateCreditNoteDeliveryDateInput

Fields
Input Field Description
date - Date
start - Date
end - Date
Example
{
  "date": "2007-12-03",
  "start": "2007-12-03",
  "end": "2007-12-03"
}

UpdateCreditNoteInput

Fields
Input Field Description
creditNoteId - ID!
subcontractorId - ID!
subcontractorContactPersonId - ID
number - Int!
dueDate - Date
dueDateFormat - CreditNoteDueDateFormat
hideDueDateText - Boolean This will hide the due date text on the credit note pdf
creditNoteDate - Date!
deliveryDate - UpdateCreditNoteDeliveryDateInput!
items - [UpdateCreditNoteItemInput]
introductionText - String If the value is not set, it will not be updated.
closingText - String If the value is not set, it will not be updated.
Example
{
  "creditNoteId": 4,
  "subcontractorId": "4",
  "subcontractorContactPersonId": 4,
  "number": 123,
  "dueDate": "2007-12-03",
  "dueDateFormat": "DAYS",
  "hideDueDateText": true,
  "creditNoteDate": "2007-12-03",
  "deliveryDate": UpdateCreditNoteDeliveryDateInput,
  "items": [UpdateCreditNoteItemInput],
  "introductionText": "abc123",
  "closingText": "xyz789"
}

UpdateCreditNoteItemInput

Fields
Input Field Description
creditNoteItemId - ID
title - String!
description - String
quantity - Float!
unitPrice - Int! Net unit price in cents.
taxRate - Float! VAT rate in percent (19 = 19 %).
unit - String
serviceId - ID
materialId - ID
Example
{
  "creditNoteItemId": "4",
  "title": "xyz789",
  "description": "abc123",
  "quantity": 123.45,
  "unitPrice": 987,
  "taxRate": 123.45,
  "unit": "abc123",
  "serviceId": 4,
  "materialId": "4"
}

UpdateCreditNotePayload

Fields
Field Name Description
creditNote - CreditNote
Example
{"creditNote": CreditNote}

UpdateCustomerContactPersonInput

Fields
Input Field Description
customerContactPersonId - ID!
isDefault - Boolean
salutation - String!
firstName - String
lastName - String!
role - String
email - String
phone - String
Example
{
  "customerContactPersonId": 4,
  "isDefault": true,
  "salutation": "xyz789",
  "firstName": "abc123",
  "lastName": "abc123",
  "role": "abc123",
  "email": "abc123",
  "phone": "xyz789"
}

UpdateCustomerContactPersonPayload

Fields
Field Name Description
customerContactPerson - CustomerContactPerson
Example
{"customerContactPerson": CustomerContactPerson}

UpdateCustomerEmailInput

Fields
Input Field Description
id - ID
type - CustomerEmailType!
email - String!
Example
{
  "id": 4,
  "type": "GENERAL",
  "email": "xyz789"
}

UpdateCustomerInput

Fields
Input Field Description
customerId - ID!
type - CustomerType!
salutation - String
firstName - String
lastName - String
companyName - String
addressSupplement - String
streetAddress - String
zip - String
city - String
country - CountryCode
emails - [UpdateCustomerEmailInput!]
phone - String
fax - String
website - String
vatId - String VAT ID (USt-IdNr.).
Example
{
  "customerId": "4",
  "type": "PERSON",
  "salutation": "abc123",
  "firstName": "xyz789",
  "lastName": "xyz789",
  "companyName": "abc123",
  "addressSupplement": "xyz789",
  "streetAddress": "abc123",
  "zip": "xyz789",
  "city": "abc123",
  "country": "US",
  "emails": [UpdateCustomerEmailInput],
  "phone": "abc123",
  "fax": "xyz789",
  "website": "xyz789",
  "vatId": "abc123"
}

UpdateCustomerPayload

Fields
Field Name Description
customer - Customer
Example
{"customer": Customer}

UpdateEmployeeInput

Fields
Input Field Description
employeeId - ID!
salutation - String!
firstName - String
lastName - String!
addressSupplement - String
streetAddress - String
zip - String
city - String
country - CountryCode
state - StateCode
email - String
phone - String
birthDate - Date
personnelNumberPrefix - String
personnelNumber - Int!
hasDrivingLicenceClassB - Boolean
automaticTimeRecording - Boolean Sets the employee's automaticTimeRecording flag, stored separately from Employee.locationBasedTimeRecording (not writable through this API).
tags - [String!]
Example
{
  "employeeId": "4",
  "salutation": "xyz789",
  "firstName": "xyz789",
  "lastName": "xyz789",
  "addressSupplement": "abc123",
  "streetAddress": "xyz789",
  "zip": "xyz789",
  "city": "xyz789",
  "country": "US",
  "state": StateCode,
  "email": "xyz789",
  "phone": "abc123",
  "birthDate": "2007-12-03",
  "personnelNumberPrefix": "abc123",
  "personnelNumber": 987,
  "hasDrivingLicenceClassB": true,
  "automaticTimeRecording": true,
  "tags": ["xyz789"]
}

UpdateEmployeePayload

Fields
Field Name Description
employee - Employee
Example
{"employee": Employee}

UpdateEmployeeProfilePictureInput

Fields
Input Field Description
employeeId - ID!
fileName - String! Name of the file with extension
mimeType - String! MIME type of the file
Example
{
  "employeeId": 4,
  "fileName": "abc123",
  "mimeType": "abc123"
}

UpdateEmployeeProfilePicturePayload

Fields
Field Name Description
uploadUrl - URL Presigned S3 URL, valid for 1 hour. Upload the image with an HTTP PUT of the raw bytes and a Content-Type header equal to the mimeType from the input.
employeeProfilePicture - EmployeeProfilePicture
Example
{
  "uploadUrl": "http://www.test.com/",
  "employeeProfilePicture": EmployeeProfilePicture
}

UpdateEmployeeWorkingTimeModelInput

Fields
Input Field Description
employeeWorkingTimeModelId - ID!
startDate - Date!
endDate - Date
mondayHours - Float
tuesdayHours - Float
wednesdayHours - Float
thursdayHours - Float
fridayHours - Float
saturdayHours - Float
sundayHours - Float
grossHourlyWage - Int Gross hourly wage in cents.
paidInterimCalculation - WorkingTimeModelPaidInterimCalculation!
isFirstJourneyPaid - Boolean!
salaryCalculation - WorkingTimeModelSalaryCalculation
absenceDurationCalculation - WorkingTimeModelAbsenceDurationCalculation!
timeAccountEnabled - Boolean! Enables the employee's time account: the daily target-vs-actual time difference is booked to the balance.
updateAbsences - Boolean Must be true if there are approved absences in the affected period that should be adjusted.
Example
{
  "employeeWorkingTimeModelId": 4,
  "startDate": "2007-12-03",
  "endDate": "2007-12-03",
  "mondayHours": 987.65,
  "tuesdayHours": 123.45,
  "wednesdayHours": 987.65,
  "thursdayHours": 987.65,
  "fridayHours": 987.65,
  "saturdayHours": 123.45,
  "sundayHours": 987.65,
  "grossHourlyWage": 123,
  "paidInterimCalculation": "FULL_INTERIM",
  "isFirstJourneyPaid": true,
  "salaryCalculation": "ACTUAL_HOURS",
  "absenceDurationCalculation": "PLAN_HOURS",
  "timeAccountEnabled": false,
  "updateAbsences": true
}

UpdateEmployeeWorkingTimeModelPayload

Fields
Field Name Description
employeeWorkingTimeModel - EmployeeWorkingTimeModel
Example
{"employeeWorkingTimeModel": EmployeeWorkingTimeModel}

UpdateEstimateInput

Fields
Input Field Description
estimateId - ID!
customerId - ID!
number - Int!
estimateDate - Date!
validityDate - Date!
items - [UpdateEstimateItemInput]
introductionText - String If the value is not set, it will not be updated.
closingText - String If the value is not set, it will not be updated.
Example
{
  "estimateId": 4,
  "customerId": 4,
  "number": 123,
  "estimateDate": "2007-12-03",
  "validityDate": "2007-12-03",
  "items": [UpdateEstimateItemInput],
  "introductionText": "xyz789",
  "closingText": "xyz789"
}

UpdateEstimateItemInput

Fields
Input Field Description
estimateItemId - ID
position - Int Position of this item within the estimate. Defaults to the item's index if omitted.
title - String!
description - String
quantity - Float!
unitPrice - Int! Net unit price in cents.
taxRate - Float! VAT rate in percent (19 = 19 %).
unit - String
serviceId - ID The service this item is based on.
materialId - ID
objectId - ID The object (Objekt / service location) this item is assigned to. Its customer must match the estimate's customer.
Example
{
  "estimateItemId": "4",
  "position": 987,
  "title": "abc123",
  "description": "abc123",
  "quantity": 987.65,
  "unitPrice": 123,
  "taxRate": 987.65,
  "unit": "abc123",
  "serviceId": 4,
  "materialId": "4",
  "objectId": 4
}

UpdateEstimatePayload

Fields
Field Name Description
estimate - Estimate
Example
{"estimate": Estimate}

UpdateEstimateWebEnabledInput

Fields
Input Field Description
estimateId - ID! The id of the estimate on which to update the web enabled option.
webEnabled - Boolean! Enables the web view for the estimate.
Example
{"estimateId": 4, "webEnabled": false}

UpdateEstimateWebEnabledPayload

Fields
Field Name Description
estimate - Estimate The estimate for which web enabled was updated.
Example
{"estimate": Estimate}

UpdateExecutionAndAddEmployeeToOperationInput

Fields
Input Field Description
operationId - ID!
executionDate - Date!
executionStartTime - Time
executionEndTime - Time
executionAcrossMidnight - Boolean
employeeId - ID! Id of the employee to add
Example
{
  "operationId": 4,
  "executionDate": "2007-12-03",
  "executionStartTime": "10:15:30Z",
  "executionEndTime": "10:15:30Z",
  "executionAcrossMidnight": true,
  "employeeId": "4"
}

UpdateExecutionAndAddEmployeeToOperationPayload

Fields
Field Name Description
operationExecutor - OperationExecutor
Example
{"operationExecutor": OperationExecutor}

UpdateExecutionAndReplaceEmployeeOnOperationInput

Fields
Input Field Description
operationId - ID!
executionDate - Date!
executionStartTime - Time
executionEndTime - Time
executionAcrossMidnight - Boolean
oldEmployeeId - ID! Id of the employee to be replaced
newEmployeeId - ID! Id of the employee who replaces the old employee
Example
{
  "operationId": "4",
  "executionDate": "2007-12-03",
  "executionStartTime": "10:15:30Z",
  "executionEndTime": "10:15:30Z",
  "executionAcrossMidnight": false,
  "oldEmployeeId": 4,
  "newEmployeeId": "4"
}

UpdateExecutionAndReplaceEmployeeOnOperationPayload

Fields
Field Name Description
operationExecutor - OperationExecutor
Example
{"operationExecutor": OperationExecutor}

UpdateInvoiceDeliveryDateInput

Fields
Input Field Description
date - Date
start - Date
end - Date
Example
{
  "date": "2007-12-03",
  "start": "2007-12-03",
  "end": "2007-12-03"
}

UpdateInvoiceInput

Fields
Input Field Description
invoiceId - ID!
customerId - ID!
number - Int!
dueDate - Date
dueDateFormat - InvoiceDueDateFormat
hideDueDateText - Boolean This will hide the due date text on the invoice pdf
invoiceDate - Date!
deliveryDate - UpdateInvoiceDeliveryDateInput!
items - [UpdateInvoiceItemInput]
introductionText - String If the value is not set, it will not be updated.
closingText - String If the value is not set, it will not be updated.
Example
{
  "invoiceId": 4,
  "customerId": "4",
  "number": 987,
  "dueDate": "2007-12-03",
  "dueDateFormat": "DAYS",
  "hideDueDateText": false,
  "invoiceDate": "2007-12-03",
  "deliveryDate": UpdateInvoiceDeliveryDateInput,
  "items": [UpdateInvoiceItemInput],
  "introductionText": "xyz789",
  "closingText": "abc123"
}

UpdateInvoiceItemInput

Fields
Input Field Description
invoiceItemId - ID
title - String!
description - String
quantity - Float!
unitPrice - Int! Net unit price in cents.
taxRate - Float! VAT rate in percent (19 = 19 %).
unit - String
serviceId - ID The service this item is based on.
materialId - ID
Example
{
  "invoiceItemId": 4,
  "title": "xyz789",
  "description": "xyz789",
  "quantity": 987.65,
  "unitPrice": 123,
  "taxRate": 123.45,
  "unit": "xyz789",
  "serviceId": "4",
  "materialId": 4
}

UpdateInvoicePayload

Fields
Field Name Description
invoice - Invoice
Example
{"invoice": Invoice}

UpdateMaterialGroupInput

Fields
Input Field Description
materialGroupId - ID!
name - String!
Example
{
  "materialGroupId": "4",
  "name": "xyz789"
}

UpdateMaterialGroupPayload

Fields
Field Name Description
materialGroup - MaterialGroup
Example
{"materialGroup": MaterialGroup}

UpdateMaterialInput

Fields
Input Field Description
materialId - ID!
materialGroupId - ID Only provided fields are changed. Pass null to clear an optional field.
number - Int
name - String
description - String
manufacturer - String
consumptionUnit - String Base unit consumption is recorded in (e.g. l, piece).
salesUnitPrice - Int Net sales price per salesUnit in cents.
salesTaxRate - Float VAT rate in percent (19 = 19 %).
salesUnit - String Unit the material is sold in (e.g. canister).
quantityPerSalesUnit - Float Quantity contained in one salesUnit.
stockUnit - String Unit the material is stocked in.
quantityPerStockUnit - Float Quantity contained in one stockUnit.
stockEanNumber - String EAN/barcode of the stock unit.
revenueAccount - Int Revenue account number.
Example
{
  "materialId": 4,
  "materialGroupId": 4,
  "number": 987,
  "name": "abc123",
  "description": "xyz789",
  "manufacturer": "abc123",
  "consumptionUnit": "xyz789",
  "salesUnitPrice": 987,
  "salesTaxRate": 123.45,
  "salesUnit": "xyz789",
  "quantityPerSalesUnit": 987.65,
  "stockUnit": "abc123",
  "quantityPerStockUnit": 987.65,
  "stockEanNumber": "xyz789",
  "revenueAccount": 123
}

UpdateMaterialPayload

Fields
Field Name Description
material - Material
Example
{"material": Material}

UpdateObjectInput

Description

Either name, streetAddress or city has to be set

Fields
Input Field Description
objectId - ID!
customerContactPersonId - ID
name - String
addressSupplement - String
streetAddress - String
zip - String
city - String
country - CountryCode
state - StateCode
locationRadiusMeters - Int Radius around the object's location, in meters.
email - String
phone - String
extraInvoiceAddressFieldLines - String Extra lines printed in the invoice address block.
costCenter - String Cost center (Kostenstelle) of the object.
invoiceAddress - UpdateObjectInvoiceAddressInput Deviating billing address used instead of the customer's address.
invoiceSettings - UpdateObjectInvoiceSettingsInput
tags - [String!]
Example
{
  "objectId": "4",
  "customerContactPersonId": "4",
  "name": "xyz789",
  "addressSupplement": "abc123",
  "streetAddress": "abc123",
  "zip": "xyz789",
  "city": "xyz789",
  "country": "US",
  "state": StateCode,
  "locationRadiusMeters": 987,
  "email": "abc123",
  "phone": "xyz789",
  "extraInvoiceAddressFieldLines": "xyz789",
  "costCenter": "xyz789",
  "invoiceAddress": UpdateObjectInvoiceAddressInput,
  "invoiceSettings": UpdateObjectInvoiceSettingsInput,
  "tags": ["abc123"]
}

UpdateObjectInvoiceAddressInput

Fields
Input Field Description
type - ObjectInvoiceAddressType!
salutation - String Has to be set on type PERSON
firstName - String
lastName - String Has to be set on type PERSON
companyName - String Has to be set on type COMPANY
addressSupplement - String
streetAddress - String!
zip - String!
city - String!
country - CountryCode
Example
{
  "type": "PERSON",
  "salutation": "xyz789",
  "firstName": "xyz789",
  "lastName": "xyz789",
  "companyName": "abc123",
  "addressSupplement": "abc123",
  "streetAddress": "xyz789",
  "zip": "abc123",
  "city": "abc123",
  "country": "US"
}

UpdateObjectInvoiceSettingsInput

Fields
Input Field Description
eInvoiceType - EInvoiceType
dueDateType - DueDateType
hideDueDateText - Boolean This will hide the due date text on the invoice pdf
introductionText - String
closingText - String
Example
{
  "eInvoiceType": "NONE",
  "dueDateType": "IMMEDIATELY",
  "hideDueDateText": false,
  "introductionText": "xyz789",
  "closingText": "abc123"
}

UpdateObjectPayload

Fields
Field Name Description
object - Object
Example
{"object": Object}

UpdateObjectRoomInput

Fields
Input Field Description
objectRoomId - ID!
name - String!
floor - String
building - String
sizeInSquareMeters - Int
note - String
Example
{
  "objectRoomId": "4",
  "name": "abc123",
  "floor": "xyz789",
  "building": "abc123",
  "sizeInSquareMeters": 123,
  "note": "abc123"
}

UpdateObjectRoomPayload

Fields
Field Name Description
objectRoom - ObjectRoom
Example
{"objectRoom": ObjectRoom}

UpdateOperationBillingItemInput

Description

Input for updating a billing position. Every non-id field replaces the current value.

Fields
Input Field Description
operationBillingItemId - ID!
operationServiceId - ID
operationMaterialId - ID
serviceId - ID
materialId - ID
type - OperationBillingItemType!
priceType - OperationBillingItemPriceType!
title - String!
description - String
unitPrice - Int! Net unit price in cents.
quantity - Float Either quantity or quantitySource has to be set, never both.
quantitySource - OperationBillingItemQuantitySource Either quantity or quantitySource has to be set, never both.
unit - String
hasPersonHourUnit - Boolean! Must be true when quantitySource is TIME_RECORD.
taxRate - Float! VAT rate in percent.
Example
{
  "operationBillingItemId": "4",
  "operationServiceId": 4,
  "operationMaterialId": 4,
  "serviceId": "4",
  "materialId": "4",
  "type": "SERVICE",
  "priceType": "FLAT_RATE",
  "title": "xyz789",
  "description": "xyz789",
  "unitPrice": 123,
  "quantity": 987.65,
  "quantitySource": "INPUT",
  "unit": "xyz789",
  "hasPersonHourUnit": false,
  "taxRate": 987.65
}

UpdateOperationBillingItemPayload

Fields
Field Name Description
operationBillingItem - OperationBillingItem
Example
{"operationBillingItem": OperationBillingItem}

UpdateOperationReportInput

Fields
Input Field Description
operationReportId - ID!
description - String
Example
{
  "operationReportId": "4",
  "description": "abc123"
}

UpdateOperationReportPayload

Fields
Field Name Description
operationReport - OperationReport!
Example
{"operationReport": OperationReport}

UpdateOrderBillingItemInput

Fields
Input Field Description
orderBillingItemId - ID!
orderServiceId - ID
orderMaterialId - ID
serviceId - ID
materialId - ID
type - OrderBillingItemType!
priceType - OrderBillingItemPriceType!
title - String!
description - String
unitPrice - Int! Net unit price in cents.
quantity - Float
quantitySource - OrderBillingItemQuantitySource Can only be set on billingModel PER_OPERATION
unit - String
hasPersonHourUnit - Boolean!
taxRate - Float! VAT rate in percent (19 = 19 %).
startDate - Date
endDate - Date
listExecutionDates - Boolean
groupOperations - Boolean
frequency - Int Billing cycle length together with interval (e.g. frequency 3 + interval MONTH = quarterly). Only for RECURRING.
interval - OrderBillingItemInterval
billingPeriodsPerInvoice - Int How many billing periods (frequency x interval) are combined into one invoice. Only for RECURRING.
Example
{
  "orderBillingItemId": "4",
  "orderServiceId": 4,
  "orderMaterialId": 4,
  "serviceId": "4",
  "materialId": 4,
  "type": "SERVICE",
  "priceType": "FLAT_RATE",
  "title": "xyz789",
  "description": "xyz789",
  "unitPrice": 123,
  "quantity": 123.45,
  "quantitySource": "INPUT",
  "unit": "xyz789",
  "hasPersonHourUnit": true,
  "taxRate": 987.65,
  "startDate": "2007-12-03",
  "endDate": "2007-12-03",
  "listExecutionDates": true,
  "groupOperations": false,
  "frequency": 123,
  "interval": "WEEK",
  "billingPeriodsPerInvoice": 987
}

UpdateOrderBillingItemPayload

Fields
Field Name Description
orderBillingItem - OrderBillingItem
Example
{"orderBillingItem": OrderBillingItem}

UpdateOrderExecutorBillingItemInput

Fields
Input Field Description
orderExecutorBillingItemId - ID!
orderBillingItemId - ID
orderServiceId - ID
orderMaterialId - ID
type - OrderExecutorBillingItemType!
priceType - OrderExecutorBillingItemPriceType!
title - String!
description - String
unitPrice - Int Provide either unitPrice or pricePercentage, not both.
pricePercentage - Int Provide either unitPrice or pricePercentage, not both. Percent of the linked orderBillingItem's unitPrice (19 = 19 %); requires orderBillingItemId.
quantity - Float
quantitySource - OrderExecutorBillingItemQuantitySource Can only be set on billingModel PER_OPERATION
unit - String
hasPersonHourUnit - Boolean!
taxRate - Float! VAT rate in percent (19 = 19 %).
startDate - Date
endDate - Date
frequency - Int Billing cycle length together with interval (e.g. frequency 3 + interval MONTH = quarterly). Only for RECURRING.
interval - OrderExecutorBillingItemInterval
Example
{
  "orderExecutorBillingItemId": 4,
  "orderBillingItemId": 4,
  "orderServiceId": 4,
  "orderMaterialId": 4,
  "type": "SERVICE",
  "priceType": "FLAT_RATE",
  "title": "abc123",
  "description": "abc123",
  "unitPrice": 123,
  "pricePercentage": 123,
  "quantity": 123.45,
  "quantitySource": "INPUT",
  "unit": "xyz789",
  "hasPersonHourUnit": false,
  "taxRate": 123.45,
  "startDate": "2007-12-03",
  "endDate": "2007-12-03",
  "frequency": 123,
  "interval": "WEEK"
}

UpdateOrderExecutorBillingItemPayload

Fields
Field Name Description
orderExecutorBillingItem - OrderExecutorBillingItem
Example
{"orderExecutorBillingItem": OrderExecutorBillingItem}

UpdateOrderInput

Fields
Input Field Description
orderId - ID!
startDate - Date
endDate - Date
instructions - String
requiredExecutors - Int! Minimum number of executors required per operation
executionOnHolidays - Boolean! Should operations on holidays be executed?
effectiveDate - Date Effective date for instructions/requiredExecutors changes — only operations on or after this date are updated
Example
{
  "orderId": 4,
  "startDate": "2007-12-03",
  "endDate": "2007-12-03",
  "instructions": "abc123",
  "requiredExecutors": 123,
  "executionOnHolidays": false,
  "effectiveDate": "2007-12-03"
}

UpdateOrderPayload

Fields
Field Name Description
order - Order
Example
{"order": Order}

UpdateOrderServiceExecutionOnDemandInput

Fields
Input Field Description
orderServiceId - ID!
executionOnDemand - Boolean!
demandRrule - String Recurrence rule that drives the next demand date when executionOnDemand is true.
Example
{
  "orderServiceId": "4",
  "executionOnDemand": true,
  "demandRrule": "xyz789"
}

UpdateOrderServiceExecutionOnDemandPayload

Fields
Field Name Description
orderService - OrderService
Example
{"orderService": OrderService}

UpdateOrderServiceInput

Fields
Input Field Description
orderServiceId - ID!
effectiveDate - Date! The date from which the changes apply. Can not be before the order's start date.
serviceId - ID!
title - String!
executionOnDemand - Boolean When provided, switches on-demand execution on or off and recalculates the next demand date.
demandRrule - String Recurrence rule that drives the next demand date when executionOnDemand is true.
Example
{
  "orderServiceId": 4,
  "effectiveDate": "2007-12-03",
  "serviceId": "4",
  "title": "xyz789",
  "executionOnDemand": true,
  "demandRrule": "xyz789"
}

UpdateOrderServiceNextDemandDateInput

Fields
Input Field Description
orderServiceId - ID!
nextDemandDate - Date!
Example
{
  "orderServiceId": "4",
  "nextDemandDate": "2007-12-03"
}

UpdateOrderServiceNextDemandDatePayload

Fields
Field Name Description
orderService - OrderService
Example
{"orderService": OrderService}

UpdateOrderServicePayload

Fields
Field Name Description
orderService - OrderService
Example
{"orderService": OrderService}

UpdateOrderServiceTaskInput

Fields
Input Field Description
orderServiceTaskId - ID!
serviceAreaId - ID Optional service area to assign the task to. Must belong to the same service as the OrderService.
position - Int 1-based target position within the OrderService's task list. Other tasks are reordered accordingly.
title - String!
rrule - String Recurrence rule (RFC 5545 RRULE), e.g. "FREQ=MONTHLY;BYDAY=2WE" (weekday-based for monthly/quarterly). Pass null to clear it. A change triggers regeneration of the affected shifts' future, unbilled operations.
startDate - Date Anchor / first execution of the recurrence. Pass null to reset it to the shift start. A change triggers regeneration of the affected shifts' future, unbilled operations.
quantity - Float Quantity/area covered by the task. Pass null to clear it.
unit - String Free-form unit for quantity, e.g. "m²". Pass null to clear it.
Example
{
  "orderServiceTaskId": 4,
  "serviceAreaId": "4",
  "position": 987,
  "title": "xyz789",
  "rrule": "abc123",
  "startDate": "2007-12-03",
  "quantity": 987.65,
  "unit": "abc123"
}

UpdateOrderServiceTaskPayload

Fields
Field Name Description
orderServiceTask - OrderServiceTask
Example
{"orderServiceTask": OrderServiceTask}

UpdateOrderShiftInput

Fields
Input Field Description
orderShiftId - ID!
effectiveDate - Date! The date from which the changes apply
updateRrule - Boolean! Deletes old and creates new operations starting from effectiveDate if set
rrule - String
updateTimeOrDuration - Boolean!
timeFrom - Time
timeTo - Time
acrossMidnight - Boolean Operations end on the day after their start date.
duration - Int Planned duration per operation in seconds (alternative to timeFrom/timeTo).
updateRequiredExecutors - Boolean!
requiredExecutors - Int Minimum number of executors required per operation
updateDeviatingInstructions - Boolean!
deviatingInstructions - String
updateServiceReceipts - Boolean!
createServiceReceipt - Boolean
updateDays - Boolean When true, replaces the shift's per-weekday overrides with days (empty/omitted clears them) and regenerates future operations from effectiveDate.
days - [OrderShiftDayInput!]
updateTasks - Boolean When true, replaces the shift's task selection with tasks (empty/omitted = all tasks) and regenerates future operations from effectiveDate.
tasks - [OrderShiftTaskInput!]
Example
{
  "orderShiftId": "4",
  "effectiveDate": "2007-12-03",
  "updateRrule": true,
  "rrule": "abc123",
  "updateTimeOrDuration": false,
  "timeFrom": "10:15:30Z",
  "timeTo": "10:15:30Z",
  "acrossMidnight": false,
  "duration": 123,
  "updateRequiredExecutors": false,
  "requiredExecutors": 987,
  "updateDeviatingInstructions": false,
  "deviatingInstructions": "abc123",
  "updateServiceReceipts": true,
  "createServiceReceipt": false,
  "updateDays": true,
  "days": [OrderShiftDayInput],
  "updateTasks": false,
  "tasks": [OrderShiftTaskInput]
}

UpdateOrderShiftPayload

Fields
Field Name Description
orderShift - OrderShift
Example
{"orderShift": OrderShift}

UpdatePendingInvoiceItemInput

Fields
Input Field Description
pendingInvoiceItemId - ID!
serviceId - ID
materialId - ID
title - String!
description - String
quantity - Float
unitPrice - Int! Net unit price in cents.
taxRate - Float! VAT rate in percent (19 = 19 %).
unit - String
Example
{
  "pendingInvoiceItemId": "4",
  "serviceId": "4",
  "materialId": "4",
  "title": "xyz789",
  "description": "xyz789",
  "quantity": 987.65,
  "unitPrice": 123,
  "taxRate": 123.45,
  "unit": "abc123"
}

UpdatePendingInvoiceItemPayload

Fields
Field Name Description
pendingInvoiceItem - PendingInvoiceItem
Example
{"pendingInvoiceItem": PendingInvoiceItem}

UpdateSubcontractorContactPersonInput

Fields
Input Field Description
subcontractorContactPersonId - ID!
isDefault - Boolean
salutation - String!
firstName - String
lastName - String!
role - String
email - String
phone - String
Example
{
  "subcontractorContactPersonId": 4,
  "isDefault": false,
  "salutation": "xyz789",
  "firstName": "abc123",
  "lastName": "abc123",
  "role": "xyz789",
  "email": "abc123",
  "phone": "abc123"
}

UpdateSubcontractorContactPersonPayload

Fields
Field Name Description
subcontractorContactPerson - SubcontractorContactPerson
Example
{"subcontractorContactPerson": SubcontractorContactPerson}

UpdateSubcontractorInput

Fields
Input Field Description
subcontractorId - ID!
type - SubcontractorType
salutation - String
firstName - String
lastName - String
companyName - String
streetAddress - String
zip - String
city - String
country - CountryCode
email - String
phone - String
fax - String
website - String
taxNumber - String
vatId - String VAT ID (USt-IdNr.).
Example
{
  "subcontractorId": "4",
  "type": "PERSON",
  "salutation": "xyz789",
  "firstName": "abc123",
  "lastName": "xyz789",
  "companyName": "xyz789",
  "streetAddress": "xyz789",
  "zip": "xyz789",
  "city": "xyz789",
  "country": "US",
  "email": "abc123",
  "phone": "abc123",
  "fax": "abc123",
  "website": "abc123",
  "taxNumber": "abc123",
  "vatId": "xyz789"
}

UpdateSubcontractorPayload

Fields
Field Name Description
subcontractor - Subcontractor
Example
{"subcontractor": Subcontractor}

UpdateSupplierContactPersonInput

Fields
Input Field Description
supplierContactPersonId - ID!
isDefault - Boolean
salutation - String!
firstName - String
lastName - String!
role - String
email - String
phone - String
Example
{
  "supplierContactPersonId": 4,
  "isDefault": false,
  "salutation": "abc123",
  "firstName": "abc123",
  "lastName": "xyz789",
  "role": "xyz789",
  "email": "abc123",
  "phone": "xyz789"
}

UpdateSupplierContactPersonPayload

Fields
Field Name Description
supplierContactPerson - SupplierContactPerson
Example
{"supplierContactPerson": SupplierContactPerson}

UpdateSupplierInput

Fields
Input Field Description
supplierId - ID!
type - SupplierType!
salutation - String
firstName - String
lastName - String
companyName - String
addressSupplement - String
streetAddress - String
zip - String
city - String
country - CountryCode
email - String
phone - String
fax - String
website - String
taxNumber - String
vatId - String VAT ID (USt-IdNr.).
tags - [String!]
Example
{
  "supplierId": 4,
  "type": "PERSON",
  "salutation": "xyz789",
  "firstName": "abc123",
  "lastName": "xyz789",
  "companyName": "abc123",
  "addressSupplement": "xyz789",
  "streetAddress": "abc123",
  "zip": "xyz789",
  "city": "xyz789",
  "country": "US",
  "email": "xyz789",
  "phone": "xyz789",
  "fax": "abc123",
  "website": "xyz789",
  "taxNumber": "abc123",
  "vatId": "xyz789",
  "tags": ["xyz789"]
}

UpdateSupplierPayload

Fields
Field Name Description
supplier - Supplier
Example
{"supplier": Supplier}

UpdateTicketInput

Fields
Input Field Description
ticketId - ID!
objectRoomId - ID
orderId - ID
sourceOperationId - ID
type - TicketType
isPublic - Boolean
inputChannel - TicketInputChannel
location - String
description - String!
priority - TicketPriority!
discoverDate - Date
dueDate - Date
Example
{
  "ticketId": 4,
  "objectRoomId": "4",
  "orderId": "4",
  "sourceOperationId": 4,
  "type": "COMPLAINT",
  "isPublic": true,
  "inputChannel": "PORTAL",
  "location": "xyz789",
  "description": "abc123",
  "priority": "LOW",
  "discoverDate": "2007-12-03",
  "dueDate": "2007-12-03"
}

UpdateTicketPayload

Fields
Field Name Description
ticket - Ticket
Example
{"ticket": Ticket}

UpdateTimeRecordBreakInput

Fields
Input Field Description
timeRecordBreakId - ID!
start - DateTime!
end - DateTime!
Example
{
  "timeRecordBreakId": "4",
  "start": "2007-12-03T10:15:30Z",
  "end": "2007-12-03T10:15:30Z"
}

UpdateTimeRecordBreakPayload

Fields
Field Name Description
timeRecordBreak - TimeRecordBreak
Example
{"timeRecordBreak": TimeRecordBreak}

UpdateTimeRecordInput

Fields
Input Field Description
timeRecordId - ID!
start - DateTime! Start of time record in UTC
end - DateTime! End of time record in UTC
journeyStart - DateTime Start of journey in UTC (must be before start)
breakDuration - Int Total break duration in seconds; applied only when hasTotalBreakInput is true
hasTotalBreakInput - Boolean true: use breakDuration as the manual total and remove individual breaks; false: recompute breakDuration from individual breaks
Example
{
  "timeRecordId": "4",
  "start": "2007-12-03T10:15:30Z",
  "end": "2007-12-03T10:15:30Z",
  "journeyStart": "2007-12-03T10:15:30Z",
  "breakDuration": 987,
  "hasTotalBreakInput": true
}

UpdateTimeRecordPayload

Fields
Field Name Description
timeRecord - TimeRecord
Example
{"timeRecord": TimeRecord}

WorkingTimeModelAbsenceDurationCalculation

Description

How the credited duration of an absence day is calculated.

Values
Enum Value Description

PLAN_HOURS

From the planned operation hours of that day.

TARGET_HOURS

From the model's target hours for that day.
Example
"PLAN_HOURS"

WorkingTimeModelPaidInterimCalculation

Description

How gaps between two consecutive time records of a day are paid.

Values
Enum Value Description

FULL_INTERIM

The whole gap is paid.

INTERIM_WITH_JOURNEY

The whole gap is paid when the journey exceeds half of it, otherwise only the journey time.

JOURNEY

Only the journey time within the gap is paid.

NONE

Gaps are unpaid.
Example
"FULL_INTERIM"

WorkingTimeModelSalaryCalculation

Values
Enum Value Description

ACTUAL_HOURS

MIN_PLAN_HOURS

MAX_PLAN_HOURS

TARGET_HOURS

Example
"ACTUAL_HOURS"