Spendint-API: /sn_spend_intg/Spendint/Invoice BUCHEN

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 5 Minuten Lesedauer
  • Akzeptiert Rechnungen von Drittanbietern.

    Wenn sich die Bestellung und die Bestellpositionen im Status „Ausstehende Übermittlung“ befinden und der Kundenauftrag und die Kundenauftragspositionen nicht ausgefüllt sind, ist die Versand- und Rechnungsbuchung durch den Drittpartei-Händler nicht zulässig. Dies ist nur zulässig, wenn der Status der Bestellung und Bestellpositionen „bestellt“ lautet. Außerdem gibt es keine sequenzielle Einschränkung für Versand- und Rechnungsbuchung.

    Nachdem eine Rechnung übermittelt wurde, werden die Rechnung und Rechnungspositionen einer Bestellung zugeordnet. Bei einer erfolgreichen Zuordnung wird der Status der Rechnung wie folgt festgelegt:
    • Warten auf Lieferung: Wenn keine Belege vorhanden sind, wird der Auftrag teilweise geliefert, oder die Rechnung muss genehmigt werden.
    • Rechnung bestätigt: Wenn die Bestellung geliefert wird und der fakturierte Betrag dem Gesamtbetrag der Bestellung entspricht.
    • Überprüfung erforderlich: Wenn die Bestellung geliefert wird und der fakturierte Betrag 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 angegebene Rechnung keine Bestellnummer hat, wird die Rechnung abgelehnt, und es wird eine Fehlermeldung angezeigt, die angibt, dass mindestens eine der angegebenen Rechnungen keine Bestellnummer hat. Wenn die angegebene Rechnung eine Bestellnummer hat, sie aber nicht mit der Bestellung übereinstimmt oder keine Bestellung vorhanden ist, wird eine Fehlermeldung angezeigt. In der Nachricht wird angegeben, dass mindestens eine Rechnung keine entsprechende Bestellung hat, die der Bestellnummer der Rechnung entspricht. Wenn der vom Drittpartei-Wiederverkäufer in Rechnung gestellte Betrag nicht mit dem in Rechnung gestellten Betrag übereinstimmt, wird die Rechnung abgelehnt.

    Statustabellen

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

    Sysparm_query=outbound_error.Supplier_ID=<supplier_id>^outbound_error.State=20

    Die Details zur Kunden-ID, Lieferanten-ID, zum Fehlertyp, zur eindeutigen Importsatz-ID und zum Status finden Sie in der Tabelle „ausgehender Status“, der übergeordneten Fehlertabelle.

    URL-Format

    /api/sn_spend_intg/Spendint/Invoice

    Unterstützte Anforderungsparameter

    Tabelle : 1. Pfad-Parameter
    Name Beschreibung
    Keine
    Tabelle : 2. Abfrageparameter
    Name Beschreibung
    Modus Unterstützung für asynchrone und synchrone Modi für die Integration von Drittparteien.

    Datentyp: Zeichenfolge

    Gültige Werte:
    • Asynchron: Asynchroner Modus.
    • Synchronisierung: Synchroner Modus.

    Standard: Asynchron

    Tabelle : 3. Anforderungstext-Parameter (XML oder JSON)
    Name Beschreibung
    currency Erforderlich. Währung für Zwischensumme, Steuer und Versand. Zwischensumme, Steuer und 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

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

    Datentyp: Zeichenfolge

    Maximale Länge: 100

    Invoice_date Erforderlich. Datum, an dem der Kunde in Rechnung gestellt wurde.

    Datentyp: Zeichenfolge

    Maximale Länge: 40

    FORMAT: JJJJ-MM-TT

    Invoice_lines Liste von Objekten, die die Positionen definieren, die für Einkäufe innerhalb dieses Auftrags 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 Services, für die ein Kunde in Rechnung gestellt wird.

    Datentyp: Zeichenfolge

    Maximale Länge: 40

    Invoice_lines.line_number Erforderlich. Bestellpositionsnummer, die vom Kunden für eine bestimmte Bestellung generiert wird.

    Datentyp: Zeichenfolge

    Maximale Länge: 40

    invoice_lines.sales_order_line_number Erforderlich. Vertriebsauftragspositionsnummer, 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. Bestellnummer, die vom Kunden für diese Bestellung bereitgestellt wird.

    Datentyp: Zeichenfolge

    Maximale Länge: 40

    REMIT_to_address Erforderlich. Standort, an den eine Zahlung erfolgt.

    Datentyp: Zeichenfolge

    Maximale Länge: 1000

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

    Datentyp: Zeichenfolge

    Maximale Länge: 40

    shipping Erforderlich. Gesamtversandkosten für den gesamten Einkauf.

    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 Händler 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-Wiederverkäufer zugeordnet ist. Dies ist ein bearbeitbares Feld.

    Datentyp: Zeichenfolge

    Maximale Länge: 100

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

    Datentyp: Zeichenfolge

    Maximale Länge: 40

    Tax_rate Steuersatz-Prozentsatz, der für den Auftrag angewendet wird. Dies ist ein bearbeitbares Feld.

    Datentyp: Zeichenfolge

    Maximale Länge: 100

    third_party_import_id Bezeichner, mit dem eine Drittpartei einen Zeichenfolgenwert übergeben kann, 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 werden auf diese Aktion in einer bestimmten Weise angewendet.

    Tabelle : 4. Anforderungskopfzeilen.
    Header Beschreibung
    Akzeptieren Datenformat des Antworttexts. Unterstützte Typen: application/jsonOder application/xml.

    Standard: application/json

    Hinweis:
    Nur die application/jsonDas Datenformat wird für das Beschaffungsintegrations-Framework unterstützt.
    Tabelle : 5. Antwort-Header
    Header 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.

    Antworttext-Parameter (JSON)

    Diese Antworttextparameter werden empfangen, wenn sie im synchronen Modus abgefragt werden.
    Name Beschreibung
    Error_response_body Beschreibung der Fehler, aufgeführt 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"
                        }
                    ]
                }
            ]
        }
    }