Alle releasenotes Alle releasenotes MplusKASSA API Service

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


  • payTableOrderV2 kan geen splitsing meer betalen hier heeft oa de Android App last van.

    49.1.0
  • payTableOrderV2 kan geen splitsing meer betalen hier heeft oa de Android App last van.

    49.1.1
  • printReceipt en printTableReceiptV2 melden ten onrechte dat idempotency key mist terwijl ze die helemaal niet verwachten.

    Dit veroorzaakt oa een probleem met tussenbon printen op de Android App.

    49.0.0
  • sendWebhook (scancode, addsessionline, updatesessionline, removesessionline): De relatie element velden wordt nu gevuld met de bijbehorende gegevens uit de database. In eerdere versies bleven deze velden, behalve het relatienummer, leeg.

    Aangevulde relatiegegevens: extRelationId, name, address, zipcode, city, country, deliveryAddress, deliveryZipcode, deliveryCity, deliveryCountry, telephone, mobile, email, cardNumber, bankAccountNumber, vatNumber, commerceNumber

    Dealers

    sendWebhook: Aanvullen van het relatie element met extra gegevens

    Als er op de MplusQService een sendwebhook request wordt ontvangen (eventtype opties: scancode, addsessionline, updatesessionline, removesessionline), dan wordt, afhankelijk van het (in de sendwebhook) gespecificeerde eventtype, een webhook actie uitgevoerd (op voorwaarde dat deze via de instellingen->webhooks in de Qline is geaktiveerd). In het request van de webhook actie was het 'relation' element altijd gevuld met enkel het relatienummer. Met deze aanpassing worden ook de andere relatie-velden (bijv. naam, adres, etc) gevuld zodat de ontvanger van het webhook event deze relatiegegevens kan verwerken.

    50.0.2
  • determinePricing en diverse functies voor het maken van orders passen nu ook componenten van samengestelde bereidingswijzen toe.

    determinePricing heeft er ook een subLineType bij gekregen om goed onderscheid te kunnen maken tussen bereidingswijzen en componenten.

    49.1.3
  • determinePricing en diverse functies voor het maken van orders passen nu ook componenten van samengestelde bereidingswijzen toe.

    determinePricing heeft er ook een subLineType bij gekregen om goed onderscheid te kunnen maken tussen bereidingswijzen en componenten.

    50.0.2
  • Nieuwe API call passwordReset met deze call kan een key gemaakt worden die naar de gebruiker gemailed kan worden welke dan vervolgens gebruikt kan worden icm saveCredentials. LETOP ivm beveiliging is deze call niet beschikbaar voor elke api gebruiker.

    51.0.0
  • Forceer dat als een relatie op een tafel staat waarop niet geboekt wordt de boeking verhuist wordt naar een andere tafel.

    51.0.0
  • placeTableOrder, createOrder en dergelijke verwerken nu webhookExternalDiscount

    51.0.0
  • getOrder, getTableOrderV3 ed geven nu ook bpeAccordationEmployeeNumber terug.

    51.0.0
  • Een aantal velden aan de Webhook 'SendWebhook' toegevoegd: 'openAmount', 'totalInclAmount' en 'totalExclAmount'

    50.0.3
  • Nieuwe API-call sendWebhook waarmee je de geconfigureerde webhooks programmatisch kunt versturen.

    50.0.0
  • getPasswordRequirements hiermee kan opgevraagd worden waaraan een wachtwoord moet voldoen.

    50.0.0
  • getTableOrderV3 heeft nu een extra eigenschap uncondensedLines waarmee je kunt aangeven of de regels altijd onverdicht geretourneerd moeten worden.

    50.0.0
  • Diverse functies toegevoegd en aangepast voor het werken met afbeeldingen van artikelen, relaties en medewerkers.

    • createImage en createImageFromUrl kunnen nu als de image direct gelinkt wordt ook meteen de gewenste labels instellen.
    • getCardImageLabels toegevoegd om de beschikbaar labels en de restricties daarvan op te vragen.
    • getCardImages kan voor meerdere kaarten de images opvragen.
    • saveCardImages werkt van meerdere kaarten de bijbehorende lijst van afbeeldingen bij, afbeeldingen die niet in de aanroep staan worden verwijderd.
    49.1.0
  • moveTableOrderv3 idempotente call toegevoegd

    Deze call is ook makkelijker te gebruiken doordat niet alle details van de order meegegeven hoeven te worden. Alleen orderId is voldoende. Wanneer een deel verplaatst moet worden is meegeven van alleen de lineId's en eventueel quantity voldoende.

    49.1.0
  • Het is nu mogelijk om via de Server-Timing response header gedetailleerde informatie te krijgen over hoe lang verschillende processen binnen de API duren.

    Als er bijv. door de API een webhook wordt aangeroepen, krijg je een aparte benchmark met de duur van de webhook. En als de webhook endpoint zelf ook Server-Timing informatie teruggeeft, dan wordt dat ook toegevoegd aan de Server-Timing header van de API.

    49.1.0
  • cancelOrderV2 welke meer soorten orders kan cancellen waaronder ook tafelorders en ook beter rekening houdt met of hij op een slave draait of niet.

    49.1.0
  • De calls savePurchaseOrderV2 en savePurchaseDeliveryV2 hebben nu ondersteuning voor toevoegen van regels via supplierArticleNumber of barcode, naast articleNumber of pluNumber. Het is dan niet nodig om articleVariantId mee tegeven, die wordt automatisch geselecteerd op basis van supplierArticleNumber of barcode.

    Ook is het mogelijk om de aantallen door te via quantityOfPackagesOrdered of quantityOfPackagesDelivered, intern wordt dit automatisch omgerekend naar de basisaantallen voor de desbetreffende uitvoering.

    49.0.0
  • Nieuwe API call printTableReceiptV3, met de volgende verbeteringen tov. printTableReceiptV2:

    • Geen geregistreerde terminal meer nodig.
    • Idempotent, dus veilig om (per ongeluk) vaker aan te roepen.
    49.0.0
  • Nieuwe API call printReceiptV2, met de volgende verbeteringen tov. printReceipt:

    • Geen geregistreerde terminal meer nodig.
    • Idempotent, dus veilig om (per ongeluk) vaker aan te roepen.
    • Mogelijkheid om voor een bepaalde tafel de laatste kassabon af te drukken.
    • Mogelijkheid om een specifieke kassabon af te drukken.
    49.0.0
  • Nieuwe API call getGksInformation waarmee je voor een bepaalde werkplek het GKS productienummer kan opvragen.

    48.2.1
  • De tafellijst api calls kunnen nu een extra state teruggeven TABLE-STATUS-RECENTLY-PAID deze wordt gebruikt om aan te geven dat de tafel recentelijk betaald is.

    49.0.0
  • Nieuwe functie performBpeBudgetChecks

    Hiermee kan in een enkele aanroep voor een enkele medewerker meerdere BPE limiet checks gedaan worden. Hij retourneert per BPE:

    • of deze onder limiet is of dat er gewaarschuwd of geblokkeerd moet worden
    • hoeveel over of onder de limiet deze is
    • wat de limiet is, als er een limiet is
    48.1.3
  • Bestellingen die geannuleerd worden via de API (via cancelOrder of cancelTableOrder) worden nu ook geregistreerd in het annuleringslogboek.

    48.0.0
  • Het is nu mogelijk om een externalPaymentId mee te geven aan een Payment. Als het desbetreffende ID daadwerkelijk overeenkomt met een bestaande ExternalPayment, wordt de betaling gekoppeld aan deze ExternalPayment.

    48.0.0
  • Het is nu mogelijk om via de browser property van een Webhook request (zoals startExternalPaymentV2) door te geven welke browser gebruikt wordt om de webhooks te triggeren.

    Een webhook endpoint kan op basis hiervan zijn antwoorden aanpassen.

    https://developers.mpluskassa.nl/webhooks/json-definitions/#sender

    48.0.0
  • Nieuwe api call getScheduledMealPlans kan gebruikt worden om de ingeplande menuplanning van een bepaald filiaal in de meegegeven periode op te vragen.

    48.0.0
  • Nieuwe api call getMealplanMomentsConfiguration deze call kan gebruikt worden om de configuratie van de maaltijd labels op te vragen.

    48.0.0
  • Waar mogelijk wordt deliveryAddress en invoiceAddress nu ook gevuld met de desbetreffende gegevens van de gekoppelde relatiekaart.

    48.0.0
  • Nieuwe API-functie saveGiftcards waarmee je de reference (Referentie) van een cadeaukaart kunt bijwerken.

    48.0.0
  • De functies getGiftcards en getGiftcard retourneren nu ook de reference (Referentie) van de cadeaukaart.

    48.0.0
  • Twee nieuwe properties IsPosGroup en IsOnlineGroup toegevoegd aan de api calls getPreparationMethodGroups en savePreparationMethodGroup

    47.1.0
  • Probleem opgelost in createOrderV2 waardoor applySalesAndActions altijd FALSE werd als je hem niet meegaf, in plaats van dat hij naar de instelling keek.

    47.1.0
  • getActiveEmployeeList call retourneert nu alleen nog medewerkers die de "Toegang tot android handheld" autorisatie hebben.

    47.1.0
  • Twee nieuwe API calls setRelationPresence en getRelationPresence Met de setRelationPresence call kun je een relatie aanmelden bij een filiaal en optioneel meegeven op welke tafel deze zit. Met de getRelationsPresence kun je de laatst bekende status van de relatie opvragen.

    47.0.2
  • getNutritionalCharacteristics kan nu ook op basis van syncMarker werken.

    Per kaart wordt altijd de complete lijst geretourneerd als kenmerken weggehaald worden komt de kaart dus terug met alle overgebleven kenmerken.

    46.1.0
  • getOverview heeft nu een extra veld bereidingswijze_groepen die de nummers van de gekoppelde bereidingswijzen als json array retourneerd.

    Dit nieuwe veld en multi selectie velden retourneren nu als ze leeg zijn een lege json array ipv een json null waarde.

    47.0.2
  • Dealers

    Bij het maken van een kassabon werd het EJ al beschreven voordat de betalingen gekoppeld waren, daardoor ontbraken de betalingen in het EJ. Ook werd een aanbetaling van een bestelling nog totaal niet naar het EJ geschreven.

    Alleen bij GKS van toepassing
    51.1.0
  • Het is nu mogelijk om op basis API user ident het oude gedrag te forceren dat bij het maken van orders de componenten van bereidingswijzen niet werden toegepast.

    51.0.0
  • Extra veld quantityOfPackagesOrdered toegevoegd aan de getPurchaseOrder en getPurchaseOrderV2 api calls

    47.0.2
  • De api calls die een ns__Address object teruggeven kunnen nu ook een extra veld label bevatten

    47.0.2
  • getGiftcard en getGiftcards geven nu ook relationNumber terug wanneer deze ingesteld is.

    50.0.0
  • verifyCredentials kan nu ook credentials van relatie verifieren.

    Ook bevat de response meer details zoals of de account vergrendeld is.

    50.0.0
  • placeTableOrder heeft nu een keepTableName property in de request

    Het standaard gedrag is ook veranderd, als de property niet gezet wordt zal hij reageren op de instelling ipv altijd de tafelnaam te behouden.

    50.0.0
  • getOverview kan nu virtueel componentenveld ophalen welke gevuld met een array van json objecten met informatie over de componenten.

    49.1.0
  • changeTableProperty kan nu de subTableCount instellen

    49.1.0
  • Bij reconnect pogingen na het verliezen van een werkende database verbinding, worden deze pogingen niet gelogd. Dit voorkomt dat de logs vol geschreven worden met de zelfde meldingen. Er wordt wel gelogd op welk moment de verbinding verloren is en wanneer deze weer terug is.

    48.1.3
  • getTableListV3 geeft nu ook de relatie terug wanneer deze aan een tafel gekoppeld is zonder dat er nog artikelen op geboekt zijn.

    48.0.0
  • De getCurrentSyncMarkers en getCurrentSyncMarkersV2 geven nu ook de preparationMethodGroupSyncMarker, articleNutritionalCharacteristicsSyncMarker en relationNutritionalCharacteristicsSyncMarker terug.

    48.0.0
  • De api call getCardCategories geeft nu ook door of de ingestelde categorie een vip categorie is (isVipGroup).

    48.0.0
  • De api call getOverviewFields bevat nu 2 extra velden in de response containsPersonalData en showInInfoPopup

    48.0.0
  • De functie createOrder(V2) retourneert nu ook het orderId van een evt. reeds bestaande extOrderId. Die hoef je dan dus niet zelf apart op te zoeken met findOrder.

    48.0.0
  • getPreparationMethodGroups kan nu aangeroepen worden met een syncMarker in de request. Hij zal op volgorde van syncMarker de groepen vanaf de opgegeven syncMarker retourneren en niet meer groupen dan limit.

    Zonder syncMarker retourneerd hij alle niet verwijderde groepen. Met syncMarker worden ook verwijderde groepen geretourneerd te herkennen aan deletedOn. De call geeft nu ook buttonColour terug met de kleuren die ingesteld zijn in de qline.

    savePreparationMethodGroup kan nu ook kleuren opslaan. Als buttonColour of translation niet meegegeven worden dan blijft bij bestaande items die inhoud ongewijzigd en nieuwe items krijgen standaard grijze kleur.

    47.0.2
  • De API vereist dat als er een entryBranchNumber wordt meegegeven er ook een workplaceNumber wordt meegegeven.

    Vereist aandacht bij installatie
    45.4.2
  • Dealers

    De placeTableOrder heeft nu een extra parameter bpeAccordationEmployeeNumber hier geef je het medewerker nummer op dat de BPE geaccordeerd heeft. Het BPE budget van deze medewerker wordt dan gebruikt.

    50.0.0
  • Lost probleem op voor Android App met deels via splitsing afrekenen van een tafel via de payTableOrderV2 call.

    49.1.2
  • Voorkom crash in printReceiptV2 als er geen data is voor de opgegeven werkplek.

    50.0.2
  • updateRelation, createRelation en findRelation gingen bij de verwerking van de relationArticleDiscountList niet goed om met relationNumbers buiten 32-bits integer bereik.

    50.0.2
  • Webhooks worden nu weer goed geactiveerd.

    Probleem was geintroduceerd in versie 50.0.0

    50.0.1
  • Verhelpt "Access Violation" wanneer geen relationNumber wordt meegegeven in createGiftcard.

    50.0.1
  • Probleem opgelost waardoor je geen inkoopopdrachten of inkoopleveringen meer kon maken met resp. een extPurchaseOrderId of extPurchaseDeliveryId.

    50.0.0
  • Lost probleem op met deels via splitsing afrekenen van een tafel via de payTableOrderV2 call.

    50.0.0
  • Lost probleem op dat printReceipt en printTableReceiptV2 melding geven over missende idempotency key.

    49.1.1
  • Overbodige witruimte verwijderd uit debug output.

    50.0.0
  • getOverview retourneerd nu de bereidingswijze_groep nummers in de juiste volgorde.

    48.2.3
  • getOverview retourneerd nu de bereidingswijze_groep nummers in de juiste volgorde.

    47.1.3
  • getOverview retourneerd nu de bereidingswijze_groep nummers in de juiste volgorde.

    49.1.1
  • setStock heeft nu verbeterde validatie waardoor hij niet meer OK geeft bij ontbrekende input maar duidelijk meld wat er mis is.

    48.2.1
  • Verhelp probleem dat getOverview crasht als hij BTW tarief voor een artikel niet kan vinden.

    48.2.1
  • Verhelpt probleem dat getOverviewFields een numericPrecision van 14 retourneerde voor velden met het type DATA-TYPE-STRING

    48.2.1
  • De functie createRelation in combinatie met condenseCombinedInvoice werkt nu goed.

    48.2.1
  • Wanner getPreparationMethodGroups met een syncMarker werd aangeroepen miste voor sommige groepen de elementen.

    48.1.3
  • De functie getPackingSlips retourneert nu altijd alleen echte pakbonnen, en geen uitgiftes meer. Voorheen was het mogelijk om ook uitgiftes op te vragen als je niet filterde op syncMarker.

    48.0.0
  • payTableOrder mislukte als het om een splitsing ging, de Android bestel app had hier last van.

    47.1.2
  • De verschillendegetOrders, getReceipts, getInvoices calls (die meerdere orders/kassabonnen/facturen inlezen) gaven andere totalen in de bereidingswijzen terug dan de calls die enkele tegelijk inlezen.

    Het gedrag van de "meervoudige" calls is nu gelijkgetrokken aan het gedrag van de "enkelvoudige" calls.

    Omdat sommige koppelingen mogelijk wel uitgingen van de foute resultaten, kun je via een speciale header (MPLUS-RETURN-COMBINED-PREPARATION-LIST) het oude gedrag weer activeren.

    48.0.0
  • Foutmelding verholpen die kon voorkomen bij het queuen van een verkoop order voor een slave kassa.

    48.0.0
  • Als je via savePurchaseOrder(V2) of savePurchaseDelivery(V2) een bestaande inkoopopdracht of levering bijwerkt, dan blijven de niet-meegegeven eigenschappen, zoals besteleenheid of gekozen uitvoering, nu bewaard.

    48.0.0
  • getButtonLayoutGroupDetails retourneert nu correcte posities voor subgroepen met meerdere "rijen" die aan de rechterkant staan.

    Dit verhelpt ook problemen met het opslaan van snelknoppen in online omdat saveButtonLayoutGroupDetails deze foute data niet accepteerd.

    Voorheen werden de coördinaten uitgerekend alsof de subknoppen boven de layout stonden. Deze aanpassing heeft een minimale kans dat de subgroepen op de Android handheld nu iets anders staan. Dit zal alleen gebeuren als ze meerdere subgroep rijen hebben, deze rechts staan en het aantal artikelknop rijen niet gelijk is aan het aantal artikelknop kolommen.

    48.0.0
  • Strictere validatie van row en column in saveButtonLayoutGroupDetails zodat het duidelijk gemeld kan worden aan de aanroeper wanneer deze verkeerde coordinaten meegeeft.

    LETOP: de row en column van hoofd en subgroepen zijn altijd alsof deze bovenaan staan.

    48.0.0
  • Als je op de plek van een decimal string een verkeerd geformatteerde waarde meegeeft, dan krijg je dat nu netjes terug gemeld in de response. Voorheen kreeg je dan gewoon geen reactie meer.

    47.1.0
  • Als je getOrders aanroept met een syncMarker, dan wordt deze nu altijd gebruikt. Ook als de waarde 0 is. Dit voorkomt dat een eerste sync die je (per ongeluk) met 0 ipv. 1 aanroept, gelijk een resultaat van álle orders probeert te retourneren.

    47.1.0
  • Vrije voorraad is nu altijd gebaseerd op dezelfde formule, namelijk aantal minus verkooporder minus interfiliale opdracht. Dit zorgt voor correcte vrije voorraad bij de getStock functie.

    47.1.0
  • Tweede bestelling voor een keukenbon zal de bestelling niet meer naar de prullenbak sturen.

    46.1.1
  • Bug fix voor de melding database error on server bij de volgende API calls getCurrentTableOrders, getInvoices, getPackingSlips.

    47.0.4
  • In een aantal plaatsen werd alleen een eventuele originele prijs inclusief BTW overgenomen maar werd het genegeerd als de exclusieve was opgegeven.

    47.1.0
  • De getOverview gaf een foutmelding wanneer alleen de brutoprijs of alleen de verkoopprijs werd opgevraagd.

    47.0.3
  • Wanneer een medewerker geen gekoppelde autorisatie groepen heeft gaf de GetEmployeeAuthorizationGroups call een lijst van alle filialen terug, nu geeft die dan niks terug.

    47.1.0
  • Als je savePurchaseDeliveryV2 aanroept met een fromPurchaseOrder, dan heb je nu niet meer het probleem dat "In order" onterecht blijft ophogen.

    47.1.0
  • Sommige calls gaven geen foutmeldingen terug als je invoer niet klopte, in plaats daarvan bleef de call hangen.

    Voorbeeld hiervan was bijv. savePurchaseDeliveryV2 die geen foutmeldingen gaf als je bijv. een onbekend relationNumber opgaf.

    47.1.0
  • Het meegeven van een onbekend medewerkernummer in de Mplus-Employee header zorgt niet meer voor een foutmelding in de API.

    47.0.2
  • De functie sendMessage geeft geen foutmelding meer als je een onbekend werkpleknummer (terminalNumber) opgeeft.

    47.0.2
  • Fixes voor gevallen waar de sync_marker van de artikelen niet altijd ge-update werden.

    • multi selectie velden zoals de categorieën (ook bij medewerkers en relaties)
    • gekoppelde afbeeldingen (ook bij medewerkers en relaties)
    • uitvoeringen
    • gekoppelde bereidingswijze groepen

    Over het algemeen ging het wel goed als je deze dingen aanpaste via bewerken van een artikelkaart maar niet via andere routes.

    47.0.2
  • getArticleGroup en getArticleGroupChanges geven nu ook informatie over verwijderde groepen.

    Bij getArticleGroup is het hiervoor wel nodig om een syncMarker mee te geven. Bevat tevens diverse performance verbeteringen.

    47.0.2
  • Een tegelijkertijd uitgevoerde placeTableOrder op dezelfde tafel zal nu niet meer veroorzaken dat de laatste binnenkomende bestelling de eerdere weer laat verdwijnen.

    47.0.2
  • saveOrder probleem opgelost dat ervoor zorgde dat een meegegeven prijs niet toegepast werd.

    45.5.0