Spendint API - POST /sn_spend_intg/spendint/invoice

  • Freigeben Version: Zurich
  • Aktualisiert 31. Juli 2025
  • 5 Minuten Lesedauer
  • Akzeptiert Rechnungen von Drittanbietern.

    Wenn sich die Bestellung und Bestellpositionen im Status „Ausstehende Übermittlung“ befinden und die Kundenaufträge und Kundenauftragspositionen nicht ausgefüllt sind, sind der Versand und die Rechnungsübermittlung durch den externen Reseller nicht zulässig. Dies ist nur zulässig, wenn der Status der Bestellung und der Bestellpositionen „Bestellt“ lautet. Außerdem gibt es keine Einschränkungen bezüglich der Abfolge von Versand und Rechnungsübermitlung.

    Nachdem eine Rechnung übermittelt wurde, werden die Rechnung und die Rechnungspositionen einer Bestellung zugeordnet. Bei einer erfolgreichen Zuordnung wird der Status der Rechnung wie folgt festgelegt:
    • Auf Lieferung wartend: Wenn keine Belege vorhanden sind, wurde entweder die Bestellung teilweise geliefert oder die Rechnung muss genehmigt werden.
    • Rechnung bestätigt: Wenn die Bestellung geliefert wurde und der Rechnungsbetrag mit dem Gesamtbetrag der Bestellung übereinstimmt.
    • Überprüfung erforderlich: Wenn die Bestellung geliefert wurde und der Rechnungsbetrag nicht mit dem Gesamtbetrag der Bestellung übereinstimmt.

    Wenn eine gültige Rechnung für eine Position gebucht wird, kann dieselbe Rechnung nicht aktualisiert werden.

    Wenn die vorgelegte Rechnung keine Kaufauftragsnummer enthält, wird die Rechnung abgelehnt und Sie erhalten eine Fehlermeldung, die besagt, dass eine oder mehrere der vorgelegten Rechnungen keine Kaufauftragsnummer haben. Wenn die vorgelegte Rechnung eine Kaufauftragsnummer hat, diese aber nicht mit der Bestellung übereinstimmt oder keine Bestellung vorhanden ist, wird eine Fehlermeldung angezeigt. Die Meldung besagt, dass für eine oder mehrere Rechnungen keine Bestellung vorhanden ist, die der Bestellnummer der Rechnung entspricht. Außerdem wird die Rechnung abgelehnt, wenn der vom Drittpartei-Reseller übermittelte Rechnungsbetrag nicht mit dem in Rechnung gestellten Betrag übereinstimmt.

    Statustabellen

    Um den Status der Rechnungsanforderung zu erfahren, führen Sie in der ServiceNow-Datenbank mit der Tabelle „REST-APIs“ einen REST-Aufruf durch. Die Antwort der API listet die Datensätze auf, bei denen die Rechnungserstellung fehlgeschlagen ist. Um eine Antwort für die Rechnung zu erhalten, fragen Sie die Tabelle „Rechnungsfehler“ mit dem folgenden Parameter ab:

    sysparm_query=outbound_error.supplier_id=<supplier_id>^outbound_error.state=20

    Die Detailinformationen zu Kunden-ID, Lieferanten-ID, Fehlertyp, eindeutiger Import Set-ID und Status finden Sie in der Tabelle „Ausgehender Status“, der übergeordneten Fehlertabelle.

    URL-Format

    /api/sn_spend_intg/spendint/invoice

    Unterstützte Anforderungsparameter

    Tabelle : 1. Pfadparameter
    Name Beschreibung
    Keine
    Tabelle : 2. Abfrageparameter
    Name Beschreibung
    Modus Unterstützung des asynchronen und des synchronen Modus für die Drittanbieterintegration.

    Datentyp: Zeichenfolge

    Gültige Werte:
    • async: asynchroner Modus.
    • sync: synchroner Modus.

    Standard: async

    Tabelle : 3. Anforderungstextparameter (XML oder JSON)
    Name Beschreibung
    currency Erforderlich. Währung für die Zwischensumme, die Steuern und den Versand. Die Zwischensumme, die Steuern und der Versand müssen in derselben Währung angegeben sein.

    Datentyp: Zeichenfolge

    Maximale Länge: 40

    customer_id Bezeichner für den Kunden.

    Datentyp: Zeichenfolge

    Maximale Länge: 100

    discounts Rabatte, die auf die Rechnung angewendet werden. Dies ist ein bearbeitbares Feld.

    Datentyp: Zeichenfolge

    Maximale Länge: 100

    invoice_date Erforderlich. Datum, an dem dem Kunden eine Rechnung ausgestellt wurde.

    Datentyp: Zeichenfolge

    Maximale Länge: 40

    Format: JJJJ-MM-TT

    invoice_lines Liste der Objekte, die die Positionen definieren, die für Käufe in dieser Bestellung in Rechnung gestellt werden.

    Datentyp: Array

    "invoice_lines": [
      {
        "invoiced_line_amount": "String",
        "invoiced_quantity": "String",
        "line_number": "String",
        "supplier_invoice_line_number": "String",
        "sales_order_line_number": "String"
      }
    ]
    invoice_lines.invoiced_line_amount Erforderlich. Gesamtkosten (ohne Steuern und Versand), die einem Kunden für eine bestimmte Bestellposition in Rechnung gestellt werden.

    Datentyp: Zeichenfolge

    Maximale Länge: 40

    invoice_lines.invoiced_quantity Erforderlich. Menge der Waren oder Dienstleistungen, die einem Kunden in Rechnung gestellt wird.

    Datentyp: Zeichenfolge

    Maximale Länge: 40

    invoice_lines.line_number Erforderlich. Bestellpositionsnummer, die vom Kunden für einen bestimmten Kauf generiert wird.

    Datentyp: Zeichenfolge

    Maximale Länge: 40

    invoice_lines.sales_order_line_number Erforderlich. Verkaufsauftragspositionsnummer, die vom Lieferanten generiert wird.

    Datentyp: Zeichenfolge

    Maximale Länge: 40

    invoice_lines.supplier_invoice_line_number Erforderlich. Identifikationsnummer, die von einem Lieferanten für diese Rechnungsposition generiert wird.

    Datentyp: Zeichenfolge

    Maximale Länge: 100

    other_charges Andere zusätzliche Gebühren, die der Rechnung zugeordnet sind. Dies ist ein bearbeitbares Feld.

    Datentyp: Zeichenfolge

    Maximale Länge: 100

    order_number Erforderlich. Kaufauftragsnummer, die der Kunde für diese Bestellung angegeben hat.

    Datentyp: Zeichenfolge

    Maximale Länge: 40

    remit_to_address Erforderlich. Standort, an den eine Zahlung ergeht.

    Datentyp: Zeichenfolge

    Maximale Länge: 1.000

    sales_order_number Erforderlich. Nummer oder Wert, die/der vom Lieferanten für diesen Auftrag generiert wird.

    Datentyp: Zeichenfolge

    Maximale Länge: 40

    shipping Erforderlich. Gesamtversandkosten für den gesamten Kauf.

    Datentyp: Zeichenfolge

    Maximale Länge: 40

    Zwischensumme Erforderlich. Gesamtbetrag des an den Lieferanten zu zahlenden Geldbetrags ohne Steuern und Versandkosten.

    Datentyp: Zeichenfolge

    Maximale Länge: 40

    supplier_id Erforderlich. Bezeichner für den Reseller oder Lieferanten, bei dem der Kunde Bestellungen aufgeben kann.

    Datentyp: Zeichenfolge

    Maximale Länge: 100

    supplier_invoice_number Erforderlich. Identifikationsnummer, die von einem Lieferanten für diese Rechnung generiert wird.

    Datentyp: Zeichenfolge

    Maximale Länge: 100

    supplier_tax_id Steuerbezeichner, der dem Drittpartei-Reseller zugeordnet ist. Dies ist ein bearbeitbares Feld.

    Datentyp: Zeichenfolge

    Maximale Länge: 100

    tax Erforderlich. Gesamtbetrag der Steuern, die für den Kauf in Rechnung gestellt werden.

    Datentyp: Zeichenfolge

    Maximale Länge: 40

    tax_rate Steuersatz in Prozent, der für den Auftrag angewendet wird. Dies ist ein bearbeitbares Feld.

    Datentyp: Zeichenfolge

    Maximale Länge: 100

    third_party_import_id Bezeichner, der es einer Drittpartei ermöglicht, einen Zeichenfolgenwert zu übergeben, um einen Satz importierter Daten eindeutig zu identifizieren.

    Datentyp: Zeichenfolge

    Maximale Länge: 100

    total_amount_invoiced Erforderlich. Gesamtbetrag des an den Lieferanten zu zahlenden Geldbetrags, einschließlich Steuern und Versandkosten.

    Datentyp: Zeichenfolge

    Maximale Länge: 40

    Header

    Die folgenden Anforderungs- und Antwort-Header gelten nur für diese HTTP-Aktion oder sie gelten für diese Aktion auf besondere Weise.

    Tabelle : 4. Anforderungsheader
    Kopfzeile Beschreibung
    Akzeptieren Datenformat des Antworttexts. Unterstützte Typen: application/json oder application/xml.

    Standard: application/json

    Hinweis:
    Für Procurement Integration Framework wird nur das Datenformat application/json unterstützt.
    Tabelle : 5. Antwort-Header
    Kopfzeile Beschreibung
    Keine

    Statuscodes

    Die folgenden Statuscodes gelten für diese HTTP-Aktion.

    Tabelle : 6. Statuscodes
    Statuscode Beschreibung
    Erfolg Erfolgreich. Die Anforderung wurde erfolgreich verarbeitet.
    Fehler Nicht erfolgreich. Die Anforderung wurde mit Fehlern verarbeitet.

    Parameter des Antwort-Haupttexts (JSON)

    Diese Antworttextparameter werden bei einer Abfrage im synchronen Modus empfangen.
    Name Beschreibung
    error_response_body Beschreibung der Fehler, aufgelistet nach Verkaufsauftragspositionsnummer, Verkaufsauftragsnummer, Lieferantenrechnungsnummer, Lieferantenrechnungspositionsnummer und Fehlermeldung.

    Datentyp: Array

    error_response_body.error_message Detaillierte Fehlermeldung.

    Datentyp: Zeichenfolge

    status_code Antwortstatus wie „Erfolg“ oder „Fehler“.

    Datentyp: Zeichenfolge

    cURL-Anforderung

    curl "https://instance.service-now.com/api/sn_spend_intg/spendint/invoice" \
    --request POST \
    --header "Accept:application/json" \
    --user 'username':'password'
    {"root":[{
      "customer_id": "Customer - A",
      "supplier_id": "SUP-123456",
      "third_party_import_id": "undefined",
      "supplier_invoice_number": "QAAP89873220071",
      "supplier_tax_id": "TIN000000",
      "order_number": "POL7987633",
      "sales_order_number": "SO0000000081",
      "invoice_date": "YYYY-MM-DD",
      "subtotal": "6000",
      "tax_rate": "10%",
      "tax": "600",
      "shipping": "120",
      "other_charges": "100",
      "discounts": "200",
      "total_amount_invoiced": "6620",
      "remit_to_address": "1640 Camino Del Rio North #202, San Diego,CA",
      "currency": "USD",
      "invoice_lines": [
        {
          "supplier_invoice_line_number": "QA789A867877ABN32251",
          "line_number": "POL587667",
          "sales_order_line_number": "SOL00000081",
          "invoiced_quantity": "45",
          "invoiced_line_amount": "4000"
        },
        {
          "line_number": "POL587668",
          "supplier_invoice_line_number": "78987323",
          "sales_order_line_number": "SOL98769",
          "invoiced_quantity": "12",
          "invoiced_line_amount": "2000"
        }
      ]
    }
    ]}

    Mögliche Antworten:

    // Success response:
    {
        "result": {
            "response": "success"
        }
    }
    
    // Error response:
    {
        "result": {
            "response": [
                {
                    "customer_id": "Customer - A",
                    "supplier_id": "SUP-123456",
                    "third_party_import_id": "undefined",
                    "status_code": "failure",
                    "error_response_body": [
                        {
                            "sales_order_line_number": "SOL00000081",
                            "sales_order_number": "SO0000000081",
                            "supplier_invoice_number": "QAAP89873220071",
                            "supplier_invoice_line_number": "QA789A867877ABN32251",
                            "error_message": "The invoice do not have a corresponding purchase order which matches the purchase order number of the invoice provided\n"
                        }
                    ]
                }
            ]
        }
    }