das-programm.io – GraphQL API Dokumentation

Diese Dokumentation beschreibt alle verfügbaren Queries, Mutations und Typen der das-programm.io GraphQL API.

Angebote von der KI erstellen lassen 

Rechnungen erstellen und versenden

Rechnungen erstellen und versenden

Termine & Ressourcen einsehen und verschieben

Nachkalkulation, komplexe Auswertungen & Prognosen

Top bewertet und bekannt aus führenden Branchenmedien

Queries – Einzelobjekte

Diese Queries geben ein einzelnes Objekt anhand seiner ID zurück.

acceptanceProtocol

Gibt ein einzelnes Abnahmeprotokoll zurück.

query {
  acceptanceProtocol(id: ID) {
    id
    referenceNumber
    name
    type                    # AcceptanceProtocolTypeEnum
    date                    # SiestaDateTime
    location
    finalized               # Boolean
    participantCustomer
    participantContractor
    includeTime             # Boolean
    startOfActivity         # SiestaDateTime
    endOfActivity           # SiestaDateTime
    customerComment
    contractorComment
    approval                # AcceptanceProtocolApprovalEnum
    hasFault                # Boolean
    fault
    faultDueDate            # SiestaDateTime
    hasMissingService       # Boolean
    missingService
    missingServiceDueDate   # SiestaDateTime
    signatureCustomer
    signatureContractor
    customerId
    salesOrderId
    projectId
    createdOn
    updatedOn
    # Relationen
    customer { id name }
    salesOrder { id name }
    project { id name }
    objectAddress { id street city }
    fileList { id fileName }
  }
}

appointment

Gibt einen einzelnen Termin zurück.

query {
  appointment(id: ID) {
    id
    referenceNumber
    name
    description
    type
    status                  # AppointmentStatusEnum
    startTime               # SiestaDateTime
    endTime                 # SiestaDateTime
    recurring               # AppointmentRecurringEnum
    recurringEndDate        # SiestaDateTime
    hasAppointmentAddress   # Boolean
    street
    houseNumber
    zip
    city
    countryCode
    latitude
    longitude
    customerId
    projectId
    salesOrderId
    projectTaskId
    createdOn
    updatedOn
    # Relationen
    customer { id firstName lastName }
    project { id name }
    salesOrder { id name }
    projectTask { id name }
  }
}

constructionDiary

Gibt ein einzelnes Bautagebuch zurück.

query {
  constructionDiary(id: ID) {
    id
    referenceNumber
    name
    status
    workDate              # SiestaDateTime
    date                  # SiestaDateTime
    temperature
    weather
    fault
    description
    finalizedOn           # SiestaDateTime
    location
    customerId
    projectId
    salesOrderId
    createdOn
    updatedOn
    # Relationen
    customer { id firstName lastName }
    project { id name }
    salesOrder { id name }
    itemList { id name quantity }
    timeTrackingList { id date minutes }
    fileList { id fileName }
  }
}

customer

Gibt einen einzelnen Kunden zurück.

query {
  customer(id: ID) {
    id
    referenceNumber
    legacyId
    type                  # CustomerTypeEnum
    gender                # CustomerGenderEnum
    title
    firstName
    lastName
    companyName
    email
    phone
    mobile
    fax
    vatId
    reverseCharge         # Boolean
    termOfCredit          # Int (Tage)
    cashDiscount          # Boolean
    cashDiscountDays      # Int
    cashDiscountPercentage # Float
    dob                   # SiestaDateTime
    createdOn
    updatedOn
    # Relationen
    addressList { id street city }
    contactPersonList { id firstName lastName }
    invoiceList { id referenceNumber status }
    quotationList { id referenceNumber status }
    salesOrderList { id referenceNumber status }
    projectList { id name }
    paymentList { id amount date }
  }
}

dunningLetter

Gibt einen einzelnen Mahnbrief zurück.

query {
  dunningLetter(id: ID) {
    id
    referenceNumber
    name
    text
    dunningLevel          # DunningLetterDunningLevelEnum
    date                  # SiestaDateTime
    termOfCredit          # Int
    includeCharge         # Boolean
    charge                # Int (Cent)
    includeInterest       # Boolean
    interestRate          # Float
    interest              # Int (Cent)
    customerId
    invoiceId
    projectId
    createdOn
    # Relationen
    customer { id firstName lastName companyName }
    invoice { id referenceNumber }
    project { id name }
  }
}

employee

Gibt einen einzelnen Mitarbeiter zurück.

query {
  employee(id: ID) {
    id
    referenceNumber
    firstName
    lastName
    gender
    email
    phone
    mobile
    dob                   # SiestaDateTime
    contractStart         # SiestaDateTime
    contractEnd           # SiestaDateTime
    salary                # Int (Cent)
    hourlyWage            # Int (Cent)
    holidays              # Int (Tage)
    holidayCarryover      # Float
    overTimeCarryover     # Float
    street
    zip
    city
    countryCode
    userId
    wageGroupId
    createdOn
    updatedOn
    # Relationen
    user { id firstName lastName }
    wageGroup { id name hourlyWage }
    workTimesList { id monday tuesday wednesday thursday friday }
    letterList { id name date }
    fileList { id fileName }
  }
}

incomingInvoice

Gibt eine einzelne Eingangsrechnung zurück.

query {
  incomingInvoice(id: ID) {
    id
    referenceNumber
    internalReferenceNumber
    type                      # IncomingInvoiceTypeEnum
    status
    net                       # Int (Cent)
    vat                       # Int (Cent)
    brut                      # Int (Cent)
    currency
    invoiceDate               # SiestaDateTime
    dueDate                   # SiestaDateTime
    paymentDate               # SiestaDateTime
    paymentAmount             # Int (Cent)
    paymentMethod             # IncomingInvoicePaymentMethodEnum
    termOfCredit              # Int
    cashDiscount              # Boolean
    cashDiscountDays          # Int
    cashDiscountPercentage    # Float
    datevTransferStatus       # IncomingInvoiceDatevTransferStatusEnum
    supplierId
    accountId
    createdOn
    updatedOn
    # Relationen
    supplier { id name }
    account { id code name }
    invoiceFile { id fileName }
    itemList { id name quantity price total }
    vatItemList { id vatRate net vat brut }
    paymentList { id amount date }
    costAllocationList { id amount salesOrderId }
  }
}

invoice

Gibt eine einzelne Ausgangsrechnung zurück.

query {
  invoice(id: ID) {
    id
    referenceNumber
    name
    type                      # InvoiceTypeEnum
    subType                   # InvoiceSubTypeEnum
    status
    net                       # Int (Cent)
    vat                       # Int (Cent)
    brut                      # Int (Cent)
    netAfterAllDeduction      # Int (Cent)
    brutAfterAllDeduction     # Int (Cent)
    currency
    hasDiscount               # Boolean
    discount                  # Float (Prozent)
    dunningLevel              # InvoiceDunningLevelEnum
    datevTransferStatus       # InvoiceDatevTransferStatusEnum
    termOfCredit              # Int
    cashDiscount              # Boolean
    cashDiscountDays          # Int
    cashDiscountPercentage    # Float
    reverseCharge             # Boolean
    finalizedOn               # SiestaDateTime
    startOfActivity           # SiestaDateTime
    endOfActivity             # SiestaDateTime
    customerId
    salesOrderId
    projectId
    workReportId
    createdOn
    updatedOn
    # Relationen
    customer { id firstName lastName companyName }
    salesOrder { id referenceNumber name }
    project { id name }
    workReport { id name }
    groupList { id name position }
    itemList { id name quantity price total }
    paymentList { id amount date }
    dunningLetterList { id dunningLevel date }
    deductionList { id name type amount }
    securityDepositList { id type amount percentage due }
  }
}

measurement

Gibt eine einzelne Aufmaßerfassung zurück.

query {
  measurement(id: ID) {
    id
    referenceNumber
    name
    status
    type
    comment
    customerId
    projectId
    createdOn
    updatedOn
    # Relationen
    customer { id firstName lastName }
    project { id name }
    fileList { id fileName }
  }
}

payment

Gibt eine einzelne Zahlung zurück.

query {
  payment(id: ID) {
    id
    referenceNumber
    date                  # SiestaDateTime
    amount                # Int (Cent)
    currency
    type                  # PaymentTypeEnum
    status                # PaymentStatusEnum
    customerId
    invoiceId
    supplierId
    incomingInvoiceId
    projectId
    createdOn
    # Relationen
    customer { id firstName lastName companyName }
    invoice { id referenceNumber }
    supplier { id name }
    incomingInvoice { id referenceNumber }
  }
}

product

Gibt ein einzelnes Produkt / Material / Leistung zurück.

query {
  product(id: ID) {
    id
    articleNumber
    name
    code
    description
    type                        # ProductTypeEnum
    calculationType             # ProductCalculationTypeEnum
    unit
    purchaseUnit
    offeringUnit
    listPrice                   # Int (Cent)
    netPrice                    # Int (Cent)
    retailPrice                 # Int (Cent)
    offeringPrice               # Int (Cent)
    offeringPriceType           # ProductOfferingPriceTypeEnum
    installationTime            # Float (Stunden)
    packageSize                 # Float
    usage                       # Float
    currency
    vatRateId
    supplierId
    createdOn
    updatedOn
    # Relationen
    supplier { id name }
    imageFile { id fileName path }
  }
}

project

Gibt ein einzelnes Projekt zurück.

query {
  project(id: ID) {
    id
    referenceNumber
    name
    description
    status
    startDate             # SiestaDateTime
    endDate               # SiestaDateTime
    customerId
    projectManagerId
    projectStatusId
    createdOn
    updatedOn
    # Relationen
    customer { id firstName lastName companyName }
    projectManager { id firstName lastName }
    projectStatus { id name }
    objectAddress { id street city }
    salesOrderList { id referenceNumber name }
    invoiceList { id referenceNumber status }
    quotationList { id referenceNumber status }
    appointmentList { id name startTime }
    projectTaskList { id name status dueDate }
    fileList { id fileName }
  }
}

projectTask

Gibt eine einzelne Projektaufgabe zurück.

query {
  projectTask(id: ID) {
    id
    referenceNumber
    name
    description
    status
    dueDate               # SiestaDateTime
    startTime             # SiestaDateTime
    endTime               # SiestaDateTime
    location
    personHours           # Int
    progress              # Int (Prozent 0–100)
    customerId
    projectId
    salesOrderId
    createdOn
    updatedOn
    # Relationen
    customer { id firstName lastName }
    project { id name }
    salesOrder { id name }
    fileList { id fileName }
  }
}

quotation

Gibt ein einzelnes Angebot zurück.

query {
  quotation(id: ID) {
    id
    referenceNumber
    name
    type                      # QuotationTypeEnum
    subType                   # QuotationSubTypeEnum
    status
    validUntil                # SiestaDateTime
    net                       # Int (Cent)
    vat                       # Int (Cent)
    brut                      # Int (Cent)
    currency
    hasDiscount               # Boolean
    discount                  # Float (Prozent)
    termOfCredit              # Int
    cashDiscount              # Boolean
    reverseCharge             # Boolean
    comment
    coverLetter
    customerId
    projectId
    createdOn
    updatedOn
    # Relationen
    customer { id firstName lastName companyName }
    project { id name }
    groupList { id name position type }
    itemList { id name quantity price total unit }
    fileList { id fileName }
  }
}

resource

Gibt eine einzelne Ressource (z. B. Fahrzeug, Gerät) zurück.

query {
  resource(id: ID) {
    id
    name
    description
    position
    nextMaintenanceAppointment  # SiestaDateTime
    typeId
    createdOn
    updatedOn
    # Relationen
    type { id name }
  }
}

deliverySlip

Gibt einen einzelnen Lieferschein zurück.

query {
  deliverySlip(id: ID) {
    id
    referenceNumber
    name
    status                # DeliverySlipStatusEnum
    isPickingOrder        # Boolean
    customerId
    salesOrderId
    projectId
    createdOn
    updatedOn
    # Relationen
    customer { id firstName lastName companyName }
    salesOrder { id name }
    project { id name }
    itemList { id name quantity unit picked }
  }
}

salesOrder

Gibt einen einzelnen Auftrag zurück.

query {
  salesOrder(id: ID) {
    id
    referenceNumber
    name
    status
    net                       # Int (Cent)
    vat                       # Int (Cent)
    brut                      # Int (Cent)
    currency
    hasDiscount               # Boolean
    discount                  # Float (Prozent)
    startTime                 # SiestaDateTime
    endTime                   # SiestaDateTime
    dueDate                   # SiestaDateTime
    termOfCredit              # Int
    cashDiscount              # Boolean
    reverseCharge             # Boolean
    timeTrackingActive        # Boolean
    quotationId
    customerId
    projectId
    createdOn
    updatedOn
    # Relationen
    customer { id firstName lastName companyName }
    quotation { id referenceNumber }
    project { id name }
    groupList { id name position }
    itemList { id name quantity price total }
    invoiceList { id referenceNumber status }
    constructionDiaryList { id name workDate }
    deliverySlipList { id referenceNumber status }
    projectTaskList { id name status }
    timeTrackingList { id date minutes }
    fileList { id fileName }
  }
}

supplier

Gibt einen einzelnen Lieferanten zurück.

query {
  supplier(id: ID) {
    id
    referenceNumber
    customerNumber
    name
    street
    houseNumber
    zip
    city
    countryCode
    phone
    fax
    email
    vatId
    currency
    termOfCredit              # Int
    cashDiscount              # Boolean
    paymentMethod             # SupplierPaymentMethodEnum
    idsCustomerNumber
    comment
    createdOn
    updatedOn
    # Relationen
    productList { id name articleNumber }
    incomingInvoiceList { id referenceNumber status }
    contactPersonList { id firstName lastName }
    fileList { id fileName }
  }
}

timeTracking

Gibt einen einzelnen Zeiterfassungseintrag zurück.

query {
  timeTracking(id: ID) {
    id
    date                  # SiestaDateTime
    startTime             # SiestaDateTime
    endTime               # SiestaDateTime
    break                 # Int (Minuten)
    minutes               # Int
    type                  # TimeTrackingTypeEnum
    subType
    status                # TimeTrackingStatusEnum
    comment
    userId
    customerId
    projectId
    salesOrderId
    constructionDiaryId
    createdOn
    updatedOn
    # Relationen
    user { id firstName lastName }
    customer { id firstName lastName }
    project { id name }
    salesOrder { id name }
  }
}

workReport

Gibt einen einzelnen Regiebericht zurück.

query {
  workReport(id: ID) {
    id
    referenceNumber
    name
    status
    date                  # SiestaDateTime
    startTime             # SiestaDateTime
    endTime               # SiestaDateTime
    finalizedOn           # SiestaDateTime
    net                   # Int (Cent)
    vat                   # Int (Cent)
    brut                  # Int (Cent)
    currency
    showPrices            # Boolean
    travelTime            # Int (Minuten)
    description
    fault
    customerId
    projectId
    createdOn
    updatedOn
    # Relationen
    customer { id firstName lastName companyName }
    project { id name }
    itemList { id name quantity price total unit }
    fileList { id fileName }
  }
}

Queries – Listen und Suche

Alle Search-Queries akzeptieren ein QueryRequest-Eingabeobjekt und geben eine Liste von vereinfachten
Suchergebnis-Objekten zurück. Diese sind für Listen- und Suchansichten optimiert und enthalten nur die wichtigsten Felder.

input QueryRequest {
  filter: [FilterValue]   # Filterkriterien
  sort: [SortOrder]       # Sortierreihenfolge
  limit: Int              # Maximale Anzahl Ergebnisse
  offset: Int             # Offset für Paginierung
  status: StatusEnum      # Aktive oder gelöschte Einträge
}

acceptanceProtocolSearch

Suche nach Abnahmeprotokollen.

query {
  acceptanceProtocolSearch(request: QueryRequest) {
    id
    referenceNumber
    name
    type
    status
    firstName
    lastName
    companyName
    createdOn
  }
}

appointmentSearch

Suche nach Terminen.

query {
  appointmentSearch(request: QueryRequest) {
    id
    referenceNumber
    name
    type
    status
    startTime
    endTime
    firstName
    lastName
    companyName
    createdOn
    updatedOn
  }
}

constructionDiarySearch

Suche nach Bautagebüchern.

query {
  constructionDiarySearch(request: QueryRequest) {
    id
    referenceNumber
    name
    status
    workDate
    firstName
    lastName
    companyName
    projectName
    projectReferenceNumber
    salesOrderName
  }
}

contractSearch

Suche nach Wartungsverträgen.

query {
  contractSearch(request: QueryRequest) {
    id
    referenceNumber
    name
    status
    startDate
    terminationDate
    firstName
    lastName
    companyName
  }
}

customerSearch

Suche nach Kunden.

query {
  customerSearch(request: QueryRequest) {
    id
    referenceNumber
    type
    firstName
    lastName
    companyName
    email
    phone
    mobile
    street
    zip
    city
    createdOn
  }
}

dunningLetterSearch

Suche nach Mahnbriefen.

query {
  dunningLetterSearch(request: QueryRequest) {
    id
    referenceNumber
    name
    dunningLevel
    customerId
    invoiceId
    firstName
    lastName
    companyName
    projectName
    projectReferenceNumber
  }
}

employeeSearch

Suche nach Mitarbeitern.

query {
  employeeSearch(request: QueryRequest) {
    id
    referenceNumber
    firstName
    lastName
    email
    street
    zip
    city
    license
    deletedOn   # Boolean – true wenn archiviert
  }
}

incomingInvoiceSearch

Suche nach Eingangsrechnungen.

query {
  incomingInvoiceSearch(request: QueryRequest) {
    id
    referenceNumber
    internalReferenceNumber
    type
    status
    paymentMethod
    net
    brut
    paymentAmount
    invoiceDate
    dueDate
    paymentDate
    cashDiscountDate
    securityDeposit
    securityDepositDue
    createdOn
  }
}

invoiceSearch

Suche nach Ausgangsrechnungen.

query {
  invoiceSearch(request: QueryRequest) {
    id
    referenceNumber
    name
    type
    status
    netAfterAllDeduction
    brutAfterAllDeduction
    finalizedOn
    dueDate
    firstName
    lastName
    companyName
    customerId
    projectName
    projectReferenceNumber
    createdOn
  }
}

invoiceSecurityDepositSearch

Suche nach Sicherheitseinbehalten auf Rechnungen.

query {
  invoiceSecurityDepositSearch(request: QueryRequest) {
    id
    referenceNumber
    name
    status
    netAfterAllDeduction
    brutAfterAllDeduction
    finalizedOn
    due
    percentage
  }
}

paymentSearch

Suche nach Zahlungen (Ein- und Ausgänge).

query {
  paymentSearch(request: QueryRequest) {
    id
    referenceNumber
    date
    amount
    type
    status
    firstName
    lastName
    companyName
    customerId
    supplierId
    createdOn
  }
}

materialSearch

Suche nach Materialien (Produkte vom Typ Material).

query {
  materialSearch(request: QueryRequest) {
    id
    name
    code
    type
    supplierId
    offeringPrice
    createdOn
  }
}

serviceSearch

Suche nach Leistungen (Produkte vom Typ Leistung).

query {
  serviceSearch(request: QueryRequest) {
    id
    name
    code
    type
    supplierId
    offeringPrice
    createdOn
  }
}

projectSearch

Suche nach Projekten.

query {
  projectSearch(request: QueryRequest) {
    id
    referenceNumber
    name
    status
    projectStatusId
    projectManagerId
    firstName
    lastName
    companyName
    street
    zip
    city
    updatedOn
  }
}

projectStatusSearch

Gibt alle konfigurierten Projektstatus zurück.

query {
  projectStatusSearch(request: QueryRequest) {
    id
    name
    description
    position
  }
}

projectTaskSearch

Suche nach Projektaufgaben.

query {
  projectTaskSearch(request: QueryRequest) {
    id
    referenceNumber
    name
    status
    dueDate
    firstName
    lastName
    companyName
    projectName
    projectReferenceNumber
  }
}

quotationSearch

Suche nach Angeboten.

query {
  quotationSearch(request: QueryRequest) {
    id
    referenceNumber
    name
    type
    status
    net
    validUntil
    firstName
    lastName
    companyName
    createdOn
    updatedOn
  }
}

resourceSearch

Suche nach Ressourcen.

query {
  resourceSearch(request: QueryRequest) {
    id
    name
    typeId
    nextMaintenanceAppointment
    createdOn
  }
}

salesOrderSearch

Suche nach Aufträgen.

query {
  salesOrderSearch(request: QueryRequest) {
    id
    referenceNumber
    name
    status
    net
    brut
    startTime
    endTime
    dueDate
    firstName
    lastName
    companyName
    projectName
    projectReferenceNumber
    createdOn
    updatedOn
  }
}

supplierSearch

Suche nach Lieferanten.

query {
  supplierSearch(request: QueryRequest) {
    id
    referenceNumber
    name
    street
    zip
    city
    comment
  }
}

timeTrackingSearch

Suche nach Zeiterfassungseinträgen.

query {
  timeTrackingSearch(request: QueryRequest) {
    id
    date
    startTime
    minutes
    type
    subType
    status
    comment
    userId
    firstName
    lastName
    name           # Auftragsname
    referenceNumber
    projectName
    projectReferenceNumber
  }
}

timeTrackingHolidayRequest

Gibt Urlaubsanträge zurück.

query {
  timeTrackingHolidayRequest(request: QueryRequest) {
    id
    startDate
    endDate
    status
    comment
    userId
  }
}

warehouseSearch

Suche nach Lagern.

query {
  warehouseSearch(request: QueryRequest) {
    id
    name
    createdOn
  }
}

warehouseStockSearch

Suche nach Lagerbeständen.

query {
  warehouseStockSearch(request: QueryRequest) {
    id
    quantity
    price
    serialNumber
    warehouseId
    warehouseLocationId
    productId
    productName
  }
}

warehouseTransferSearch

Suche nach Lagerbewegungen (Transfers).

query {
  warehouseTransferSearch(request: QueryRequest) {
    id
    type
    quantity
    price
    serialNumber
    productName
    sourceWarehouseId
    sourceWarehouseLocationId
    sourceSalesOrderName
    sourceSalesOrderNumber
    targetWarehouseId
    targetWarehouseLocationId
    targetSalesOrderName
    targetSalesOrderNumber
    createdOn
  }
}

workReportSearch

Suche nach Regieberichten.

query {
  workReportSearch(request: QueryRequest) {
    id
    referenceNumber
    name
    status
    type
    firstName
    lastName
    companyName
    customerId
    projectId
    createdOn
  }
}

vatRateIdList

Gibt die Liste der verfügbaren Mehrwertsteuersatz-IDs zurück.

query {
  vatRateIdList
}

Mutations


Mutations ermöglichen das Erstellen und Aktualisieren von Datensätzen. Alle Mutations akzeptieren ein typisiertes
Input-Objekt. Preisangaben erfolgen durchgehend in Cent als Int.

createCustomer / updateCustomer

Erstellt oder aktualisiert einen Kunden.

mutation {
  createCustomer(input: CustomerInputObjectType) {
    id
    referenceNumber
    firstName
    lastName
    companyName
    email
    phone
    type
  }
}

# Verfügbare Felder im Input:
# type (CustomerTypeEnum), gender (CustomerGenderEnum), title,
# firstName, lastName, companyName, email, phone, mobile, fax,
# vatId, reverseCharge, termOfCredit, cashDiscount,
# cashDiscountDays, cashDiscountPercentage, comment,
# bankAccountNumber, bankCode, bankName, bankAccountOwner, locale

createCustomerAddress / updateCustomerAddress

Erstellt oder aktualisiert eine Kundenadresse.

mutation {
  createCustomerAddress(input: CustomerAddressInputObjectType) {
    id
    customerId
    type
    street
    houseNumber
    zip
    city
    countryCode
  }
}

# Verfügbare Felder im Input:
# customerId (Pflichtfeld), type (CustomerAddressTypeEnum),
# firstName, lastName, recipient, street, houseNumber,
# streetAddressExtension, zip, city, state, countryCode,
# latitude, longitude, googlePlaceId, phone, email

createCustomerContactPerson / updateCustomerContactPerson

Erstellt oder aktualisiert einen Ansprechpartner eines Kunden.

mutation {
  createCustomerContactPerson(input: CustomerContactPersonInputObjectType) {
    id
    customerId
    firstName
    lastName
    email
    phone
  }
}

# Verfügbare Felder im Input:
# customerId (Pflichtfeld), salutation (CustomerContactPersonSalutationEnum),
# title, firstName, lastName, role, email, phone, mobile, fax,
# privatePhone, dob, comment, letterSalutation

createProduct / updateProduct

Erstellt oder aktualisiert ein Produkt (Material oder Leistung).

mutation {
  createProduct(input: ProductInputObjectType) {
    id
    articleNumber
    name
    type
    unit
    offeringPrice
    currency
    vatRateId
  }
}

# Verfügbare Felder im Input:
# articleNumber (Pflichtfeld), name, code, description, comment,
# type (ProductTypeEnum), calculationType (ProductCalculationTypeEnum),
# unit, purchaseUnit, offeringUnit, packageSize, usage,
# listPrice, netPrice, retailPrice, offeringPrice, offeringPriceType,
# installationTime, currency (Pflichtfeld), vatRateId (Pflichtfeld),
# supplierId

createProject / updateProject

Erstellt oder aktualisiert ein Projekt.

mutation {
  createProject(input: ProjectInputObjectType) {
    id
    referenceNumber
    name
    status
    customerId
  }
}

# Verfügbare Felder im Input:
# name, description, status, startDate, endDate,
# customerId, customerAddressId, customerContactPersonId,
# projectManagerId, projectStatusId, objectAddressId

addProjectFile

Hängt eine Datei an ein Projekt an.

mutation {
  addProjectFile(input: GraphQLFileUploadObjectType) {
    id
    fileName
    path
    contentType
  }
}

# Pflichtfelder im Input: projectId, fileName, contentType, base64Data

createQuotation / updateQuotation

Erstellt oder aktualisiert ein Angebot.

mutation {
  createQuotation(input: QuotationInputObjectType) {
    id
    referenceNumber
    name
    status
    net
    brut
    currency
  }
}

# Verfügbare Felder im Input:
# name, type (QuotationTypeEnum), subType (QuotationSubTypeEnum),
# status, validUntil, comment, coverLetter, internalComment,
# currency, overWriteVatRateId, hasDiscount, discount,
# termOfCredit, cashDiscount, cashDiscountDays, cashDiscountPercentage,
# downPayment, downPaymentPercentage, downPaymentDays,
# reverseCharge, showRightOfWithdrawal,
# customerId, customerAddressId, customerContactPersonId,
# objectAddressId, projectId, measurementId

createQuotationGroup / updateQuotationGroup

Erstellt oder aktualisiert eine Position-Gruppe innerhalb eines Angebots.

mutation {
  createQuotationGroup(input: QuotationGroupInputObjectType) {
    id
    quotationId
    name
    position
    type
  }
}

# Verfügbare Felder im Input:
# quotationId (Pflichtfeld), name, type (QuotationGroupTypeEnum),
# position, positionText, sourceId

createQuotationItem / updateQuotationItem

Erstellt oder aktualisiert eine Angebotsposition.

mutation {
  createQuotationItem(input: QuotationItemInputObjectType) {
    id
    quotationId
    quotationGroupId
    name
    quantity
    price
    total
    unit
    vatRate
    currency
  }
}

# Verfügbare Felder im Input:
# quotationId (Pflichtfeld), quotationGroupId (Pflichtfeld),
# name, description, type (QuotationItemTypeEnum),
# quantity, price, unit, vatRateId, currency,
# discount, minutesOfLabor, materialUnitCost,
# position, positionText, productId,
# overWriteProfitMarginLabor, overWriteProfitMarginMaterial

createTimeTracking / updateTimeTracking

Erstellt oder aktualisiert einen Zeiterfassungseintrag.

mutation {
  createTimeTracking(input: TimeTrackingInputObjectType) {
    id
    date
    startTime
    endTime
    minutes
    type
    status
    userId
  }
}

# Verfügbare Felder im Input:
# userId (Pflichtfeld), date (Pflichtfeld),
# startTime, endTime, break, minutes,
# type (TimeTrackingTypeEnum), subType, status (TimeTrackingStatusEnum),
# comment, customerId, projectId, salesOrderId,
# salesOrderItemId, constructionDiaryId

createWorkReport / updateWorkReport

Erstellt oder aktualisiert einen Regiebericht.

mutation {
  createWorkReport(input: WorkReportInputObjectType) {
    id
    referenceNumber
    name
    status
    currency
  }
}

# Verfügbare Felder im Input:
# name (Pflichtfeld), status (Pflichtfeld), currency (Pflichtfeld),
# startTime, endTime, date, travelTime, showPrices,
# description, fault, location,
# shipToParty, shipToPartyPhone, hasDifferingAddress,
# street, houseNumber, zip, city, countryCode,
# customerId, customerAddressId, customerContactPersonId,
# objectAddressId, projectId

createWorkReportItem / updateWorkReportItem

Erstellt oder aktualisiert eine Position in einem Regiebericht.

mutation {
  createWorkReportItem(input: WorkReportItemInputObjectType) {
    id
    workReportId
    name
    quantity
    price
    total
    unit
    currency
    vatRateId
  }
}

# Verfügbare Felder im Input:
# workReportId (Pflichtfeld), name (Pflichtfeld),
# quantity (Pflichtfeld), price (Pflichtfeld),
# currency (Pflichtfeld), vatRateId (Pflichtfeld),
# description, unit, vatRate,
# minutesOfLabor, materialUnitCost, position, productId

finalizeWorkReport

Schließt einen Regiebericht ab (Finalisierung, generiert PDF).

mutation {
  finalizeWorkReport(input: FinalizeWorkReportInputType) {
    id
    status
    finalizedOn
  }
}

# Pflichtfeld im Input: id (ID des Regieberichts)

Typen

Alle Haupttypen der API im Überblick. Monetäre Werte werden immer als Int in Cent gespeichert. Datumsfelder verwenden den Skalartyp SiestaDateTime.

Skalare

ID             – Eindeutiger Bezeichner eines Datensatzes
String         – Zeichenkette
Int            – Ganzzahl (Geldbeträge in Cent, Minuten, Tage)
Float          – Fließkommazahl (Prozentwerte, Mengen, Koordinaten)
Boolean        – Wahrheitswert
SiestaDateTime – Datums-/Uhrzeitangabe (ISO 8601)
Array          – Generisches Array (JSON)

Input-Objekte

QueryRequest                        – Parameter für Suchanfragen (filter, sort, limit, offset)
FilterValue                         – Einzelnes Filterkriterium
SortOrder                           – Sortierfeld und -richtung
CustomerInputObjectType             – Eingabe für Kunden-Mutations
CustomerAddressInputObjectType      – Eingabe für Adress-Mutations
CustomerContactPersonInputObjectType – Eingabe für Ansprechpartner-Mutations
ProductInputObjectType              – Eingabe für Produkt-Mutations
ProjectInputObjectType              – Eingabe für Projekt-Mutations
GraphQLFileUploadObjectType         – Eingabe für Datei-Upload
QuotationInputObjectType            – Eingabe für Angebots-Mutations
QuotationGroupInputObjectType       – Eingabe für Angebotsgruppen-Mutations
QuotationItemInputObjectType        – Eingabe für Angebotspositionen-Mutations
TimeTrackingInputObjectType         – Eingabe für Zeiterfassungs-Mutations
WorkReportInputObjectType           – Eingabe für Regiebericht-Mutations
WorkReportItemInputObjectType       – Eingabe für Regiebericht-Positions-Mutations
FinalizeWorkReportInputType         – Eingabe für Regiebericht-Finalisierung

Enumerationen

AcceptanceProtocolTypeEnum              – Typ des Abnahmeprotokolls
AcceptanceProtocolApprovalEnum          – Genehmigungsstatus des Abnahmeprotokolls
AppointmentRecurringEnum                – Wiederholungstyp eines Termins
AppointmentRecurringCustomFrequencyEnum – Benutzerdefinierte Wiederholungsfrequenz
AppointmentRecurringWeekDayEnum         – Wochentag für Wiederholung
AppointmentRecurringMonthEnum           – Monat für Wiederholung
AppointmentRecurringMonthTypeEnum       – Monatstypvariante für Wiederholung
AppointmentStatusEnum                   – Status eines Termins
AppointmentLinkEnum                     – Verknüpfungstyp eines Termins
BomItemTypeEnum                         – Typ eines Stücklisteneintrags
ContractStatusEnum                      – Status eines Vertrags
CustomerGenderEnum                      – Anrede / Geschlecht des Kunden
CustomerTypeEnum                        – Kundentyp (Privat / Firma)
CustomerAddressTypeEnum                 – Adresstyp (Haupt, Lieferung, etc.)
CustomerContactPersonSalutationEnum     – Anrede des Ansprechpartners
DeliverySlipStatusEnum                  – Status eines Lieferscheins
DunningLetterDunningLevelEnum           – Mahnstufe (1. Mahnung, 2. Mahnung, etc.)
DunningTemplateDunningLevelEnum         – Mahnstufe einer Mahnvorlage
EmailStatusEnum                         – Sendestatus einer E-Mail
FileTypeEnum                            – Dateityp
GroupTemplateTypeEnum                   – Typ einer Gruppenvorlage
HolidayRequestStatusEnum                – Status eines Urlaubsantrags
IncomingInvoiceDatevTransferStatusEnum  – DATEV-Übertragungsstatus der Eingangsrechnung
IncomingInvoicePaymentMethodEnum        – Zahlungsart der Eingangsrechnung
IncomingInvoiceTypeEnum                 – Typ der Eingangsrechnung
InvoiceDatevTransferStatusEnum          – DATEV-Übertragungsstatus der Rechnung
InvoiceDeductionTypeEnum                – Typ eines Rechnungsabzugs
InvoiceDunningLevelEnum                 – Mahnstufe einer Rechnung
InvoiceGroupDownPaymentTypeEnum         – Abzugstyp einer Rechnungsgruppe
InvoiceGroupTypeEnum                    – Typ einer Rechnungsgruppe
InvoiceRenderingTypeEnum                – Darstellungstyp einer Rechnung
InvoiceSecurityDepositTypeEnum          – Typ eines Sicherheitseinbehalts
InvoiceSubTypeEnum                      – Untertyp einer Rechnung
InvoiceTypeEnum                         – Rechnungstyp (Rechnung, Gutschrift, etc.)
ItemTemplateTypeEnum                    – Typ einer Positionsvorlage
LetterTypeEnum                          – Typ eines Briefes
PaymentRunStatusEnum                    – Status eines Zahlungslaufs
PaymentStatusEnum                       – Status einer Zahlung
PaymentTypeEnum                         – Zahlungsrichtung (Eingang / Ausgang)
ProductCalculationTypeEnum              – Kalkulationstyp eines Produkts
ProductOfferingPriceTypeEnum            – Preistyp des Angebotspreises
ProductTypeEnum                         – Produkttyp (Material / Leistung)
QuotationGroupTypeEnum                  – Typ einer Angebotsgruppe
QuotationItemTypeEnum                   – Typ einer Angebotsposition
QuotationSubTypeEnum                    – Untertyp eines Angebots
QuotationTypeEnum                       – Angebotstyp
SalesOrderGroupTypeEnum                 – Typ einer Auftragsgruppe
SalesOrderItemTypeEnum                  – Typ einer Auftragsposition
StatusEnum                              – Allgemeiner Datensatzstatus (aktiv / gelöscht)
SupplierContactPersonSalutationEnum     – Anrede des Lieferantenansprechpartners
SupplierIdsOfferPriceDeterminationEnum  – IDS-Preisermittlungstyp
SupplierPaymentMethodEnum               – Zahlungsart des Lieferanten
TimeTrackingStatusEnum                  – Status der Zeiterfassung
TimeTrackingTypeEnum                    – Typ der Zeiterfassung (Arbeit, Urlaub, etc.)
UserCalendarModeEnum                    – Kalendermodus des Benutzers
UserLicenseEnum                         – Lizenztyp des Benutzers
UserObjectAccessStatusEnum              – Zugriffsstatus auf ein Objekt
Weniger Zeit im Büro, mehr Zeit beim Kunden.

Alles, was Dein Betrieb braucht: Keine Installation, kein Techniker, zuverlässiger Datenschutz

handwerker-software-laptop

Account Creation

#validation-code-invalid-message