Übertragen von Stammdaten (d.velop smart invoice)
Sie können in d.velop smart invoice die Stammdaten-API verwenden, um Daten aus einem externen ERP-System in einen Bucket zu übertragen. Sie haben zwei Möglichkeiten:
Batch-Übertragung: Mit der Batch-Übertragung von Stammdaten synchronisieren Sie regelmäßig alle relevanten Stammdaten aus einem externen ERP-System mit d.velop smart invoice.
Einzelne Stammdatensätze übertragen: Sie können einzelne Stammdatensätze synchron zu einem Bucket hinzufügen oder aktualisieren.
Batch-Übertragung von Stammdaten
Mit der Batch-Übertragung von Stammdaten können Sie die regelmäßige Synchronisation Ihrer Daten aus externen ERP-Systemen mit d.velop smart invoice durchführen. Die Synchronisation erfolgt asynchron.
Ermitteln der Bucket-ID
Um Stammdaten mit d.velop smart invoice zu synchronisieren, benötigen Sie mindestens ein Stammdaten-Bucket. Sie benötigen die Bucket-ID, um die Stammdaten mit dem entsprechenden Bucket zu synchronisieren. Die Bucket-ID finden Sie in der d.velop smart invoice-Administration. Unter Buckets werden die verfügbaren Buckets angezeigt. In der Spalte ID werden die Bucket-IDs angezeigt.
Jobs
Zu allen Entitäten existieren Endpunkte, um mehrere Datensätze gleichzeitig zu übertragen (diese Endpunkte enden in /batch). An diese Endpunkte gesendete Daten verarbeitet d.velop smart invoice asynchron. Jeder der unten aufgeführten Endpunkte zur Übertragung von Daten liefert die ID des erzeugten Jobs zurück. Es wird immer genau ein Job zurückgeliefert.
Response
{ "jobs": [ { "job_id": "65866efa-e8a6-4c9c-ae30-60121b6d039f" } ] }
Abrufen des aktuellen Status zu einem Job
Mittels der Job-ID, die Sie vom jeweiligen Endpunkt zurückgeliefert bekommen haben, können Sie den Status des Jobs wie folgt abrufen:
Request
GET /smartinvoice/api/v1/masterdata/import_jobs/65866efa-e8a6-4c9c-ae30-60121b6d039f Accept: application/json
Als Antwort erhalten Sie ein JSON-Objekt mit Informationen über den Job.
Response
{ "job_id": "65866efa-e8a6-4c9c-ae30-60121b6d039f", "status": "successful" }
Eigenschaft | Beschreibung |
---|---|
job_id | String. Die ID des Jobs. |
status | String. Der aktuelle Status des Jobs. Folgende Möglichkeiten existieren:
|
Companies (Mandanten)
Mandanten sind Empfänger von Rechnungen. Üblicherweise entspricht ein Mandant in d.velop smart invoice einem Mandanten oder Buchungskreis im ERP-System. Jede Rechnung benötigt einen Mandanten. Übertragen Sie Mandanten wie folgt:
Request
POST /smartinvoice/api/v1/buckets/:bucket_id/companies/batch Content-Type: application/json { "companies": [ { "id": "01", "name": "docures AG", "parent_id": null, "address": "Musterstr. 23", "city": "Musterstadt", "zip_code": "12345", "local_currency": "EUR", "country": "DE" } ] }
Jeder einzelne Mandant unterstützt die folgenden Eigenschaften:
Eigenschaft | Beschreibung |
---|---|
id | String. Verpflichtend. Die ID oder Nummer des Mandanten. Dieser Wert ist in der Oberfläche zu sehen. |
name | String. Verpflichtend. Der Name des Mandanten. Dieser Wert ist in der Oberfläche zu sehen. Der Name des Mandanten ist für die automatische Mandantenermittlung in d.velop invoices ein wichtiges Kriterium. Wenn möglich sollte er so angegeben werden, wie er auf den Rechnungen zu finden ist. |
address | String. Die Adressinformationen des Mandanten, z.B. Straße und Hausnummer. Die Adresse des Mandanten ist für die automatische Mandantenermittlung in d.velop invoices ein wichtiges Kriterium. |
city | String. Der Ort oder die Stadt des Mandanten. |
zip_code | String. Die Postleitzahl des Ortes oder der Stadt. |
local_currency | String. Die lokale Währung des Mandanten. Dieser Wert wird genutzt, um Rechnungsbeträge zur Prüfung in Bedingungen in die lokale Währung umzurechnen. Sie müssen diesen Wert als Code nach ISO 4217 angeben (z.B. EUR oder USD). |
country | String. Das Land des Mandanten. Dieser Wert wird genutzt, um den Regelsatz für die automatische Prüfung lokaler Landesregeln auszuwählen. Sie müssen diesen Wert als ISO 3316-1 Alpha-2-Code angeben (z.B. DE oder CH). |
Vendors (Kreditoren)
Kreditoren sind Absender von Rechnungen. Übertragen Sie Kreditoren wie folgt:
Request
POST /smartinvoice/api/v1/buckets/:bucket_id/vendors/batch Content-Type: application/json { "vendors": [ { "company_id": "01", "id": "50001", "name": "Schrauben Meier GmbH", "address": "Teststr. 6", "city": "Kiel", "zip_code": "24145", "country": "DE", "email": "schraubenmeier@example.com", "vat_id": "DE99999999", "registration_id": "1028502", "payment_terms_id": "10", "tax_category_1": "NATIONAL" } ] }
Jeder einzelne Kreditor unterstützt die folgenden Eigenschaften:
Eigenschaft | Beschreibung |
---|---|
company_id | String. Verpflichtend. Der Mandant, zu dem dieser Kreditor gehört. |
id | String. Verpflichtend. Die ID oder Nummer des Kreditoren im ERP-System. Diese ID ist in d.velop invoices für Anwender sichtbar. Muss je company_id eindeutig sein. |
name | String. Verpflichtend. Der Name des Kreditoren. Wenn möglich in der Schreibweise, die auf den Rechnungen dieses Kreditoren genutzt wird. |
address | String. Verpflichtend. Die Adresszeile des Kreditoren, z.B. Straße und Hausnummer. |
city | String. Verpflichtend. Der Ort oder die Stadt des Kreditoren. |
zip_code | String. Verpflichtend. Die Postleitzahl des Ortes oder der Stadt des Kreditoren. |
country | String. Verpflichtend. Das Land des Kreditoren. Dieser Wert wird genutzt, um den Regelsatz für die automatische Prüfung lokaler Landesregeln auszuwählen. Sie müssen diesen Wert als ISO 3316-1 Alpha-2-Code angeben (z.B. DE oder CH). |
String. Die E-Mail-Adresse des Kreditoren. Wenn möglich, die Adresse, die der Kreditor auf seinen Rechnungen angibt. | |
vat_id | String. Die Umsatzsteuer-Identifkationsnummer des Kreditoren. Dieses Attribut ist wichtig für die automatische Erkennung des Kreditoren in d.velop invoices. |
registration_id | String. Die Steuernummer des Kreditoren. Dies kann beispielsweise eine nationale Steuernummer in einem nicht-EU-Land sein. |
payment_terms_id | String. Die ID der primären Zahlungsbedingungen dieses Kreditoren. |
tax_category_1 | String. Der erste Teil der Kategorie zur automatischen Ermittlung des korrekten Steuercodes. Eine detaillierte Beschreibung des Verhaltens finden Sie im Abschnitt über Steuercodes. |
Vendor Bank Accounts (Bankverbindungen der Kreditoren)
Zu jedem Kreditoren können Sie mehrere Bankverbindungen speichern. Die Bankverbindungen sind sowohl für die Identifizierung des Kreditoren beim Auslesen der Rechnung als auch zum Abgleich der auf der Rechnung angegebenen Informationen mit den Daten aus dem ERP-System relevant. Übertragen Sie Kreditorbankverbindungen wie folgt:
Request
POST /smartinvoice/api/v1/buckets/:bucket_id/vendor_bank_accounts/batch Content-Type: application/json { "vendor_bank_accounts": [ { "company_id": "01", "vendor_id": "50001", "iban": "DE02100100100006820101", "bic": "PBNKDEFF", "primary": true } ] }
Jede einzelne Kreditorbankverbindung unterstützt die folgenden Eigenschaften:
Eigenschaft | Beschreibung |
---|---|
company_id | String. Verpflichtend. Der Mandant, zu dem diese Kreditorbankverbindung gehört. |
vendor_id | String. Verpflichtend. Der Kreditor, zu dem diese Bankverbindung gehört. |
id | String. Verpflichtend. Die ID dieser Bankverbindung im ERP-System. |
iban | String. Verpflichtend. Die IBAN des zugehörigen Bankkontos. |
bic | String. Die BIC des zugehörigen Bankkontos. |
primary | Boolean. Verpflichtend. Ist diese Bankverbindung die primäre Bankverbindung des Kreditoren? |
Payment Terms (Zahlungsbedingungen)
d.velop smart invoice verwendet Zahlungsbedingungen, um Netto- und Skontofälligkeiten (sofern zutreffend) zu ermitteln. Zusätzlich können Eskalationen dynamisch vor Ablauf der Netto- und Skontofristen errechnet werden. Weitere Informationen zur Interpretation der Zahlungsbedingungen finden Sie im Administrationshandbuch zu d.velop smart invoice in den Informationen zur Arbeit mit Fälligkeiten und Eskalationen. Übertragen Sie Zahlungsbedingungen wie folgt:
Request
POST /smartinvoice/api/v1/buckets/:bucket_id/payment_terms/batch Content-Type: application/json { "payment_terms": [ { "company_id": "01", "id": "NET30", "net_days": 30, "cashback_days1": 10, "cashback_percentage1": 2.5 } ] }
Jede einzelne Zahlungsbedingung unterstützt die folgenden Eigenschaften:
Eigenschaft | Beschreibung |
---|---|
company_id | String. Der Mandant, zu dem diese Zahlungsbedingungen gehören. Wenn kein Mandant angegeben wird, gilt die Zahlungsbedingung für alle Mandanten. |
id | String. Verpflichtend. Die ID der Zahlungsbedingungen im ERP-System. |
net_days | Number. Die Nettofrist in Tagen. |
cashback_days1 | Number. Die Skontofrist in Tagen. |
cashback_percentage1 | Number. Der Skontosatz in Prozent. |
name | String. Eine Bezeichnung für diese Zahlungsbedingung. |
Document Types (Belegarten)
Die Belegart identifiziert den Typ der Rechnung. Es sollte mindestens die beiden Belegarten Rechnung und Gutschrift geben. Übertragen Sie Belegarten wie folgt:
Request
POST /smartinvoice/api/v1/buckets/:bucket_id/document_types/batch Content-Type: application/json { "document_types": [ { "company_id": "01", "id": "inv", "name": "Invoice", "credit_note": false } ] }
Jede einzelne Belegart unterstützt die folgenden Eigenschaften:
Eigenschaft | Beschreibung |
---|---|
company_id | String. Der Mandant, zu dem diese Belegart gehört. Wenn kein Mandant angegeben wird, gilt die Belegart für alle Mandanten. |
id | String. Verpflichtend. Die ID der Belegart. Dieser Wert ist in d.velop invoices für Anwendende sichtbar. |
name | String. Verpflichtend. Der Name der Belegart. |
credit_note | Boolean. Verpflichtend. Handelt es sich um eine Gutschrift? |
Currencies (Währungen)
Jedem Beleg in d.velop smart invoice ist eine Währung zugewiesen. Übertragen Sie die Währungen, die von Ihrem ERP-System übermittelt werden. Übertragen Sie Währungen wie folgt:
Request
POST /smartinvoice/api/v1/buckets/:bucket_id/currencies/batch Content-Type: application/json { "currencies": [ { "company_id": "01", "id": "EUR", "name": "Euro", "code": "EUR" } ] }
Achten Sie darauf, zu jeder Währung einen gültigen Währungscode nach ISO 4217 anzugeben (zum Beispiel: EUR oder USD). Den Währungscode verwendet d.velop smart invoice, um zwischen Währungen umzurechnen, beispielsweise damit die Einhaltung von Freigabegrenzen immer in der Hauswährung erfolgen kann.
Jede einzelne Währung unterstützt die folgenden Eigenschaften:
Eigenschaft | Beschreibung |
---|---|
company_id | String. Der Mandant, zu dem diese Währung gehört. Wenn kein Mandant angegeben wird, gilt die Währung für alle Mandanten. |
id | String. Verpflichtend. Die ID der Währung im ERP-System. Dieser Wert ist in d.velop invoices für Anwendende sichtbar. |
name | String. Verpflichtend. Der Name der Währung. |
code | String. Verpflichtend. Der Code der Währung nach ISO 4217. |
Tax Codes (Steuerschlüssel)
Jeder Belegposition in d.velop smart invoice kann ein Steuerschlüssel zugewiesen werden. Übertragen Sie Steuerschlüssel wie folgt:
Request
POST /smartinvoice/api/v1/buckets/:bucket_id/tax_codes/batch Content-Type: application/json { "tax_codes": [ { "company_id": "01", "id": "S-DE", "name": "VSt 19%", "percentage": 19.0, "tax_category_1": "NATIONAL", "tax_category_2": "FULL" } ] }
Jeder einzelne Steuerschlüssel unterstützt die folgenden Eigenschaften:
Eigenschaft | Beschreibung |
---|---|
company_id | String. Verpflichtend. Der Mandant, zu dem dieser Steuerschlüssel gehört. Wenn kein Mandant angegeben wird, gilt der Steuerschlüssel für alle Mandanten. |
id | String. Verpflichtend. Die ID des Steuerschlüssels im ERP-System. Dieser Wert wird Anwendenden in d.velop invoices angezeigt. |
name | String. Verpflichtend. Der Name des Steuerschlüssels. |
percentage | Number. Verpflichtend. Der Prozentsatz des Steuerschlüssels. |
tax_category_1 | String. Der erste Teil der Steuerkategorie zur automatischen Ermittlung des Steuerschlüssels. |
tax_category_2 | String. Der zweite Teil der Steuerkategorie zur automatischen Ermittlung des Steuerschlüssels. |
Automatische Ermittlung des Steuerschlüssels
Über die Werte tax_category_1 und tax_category_2 kann d.velop smart invoice automatisch einen passenden Steuerschlüssel anhand erkannter und/oder gewählter Belegdaten ermitteln. Hierzu werden die Werte tax_category_1 und tax_category_2 des Kreditoren und des Sachkontos bzw. der Beschaffungskategorie abgeglichen. Existiert eine eindeutige Übereinstimmung, wird der entsprechende Steuerschlüssel automatisch eingetragen.
G/L Accounts (Sachkonten)
Übertragen Sie Sachkonten wie folgt:
Request
POST /smartinvoice/api/v1/buckets/:bucket_id/gl_accounts/batch Content-Type: application/json { "gl_accounts": [ { "company_id": "01", "nr": "6300", "name": "Sonstige betriebliche Aufwendungen" } ] }
Jedes einzelne Sachkonto unterstützt die folgenden Eigenschaften:
Eigenschaft | Beschreibung |
---|---|
company_id | String. Der Mandant, zu dem dieses Sachkonto gehört. Wenn kein Mandant angegeben wird, gilt das Sachkonto für alle Mandanten. |
nr | String. Verpflichtend. Die Nummer des Sachkontos. |
name | String. Verpflichtend. Der Name des Sachkontos. |
tax_category_2 | String. Der zweite Teil der Kategorie zur automatischen Steuerermittlung. |
Cost Centers (Kostenstellen)
Übertragen Sie Kostenstellen wie folgt:
Request
POST /smartinvoice/api/v1/buckets/:bucket_id/cost_centers/batch Content-Type: application/json { "cost_centers": [ { "company_id": "01", "nr": "1000", "name": "Verwaltung" } ] }
Jede einzelne Kostenstelle unterstützt die folgenden Eigenschaften:
Eigenschaft | Beschreibung |
---|---|
company_id | String. Der Mandant, zu dem diese Kostenstelle gehört. Wenn kein Mandant angegeben wird, gilt die Kostenstelle für alle Mandanten. |
nr | String. Verpflichtend. Die Nummer der Kostenstelle. |
name | String. Verpflichtend. Der Name der Kostenstelle. |
Cost Units (Kostenträger)
Übertragen Sie Kostenträger wie folgt:
Request
POST /smartinvoice/api/v1/buckets/:bucket_id/cost_units/batch Content-Type: application/json { "cost_units": [ { "company_id": "01", "nr": "PJ001", "name": "Projekt Neubau" } ] }
Jeder einzelne Kostenträger unterstützt die folgenden Eigenschaften:
Eigenschaft | Beschreibung |
---|---|
company_id | String. Der Mandant, zu dem dieser Kostenträger gehört. Wenn kein Mandant angegeben wird, gilt der Kostenträger für alle Mandanten. |
nr | String. Verpflichtend. Die Nummer des Kostenträgers. |
name | String. Verpflichtend. Der Name des Kostenträgers. |
Other Dimensions (Zusätzliche Dimensionen)
Zusätzliche Dimensionen sind Datensätze, die in individuellen Feldern der Belegzeilen genutzt werden können (für individuelle Felder in den Kopfdaten siehe "Custom Entities (Zusätzliche Entitäten)"). Jede zusätzliche Dimension wird über einen frei bestimmbaren Typ (Feld type) identifiziert. Alle Datensätze mit dem gleichen Typ zählen zu einer zusätzlichen Dimension. Jedem individuellen Feld in d.velop smart invoice können Sie eine zusätzliche Dimension zuweisen. Übertragen Sie Zusatzdimensionen wie folgt:
Request
POST /smartinvoice/api/v1/buckets/:bucket_id/other_dimensions/batch Content-Type: application/json { "other_dimensions": [ { "company_id": "01", "type": "project", "nr": "PJ001", "name": "Projekt Neubau", "parent_dimension_type": "Projektleiter", "parent_dimension_id": "1000" } ] }
Jeder einzelne Dimensionswert unterstützt die folgenden Eigenschaften:
Eigenschaft | Beschreibung |
---|---|
company_id | String. Der Mandant, zu dem dieser Dimensionswert gehört. Wenn kein Mandant angegeben wird, gilt der Dimensionswert für alle Mandanten. |
type | String. Verpflichtend. Der Typ dieses Dimensionswertes. Über den Typen werden alle Daten einer zusätzlichen Dimension zusammengehalten. |
nr | String. Verpflichtend. Die ID oder Nummer des Dimensionswertes. |
name | String. Verpflichtend. Der Name des Dimensionswertes. |
parent_dimension_type | String. Der Typ der zusätzlichen Dimension, von der dieser Dimensionswert abhängt. |
parent_dimension_id | String. Die ID des zusätzlichen Dimensionswertes vom Typ parent_dimension_type, von dem dieser Dimensionswert abhängt. |
Custom Entities (Zusätzliche Entitäten)
Zusätzliche Entitäten sind Datensätze, die in individuellen Feldern des Belegkopfes genutzt werden können (für individuelle Felder in Belegzeilen siehe "Other Dimensions (Zusätzliche Dimensionen)"). Jede zusätzliche Entität wird über einen frei bestimmbaren Typ (Feld type) identifiziert. Alle Datensätze mit dem gleichen Typ zählen zu einer zusätzlichen Entität. Jedem individuellen Feld in d.velop smart invoice können Sie eine zusätzliche Entität zuweisen. Übertragen Sie zusätzliche Entitäten wie folgt:
Request
POST /smartinvoice/api/v1/buckets/:bucket_id/custom_entities/batch Content-Type: application/json { "custom_entities": [ { "company_id": "01", "type": "project", "id": "PJ001", "name": "Projekt Neubau" } ] }
Jeder einzelne Entitätswert unterstützt die folgenden Eigenschaften:
Eigenschaft | Beschreibung |
---|---|
company_id | String. Der Mandant, zu dem dieser Entitätswert gehört. Wenn kein Mandant angegeben wird, gilt der Entitätswert für alle Mandanten. |
type | String. Verpflichtend. Der Typ des Entitätswert. Über den Typen werden alle Daten einer zusätzlichen Entität zusammen gehalten. |
id | String. Verpflichtend. Die ID dieses Entitätswerts. |
name | String. Verpflichtend. Der Name dieses Entitätswerts. |
Purchase Orders (Bestellungen)
Bestellungen und Bestellpositionen werden in d.velop smart invoice zum Abgleich von Rechnung und Bestellung genutzt. Übertragen Sie Bestellungen und Bestellzeilen wie folgt:
Request
POST /smartinvoice/api/v1/buckets/:bucket_id/purchase_orders/batch Content-Type: application/json { "purchase_orders": [ { "company_id": "01", "id": "PO001", "nr": "PO001", "name": "Office Supplies", "vendor_id": "50001", "status": 1, "custom1": null, "custom2": null, "custom3": null, "custom4": null, "custom5": null, "custom6": null, "custom7": null, "custom8": null, "custom9": null, "custom10": null, "custom11": null, "custom12": null, "custom13": null, "custom14": null, "custom15": null, "custom16": null, "custom17": null, "custom18": null, "custom19": null, "custom20": null, "line_items": [ { "company_id": "01", "purchase_order_id": "PO001", "id": "PO001_1", "line_no": 1, "quantity_ordered": 10.0, "quantity_received": 5.0, "quantity_not_invoiced": 5.0, "description": "Printer Paper, A4", "subtotal": 200.0, "unit": "Box", "unit_price": 20.0, "price_unit": 1.0, "gl_account": "6300", "cost_center": "1000", "cost_unit": null, "item": "102912", "tax_code_id": "DE_S", "discount_absolute": 0.0, "discount_per_unit": 0.0, "discount_percent": 0.0, "discount2_percent": 0.0, "discount3_percent": 0.0, "discount4_percent": 0.0, "discount5_percent": 0.0, "custom1": null, "custom2": null, "custom3": null, "custom4": null, "custom5": null, "custom6": null, "custom7": null, "custom8": null, "custom9": null, "custom10": null, "custom11": null, "custom12": null, "custom13": null, "custom14": null, "custom15": null, "custom16": null, "custom17": null, "custom18": null, "custom19": null, "custom20": null, "procurement_category": null, "erp_id": "100", "type": "header_surcharge", "surcharged_line_item_id": "1", "surcharge_category": "pcs", "surcharge_value": "20.00", "responsible": "email@domain.de", "goods_receipt_reference_mandatory": true } ] } ] }
Jede einzelne Bestellung unterstützt die folgenden Eigenschaften:
Eigenschaft | Beschreibung |
---|---|
company_id | String. Verpflichtend. Der Mandant, zu dem diese Bestellung gehört. |
id | String. Verpflichtend. Die ID dieser Bestellung. Wird Anwendenden in d.velop invoices nicht angezeigt. |
nr | String. Verpflichtend. Die Nummer dieser Bestellung. |
name | String. Verpflichtend. Eine Beschreibung für die Bestellung. |
vendor_id | String. Verpflichtend. Die ID des Kreditoren, zu dem diese Bestellung gehört. |
status | Number. Folgende Werte und zugeordnete Status sind möglich: 1: Offen 2: Genehmigt 3: Bestätigt 4: Teilweise geliefert 5: Geliefert 6: Teilweise fakturiert 7: Fakturiert 8: Storniert |
custom1 bis custom20 | String. Individuelle Felder auf Kopfebene. Die Werte dieser Felder werden in die jeweiligen individuellen Felder im Kopf der Rechnung übernommen, sofern die Felder auf der Rechnung leer sind. |
Jede einzelne Bestellposition unterstützt die folgenden Eigenschaften:
Eigenschaft | Beschreibung |
---|---|
company_id | String. Verpflichtend. Der Mandant, zu dem die Bestellzeile gehört. |
id | String. Verpflichtend. Die ID der Bestellzeile. Dieser Wert muss über alle Bestellungen hinweg eindeutig sein. Das bedeutet, dass sich auch zwei unterschiedliche Bestellungen keine Bestellzeilen-ID teilen dürfen. |
line_no | Number. Verpflichtend. Die Nummer der Zeile innerhalb der Bestellung. |
quantity_ordered | Number. Verpflichtend. Die insgesamt bestellte Menge. |
quantity_received | Number. Verpflichtend. Die insgesamt erhaltene Menge. |
quantity_not_invoiced | Number. Verpflichtend. Die noch nicht berechnete Menge. Achtung: dieser Wert wird von d.velop invoices nicht für Mengenprüfungen herangezogen. |
item | String. Verpflichtend. Die Artikelnummer der Bestellzeile. |
procurement_category | String. Die Beschaffungskategorie der Bestellzeile. |
description | String. Verpflichtend. Ein beschreibender Text zur Bestellzeile, z.B. die Bezeichnung des Artikels. |
unit | String. Verpflichtend. Die Einheit der bestellten Menge, z.B. "Stück". |
unit_price | Number. Verpflichtend. Der Einzelpreis des bestellten Artikels. |
price_unit | Number. Verpflichtend. Die Preiseinheit oder Verpackungseinheit, falls der Lieferant in einer anderen Mengeneinheit berechnet, als im ERP geführt. Im Zweifel 1.0 angeben. |
subtotal | Number. Verpflichtend. Gesamtbetrag (netto) der Bestellzeile. |
gl_account | String. Das Sachkonto für die Bestellzeile. |
cost_center | String. Die Kostenstelle für die Bestellzeile. |
cost_unit | String. Der Kostenträger für die Bestellzeile. |
tax_code_id | String. Die ID des zugehörigen Steuerschlüssels. |
discount_absolute | Number. Absoluter Rabatt auf den Gesamtbetrag (netto) der Bestellzeile. |
discount_per_unit | Number. Absoluter Rabatt auf den Einzelpreis der Bestellzeile. |
discount_percent | Number. Prozentualer Rabatt auf den Gesamtbetrag (netto) der Bestellzeile. |
discount2_percent | Number. Zweiter prozentualer Rabatt auf den Gesamtbetrag (netto) der Bestellzeile. |
discount3_percent | Number. Dritter prozentualer Rabatt auf den Gesamtbetrag (netto) der Bestellzeile. |
discount4_percent | Number. Vierter prozentualer Rabatt auf den Gesamtbetrag (netto) der Bestellzeile. |
discount5_percent | Number. Fünfter prozentualer Rabatt auf den Gesamtbetrag (netto) der Bestellzeile. |
custom1 bis custom20 | String. Individuelle Felder. Die Werte der Felder werden in die entsprechenden Felder der aus der Bestellung erzeugten Rechnungszeile übernommen. |
type | String. Verpflichtend. header_surcharge (Kopfzuschlag) oder line_item_surcharge (Positionszuschlag). |
surcharged_line_item_id | String. Die ID der Bestellposition, für die der Zuschlag gilt. |
surcharge_category | String. pcs (Zuschlag pro Stück) oder fixed (fester Zuschlag) oder percent (prozentualer Zuschlag). |
surcharge_value | String. Wert des Zuschlags. |
responsible | String. Benutzername der für die Bestellposition verantwortlichen Person. Groß- und Kleinschreibung beachten! |
goods_receipt_reference_mandatory | Boolean. Gibt an, ob die Zuordnung einer Wareneingangszeile zu dieser Bestellposition verpflichtend ist. Sie finden weitere Informationen zur Verwendung dieses Merkmals im Administrationshandbuch von d.velop smart invoice im Bereich Arbeiten mit Wareneingängen. |
Anmerkung
Zuschlagspositionen sind eigenständige Bestellpositionen
Beachten Sie, dass eine Zuschlagsposition in einer Bestellung eine eigenständige Bestellposition darstellt. Der Bezug zu der Bestellposition, für die der Zuschlag gilt, wird über die Eigenschaft surcharged_line_item_id hergestellt.
Goods Receipt (Wareneingänge)
Anmerkung
Wareneingänge befinden sich derzeit noch im Vorschaumodus. Bitte nehmen Sie Kontakt mit d.velop auf, wenn Sie Wareneingänge nutzen möchten.
Wareneingänge und Wareneingangszeilen werden von d.velop invoices genutzt, um Bestellungen, Wareneingänge und Rechnungen miteinander abzugleichen. Übertragen Sie Wareneingänge und Wareneingangszeilen wie folgt:
Request
POST /smartinvoice/api/v1/buckets/:bucket_id/goods_receipts/batch Content-Type: application/json { "goods_receipts": [ { "company_id": "01", "vendor_id": "50001", "id": "GR001", "nr": "GR001", "creation_date": "2022-04-07", "delivery_slip_nr": "LS001", "status": 0, "line_items": [ { "company_id": "01", "id": "GR001_1", "line_no": 1, "goods_receipt_date": "2022-04-07", "quantity": 2.7, "purchase_order_line_id": "PO001_1" } ] } ] }
Jeder einzelne Wareneingang unterstützt die folgenden Eigenschaften:
Eigenschaft | Beschreibung |
---|---|
company_id | String. Verpflichtend. Der Mandant, zu dem dieser Wareneingang gehört. |
vendor_id | String. Verpflichtend. Der Lieferant, zu dem dieser Wareneingang gehört. |
id | String. Verpflichtend. Die ID des Wareneingangs. Dieser Wert wird dem Anwender in d.velop invoices nicht angezeigt. |
nr | String. Verpflichtend. Die Nummer des Wareneingangs. |
creation_date | Date. Verpflichtend. Das Datum an dem der Wareneingang erzeugt wurde. Format YYYY-MM-DD. |
delivery_slip_nr | String. Verpflichtend. Die Lieferscheinnummer des Lieferanten, zu der dieser Wareneingang gebucht wurde. |
Jede einzelne Wareneingangsposition unterstützt die folgenden Eigenschaften:
Eigenschaft | Beschreibung |
---|---|
company_id | String. Verpflichtend. Der Mandant, zu dem diese Wareneingangszeile gehört. |
id | String. Verpflichtend. Die ID dieser Wareneingangszeile. Dieser Wert muss über alle Wareneingänge hinweg eindeutig sein. Das bedeutet, dass sich auch zwei unterschiedliche Wareneingänge keine Wareneingangszeilen-ID teilen dürfen. |
line_no | Number. Verpflichtend. Die Nummer dieser Wareneingangszeile innerhalb des Wareneingangs. |
goods_receipt_date | Date. Verpflichtend. Das Datum, an dem diese Wareneingangszeile verbucht wurde. Format YYYY-MM-DD. |
quantity | Number. Verpflichtend. Die erhaltene Menge. |
purchase_order_line_id | String. Die ID der zu dieser Wareneingangszeile gehörenden Bestellzeile. |
Surcharge Types (Zuschlagstypen)
Zuschlagstypen werden von d.velop invoices verwendet, um einer Rechnung manuell Zuschläge über den Dialog hinzuzufügen. Sie können die Zuschlagstypen wie folgt übertragen:
Request
POST /smartinvoice/api/v1/buckets/:bucket_id/surcharge_types /batch Content-Type: application/json { "surcharge_types": [ { "company_id": "01", "nr": "TEST", "name": "Test_surcharge", "applies_to": "line_item_surcharge", "erp_id": "", "tenant_id": "", "category": "pcs", "quantity": "", "unit_price": "", "gl_account": "", "cost_center": "", "cost_unit": "", "item": "", "tax_code_id": "", "custom1":"", "custom2":"", "custom3":"", "custom4":"", "custom5":"", "custom6":"", "custom7":"", "custom8":"", "custom9":"", "custom10":"", "custom11":"", "custom12":"", "custom13":"", "custom14":"", "custom15":"", "custom16":"", "custom17":"", "custom18":"", "custom19":"", "custom20":"", "tax_category":"", "procurement_category":"" } ] }
Jeder einzelne Zuschlagstyp unterstützt die folgenden Eigenschaften:
Eigenschaft | Beschreibung |
---|---|
company_id | String. Der Mandant, zu dem der Zuschlagstyp gehört. Wenn kein Mandant angegeben wird, gilt der Kostenträger für alle Mandanten. |
nr | String. Verpflichtend. Die ID des Zuschlags. Die ID muss einzigartig sein und darf nicht leer gelassen werden. |
name | String. Name des Zuschlagstypen. |
applies_to | String. Verpflichtend. Mögliche Werte: header_surcharge, line_item_surcharge |
erp_id | String. |
tenant_id | String. Verplichtend. |
category | String. Verwenden Sie die Werte pcs, fixed, percent, wenn die Zuschläge pro Stück bzw. fest oder prozentual aufgeschlagen werden. |
quantity | String. Anzahl des Zuschlagstypen. |
unit_price | String. Einzelpreis des Zuschlagstypen. |
gl_account | String. Das Sachkonto des Zuschlagstypen. |
cost_center | String. Die Kostenstelle des Zuschlagstypen. |
cost_unit | String. Der Kostenträger des Zuschlagstypen. |
item | String. Die Artikelnummer des Zuschlagstypen. |
tax_code_id | String. Der Steuerschlüssel des Zuschlagstypen. |
custom1-20 | String. Custom-Felder des Zuschlagstypen. |
tax_category | String. Die Steuerkategorie des Zuschlagstypen. |
procurement_category | String. Die Beschaffungskategorie des Zuschlagstypen. |
Hinzufügen und Aktualisieren einzelner Stammdatensätze
Sie könen einzelne Entitäten via API erstellen und aktualisieren. Diese Option ergänzt die bestehenden Batch-Endpunkte. Die Übertragung einzelner Stammdatensätze erfolgt synchron. Somit können Stammdaten, die sich häufig verändern, gezielt in d.velop smart invoice aktualisiert werden.
Warnung
API-Anfragen dürfen ausschließlich im Rahmen einer Anwendungsinteraktion erfolgen (z.B. durch eine Schaltfläche im externen ERP-System). Verwenden Sie die API nicht missbräuchlich, z.B. für die synchrone Aktualisierung aller Kreditoren. Stellen Sie sicher, dass Massenaktionen im ERP-System nicht zu einer Vielzahl an API-Anfragen führen. Die API hat außerdem ein Rate Limit. Wenn der HTTP-Status 429 "Too Many Requests" auftritt, ist das Rate Limit erreicht.
Request (Anfrage)
Beispiel einer Anfrage zur Aktualisierung eines einzelnen Mandanten:
PUT /smartinvoice/api/v1/buckets/:bucket_id/companies Content-Type: application/json { "id": "01", "name": "docures AG", "parent_id": null, "address": "Musterstr. 23", "city": "Musterstadt", "zip_code": "12345", "local_currency": "EUR", "country": "DE" }
Weitere Informationen zu den Eigenschaften der Entität erhalten Sie unter Batch-Übertragung von Stammdaten.
Unterschiede zu den Batch-Endpunkten
Sie erhalten den API-Endpunkt, um einzelne Stammdatensätze der gewünschten Entität zu aktualisieren oder hinzuzufügen, indem Sie das letzte Pfadsegment /batch weglassen.
Das HTTP-Verb ist PUT.
Im Gegensatz zu den Batch-Endpunkten wird mit einer Anfrage nur genau ein Stammdatensatz einer Entität hinzugefügt oder aktualisiert. Der Body der Anfrage ist kein Array und beinhaltet den Stammdatensatz als Objekt.
Die Erstellung bzw. Aktualisierung des übermittelten Stammdatensatzes erfolgt synchron. Im Gegensatz zu den bestehenden Batch-Endpunkten liefert die Antwort kein asynchron abgearbeitetes Jobobjekt zurück. Der Erfolg bzw. Misserfolg der Anfrage kann direkt aus dem Statuscode der HTTP-Antwort ermittelt werden.
Die Endpunkte zur Aktualisierung einzelner Stammdatensätze besitzen ein Rate Limit, das bei der Verwendung der API berücksichtigt werden muss.
Response (Antwort)
HTTP/1.1 201 Created Content-Type: application/json { "status": "successful" }
/smartinvoice