API-Referenz

Dokumentsynchronisierung

Halten Sie Ihr eigenes System auf Stand: was sich geändert hat, und jedes Dokument als JSON, cXML oder UBL.

Mehr zu dieser Ressource

Für ein ERP-, Abrechnungs- oder Zahlungszuordnungssystem, das Pleaxy folgt, ohne dass jemand etwas abtippt. ListSyncEvents meldet, was sich seit Ihrem letzten Aufruf geändert hat (oder ein Webhook übermittelt es); dann lesen Sie das Dokument: eine Bestellung als cXML OrderRequest oder UBL Order, den Stand einer Rechnung, eine Rechnung als UBL Invoice und jede Zahlung mit ihrem Zahlungsavis. Jedes Dokument ist die Lieferantenkopie, egal wer fragt: nie die internen Notizen oder Freigaben des Käufers und nie, wer eine Zahlung erfasst hat. Das ERP oder der Bank-Feed eines Käufers erfasst Zahlungen mit RecordPayments.

Sync-Ereignisse auflisten

Listet auf, was sich seit Ihrem letzten Aufruf geändert hat, älteste zuerst.

GET/v1/workspaces/{regionId}/sync/events

Parameter

  • afterstring

    Der nextCursor Ihres letzten Aufrufs (eine Ereignis-ID). Weglassen, um beim ältesten Ereignis zu beginnen.

  • limitinteger

    1-500 Ereignisse pro Aufruf. Standardwert 100.

Rückgabe

200 OK mit dem in der Antwort gezeigten Objekt.

Weitere Details

Was sich auf dieser Workspace-Seite geändert hat, älteste zuerst. Ein Ereignis nennt ein Dokument, nie dessen Inhalt: Lesen Sie das Dokument mit der zugehörigen Operation, so erhalten Sie immer seine aktuelle Version. Übergeben Sie nextCursor bei Ihrem nächsten Aufruf als after; solange hasMore true ist, rufen Sie sofort erneut auf. Ereignisse werden 30 Tage aufbewahrt und mindestens einmal zugestellt, dieselbe Änderung kann also zweimal kommen; die neuesten 5 Sekunden warten auf den nächsten Aufruf. Ein Aufrufer mit Lieferantenrolle erhält purchase_order.issued, changed, canceled und rejected, invoice.received, approved, rejected, paid, payment_withdrawn, remittance_sent und credit_applied, invoice.updated (ein Käufer hat die Rechnung zur Prüfung angehalten oder wieder freigegeben: lesen Sie GetInvoiceStatus) sowie credit_note.accepted und rejected. Ein Aufrufer mit Käuferrolle erhält invoice.received und credit_note.received (von einem Lieferanten gesendet); invoice.updated (eine Rechnung wurde freigegeben, von einer Person oder automatisch, oder abgelehnt, oder ihr Lieferant hat Bankdaten bestätigt oder sie gemeldet); invoice.payment (eine Zahlung wurde erfasst oder zurückgezogen, eine Gutschrift hat die Rechnung beglichen, oder eine Zahlung über Pleaxy ist durchgegangen oder fehlgeschlagen: lesen Sie GetInvoiceRemittance); purchase_order.updated (eine Bestellung wurde freigegeben, abgelehnt oder storniert); sowie purchase_order.confirmed und purchase_order.shipped (lesen Sie GetPurchaseOrderFulfillment). Er erhält nur die Dokumenttypen, die seine Einkaufsrolle sehen darf.

Antwortfelder

  • events[].typestring

    Was passiert ist, als <document>.<change>, z. B. invoice.paid.

  • events[].buyerWorkspaceIdstring

    Aufrufer mit Lieferantenrolle: die Workspace-ID des Käufers, die beim Lesen des Dokuments als ?buyer= übergeben wird.

  • nextCursorstring

    Wo Ihr nächster Aufruf beginnt. Fehlt nur vor dem ersten Ereignis.

  • hasMoreboolean

    Weitere Ereignisse warten: Rufen Sie sofort erneut auf.

Fehler

  • 400 Bad Request - after ist keine Ereignis-ID, oder limit liegt außerhalb des zulässigen Bereichs.
  • 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}/sync/events
Anfrage
curl "$PLEAXY_API_BASE_URL/v1/workspaces/reg_01k5x8p9j3q7vn2mhb4tzc6rde.supplier/sync/events?after=EV-mgx2k9a1-0c4f81d2" \
  -H "X-Api-Key: $PLEAXY_API_KEY"
Antwort · 200 OK
{
  "events": [
    { "id": "EV-mgx2kb7e-91a2c3d4", "at": "2026-10-23T10:02:11.402Z", "type": "invoice.paid", "documentType": "invoice", "documentId": "INV-3C9E71B2", "buyerWorkspaceId": "reg_01k5x8n2a7c4bq9wze0tkv3fjm.buyer" }
  ],
  "nextCursor": "EV-mgx2kb7e-91a2c3d4",
  "hasMore": false
}

Bestelldokument abrufen

Gibt eine ausgestellte Bestellung als cXML oder UBL zurück.

GET/v1/workspaces/{regionId}/purchase-orders/{poId}/document

Parameter

  • poIdstringPflicht

    Die ID der Bestellung.

  • format"cxml" | "ubl"

    Das Dokumentformat. Standardwert cxml.

  • buyerstring

    Aufrufer mit Lieferantenrolle: die Workspace-ID des Käufers, wenn zwei Käufer dieselbe ID ausgestellt haben.

Rückgabe

200 OK mit dem in der Antwort gezeigten Objekt.

Weitere Details

Eine ausgestellte Bestellung als Dokument, das Ihr System übernimmt. format=cxml (Standard) ist ein cXML OrderRequest: Typ new, update ab Version 2, delete nach der Stornierung. format=ubl ist eine UBL 2.1 Order oder nach der Stornierung eine OrderCancellation. Beide Parteien werden mit ihren Workspace-IDs genannt. Es ist die Lieferantenkopie, egal wer fragt. Ein Lieferant, dessen Käufer dieselbe PO-ID verwenden, ergänzt ?buyer=<buyer Workspace ID>.

Fehler

  • 400 Bad Request - format ist weder cxml noch ubl.
  • 404 Not Found - Keine Bestellung mit dieser ID gehört Ihnen.
  • 409 Conflict - Code ORDER_NOT_ISSUED: Ein Entwurf, eine auf Freigabe wartende oder eine abgelehnte Bestellung wurde nie an ihren Lieferanten gesendet.
  • 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}/purchase-orders/{poId}/document
Anfrage
curl "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/purchase-orders/{poId}/document" \
  -H "X-Api-Key: $PLEAXY_API_KEY"
Antwort · 200 OK
application/xml

Rechnungsdokument abrufen

Gibt eine Rechnung als UBL 2.1 Invoice zurück.

GET/v1/workspaces/{regionId}/invoices/{invoiceId}/document

Parameter

  • invoiceIdstringPflicht

    Die ID der Rechnung.

  • format"ubl"

    Das einzige Format und der Standardwert.

  • buyerstring

    Aufrufer mit Lieferantenrolle: die Workspace-ID des Käufers, wenn zwei Käufer dieselbe ID ausgestellt haben.

Rückgabe

200 OK mit dem in der Antwort gezeigten Objekt.

Weitere Details

Eine Rechnung als UBL 2.1 Invoice (Typ 380 oder 383 für eine Lastschrift), zum Buchen im ERP des Käufers oder für das Archiv des Lieferanten: ihre Positionen, Rabatte und Zuschläge auf Dokumentebene, Steuern und Einbehalte, Vorauszahlungen, die Zahlungsanweisungen des Lieferanten sowie die PO und der Vertrag, die sie abrechnet. Die Summen stimmen mit dem Rechnungsbetrag überein. Es ist die Lieferantensicht, egal wer fragt: kein Abgleich, keine Befunde, keine Freigaben.

Fehler

  • 404 Not Found - Keine Rechnung mit dieser ID gehört Ihnen.
  • 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}/invoices/{invoiceId}/document
Anfrage
curl "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/invoices/{invoiceId}/document" \
  -H "X-Api-Key: $PLEAXY_API_KEY"
Antwort · 200 OK
application/xml

Rechnungsstatus abrufen

Gibt den Stand einer Rechnung mit den Standard-Statuscodes zurück.

GET/v1/workspaces/{regionId}/invoices/{invoiceId}/status

Parameter

  • invoiceIdstringPflicht

    Die ID der Rechnung.

  • buyerstring

    Aufrufer mit Lieferantenrolle: die Workspace-ID des Käufers, wenn zwei Käufer dieselbe ID ausgestellt haben.

Rückgabe

200 OK mit dem in der Antwort gezeigten Objekt.

Weitere Details

Der Stand einer Rechnung, für das System, das sie gesendet hat, oder das, das sie bezahlt, als ein Status mit den Codes, die E-Rechnungssysteme dafür verwenden. Dasselbe als cXML oder UBL ist GetInvoiceStatusDocument. Es ist die Lieferantensicht, egal wer fragt.

Antwortfelder

  • statusstring

    received: Der Abgleich ist noch nicht gelaufen. in_process: wartet auf Freigabe. under_query: siehe queryReason. approved: freigegeben und unbezahlt. payment_in_progress: Eine Zahlung über Pleaxy läuft. paid. rejected. duplicate: als Duplikat abgelehnt.

  • responseCodestring

    Der Status als UNCL4343, die Codeliste der Peppol Invoice Response.

  • queryReasonstring

    Warum die Rechnung in Klärung ist: Sie passt nicht zu ihrer Bestellung, oder ihre Bankdaten warten auf Bestätigung bzw. wurden gemeldet.

  • rejectionobject

    Bei Ablehnung: der Ablehnungscode (amount_incorrect, not_ordered_or_not_received, duplicate, missing_or_wrong_po, wrong_billing_entity, other) und die Notiz des Käufers.

Fehler

  • 404 Not Found - Keine Rechnung mit dieser ID gehört Ihnen.
  • 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}/invoices/{invoiceId}/status
Anfrage
curl "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/invoices/{invoiceId}/status" \
  -H "X-Api-Key: $PLEAXY_API_KEY"
Antwort · 200 OK
{
   "invoiceId": "string",
   "invoiceNumber": "string",
   "documentType": "invoice" | "debit_note",
   "buyerWorkspaceId": "string",
   "purchaseOrderId": "string",
   "status": "received" | "in_process" | "under_query" | "approved" | "payment_in_progress" | "paid" | "rejected" | "duplicate",
   "responseCode": "AB" | "IP" | "UQ" | "AP" | "RE" | "PD",
   "cxmlStatus": "processing" | "reconciled" | "rejected" | "paying" | "paid",
   "queryReason": "discrepancy" | "bank_details_unconfirmed" | "bank_details_disputed",
   "rejection": { "reasonCode": "string", "reason": "string", "at": "string" },
   "issueDate": "string",
   "receivedAt": "string",
   "dueDate": "string",
   "total": { "amount": number, "currency": "string" },
   "amountDue": { "amount": number, "currency": "string" },
   "paid": boolean,
   "paidAt": "string"
}

Rechnungsstatusdokument abrufen

Gibt den Status einer Rechnung als cXML oder UBL zurück.

GET/v1/workspaces/{regionId}/invoices/{invoiceId}/status/document

Parameter

  • invoiceIdstringPflicht

    Die ID der Rechnung.

  • format"cxml" | "ubl"

    Das Dokumentformat. Standardwert cxml.

  • buyerstring

    Aufrufer mit Lieferantenrolle: die Workspace-ID des Käufers, wenn zwei Käufer dieselbe ID ausgestellt haben.

Rückgabe

200 OK mit dem in der Antwort gezeigten Objekt.

Weitere Details

GetInvoiceStatus als Dokument. format=cxml (Standard) ist ein cXML StatusUpdateRequest mit einem InvoiceStatus; format=ubl ist eine UBL 2.1 ApplicationResponse mit den Codes der Peppol Invoice Response und bei einer Ablehnung deren Grund.

Fehler

  • 400 Bad Request - format ist weder cxml noch ubl.
  • 404 Not Found - Keine Rechnung mit dieser ID gehört Ihnen.
  • 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}/invoices/{invoiceId}/status/document
Anfrage
curl "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/invoices/{invoiceId}/status/document" \
  -H "X-Api-Key: $PLEAXY_API_KEY"
Antwort · 200 OK
application/xml

Zahlungsavis einer Rechnung abrufen

Gibt zurück, wie und wann eine Rechnung bezahlt wurde, mit ihren Zahlungsavisen.

GET/v1/workspaces/{regionId}/invoices/{invoiceId}/remittance

Parameter

  • invoiceIdstringPflicht

    Die ID der Rechnung.

  • buyerstring

    Aufrufer mit Lieferantenrolle: die Workspace-ID des Käufers, wenn zwei Käufer dieselbe ID ausgestellt haben.

Rückgabe

200 OK mit dem in der Antwort gezeigten Objekt.

Weitere Details

Das Zahlungssignal einer Rechnung für die Zahlungszuordnung des Lieferanten: wie und wann der Käufer bezahlt hat, die Referenz, was einbehalten wurde und was beim Lieferanten ankam, sowie die Zahlungsavise, die der Käufer gesendet hat (Notizen und Zahlungsnachweise; GetRemittanceFile lädt einen herunter). Pleaxy erfasst, was der Käufer angibt, und bewegt kein Geld. Nie, wer beim Käufer die Zahlung erfasst hat. Dasselbe als cXML oder UBL ist GetInvoiceRemittanceDocument.

Antwortfelder

  • statusstring

    unpaid, recorded (der Käufer hat eine außerhalb von Pleaxy geleistete Zahlung erfasst), processing oder paid_through_pleaxy (eine Zahlung über Pleaxy), withdrawn (der Käufer hat seine Erfassung zurückgezogen) oder failed (nur für Aufrufer mit Käuferrolle: die letzte Zahlung über Pleaxy ist fehlgeschlagen, Zeitpunkt in failedAt).

  • payment.methodstring

    Wie bezahlt wurde. credit: mit Gutschriften beglichen; nothing_due: für 0 freigegeben.

  • payment.adviceVersionnumber

    1 für die erste Erfassung; eine höhere Nummer ersetzt das frühere Zahlungsavis.

  • payment.netPaidobject

    Was beim Lieferanten ankam, in der Währung des Zahlbetrags: der Zahlbetrag abzüglich aller Einbehalte.

Fehler

  • 404 Not Found - Keine Rechnung mit dieser ID gehört Ihnen.
  • 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}/invoices/{invoiceId}/remittance
Anfrage
curl "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/invoices/{invoiceId}/remittance" \
  -H "X-Api-Key: $PLEAXY_API_KEY"
Antwort · 200 OK
{
   "invoiceId": "string",
   "invoiceNumber": "string",
   "status": "unpaid" | "recorded" | "processing" | "paid_through_pleaxy" | "withdrawn" | "failed",
   "failedAt": "string",
   "paid": boolean,
   "paidAt": "string",
   "amountDue": { "amount": number, "currency": "string" },
   "payment": {
      "method": "ach" | "wire" | "check" | "card" | "other" | "credit" | "nothing_due" | "stripe",
      "paymentDate": "string",
      "reference": "string",
      "adviceVersion": number,
      "withheld": [ { "description": "string", "amount": number, "rate": number } ],
      "netPaid": { "amount": number, "currency": "string" },
      "paidInOtherCurrency": { "amount": number, "currency": "string", "rate": number, "rateDate": "string" }
   },
   "remittances": [ { "id": "string", "sentAt": "string", "note": "string", "file": { "fileName": "string", "contentType": "string", "sizeBytes": number } } ]
}

Zahlungsavisdokument einer Rechnung abrufen

Gibt die Zahlung einer Rechnung als cXML oder UBL zurück.

GET/v1/workspaces/{regionId}/invoices/{invoiceId}/remittance/document

Parameter

  • invoiceIdstringPflicht

    Die ID der Rechnung.

  • format"cxml" | "ubl"

    Das Dokumentformat. Standardwert cxml.

  • buyerstring

    Aufrufer mit Lieferantenrolle: die Workspace-ID des Käufers, wenn zwei Käufer dieselbe ID ausgestellt haben.

Rückgabe

200 OK mit dem in der Antwort gezeigten Objekt.

Weitere Details

GetInvoiceRemittance als Dokument. format=cxml (Standard) ist ein cXML PaymentRemittanceRequest; format=ubl ist ein UBL 2.1 RemittanceAdvice.

Fehler

  • 400 Bad Request - format ist weder cxml noch ubl.
  • 404 Not Found - Keine Rechnung mit dieser ID gehört Ihnen.
  • 409 Conflict - Code NO_PAYMENT: Es wurde noch nichts bezahlt oder erfasst. GetInvoiceRemittance liefert den Status.
  • 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}/invoices/{invoiceId}/remittance/document
Anfrage
curl "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/invoices/{invoiceId}/remittance/document" \
  -H "X-Api-Key: $PLEAXY_API_KEY"
Antwort · 200 OK
application/xml

Zahlungen erfassen

Erfasst Zahlungen, die Ihr ERP oder Ihre Bank bereits geleistet hat, bis zu 50 auf einmal.

POST/v1/workspaces/{regionId}/invoices/payment-records

Body

  • paymentsArrayPflicht

    1-50 Zahlungen: { invoiceId, method, paymentDate, reference, note?, amount?, currency?, rate?, rateDate?, withholdings?, confirmReplaced? }, jedes Feld wie bei RecordPayment.

Rückgabe

200 OK mit dem in der Antwort gezeigten Objekt.

Weitere Details

Erfasst Zahlungen, die Ihr ERP oder Bank-Feed bereits außerhalb von Pleaxy geleistet hat - Überweisungen, Schecks, ACH, Karte -, damit jeder Lieferant seine Zahlungsbenachrichtigung, sein Zahlungsavis und sein Sync-Ereignis erhält, ohne dass jemand etwas abtippt. Dabei wird kein Geld bewegt. Jede Zahlung folgt den Regeln von RecordPayment und wird einzeln beantwortet; eine Wiederholung ist unbedenklich (already_recorded). Eine von einem API-Schlüssel freigegebene Rechnung wird weiterhin abgelehnt. note wird zu einer Notiz im Zahlungsavis für den Lieferanten; einen Zahlungsnachweis kann nur eine Person anhängen.

Nur Käufer-API-Schlüssel mit dem Scope payments:record, erzeugt mit einer procurementRole, die Rechnungen bearbeiten kann (administrator oder finance). Eine angemeldete Person verwendet RecordPayment.

Antwortfelder

  • results[].outcomestring

    recorded, already_recorded (dieselbe Zahlung wurde bereits erfasst) oder abgelehnt mit dem Status, Code und der Meldung, die RecordPayment geliefert hätte.

Fehler

  • 400 Bad Request - Der Body ist ungültig: keine Zahlungen, mehr als 50 oder ein Feld, das RecordPayment nicht annimmt. Es wird nichts erfasst.
  • 403 Forbidden - Code API_KEY_REQUIRED (eine angemeldete Person), API_KEY_SCOPE_MISSING (ein Schlüssel ohne payments:record) oder eine Einkaufsrolle, die keine Rechnungen bearbeiten kann.
  • 429 Too Many Requests - Pro Zahlung Code RATE_LIMITED, sobald der Schlüssel heute (UTC) 500 Zahlungen erfasst hat. Jeder Aufruf, der eine Zahlung erfasst, löst zudem eine Benachrichtigung payments_recorded_by_key im Workspace aus, die den Schlüssel und die Rechnungen nennt.
  • 401 Unauthorized - Es wurden keine Zugangsdaten übermittelt, oder der Bearer-Token bzw. der X-Api-Key-Wert fehlt, ist ungültig, abgelaufen oder widerrufen.
POST /v1/workspaces/{regionId}/invoices/payment-records
Anfrage
curl -X POST "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/invoices/payment-records" \
  -H "X-Api-Key: $PLEAXY_API_KEY" \
  -H "Content-Type: application/json" \
  -d @body.json
body.json
{
   "payments": [
      { "invoiceId": "string", "method": "ach" | "wire" | "check" | "card" | "other", "paymentDate": "YYYY-MM-DD", "reference": "string", "note": "string" }
   ]
}
Antwort · 200 OK
{
   "results": [
      { "invoiceId": "string", "outcome": "recorded" | "already_recorded" | "refused", "status": number, "code": "string", "message": "string" }
   ],
   "recorded": number,
   "alreadyRecorded": number,
   "refused": number
}
Kontakt aufnehmen