Voor gebruikers van PharmaPortal is het mogelijk om via een API vanuit een eigen systeem offertes in te sturen naar ZAGIS.
Deze Offerte API is een REST api met 1 endpoint en 1 mogelijke actie
Test API endpoint:
https://demo.zagis.nl/api/zagis/offerte
Productie API endpoint:
https://www.zagis.nl/api/zagis/offerte
Deze API maakt gebruik van:
x-zagis-offerte-key De aan uw organisatie uitgereikte API key
x-zagis-offerte-hmac Hexadecimaal geëncodeerde SHA-512 HMAC van het request body
Requests zijn POST requests met een JSON payload. Voorbeeld:
{
"offerteCode": "04eba051", # Unieke offertecode die in de offerte-aanvraag vermeld staat
"readOnly": true, # Bij true controleert ZAGIS de offerte wel maar slaat deze niet op
"bijlage": { # Optioneel wanneer er een PDF bijlage wordt meegestuurd. Max 5MB
"filename" : "Begeleidend Schrijven.pdf", # Optioneel, standaard 'bijlage.pdf',
"contents": "JVBERi0xLjMKJcTl8uXrp/Og0MTGCj(...)==" # BASE64 Encoded PDF
},
"antwoorden": [ // Indien in offerteaanvraag vragen zijn opgenomen
{ // Algemene vraag
"vraagId": "29b7cb44-d116-4878-8ce7-a94a756cd1fd",
"antwoord": "Ja",
},{ // Algemene vraag
"vraagId": "29b7cb44-d116-4878-8ce7-a94a756dd1fd",
"antwoord": "2025-01-01", // Datum type, altijd YYYY-MM-DD
},{ // Product specifieke vraag, product 1
"vraagId": "29b7cb44-d116-4878-8ce7-a94a756cd1fe",
"zindexNummer": 16070666,
"antwoord": "Optie 1",
},{ // Product specifieke vraag, product 2
"vraagId": "29b7cb44-d116-4878-8ce7-a94a756cd1fe",
"zindexNummer": 16070667,
"antwoord": "Optie 2",
}
],
"artikelen": [
{
"zindexNummer": 16070666,
"opmerking": "Betreft nieuwe verpakking", # Max 255 karakters
"referentie": "offerte-groep-2018-0004", # Max 255 karakters
"barcodeOpKae": false, # Barcode op kleinste afgifte eenheid, boolean
"vastOfPercentage": "vast", # "vast" of "percentage"
"volume": 1000, # Afwijkend beschikbaar jaarvolume in stuks (counting-units). Optioneel, alleen gebruiken bij een afwijkend jaarvolume
"toeslag": 1.23 # Alleen indien in offerteaanvraag is aangegeven dat toeslag geoffreerd mag worden, default 0
"prijzen": [
{
"looptijdMaanden": 12, # De toegestane looptijden zijn aangegeven in de offerte-aanvraag
"route": "groothandel", # "groothandel" of "direct"
"prijs": 4200, # als vastOfPercentage = vast, verplicht > 0
"percentage": 0 # als vastOfPercentage = percentage, verplicht > 0
},
{
"looptijdMaanden": 24,
"route": "groothandel",
"prijs": 4100,
"percentage": 0
},
{
"looptijdMaanden": 36,
"route": "groothandel",
"prijs": 4000,
"percentage": 0
}
]
},
{
"zindexNummer": 15825663,
"opmerking": "Relatieve korting tov AIP",
"referentie": "offerte-groep-2018-0008",
"barcodeOpKae": true,
"vastOfPercentage": "percentage",
"prijzen": [
{
"looptijdMaanden": 12,
"route": "groothandel",
"prijs": 0,
"percentage": 5
},
{
"looptijdMaanden": 24,
"route": "groothandel",
"prijs": 0,
"percentage": 10
},
{
"looptijdMaanden": 36,
"route": "groothandel",
"prijs": 0,
"percentage": 15
}
]
},
{
"zindexNummer": 17010102,
"opmerking": "Staffel",
"referentie": "offerte-groep-2018-0009",
"barcodeOpKae": true,
"isStaffel": true, // Alleen indien staffel is toegestaan door inkopende apotheken in dit traject
"staffelPer": "verpakking", // ['verpakking', 'verpakkingOpStof', 'patienten', 'starters', 'eenheden']
"gemetenPer": "kalenderjaar", // ['kalenderjaar', 'jaar', 'contractperiode', 'kwartaal']
"verrekeningPer": "kalenderjaar", // ['kalenderjaar', 'jaar', 'contractperiode', 'kwartaal']
"vastOfPercentage": "percentage",
"staffels": [
{
"van": 1,
"tot": 10,
"prijzen": [
{
"looptijdMaanden": 36,
"route": "groothandel",
"prijs": 0,
"percentage": 15
}
]
},{
"van": 11,
"tot": 99999999,
"prijzen": [
{
"looptijdMaanden": 36,
"route": "groothandel",
"prijs": 0,
"percentage": 25
}
]
}
]
}
]
}
Deze API retourneert de volgende HTTP status codes:
400 Bij een gebrek aan payload401 Bij foutieve authenticatie of HMAC409 Bij een inhoudelijke fout van het request (bijvoorbeeld ongeldig ZI-Nummer)200 Bij een correct requestVoorbeeld van een response bij een succesvol & correct request zonder bijlage:
{
"result": "success",
"readOnly": true, # Overgenomen van veld readOnly van request
"totalRows": 6, # Totaal aantal combinaties van artikel & prijzen
"uniqueProducts": 2, # Totaal aantal verwerkte unieke ZI-nummers
"bijlage": {
"available": false,
"correct": false,
"filename": "bijlage.pdf"
}
}
Voorbeeld van een response bij een succesvol & correct request met bijlage:
{
"result": "success",
"readOnly": true, # Overgenomen van veld readOnly van request
"totalRows": 6, # Totaal aantal combinaties van artikel & prijzen
"uniqueProducts": 2, # Totaal aantal verwerkte unieke ZI-nummers
"bijlage": {
"available": true,
"correct": true,
"filename": "Begeleidend schrijven.pdf"
}
}
Voorbeeld van een response bij een inhoudelijk foutief request:
{
"result": "error",
"message": "Artikel met index 0 heeft een ongeldig ZI#: 160706669"
}
Na het succesvol aanleveren van een offerte met de vlag readOnly op false
wordt deze code ongeldig gemaakt in ZAGIS, u kunt maar 1x per offerte-code een offerte indienen. Indien
u wilt testen of uw offerte correct is gebruikt u readOnly = true
Indien u uw integratie wilt testen neemt u tijdig contact met ons op via info@zagis.nl. Wij zetten
dan testdata voor u klaar en voorzien u van API-Key, API-Secret & offerte-codes