Alle releasenotes Alle releasenotes MplusKASSA API Service

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


  • Voor api call savePurchaseOrder en savePurchaseOrderV2 is er een nieuwe instelling 'Inkoopopdracht datum controle op vandaag of in de toekomst' . Als deze instelling actief is kunnen alleen inkoopopdrachten worden opgeslagen met een opdrachtdatum van vandaag of in de toekomst

    60.8.3
    1 bijlage
  • Opgelost dat bij saveInvoice het veld 'workplacenumber' daadwerkelijk wordt gebruikt om de factuur op de juiste werkplek te registreren

    Aanmaken facturen via de API
    60.7.1
  • Opgelost dat bij saveInvoice het veld 'workplacenumber' daadwerkelijk wordt gebruikt om de factuur op de juiste werkplek te registreren

    Aanmaken facturen via de API
    59.9.10
  • Zit bug in Kolom niet gevonden: ext_ext_payment_id

    59.9.1
  • saveOwnerLabels toegevoegd welke gebruikt kan worden om eigenaarslabels te wijzigen en/of toe te voegen.

    Volgende
  • getReceipt(s), getOrder(s), getInvoice(s), getPackingSlip(s), getProposal(s) en getSalesRepeatTemplates geven nu allemaal ook branchGroupNumber en ownerId terug.

    Volgende
  • getOwnerLabels geeft nu ook de externe referenties terug op de eigenaarslabels indien ze bestaan.

    Volgende
  • getEmployeeWorkplaceLoginStates toegevoegd. Deze call geeft per meegegeven werkplek aan of de meegegeven medewerker mag inloggen op die werkplek. Momenteel wordt alleen gecontroleerd of de medewerker de eigenaarslabel heeft van de meegegeven werkplekken indien de instelling daar voor aan staat.

    Filiaalgroepen > Eigenaarslabels > Medewerkers mogen alleen op eigen werkplekken inloggen
    60.10.2
  • De api heeft nu request limits en overzicht van lopende requests.

    • globale limit via de ini, als deze niet ingesteld wordt max_workers + 8 gebruikt
    • limit per ident request-limit als deze niet ingesteld is is er geen beperking voor de ident maar de globale limiet geld nog wel.
    • /?stats=N GET request, N=0 beknopt zeer goed bruikbaar als healthcheck, n=1 request details deze laatste alleen op localhost

    Note voor deze aanpassing kon hij zeer hoge aantallen request queuen omdat de work queue van de threadpool geen limiet heeft.

    60.10.2
  • De velden ageCheckMinimumAge en oldestBestBeforeDate toegevoegd aan ns__Article, waardoor ze nu ook beschikbaar zijn in getProducts, createProduct, en updateProduct.

    60.8.7
  • Het is nu mogelijk interfiliale opdrachten te annuleren via cancelInterbranchOrder.

    60.8.6
  • getPrintLayoutMarkup inESC/POS ondersteunt nu ook het doorgeven van de breedte in karakters van de doelprinter.

    60.8.4
  • Ondersteuning toegevoegd voor branches_non_purchasable in de selectFieldNameList van getOverview. Het resultaat zal een JSON array van filiaalnummers zijn.

    60.8.4
  • Er zijn twee nieuwe API-calls toegevoegd:

    • getArticleComponents: retourneert de componenten van een samengesteld artikel.
    • saveArticleComponents: slaat de opgegeven componenten op onder een (samengesteld) artikel.
    60.8.4
  • getStock houdt nu ook rekening met de voorraad van onderliggende ingrediënten. In ArticleStock staat de eigen voorraad van het artikel voortaan altijd in de ownAmount velden, terwijl de totale beschikbare voorraad, rekening houdend met de ingrediënten, wordt weergegeven in de amount velden. Alle gebruikte ingrediënten worden daarnaast toegevoegd als subArticle.

    60.8.4
  • Nieuwe API call getPrintLayoutAssignments om op te vragen welke print-layouts aan een werkplek zijn toegewezen.

    60.8.3
  • getPackingSlips heeft nu een typeFilter die je kan gebruiken om ook gewone uitgiftes te kunnen retourneren. Als je dit filter weglaat krijg je het oude gedrag, enkel "echte" pakbonnen worden dan geretourneerd.

    60.8.3
  • Opgelost dat de totaalbedragen van savePurchaseDelivery en savePurchaseOrder onjuist waren wanneer er gebruik werd gemaakt van verpakkingen, vooral bij geneste verpakkingsstructuren.

    59.9.9
  • Opgelost dat de totaalbedragen van savePurchaseDelivery en savePurchaseOrder onjuist waren wanneer er gebruik werd gemaakt van verpakkingen, vooral bij geneste verpakkingsstructuren.

    60.7.1
  • getPrintLayoutMarkup kan een print-layout nu ook retourneren als ESC/POS. Tevens kun je ervoor kiezen om de response in BASE64 te ontvangen.

    60.8.3
  • createOrderV3 kan nu ook direct betalingen verwerken, zoals payOrderV2. Het voordeel is dat alles in zijn geheel verwerkt wordt, of in zijn geheel niet.

    60.7.1
  • Aangezien cadeaupassen nu een minimumsaldo hebben, geeft getGiftcardTypes dit ook terug in giftcardType::minimumBalance.

    Volgende
    • getOverview ondersteunt nu de saldo, invoiceCredit (factuurkrediet) en accountBalance (rekeningsaldo) relatie velden.
    • getRelations, getRelation, findRelation(V2) geven nu ook invoiceCredit en accountBalance terug, indien de Klantenkaart - Rekeningsaldo - Nieuw rekeningsaldo systeem gebruiken instelling aan staat.
    Volgende
  • De getOverview call heeft er een optie bijgekregen om filters caseSensitive toe te passen (standaardgedrag is dat dat niet gebeurd).

    60.7.1
  • De getOverview call heeft er twee filter operators bijgekregen: ISEMPTY (waarde mag NULL of lengte 0 zijn) en ISNOTEMPTY (precies het tegenovergestelde).

    60.7.1
  • Het ns__Relation object bevat nu naast cardNumber, ook cardNumbers welke alle pasnummers van de relatie bevat. getRelation,getRelations, createRelation en updateRelation houden hier rekening mee. Daarnaast heeft getOverview nu een virtueel selectFieldNameList genaamd card_numbers welke de pasnummers als JSON array teruggeeft. Tenslotte ondersteunt de filterList van getOverview nu ook de CONTAINS, OVERLAP, IS, OVERLAPORNONE operators voor het pasnummer veld. De EQUAL operator wordt op het pasnummer veld onderwater automatisch geinterpreteerd als OVERLAP.

    60.7.1
  • Drie nieuwe idempotente API calls toegevoegd welke gebruikt kunnen worden om verkoop objecten te processen. Dit houdt in dat; voucher scans, menu's, prijsbepaling, sales & acties en het contracten systeem doorgelopen worden op het meegegeven verkoop object.

    • processInvoice
    • processProposal
    • processOrder

    De request objecten hebben ook een processorContext property. Indien daar dryRun op false staat, kunnen deze calls ook gebrukt worden om het desbetreffende verkoop object gelijk op te slaan. Deze calls kunnen dus gebruikt worden i.p.v. de combinatie van determinePricing en saveInvoice/saveProposal/createOrderV3/updateOrderV2.

    60.9.0
  • getTableOrderV3 uitgebreid met de optie forceCondensedLines. Deze optie negeert de eventuele uncondensedLines optie en wat er in de Q-line qua verdichting staat ingesteld. De teruggegeven regels (ns__Line) bevatten nu ook een uncondensedLines lijst. Dit zijn de regels waarop de verdichte regels gebaseerd zijn.

    59.9.6
  • Je kunt een interfiliale opdracht, verzending of ontvangst nu ook voorzien van een scancode. Dat kan bijv. een barcode zijn, of een QR-code, of zelfs een NFC-tag. Met behulp van die scancode kun je het desbetreffende item direct openen.

    60.7.1
  • Nieuwe call updateInterbranchOrder toegevoegd, getInterbranchOrders heeft extra filters gekregen, en shipInterbranchOrder ondersteunt nu deelzendingen.

    60.7.1
    • getOverview houdt nu rekening met de eventuele filiaalspecifieke THT datum in het geval dat scopeValues ingevuld is. (oldest_best_before_date)
    • getArticleBranchDeviations en saveArticleBranchDeviations ondersteunen nu beide de THT datum.
    60.7.1
  • placeTableOrder heeft request parameter releaseTable er bij gekregen, als deze wordt weggelaten is deze true zodat oude gedrag in stand blijft.

    59.9.3
  • Twee nieuwe calls getSpecialBarcodePatterns en parseSpecialBarcode. parseSpecialBarcode test of een barcode bijvoorbeeld een prijsbarcode is en retourneerd dan welk artikel en prijs. De getSpecialBarcodePatterns retourneerd een lijst van reguliere expressies waarmee getest kan worden of het zin heeft om parseSpecialBarcode aan te roepen.

    Letop dat je bij het gebruik van de reguliere expressies zorgt dat deze de hele string moet matchen en niet een substring. Eventueel kun je de expressies natuurlijk ook uitbreiden met regel start en eind of witruimte voor en achter afhankelijk van hoe hij precies gebruikt gaat worden.

    60.7.1
  • De calls getOrders, getReceipts, getInvoices, getProposals, getPackingSlips en getSalesRepeatTemplates ondersteunen nu de nieuwe includeLineList optie. Deze optie maakt het mogelijk om verkoopobjecten aanzienlijk sneller op te vragen.

    Daarnaast wordt de relatie filter nu toegepast op hetzelfde niveau als de syncMarker filter. Dit betekent dat wanneer je bijvoorbeeld een syncMarkerLimit van 100 instelt in combinatie met een relatie filter, je de eerste 100 verkoopobjecten voor die specifieke relatie terugkrijgt. Voorheen werden eerst 100 verkoopobjecten geselecteerd en pas daarna gefilterd op relatie.

    60.7.1
  • Het is nu mogelijk om keukenbonnen van tafels te snoozen d.m.v. de API functie ChangeTableProperty.

    60.7.1
  • Nieuwe API call getCardFilterOptions toegevoegd. Deze API call kan voor een bepaalde kaart (zoals bijv. artikelen) teruggeven wat de filter opties zijn per opgevraagd veld.

    60.7.1
  • updateLastTableActionTime toegevoegd aan de tableProperties van changeTableProperty. Indien updateLastTableActionTime true is zal changeTableProperty de laatste handeling van de tafel updaten zodat de tafelstatus kleur van oranje naar groen gaat.

    59.9.3
  • De processX calls maken niet meer gebruik van LineInput::sequenceNumber. In plaats daarvan wordt de volgorde van de uiteindelijke regels nu rechtstreeks bepaald door de volgorde waarin de client de regels aanlevert, in plaats van door de waarde van sequenceNumber.

    60.10.2
  • Line::subLineType is toegevoegd en geeft een SubLineTypeV2 terug. Deze enum biedt meer details dan Line::lineType. Voor het meest nauwkeurige resultaat dient daarom subLineType gebruikt te worden in plaats van lineType.

    60.10.2
  • De volgende API calls kunnen nu ook menu informatie terug geven op de regels: getOrders, getReceipts, getInvoices, getProposals, getPackingSlips en getSalesRepeatTemplates.

    Het gaat dan om de volgende velden:

    • Line::menuAmount
    • Line::menuHash
    • LineData::menuId
    • LineData::menuLinesId
    60.10.2
  • De functie updateArticleDynamicMinMaxStock accepteert nu ook een minimum en maximum 0.

    60.9.1
  • Opgelost dat getRelations, getProducts en getEmployees veel trager waren sinds versie 59.4.0

    59.9.9
  • Opgelost dat getRelations, getProducts en getEmployees veel trager waren sinds versie 59.4.0

    60.7.1
  • Bij het opvragen van getGiftcardTypes wordt nu ook het maximum saldo (maximumBalance) teruggegeven.

    60.7.1
  • Naar aanleiding van dat webhook configuratie nu op de master opgeslagen wordt en ondersteuning heeft voor filiaalgroepen, veriest getWebhookConsumers nu dat er een werkplek meegestuurd wordt.

    60.7.1
  • De determinePricing call geeft nu ook priceExcl, discountAmountExcl en amountExcl terug.

    59.9.6
  • Per API call kan nu beter gespecificeerd worden of die: (1) altijd naar de master moet, of (2) naar de slave indien bijv. een bepaald branchNumber in de request gebruikt wordt.

    60.7.1
  • De API calls getRedeemableVoucherIssuances en redeemVoucherIssuance zijn nu ook op een slave API aan te roepen, indien de Voucher verzilveringen mogen doen zonder master verbinding instelling aan staat.

    Vouchers - Voucher verzilveringen mogen doen zonder master verbinding
    60.7.1
  • De API calls getOrders, getInvoices, getPackingSlips, getProposals en getReceipts zijn efficiënter geworden. Vooral getOrders en getInvoices zijn aanzienlijk sneller indien er heel veel verkoopobjecten teruggegeven worden.

    59.9.3
  • Als de functie savePurchaseOrderV2 tijdens de verwerking tijdens een fout aan loopt in een van de aangeleverde opdrachtregels, dan wordt in de response nu aangegeven op welke regel het probleem zich heeft voorgedaan, samen met andere nuttige informatie.

    59.9.3
    1 bijlage
  • Versnelt het ophalen van:

    • financieel journaal
    • facturen
    • orders
    • pakbonnen
    • kassabonnen
    • offertes
    59.9.6
  • Opgelost dat het tegelijk renderen van dezelfde print lay-out met identieke data een foutmelding kon geven via getRenderedPrintLayout.

    Volgende
  • getProposals geeft nu altijd entryBranchNumber terug ook al is die hetzelfde als de financialBranchNumber

    Volgende
  • Opgelost dat de processX calls ten onrechte kon teruggeven dat een voucher mogelijk geannuleerd moest worden, maar ook weer uitgegeven moest worden.

    Volgende
    1. Opgeslagen voucher uitgiftes worden nu altijd door de processX calls teruggeven ook al zijn die niet van de huidige run afkomstig.
    2. Opgelost dat BPE omschrijving niet meer de voucher omschrijving is na het doorgeven van een verzilverde voucher aan een processX call.

    LET OP: Indien je gebruik maakt van een generator die de API WSDL omzet naar code, kan het zijn dat de gegenereerde code helemaal opnieuw gegenereerd dient te worden. VoucherIssuanceCompact heeft nu namelijk twee nieuwe velden gekregen, waar VoucherIssuanceCandidate van inherit.

    60.11.0
  • Opgelost dat het relatienummer filter niet meer functioneerde in getInvoices, getOrders en getPackingSlips, indien er niet gebruik werd gemaakt van een syncmarker of nummer filter.

    60.11.0
  • Opgelost dat processInvoice ten onrechte de volgende foutmelding gaf: A valid invoice.relationNumber must be specified

    60.10.2
  • Opgelost dat pluNumber en siUnit in Line responses leeg werden teruggegeven wanneer ze niet van toepassing waren, in plaats van volledig te ontbreken.

    60.10.2
  • Opgelost dat getRenderedPrintLayout er voor kon zorgen dat de API op den duur ging vast lopen.

    59.9.12
  • Opgelost dat getRenderedPrintLayout slechts één pagina retourneerde voor PNG/JPEG, ook wanneer er meerdere pagina's teruggeven zouden moeten worden.

    59.9.12
  • Opgelost dat de processX calls geen tempLineId teruggaven op bereidingswijzeregels.

    60.10.2
  • Verhelpt dat getFloorplans faalde als een plattegrond decoraties bevatte.

    59.9.12
  • Opgelost dat het annuleren van een verkooporder (in Q-line/API) met tekstregels een foutmelding gaf.

    59.9.12
  • Ook de TempLineId van de hoofdartikel van een menu wordt nu overgezet naar het nieuwe hoofdartikel indien er een menu gevormd wordt. Dit heeft invloed op de processX calls.

    60.10.2
  • De inputs voor de processX API calls zijn aangepast om alleen nog maar te bevatten wat daadwerkelijk gebruikt wordt. Tevens zijn niet-optionele velden nu niet meer gemarkeerd als optioneel in deze inputs.

    60.10.2
  • Het toevoegen en updaten van artikel uitvoeringen (newArticleVariant en updateArticleVariant) is aanzienlijk versnelt.

    60.9.5
  • Verhelpt dat getFloorplans faalde als een plattegrond decoraties bevatte.

    60.9.4
  • Opgelost dat getRenderedPrintLayout er voor kon zorgen dat de API op den duur ging vast lopen.

    60.9.3
  • Opgelost dat getRenderedPrintLayout slechts één pagina retourneerde voor PNG/JPEG, ook wanneer er meerdere pagina's teruggeven zouden moeten worden.

    60.9.3
  • Probleem met updateInterbranchOrder opgelost: The request is trying to add duplicate data to the database, please check your inputs

    60.8.6
  • Opgelost dat determinePricing en placeTableOrder de volgende foutmelding konden teruggeven ook al waren er geen inname artikelen aangeslagen:

    Tried to book more INTAKE_ARTICLE articles than that are booked as sub article. Either add more articles with the INTAKE_ARTICLE as sub article, or remove some of the INTAKE_ARTICLE articles. Article number: x
    60.9.0
  • Opgelost dat issueVouchers niet juist naar de instelling van een voucher keek of een relatie verplicht is. Daarnaast opgelost dat de call een exceptie terug gaf.

    60.8.5
  • Opgelost dat getProducts een foutmelding gaf.

    60.8.2
  • Opgelost dat newArticleVariant geen articleVariantId teruggaf in de response.

    59.9.9
  • Opgelost dat payOrderV2 een foutmelding teruggaf indien er geen vouchers uitgegeven werden.

    60.8.1
  • Opgelost dat getOverview kaarten onterecht niet terug gaf indien de OVERLAPORNONE modus werd gebruikt en de kaart wel één of meerdere van de opgegeven fieldValue waarden bevatte, maar niet allemaal.

    60.7.1
  • Opgelost dat bij savePurchaseDelivery altijd een deliveredQuantity moest worden opgegeven, zelfs wanneer er een quantityOfPackagesDelivered was opgegeven.

    59.9.9
  • Opgelost dat bij savePurchaseDelivery altijd een deliveredQuantity moest worden opgegeven, zelfs wanneer er een quantityOfPackagesDelivered was opgegeven.

    60.7.1
  • Opgelost dat savePurchaseDelivery onjuiste aantallen per regel opsloeg wanneer er gebruik werd gemaakt van een verpakkingsstructuur met meerdere niveaus (bijvoorbeeld: stuks → zakje → doos).

    59.9.9
  • Opgelost dat savePurchaseDelivery onjuiste aantallen per regel opsloeg wanneer er gebruik werd gemaakt van een verpakkingsstructuur met meerdere niveaus (bijvoorbeeld: stuks → zakje → doos).

    60.7.1
  • getOrders, getReceipts, getInvoices, getPackingSlips en getProposals vullen nu ook bpeAccordationEmployeeNumber in.

    59.9.9
  • getOrders, getReceipts, getInvoices, getPackingSlips en getProposals vullen nu ook bpeAccordationEmployeeNumber in.

    60.7.1
  • De filter operators ISNULL and ISNOTNULL van de getOverview calls werken nu daadwerkelijk.

    60.7.1
  • getOrderChanges en getOrderHistory zijn nu aanzienlijk sneller op grote databases.

    60.7.1
  • getOrderChanges en getOrderHistory zijn nu aanzienlijk sneller op grote databases.

    59.9.9
  • Bij getOrders wordt nu ook de deliveryMethod ingevuld.

    60.7.1
  • Bij getOrders wordt nu ook de deliveryMethod ingevuld.

    59.9.9
  • saveSalesRepeatTemplate ondersteunt nu ook yearlyDateMonth en yearlyDateDay, tevens zijn die velden nu optioneel, wat ze al hoorden te zijn.

    59.9.8
  • Opgelost dat de entryTimestamp van betalingen die de getInvoices, getOrders en getReceipts teruggaven niet juist waren.

    59.9.8
  • Opgelost dat getTableOrderV3 geforceerd niet samenvoegen een hogere prioriteit gaf dan geforceerd wel samenvoegen.

    59.9.8
  • Opgelost dat als een artikel terugroepactie ongedaan gemaakt is d.m.v. setArticleRecalled, de getOverview aanroep alsnog de vorige terugroepactie teruggaf.

    59.9.6
  • Opgelost dat het mogelijk was om een al teruggeroepen artikel nogmaals terug te roepen d.m.v. de setArticleRecalled API functie. De API kan nu één van de volgende foutmeldingen teruggeven: SET-ARTICLE-RECALLED-FAILED-ALREADY-RECALLED of SET-ARTICLE-RECALLED-FAILED-NOT-YET-RECALLED.

    59.9.6
  • Opgelost dat getConfiguration de keukenmanagement instellingen potentieel dubbel teruggaf. De group was dan de ene keer "Keukenmanagment" en de andere keer "keukenmanagment". Nu is dit altijd met kleine letters. Dit had tot gevolg dat onder andere de narrowcasting schermen de instellingen niet goed kon inlezen.

    59.9.6
  • Geheugenlekken verholpen in:

    • getConfigurationValues
    • updateConfigurationValues
    • getArticleGroupChanges
    59.9.6
  • Opgelost dat de webhooks ten onrechte een INVALID_APPLY_TO_QUANTITY error gaven met een session.line.id die niet in de response zat. Dit gebeurde voor negatieve regels in de session.

    59.9.6
  • Opgelost dat o.a. updateOrderV2 er in een specifiek scenario er voor kon zorgen dat een regel ten onrechte verwijderd werd.

    60.7.1
  • Verhelpt de foutmelding: "This order is currently being paid on terminal ..." vanuit de determinePricing call.

    59.8.11
  • Probleem uit v59.8.8 opgelost, het is weer mogelijk om een externalPayment-flow uit te voeren via de API.

    59.8.9
  • Opgelost dat samengestelde componenten in het resultaat van getReceipts LINE-TYPE-NONE hadden i.p.v. LINE-TYPE-COMPONENT.

    59.8.11