API-Referenz

Freigabeketten

Wer Bestellungen und Rechnungszahlungen freigibt.

Mehr zu dieser Ressource

Legt fest, wer Bestellungen und Rechnungszahlungen freigibt - getrennt von den Autonomie-Einstellungen unter Abwicklung, die steuern, ob überhaupt eine Person nötig ist, und nicht, welche. Jeder der beiden Prozesse (purchase_order, invoice_payment) hat einen Freigabeablauf, in Pleaxy unter Workflows, oder ist so verknüpft, dass er den Ablauf des anderen Prozesses mitnutzt. Ein Ablauf ist eine geordnete Liste von Gruppen, die nacheinander laufen. Eine sequenzielle Gruppe ist ein Schritt mit einer freigebenden Person; eine parallele Gruppe besteht aus mehreren Schritten, die alle in beliebiger Reihenfolge von unterschiedlichen Personen freigegeben werden müssen. Eine Gruppe mit Bedingungen läuft nur, wenn jede Bedingung auf das Dokument zutrifft (Betrag, Lieferant oder Anforderer); ein als highValueOnly markierter Schritt läuft nur, wenn der Betrag über dem approvalThreshold unter Abwicklung liegt. Jeder Schritt nennt eine bestimmte Person, und nur diese Person kann ihn bearbeiten. Eine neue Region beginnt mit einem Schritt, 'Region administrator'. Wird eine PO oder Rechnung angelegt, ist ihre Kette eine Momentaufnahme des Ablaufs, sodass spätere Änderungen am Ablauf bereits wartende Dokumente nicht verändern.

Einstellungen der Freigabekette abrufen

Gibt den Freigabeablauf eines Prozesses zurück.

GET/v1/workspaces/{regionId}/approval-chains/{process}

Parameter

  • process"purchase_order" | "invoice_payment"Pflicht

    Die Freigabekette welches Ablaufs abgerufen wird.

Rückgabe

200 OK mit dem in der Antwort gezeigten Objekt.

Weitere Details

Gibt den Freigabeablauf eines Prozesses zurück oder { process, groups: [] }, wenn der Prozess nie einen hatte. Akzeptiert einen Käufer-API-Schlüssel.

Antwortfelder

  • linkedTo"purchase_order" | "invoice_payment"

    Wenn gesetzt, verwendet dieser Prozess den Ablauf des anderen Prozesses (eine aktive Verknüpfung, keine Kopie), und groups wird ignoriert.

  • groups[].mode"sequential" | "parallel"

    sequential: genau ein Schritt. parallel: Jeder Schritt muss freigegeben werden, in beliebiger Reihenfolge, jeweils von einer anderen Person.

  • groups[].conditionsarray

    Wenn vorhanden, läuft die Gruppe nur, wenn jede Bedingung zutrifft. amount verwendet gt, gte, lt oder lte mit einer Zahl in der Währung der Region; supplier verwendet is oder is_not mit einer Lieferanten-Workspace-ID (endet auf .supplier); requester verwendet is oder is_not mit einem Mitarbeiterschlüssel. Ein Dokument in einer anderen Währung als der der Region erfüllt jede Betragsbedingung.

  • groups[].stages[].approverEmployeeKeystring

    Die einzige Person, die den Schritt bearbeiten kann. '' bedeutet, dass der Schritt noch keine freigebende Person hat - ihm muss eine zugewiesen werden, bevor jemand ihn bearbeiten kann. Nur ein Ablauf, der gespeichert wurde, bevor benannte freigebende Personen Pflicht wurden, kann dies enthalten.

  • groups[].stages[].highValueOnlyboolean

    Der Schritt läuft nur, wenn der Betrag über dem approvalThreshold unter Abwicklung liegt (dem Schwellenwert für hohe Beträge).

  • source"default"

    Vorhanden, wenn Pleaxy diesen Ablauf als Standard der Region geschrieben hat. Jedes andere Speichern entfernt es.

  • defaultApproverIsAdminboolean

    Nur mit source "default": ob die freigebende Person des Standardschritts noch Administrator der Region ist.

  • requesterRule.eligibleApproverCountnumber

    Wie viele Käufermitglieder die Dokumente dieses Prozesses freigeben können. Ein Anforderer kann sein eigenes Dokument nur freigeben, wenn niemand sonst es könnte.

Fehler

  • 401 Unauthorized - Es wurden keine Zugangsdaten übermittelt, oder der Bearer-Token bzw. der X-Api-Key-Wert fehlt, ist ungültig, abgelaufen oder widerrufen.
  • 403 Forbidden - Der Bearer-Token oder API-Schlüssel des Aufrufers gewährt keinen Zugriff auf diesen Workspace (regionId) oder hat nicht die erforderliche Rolle.
GET /v1/workspaces/{regionId}/approval-chains/{process}
Anfrage
curl "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/approval-chains/{process}" \
  -H "X-Api-Key: $PLEAXY_API_KEY"
Antwort · 200 OK
{
   "process": "purchase_order" | "invoice_payment",
   "linkedTo": "purchase_order" | "invoice_payment",
   "groups": [
      {
         "id": "string",
         "mode": "sequential" | "parallel",
         "label": "string",
         "stages": [
            {
               "id": "string",
               "label": "string",
               "approverEmployeeKey": "string",
               "approverName": "string",
               "approverEmail": "string",
               "highValueOnly": boolean
            }
         ],
         "conditions": [
            { "field": "amount" | "supplier" | "requester", "operator": "gt" | "gte" | "lt" | "lte" | "is" | "is_not", "value": number | "string" }
         ]
      }
   ],
   "source": "default",
   "defaultApproverIsAdmin": boolean,
   "requesterRule": { "eligibleApproverCount": number }
}

Einstellungen der Freigabekette aktualisieren

Ersetzt den Freigabeablauf eines Prozesses.

PATCH/v1/workspaces/{regionId}/approval-chains/{process}

Parameter

  • process"purchase_order" | "invoice_payment"Pflicht

    Die Freigabekette welches Ablaufs aktualisiert wird.

Body

  • groupsarray

    Der neue Ablauf, in Reihenfolge. Jeweils { id, mode, label?, stages, conditions? }. stages sind { id, label, approverEmployeeKey, highValueOnly? }: Eine sequenzielle Gruppe hat genau einen, eine parallele Gruppe mindestens einen, mit eindeutigen IDs und unterschiedlichen freigebenden Personen. Bis zu 10 Bedingungen pro Gruppe. Mindestens eine Gruppe.

  • linkedTo"purchase_order" | "invoice_payment"

    Den Ablauf des anderen Prozesses statt des eigenen verwenden.

  • useDefaulttrue

    Auf den Standard der Region zurücksetzen: ein Schritt, 'Region administrator', der den verantwortlichen Administrator der Region nennt, ersatzweise den alphabetisch ersten Administrator. Kann nicht mit groups, stages oder linkedTo kombiniert werden.

  • stagesarray

    Veraltete flache Form, ein sequenzieller Schritt pro Eintrag, { id, label, approverEmployeeKey, highValueOnly? }. Wird als entsprechende groups gespeichert.

Rückgabe

200 OK mit dem in der Antwort gezeigten Objekt.

Weitere Details

Ersetzt den Ablauf eines Prozesses durch groups, verknüpft ihn mit linkedTo mit dem Ablauf des anderen Prozesses oder setzt ihn mit useDefault: true auf den Standard der Region zurück. Das Senden von groups entfernt ein vorhandenes linkedTo; das Senden von linkedTo behält die aktuellen groups gespeichert, aber inaktiv, solange die Verknüpfung besteht. Jeder approverEmployeeKey wird gegen die Mitarbeitenden des Workspace geprüft. Der Ablauf muss mindestens eine Gruppe ohne Bedingungen behalten, die bei gewöhnlichen Beträgen läuft, damit jedes Dokument eine Person erreicht. stages, eine flache Liste von Gruppen mit je einem Schritt, wird für ältere Clients weiterhin akzeptiert; bevorzugen Sie groups.

Geändert am 2026-09-27, eine Sicherheitskorrektur innerhalb von v1: Nur angemeldete Sitzung, für jeden Prozess: Eine Freigabekette entscheidet, wer Ausgaben freigibt, daher erhält ein API-Schlüssel unabhängig von seiner Einkaufsrolle 403 HUMAN_SESSION_REQUIRED.

Fehler

  • 400 Bad Request - Ein Schritt hat keine freigebende Person ("'{label}' has no approver - every approval step must name a specific employee.") oder nennt jemanden, der kein Mitarbeiter des Workspace ist; eine parallele Gruppe nennt dieselbe freigebende Person zweimal; eine sequenzielle Gruppe hat nicht genau einen Schritt; eine Bedingung ist fehlerhaft; der Ablauf hat keine Gruppe ohne Bedingungen, die bei gewöhnlichen Beträgen läuft ("A chain needs at least one approval step with no conditions that applies to ordinary purchase amounts…"); groups oder stages ist leer; linkedTo nennt diesen Prozess oder einen Prozess, der bereits zurück auf ihn verknüpft ist; oder useDefault wird mit groups, stages oder linkedTo kombiniert.
  • 409 Conflict - Code NO_REGION_ADMIN, mit useDefault: "This region has no administrator to route approvals to. Make someone an administrator first."
  • 403 Forbidden - Code HUMAN_SESSION_REQUIRED. Der Aufrufer ist keine angemeldete Person (zum Beispiel ein API-Schlüssel), für jeden Prozess ("Approval chains can only be changed by a signed-in person. Change them in Pleaxy."). Es wird nichts gespeichert.
  • 401 Unauthorized - Es wurden keine Zugangsdaten übermittelt, oder der Bearer-Token bzw. der X-Api-Key-Wert fehlt, ist ungültig, abgelaufen oder widerrufen.
  • 403 Forbidden - Der Bearer-Token oder API-Schlüssel des Aufrufers gewährt keinen Zugriff auf diesen Workspace (regionId) oder hat nicht die erforderliche Rolle.
PATCH /v1/workspaces/{regionId}/approval-chains/{process}
Anfrage
curl -X PATCH "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/approval-chains/{process}" \
  -H "X-Api-Key: $PLEAXY_API_KEY" \
  -H "Content-Type: application/json" \
  -d @body.json
body.json
{
   "groups": [
      {
         "id": "string",
         "mode": "sequential" | "parallel",
         "label": "string",
         "stages": [
            { "id": "string", "label": "string", "approverEmployeeKey": "string", "highValueOnly": boolean }
         ],
         "conditions": [
            { "field": "amount" | "supplier" | "requester", "operator": "gt" | "gte" | "lt" | "lte" | "is" | "is_not", "value": number | "string" }
         ]
      }
   ]
}
Antwort · 200 OK
{
   "process": "purchase_order" | "invoice_payment",
   "linkedTo": "purchase_order" | "invoice_payment",
   "groups": [
      {
         "id": "string",
         "mode": "sequential" | "parallel",
         "label": "string",
         "stages": [
            {
               "id": "string",
               "label": "string",
               "approverEmployeeKey": "string",
               "approverName": "string",
               "approverEmail": "string",
               "highValueOnly": boolean
            }
         ],
         "conditions": [
            { "field": "amount" | "supplier" | "requester", "operator": "gt" | "gte" | "lt" | "lte" | "is" | "is_not", "value": number | "string" }
         ]
      }
   ],
   "source": "default",
   "defaultApproverIsAdmin": boolean,
   "requesterRule": { "eligibleApproverCount": number }
}
Kontakt aufnehmen