Alle releasenotes Alle releasenotes MplusKASSA API Service

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


  • Nieuwe call getBranchInformation voor het ophalen van stamgegevens van filialen.

    58.3.0
  • 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
  • forcedActivityId toegevoegd aan de CreateInvoiceFromPackingSlips request. De aangegeven activiteit id zal gebruikt worden indien er pakbonnen zijn opgegeven met verschillende activiteiten. Dit werkt alleen als de nieuwe instelling aan staat.

    Verzamelfactuur kunnen maken van pakbonnen met verschillende activiteiten
    59.1.1
  • isSupplierGroup toegevoegd aan ns__CardCategorie. Hiermee geeft getCardCategories nu terug of het om een leverancier relatie categorie gaat.

    59.1.1
  • createRelation en updateRelation ondersteunen nu beide branchesNonPurchasable.

    59.1.1
  • findRelationV2, getRelation en getRelations geven nu allemaal branchesNonPurchasable terug. Dit zijn de filialen waarop geen artikelen besteld mogen worden van deze leverancier.

    59.1.1
  • 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
  • Release van API v57.5.0

    57.5.0
  • Nieuwe idempotent API call toegevoegd: registerGiftcardPaymentV2. Het is noodzakelijk om aan deze nieuwe call een lineList op te geven. Het totaalbedrag van alle regels is uiteindelijk de cadeaupas betaling. De call maakt automatisch een kassabon, een transactie en historie aan, om de cadeaupas betaling te verantwoorden.

    De oude registerGiftcardPayment call verwacht nu ook een lineList, en zal intern doorverwijzen naar registerGiftcardPaymentV2.

    58.3.0
  • Het is nu mogelijk om via payInvoice en placeTableOrder een cadeaupas betaling te doen. Het is noodzakelijk om een giftcardNumber aan de betaling mee te geven, als je een cadeaupas betaalwijze opgeeft. De cadeaupas betaling zal terechtkomen in het cadeaupassen overzicht.

    58.3.0
  • De setRelationPresence zal nu de melding "Can't move relation to table, the requested table is not empty." terug geven, wanneer de tafel die in de request wordt meegegeven al bezet is door een relatie.

    58.3.0
  • getArticlesVariants geeft nu ook een lijst van leveranciers terug, net zoals getArticleVariants.

    57.4.0
  • Gefixed dat een getupdateV2 call naar de MplusQAPIService de tekstregelposities in de orderregels behoudt

    58.1.1
  • 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
  • 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
  • De placeTableOrder call geoptimaliseerd.

    59.1.1
  • Bij het doorgeven van eftTransactionDetails kan nu ook worden aangegeven dat de betaling betaald is via een offline-modus.

    (state = EFT-TRANSACTION-STATE-PAID-OFFLINE)

    58.0.2
  • 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
  • Opgelost dat getInvoices, getOrders, getPackingSlips, getProposals, getReceipts en getSalesRepeatTemplates deze error konden teruggeven:

    Database error on the server. Please contact API support at dev@mpluskassa.nl.
    Dealers

    Kolom niet gevonden: vor_bw_regelnr

    58.1.1
  • 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 waardoor getCurrentTableOrders alle orders retourneerde als er geen actieve tafelorders waren. Dit resulteerde bij klanten met veel historie in out of memory errors.

    57.5.0
  • Probleem in de API gefixed voor Online Handheld betalingen in Duitsland (issue met place-tableorder en TSE/Fiscaltrust module)

    58.3.0
  • Fix dat SetRelationPresence ten onrechte de volgende exceptie kon geven: The request is trying to add duplicate data to the database, please check your inputs

    58.3.0
  • 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
  • getOrders retourneerd nu ook deliveredQuantity en cancelledQuantity

    59.1.1
  • Subtiele raceconditie in IdempotentRequests opgelost waardoor bij de parallel uitvoer van twee identieke requests, de ene request niet goed "zag" dat de andere request al hetzelfde gedaan had.

    Daardoor kon de tweede call allerlei verschillende fouten gaan geven omdat de uitvoer dus niet meer mogelijk was.

    Er wordt ook in deze situaties nu weer correct teruggevallen op het IdempotentRequest principe, waardoor beide calls exact hetzelfde antwoord geven, zonder foutmeldingen, en zonder dubbele uitvoer.

    57.5.0
  • Verhelpt probleem waardoor getArticlesInLayout tekst bereidingswijze dubbel retourneerde. Deze call wordt door de MplusKASSA Android Bestel App gebruikt.

    57.5.0
  • Opgelost dat placeTableOrder, prepayTableOrderV2, payTableOrder en payTableOrderV2 de volgende foutmelding konden geven als er een receiptFooter werd teruggegeven als antwoord op een completeSession webhook, die niet als blocking was ingesteld:

    The request caused a constraint error in the database, most likely some of the data supplied is incorrect.
    58.3.0
  • Fix voor raceconditie in setRelationPresence call als er gelijktijdig 2 relaties aangemeld worden bij hetzelfde filiaal was er een kans dat ze hetzelfde tafel nummer toegewezen kregen.

    58.1.1
  • Verhelpt probleem waardoor de API de juiste regels niet kan vinden tijdens het splitsen van een bestelling. Trad op als er spaarpunt attributen van de omzetgroep van het artikel waren gewijzigd.

    57.5.0
  • Verhelpt probleem waardoor de API de juiste regels niet kan vinden tijdens het splitsen van een bestelling. Trad op als er spaarpunt attributen van de omzetgroep van het artikel waren gewijzigd.

    58.1.1
  • Sinds payOrderV2 in v58 is toegevoegd, werkte payOrder niet meer. Dat is bij deze opgelost.

    58.1.1
  • 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.

    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.

    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.

    55.1.4