Alle releasenotes Alle releasenotes MplusKASSA API Service

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


  • MplusQService API: Opgelost dat voor updateProduct de update van prijsgroep informatie correct wordt uitgevoerd (en tevens voor salesprijzen)

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

    58.3.0
  • Opgelost dat Api call getfinancialjournal de btw specificatie ook doorgeeft als voor een omzetgroep het verkoopbedrag 0 is en het inkoopbedrag hoger is dan 0

    59.5.2
  • API: Incidenteel een afrondingsfout in de berekening voor totaalincl bedragen van een (bon)regel bij percentage korting en volledig spaarpunten verzilveren

    Spaarpunten inleveren
    59.5.0
    1 bijlage
  • MplusQAPIService: Extra filters voor call getSalesRepeatTemplates. Er kan nu ook op specifieke 'template-ids' en/of template types (ORDER/FACTUUR) gefilterd worden

    Herhaal-templates
    59.4.2
  • Opgelost dat API call getRenderedPrintLayout bij het opvragen van de afdruk van meer dan een factuur de juiste factuurinformatie voor alle facturen oplevert.

    59.4.2
  • MplusQAPIService: nieuwe API call getOrdersByExtOrderIds: opvragen van orders aan de hand van de externe referentie(s)

    59.4.2
  • bugfix API call 'getordersbyreceiptids'

    59.2.2
  • Het is nu mogelijk om via de nieuwe API call getOrdersByReceipts de ordergegevens op te vragen aan de hand van een lijst van receipt-ids (kassabon-ids)

    59.2.1
  • Error logging uitgebreid voor placetableorder

    58.3.5
  • MplusQAPI: Controle op aanwezigheid en inhoud van het veld 'reference' bij saveProposal en saveInvoice is vervallen

    58.3.3
  • Het ns__Address object bevat nu ook supplierInformation. Dit is informatie voor een specifieke leverancier dat ingevuld kan staan op ontvangstadressen van inkoopopdrachten.

    59.1.1
  • Nieuwe instelling toegevoegd waarmee aangegeven kan worden of het verplicht is om een deliveryAddress in te vullen voor savePurchaseOrderV2.

    Inkoop > Ontvangstadres is verplicht
    59.1.1
  • 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
  • API calls houden nu rekening met relatie budgetten.

    59.6.0
  • De API call getPrintLayouts is nu aan te roepen met een extra fieldType filter om enkel layouts in te lezen die een bepaald veldtype bevatten.

    59.5.2
  • issueVouchers API call toegevoegd om directe voucher uitgiftes te doen. Normaalgesproken worden vouchers (ook in de API) uitgegeven door bijvoorbeeld facturen, of andere omzet te maken. Echter hoef je voor deze call niet expliciet omzet te maken, de call doet dit onderwater zelf. Per uit te geven voucher is mee te geven welke scancode en welke groepsscancode de voucher zal moeten gebruiken.

    60.1.5
  • Voucher calls toegevoegd om de scancodes van een voucher te beheren. De voucher moet als externe voucher ingesteld zijn, specifiek voor jouw koppeling.

    1. issueVoucherExternalScanCodes: Met deze call kunnen scancodes ingeschoten worden. Als de voucher dan uitgegeven wordt zal automatisch één van die scancodes gebruikt worden. Indien er geen scancodes meer zijn zal het uitgeven van de voucher geblokkeerd worden.
    2. getVoucherExternalScanCodes: Met deze call zijn de al ingeschoten scancodes op te vragen voor de voucher.

    Daarnaast is de getVouchers call uitgebreid met twee nieuwe filters. Er is nu op voucher type te filteren, en op externalIdent. Op die manier zijn de vouchers te vinden die door jouw koppeling te beheren zijn.

    60.1.5
  • Api call getOrderChanges : Er is opgelost dat als er alleen een syncmarker in de request aanwezig is, en de lijst van dus ordertypes leeg is, dat dan de wijzigingen van alle ordertypes in de response wordt doorgegeven in plaats van alleen die van verkoop-, herhaal-, en externe-orders.

    59.4.4
  • De properties dialog.dialogIdAsString en dialog.options[].optionIdAsString worden nu ook geserialized in de idempotency opslag.

    59.4.2
  • Contractregels ondersteuning toegevoegd.

    1. determineContractLines call toegevoegd die de contractregels teruggeeft op basis van de meegegeven regels.
    2. Resultaat uit determineContractLines kan doorgegeven aan API calls die een LineList verwachten.
    3. getOrders, getReceipts, getPackingSlips, getProposals, getInvoices geven nu allemaal ook de opgeslagen contractregels terug.
    4. getSalesRepeatTemplates heeft nu een contractFrequencyFilter om specifieke contracten op te vragen. In het resultaat staat ook een contractFrequency.
    5. createOrder(V2) en saveOrder vullen automatisch de contractLines in indien die nog niet ingevuld waren.
    59.4.2
  • getOrderCategories geeft nu ook de categorie afhankelijkheden terug via orderCategoryDependencyNumbers. Aanmaken/bewerken van orders geeft nu het volgende bericht terug als het niet mag i.v.m. afhankelijkheden van de orderCategoryNumber:

    Invalid orderCategoryNumber supplied. Ensure that the category exists, and that the category is either dependent on the current category, or that it, AND the current category have no dependencies.

    Daarnaast worden ook de wijzig autorisaties van die categorieën gecontroleerd.

    59.4.2
  • Het is nu mogelijk om d.m.v. scannedVoucherIssuanceCodes gescande vouchers door te geven aan determinePricing, placeTableOrder, createOrderV2 en createOrderV3. determinePricing geeft in zijn resultaat daarnaast ook nog een lijst terug van scannedVoucherIssuances.

    59.4.2
  • Het is nu mogelijk om voucher uitgifte ingangsdatums aan te geven door pendingVoucherIssuanceStartTs op ns__LineData of ns__PlaceTableOrderLineDataElem in te vullen.

    59.4.2
  • getTableOrderV3 geeft nu ook de voucher uitgifte kandidaten terug in voucherIssuanceCandidates.

    59.4.2
  • Bugfix:getProducts gedrag; customfields: multiselect velden worden doorgestuurd ook als deze voor het artikel/product nog geen waarde hebben.

    59.3.1
  • Het is nu mogelijk om via DeliverOrder en DeliverOrderV2 een kassabon aan te maken, eerder kon alleen maar een factuur aan worden gemaakt.

    59.3.1
  • Het is nu mogelijk dat er automatisch een factuur kan worden afgedrukt nadat een order betaald wordt via de api via de call payorder. Dit is afhankelijk van een instelling: Beheer->Instellingen->Instellingen, Api->Afdrukken 'Automatisch printen van de factuur'

    Tevens is er een bug opgelost dat de instelling voor Automatisch printen van de kassabon ook gecontroleerd wordt, deze instelling was er al wel maar werkte nog niet.

    Beheer > Instellingen > instellingen > Api > Afdrukken > Automatisch printen van de factuur
    59.3.1
  • unappliedVoucherIssuances (vouchers die niet toegepast zijn i.v.m. een verzilver restrictie) toegevoegd aan response van de onderstaande calls:

    • CreateInvoiceFromPackingSlips
    • DeliverOrder
    • DeliverOrderV2
    • PayTableOrder
    • CreateAndPayTableOrder
    • PlaceTableOrder
    • PrepayTableOrderV2
    • PayOrder
    • PayOrderV2
    • CreateInvoiceFromProposal
    • CreateOrderFromProposal
    59.4.2
  • getVoucherSettings call toegevoegd waarmee in bulk de instellingen van verschillende vouchers opgevraagd kan worden. De requestedVoucherId is een voucher id die opgevraagd werd, voucherId is de voucher id + versie van de instellingen, die daar daadwerkelijk voor teruggegeven is. (Als je b.v.b. versie 0 opvraagd, krijg je de nieuwste versie terug.)

    59.4.2
  • Opgelost dat het kortingspercentage wordt gecontroleerd bij het toevoegen of een wijzigen van een relatie. Het kortingspercentage van een relatie mag maximaal 100 procent zijn (en moet hoger dan 0 zijn)

    59.4.2
  • 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
  • getJournals zorgt er nu voor dat de teruggegeven betalingen voor JOURNAL-FILTER-ORDER opgeteld nu altijd op 0 uitkomt, door tegen te boeken op de "Verrekening aanbetaling" betaalwijze. Zodra er daadwerkelijk omzet is gemaakt, zullen deze betalingen namelijk opgehaald kunnen worden met JOURNAL-FILTER-RECEIPT/JOURNAL-FILTER-INVOICE.

    59.3.1
  • Via een instelling is het oude gedrag van de getPackingSlips functie (van vóór v48) weer te activeren. Daardoor retourneert deze functie alle uitgifte-types, en niet enkel pakbonnen.

    API > Legacy > getPackingSlips() retourneert alle types
    58.4.4
  • setRelationPresence zal nu ook relatie synchronisatie starten op de slave als de relatie gewijzigd is op de master

    59.1.1
  • De functie determinePricing retourneert nu ook de opgestuurde webhookData.

    59.5.2
  • getNutritionalCharacteristicsRequest ondersteund nu combinatie van syncMarker en numbers filter.

    Voorheen retourneerde zo'n request de data voor alle gevraagde nummers, nu is deze data ook werkelijk gefilterd op syncMarker en het antwoordt bevat ook de syncMarkers.

    59.4.2
  • getVoucherIssuances heeft nu een fromDate en throughDate in het request object.

    59.4.2
  • 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
  • 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
  • Herstelt dat oa getTableOrderV3 verkeerde aantallen voor bereidingwijze kon retourneren als uncondensedLines false is. Hier had oa de Android handheld last van.

    58.4.3
  • Opgelost dat saveSalesRepeatTemplate een access violation SOAP exception kon geven.

    59.2.1
  • Verholpen dat in de WSDL en documentatie miste dat sommige response types een basis type hadden.

    Dit verhelpt dat calls die deze types retourneerden niet goed werkten als je de service importeerde in visual studio.

    58.4.1
  • Probleem opgelost met savePurchaseDelivery.

    58.3.5
  • Opgelost dat getPurchaseDeliveries(V2) een verkeerd totalExclAmount kon laten zien op de regel wanneer er met verpakkingen gewerkt werd. Daarnaast ook opgelost dat quantityOfPackagesDelivered niet ingevuld was terwijl dat wel moest gebeuren.

    58.3.2
  • 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
  • Verhelpt dat de API een soapfault geeft als je getOverview een INCOLLECTION filter geeft met een lege lijst.

    59.5.2
  • Een BoostAssertionException opgelost die kon optreden als je een inkoopopdracht of inkooplevering bewerkte zónder een aritkeluitvoering te specificeren.

    59.5.0
  • getArticlesVariants is nu aanzienlijk sneller

    59.5.2
  • Probleem opgelost waardoor het niet meer mogelijk was verkooporders af te drukken.

    59.4.6
  • Diverse verbeteringen aan opslaan van inkoopopdrachten en levering

    • Melding "Voorwaarde niet voldaan: riter->LevelVerpakking > 0" verholpen
    • Onterechte meldingen "No article variants found with this articleVariantId" verholpen, in sommige gevallen kan het zijn dat hij nu een andere melding geeft met het werkelijke probleem.
    • Controle of op leverancier gebeurd nu bij opdrachten als dit aangezet is en nooit bij leveringen
    • Controle op leverbaarheid van de uitvoering gebeurd nu alleen bij opdrachten niet bij leveringen
    59.4.7
  • De API call getRenderedPrintLayout kon crashen als je geen printInfo meegaf.

    59.4.5
  • De API call createInvoiceFromPackingSlipsRequest keurde een lege forcedActivityId altijd af, ook al is die parameter optioneel.

    59.4.7
  • Opgelost dat getSubTableList ook tafeldata van andere filialen terug kon geven.

    59.4.3
  • Het oude menu systeem houdt nu ook rekening met SUP artikelen op het hoofdartikel van menu's. Het nieuwe menu systeem hield hier al rekening mee. Lost vreemde situatie op in de api. Neem bijvoorbeeld de volgende situatie:

    1. saveTableOrderV2 met een menuartikel. Oude menu systeem voegt automatisch hoofdartikel toe. Hoofdartikel hoort normaal gesproken ook een SUP toeslag subartikel te krijgen. Dit wordt nu niet gedaan.
    2. getTableOrderV2 om de order zoals die op de tafel staat op te vragen.
    3. payTableOrderV2 om deze order af te rekenen. De api geeft terug dat de VerkoopPrijsIncl niet overeen komt, omdat payTableOrderV2 door heeft dat het SUP toeslag subartikel mist, en dit automatisch toevoegt aan de regels die zijn meegegeven. Echter komt dat dus niet meer overeen met wat er op de tafel staat.
    58.4.5
  • Als je dialog.id of dialog.options[].id "asString" doorgeeft, dan wordt dat nu ook goed doorgespeeld in de uiteindelijke webhook payload.

    59.3.1
  • De moveTableOrder API calls houden nu ook rekening mee met of er op de virtuele relatie aanwezigheidstafel range geboekt mag worden of niet, afhankelijk van hoe die instellingen staan.

    59.2.2
  • Opgelost dat getOrders deze error teruggaf: Unknown consumption location indien je gebruik maakte van consumptie locaties per regel.

    59.1.3
  • Opgelost dat setRelationPresence aangaf dat de tafel bezet was, indien er aangemeld probeerd te worden op een tafel die nog nooit eerder gebruikt was.

    59.1.2
  • Opgelost dat setRelationPresence soms ten onrechte aangaf dat de tafel al bezet was als er een specifieke subtafel werd gebruikt om op aan te melden.

    59.1.2
  • getNutritionalCharacteristics geeft nu ook de allergieën terug van de ingrediënten van een artikel

    58.4.3
  • Opgelost dat de minimum prijs berekening van een artikel de minimum prijs van een verplichte bereidingswijze op het hoofdartikel meenam op de prijs van een vervangend artikel, indien het vervangend artikel goedkoper is. Dit is niet logisch omdat de bereidingswijze keuze voor het hoofdartikel is, niet voor het vervangend artikel. Deze berekening kan d.m.v. min_price_incl opgevraagd worden met de getOverview call.

    58.4.2
  • Opgelost dat getArticleVariants een SOAP exceptie gaf als de call artikelen probeerde terug te geven welke geen uitvoeringen bevatten.

    58.4.1
  • Als de API een betaling probeert uit te voeren op een betaalwijze die wel aanwezig is, maar uitgeschakeld, dan veroorzaakt dat nu geen fout meer.

    Het uitschakelen van een betaalwijze moet invloed hebben op de keuze welke betaalwijzes je kan selecteren, maar als er eenmaal een betaling op uitgevoerd is mogen we die niet meer weigeren.

    Dit lost bijvoorbeeld de volgende foutmelding op: One or more payment methods are NOT enabled WEBSHOP.

    58.4.1
  • Oplossing gevonden voor het probleem dat meldingen als "No order.orderId specified" en "Error while trying to save packing slip of order." kon veroorzaken bij het betalen van een tafel via de online handheld.

    58.3.9
  • Oplossing gevonden voor het probleem dat meldingen als "No order.orderId specified" en "Error while trying to save packing slip of order." kon veroorzaken bij het betalen van een tafel via de online handheld.

    57.5.8
  • Verhelpt probleem dat bij gebruik van placeTableOrder om af te rekenen met automatisch afdrukken van de bon aan de TSE gegevens missen op de bon.

    59.1.1
  • Lost probleem op waardoor API meer CPU belasting kon geven dan zou moeten.

    58.3.2
  • Lost probleem op waardoor API meer CPU belasting kon geven dan zou moeten.

    57.5.6
  • Opgelost dat updateProduct altijd alle prijsgroepen en salesprijzen van de te updaten artikelen afhaalde. Om toch nog specifiek een prijsgroep/salesprijs van een artikel af te halen met deze call, is dit mogelijk door alleen de priceGroupNumber/salesPriceNumber in te vullen.

    58.3.2
  • Crash opgelost in de getOverview call wanneer de min_price_incl opgevraagd werd van een artikel dat d.m.v. menu/vervangend artikel/bijverkoop zichzelf weer kon verkopen. Dit lost bijvoorbeeld de volgende scenario op:

    artikel A -> artikel B (vervangend artikel) -> artikel A (bijverkoop)
    58.3.2
  • getPackingSlips, getReceipts, getInvoices werkt weer.

    59.1.1
  • getPackingSlips, getReceipts, getInvoices werkt weer.

    58.3.4
  • Verhelp "Database error on the server" foutmelding bij getPurchaseDeliveriesV2

    Fout zat er in sinds v58.3.0.

    58.3.2
  • deliverOrderV2 levert nu weer de opgegeven aantallen ipv een volledige levering te doen.

    58.3.2
  • De createOrder functies trekken niet meer de component prijs af van de opgegeven prijs.

    Tevens probleem opgelost dat de functie faalde met een assertion failure nadat de order correct opgeslagen was.

    59.1.1
  • 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