Ga naar inhoud

GIP

POST Upload de GIP-prijslijst vanuit de groothandel naar ZAGIS.

Voor gebruikers van ZAGIS is het mogelijk om via een API vanuit een eigen systeem de GIP-prijslijst vanuit de groothandel te uploaden. Dit is de API-variant van de "GIP toevoegen"-functie in ZAGIS. Een GIP-prijslijst bevat per artikel (Z-Index nummer) één prijs per verpakking, exclusief btw. Een upload kan de bestaande lijst vervangen of er per artikel mee samenvoegen. Dit is een REST-API met één endpoint en één mogelijke actie.

Toegang

Alleen beschikbaar voor gebruikers van ZAGIS.

Endpoint

POST https://demo.zagis.nl/api/zagis/gip
POST https://www.zagis.nl/api/zagis/gip

Request body

Requests zijn POST-requests met de CSV-inhoud rechtstreeks als body (dus geen multipart-bestand of JSON). Het CSV-bestand bevat twee kolommen zonder kopregel: het Z-Index nummer (8 cijfers) en de prijs per verpakking exclusief btw. Zowel , als ; wordt als scheidingsteken herkend. Voorbeeld:

12345678;100.01
34567890;14.31
56789012;53.23
78901234;782.21

Authenticatie

Deze API maakt gebruik van:

  • IP-whitelisting voor beveiliging
  • Een API-key voor authenticatie & rate-limiting
  • HMAC voor integriteitscontrole

De API-key, IP-whitelisting en HMAC werken identiek aan de ZAGIS Verbruik API.

Header Toelichting
x-zagis-key De aan uw organisatie uitgereikte API-key.
x-zagis-hmac Hexadecimaal geëncodeerde SHA-512 HMAC van het request body (de ruwe CSV).
x-zagis-on-exist replace of merge (standaard replace). Bij replace worden eerst alle bestaande GIP-prijzen van uw organisatie verwijderd en daarna de aangeleverde lijst weggeschreven. Bij merge wordt per ZI# de prijs bijgewerkt of toegevoegd; ZI# die al in ZAGIS staan en niet in de upload zitten worden niet gewist.
content-type text/csv

Request

curl -X POST https://demo.zagis.nl/api/zagis/gip \
  -H "x-zagis-key: <uw-api-key>" \
  -H "x-zagis-hmac: <hmac>" \
  -H "x-zagis-on-exist: replace" \
  -H "content-type: text/csv" \
  --data-binary @gip.csv

Response

Code Betekenis
200 Correct request.

Voorbeeld van een response bij een succesvol & correct request:

{
  "result": "success",       // 'success' of 'error'
  "errorMessage": "",        // Error message bij fout
  "errorCode": 0,            // Error code bij fout
  "numRowsTotal": 4,         // Aantal rijen verwerkt
  "numRowsError": 1,         // Aantal rijen met een fout, worden niet geïmporteerd
  "numRowsWarning": 1,       // Aantal rijen met een waarschuwing, worden wel geïmporteerd
  "warnings": [              // Array met opgetreden waarschuwingen
    {
      "line": 2,
      "0": [
        "Artikel is vervallen."
      ]
    }
  ],
  "errors": [                // Array met opgetreden errors
    {
      "line": 4,
      "0": [
        "Onbekend Z-Index nummer: 14321976"
      ]
    }
  ]
}

Voorbeeld van een response bij een inhoudelijk foutief request:

{
  "result": "error",
  "errorMessage": "Invalid value for onExist. Allowed [replace, merge]",
  "errorCode": 1
}

Aandachtspunten

De HMAC dient over de exacte CSV-bytes van het request body berekend te worden.

Wilt u uw integratie testen? Neem tijdig contact op via info@zagis.nl voor testdata en een API-key.