Spendint-API

  • Freigeben Version: Zurich
  • Aktualisiert 31. Juli 2025
  • 28 Minuten Lesedauer
  • Die Spendint-API bietet Endpunkte, die Katalog-, Preis-, Verfügbarkeits-, Bestell-, Versand- und Rechnungsinformationen von einer Drittpartei an die ServiceNow-Instanz weiterleiten. Diese API ist Teil von Framework für Source-to-Pay-Integration Anwendung.

    Diese API erfordert die Store-Anwendung Procurement Integration Framework (com.Glide.sn_spend_intg) und wird in bereitgestellt sn_Ausgaben_intg Namespace. Informationen hierzu finden Sie unter Procurement File Transfer Framework.

    Für den Zugriff auf diese API benötigen Sie die Rolle sn_spend_intg.procurement_integrator.

    Spendint API - POST /sn_spend_intg/spendint/catalog

    Ermöglicht Lieferanten, mehrere Kataloge zum Erstellen von Lieferantenprodukten, Modellprodukten, Verträgen und Preisdatensätzen zu veröffentlichen.

    Wenn Sie in der Integration der Katalog-API Daten aus dem Katalog einer Drittpartei erhalten, können Sie folgende Schritte ausführen:
    1. Erstellen Sie neue Drittpartei-Kategorien und ordnen Sie diese Kategorien Modellkategorien zu.
      • Wenn verfügbar, verwenden Sie den United Nations Standard Products and Services Code (UNSPSC) und dann den Kategorienamen.
      • Wenn der UNSPSC nicht verfügbar ist, verwenden Sie nur den Kategorienamen.
    2. Nachdem Sie einer Modellkategorie eine Drittpartei-Kategorie zugeordnet haben, verwenden Sie die Teilenummer des Herstellers (Manufacturer Part Number, MPN) für die Suche nach einem vorhandenen Produktmodell, sofern eines verfügbar ist.
      1. Wenn ein Produktmodell für die MPN gefunden wird, aktualisieren Sie das Produktmodell mit allen Änderungen und erstellen oder aktualisieren anschließend alle Lieferantenprodukte, die sich auf das Produktmodell beziehen.
      2. Wenn für die MPN kein Produktmodell vorhanden ist, gehen Sie folgendermaßen vor:
        1. Eine Produktmodellklasse ist normalerweise für die Modellkategorie verfügbar, auf die die Drittpartei-Kategorie für das Produkt verweist. Verwenden Sie diese Produktmodellklasse, um die Produktmodelltabelle abzurufen, in der das Produktmodell erstellt werden soll, z. B. Hardware, Software, Verbrauchsmaterialien usw. Wenn keine Produktmodellklasse verfügbar ist, erstellen Sie das Produktmodell in der Produktmodell-Basistabelle.
        2. Nachdem Sie die richtige Produktmodellklasse ermittelt haben, erstellen Sie folgendermaßen ein neues Produktmodell in der richtigen Klasse:
          • Hersteller, Herausgeber oder Anbieter sind dem Hersteller im Produktmodell zuzuordnen.
          • Der Produktname aus der API muss dem Namen im Produktmodell zugeordnet werden.
          • Die MPN aus der API muss die Modellnummer aktualisieren.
          • Die Produktbeschreibung aus der API muss die Beschreibung im Produktmodell aktualisieren.
          • Die Modellkategorie muss mit der Produktkategorie aktualisiert werden, auf die im Datensatz der Drittpartei-Kategorie verwiesen wird.
          • Die Produktkategorie muss mit der Produktkategorie aktualisiert werden, auf die im Datensatz der Drittpartei-Kategorie verwiesen wird.
          • Wenn die Ersatzprodukte in der API Werte enthalten, erstellen Sie die Ersatzproduktdatensätze zwischen dem aktuellen Produktmodell und den anderen Produktmodellen.
          • Wenn die kompatiblen Produkte in der API Werte enthalten, erstellen Sie die Datensätze der kompatiblen Produkte zwischen dem aktuellen Produktmodell und den anderen Produktmodellen.
          • Produktattribute aus der API müssen in der zugehörigen Liste der Produktattribute für das Produktmodell erstellt oder aktualisiert werden.
    3. Wenn ein Produktmodell verfügbar ist, verwenden Sie die Teilenummer des Lieferanten, um die Lieferantenprodukte zu erstellen oder zu aktualisieren, die sich auf das Produktmodell beziehen.

    Drittpartei-Zuordnung

    Verwenden Sie die folgenden Tabellen für die Zuordnungen von Drittpartei-Kategorien, Modellen und Einheiten:
    • Drittpartei-Kategorien: Speichert alle Datensätze der Drittpartei-Kategorien für den ShoppingHub-Administrator, um sie den vorhandenen internen Modellkategorien zuzuordnen.
    • Drittpartei/Modell-Zuordnungen: Speichert alle Informationen zu Zuordnungen zwischen Produktmodellen und Drittpartei-Modellkategorien.
    • Drittpartei-Einheiten: Speichert alle Datensätze von Drittpartei-Einheiten, die der ShoppingHub-Administrator den Produkteinheiten des Lieferanten zuordnen soll.
    • Drittpartei/Einheit-Zuordnungen: Speichert alle Informationen zu Zuordnungen zwischen Produktmodellen und Drittpartei-Einheiten.
    Hinweis:
    Das Produkt einer Drittpartei-Integration wird automatisch veröffentlicht, wenn sowohl die Drittpartei-Kategorie als auch die Drittpartei-Einheit entsprechend zugeordnet wurden.

    Verkaufsdaten des Lieferantenprodukts

    Ein Lieferantenprodukt wird eingestellt und nicht mehr im Katalog veröffentlicht, wenn es sein Enddatum für den Verkauf erreicht hat. Die Felder Startdatum für Verkauf und Enddatum für Verkauf im Formular „Lieferantenprodukt“ werden durch die Drittpartei-Integration aus der Katalog-API ausgefüllt.

    Statustabellen

    Um den Status der Anforderung für den Massenimport eines Produkts zu erfahren, führen Sie mithilfe der Tabelle „REST-APIs“ einen REST-Aufruf in der ServiceNow-Datenbank durch. Die Antwort der API listet die Datensätze auf, bei denen die Massenimportanforderung fehlgeschlagen ist. Um die Antwort auf den Massenimport eines Produkts zu erhalten, fragen Sie die Tabelle „Katalogfehler“ mit dem folgenden Parameter ab:

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

    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/catalog

    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
    customer_id Bezeichner für den Kunden.

    Datentyp: Zeichenfolge

    Maximale Länge: 100

    catalog_id Bezeichner für den Kataloginhalt, der von einem Kunden erworben werden kann.

    Datentyp: Zeichenfolge

    Maximale Länge: 100

    products Liste der Objekte, die Produkte zu erstellende oder zu aktualisierende Produkte definieren. Jede Transaktion hat ein Limit von 1.000 Produkten.

    Datentyp: Array

    "products": [
      {
        "available_units": "String",
        "available_for_country": [Array],
        "bundled_components": [Array],
        "contract_agreement": {Object},
        "delivery_time": "String",
        "images": [Array],
        "manufacturer": "String",
        "mpn": "String",
        "parent_bundle": "String",
        "product_attributes": {Object},
        "product_category_name": "String",
        "product_description": "String",
        "product_name": "String",
        "sku": "String",
        "unit": "String",
        "unspsc": "String",
      }
    ]
    products.available_units Erforderlich für Produkte, die auf Lager gehalten werden. Dieser Wert gibt die Anzahl der Einheiten an, die für dieses Produkt verfügbar sind.

    Datentyp: Zeichenfolge

    Maximale Länge: 40

    products.available_for_country Liste mit den Codes der Länder, in denen das Lieferantenprodukt erworben werden kann. Wenn kein Land angegeben ist, kann das Produkt von Benutzern aus beliebigen Ländern erworben werden.

    Datentyp: Array

    "available_for_country": ["US","IN","GB"]
    products.bundled_components Gilt nur für Szenarien, in denen ein Produktpaket als Teil der Katalognutzlast gesendet wird, und gilt nur für die Nutzlasten des übergeordneten Pakets. Dieser Wert enthält den Verweis auf die untergeordneten Paketkomponenten. Hier werden die Liste der Herstellerteilenummern und die Mengen für die untergeordneten Paketkomponenten verwaltet.
    Hinweis:
    Da dieselbe untergeordnete Paketkomponente innerhalb eines Pakets mehrmals hinzugefügt werden kann, ist die eingegebene Menge das Unterscheidungsmerkmal zwischen identischen untergeordneten Paketkomponenten.
    Die untergeordneten Paketkomponenten und ihre Details (Herstellerteilenummern und Mengen) sind demselben Lieferanten zuzuordnen.

    Datentyp: Array

    "bundled_components": [
      {
        "mpn": "String",
        "quantity": "String"
      }
    ]
    products.contract_agreement Details des Vertrags für ein Produkt.
    Hinweis:
    Dies ist für untergeordnete Paketkomponenten nicht erforderlich.

    Datentyp: Objekt

    "contract_agreement": {
      "contract_end_date": "String",
      "contract_number": "String",
      "contract_start_date": "String",
      "negotiated_currency ": "String",
      "negotiated_price": "String"
    }
    products.contract_agreement.contract_end_date Datum, an dem die Vertragslaufzeit endet.

    Datentyp: Zeichenfolge

    Maximale Länge: 40

    Format: JJJJ-MM-TT

    products.contract_agreement.contract_number Erforderlich. Nummer des aktiven Vertrags, der dem Produkt zugeordnet ist.

    Datentyp: Zeichenfolge

    Maximale Länge: 100

    products.contract_agreement.contract_start_date Datum, an dem die Vertragslaufzeit beginnt.

    Datentyp: Zeichenfolge

    Maximale Länge: 40

    Format: JJJJ-MM-TT

    products.contract_agreement.negotiated_currency Erforderlich. Währung des ausgehandelten Preises.

    Datentyp: Zeichenfolge

    Maximale Länge: 40

    products.contract_agreement.negotiated_price Erforderlich. Stückpreis eines Produkts, wie vertraglich mit dem Lieferanten oder Reseller ausgehandelt.

    Datentyp: Zeichenfolge

    Maximale Länge: 40

    products.delivery_time Geschätzte Anzahl der Tage, die der Versand eines Produkts an einen Kunden dauert. Dieser Wert muss der Anzahl an Tagen entsprechen und eine ganze Zahl sein.

    Datentyp: Zeichenfolge

    Maximale Länge: 40

    products.images Liste der Zeichenfolgen, die die Bild-URLs für das Lieferantenprodukt angeben.

    Datentyp: Array

    products.manufacturer Erforderlich. Unternehmen, das das Produkt herstellt, veröffentlicht oder bereitstellt. Dies ist nicht der Lieferant oder Reseller des Produkts.

    Datentyp: Zeichenfolge

    Maximale Länge: 100

    products.mpn Erforderlich. Bezeichner für ein Produkt, der vom Hersteller, Herausgeber oder Anbieter bereitgestellt wird.
    Hinweis:
    Dies ist für übergeordnete Reseller-Pakete nicht erforderlich, wenn der SKU-Wert verfügbar ist.

    Datentyp: Zeichenfolge

    Maximale Länge: 100

    products.parent_bundle Gilt nur für Szenarien, in denen ein Produktpaket als Teil der Katalognutzlast gesendet wird, und gilt nur für die Nutzlasten der untergeordneten Paketkomponente. Bei einer untergeordneten Paketkomponente wird hier der Verweis auf das übergeordnete Element beibehalten. Der übergeordnete MPN- und der übergeordnete SKU-Wert werden hier ebenfalls festgelegt.

    Datentyp: Zeichenfolge

    Maximale Länge: 100

    products.product_attributes Liste der Schlüssel/Wert-Paare, die Produktattribute definieren, z. B. „Farbe“: „Space Grey“. Für jedes Produkt sind jeweils mehrere Attribute zulässig. Über die API sollten jedoch nur die Attribute bereitgestellt werden, die sich auf die Preisgestaltung oder die Lagerverfügbarkeit auswirken.

    Datentyp: Objekt

    products.product_category_name Erforderlich. Name, den Sie eingeben, wenn Sie die Eigenschaft unspsc nicht festlegen. Dieser Name entspricht der Kategorie, zu der ein Produkt gehört. Dieser Kategoriename kann in einem Commerce-Szenario verwendet werden, um das Produkt zu kaufen. Zum Beispiel könnte das Produkt „Steckdosenleiste“ zu einer Kategorie „Büroausstattung“ gehören.

    Datentyp: Zeichenfolge

    Maximale Länge: 100

    products.product_description Vollständige Beschreibung des Produkts, die dem Käufer in einer Einkaufs-Experience angezeigt wird.
    Hinweis:
    Der Lieferant sollte das Produkt hier so genau wie möglich beschreiben, insbesondere, wenn es sich bei den Katalogelementen um Produktpakete handelt, für die untergeordnete Paketkomponenten verfügbar sind.

    Datentyp: Zeichenfolge

    Maximale Länge: 65.000

    products.product_name Erforderlich. Name des Produkts.

    Datentyp: Zeichenfolge

    Maximale Länge: 1.000

    products.sku Erforderlich. Nummer, die von einem Lieferanten generiert wird und ein Produkt eindeutig identifiziert, das von diesem Lieferanten verkauft wird.

    Datentyp: Zeichenfolge

    Maximale Länge: 100

    products.unit Erforderlich. Einheit oder Tarif für den Verkauf dieses Produktes durch den Lieferanten. Beispiele: Stücke, Stunden usw.

    Datentyp: Zeichenfolge

    Maximale Länge: 40

    products.unspsc Erforderlich. Bezeichner, den Sie eingeben, wenn Sie die Eigenschaft product_category_name nicht festlegen. Dieser Bezeichner entspricht dem UNSPSC für die Kategorie, zu der ein Produkt gehört. Zum Beispiel ist der UNSPSC-Code 43210000 der Bezeichner für die Produktkategorie „Computer“.

    Datentyp: Zeichenfolge

    Maximale Länge: 100

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

    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

    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 SKU, MPN 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/catalog" \
    --request POST \
    --header "Accept:application/json" \
    --user 'username':'password'
    {"root": [{
      "customer_id": "AB-1234323",
      "catalog_id": "ACME CORP-12347898",
      "supplier_id": "SUP-123456",
      "third_party_import_id": "DELL1234567",
      "products": [
        {
          "product_name": "Apple MacBook Pro 13 Core i7",
          "mpn": "Z0WQ-20004301931",
          "sku": "55788741",
          "manufacturer": "Apple",
          "product_category_name": "Computer",
          "parent_bundle": "920-0045362002",
          "bundled_components": {
            "mpn": "Z0WQ-20004301931",
            "quantity": "4",
           },
          "unspsc": "43211500",
          "product_description": "Apple MacBook Pro 13 Core i7 2.8GHz 16GB 512GB - Touch Bar - Space Gray",
          "product_attributes": {
            "Color": "Space Grey",
            "RAM": "16GB",
            "Screen Size": "13inch"
          },
          "images": ["http://test123.image1.png", "http://test123.image2.jpeg"],
          "unit": "Each",
          "available_units": "4",
          "available_for_country": ["US","IN","GB"],
          "delivery_time": "4",
          "contract_agreement": {
            "contract_number": "34567892",
            "contract_start_date": "YYYY-MM-DD",
            "contract_end_date": "YYYY-MM-DD",
            "negotiated_price": "456",
            "negotiated_currency ": "USD"
          }
        }
      ]
    }
    ]}
    

    Mögliche Antworten:

    // Success response:
    {
        "result": {
            "response": "success"
        }
    }
    
    // Error response:
    {
        "result": {
            "response": [
                {
                    "customer_id": "AB-1234323",
                    "supplier_id": "SUP-123456",
                    "third_party_import_id": "DELL1234567",
                    "status_code": "failure",
                    "error_response_body": [
                        {
                            "sku": "55788741",
                            "mpn": "Z0WQ-20004301931",
                            "error_message": "Field Value empty/Formatting issue Negotiated currency \n"
                        }
                    ]
                }
            ]
        }
    }

    Spendint API - POST /sn_spend_intg/spendint/price

    Aktualisiert alle Preise für Lieferantenproduktdatensätze.

    Wenn die Preisgestaltung für Lieferantenproduktdatensätze verfügbar ist, verwendet die API die Produkt-SKU für die Suche nach einem vorhandenen Lieferantenprodukt. Wenn ein passendes Lieferantenprodukt vorhanden ist, wird der entsprechende Vertragspreis aktualisiert. Wenn kein passendes Lieferantenprodukt gefunden wird, wird eine Fehlermeldung generiert, die besagt, dass das Produkt, für das Sie die Preisgestaltung aktualisieren möchten, nicht vorhanden ist.

    Statustabellen

    Um den Status der Preisimportanforderung 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 Preisimportanforderung fehlgeschlagen ist. Fragen Sie für die Antwort auf einen Preisimport die Tabelle „Preisfehler“ mit dem folgenden Parameter ab:

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

    Details 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/price

    Unterstützte Anforderungsparameter

    Tabelle : 7. Pfadparameter
    Name Beschreibung
    Keine
    Tabelle : 8. 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 : 9. Anforderungstextparameter (XML oder JSON)
    Name Beschreibung
    catalog_id Erforderlich. Bezeichner für den Kataloginhalt, der von einem Kunden erworben werden kann.

    Datentyp: Zeichenfolge

    Maximale Länge: 100

    customer_id Erforderlich. Bezeichner für den Kunden.

    Datentyp: Zeichenfolge

    Maximale Länge: 100

    products Liste der Objekte, die Produkte zu erstellende oder zu aktualisierende Produkte definieren. Jede Transaktion hat ein Limit von 1.000 Produkten.

    Datentyp: Array

    "products": [
      {
        "contract_agreement": {Array},
        "sku": "String"
      }
    ]
    products.contract_agreement Details des Vertrags für ein Produkt.

    Datentyp: Objekt

    "contract_agreement": {
      "contract_end_date": "String",
      "contract_number": "String",
      "contract_start_date": "String",
      "negotiated_currency ": "String",
      "negotiated_price": "String"
    }
    products.contract_agreement.contract_end_date Datum, an dem die Vertragslaufzeit endet.

    Datentyp: Zeichenfolge

    Maximale Länge: 40

    Format: JJJJ-MM-TT

    products.contract_agreement.contract_number Erforderlich. Nummer des aktiven Vertrags, der dem Produkt zugeordnet ist.

    Datentyp: Zeichenfolge

    Maximale Länge: 100

    products.contract_agreement.contract_start_date Datum, an dem die Vertragslaufzeit beginnt.

    Datentyp: Zeichenfolge

    Maximale Länge: 40

    Format: JJJJ-MM-TT

    products.contract_agreement.negotiated_currency Erforderlich. Währung des ausgehandelten Preises.

    Datentyp: Zeichenfolge

    Maximale Länge: 40

    products.contract_agreement.negotiated_price Erforderlich. Stückpreis eines Produkts, wie vertraglich mit dem Lieferanten oder Reseller ausgehandelt.

    Datentyp: Zeichenfolge

    Maximale Länge: 40

    products.sku Erforderlich. Nummer, die von einem Lieferanten generiert wird und ein Produkt eindeutig identifiziert, das von diesem Lieferanten verkauft wird.

    Datentyp: Zeichenfolge

    Maximale Länge: 100

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

    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

    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 : 10. 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 : 11. Antwort-Header
    Kopfzeile Beschreibung
    Keine

    Statuscodes

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

    Tabelle : 12. 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 SKU 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/price" \
    --request POST \
    --header "Accept:application/json" \
    --user 'username':'password'
    {"root": [{
      "customer_id": "ACME CORP",
      "catalog_id": "AB-1234323",
      "supplier_id": "SUP-123456",
      “third_party_import_id”: “DEL789876",
      "products": [
        {
          "sku": "5578874",
          "contract_agreement": {
            "contract_number": "34567892",
            "contract_start_date": "YYYY-MM-DD",
            "contract_end_date": "YYYY-MM-DD",
            "negotiated_price": "456",
            "negotiated_currency ": "USD"
          }
        }
      ]
    }
    ]}
    

    Mögliche Antworten:

    // Success response:
    {
        “result”: {
            “response”: “success”
        }
    }
    
    // Error response:
    {
        “result”: {
            “response”: [
                {
                    “customer_id”: “ACME CORP”,
                    “supplier_id”: “SUP-123456”,
                    “third_party_import_id”: “DEL789876",
                    “status_code”: “failure”,
                    “error_response_body”: [
                        {
                            “sku”: “5578874”,
                            “error_message”: “The product for which you are trying to update pricing does not exist\nField Value empty/Formatting issue Negotiated currency\nField Value empty/Formatting issue Contract start date\nField Value empty/Formatting issue Contract end date\n”
                        }
                    ]
                }
            ]
        }
    }

    Spendint API - POST /sn_spend_intg/spendint/availability

    Aktualisiert die Verfügbarkeit für Lieferantenproduktdatensätze.

    Wenn Lieferantenproduktdatensätze verfügbar sind, verwendet die API die Produkt-SKU für die Suche nach einem vorhandenen Lieferantenprodukt. Wenn ein passendes Lieferantenprodukt vorhanden ist, wird das entsprechende Feld available_units aktualisiert. Wenn kein passendes Lieferantenprodukt gefunden wird, wird eine Fehlermeldung generiert, die besagt, dass das Produkt, für das Sie die Verfügbarkeit aktualisieren möchten, nicht vorhanden ist.

    Statustabellen

    Um den Status der Anforderung zum Aktualisieren der Verfügbarkeit zu erfahren, führen Sie mit der Tabelle „REST-APIs“ einen REST-Aufruf in der ServiceNow-Datenbank durch. Die Antwort der API listet die Datensätze auf, bei denen die Anforderung zum Aktualisieren der Verfügbarkeit fehlgeschlagen ist. Um eine Antwort zur Aktualisierung der Verfügbarkeit zu erhalten, fragen Sie die Tabelle „Verfügbarkeitsfehler“ 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/availability

    Unterstützte Anforderungsparameter

    Tabelle : 13. Pfadparameter
    Name Beschreibung
    Keine
    Tabelle : 14. 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 : 15. Anforderungstextparameter (XML oder JSON)
    Name Beschreibung
    catalog_id Erforderlich. Bezeichner für den Kataloginhalt, der von einem Kunden erworben werden kann.

    Datentyp: Zeichenfolge

    Maximale Länge: 100

    customer_id Erforderlich. Bezeichner für den Kunden.

    Datentyp: Zeichenfolge

    Maximale Länge: 100

    products Liste der Objekte, die die zu aktualisierenden Produkte definieren. Jede Transaktion hat ein Limit von 1.000 Produkten.

    Datentyp: Array

    "products": [
      {
        "available_units": "String",
        "sku": "String",
        "unit": "String"
      }
    ]
    products.available_units Erforderlich für Produkte, die auf Lager gehalten werden. Anzahl der für dieses Produkt verfügbaren Einheiten.

    Datentyp: Zeichenfolge

    Maximale Länge: 40

    products.sku Erforderlich. Nummer, die von einem Lieferanten generiert wird und ein Produkt eindeutig identifiziert, das von diesem Lieferanten verkauft wird.

    Datentyp: Zeichenfolge

    Maximale Länge: 100

    products.unit Erforderlich. Einheit oder Tarif für den Verkauf dieses Produktes durch den Lieferanten. Beispiele: Stücke, Stunden usw.

    Datentyp: Zeichenfolge

    Maximale Länge: 100

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

    Datentyp: Zeichenfolge

    Maximale Länge: 100

    third_party_import_id Ermöglicht einer Drittpartei, einen Zeichenfolgenwert zu übergeben, um einen Satz importierter Daten eindeutig zu identifizieren.

    Datentyp: Zeichenfolge

    Maximale Länge: 100

    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 : 16. 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 : 17. Antwort-Header
    Kopfzeile Beschreibung
    Keine

    Statuscodes

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

    Tabelle : 18. 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 SKU 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.servicenow.com/api/sn_spend_intg/spendint/availability" \
    --request POST \
    --header "Accept:application/json" \
    --user 'username':'password'
    {"root": [{
      "customer_id": "AB-1234323",
      "catalog_id": "ACME CORP",
      "supplier_id": "SUP-123456",
      "third_party_import_id": "DEL6789876",
      "products": [
        {
          "sku": "5578874",
          "unit": "Each",
          "available_units": "20"
        }
      ]
    }
    ]}
    

    Mögliche Antworten:

    // Success response:
    {
        "result": {
            "response": "success"
        }
    }
    
    Error response: 
    {
        "result": {
            "response": [
                {
                    "customer_id": "AB-1234323",
                    "supplier_id": "SUP-123456",
                    "third_party_import_id": "DEL6789876",
                    "status_code": "failure",
                    "error_response_body": [
                        {
                            "sku": "5578874",
                            "error_message": "The product for which you are trying to update availability does not exist\nField Value empty/Formatting issue Unit\n"
                        }
                    ]
                }
            ]
        }
    }

    Spendint API - POST /sn_spend_intg/spendint/orderack

    Aktualisiert Bestellinformationen für den Fall, dass ein Benutzer ein Produkt aus einem Drittpartei-Katalog kauft. Wenn der Benutzer den Bezahlvorgang durchführt, wird eine Bestellposition erstellt, damit Genehmigungen und andere Aufgaben für den Kauf abgeschlossen werden können.

    Wenn eine Bestellung in der ServiceNow-Datenbank generiert wird, wird die Bestellung in die folgenden Tabellen verschoben:
    • Ausgehende Bestellung: Enthält den Auftragsheader.
    • Ausgehende Bestellposition: Enthält die Auftragspositionen.

    Lieferanten müssen diese Tabellen abfragen und die für sie ausstehenden Bestellungen abrufen. Lieferanten sollten eine bereichsbezogene App für Workflow-Studio-Aktionen erstellen, um die Integration mit der ServiceNow-Datenbank durchzuführen.

    Fragen Sie die Tabellen mit den folgenden Parametern ab:
    • sysparm_query=supplier_id=<supplier_id>^purchase_order.status=20 for header
    • sysparm_query=purchase_order.supplier_id=<supplier_id>^purchase_order.status=20 for header
    Wenn eine Bestellanforderungsposition in eine Bestellposition konvertiert wird, werden die folgenden Prozesse ausgeführt:
    1. Die Bestellung und die Bestellposition werden ggf. an Enterprise Resource Planning (ERP) übermittelt.
    2. Die Bestellung und die Bestellposition werden mit der Kunden-ID, der Lieferanten-ID, die Kaufauftragsnummer, dem Bestelldatum, dem Bestellbetrag, der Bestellbetragwährung und den Bestellpositionen über die Integration an die Drittpartei übertragen.
    3. Die Bestellung und die Bestellposition verbleiben im Status „Ausstehende Übermittlung“, bis sowohl von der Drittpartei-Katalogintegration als auch von ERP eine Bestätigungsnachricht eingeht. Nachdem die Bestätigung eingegangen ist, wird der Status in „Bestellt“ aktualisiert. Wenn keine ERP-Integration beteiligt ist, ist eine Bestätigungsnachricht nur von der Drittpartei-Integration erforderlich.

    Statustabellen

    Um den Status der Anforderung zur Auftragsbestätigung 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 Anforderung zur Auftragsbestätigung fehlgeschlagen ist. Um eine Auftragsbestätigungsantwort zu erhalten, fragen Sie die Tabelle „Auftragsbestätigungsfehler“ 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/orderack

    Unterstützte Anforderungsparameter

    Tabelle : 19. Pfadparameter
    Name Beschreibung
    Keine
    Tabelle : 20. 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 : 21. Anforderungstextparameter (XML oder JSON)
    Name Beschreibung
    customer_id Erforderlich. Bezeichner für den Kunden.

    Datentyp: Zeichenfolge

    Maximale Länge: 100

    order_number Erforderlich. Bestellnummer, die der Kunde für diesen Auftrag angegeben hat.

    Datentyp: Zeichenfolge

    Maximale Länge: 40

    sales_order_lines Liste der Objekte, die die Kundenauftragspositionen mit eindeutigen Aktualisierungen für die Käufe in diesem Auftrag definieren.

    Datentyp: Array

    "sales_order_lines":[
      {
        "estimated_arrival_date": "String",
        "line_number": "String",
        "sales_order_line_number": "String"
      }
    ]
    sales_order_lines.estimated_arrival_date Voraussichtliches Ankunftsdatum der Bestellung.

    Datentyp: Zeichenfolge

    Maximale Länge: 40

    Format: JJJJ-MM-TT

    sales_order_lines.line_number Erforderlich. Bestellpositionsnummer, die vom Kunden für einen bestimmten Kauf generiert wurde.

    Datentyp: Zeichenfolge

    Maximale Länge: 40

    sales_order_lines.sales_order_line_number Verkaufsauftragspositionsnummer, die vom Lieferanten generiert wurde. Diese Nummer ist nur für Überarbeitungen dieses Kaufs erforderlich.

    Datentyp: Zeichenfolge

    Maximale Länge: 40

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

    Datentyp: Zeichenfolge

    Maximale Länge: 40

    status_code Erforderlich. Status des übermittelten Auftrags, der bestätigt, ob der Auftrag erfolgreich erteilt wurde.

    Datentyp: Zeichenfolge

    Gültige Werte:
    • confirmed: Auftrag erfolgreich erteilt.
    • rejected: Auftrag nicht erteilt.
    status_message Nachricht, die an einen Statuscode angehängt ist. Beispielsweise könnte die Nachricht lauten, dass der Auftrag erfolgreich erteilt wurde und im Lieferrückstand ist.

    Datentyp: Zeichenfolge

    Maximale Länge: 1.000

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

    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

    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 : 22. 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 : 23. Antwort-Header
    Kopfzeile Beschreibung
    Keine

    Statuscodes

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

    Tabelle : 24. 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 Verkaufsauftragsnummer, Verkaufsauftragspositionsnummer 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/orderack" \
    --request POST \
    --header "Accept:application/json" \
    --user 'username':'password'
    {"root":[{
      "customer_id": "ACME CORP",
      "supplier_id": "SUP-123456",
      "third_party_import_id": "undefined",
      "order_number": "PO08903323",
      "sales_order_number": "SO03323212",
      "status_code": "CONFIRMED",
      "status_message": "BACKORDERED",
      "sales_order_lines":[
        {
          "line_number": "POL6789876",
          "sales_order_line_number": "SOL5678909",
          "estimated_arrival_date": "YYYY-MM-DD"
        }
      ]
    }
    ]}
    

    Mögliche Antworten:

    // Success response:
    {
        "result": {
            "response": "success"
        }
    }
    
    // Error response:
    {
        "result": {
            "response": [
                {
                    "customer_id": "ACME CORP",
                    "supplier_id": "SUP-123456",
                    "third_party_import_id": "undefined",
                    "status_code": "failure",
                    "error_response_body": [
                        {
                            "sales_order_number": "SO03323212",
                            "sales_order_line_number": "SOL5678909",
                            "error_message": "Field Value empty/Formatting issue Purchase order number\nField Value empty/Formatting issue Purchase order line number\n"
                        }
                    ]
                }
            ]
        }
    }

    Spendint API - POST /sn_spend_intg/spendint/shipment

    Verwenden Sie diesen Endpunkt, um Updates für Käufe von Drittparteien zu akzeptieren.

    Wenn Sie Daten empfangen, müssen Sie die Versanddaten über die Verkaufsauftragspositionsnummer mit einer Bestellposition abgleichen. Sie können die Nachverfolgungsnummer verwenden, um nach einem vorhandenen Versanddetail-Datensatz zu suchen, der sich auf die Bestellposition bezieht. Wenn kein solcher Datensatz gefunden wird, erstellen Sie einen neuen Versanddetail-Datensatz. Wenn für die Versanddaten keine Bestellung oder Bestellposition vorhanden ist, wird eine Fehlermeldung angezeigt, die besagt, dass die Bestellung für diesen Versand nicht vorhanden ist.
    Hinweis:
    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.

    Statustabellen

    Um den Status der Versandanforderung 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 Versandaktualisierung fehlgeschlagen ist. Um eine Versandantwort zu erhalten, fragen Sie die Tabelle „Versandfehler“ 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/shipment

    Unterstützte Anforderungsparameter

    Tabelle : 25. Pfadparameter
    Name Beschreibung
    Keine
    Tabelle : 26. 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 : 27. Anforderungstextparameter (XML oder JSON)
    Name Beschreibung
    customer_id Bezeichner für den Kunden.

    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

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

    Datentyp: Zeichenfolge

    Maximale Länge: 40

    shipment_lines Liste der Versandpositionen, die die Seriennummer, IMEI-Nummer und Asset-Tag-Details der Assets enthalten kann.

    Datentyp: Array

    "shipment_lines": [
      {
        "actual_shipment_date": "String",
        "estimated_arrival_date": "String",
        "line_number": "String",
        "planned_shipment_date": "String",
        "product_details": [Array],
        "sales_order_line_number": "String",
        "shipping_address": {Object},
        "shipping_carrier": "String",
        "shipment_quantity": "String",
        "ship_to": "String",
        "tracking_number": "String"
      }
    ]
    shipment_lines.actual_shipment_date Datum, an dem die Sendung den Standort des Lieferanten verlässt.

    Datentyp: Zeichenfolge

    Maximale Länge: 40

    Format: JJJJ-MM-TT

    shipment_lines.estimated_arrival_date Datum, an dem die Sendung voraussichtlich am angegebenen Standort ankommt.

    Datentyp: Zeichenfolge

    Maximale Länge: 40

    Format: JJJJ-MM-TT

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

    Datentyp: Zeichenfolge

    Maximale Länge: 40

    shipment_lines.planned_shipment_date Datum, an dem die Sendung den Standort des Lieferanten verlassen soll.

    Datentyp: Zeichenfolge

    Maximale Länge: 40

    Format: JJJJ-MM-TT

    shipment_lines.product_details Liste der Objekte, die die Details zu den verschickten Produkten definieren. Zu den Optionen gehören die Seriennummer, die IMEI-Nummer und Asset-Tag-Details.

    Datentyp: Array

    "product_details": [
      {
        "asset_tag": "String",
        "imei": "String",
        "serial_number": "String"
      }
    ]
    shipment_lines.product_details.asset_tag Asset-Tag des verschickten Produkts.

    Datentyp: Zeichenfolge

    Maximale Länge: 100

    shipment_lines.product_details.imei IMEI-Nummer des verschickten Produkts.

    Datentyp: Zeichenfolge

    Maximale Länge: 100

    shipment_lines.product_details.serial_number Erforderlich. Seriennummer des verschickten Produkts.

    Datentyp: Zeichenfolge

    Maximale Länge: 100

    shipment_lines.sales_order_line_number Verkaufsauftragspositionsnummer, die vom Lieferanten generiert wird. Diese Nummer ist nur für Überarbeitungen dieses Kaufs erforderlich.

    Datentyp: Zeichenfolge

    Maximale Länge: 40

    shipment_lines.shipping_address Adresse, an die die Produkte geliefert werden.

    Datentyp: Objekt

    "shipping_address":
      {
        "city": "String",
        "country": "String",
        "name": "String",
        "state": "String",
        "street": "String",
        "zip_code": "String"
      }
    shipment_lines.shipping_address.city Name der Stadt, an die die Produkte geliefert werden.

    Datentyp: Zeichenfolge

    Maximale Länge: 1.000

    shipment_lines.shipping_address.country Land, an das die Produkte geliefert werden.

    Datentyp: Zeichenfolge

    Maximale Länge: 40

    shipment_lines.shipping_address.name Name des Kunden, an den die Produkte geliefert werden.

    Datentyp: Zeichenfolge

    Maximale Länge: 1.000

    shipment_lines.shipping_address.state Bundesland, an das die Produkte geliefert werden.

    Datentyp: Zeichenfolge

    Maximale Länge: 1.000

    shipment_lines.shipping_address.street Name der Straße, an die die Produkte geliefert werden.

    Datentyp: Zeichenfolge

    Maximale Länge: 1.000

    shipment_lines.shipping_address.zip_code Postleitzahl oder PIN-Code, an die bzw. den die Produkte geliefert werden.

    Datentyp: Zeichenfolge

    Maximale Länge: 40

    shipment_lines.shipment_quantity Erforderlich. Anzahl der Produkte, die als physische Waren versendet werden. Die Nummer sollte die Menge der Produkte bezeichnen, die in der Sendung enthalten sind.

    Datentyp: Zeichenfolge

    Maximale Länge: 40

    shipment_lines.shipping_carrier Versandunternehmen, das das Produkt an den angegebenen Standort liefert, z. B. FedEx, UPS, USPS etc.

    Datentyp: Zeichenfolge

    Maximale Länge: 100

    shipment_lines.ship_to Name des Empfängers, an den die Produkte geliefert werden.

    Datentyp: Zeichenfolge

    Maximale Länge: 100

    shipment_lines.tracking_number Nachverfolgungsnummer, die vom Versandunternehmen für den gesamten Kauf oder für einen Teil des Kaufs angegeben wird.

    Datentyp: Zeichenfolge

    Maximale Länge: 100

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

    Datentyp: Zeichenfolge

    Maximale Länge: 100

    supplier_shipment_number Erforderlich. Identifikationsnummer, die für diesen Versand generiert wird. Normalerweise wird diese Nummer von einem ERP- (Enterprise Resource Planning) oder Auftragsverfolgungssystem generiert.

    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

    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 : 28. 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 : 29. Antwort-Header
    Kopfzeile Beschreibung
    Keine

    Statuscodes

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

    Tabelle : 30. 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, Versandnummer des Lieferanten 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/shipment" \
    --request POST \
    --header "Accept:application/json" \
    --user 'username':'password'
    {"root":[{
      "customer_id" : "ACME CORP",
      "supplier_id" : "SUP-123456",
      "third_party_import_id": "DEL2134324",
      "supplier_shipment_number" : "TN-YU67898723",
      "order_number": "PO0001002",
      "sales_order_number": "SO00223002",
      "shipment_lines": [
        {
          "line_number": "POL0001005",
          "sales_order_line_number": "SOL0231325",
          "shipment_quantity": "4",
          "shipping_carrier": "FedEx",
          "tracking_number": "E-901290092",
          "shipping_address":
            {
              "name" : "1640 Camino Del Rio North #202, San Diego,CA",
              "street" : "1640 Camino Del Rio North",
              "city" : "San Diego",
              "state" : "CA",
              "zip_code" : "92108-1512",
              "country" : "US"
            },
          "ship_to": "John doe",
          "planned_shipment_date": "YYYY-MM-DD",
          "actual_shipment_date": "YYYY-MM-DD",
          "estimated_arrival_date": "YYYY-MM-DD",
          "product_details": [
            {
              "serial_number": "FL1234-23242319001",
              "imei": "2134890294",
              "asset_tag": ""
            },{
              "serial_number": "FL1234-23242319110",
              "imei": "245499003",
              "asset_tag": ""
            }
          ]
        }
      ]
    }
    ]}

    Mögliche Antworten:

    // Success response:
    {
        "result": {
            "response": "success"
        }
    }
    
    // Error response:
    {
        "result": {
            "response": [
                {
                    "customer_id": "ACME CORP",
                    "supplier_id": "SUP-123456",
                    "third_party_import_id": "DEL2134324",
                    "status_code": "failure",
                    "error_response_body": [
                        {
                            "sales_order_line_number": "SOL0231325",
                            "sales_order_number": "SO00223002",
                            "supplier_shipment_number": "TN-YU67898723",
                            "error_message": "The purchase order for this shipment does not exist\nThe purchase order line for this shipment does not exist\n"
                        }
                    ]
                }
            ]
        }
    }

    Spendint API - POST /sn_spend_intg/spendint/invoice

    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 : 31. Pfadparameter
    Name Beschreibung
    Keine
    Tabelle : 32. 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 : 33. 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 : 34. 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 : 35. Antwort-Header
    Kopfzeile Beschreibung
    Keine

    Statuscodes

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

    Tabelle : 36. 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"
                        }
                    ]
                }
            ]
        }
    }