Transferring master data (d.velop smart invoice)
In d.velop smart invoice, you can use the master data API to transfer data from an external ERP system to a bucket. You have two options:
Batch transfer: With the batch transfer of master data, you regularly synchronize all relevant master data from an external ERP system with d.velop smart invoice.
Transfer individual master data records: You can add or update individual master data records synchronously to a bucket.
Batch transfer of master data
With the batch transfer of master data, you can regularly synchronize your data from external ERP systems with d.velop smart invoice. The synchronization takes place asynchronously.
Determining the bucket ID
You need at least one master data bucket in order to synchronize master data with d.velop smart invoice. You require the bucket ID to synchronize the master data with the corresponding bucket. You can find the bucket ID in the d.velop smart invoice administration interface. The available buckets are shown under Buckets. The bucket IDs are shown in the ID column.
Jobs
For every entity, there are endpoints for transferring multiple data records at the same time (these endpoints end in /batch). d.velop smart invoice processes the data sent to these endpoints asynchronously. Each of the endpoints listed below for transferring data returns the ID of the generated job. Exactly one job is always returned.
Response
{
"jobs": [
{
"job_id": "65866efa-e8a6-4c9c-ae30-60121b6d039f"
}
]
}Retrieving the current status of a job
You can use the job ID returned to you by the relevant endpoint to retrieve the status of the job as follows:
Request
GET /smartinvoice/api/v1/masterdata/import_jobs/65866efa-e8a6-4c9c-ae30-60121b6d039f Accept: application/json
As a response, you receive a JSON object with information about the job.
Response
{
"job_id": "65866efa-e8a6-4c9c-ae30-60121b6d039f",
"status": "successful"
}Property | Description |
|---|---|
job_id | String. The ID of the job. |
status | String. The current status of the job. The possible options are as follows:
|
Companies
Companies are the recipients of invoices. A company in d.velop smart invoice usually corresponds to a company or company code in the ERP system. Every invoice requires a company. You transfer companies as follows:
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"
}
]
}Each individual company supports the following properties:
Property | Description |
|---|---|
id | String. Mandatory. The ID or number of the company. This value can be seen on the user interface. |
name | String. Mandatory. The name of the company. This value can be seen on the user interface. The name of the company is an important criterion for automatically identifying the company in d.velop invoices. Where possible, it should be entered identically to how it is shown on the invoices. |
address | String. The company’s address information, e.g street and house number. The address of the company is an important criterion for automatically identifying the company in d.velop invoices. |
city | String. The location or city of the company. |
zip_code | String. The zip code of the location or city. |
local_currency | String. The local currency of the company. This value is used to convert invoice amounts into the local currency for verification in conditions. You must enter this value as a code in accordance with ISO 4217 (for example: EUR or USD). |
country | String. The country of the company. This value is used to select the rule set for the automatic check of the local national regulations. You must enter this value as an ISO 3316-1 alpha-2 code (for example, DE or CH). |
Vendors
Vendors are the senders of invoices. You transfer vendors as follows:
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"
}
]
}Each individual vendor supports the following properties:
Property | Description |
|---|---|
company_id | String. Mandatory. The company to which this vendor belongs. |
id | String. Mandatory. The ID or number of the vendor in the ERP system. This ID can be viewed by users in d.velop invoices. Must be unique for each company_id. |
name | String. Mandatory. The name of the vendor. If possible, with the same spelling used on the invoices for this vendor. |
address | String. Mandatory. The address line for the vendor, e.g. street and house number. |
city | String. Mandatory. The location or city of the vendor. |
zip_code | String. Mandatory. The zip code of the location or city of the vendor. |
country | String. Mandatory. The country of the vendor. This value is used to select the rule set for the automatic check of the local national regulations. You must enter this value as an ISO 3316-1 alpha-2 code (for example, DE or CH). |
String. The e-mail address of the vendor. Where available, the address the vendor enters on his or her invoices. | |
vat_id | String. The VAT ID number of the vendor. This property is important for automatically determining the vendor in d.velop invoices. |
registration_id | String. The tax ID of the vendor. This may be a national tax ID in a non-EU country, for example. |
payment_terms_id | String. The ID of the primary payment terms for this vendor. |
tax_category_1 | String. The first part of the category for automatically determining the correct tax code. You can find a detailed description of this behavior in the section on tax codes. |
Vendor Bank Accounts
You can save multiple bank accounts for each vendor. The bank accounts are important for both identifying the vendor while reading the invoice and comparing the information entered on the invoice with the data from the ERP system. You transfer bank accounts as follows:
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
}
]
}Each individual vendor bank account supports the following properties:
Property | Description |
|---|---|
company_id | String. Mandatory. The company to which this vendor bank account belongs. |
vendor_id | String. Mandatory. The vendor to which this bank account belongs. |
id | String. Mandatory. The ID of this bank account in the ERP system. |
iban | String. Mandatory. The IBAN of the relevant bank account. |
bic | String. The BIC of the relevant bank account. |
primary | Boolean. Mandatory. Is this bank account the vendor’s primary bank account? |
Payment Terms
d.velop smart invoice uses payment terms to calculate escalation times for net payment periods and discount periods. You transfer payment terms as follows:
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,
"name":"30 days net, 10 days 2.5% discount"
}
]
}Each individual payment term supports the following properties:
Property | Description |
|---|---|
company_id | String. Mandatory. The company to which these payment terms belong. |
id | String. Mandatory. The ID of the payment terms in the ERP system. |
net_days | Number. Mandatory. The net payment period in days. If you enter 0, this is interpreted as “no period.” |
cashback_days1 | Number. Mandatory. The cash discount period in days. If you enter 0, this is interpreted as “no period.” |
cashback_percentage1 | Number. Mandatory. The cash discount rate as a percentage. |
name | String. The name for these payment terms. |
Document Types
The document type identifies the type of the invoice. At minimum, the two document types invoice and credit note should be available. You transfer document types as follows:
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
}
]
}Each individual document type supports the following properties:
Property | Description |
|---|---|
company_id | String. The company to which this document type belongs. If you do not make an entry, the document type is valid for all companies. |
id | String. Mandatory. The ID of the document type. This value can be viewed by users in d.velop invoices. |
name | String. Mandatory. The name of the document type. |
credit_note | Boolean. Mandatory. Is the document a credit note? |
Currencies
Each document in d.velop smart invoice is assigned to a currency. You transfer the currencies that are transferred by your ERP system. You transfer currencies as follows:
Request
POST /smartinvoice/api/v1/buckets/:bucket_id/currencies/batch
Content-Type: application/json
{
"currencies": [
{
"company_id": "01",
"id": "EUR",
"name": "Euro",
"code": "EUR"
}
]
}Each individual currency supports the following properties:
Each individual currency supports the following properties:
Property | Description |
|---|---|
company_id | String. The company to which this currency belongs. If you do not make an entry, the currency is valid for all companies. |
id | String. Mandatory. The ID of the currency in the ERP system. This value can be viewed by users in d.velop invoices. |
name | String. Mandatory. The name of the currency. |
code | String. Mandatory. The currency code as per ISO 4217. |
Tax Codes
A tax code can be assigned to each document line in d.velop smart invoice. You transfer tax codes as follows:
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"
}
]
}Each individual tax code supports the following properties:
Property | Description |
|---|---|
company_id | String. Mandatory. The company to which this tax code belongs. If you do not make an entry, the tax code is valid for all companies. |
id | String. Mandatory. The ID of the tax code in the ERP system. This value is displayed for users in d.velop invoices. |
name | String. Mandatory. The name of the tax code. |
percentage | Number. Mandatory. The percentage of the tax code. |
tax_category_1 | String. The first part of the tax category for automatically determining the tax code. |
tax_category_2 | String. The second part of the tax category for automatically determining the tax code. |
Automatically determining the tax code
Using the values tax_category_1 and tax_category_2, d.velop smart invoice can automatically determine a suitable tax code based on the detected and/or selected document data. To do so, it compares the tax_category_1 and tax_category_2 values of the vendor and of the G/L account or procurement category. If there is a clear match, the corresponding tax code is entered automatically.
G/L Accounts
You transfer G/L accounts as follows:
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"
}
]
}Each individual G/L account supports the following properties:
Property | Description |
|---|---|
company_id | String. The company to which this G/L account belongs. If you do not make an entry, the G/L account is valid for all companies. |
nr | String. Mandatory. The number of the G/L account. |
name | String. Mandatory. The name of the G/L account. |
tax_category_2 | String. The second part of the tax category for automatically determining the tax. |
Cost Centers
You transfer cost centers as follows:
Request
POST /smartinvoice/api/v1/buckets/:bucket_id/cost_centers/batch
Content-Type: application/json
{
"cost_centers": [
{
"company_id": "01",
"nr": "1000",
"name": "Verwaltung"
}
]
}Each individual cost center supports the following properties:
Property | Description |
|---|---|
company_id | String. The company to which this cost center belongs. If you do not make an entry, the cost center is valid for all companies. |
nr | String. Mandatory. The number of the cost center. |
name | String. Mandatory. The name of the cost center. |
Cost Units
You transfer cost units as follows:
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"
}
]
}Each individual cost unit supports the following properties:
Property | Description |
|---|---|
company_id | String. The company to which this cost unit belongs. If you do not make an entry, the cost unit is valid for all companies. |
nr | String. Mandatory. The number of the cost unit. |
name | String. Mandatory. The name of the cost unit. |
Other Dimensions
Other dimensions are data records that can be used in custom fields in document lines (for custom fields in the header data, see “Custom Entities”). Each additional dimension is identified using a freely definable type (type field). All data records with the same type count as one additional dimension. You can assign an additional dimension to each custom field in d.velop smart invoice. You transfer additional dimensions as follows:
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"
}
]
}Each individual dimension value supports the following properties:
Property | Description |
|---|---|
company_id | The company to which this dimension value belongs. If you do not make an entry, the dimension value is valid for all companies. |
type | String. Mandatory. The type of this dimension value. Types are used to keep all the data for an additional dimension together. |
nr | String. Mandatory. The ID or number of the dimension value. |
name | String. Mandatory. The name of the dimension value. |
parent_dimension_type | String. The type of the additional dimension, which determines this dimension value. |
parent_dimension_id | String. The ID of the additional dimension value of the type parent_dimension_type, which determines this dimension value. |
Custom Entities
Custom entities are data records that can be used in custom fields in the document header (for custom fields in document lines, see “Other Dimensions”). Each custom entity is identified using a freely definable type (type field). All data records with the same type count as one custom entity. You can assign a custom entity to each custom field in d.velop smart invoice. You transfer custom entities as follows:
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"
}
]
}Each individual entity value supports the following properties:
Property | Description |
|---|---|
company_id | The company to which this entity value belongs. If you do not make an entry, the entity value is valid for all companies. |
type | String. Mandatory. The type of the entity value. Types are used to keep all the data for a custom entity together. |
id | String. Mandatory. The ID of this entity value. |
name | String. Mandatory. The name of this entity value. |
Purchase Orders
Purchase orders and purchase order line items are used to compare invoices and purchase orders in d.velop smart invoice. You transfer purchase orders and purchase order lines as follows:
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
}
]
}
]
}Each individual purchase order supports the following properties:
Property | Description |
|---|---|
company_id | String. Mandatory. The company to which this purchase order belongs. |
id | String. Mandatory. The ID of this purchase order. This is not displayed for users in d.velop invoices. |
nr | String. Mandatory. The number of this purchase order. |
name | String. Mandatory. A description of the purchase order. |
vendor_id | String. Mandatory. The ID of the vendor to which this purchase order belongs. |
status | Number. The following values and mapped statuses are possible: 1: Open 2: Approved 3: Confirmed 4: Partially received 5: Received 6: Partially invoiced 7: Invoiced 8: Cancelled |
custom1 to custom20 | String. Custom fields at header level The values of these fields are transferred to the relevant custom fields in the invoice header as long as the fields are empty on the invoice. |
Each individual purchase order line item supports the following properties:
Property | Description |
|---|---|
company_id | String. Mandatory. The company to which this purchase order line belongs. |
id | String. Mandatory. The ID of the purchase order line. This value must be unique across all the purchase orders. That means that even two different purchase orders must not share the same purchase order line ID. |
line_no | Number. Mandatory. The number of the line within the purchase order. |
quantity_ordered | Number. Mandatory. The total quantity ordered. |
quantity_received | Number. Mandatory. The total quantity received. |
quantity_not_invoiced | Number. Mandatory. The quantity that has not been invoiced yet. Caution: d.velop invoices does not use this value for quantity checks. |
item | String. Mandatory. The item number of the purchase order line. |
procurement_category | String. The procurement category of the purchase order line. |
description | String. Mandatory. A text describing the purchase order line, such as the name of the item. |
unit | String. Mandatory. The unit for the ordered quantity. For example, pieces. |
unit_price | Number. Mandatory. The unit price for the ordered item. |
price_unit | Number. Mandatory. The price unit or packaging unit if the supplier bills in a different quantity unit than the one managed in the ERP system. In cases of doubt, enter 1.0. |
subtotal | Number. Mandatory. Overall (net) amount of the purchase order line. |
gl_account | String. The G/L account for the purchase order line. |
cost_center | String. The cost center for the purchase order line. |
cost_unit | String. The cost unit for the purchase order line. |
tax_code_id | String. The ID of the associated tax code. |
discount_absolute | Number. Absolute discount on the overall (net) amount of the purchase order line. |
discount_per_unit | Number. Absolute discount on the unit price for the purchase order line. |
discount_percent | Number. Percentage discount on the overall (net) amount of the purchase order line. |
discount2_percent | Number. Second percentage discount on the overall (net) amount of the purchase order line. |
discount3_percent | Number. Third percentage discount on the overall (net) amount of the purchase order line. |
discount4_percent | Number. Fourth percentage discount on the overall (net) amount of the purchase order line. |
discount5_percent | Number. Fifth percentage discount on the overall (net) amount of the purchase order line. |
custom1 to custom20 | String. Custom fields. The values in the fields are transferred to the corresponding fields in the invoice line created from the purchase order. |
type | String. Mandatory. header_surcharge or line_item_surcharge. |
surcharged_line_item_id | String. The ID of the purchase order line item for which the surcharge applies. |
surcharge_category | String. pcs (surcharge per piece) or fixed (fixed surcharge) or percent (percentage surcharge). |
surcharge_value | String. Value of the surcharge. |
responsible | String. User name of the person responsible for the purchase order line item. Note this is case sensitive. |
goods_receipt_reference_mandatory | Boolean. Indicates whether the assignment of a goods receipt line to this order line item is mandatory. You can find further information on the use of this feature in the administration manual of d.velop smart invoice in the section Working with goods receipts. |
Note
Surcharge line items are separate order line items
Note that a surcharge line item in a purchase order represents a separate order line item. The reference to the purchase order line item for which the surcharge applies is established via the surcharged_line_item_id property.
Goods Receipt
Note
Goods receipts are still being previewed at the moment. Please contact d.velop if you would like to use goods receipts.
Goods receipts and goods receipt lines are used by d.velop invoices to compare purchase orders, goods receipts and invoices with each other. You transfer goods receipts and goods receipt lines as follows:
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"
}
]
}
]
}Each individual goods receipt supports the following properties:
Property | Description |
|---|---|
company_id | String. Mandatory. The company to which this goods receipt belongs. |
vendor_id | String. Mandatory. The vendor to which this goods receipt belongs. |
id | String. Mandatory. The ID of the goods receipt. This value is not displayed for users in d.velop invoices. |
nr | String. Mandatory. The number of the goods receipt. |
creation_date | Date. Mandatory. The date on which the goods receipt was created. Format YYYY-MM-DD. |
delivery_slip_nr | String. Mandatory. The vendor delivery slip number for which this goods receipt was posted. |
Each individual goods receipt line item supports the following properties:
Property | Description |
|---|---|
company_id | String. Mandatory. The company to which this goods receipt line belongs. |
id | String. Mandatory. The ID of this goods receipt line. This value must be unique across all the goods receipts. That means that two different goods receipts must not share the same goods receipt line ID. |
line_no | Number. Mandatory. The number of this goods receipt line within the goods receipt. |
goods_receipt_date | Date. Mandatory. The date on which this goods receipt line was posted. Format YYYY-MM-DD. |
quantity | Number. Mandatory. The quantity received. |
purchase_order_line_id | String. The ID of the purchase order line belonging to this goods receipt line. |
Surcharge types
Surcharge types are used by d.velop invoices to manually add surcharges to an invoice via the dialog. You can transfer surcharge types as follows:
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":""
}
]
}
Each individual surcharge type supports the following properties:
Property | Description |
|---|---|
company_id | String. The company to which the surcharge type belongs. If you do not specify a company, the cost unit applies for all companies. |
nr | String. Mandatory. The ID of the surcharge. The ID must be unique and cannot be left blank. |
name | String. Name of the surcharge type. |
applies_to | String. Mandatory. Possible values: header_surcharge, line_item_surcharge |
erp_id | String. |
tenant_id | String. Mandatory. |
category | String. Use the values pcs, fixed, percent if the surcharges are added per piece, at a fixed rate or as a percentage. |
quantity | String. Number of the surcharge type. |
unit_price | String. Unit price of the surcharge type. |
gl_account | String. The G/L account of the surcharge type. |
cost_center | String. The cost center of the surcharge type. |
cost_unit | String. The cost object of the surcharge type. |
item | String. The item number of the surcharge type. |
tax_code_id | String. The tax code of the surcharge type. |
custom1-20 | String. Custom fields of the surcharge type. |
tax_category | String. The tax category of the surcharge type. |
procurement_category | String. The procurement category of the surcharge type. |
Adding and updating individual master data records
You can create and update individual entities via API. This option supplements the existing batch endpoints. Individual master data records are transferred synchronously. This means that master data that changes frequently can be updated in a targeted manner in d.velop smart invoice.
Warning
API requests must only be made as part of an application interaction (e.g. via a button in the external ERP system). Do not misuse the API, e.g. to synchronously update all accounts payable. Make sure that mass actions in the ERP system do not lead to a large number of API requests. The API also has a rate limit. The HTTP status 429 "Too Many Requests" means that the rate limit has been reached.
Request
Example of a request to update a single company:
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"
}You can find more information about the properties of the entity under Batch transfer of master data.
Differences compared to the batch endpoints
You obtain the API endpoint for updating or adding individual master data records of the desired entity by omitting the last path segment /batch.
The HTTP verb is PUT.
In contrast to the batch endpoints, a request adds or updates only one master data record of an entity. The body of the request is not an array and contains the master data record as an object.
The transferred master data record is created or updated synchronously. Unlike the existing batch endpoints, the response does not return an asynchronously processed job object. You can determine the success or failure of the request directly from the status code of the HTTP response.
The endpoints for updating individual master data records have a rate limit that must be taken into account when using the API.
Response
HTTP/1.1 201 Created
Content-Type: application/json
{
"status": "successful"
}/smartinvoice