Einführung

Was ist eine API?

Der Begriff API ist die Abkürzung für Application Programming Interfaces, auf Deutsch Programmierschnittstelle für Anwendungen. Es handelt sich um eine Reihe von Definitionen und Protokollen, die zum Entwickeln und Integrieren von Software verwendet werden.

Wofür ist diese API gedacht?

Diese API erleichtert es uns, den Kunden von Natural Systems automatisiert Informationen bereitzustellen und Daten von ihnen zu erfassen.

Wir stellen Methoden bereit, um Katalogdaten, Bestand, Maßeinheiten, Preise und Adressen abzurufen.

Darüber hinaus bieten wir die Möglichkeit, Daten zu ändern, etwa Adressen, die Erfassung von Bestellungen oder Angebote.

Wie fange ich an?

Hier ist unsere Basis-URL

https://api.naturalsystems.es/api

Authentifizierung

Wir verwenden API-Keys, um Anfragen zu authentifizieren.

Sie können Ihre API-Keys in Ihrem Benutzerkonto im Bereich für Entwickler einsehen, bearbeiten und löschen.

Ihre API-Keys ermöglichen den Zugriff auf viele Ihrer sensiblen Informationen, bewahren Sie sie deshalb gut geschützt auf. Geben Sie sie nicht in öffentlichen Bereichen wie GitHub oder über unsichere Anfragen preis.

Die Authentifizierung der API erfolgt über den HTTP-Header Authorization per Bearer Token. Als Zugriffstoken dient das Token, das Sie beim Aufruf der Methode /login mit Ihrem API-Key erhalten.

Denken Sie daran: Alle Anfragen müssen über HTTPS erfolgen. Über HTTP schlagen sie fehl.

Brauchen Sie Hilfe mit Ihrem API-Key?

Erzeugen Sie einen API-Key in Ihrem Benutzerprofil

Der Authentifizierungs-Header sollte wie in diesem Beispiel aussehen:

"Authorization: 
    Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYXJkQ29kZSI6IkMwMDAwMCIsImdyb3VwQ29kZSI6MTAwLCJsaXN0TnVtIjoxLCJub0Rpc2NvdW50IjoiTiIsImRpc2NSZWwiOiJIIiwibXVlc3RyYU9jdWx0YXMiOjEsImlhdCI6MTc2NzIyNTYwMCwiZXhwIjoxNzY3MzEyMDAwfQ.EJEMPLOdeFIRMAnoVALIDA0123456789abcdefghijk"

Fehler

Wir verwenden die üblichen HTTP-Statuscodes, um den Erfolg oder das Scheitern einer API-Anfrage anzuzeigen.

Codes im Bereich 2xx zeigen an, dass der Aufruf korrekt funktioniert hat.

Codes im Bereich 4xx stehen für Fehler in den durchgeführten Aufrufen (fehlende Felder, falsche Angaben, nicht authentifizierter Benutzer usw.).

Codes im Bereich 5xx stehen für einen Fehler in der JSON-Syntax des Aufrufs oder, in sehr seltenen Fällen, für einen Verbindungsfehler mit den Servern von Natural Systems.

Falls Sie 5xx-Serverfehler erhalten, können Sie sich an it@naturalsystems.es wenden und den durchgeführten Aufruf sowie den gesendeten Inhalt mitschicken, damit wir das Problem prüfen und nach Möglichkeit eine Lösung finden können.

Übersicht der Fehlercodes

200 - OK. Alles funktioniert wie erwartet.

204 - OK. Alles hat korrekt funktioniert, der Aufruf darf jedoch keinen Inhalt zurückgeben.

400 - Fehler. Fehler bei der Verarbeitung des Aufrufs. Der konkrete Fehler wird als Antwort zurückgegeben.

401 - Nicht autorisiert. Vor der Verbindung wurde keine gültige Authentifizierung durchgeführt.

403 - Verboten. Der API-Key verfügt nicht über die Berechtigungen für diesen Aufruf.

413 - Anfrage zu groß. Die Anfrage überschreitet 100 KB. Teile die Liste in kleinere Stapel.

429 - Zu viele Anfragen. Die Nutzungsgrenze wurde überschritten. Warte auf das Zurücksetzen des Zeitfensters und versuche es erneut.

500 - Serverfehler. Etwas ist schiefgelaufen: fehlerhaftes JSON oder Verbindungsfehler mit dem Server (selten)

Nutzungsgrenzen

Damit der Dienst für alle stabil bleibt, begrenzt die API die Anzahl der Anfragen pro Zeitfenster. Die Grenzen sind großzügig: eine normale Integration erreicht sie nicht.

Bei den Methoden mit Token gehört das Kontingent deinem Kundenkonto und nicht der IP-Adresse, von der aus du aufrufst: Du kannst die Integration auf mehrere Server verteilen, ohne Kontingent zu verlieren, und niemand, der deinen Internetzugang teilt, verbraucht es.

Jede Antwort enthält die Header RateLimit und RateLimit-Policy mit dem verbleibenden Kontingent und den Sekunden bis zum Zurücksetzen des Zeitfensters.

Wird eine Grenze überschritten, antwortet die API mit 429 Too Many Requests. Warte auf das Zurücksetzen des Zeitfensters —der Wert reset im Header nennt die verbleibenden Sekunden— und versuche es erneut. Braucht deine Integration mehr Kontingent, schreib uns an it@naturalsystems.es.

Grenzen auf einen Blick

600 Anfragen / 15 Min. - Gesamte API, pro IP-Adresse gezählt.

20 Versuche / 15 Min. - Login, pro IP-Adresse gezählt.

600 Anfragen / 15 Min. - Methoden mit Token, pro Kundenkonto gezählt.

60 Downloads / Stunde - CSV-Exporte und Dokument-PDFs, pro Kundenkonto gezählt.

30 Stapel / Stunde - Rabatte im Stapel, pro Kundenkonto gezählt.


Header und Antwort bei überschrittener Grenze

RateLimit: limit=600, remaining=594, reset=782
RateLimit-Policy: 600;w=900

HTTP/1.1 429 Too Many Requests

{
    "errorMessage": "Too many requests. Please try again later."
}

Login

Führt eine Authentifizierungsanfrage durch: Der API-Key wird geprüft und bei Gültigkeit das Token zurückgegeben, das in allen übrigen Methoden zu verwenden ist.

Das erzeugte Token ist 24 Stunden gültig.

Endpoint:

POST /login

Methode zum Anmelden

Hier zeigen wir einen Beispielaufruf für die Anmeldung:

1var axios = require('axios');
2var data = JSON.stringify({"apiKey":"$2b$12$EJEMPLOdeAPIKEYnoVALIDA0123456789abcdefghijklmnopqrst"});
3 
4var config = {
5  method: 'post',
6  url: 'https://api.naturalsystems.es/api/login',
7  headers: { 
8    'Content-Type': 'application/json'
9  },
10  data : data
11};
12 
13axios(config)
14.then(function (response) {
15  console.log(JSON.stringify(response.data));
16})
17.catch(function (error) {
18  console.log(error);
19});
20

Get Kategorie

Gibt den vollständigen Kategoriebaum der Produkte in derselben Reihenfolge zurück wie auf der Website von Natural Systems.

Das Attribut father: null kennzeichnet die oberste Kategorie des Baums, alle übrigen enthalten die unmittelbar übergeordnete Kategorie.


Endpoint:

GET /producto/getCategoria

Der Parameter lang akzeptiert 1 (Spanisch), 2 (Englisch), 3 (Französisch) und 4 (Deutsch). Bei jedem anderen Wert kommen die Texte auf Spanisch.


Korrekte Antwort beim Abruf der Kategorien

Nachfolgend zeigen wir ein Beispiel für eine korrekte Antwort:

[
    {
        "id": 1,
        "name": "",
        "father": null,
        "position": "1"
    },
    {
        "id": 2828,
        "name": "Sustratos",
        "father": 1,
        "position": "1"
    },
   {
        "id": 3770,
        "name": "Iluminación",
        "father": 1,
        "position": "9"
    }
]

Methode zum Abrufen der Kategorien von Natural Systems

Hier zeigen wir einen Beispielaufruf, um den Kategoriebaum abzurufen:

1var axios = require('axios');
2var data = JSON.stringify({"lang":1});
3 
4var config = {
5  method: 'get',
6  url: 'https://api.naturalsystems.es/api/producto/getCategoria',
7  headers: { 
8    'Authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYXJkQ29kZSI6IkMwMDAwMCIsImdyb3VwQ29kZSI6MTAwLCJsaXN0TnVtIjoxLCJub0Rpc2NvdW50IjoiTiIsImRpc2NSZWwiOiJIIiwibXVlc3RyYU9jdWx0YXMiOjEsImlhdCI6MTc2NzIyNTYwMCwiZXhwIjoxNzY3MzEyMDAwfQ.EJEMPLOdeFIRMAnoVALIDA0123456789abcdefghijk', 
9    'Content-Type': 'application/json'
10  },
11  data : data
12};
13 
14axios(config)
15.then(function (response) {
16  console.log(JSON.stringify(response.data));
17})
18.catch(function (error) {
19  console.log(error);
20});
21

Get Bestand

Ruft den Bestand der verfügbaren Produkte ab.


Endpoint:

GET /producto/getStock

Korrekte Antwort beim Abruf des Produktbestands

Nachfolgend zeigen wir ein Beispiel für eine korrekte Antwort:

[
    {
        "itemCode": "ACCE0032",
        "stock": 99999
    },
    {
        "itemCode": "ACCE0033",
        "stock": 15
    },
    {
        "itemCode": "ACCE0034",
        "stock": 22
    },
    {
        "itemCode": "ACCE0036",
        "stock": 99999
    }
]

Methode zum Abrufen des Produktbestands

Beispielaufruf:

1var axios = require('axios');
2    
3var config = {
4  method: 'get',
5  url: 'https://api.naturalsystems.es/api/producto/getStock',
6  headers: { 
7    'Authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYXJkQ29kZSI6IkMwMDAwMCIsImdyb3VwQ29kZSI6MTAwLCJsaXN0TnVtIjoxLCJub0Rpc2NvdW50IjoiTiIsImRpc2NSZWwiOiJIIiwibXVlc3RyYU9jdWx0YXMiOjEsImlhdCI6MTc2NzIyNTYwMCwiZXhwIjoxNzY3MzEyMDAwfQ.EJEMPLOdeFIRMAnoVALIDA0123456789abcdefghijk'
8  }
9};
10
11axios(config)
12.then(function (response) {
13  console.log(JSON.stringify(response.data));
14})
15.catch(function (error) {
16  console.log(error);
17});

Get Maßeinheiten

Gibt das Verkaufsformat jedes Produkts zurück (Karton, Palette, Stück), mit der Stückzahl pro Einheit, dem Gewicht in kg und den Maßen in cm.


Endpoint:

GET /producto/getUnidadMedida

Korrekte Antwort beim Abruf der Maßeinheiten

Nachfolgend zeigen wir ein Beispiel für eine korrekte Antwort:

[
    {
        "itemCode": "ABRA0004",
        "uomCode": "Unidad",
        "quantity": 1,
        "weight": 0.04,
        "width": 12,
        "height": 12,
        "length": 1,
        "volume": 144
    },
    {
        "itemCode": "ABRA0004",
        "uomCode": "Caja",
        "quantity": 50,
        "weight": 2,
        "width": 14,
        "height": 15,
        "length": 40,
        "volume": 8400
    },
    {
        "itemCode": "ABRA0004",
        "uomCode": "Palet",
        "quantity": 11200,
        "weight": 0,
        "width": 0,
        "height": 0,
        "length": 0,
        "volume": 0
    }
]

Methode zum Abrufen des Verkaufsformats des Produkts

Beispielaufruf:

1var axios = require('axios');
2var data = '';
3 
4var config = {
5  method: 'get',
6  url: 'https://api.naturalsystems.es/api/producto/getUnidadMedida',
7  headers: { 
8    'Authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYXJkQ29kZSI6IkMwMDAwMCIsImdyb3VwQ29kZSI6MTAwLCJsaXN0TnVtIjoxLCJub0Rpc2NvdW50IjoiTiIsImRpc2NSZWwiOiJIIiwibXVlc3RyYU9jdWx0YXMiOjEsImlhdCI6MTc2NzIyNTYwMCwiZXhwIjoxNzY3MzEyMDAwfQ.EJEMPLOdeFIRMAnoVALIDA0123456789abcdefghijk'
9  },
10  data : data
11};
12 
13axios(config)
14.then(function (response) {
15  console.log(JSON.stringify(response.data));
16})
17.catch(function (error) {
18  console.log(error);
19});
20

Get Preis

Ruft die vollständige Preisliste des Kunden ab. Diese Preise enthalten bereits den gewährten Rabatt. Zusätzlich wird die unverbindliche Preisempfehlung des Produkts mitgeliefert.


Endpoint:

GET /producto/getPrecio

Korrekte Antwort beim Abruf des Produktpreises

Nachfolgend zeigen wir ein Beispiel für eine korrekte Antwort:

[
    {
        "itemCode": "ABRA0004",
        "price": 0.5,
        "pvp": 1.07
    },
    {
        "itemCode": "ABRA0005",
        "price": 0.54,
        "pvp": 1.16
    },
    {
        "itemCode": "ABRA0006",
        "price": 0.58,
        "pvp": 1.24
    }
]

Methode zum Abrufen des Produktpreises

Beispielaufruf:

1var axios = require('axios');
2 
3var config = {
4  method: 'get',
5  url: 'https://api.naturalsystems.es/api/producto/getPrecio',
6  headers: { 
7    'Authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYXJkQ29kZSI6IkMwMDAwMCIsImdyb3VwQ29kZSI6MTAwLCJsaXN0TnVtIjoxLCJub0Rpc2NvdW50IjoiTiIsImRpc2NSZWwiOiJIIiwibXVlc3RyYU9jdWx0YXMiOjEsImlhdCI6MTc2NzIyNTYwMCwiZXhwIjoxNzY3MzEyMDAwfQ.EJEMPLOdeFIRMAnoVALIDA0123456789abcdefghijk'
8  }
9};
10 
11axios(config)
12.then(function (response) {
13  console.log(JSON.stringify(response.data));
14})
15.catch(function (error) {
16  console.log(error);
17});

Get Mengenrabatt

Gibt die Rabattstaffeln zurück, die für die Produkte je nach gekaufter Menge gelten. Zurückgegeben werden die Menge in Stück, der gewährte Rabatt, der Endpreis mit Rabatt und der Zeitraum, in dem die Aktion gültig ist.


Endpoint:

GET /producto/getDescuentoCantidad

Korrekte Antwort beim Abruf der Rabatte

Nachfolgend zeigen wir ein Beispiel für eine korrekte Antwort:

[
    {
        "itemCode": "ACFU0046",
        "discounts": [
            {
                "quantity": 600,
                "discount": 10,
                "specialPrice": 0.14,
                "fromDate": "2019-11-26T00:00:00.000Z",
                "toDate": "2021-03-09T10:10:11.873Z"
            },
            {
                "quantity": 3000,
                "discount": 20,
                "specialPrice": 0.12,
                "fromDate": "2019-11-26T00:00:00.000Z",
                "toDate": "2021-03-09T10:10:11.873Z"
            },
            {
                "quantity": 12000,
                "discount": 30,
                "specialPrice": 0.11,
                "fromDate": "2019-11-26T00:00:00.000Z",
                "toDate": "2021-03-09T10:10:11.873Z"
            },
            {
                "quantity": 60000,
                "discount": 25,
                "specialPrice": 0.11,
                "fromDate": "2019-11-26T00:00:00.000Z",
                "toDate": "2021-03-09T10:10:11.873Z"
            }
        ]
    }
]

Methode zum Abrufen der Mengenrabatte

Beispielaufruf:

1var axios = require('axios');
2 
3var config = {
4  method: 'get',
5  url: 'https://api.naturalsystems.es/api/producto/getDescuentoCantidad',
6  headers: { 
7    'Authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYXJkQ29kZSI6IkMwMDAwMCIsImdyb3VwQ29kZSI6MTAwLCJsaXN0TnVtIjoxLCJub0Rpc2NvdW50IjoiTiIsImRpc2NSZWwiOiJIIiwibXVlc3RyYU9jdWx0YXMiOjEsImlhdCI6MTc2NzIyNTYwMCwiZXhwIjoxNzY3MzEyMDAwfQ.EJEMPLOdeFIRMAnoVALIDA0123456789abcdefghijk'
8  }
9};
10 
11axios(config)
12.then(function (response) {
13  console.log(JSON.stringify(response.data));
14})
15.catch(function (error) {
16  console.log(error);
17});

Get Katalog CSV

Gibt die vollständige Artikelliste zurück, aufbereitet für den Import im CSV-Format.


Endpoint:

GET /producto/getCsv

Der Parameter lang akzeptiert 1 (Spanisch), 2 (Englisch), 3 (Französisch) und 4 (Deutsch). Bei jedem anderen Wert kommen die Texte auf Spanisch.


Antwort beim Abruf des Katalogs

Nachfolgend zeigen wir ein Beispiel für eine korrekte Antwort:

REFERENCE;PRODUCT;BRAND;TAX;STOCK;SHORT_DESCRIPTION;DESCRIPTION;IMAGES;CATEGORY_PATH;ID_CATEGORY_PATH;BASE_PRICE;PVP;WEIGHT;WIDTH;HEIGHT;DEPTH;ID_CATEGORY_DEFAULT;REFERENCE_PARENT;ATTR;ATTR2
ABRA0004;"Abrazadera Metálica Sin Fin";;21;99999;"";"";https://newapi.naturalsystems.es/p/ABRA0004/ABRA0004-00.png;Control de Clima > Conductos de ventilación;3772 > 3866;0.75;0.94;0.04;12;12;1;3866;;465
ABRA0005;"Abrazadera Metálica Sin Fin";;21;99999;"";"";https://newapi.naturalsystems.es/p/ABRA0005/ABRA0005-00.png;Control de Clima > Conductos de ventilación;3772 > 3866;0.8;1;0.01;14;14;1;3866;ABRA0004;466

Methode zum Abrufen des Katalogs im CSV-Format

Hier zeigen wir einen Beispielaufruf, um den Katalog abzurufen:

1var axios = require('axios');
2var data = JSON.stringify({"lang":1});
3 
4var config = {
5  method: 'get',
6  url: 'https://api.naturalsystems.es/api/producto/getCsv',
7  headers: { 
8    'Authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYXJkQ29kZSI6IkMwMDAwMCIsImdyb3VwQ29kZSI6MTAwLCJsaXN0TnVtIjoxLCJub0Rpc2NvdW50IjoiTiIsImRpc2NSZWwiOiJIIiwibXVlc3RyYU9jdWx0YXMiOjEsImlhdCI6MTc2NzIyNTYwMCwiZXhwIjoxNzY3MzEyMDAwfQ.EJEMPLOdeFIRMAnoVALIDA0123456789abcdefghijk'
9  },
10  data : data
11};
12 
13axios(config)
14.then(function (response) {
15  console.log(JSON.stringify(response.data));
16})
17.catch(function (error) {
18  console.log(error);
19});

Get Katalog Prestashop

Gibt die vollständige Artikelliste zurück, aufbereitet für den Datenimport in Prestashop-Plattformen.


Endpoint:

GET /producto/getCsvPrestashop

Der Parameter lang akzeptiert 1 (Spanisch), 2 (Englisch), 3 (Französisch) und 4 (Deutsch). Bei jedem anderen Wert kommen die Texte auf Spanisch.


Antwort beim Abruf des Katalogs

Nachfolgend zeigen wir ein Beispiel für eine korrekte Antwort:

REFERENCE;PRODUCT;BRAND;TAX;WEIGHT;STOCK;SHORT_DESCRIPTION;DESCRIPTION;IMAGES;CATEGORY_PATH;ID_CATEGORY_PATH;PRICE_CLIENTE;PVP;WIDTH;HEIGHT;DEPTH;ID_CATEGORY_DEFAULT;REFERENCE_PARENT;ATTR;ATTR2
ABRA0004;"Abrazadera Metálica Sin Fin";;21;0.04;99999;"";"";https://newapi.naturalsystems.es/p/ABRA0004/ABRA0004-00.png;Control de Clima > Conductos de ventilación;3772 > 3866;0.75;0.94;12;12;1;3866;;465
ABRA0005;"Abrazadera Metálica Sin Fin";;21;0.01;99999;"";"";https://newapi.naturalsystems.es/p/ABRA0005/ABRA0005-00.png;Control de Clima > Conductos de ventilación;3772 > 3866;0.8;1;14;14;1;3866;ABRA0004;466

Methode zum Abrufen des an Prestashop angepassten Katalogs

Hier zeigen wir einen Beispielaufruf, um den Katalog abzurufen:

1var axios = require('axios');
2var data = JSON.stringify({"lang":1});
3 
4var config = {
5  method: 'get',
6  url: 'https://api.naturalsystems.es/api/producto/getCsvPrestashop',
7  headers: { 
8    'Authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYXJkQ29kZSI6IkMwMDAwMCIsImdyb3VwQ29kZSI6MTAwLCJsaXN0TnVtIjoxLCJub0Rpc2NvdW50IjoiTiIsImRpc2NSZWwiOiJIIiwibXVlc3RyYU9jdWx0YXMiOjEsImlhdCI6MTc2NzIyNTYwMCwiZXhwIjoxNzY3MzEyMDAwfQ.EJEMPLOdeFIRMAnoVALIDA0123456789abcdefghijk'
9  },
10  data : data
11};
12 
13axios(config)
14.then(function (response) {
15  console.log(JSON.stringify(response.data));
16})
17.catch(function (error) {
18  console.log(error);
19});

Get Katalog Woocommerce

Gibt die vollständige Artikelliste zurück, aufbereitet für den Datenimport in Woocommerce-Plattformen.


Endpoint:

GET /producto/getCsvWoocommerce

Der Parameter lang akzeptiert 1 (Spanisch), 2 (Englisch), 3 (Französisch) und 4 (Deutsch). Bei jedem anderen Wert kommen die Texte auf Spanisch.


Antwort beim Abruf des Katalogs

Nachfolgend zeigen wir ein Beispiel für eine korrekte Antwort:

Tipo;SKU;Nombre;Publicado;"¿Está destacado?";"Visibilidad en el catálogo";"Descripción corta";Descripción;"Día en que empieza el precio rebajado";"Día en que termina el precio rebajado";"Estado del impuesto";"Clase de impuesto";"¿En inventario?";Inventario;"Cantidad de bajo inventario";"¿Permitir reservas de productos agotados?";"¿Vendido individualmente?";"Peso (kg)";"Longitud (cm)";"Anchura (cm)";"Altura (cm)";"¿Permitir valoraciones de clientes?";"Nota de compra";"Precio rebajado";"Precio normal";Categorías;Etiquetas;"Clase de envío";Imágenes;"Límite de descargas";"Días de caducidad de la descarga";Superior;"Productos agrupados";"Ventas dirigidas";"Ventas cruzadas";URL externa";"Texto del botón";Posición;meta:Brand;"Nombre del atributo 1";"Valor(es) del atributo 1";"Atributo visible 1";"Atributo global 1";"Nombre del atributo 2";"Valor(es) del atributo 2";"Atributo visible 2";"Atributo global 2";"Nombre del atributo 3";"Valor(es) del atributo 3";"Atributo visible 3";"Atributo global 3";"Nombre del atributo 4";"Valor(es) del atributo 4";"Atributo visible 4";"Atributo global 4";"Nombre del atributo 5";"Valor(es) del atributo 5";"Atributo visible 5"
simple;ABRA0004;"Abrazadera Metálica Sin Fin";1;0;visible;"";"";0;0;taxable;;1;99999;;0;0;0.04;1;12;12;1;;;0.75;Control de Clima > Conductos de ventilación;;;https://newapi.naturalsystems.es/p/ABRA0004/ABRA0004-00.png;;;;;;;;;;;100 95mm-105mm;465;1;
simple;ABRA0005;"Abrazadera Metálica Sin Fin";1;0;visible;"";"";0;0;taxable;;1;99999;;0;0;0.01;1;14;14;1;;;0.8;Control de Clima > Conductos de ventilación;;;https://newapi.naturalsystems.es/p/ABRA0005/ABRA0005-00.png;;;;;;;;;;;125 119mm-131mm;466;1;

Methode zum Abrufen des an Woocommerce angepassten Katalogs

Hier zeigen wir einen Beispielaufruf, um den Katalog abzurufen:

1var axios = require('axios');
2var data = JSON.stringify({"lang":1});
3 
4var config = {
5  method: 'get',
6  url: 'https://api.naturalsystems.es/api/producto/getCsvWoocommerce',
7  headers: { 
8    'Authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYXJkQ29kZSI6IkMwMDAwMCIsImdyb3VwQ29kZSI6MTAwLCJsaXN0TnVtIjoxLCJub0Rpc2NvdW50IjoiTiIsImRpc2NSZWwiOiJIIiwibXVlc3RyYU9jdWx0YXMiOjEsImlhdCI6MTc2NzIyNTYwMCwiZXhwIjoxNzY3MzEyMDAwfQ.EJEMPLOdeFIRMAnoVALIDA0123456789abcdefghijk'
9  },
10  data : data
11};
12 
13axios(config)
14.then(function (response) {
15  console.log(JSON.stringify(response.data));
16})
17.catch(function (error) {
18  console.log(error);
19});

Get Kombinationen

Gibt die vollständige Liste der Artikelkombinationen zurück, aufbereitet für den Import im CSV-Format.


Endpoint:

GET /producto/getCsvCombinaciones

Der Parameter lang akzeptiert 1 (Spanisch), 2 (Englisch), 3 (Französisch) und 4 (Deutsch). Bei jedem anderen Wert kommen die Texte auf Spanisch.


Antwort beim Abruf der Kombinationen

Nachfolgend zeigen wir ein Beispiel für eine korrekte Antwort:

ID_COMB;ITEMCODE
2707;ADNU0003
2707;ADNU0026
2707;ADNU0102
2707;ADNU0101
2708;ADNU0177
2708;ADNU0250

Methode zum Abrufen der Artikelkombinationen

Hier zeigen wir einen Beispielaufruf, um die Kombinationen abzurufen:

1var axios = require('axios');
2var data = JSON.stringify({"lang":1});
3 
4var config = {
5  method: 'get',
6  url: 'https://api.naturalsystems.es/api/producto/getCsvCombinaciones',
7  headers: { 
8    'Authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYXJkQ29kZSI6IkMwMDAwMCIsImdyb3VwQ29kZSI6MTAwLCJsaXN0TnVtIjoxLCJub0Rpc2NvdW50IjoiTiIsImRpc2NSZWwiOiJIIiwibXVlc3RyYU9jdWx0YXMiOjEsImlhdCI6MTc2NzIyNTYwMCwiZXhwIjoxNzY3MzEyMDAwfQ.EJEMPLOdeFIRMAnoVALIDA0123456789abcdefghijk'
9  },
10  data : data
11};
12 
13axios(config)
14.then(function (response) {
15  console.log(JSON.stringify(response.data));
16})
17.catch(function (error) {
18  console.log(error);
19});

Get Attribute

Gibt die vollständige Liste der Artikelattribute zurück, aufbereitet für den Import im CSV-Format.


Endpoint:

GET /producto/getCsvAtributos

Der Parameter lang akzeptiert 1 (Spanisch), 2 (Englisch), 3 (Französisch) und 4 (Deutsch). Bei jedem anderen Wert kommen die Texte auf Spanisch.


Antwort beim Abruf der Attribute

Nachfolgend zeigen wir ein Beispiel für eine korrekte Antwort:

ID_ATTRIBUTE_GROUP;NAME_ATTRIBUTE_GROUP;ID_ATTRIBUTE;NAME_ATTRIBUTE
4;Liquidos;44;30 ml
15;Macetas;1580;24.7x24.7x26.1cm (11L)
6;Extractores;1605;3250m3/h (2 Boca Entrada 250mm - 1 Boca Salida 315mm)

Methode zum Abrufen der Artikelattribute

Hier zeigen wir einen Beispielaufruf, um die Attribute abzurufen:

1var axios = require('axios');
2var data = JSON.stringify({"lang":1});
3 
4var config = {
5  method: 'get',
6  url: 'https://api.naturalsystems.es/api/producto/getCsvAtributos',
7  headers: { 
8    'Authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYXJkQ29kZSI6IkMwMDAwMCIsImdyb3VwQ29kZSI6MTAwLCJsaXN0TnVtIjoxLCJub0Rpc2NvdW50IjoiTiIsImRpc2NSZWwiOiJIIiwibXVlc3RyYU9jdWx0YXMiOjEsImlhdCI6MTc2NzIyNTYwMCwiZXhwIjoxNzY3MzEyMDAwfQ.EJEMPLOdeFIRMAnoVALIDA0123456789abcdefghijk'
9  },
10  data : data
11};
12 
13axios(config)
14.then(function (response) {
15  console.log(JSON.stringify(response.data));
16})
17.catch(function (error) {
18  console.log(error);
19});

Create Neue Bestellung

Sendet eine neue Bestellung oder ein Angebot. Direktbestellungen und Dropshipping-Bestellungen sind möglich.


Endpoint:

POST /pedido/nuevoPedido

Beispielobjekt

{
    "isQuote": "Y",
    "isDropship": "Y",
    "shipInstructions": "C/ Ejemplo 1, 00000 Ciudad de ejemplo, España",
    "shipAddress": "Almacén de ejemplo",
    "billAddress": "Almacén de ejemplo",
    "orderIntructions": "No enviar documentación",
    "remarks": "Comentarios del pedido",
    "items": [
        {
            "itemCode": "TONE0011",
            "quantity": 80
        },
        {
            "itemCode": "LUMI0017",
            "quantity": 5
        },
        {
            "itemCode": "SUST0110",
            "quantity": 2
        }
    ]
}

Erhaltene korrekte Antwort

Order successfully grabbed

Methode zum Anlegen einer neuen Bestellung

Beispielaufruf:

1var axios = require('axios');
2var data = JSON.stringify({"isQuote":"Y","isDropship":"Y","shipInstructions":"C/ Ejemplo 1, 00000 Ciudad de ejemplo, España","shipAddress":"Almacén de ejemplo","billAddress":"Almacén de ejemplo","orderIntructions":"No enviar documentación","remarks":"Comentarios del pedido","items":[{"itemCode":"TONE0011","quantity":80},{"itemCode":"LUMI0017","quantity":5},{"itemCode":"SUST0110","quantity":2}]});
3 
4var config = {
5  method: 'post',
6  url: 'https://api.naturalsystems.es/api/pedido/nuevoPedido',
7  headers: { 
8    'Authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYXJkQ29kZSI6IkMwMDAwMCIsImdyb3VwQ29kZSI6MTAwLCJsaXN0TnVtIjoxLCJub0Rpc2NvdW50IjoiTiIsImRpc2NSZWwiOiJIIiwibXVlc3RyYU9jdWx0YXMiOjEsImlhdCI6MTc2NzIyNTYwMCwiZXhwIjoxNzY3MzEyMDAwfQ.EJEMPLOdeFIRMAnoVALIDA0123456789abcdefghijk', 
9    'Content-Type': 'application/json'
10  },
11  data : data
12};
13 
14axios(config)
15.then(function (response) {
16  console.log(JSON.stringify(response.data));
17})
18.catch(function (error) {
19  console.log(error);
20});

Get Lieferadresse

Ruft die im Benutzerkonto hinterlegten Lieferadressen ab.


Endpoint:

GET /cuenta/getDireccionEnvio

Erhaltene korrekte Antwort

[
{
        "address": "Almacén de ejemplo",
        "street": "C/ Ejemplo 1",
        "city": "Ciudad de ejemplo",
        "zipCode": "00000",
        "state": "Provincia de ejemplo",
        "country": "Provincia de ejemplo",
        "contactPerson": "Juan Ejemplo",
        "phone": "+34 6xx xx xx xx",
        "schedule": "De 9 a 14",
        "remark": "Observaciones de transporte"
    }
]

Methode zum Abrufen der Lieferadresse(n)

Beispielaufruf:

1var axios = require('axios');
2 
3var config = {
4  method: 'get',
5  url: 'https://api.naturalsystems.es/api/cuenta/getDireccionEnvio',
6  headers: { 
7    'Authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYXJkQ29kZSI6IkMwMDAwMCIsImdyb3VwQ29kZSI6MTAwLCJsaXN0TnVtIjoxLCJub0Rpc2NvdW50IjoiTiIsImRpc2NSZWwiOiJIIiwibXVlc3RyYU9jdWx0YXMiOjEsImlhdCI6MTc2NzIyNTYwMCwiZXhwIjoxNzY3MzEyMDAwfQ.EJEMPLOdeFIRMAnoVALIDA0123456789abcdefghijk'
8  }
9};
10 
11axios(config)
12.then(function (response) {
13  console.log(JSON.stringify(response.data));
14})
15.catch(function (error) {
16  console.log(error);
17});

Create Lieferadresse

Legt mit den Daten des Aufrufs eine neue Lieferadresse an.


Endpoint:

POST /cuenta/createDireccionEnvio

Beispielobjekt

1{
2    "name": "Almacén de ejemplo 2",
3    "street": "C/ Ejemplo 1",
4    "zipCode": "00000",
5    "city": "Ciudad de ejemplo",
6    "state": "Provincia de ejemplo",
7    "country": "ES",
8    "contactPerson": "Juan Ejemplo",
9    "phone": "+34 6xx xx xx xx",
10    "phoneShipping": "+34 6xx xx xx xx",
11    "shippingRemarks": "Observaciones de transporte"
12}

Erhaltene korrekte Antwort

Address 'Almacén de ejemplo 2' created successfully.

Methode zum Anlegen einer neuen Lieferadresse

Beispielaufruf:

1var axios = require('axios');
2var data = JSON.stringify({
3    "name": "Almacén de ejemplo 2",
4    "street": "C/ Ejemplo 1",
5    "zipCode": "00000",
6    "city": "Ciudad de ejemplo",
7    "state": "Provincia de ejemplo",
8    "country": "ES",
9    "contactPerson": "Juan Ejemplo",
10    "phone": "+34 6xx xx xx xx",
11    "phoneShipping": "+34 6xx xx xx xx",
12    "shippingRemarks": "Observaciones de transporte"
13});
14 
15var config = {
16  method: 'post',
17  url: 'https://api.naturalsystems.es/api/cuenta/updateDireccionEnvio',
18  headers: { 
19    'Authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYXJkQ29kZSI6IkMwMDAwMCIsImdyb3VwQ29kZSI6MTAwLCJsaXN0TnVtIjoxLCJub0Rpc2NvdW50IjoiTiIsImRpc2NSZWwiOiJIIiwibXVlc3RyYU9jdWx0YXMiOjEsImlhdCI6MTc2NzIyNTYwMCwiZXhwIjoxNzY3MzEyMDAwfQ.EJEMPLOdeFIRMAnoVALIDA0123456789abcdefghijk', 
20    'Content-Type': 'application/json'
21  },
22  data : data
23  };
24 
25axios(config)
26.then(function (response) {
27  console.log(JSON.stringify(response.data));
28})
29.catch(function (error) {
30  console.log(error);
31});
32

Update Lieferadresse

Aktualisiert die Daten einer bereits vorhandenen Lieferadresse. Pflicht sind nur das Feld „address“ und die zu aktualisierenden Felder.


Endpoint:

PATCH /cuenta/updateDireccionEnvio

Erhaltene korrekte Antwort

Address 'Almacén de ejemplo 2' updated successfully.

Methode zum Aktualisieren der Daten Ihrer Lieferadressen

Beispielaufruf:

1var axios = require('axios');
2var data = JSON.stringify({"address":"Almacén de ejemplo","country":"ES","zipCode":"","phone":"+34 6xx xx xx xx","phoneShipping":"+34 6xx xx xx xx xx "});
3 
4var config = {
5  method: 'patch',
6  url: 'https://api.naturalsystems.es/api/cuenta/updateDireccionEnvio',
7  headers: { 
8    'Authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYXJkQ29kZSI6IkMwMDAwMCIsImdyb3VwQ29kZSI6MTAwLCJsaXN0TnVtIjoxLCJub0Rpc2NvdW50IjoiTiIsImRpc2NSZWwiOiJIIiwibXVlc3RyYU9jdWx0YXMiOjEsImlhdCI6MTc2NzIyNTYwMCwiZXhwIjoxNzY3MzEyMDAwfQ.EJEMPLOdeFIRMAnoVALIDA0123456789abcdefghijk', 
9    'Content-Type': 'application/json'
10  },
11  data : data
12};
13 
14axios(config)
15.then(function (response) {
16  console.log(JSON.stringify(response.data));
17})
18.catch(function (error) {
19  console.log(error);
20});

Delete Lieferadresse

Löscht die im Aufruf angegebene Lieferadresse. Die Adresse muss exakt übereinstimmen.


Endpoint:

DELETE /cuenta/deleteDireccionEnvio

Beispielobjekt

1{
2    "address": "Almacén de ejemplo"
3}

Erhaltene korrekte Antwort

Address 'Almacén de ejemplo 2' deleted successfully.

Methode zum Löschen einer Lieferadresse

Beispielaufruf:

1var axios = require('axios');
2var data = JSON.stringify({  "address": "Almacén de ejemplo" });
3 
4var config = {
5  method: 'delete',
6  url: 'https://api.naturalsystems.es/api/cuenta/deleteDireccionEnvio',
7  headers: { 
8    'Authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYXJkQ29kZSI6IkMwMDAwMCIsImdyb3VwQ29kZSI6MTAwLCJsaXN0TnVtIjoxLCJub0Rpc2NvdW50IjoiTiIsImRpc2NSZWwiOiJIIiwibXVlc3RyYU9jdWx0YXMiOjEsImlhdCI6MTc2NzIyNTYwMCwiZXhwIjoxNzY3MzEyMDAwfQ.EJEMPLOdeFIRMAnoVALIDA0123456789abcdefghijk', 
9    'Content-Type': 'application/json'
10  },
11  data : data
12};
13 
14axios(config)
15.then(function (response) {
16  console.log(JSON.stringify(response.data));
17})
18.catch(function (error) {
19  console.log(error);
20});

Get Rechnungsadresse

Ruft die im Benutzerkonto hinterlegten Rechnungsadressen ab.


Endpoint:

GET /cuenta/getDireccionFacturacion

Erhaltene korrekte Antwort

[
    {
        "address": "Oficina de ejemplo",
        "street": "C/ Ejemplo 1",
        "city": "Ciudad de ejemplo",
        "zipCode": "00000",
        "state": "Provincia de ejemplo",
        "country": "Provincia de ejemplo"
    }
]

Methode zum Abrufen der Rechnungsadresse(n)

Beispielaufruf:

1var axios = require('axios');
2 
3var config = {
4  method: 'get',
5  url: 'https://api.naturalsystems.es/api/cuenta/getDireccionFacturacion',
6  headers: { 
7    'Authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYXJkQ29kZSI6IkMwMDAwMCIsImdyb3VwQ29kZSI6MTAwLCJsaXN0TnVtIjoxLCJub0Rpc2NvdW50IjoiTiIsImRpc2NSZWwiOiJIIiwibXVlc3RyYU9jdWx0YXMiOjEsImlhdCI6MTc2NzIyNTYwMCwiZXhwIjoxNzY3MzEyMDAwfQ.EJEMPLOdeFIRMAnoVALIDA0123456789abcdefghijk'
8  }
9};
10 
11axios(config)
12.then(function (response) {
13  console.log(JSON.stringify(response.data));
14})
15.catch(function (error) {
16  console.log(error);
17});

Get Rechnungen

Liefert die Liste der Rechnungen und Gutschriften, von der neuesten zur ältesten.

Wer mit beiden Unternehmen der Gruppe arbeitet, erhält beide in derselben Liste; jedes Dokument nennt in empresa, zu welchem es gehört.


Endpoint:

GET /documento/getFacturas

Filter und Blättern

Alle Parameter sind optional und können in der Query-String oder im Rumpf des Aufrufs stehen. In Klammern der Standardwert.

GET /documento/getFacturas?type=invoice&dateFrom=2026-01-01&dateTo=2026-01-31&status=open&limit=50&offset=0

type            invoice | creditNote | all      (all)
empresa         1 (Natural Systems) | 2         (todas las del cliente)
dateFrom        YYYY-MM-DD
dateTo          YYYY-MM-DD
status          open | paid | all               (all)
includeCanceled true | false                    (false)
limit           1 - 200                         (50)
offset          >= 0                            (0)

Erfolgreiche Antwort der Dokumentenliste

Nachfolgend zeigen wir ein Beispiel für eine korrekte Antwort:

Das Feld status ist paid (bezahlt), partiallyPaid (teilweise bezahlt), open (offen) oder canceled (storniert). total ist die Zahl der Dokumente, die dem Filter entsprechen, nicht die dieser Seite.

Die Zahlungsbedingung kommt mit ihrem Namen und mit days, den Tagen ab Rechnungsdatum; die konkreten Fälligkeiten stehen in dueDates.

{
    "error": false,
    "total": 143,
    "limit": 50,
    "offset": 0,
    "documents": [
        {
            "empresa": 1,
            "company": "NATURALSL",
            "type": "invoice",
            "docEntry": 1001,
            "docNum": 2001,
            "series": "Facturas",
            "seriesPrefix": "F",
            "docDate": "2026-01-15",
            "dueDate": "2026-02-15",
            "taxDate": "2026-01-15",
            "customerReference": "PED-0001",
            "status": "open",
            "canceled": false,
            "currency": "EUR",
            "exchangeRate": 1,
            "netAmount": 100,
            "discountPercent": 0,
            "discountAmount": 0,
            "shippingAmount": 5,
            "taxAmount": 21,
            "equivalenceSurcharge": 0,
            "withholdingTax": 0,
            "rounding": 0,
            "total": 121,
            "totalForeignCurrency": 0,
            "paidAmount": 0,
            "dueAmount": 121,
            "paymentTerms": {
                "name": "30 dias fecha factura",
                "days": 30
            },
            "paymentMethod": {
                "name": "Recibo domiciliado"
            },
            "comments": ""
        }
    ]
}

Methode zum Abruf der Dokumentenliste

Beispielaufruf:

1var axios = require('axios');
2
3var config = {
4  method: 'get',
5  url: 'https://api.naturalsystems.es/api/documento/getFacturas?type=invoice&limit=50',
6  headers: {
7    'Authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYXJkQ29kZSI6IkMwMDAwMCIsImdyb3VwQ29kZSI6MTAwLCJsaXN0TnVtIjoxLCJub0Rpc2NvdW50IjoiTiIsImRpc2NSZWwiOiJIIiwibXVlc3RyYU9jdWx0YXMiOjEsImlhdCI6MTc2NzIyNTYwMCwiZXhwIjoxNzY3MzEyMDAwfQ.EJEMPLOdeFIRMAnoVALIDA0123456789abcdefghijk'
8  }
9};
10
11axios(config)
12.then(function (response) {
13  console.log(JSON.stringify(response.data));
14})
15.catch(function (error) {
16  console.log(error);
17});

Get Rechnung

Liefert das vollständige Detail einer Rechnung oder einer Gutschrift.

Das Dokument wird über docEntry, die interne Kennung aus der Liste, oder über docNum, die sichtbare Belegnummer, angegeben, zusammen mit type (invoice als Standard oder creditNote) und empresa.

Zusätzlich zu dem, was die Liste schon liefert, bringt das Detail die Positionen, die Steueraufstellung und die Fälligkeiten mit dem bereits bezahlten Betrag je Rate.


Endpoint:

GET /documento/getFactura

Erfolgreiche Antwort mit dem Dokumentendetail

Nachfolgend zeigen wir ein Beispiel für eine korrekte Antwort:

{
    "error": false,
    "document": {
        "empresa": 1,
        "company": "NATURALSL",
        "type": "invoice",
        "docEntry": 1001,
        "docNum": 2001,
        "docDate": "2026-01-15",
        "dueDate": "2026-02-15",
        "customerReference": "PED-0001",
        "status": "open",
        "currency": "EUR",
        "netAmount": 100,
        "taxAmount": 21,
        "total": 121,
        "paidAmount": 0,
        "dueAmount": 121,
        "paymentTerms": { "name": "30 dias fecha factura", "days": 30 },
        "paymentMethod": { "name": "Recibo domiciliado" },
        "documentType": "items",
        "billingAddress": "C/ Ejemplo 1\n00000 Ciudad de ejemplo\nProvincia de ejemplo",
        "billingAddressCode": "FACTURACION",
        "shippingAddress": "C/ Ejemplo 2\n00000 Ciudad de ejemplo",
        "shippingAddressCode": "ALMACEN",
        "lines": [
            {
                "lineNum": 0,
                "itemCode": "ABRA0004",
                "description": "Sustrato profesional 50 L",
                "quantity": 10,
                "unitOfMeasure": "Ud",
                "itemsPerUnit": 1,
                "listPrice": 12,
                "discountPercent": 16.67,
                "unitPrice": 10,
                "netTotal": 100,
                "netTotalForeignCurrency": 0,
                "taxCode": "S1",
                "taxPercent": 21,
                "taxAmount": 21,
                "equivalenceSurchargePercent": 0,
                "equivalenceSurcharge": 0,
                "grossTotal": 121
            }
        ],
        "taxes": [
            {
                "code": "S1",
                "rate": 21,
                "base": 100,
                "amount": 21,
                "equivalenceSurchargePercent": 0,
                "equivalenceSurcharge": 0
            }
        ],
        "dueDates": [
            {
                "installment": 1,
                "dueDate": "2026-02-15",
                "percent": 100,
                "amount": 121,
                "paidAmount": 0
            }
        ]
    }
}

Methode zum Abruf des Dokumentendetails

Beispielaufruf:

1var axios = require('axios');
2
3var config = {
4  method: 'get',
5  url: 'https://api.naturalsystems.es/api/documento/getFactura?docEntry=1001&type=invoice',
6  headers: {
7    'Authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYXJkQ29kZSI6IkMwMDAwMCIsImdyb3VwQ29kZSI6MTAwLCJsaXN0TnVtIjoxLCJub0Rpc2NvdW50IjoiTiIsImRpc2NSZWwiOiJIIiwibXVlc3RyYU9jdWx0YXMiOjEsImlhdCI6MTc2NzIyNTYwMCwiZXhwIjoxNzY3MzEyMDAwfQ.EJEMPLOdeFIRMAnoVALIDA0123456789abcdefghijk'
8  }
9};
10
11axios(config)
12.then(function (response) {
13  console.log(JSON.stringify(response.data));
14})
15.catch(function (error) {
16  console.log(error);
17});

Get Rechnung PDF

Lädt das PDF der Rechnung oder Gutschrift herunter.

Das Dokument wird wie bei Get Rechnung angegeben. Die Antwort ist ein JSON mit dem PDF in base64, genau so, wie unser ERP es druckt: dekodiere es, um es als Datei zu speichern.


Endpoint:

GET /documento/getFacturaPdf

Erfolgreiche Antwort mit dem PDF

{
    "error": false,
    "fileName": "invoice-2001.pdf",
    "base64": "JVBERi0xLjQKJeLjz9MKMyAwIG9iago8PC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ..."
}
Jedes PDF wird im Moment des Aufrufs erzeugt, deshalb hat diese Methode eine eigene Grenze von 60 Downloads pro Stunde.

Methode zum Herunterladen des Dokument-PDFs

Beispielaufruf:

1var axios = require('axios');
2var fs = require('fs');
3
4var config = {
5  method: 'get',
6  url: 'https://api.naturalsystems.es/api/documento/getFacturaPdf?docEntry=1001',
7  headers: {
8    'Authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYXJkQ29kZSI6IkMwMDAwMCIsImdyb3VwQ29kZSI6MTAwLCJsaXN0TnVtIjoxLCJub0Rpc2NvdW50IjoiTiIsImRpc2NSZWwiOiJIIiwibXVlc3RyYU9jdWx0YXMiOjEsImlhdCI6MTc2NzIyNTYwMCwiZXhwIjoxNzY3MzEyMDAwfQ.EJEMPLOdeFIRMAnoVALIDA0123456789abcdefghijk'
9  }
10};
11
12axios(config)
13.then(function (response) {
14  // El PDF llega en base64 tal y como lo genera el ERP
15  fs.writeFileSync(response.data.fileName, Buffer.from(response.data.base64, 'base64'));
16})
17.catch(function (error) {
18  console.log(error);
19});

Sammlung der Methoden

Um die Nutzung all dieser Methoden zu erleichtern, haben wir eine Collection für Postman erstellt.

Sie müssen lediglich diese Datei importieren und den Methoden zur Authentifizierung und Anmeldung folgen. Danach verfügen Sie über alle Daten, die für Anfragen an unsere API nötig sind. Diese Software erlaubt es außerdem, den benötigten Code in zahlreichen Technologien zu exportieren.