Alle releasenotes Alle releasenotes MplusKASSA API Service

Sorteer op invoertijdstip Filter op 'Vereist aandacht bij installatie' Filter op 'Uitgelicht' Start presentatie


  • placeTableOrder ondersteunt nu het automatisch proberen te maken van menu's voor het nieuwe menu systeem. Wel moet daarvoor automaticNewMenus aangezet worden, wat standaard uit staat. Aangeraden is om dit niet te gebruiken, maar menuId en menuLinesId te zetten op de regels.

    Dealers

    Voor Android Handheld

    58.0.0
  • getReceipts en getInvoices geven nu in hun resultaat terug van welke kassabon/factuur de eventuele creditering gemaakt is. Zie ns__Receipt::creditedReceiptId en ns__Invoice::creditedInvoiceId

    58.1.1
  • Het is nu mogelijk om met findRelation een relatie te zoeken op custom velden.

    57.3.9
  • Het is nu mogelijk om aan placeTableOrder en andere API calls die een order aanmaken/aanpassen een fooi/toeslag artikel toe te voegen. Het is de bedoeling dat dan alleen het artikelnummer en prijs van de fooi/toeslag ingevuld wordt. De overige regel waarden wordt automatisch door de API ingevuld.

    58.3.0
  • Ondersteuning toegevoegd voor externalDiscount die vanuit een webhook kan worden meegegeven.

    58.0.0
  • Nieuwe instelling toegevoegd waarmee aangegeven kan worden of de filiaalspecifieke artikel omschrijving aangepast mag worden met de saveArticleBranchDeviations call. Als dit niet mag, zal de oude filiaalspecifieke omschrijving gebruikt worden, of zal er geen omschrijving gezet worden indien die er nog niet was.

    Artikelen > Filiaalspecifieke omschrijving kunnen instellen
    57.0.3
  • API Service: getOrderHistory : medewerker die betaling heeft gedaan toegevoegd

    57.0.3
  • ns__Line bevat nu ook retourReason. Verkooptypen die retourneren ondersteunen vullen in hun calls retourReason in.

    58.3.0
  • getInvoices geeft nu ook onderstaande velden terug:

    - orderCategoryNumber
    - creditedReason
    - sessionId

    Update 20-8-2024: In de response van elke API call die een ns__Line teruggeeft, wordt ns__Line::suppressDisposableComponent en ns__Line::tempId weglaten indien ze geen waarde hebben.

    58.1.1
  • Nieuwe idempotente API call toegevoegd: createInvoiceFromPackingSlips. Deze API call kan gebruikt worden om van één of meerdere pakbonnen een factuur te maken.

    58.1.1
  • Het is nu mogelijk om proposalIds of proposalNumbers mee te geven aan getProposals. Daarnaast bevat ns__Proposal nu orderCategoryNumber.

    58.1.1
  • Twee nieuwe API calls: getMainTableList en getSubTableList. De calls kunnen gebruikt worden om een tafellijst op te bouwen, i.p.v. getTableListV3 te gebruiken. getMainTableList geeft de hoofdtafels terug van het meegegeven filiaal met de absolute basis data. getSubTableList geeft alle subtafels terug die afwijken van de standaard met hun specifieke data.

    58.3.0
  • Nieuwe idempotente saveTodoListV2 die een todolijst zowel kan toevoegen (branchNumber, category en name vereist) en als bijwerken (id vereist).

    58.1.1
  • Alle calls die een order retourneren, zoals getOrder(s) of findOrder, bevatten nu ook het "bestelnummer" dat ingevuld wordt door (tafel)bestelbonnen. In de API heet dit veld cateringOrderNumber.

    58.3.0
  • Nieuwe call linkGiftcardsToRelation toegevoegd. Deze call kan gebruikt worden om een of meerdere cadeaupassen aan een relatie te koppelen.

    58.3.0
  • Nieuwe functie payOrderV2.

    Deze is functioneel gelijk aan payOrder, maar is idempotent waardoor je kunt garanderen dat de order maar één keer wordt aanbetaald, ook als je de request meerdere keren herhaalt.

    58.0.0
  • Nieuwe functie createOrderV3.

    Deze is functioneel gelijk aan createOrderV2, maar is idempotent waardoor je kunt garanderen dat de order maar één keer wordt aangemaakt, ook als je de request meerdere keren herhaalt.

    58.0.0
  • Het is nu mogelijk om met getEmployeeAuthorizationGroups de filiaal en filiaalgroep gekoppelde autorisatiegroepen los op te vragen. Doe dit door de optionele request parameter separateBranchesAndBranchGroups op true te zetten.

    58.0.0
  • Uitbreiding van getArticleVariants. ArticleVariant bevat nu een lijst van leveranciers (suppliers) welke relationNumber, isPreferredSupplier en isPurchasable bevatten.

    57.3.4
  • Fix voor API request PayTableOrderV2: error: You're trying to move more articles than were in the original order.' als sales-en-acties actief is op artikelen

    57.3.2
  • Ondersteuning toegevoegd om via de sendWebhook call ook de startPayment en cancelPayment webhooks te triggeren.

    57.3.2
  • Elke API-call retourneert nu het versienummer van de API in een aparte Mplus-Service-Version response header.

    Bijvoorbeeld:

    Mplus-Service-Version: 57.2.0.0

    57.2.0
  • Elke API-call retourneert nu het versienummer van de API in een aparte Mplus-Service-Version response header.

    Bijvoorbeeld:

    Mplus-Service-Version: 56.3.0.0

    56.3.0
  • De volgende API calls hebben nu ondersteuning om op basis van een of meerdere ids of numbers te filteren:

    • getPackingSlips.packingSlipIds & packingSlipNumbers
    • getInvoices.invoiceIds & invoiceNumbers
    • getOrders.orderIds & orderNumbers
    57.3.2
  • De functie createOrderV2 retourneert nu ook het ingevulde order-object bij een filiaalorder (Slave-filiaal) die binnen de "Wachttijd synchronisatie Master naar Slave" verwerkt is, en bij het resultaat CREATE_ORDER_RESULT_EXT_ORDER_ID_ALREADY_EXISTS.

    Dit maakt het gedrag van de call weer consistent ongeacht of het filiaal toevallig een Slave is.

    56.1.6
  • Optionele workplaceNumber toegevoegd aan getButtonLayoutGroupDetails, daarnaast is de al bestaande buttonLayoutGroupId ook optioneel gemaakt. Wanneer er een workplaceNumber en een branchNumber wordt meegegeven, zal de snelknoppen indeling details van de huidig actieve snelknoppen lay-out voor de meegegeven werkplek teruggegeven worden.

    57.0.3
  • getOverview bevat nu twee nieuwe velden: owners en owners_uuid. owners geeft per medewerker het nummer van elk gekoppelde eigenaarslabel terug, owners_uuid geeft gelijk de uuids terug van elk gekoppelde eigenaarslabel.

    57.0.3
  • Er wordt nu rekening gehouden met filiaalgroepen en eigenaarslabels in:

    - GetCardCategories
    - GetButtonLayoutGrupsWithAssignedWorkplaces
    - UpdateEmployeeAuthorizationGroups
    - GetEmployeeAuthorizations
    - GetEmployeeBranchAuthorizations
    - GetEmployeeAuthorizationGroups
    57.0.3
  • ownerFilter en branchGroupFilter toegevoegd aan:

    - ReportArticlePerformance
    - ReportAverageSpending
    - ReportBPE
    - ReportBranchPerformance
    - ReportPaymentMethods
    - ReportPrintableFinancialTotals
    - ReportTables
    - ReportTurnoverByActivity
    - ReportTurnoverByArticle
    - ReportTurnoverByBranch
    - ReportTurnoverByEmployee
    - ReportTurnoverByTurnoverGroup
    - ReportTurnover
    - ReportCancellations
    - GetReceipts
    57.0.3
  • API: Gefixed dat de wijziging voor het alternatieve btwcode veld ook wordt opgeslagen in de database

    57.0.3
  • getBranches geeft nu ook voor elke werkplek de externe referentie terug onder de naam extWorkplaceId indien de externe referentie niet leeg is.

    57.0.3
  • DeterminePricing gaat nu correct om met arrangementen. Je kan nu een orderId of table meegeven, waarmee de bestaande order wordt bepaald, om die regels mee te nemen in de prijsberekening. Daarnaast kan je nu aan elke regel een tempId meegeven, die ook weer teruggegeven wordt, om gemakkelijker de regels te identificeren. Tenslotte wordt er nog een priceType teruggegeven. Wanneer die op PRICE-TYPE-FIXED staat, gaat het om een arrangement.

    57.0.3
  • De API is nu zelf in staat om bij idempotente requests (zoals placeTableOrder) zelf een aantal retries te proberen als er een concurrency issue voorkomt. Dit vermindert de kans dat de call mislukt door bijv. een detected deadlock.

    57.0.3
  • De functie getPaymentMethodsV2 retourneert nu optioneel ook de bpeConfiguration. Stel hiervoor in de request de parameter includeBpeConfiguration in.

    Ook is het nu mogelijk om in de request te filteren op paymentMethodTypes.

    57.0.3
  • De functie getPaymentMethodsV2 retourneert nu optioneel ook de bpeConfiguration. Stel hiervoor in de request de parameter includeBpeConfiguration in.

    Ook is het nu mogelijk om in de request te filteren op paymentMethodTypes.

    55.1.1
  • Dealers

    De installer update nu automatisch de reeds geinstalleerde versie ook als deze in een afwijkende locatie is geinstalleerd.

    58.0.0
  • Dealers

    Elke API is nu out-of-the-box in staat om tot drie parallele requests af te handelen.

    (Voorheen was de standaard één)

    57.0.9
  • Dealers

    Elke API is nu out-of-the-box in staat om tot drie parallele requests af te handelen.

    (Voorheen was de standaard één)

    56.2.0
  • Dealers

    De API heeft nu ondersteuning voor opstarten met een --connection, welke verwijst naar een databaseconnectie in %PROGRAMDATA\MplusQ\database.dat. Hierdoor hoeft de API niet meer een apart database.inibestand te hebben.

    57.0.9
  • getFinancialJournal geeft nu ook purchaseAmount terug voor groep types anders dan BPE.

    58.0.2
  • De idempotente calls placeTableOrder en createOrderV3 doen nu geen lock meer op de transactietabel, maar vertrouwen op het retry-mechanisme van de API om bij een evt. conflict de order nogmaals proberen te plaatsen.

    58.0.2
  • Alle idempotente requests hebben nu in principe ondersteuning voor het automatisch herhalen van een request als er tijdens de uitvoer een potentieel gelijktijdigheidsprobleem optreedt.

    Dat wil niet automatisch betekenen dat vaker herhalen altijd het probleem zal oplossen.

    58.0.2
  • getConfiguration geeft nu ook per terug, wat aangeeft of de instelling per kassa, filiaal of globaal ingesteld mag worden.

    58.0.2
  • Als er geen credentials worden meegegeven retourneerd de api nu een HTTP Status 401 (was 500).

    Dit helpt oa in .NET je kunt dan namelijk de credentials instellen op de client en deze zal wanneer deze de 401 ziet een Authentication header meesturen.

    58.0.0
  • saveInvoice geeft nu ook invoiceNumber en invoiceBarcode terug wanneer je een factuur aanmaakt, niet alleen wanneer je een factuur wijzigt.

    58.0.0
  • getCardCategories houdt nu rekening met eigenaarslabels als het eigenaarslabelssysteem en het filiaalgroepensysteem aan staan.

    57.3.2
  • createImage en createImageFromUrl retourneren nu een aparte resultaatcode CREATE_IMAGE_NOT_SUPPORTED als het uploaden van afbeeldingen via de API überhaupt niet ondersteund wordt, omdat MIS niet aan staat. Zo zien we het sneller in onze online apps.

    57.3.2
  • De call getPackingSlips retourneert nu ook:

    • packingSlipType
    • orderCategoryNr
    • vatMethod
    • sessionId
    57.3.2
  • De functie placeTableOrder ondersteunt nu ook het doorgeven van een levertijdstip (via deliveryPeriodBegin).

    57.3.2
  • GetBranchGroups API call geeft nu ook per filiaalgroep ownerLabelId terug, als het filiaalgroep een gekoppelde eigenaarslabel heeft.

    57.0.9
  • De functie getAuthorizationTree retourneert nu onlineAuthorizationsVersion en de functie updateOnlineAuthorizationTree accepteert nu onlineAuthorizationsVersion. Op die wijze is snel te controleren of de autorisatieboom up-to-date is.

    57.0.9
  • getButtonLayoutGroupForBranch retourneert nu de knoptekst van de artikelkaart in articlesInLayouts.buttonText.

    Dit is tbv. de android handheld.

    57.0.3
  • Probleem opgelost waardoor er via de android handheld geen (oude)menu artikelen geboekt konden worden wanneer het menu gebruik maakte van de optie op hoofdartikel boeken.

    Dealers

    Foutmelding die dan in api log kwam was deze: msg: QCheckWerkplek(): Bij MplusQservice moet expliciet werkplek meegegeven worden (QGetHuidigeBoekDag())

    58.0.0
  • Opgelost dat splitsen d.m.v. moveTableOrderV3 een SOAP exception gaf als de te splitsen tafel wijzigingen heeft gehad, door bijvoorbeeld meerdere keren artikelen op de tafel te boeken.

    Dealers

    Gaf uiteindelijk deze foutmelding:

    Het is niet mogelijk om af te splitsen vanwege een verschil.
    Split NOT possible, divergent properties: (WijzigingsTeller: 0 <> 1)
    57.3.3
  • Probleem opgelost in placeTableOrder als je wel numberOfGuests meegeeft, maar geen lineList.

    Dealers

    Veroorzaakt de Foutmelding in api log: SEVERE req: placeTableOrder, exception: EAccessViolationmsg: Access violation at address 00F4D9DA in module 'MplusQservice.exe'. Read of address 00000010 in het api logboek.

    Op de handheld krijg je dan te zien: PIN betaling is GELUKT Bijwerken van tafel is mislukt.

    56.1.3.1
  • Probleem opgelost in placeTableOrder als je wel numberOfGuests meegeeft, maar geen lineList.

    Dealers

    Veroorzaakt de Foutmelding in api log: SEVERE req: placeTableOrder, exception: EAccessViolationmsg: Access violation at address 00F4D9DA in module 'MplusQservice.exe'. Read of address 00000010 in het api logboek.

    Op de handheld krijg je dan te zien: PIN betaling is GELUKT Bijwerken van tafel is mislukt.

    Tijdelijk downgraden naar versie 1.41.2 werkt

    57.0.3
  • Lost probleem op waardoor de API vooral voor online extra traag kon zijn als de optie "Mag een medewerker op meerdere werkplekken tegelijk ingelogd zijn?" aan stond.

    57.0.9
  • Probleem opgelost waardoor je geen categorieën meer kon bijwerken via createProduct, updateProduct, createRelation, updateRelation, createEmployee en updateEmployee.

    57.0.4
  • Order.reference is nu niet meer verplicht bij het aanmaken/aanpassen van orders.

    57.3.8
  • Als er ooit een artikel verkocht is met omzetgroep 0, geven de API-functies reportTurnoverByTurnoverGoup, reportTurnoverByArticle en reportBPE nu geen foutmeldingen meer, in plaats daarvan retournerneren ze de standaardwaarde voor omzetgroep.

    58.1.1
  • getRenderedPrintLayout geeft nu een error terug als het om een bon print lay-out gaat, dat als PDF gerenderd dient te worden. Dit is alleen mogelijk voor grafische print lay-outs (A4).

    57.3.7
  • Opgelost dat companyName niet werd opgeslagen met UpdateRelation.

    58.0.0
  • Opgelost dat het aanpassen van een orderregel op een verkooporder er voor zorgt dat na het opslaan alle geleverde aantallen van de verkooporder verdwenen zijn.

    57.3.6
  • Opgelost dat het verplaatsen van een volledige tafel order d.m.v. moveTableOrderV2 en moveTableOrderV3 de volgende foutmelding gaf als er gebruikt werd gemaakt van TSE:

    Error on the server. Please contact API support at dev@mpluskassa.nl.
    Voorwaarde niet voldaan: Order.VersieNr > 1
    57.3.5
    1 bijlage
  • Opgelost dat placeTableOrder niet meer TSE-data opstuurde. Dit lost onder andere het probleem op dat een tafelorder doen en/of betalen met de Android handheld geen TSE-data opstuurt.

    57.3.5
  • Opgelost dat priceType van een determinePricing regel een niet valide waarde bevatte als het om een tekstregel ging.

    57.3.4
  • Bugfix updateProducts ging mis wanneer er alleen een update of een insert gedaan moest worden.

    Gaf dan een UPDATE-PRODUCT-RESULT-FAILED in de response.

    57.3.3
  • getOrders error opgelost:

    Database error on the server. Please contact API support at dev@mpluskassa.nl.
    57.3.3
  • getOrders, getInvoices en getPackingSlips input validatie minder restrictief gemaakt. Het is daardoor nu weer mogelijk om een sync marker en datum filter toe te passen.

    57.3.2
  • Opgelost dat kassabonnen/bestelbonnen niet uitgeprint werden wanneer er gebruik werd gemaakt van het nieuwe print lay-out systeem.

    57.3.2
  • Probleem opgelost als je een order ging opslaan mét deliveryPeriodBegin maar zónder deliveryPeriodEnd.

    57.3.2
  • CreateRelation nieuwe kaartnummer bepaling ging mis

    58.0.0
  • Database connectie herstel werkt weer.

    57.2.1
  • Opgelost dat wanneer met updateArticleGroup d.m.v. sortOrder een artikelgroep naar de één na laatste plek werd gesorteerd, de artikelgroep op de laatste plek terechtkwam.

    57.3.2
  • Opgelost dat het uitvoeren van de getJournals of getFinancialJournal API call een foutmelding gaf.

    Database error on the server. Please contact API support at dev@mpluskassa.nl.
    57.1.1
  • Foutmelding opgelost als je in een GKS-administratie een tafel volledig wilde verplaatsen.

    57.3.2
  • Het kassaldo en kasverschil dat geretourneerd wordt door reportPrintableFinancialTotals() wordt nu niet meer verborgen, mits de medewerker daarvoor geautoriseerd is.

    57.3.2
  • Als het nieuwe filiaalgroepen systeem aan staat, zal de getCardCategories API call nu op basis van de Mplus-Employee header de kaart categorieën ophalen, i.p.v. op basis van de Mplus-Workplace header.

    57.0.9
  • De functie updateProduct geeft nu ook apart een foutmelding als een opgegeven artikelnummer al bestaat: UPDATE_PRODUCT_RESULT_FAILED_ARTICLE_NUMBER_ALREADY_TAKEN

    57.3.2
  • Lost probleem op waardoor de API vooral voor online extra traag kon zijn als de optie "Mag een medewerker op meerdere werkplekken tegelijk ingelogd zijn?" aan stond.

    56.2.1
  • getOverview geeft nu de juiste minimumprijs terug.

    56.1.4
  • Probleem verholpen met de webhooks (HTTP_PARSING_ERROR).

    Sinds een recente update ging de API waar mogelijk ineens onbedoeld proberen te communiceren via HTTP/2. Dit werd echter nog niet goed ondersteund door de rest van onze software. Daarom wordt nu geforceerd dat we altijd HTTP/1.1 gebruiken.

    56.1.4
  • Probleem verholpen met de webhooks (HTTP_PARSING_ERROR).

    Sinds een recente update ging de API waar mogelijk ineens onbedoeld proberen te communiceren via HTTP/2. Dit werd echter nog niet goed ondersteund door de rest van onze software. Daarom wordt nu geforceerd dat we altijd HTTP/1.1 gebruiken.

    57.0.3
  • Probleem verholpen met de webhooks (HTTP_PARSING_ERROR).

    Sinds een recente update ging de API waar mogelijk ineens onbedoeld proberen te communiceren via HTTP/2. Dit werd echter nog niet goed ondersteund door de rest van onze software. Daarom wordt nu geforceerd dat we altijd HTTP/1.1 gebruiken.

    55.1.4
  • Gefixed dat de wijziging voor het alternatieve btwcode veld ook wordt opgeslagen in de database

    56.1.3
  • Opgelost dat o.a. getOrders, getInvoices en getPackingSlips de volgende foutmelding teruggaven:

    Kolom niet gevonden: afl_adres_bedrijfsnaam
    56.1.2
  • Eerdere fix uit 55.0.7 miste nog op 55.1.x

    Opgelost dat o.a. getOrders, getInvoices en getPackingSlips de volgende foutmelding teruggaven:

    Kolom niet gevonden: afl_adres_bedrijfsnaam
    55.1.2
  • Opgelost dat savePurchaseOrderV2 geen besteleenheden opsloeg, indien die op de artikelen ingesteld stonden. Daarnaast geeft getPurchaseOrdersV2 nu ook de besteleenheid terug onder de naam orderUnit.

    57.0.3
  • API call getArticlesInLayout retourneert nu weer alleen daadwerkelijke bereidingswijzegroepen, en niet bijverkoop of vervangend artikelen.

    55.1.1
  • API call getArticlesInLayout retourneert nu weer alleen daadwerkelijke bereidingswijzegroepen, en niet bijverkoop of vervangend artikelen.

    57.0.3
  • Opgelost dat reportTurnoverByEmployee de volgende foutmelding gaf wanneer een omzet gemaakt was met een medewerker nummer hoger dan 2.147.483.647.

    Database error on the server. Please contact API support at dev@mpluskassa.nl.
    57.0.3
  • Elke tien minuten voert de API een statuscontrole van de databaseverbinding uit. Als er tijdens deze controle iets mis ging, dan werd de volgende controle direct uitgevoerd ipv. tien minuten later. Dat is nu opgelost.

    57.0.3
  • Opgelost dat o.a. getOrders, getInvoices en getPackingSlips de volgende foutmelding teruggaven:

    Kolom niet gevonden: afl_adres_bedrijfsnaam
    55.0.7