For AI agents: the complete documentation index is at https://api-doc.talent360.io/llms.txt. Every page is also available as Markdown by appending index.md to its URL or by sending Accept: text/markdown.
API Referenz

7 endpoints

Anfragen anlegen, lesen und im Status weiterschalten.

Jede Anfrageart hat einen eigenen Anlage-Endpunkt mit eigenem Datenmodell: Arbeitnehmerüberlassung, Direktvermittlung und Dienstleistungsvertrag. Der Statuswechsel ist für alle drei derselbe Endpunkt.

Anfragen per Id

GET /requests/{id}

Liest die Detaildaten einer Anfrage anhand ihrer Id, unabhängig von der Vermittlungsart. Die Anfrage wird direkt adressiert, die Firma muss nicht mit angegeben werden. Angelegt wird eine Anfrage über die drei Endpunkte unter POST /customers/{customerId}/requests/…, umgehängt über PUT /customers/{customerId}/requests/{requestId}, der Status geändert über PUT /customers/{customerId}/requests/{requestId}/status. Eine unbekannte oder gelöschte Id liefert 404.

Neu in V 3.4.0:

  • labourLeasingDurationUnit liefert den Anzeigetext zu labourLeasingDurationUnitId (z. B. „Monat"), analog zu workingHoursUnit und serviceContractDurationUnit. Bisher war das Feld immer null.
  • keywords und qualifications sind unmittelbar nach dem Anlegen der Anfrage gefüllt, auch für Begriffe, die im System noch nicht als Schlagwort existierten. Bisher blieben beide Listen in diesem Fall dauerhaft leer.

Parameters

Name In Type Required Description
id path integer yes Identifikation der Anfrage

Responses

200 — OK — die Anfrage wird direkt als Objekt zurückgegeben, nicht in einer Antworthülle.

Property Type Required Description
id integer (int32) no Eindeutige Identifikation der Anfrage
jobTitle string null no
customer string null no
customerId integer (int32) no Identifikation des Kunden
office string null no
officeId integer (int32) null no
contactId integer (int32) null no
contactFullName string null no
location string null no
locationId integer (int32) null no
workingTitleId integer (int32) null no
workingTitle string null no
responsibleAccountUserId integer (int32) no Identifikation des zuständigen Benutzers
responsibleAccountOfficeId integer (int32) no Identifikation der zuständigen Niederlassung
responsibleAccountUserEmail string null no
amount integer (int32) null no
earliestStartOfActivityUtc string (date-time) null no
labourLeasingDuration integer (int32) null no
labourLeasingDurationUnitId integer (int32) null no
workingHours number (double) null no
workingHoursUnitId integer (int32) null no
workingHoursFrom integer (int32) null no
workingHoursTo integer (int32) null no
jobDescription string null no
contractDurationId integer (int32) null no
contractLimitedFor integer (int32) null no
contractLimitedForPeriodId integer (int32) null no
contractLimitedForPeriod string null no
contractLimitedUntilUtc string (date-time) null no
recruitmentWorkspace string null no
hasWillingnessToStandby boolean null no
hasWillingnessToTravel boolean null no
wageCurrencyId integer (int32) null no
wageCurrency string null no
wagePeriodId integer (int32) null no
wageRangeEnd number (double) null no
wageRangeStart number (double) null no
wageTypeId integer (int32) null no
bonus number (double) null no
bonusTypeId integer (int32) null no
bonusType string null no
isCompanyCarProvided boolean null no
companyCarBudget number (double) null no
additionalBenefits string null no
notes string null no
matchingFilterId integer (int32) null no
requestedAtUtc string (date-time) no Zeitpunkt der Anfrage (UTC)
workingTimeModelId integer (int32) null no
workingTimeModel string null no
workPlaceId integer (int32) null no
workPlace string null no
hasEmployeeLeasingExperience boolean null no
shifts ShiftsDto[] no Liste der Schichten
driversLicenses EnumValueDto[] no Liste der Führerscheine
qualifications string[] no Liste der Qualifikationen
keywords string[] no Liste der Schlüsselwörter
suggestedCandidates SuggestedCandidateDto[] no Liste der vorgeschlagenen Bewerber
placementTypeId PlacementTypeCode no Art der Vermittlung (Id)
labourLeasingDurationUnit string null no
workingHoursUnit string null no
contractDuration string null no
wagePeriod string null no
placementType string null no
candidateProfileTemplateConfigurationId integer (int32) null no
serviceContractWageCurrencyId integer (int32) null no
serviceContractWageCurrency string null no
serviceContractWorkLocationId WorkLocation null no
serviceContractWorkLocation string null no
serviceContractHourlyWageRemote number (double) null no
serviceContractHourlyWageOnSite number (double) null no
serviceContractDuration integer (int32) null no
serviceContractDurationUnitId integer (int32) null no
serviceContractDurationUnit string null no
customerReference string null no
proposalDeadlineUtc string (date-time) null no
processStatusReason string null no
homeOfficePortionInPercent number (double) null no
fieldServicePortionInPercent number (double) null no
processStatusId RequestProcessStatus no Prozessstatus der Anfrage (Id)
contractSignedAtUtc string (date-time) null no
name string null no

404 — Anfrage nicht gefunden

Property Type Required Description
messageGuid string (uuid) null no
message string null no
validationErrors ValidationError[] no Liste der Validierungsfehler

Anfrage für AÜV anlegen

POST /customers/{customerId}/requests/employeeleasing

Mit diesem Endpunkt kann man eine Anfrage für die Arbeitnehmerüberlassung anlegen.

Neu in V 3.4.0:

  • Die Zuordnungen shiftIds, driversLicenseIds, qualifications und keywords werden zusammen mit der Anfrage angelegt. Schlägt einer dieser Schritte fehl, wird die Anfrage nicht angelegt und der Aufruf antwortet mit dem Fehler. Bisher wurden solche Fehler verworfen und die Anfrage ohne die betroffenen Zuordnungen mit 200 gespeichert.
  • Jede Schicht-Id muss ein Wert aus /masterdata/shifts sein, jede Führerschein-Id ein Wert aus /masterdata/driverslicenses. Eine unbekannte Id, eine Id aus einer anderen Gruppe oder eine Id kleiner als 1 liefert 400 mit dem Validierungsfehler NotExisting auf ShiftIds bzw. DriversLicenseIds. Bisher lief eine unbekannte Id in 500 CREATEDATAERROR und hinterließ eine Anfrage ohne Zuordnungen.

Parameters

Name In Type Required Description
customerId path integer yes Identifikation des Kunden

Request body

Content type: application/json

Property Type Required Description
request RequestCreateEmployeeLeasingRequestDto no Details der Anfrage zur Arbeitnehmerüberlassung
responsibility ResponsibilityCreateDto no Zuständigkeit für die Anfrage
customer RequestCreateCustomerDto no Kundendaten der Anfrage
candidateProfileTemplateConfigurationId integer (int32) null no

Responses

200 — OK

Property Type Required Description
id integer (int32) no Eindeutige Identifikation des erzeugten Datensatzes

400 — Ungültige Anfrage oder Validierungsfehler

Property Type Required Description
messageGuid string (uuid) null no
message string null no
validationErrors ValidationError[] no Liste der Validierungsfehler

404 — Firma nicht gefunden

Property Type Required Description
messageGuid string (uuid) null no
message string null no
validationErrors ValidationError[] no Liste der Validierungsfehler

Anfrage für Direktvermittlung anlegen

POST /customers/{customerId}/requests/directtransmission

Mit diesem Endpunkt kann man eine Anfrage für eine Direktvermittlung anlegen.

Neu in V 3.4.0:

  • Die Zuordnungen shiftIds, driversLicenseIds, qualifications und keywords werden zusammen mit der Anfrage angelegt. Schlägt einer dieser Schritte fehl, wird die Anfrage nicht angelegt und der Aufruf antwortet mit dem Fehler. Bisher wurden solche Fehler verworfen und die Anfrage ohne die betroffenen Zuordnungen mit 200 gespeichert.
  • Jede Schicht-Id muss ein Wert aus /masterdata/shifts sein, jede Führerschein-Id ein Wert aus /masterdata/driverslicenses. Eine unbekannte Id, eine Id aus einer anderen Gruppe oder eine Id kleiner als 1 liefert 400 mit dem Validierungsfehler NotExisting auf ShiftIds bzw. DriversLicenseIds. Bisher lief eine unbekannte Id in 500 CREATEDATAERROR und hinterließ eine Anfrage ohne Zuordnungen.

Parameters

Name In Type Required Description
customerId path integer yes Identifikation des Kunden

Request body

Content type: application/json

Property Type Required Description
request RequestCreateDirectTransmissionRequestDto no Details der Anfrage
responsibility ResponsibilityCreateDto no Zuständigkeit für die Anfrage
customer RequestCreateCustomerDto no Angaben zum Kunden
candidateProfileTemplateConfigurationId integer (int32) null no

Responses

200 — OK

Property Type Required Description
id integer (int32) no Eindeutige Identifikation des erzeugten Datensatzes

400 — Ungültige Anfrage oder Validierungsfehler

Property Type Required Description
messageGuid string (uuid) null no
message string null no
validationErrors ValidationError[] no Liste der Validierungsfehler

404 — Firma nicht gefunden

Property Type Required Description
messageGuid string (uuid) null no
message string null no
validationErrors ValidationError[] no Liste der Validierungsfehler

Anfrage für Dienstleistungsvertrag anlegen

POST /customers/{customerId}/requests/servicecontract

Mit diesem Endpunkt kann man eine Anfrage für einen Dienstleistungsvertrag anlegen.

Neu in V 3.4.0:

  • Die Zuordnungen shiftIds, driversLicenseIds, qualifications und keywords werden zusammen mit der Anfrage angelegt. Schlägt einer dieser Schritte fehl, wird die Anfrage nicht angelegt und der Aufruf antwortet mit dem Fehler. Bisher wurden solche Fehler verworfen und die Anfrage ohne die betroffenen Zuordnungen mit 200 gespeichert.
  • Jede Schicht-Id muss ein Wert aus /masterdata/shifts sein, jede Führerschein-Id ein Wert aus /masterdata/driverslicenses. Eine unbekannte Id, eine Id aus einer anderen Gruppe oder eine Id kleiner als 1 liefert 400 mit dem Validierungsfehler NotExisting auf ShiftIds bzw. DriversLicenseIds. Bisher lief eine unbekannte Id in 500 CREATEDATAERROR und hinterließ eine Anfrage ohne Zuordnungen.
  • Die Vertrags- und Konditionsfelder in request werden gespeichert und validiert: contractDurationId (/masterdata/contractdurations), contractLimitedUntilUtc, contractLimitedFor, contractLimitedForPeriodId, workingTimeModelId, workPlaceId (/masterdata/workplaces), primaryLanguageId, primaryLanguageLevelId, secondaryLanguageId, secondaryLanguageLevelId, companyCarBudget und additionalBenefits. Eine unbekannte Stammdaten-Id liefert 400 mit einem Validierungsfehler auf dem jeweiligen Feld. Bisher wurden diese zwölf Felder still verworfen und blieben in GET /requests/{id} leer.

Parameters

Name In Type Required Description
customerId path integer yes Identifikation des Kunden

Request body

Content type: application/json

Property Type Required Description
request RequestCreateServiceContractRequestDto no Details der Werkvertrags-Anfrage
responsibility ResponsibilityCreateDto no Zuständigkeit für die Anfrage
customer RequestCreateCustomerDto no Kunde der Anfrage
candidateProfileTemplateConfigurationId integer (int32) null no

Responses

200 — OK

Property Type Required Description
id integer (int32) no Eindeutige Identifikation des erzeugten Datensatzes

400 — Ungültige Anfrage oder Validierungsfehler

Property Type Required Description
messageGuid string (uuid) null no
message string null no
validationErrors ValidationError[] no Liste der Validierungsfehler

404 — Firma nicht gefunden

Property Type Required Description
messageGuid string (uuid) null no
message string null no
validationErrors ValidationError[] no Liste der Validierungsfehler

Anfragestatus ändern

PUT /customers/{customerId}/requests/{requestId}/status

Über diesen Endpunkt kann man den Anfragestatus ändern.

Parameters

Name In Type Required Description
customerId path integer yes Identifikation des Kunden
requestId path integer yes Identifikation der Anfrage

Request body

Content type: application/json

Property Type Required Description
processStatusId RequestProcessStatus no Neuer Bearbeitungsstatus der Anfrage

Responses

200 — OK

Property Type Required Description
success boolean no Gibt an, ob die Operation erfolgreich war

400 — Ungültige Anfrage oder Validierungsfehler. Fachliche Prüfungen antworten als ErrorResponse; scheitert dagegen schon das Binden des Requests (z.B. unbekannter Wert für processStatusId), liefert das Framework ValidationProblemDetails mit Content-Type application/problem+json.

404 — Firma oder Anfrage nicht gefunden

Property Type Required Description
messageGuid string (uuid) null no
message string null no
validationErrors ValidationError[] no Liste der Validierungsfehler

Anfrage umhängen (Betriebsstätte, Einsatzort, Ansprechpartner)

PUT /customers/{customerId}/requests/{requestId}

Neu in V 3.4.0: Ändert die drei Beziehungsfelder einer Anfrage: Betriebsstätte, Einsatzort und Ansprechpartner. Der fachliche Inhalt der Anfrage (Tätigkeit, Menge, Vergütung, Listen) und ihr Status sind über diesen Endpunkt nicht änderbar; der Status läuft weiterhin über PUT /customers/{customerId}/requests/{requestId}/status.

Teilweise Angaben werden gegen den Bestand validiert. Nicht mitgeschickte Werte werden aus der Anfrage übernommen, und geprüft wird immer die resultierende Kombination mit derselben Konsistenzkette wie beim Anlegen:

  • der Ansprechpartner gehört zum Kunden,
  • die Betriebsstätte gehört zum Kunden,
  • der Einsatzort gehört zur Betriebsstätte,
  • der Ansprechpartner ist der Betriebsstätte zugeordnet.

Wer nur officeId schickt, bekommt 400, wenn der bestehende Einsatzort nicht zur neuen Betriebsstätte gehört. Beim Umhängen deshalb alle drei Ids gemeinsam schicken.

Gehört die Anfrage zu einer anderen Firma oder existiert sie nicht, antwortet der Endpunkt mit 404.

Parameters

Name In Type Required Description
customerId path integer yes Identifikation des Kunden
requestId path integer yes Identifikation der Anfrage

Request body

Required.

Die neuen Beziehungsfelder der Anfrage. Nicht mitgeschickte Werte werden aus der Anfrage übernommen.

Content type: application/json

Property Type Required Description
officeId integer (int32) null no
locationId integer (int32) null no
contactId integer (int32) null no

Responses

204 — Anfrage geändert — die API antwortet ohne Inhalt.

400 — Ungültige Anfrage oder Validierungsfehler — insbesondere eine inkonsistente Kombination aus Betriebsstätte, Einsatzort und Ansprechpartner. Die Validierungsfehler sind dieselben wie beim Anlegen der Anfrage.

Property Type Required Description
messageGuid string (uuid) null no
message string null no
validationErrors ValidationError[] no Liste der Validierungsfehler

404 — Firma oder Anfrage nicht gefunden — auch dann, wenn die Anfrage zu einer anderen Firma gehört.

Property Type Required Description
messageGuid string (uuid) null no
message string null no
validationErrors ValidationError[] no Liste der Validierungsfehler

Anfrage löschen

DELETE /customers/{customerId}/requests/{requestId}

Neu in V 3.4.0: Löscht eine Anfrage der Firma, etwa um Löschungen aus einem Fremdsystem zu spiegeln oder Testdaten zu entfernen.

Gelöscht wird als Soft-Delete, genau wie in talent.Flow: Die Anfrage wird deaktiviert und liefert unter GET /requests/{id} anschließend 404. Bewerbervorstellungen, Schlagwörter, Schichten und Führerscheine der Anfrage bleiben als Historie erhalten. Wer eine Anfrage fachlich beenden statt löschen will, nutzt weiterhin PUT /customers/{customerId}/requests/{requestId}/status.

Eine Anfrage, die nicht zu dieser Firma gehört oder bereits gelöscht ist, ergibt 404.

Parameters

Name In Type Required Description
customerId path integer yes Identifikation des Kunden
requestId path integer yes Identifikation der Anfrage

Responses

204 — Anfrage gelöscht — die API antwortet ohne Inhalt.

400 — Ungültige Anfrage oder Validierungsfehler

Property Type Required Description
messageGuid string (uuid) null no
message string null no
validationErrors ValidationError[] no Liste der Validierungsfehler

404 — Firma oder Anfrage nicht gefunden — auch dann, wenn die Anfrage nicht zu dieser Firma gehört oder bereits gelöscht ist.

Property Type Required Description
messageGuid string (uuid) null no
message string null no
validationErrors ValidationError[] no Liste der Validierungsfehler