Below you will find the summary notes for the 44th release of the Nuweb core platform.
Unified shop loginAfter much customer feedback, the login/registration step during checkout has received an upgrade to provide a unified login experience. This de-emphasises the need for customers to register just to place their order. The new experience reveals the appropriate actions for the user based on the email address entered:



ResaleThis release we introduce version 1 of our resale product which sits alongside primary ticket sales to allow customers to purchase verified resale tickets with confidence.Resale settingsThe resale experience is fully customisable - defaults can be defined at the company level, whilst allowing event and item level overrides to be set.
Listing experienceCustomers can now list items that meet the criteria for resale via their account


Purchase flowOnce listed, items are made available alongside primary tickets, for both seated (including GA) and non-seated events

Increase customer confidence throughout checkout with ‘Verified resale’ badges throughout
Seller payoutsOnce items have been sold, there are a number of payout mechanisms available which can be configured within your account:


🚀 New Features
Two factor authentication- [NG-5058] Two-factor authentication (App-based 2FA) is now generally available in hub & admin:

- New users will be automatically presented with the continue as guest journey by default, with the option to register if they wish.
- If the email address belongs to an existing customer, the password field will be revieled to allow them to login.
- If a users previously logged in with a social login provider, then the system will visually indicate this to them so they can continue with their same account.











- Payout to primary online payment method (for-profit sale pays out additional to account balance)
- Payout to account balance as a pending balance (cannot be spent immediately)
- Payout to account balance (can be spent immediately)

✨ Enhancements
- [NG-10636] Event pages now automatically reload when a sales period begins:

- [NG-10662] Shop checkout login page has been improved to reduce friction and speed up checkout
- [NG-10778] Simplified the non-checkout login page
- [NG-10656] Authenticated CMS pages
- [NG-10674] Allow customer groups to be activated/deactivated
- [NG-10691] General admission ticket quantities can now be changed in the basket.
- [NG-10716] An order’s available download options, including cover sheets and item template selections, are now correctly scoped for both parent and child company admins.
- [NG-9500] Orders reports now support fulfilment status and method filters.
📱 Mobile Apps
ePos Pro 1.2.4 → 1.2.5- [NG-10685] Second screen support has been added.
- [NG-10645] Second screen support has been added.
- [NG-10586] Memory leak fixes and the user is prevented from opening multiple payment screens.
- [NG-10492] Stripe performance has been improved and new UI has been added to indicate Stripe’s status.
- [NG-10521] When checking out of a local basket, a loading spinner has been added to indicate the local basket is being processed into an online basket.
- [NG-10137] Alignment and text wrapping has been added to printed receipts.
- [NG-10686] Second screen support has been added.
- Memory leak fixes.
- [NG-8805] The cashless config permission has been renamed to wallet.
🎨 User Interface (UI/UX)
- [NG-10353] Multiple repeat schedule events now display correctly on the items modal calendar.

- [NG-10917] Lengthy discount codes now truncate, rather than distorting the order page in Admin
- [NG-10901] Order fees now present the total price to the customer during checkout, rather than the per fee price
🧹 Housekeeping
- [NG-10780] Resellers can now define whether their fees are naturally rounded, always rounded down, or always rounded up.
- [NG-11017] Updated Protect Group email content in Hungarian language.
- [NG-10712] Schedule groups now correctly reload the correct list of events.
- [NG-10985] Resolved an issue where tickets weren’t being cancelled after a refund protection claim
- [NG-10060] Fix an issue where timeslotted addons weren’t copied correctly when copying/scheduling events
- [NG-11057] [NG-11047] Nuvei: Improved billing address validation and fixed an issue with certain types of refund failures not being handled correctly
- [NG-10755] Fixed an edge case where account balance funds weren’t returned after a split payment failure
- [NG-10714] Switching companies in admin now forces domain switches to ensure GTM scripts terminate.
- [NG-10541] Cleaned up legacy tax profiles to prevent inaccurate Szamlazz invoices from being generated.
- [NG-10616] Resolved an issue where clicking an event’s sales item group’s “View attendance” link displayed unexpected results.
- [NG-10893] Resolved an issue preventing event reports from generating when including the “Event url” field.
- [NG-10777] Resolved an issue where capacity fields were not populated when producing a sales report grouped by event.
- [NG-10290] Show processing fees for charity donation creation
💻 Technical
- [NG-10673] Advanced Google Consent mode can be enabled by Resellers per company to allow cookieless Google Analytics tracking.
🧑💻 API
Changes to the API have been documented in the changelog on the API documentation homepage.- [NG-10995] Gracefully handle protect group error when completing an order modification for an event that starts within 24h
- [NG-9843] Added the ability to opt individual events in & out of refund protection (Protect Group).
- [NG-10888] Resolve a scrolling issue when box office event search results expand beyond the page height.
- [NG-10907] Added the ability to specify the sales tax rate associated with refund protection.
- [NG-10915] Added
sort_orderto the sale items API. - [NG-10932] Fixed price donations now show where roundups are enabled and basket is free.
- [NG-10937] Infrastructure: Reduced the waiting room upper bounds to improve queue position stability.
- [NG-10981] Infrastructure: Improved auto scaling responsiveness to address intermittent latency & timeouts.
- [NG-10545] Resolve issue with “add condition” button on custom reports
- [NG-10759] Clean up of old June integration code
- [NG-10881] Added the ability to opt-out of sending customer PII in the Protect Group integration
- [NG-10914] Added split payment feature flag to config endpoint
- [NG-10947] Added further protections to ensure deposits aren’t mistakenly expired prior to the deadline date
- [NG-10481] Refund protection badge now shows for collapsed order items when applying protection during checkout
- [NG-10883] Resolved an issue causing order modifications to reduce total stock capacity for items that remained unchanged.
- [NG-10895] Hidden refund protection text block when sending order confirmation emails en masse using the blank template.
- [NG-7155] Fixed an error that was shown when attempting to download a transferred item, from within the admin order UI.
- [NG-10447] Changing scanning times on an item in a schedule now presents the mass update modal
- [NG-10665] Updates to Revolut integration
- [NG-10738] Added delete customer API endpoint
- [NG-10787] We’ve changed the default settings on new seated events, to automatically select the highest priced ticket when selecting a seat. This default behaviour provides the most frictionless default experience for customers. Organisers remain free to change these settings when configuring their event.[NG-10787] Default the ‘automatic ticket selection’ setting on seated events to the highest price item first
- [NG-10899] Fixed an issue preventing gift vouchers from being downloaded
- [NG-10791] Date formatting in orders index no longer shows ‘Invalid date’ for certain endian settings
- [NG-9730] Instantly expire SimplePay TIMEOUT / NOTAUTHORISED payments
- [NG-9918] Fix inability to enable the Hide global system roles feature flag in specific scenarios
- [NG-10464] Fixed an issue loading access code usage based reports
- [NG-10580] Added Revolut webhook support
- [NG-10591] Allow hub level event report to operate across multiple resellers
- [NG-10618] Allow orders in “processing” and “unknown” status to be manually completed in admin
- [NG-10656] Allow CMS page visibility to be restricted to logged in users only
- [NG-10669] Improved all-in pricing support when selecting a seated item by including order / event level fees within the fee value shown against the ticket.
- [NG-10717] Surfaced an
isCancelledproperty within theGET /v1/eventsandGET /v1/eventAPI endpoints - [NG-10740] Fixed edge case causing deposit paid reservations to expire
- [NG-10759] Replaced June event tracking in Admin with GA4 tracking
- [NG-10764] Added gates to /orders endpoint spaceNameParts parameter
- [NG-10769] Performance improvements when initiating an order modification for orders with a large number of items
- [NG-10772] Seated tickets within PDF downloads will now be ordered by event start date, followed by seat number
- [NG-10784] Fixed a range of translations that incorrectly displayed the placeholder (e.g. ”: id”) instead of actually replacing with real data.
- [NG-10789] Updated some Hungarian translations to improve accuracy
- [NG-10868] Improved the wording of Protect Group protection on the customer confirmation email
- [NG-10873] Add replacedOrderItemId to add to basket API response
- [NG-9336] Added day of week to dates shown on wallet transaction history, order index completed at and admin dashboard
- [NG-9893] Prevent season ticket items showing when using the ‘can attend event’ report filter for events where the season ticket has been removed
- [NG-10080] Add custom email text on refund email for resale orders
- [NG-10439] Included fee items in the list of item types returned from the
order-itemsAPI endpoint - [NG-10538] Resolved an issue which caused the payment link expiry date picker in box office to close when trying to change months
- [NG-10590] Surfaced customer effort score in hub reports
- [NG-10640] Refund and refund failed webhooks
- [NG-10657] Added a new iframe template block type
- [NG-10675] Allow orders to be retrieved via the API using only an order reference
- [NG-10684] Improved display of address lookup fields across smaller, mobile screens
- [NG-10754] Fix Payment Link 403 when child company shop is disabled
- [NG-9466] Removed calendar navigation controls where only one date exists
- [NG-9894] Button text theme colours are now set correctly in box office
- [NG-10524] Show shops edit account button on mobile
- [NG-10567] Bullet points now show in shop for item descriptions
- [NG-10723] Resolved an image quality issue when uploading images to event media
- [NG-10726] Improvements to seating plan editor to prevent getting stuck in a loading state when administering an area
- [NG-10473] Added
customer_name,roles,customer_groups,companyandutc_timezone_offsetproperties to GTM events - [NG-10628] Ensure marketing questions are asked during box office checkout based on the lack of customer responses rather than box office user responses.
- [NG-10682] Gracefully handle a missing seating plan tag description when syncing seating plan to an event
- [NG-10687] Added additional tooling to our internal waiting room dashboard
- [NG-10688] Resolved the ability to view transactions belonging to customers that have been merged
Below you will find the summary notes for the 43rd release of the Nuweb core platform.

The basket has been updated to display the changes that have been made, including the original / new quantity, any items that will be removed from the order, and a summary of what payment / refund is due

If the order value is reduced, then any outstanding amount will be refunded to the customers account balance, allowing them to redeem this funds within the platform at a later date
As always, we’ve given fine grain controls to event organisers, allowing you to enforce cut off dates, fee settings, and refund behaviour.
All of this behaviour is also available to admin users, who can now make changes to orders, via box office.
Merge customers
Manual Refund Protection

Resale


🚀 New Features
Order modificationsThe new modify order capability allows customers to make changes to completed, paid orders. This is a self-serve feature which can be accessed by the customer when viewing an eligible order via their account.






- [NG-8929] Customer records can now be merged together, with all data, orders and items carried across to the remaining customer record.
- Conflicts can be resolved easily by selecting either the current customer or the merged customers data

- [NG-9880] Added the ability to define custom refund protection fees to support integrations with both first and third-party event refund protection providers
- Protection pricing can be fixed and/or percentage based, as well as supporting tier-based pricing where rates change depending on the ticket price.
- Multiple protection offerings can be configured, allowing for multi-party integrations and/or presenting customers with different levels of coverage at different price points.
- Account-level protection controls allow for minimum order values and event cut-off periods to be defined.


- [NG-10324] Resale fees can now be configured and applied to resale baskets
- Add resale contracts to API, which allow an item to be marked as available for resale
- There is a new create, show and delete endpoint for managing resale contracts for order items
- Further details can be seen over in the API docs:

✨ Enhancements
- [NG-8542] It is now possible to enable ‘welcome emails’ for any self-service company registrations. This will allow new companies to receive details around plans, pricing, customer support, and any go-live requirements.
- [NG-9324] Enhancement automated email when added to customer group
- [NG-9888] Reseller fee invoicing now supports accrual invoicing for marketplace gateways (e.g. Stripe) to ensure that invoices are generated based on transaction date, rather than payout date.
📱 Mobile Apps
ePos Pro 1.2.1 → 1.2.4- [NG-8805] Renamed permissions from
cashlesstowallet. - [NG-10201] Added Android 15 support.
- [NG-10250] Fixed an issue where some transactions were not being loaded in the transaction screen.
- [NG-10271] Fixed an issue where sales screen did not display any information.
- [NG-8882] Added local basket functionality in the ticket selection screen.
- [NG-10126] Added company name, address, and VAT number to print receipts.
- [NG-10198] Added a button to allow printing only receipts.
- [NG-10200] Added Android 15 support.
- [NG-10240] Fixed an issue where the basket would endlessly increase.
- [NG-10277] Fixed an issue where the product name was not being printed.
- [NG-10293] Added support for add-ons.

- [NG-10311] Fixed an issue where the product name was not being displayed in the orders screen.
- [NG-10350] Improved speed when adding or removing tickets in the basket screen.
- [NG-10357] Fixed an issue where you could not add multiple GA tickets.
- [NG-10422] Added support for basket expiry.

- [NG-10495] Empty timeslots are now filtered out.
- [NG-8898] Added support for displaying
Barcode has changedwhen barcodes were changed. - [NG-10199] Added Android 15 support.
🎨 User Interface (UI/UX)
- [NG-8104] Standardised the wording around ‘account balances’ across the platform (we no longer reference them as ‘wallets’ in certain scenarios).
- [NG-10291] Display min and max pricing for variable priced donations.
- [NG-10257] Formatted valid to and valid from dates in eligibility settings for discount and access codes
- [NG-7844] Simplified the customers experience when distributing large numbers of tickets post-purchase
- [NG-10331] Processing fees can now be set for epos shop products where the epos currency is fiat.
- [NG-9871] The box office event search page is now customisable as the shop search page, plus received additional UX improvements like all filters following the user, and events opening in a modal
- Additionally the shop search page has received a UI uplift
- [NG-10116] The maximum space counter in the seating plan editor have been changed to be only a seat counter. General admissions and areas won’t count towards this maximum limit anymore.
- [NG-10132] Add seating plan table modal have received UX updates, and a new option to set how many tables you are adding
🧹 Housekeeping
- [NG-10106] Processing fees no longer visible when disallow processing fees feature is enabled.
- [NG-10110] Report toggles no longe reset to true when the report data reloads.
- [NG-10074] Allow resale days before event to be set back to empty
- [NG-9608] Improved padding on basket preview panel
- [NG-10387] Date & time questions no longer present broken HTML in the label
- [NG-10351] Removed ‘view all’ button from transaction history in wallet block of a customers account
- [NG-9539] Prevent addons from being assigned to addons
- [NG-9686] When deleting tickets from an event, the schedule dashboard still retained cached data; it now displays correct data.
- [NG-10134] Add tickets actions are now visible on new schedule dashboards
- [NG-10459] Fixed an issue causing sharing settings to be reset when updating event sale periods
- [NG-10534] Added
seating_plan_space_idto the seating plan allocation report - [NG-9194 & NG-10373] Resolved a bug when removing dynamic, per-item fees from multi-item baskets.
- [NG-7846] Resolved an issue where the
limitparameter was not being respected when used on the/entry/ticketsendpoint - [NG-10608] Fixed an issue where the sharing step wasn’t being displayed in the checkout when the order only contained a gift voucher.
- [NG-10626] Timeslot information is now displayed underneath bundled items in admin.
- [NG-10620] [NG-10060] Various fixes relating to the creation and copying of add-ons.
- [NG-9647] Resolve an intermittent error when selecting a customer before starting a basket in box office mode.
- [NG-10606] Increase the upper limit of registered stripe terminals from 10 to 100 in box office mode.
- [NG-10446] Fix duplicate confirmation emails being issued when refund protection is purchased and the “Dispatch confirmation email per inventory source” option is enabled.
- [NG-10466] Adjusted Google Consent updates to fire on every page load with the customer’s current consent settings.
- [NG-10056] Bulk event editing options have been restored on the admin events page.
- [NG-9841] Fixed an issue where general admissions inside areas using the Best Available UI could not have been selected
💻 Technical
- [NG-9820] Apply migrations to tidy up the discount and access code tables now that old columns are no longer in use
- [NG-10340] For embedded seating plan integration a highlight mode has been added to display the seating plan without any interactions.
- [NG-9196] Our Google Places integration have been updated to use the New Google Places API.
- The Find Address feature has been updated to only look for an address on a button click.
🧑💻 API
Changes to the API have been documented in the changelog on the API documentation homepage.- [NG-10297] The relevant seats are now highlighted when selecting stands in manage event seating plan.
- [NG-10355] Shop basket limits are no longer applied to bundled items or add-ons. It is now possible to allow customers to purchase up to the basket limit and continue to add add-on items.
- [NG-10388] Event stats can now optionally be retrieved as raw unformatted numbers via the API.
- [NG-10453] [NG-10462] Small improvements to help with managing sales periods in multi-timezone accounts:
- Past dates can now be used when configuring sales periods.
- Additional visual indicators re-affirm which timezone the dates are configured in.
- [NG-9859] Added the ability to expire baskets via the API
- [NG-10195] Added tracking for basket expiry events in both iframe integrations and analytic/pixel trackers.
- [NG-10228] Capture useful information about the checkout experience when collecting customer feedback
- [NG-10375] Removed unnecessary brackets on fee/tax price display
- [NG-10396] Improved the capabilities of parent/child company access codes:
- Added the ability to assign child company items (such as events, sale items, schedules, etc.) to parent company access codes — these restrictions only apply in the parent company shop/listings.
- Where sibling companies have conflicting access codes, we now prioritise them when applied in the parent company based on their validity times.
- [NG-9896] Ensure Buy Now button correctly responds to various sale period states
- [NG-10399] Resolved an issue preventing Apple passes from being signed correctly.
- [NG-9997] Apple pass and event media are no longer incorrectly shown in the mass update modal when editing bundles.
- [NG-10103] Resolved a bug which was causing the basket panel to close unexpectedly without user action
- [NG-10155] Resolved a bug preventing the customer account balance topups panel from opening in admin
- [NG-10278] Absorb processing and reseller fee toggle is no longer hidden when variable priced donations are made.
- [NG-10286] Improved permission checks for donation creation on event pages, to avoid mistakenly hiding the options for users who should be able to manage donations.
- [NG-10327] Implemented anonymisation of customer info when integrating with tracking pixels
- [NG-10341] Show reserver name when editing information during checkout
- [NG-10343] Name and email inputs are now displayed by default where customer is required during box office checkout
- [NG-9487] Redirect to custom URL after checkout of API created basket
- [NG-9853] Allow forced customer selection in box office
- [NG-9934] Ensure default text is shown on buy now buttons when custom purchase messaging is removed
- [NG-10062] Event meta image changes now show without requiring a page reload in admin.
- [NG-10111] Protect Group is now generally available. Additional internal monitoring tooling has been implemented to ensure Protect Group failures are caught & corrected early.
- [NG-10165] Resolved an issue where article content blocks were being duplicated after import.
- [NG-10167] Fixed an issue where the “Options” button in My Account didn’t always dropdown when clicked.
- [NG-10227] Ensure seating plan revisions do not reset stand information.
- [NG-10314] Implemented customer feedback reports in admin, following on from the recent addition of a customer feedback widget on the checkout success screen.
- [NG-10330] Fixed an error on checkout success when attempting to collect customer feedback from a guest user who has been logged out.
- [NG-10333] Fixed the sale item restriction toggle not working during event fee creation in admin.
- [NG-10336] The standard text for “Item fees” in the shop can now be customised via the admin text manager.
- [NG-9168] Ensure stale content isn’t shown within the event description field when editing mixed schedules.
- [NG-9650] Fee tabs now horizontally scroll when all currencies are enabled.
- [NG-9768] Improved performance with charity donations in checkout.
- [NG-9895] Google consent update events are now sent via GTM when users update their cookie settings.
- [NG-9913] Box office no longer continually refreshes whilst list views are disabled in theme settings.
- [NG-9946] Include headers row above totals in longer reports
- [NG-9963] Prevent white screen for hub user with no resellers & the edit reseller general settings permission.
- [NG-10018] Prevent inventory item stock value changing on mouse scroll.
- [NG-10055] Resolved an issue where opening a linked image in a new tab would freeze the original tab.
- [NG-10059] Ensure country code selectors pre-select the correct country based on ordering preferences.
- [NG-10061] Ensure the admin event Sell buttons open box office in a new tab, without affecting the original tab.
- [NG-10063] Improved the display of ‘image too small’ warning when uploading images.
- [NG-10066] Allowed percentage based fee items to be set with up to 2 decimal places.
- [NG-10147] Resolved an issue where season ticket check-in time would be reset to anytime on load edit.
- [NG-10151] Performance improvements to internal language translation tooling
- [NG-10170] Removed unexpected border above event block search fields
- [NG-10173] Resolved an issue with the WYSIWYG editor when empty
\<figure>elements are left behind. - [NG-10187] Improved reliability of Szamlazz document generation during rebooking.
- [NG-10192] Implemented capturing of customer feedback after successful checkout.
- [NG-10233] Show timeslot times on tax receipts.
- [NG-10249] Ensure correct values are sent to Protect Group when remaining balance payments are completed.
- [NG-10267] Resolved intermittent errors detected from basket timeout extension requests.
- [NG-10251 & NG-10275 & NG-10278] Fixed a number of inconsistencies between how donations are listed in checkout and their configuration in admin.
- [NG-10309] Disabled orphan seat checking for tables which have Disallow booking individual seats turned on
- [NG-10310] Ensure sale items beyond the first 50 for an event can be selected when configuring event fees.
- [NG-10312] Surface company VAT number via the
GET /v1/configAPI endpoint
- [NG-6267] Improved the surname deduplication logic used when syncing customer details from 3rd party logins
- [NG-9070] PDF downloads and order distributions containing seated items will now be prioritised by seat number
- [NG-9685] Fixed incorrect placeholders in Hungarian language entries
- [NG-9957] Improved reliability of liking/unlinking of events in the shop
- [NG-10032] Schedule listing page images are now 2/1 aspect ratio
- [NG-10075] Improved clarity of wording on schedule listing pages, especially when viewed mid-schedule
- [NG-10107] Can now change months in discount code eligibility settings date inputs without issue.
- [NG-10181] Included a ‘view schedule’ button to the schedule dashboard
- [NG-10194] Included the currency code alongside the currency symbol on invoices generated by hub.
- [NG-10248] Improvements to orphan seat protection when selecting the first and last seat on a table
- [NG-10188] Resolved issue where cover sheets cannot be unselected in pdf downloads.
Below you will find the summary notes for the 42nd release of the Nuweb core platform.
Text manager enhancements

Order modifications (internal preview)





Box Office Pro 3.2.3 -> 3.2.4: 20th August 2025
Access Control Pro (Android) 6.5.1 → 6.5.2: 20th August 2025




🚀 New Features
Introducing Data Endpoints for scheduled report publishing- [NG-9807] [NG-9940] Added the ability to publish scheduled reports to S3 buckets via the new “Data Endpoints” feature.

- [NG-9318] Order confirmation emails can now be customised at the event schedule level (via admin text manager). This allows custom text to be set across the whole schedule rather than having to be manually applied to each event within the schedule.
- [NG-9925] Added new text manager permission group to admin user role management
- [NG-9311] Implemented first-party ticket resale support via the Basket API, with the ability to configure resale settings at the company, event and sale item level.

- [NG-9494] Added a new “Order failed” webhook, to listen for order failures/expiry events, as well as the ability to configure order webhooks to be triggered on resale orders and/or original sales.

- [NG-10118] Foundational changes to the core orders and basket services to allow us to support order modification and resale in future releases.
- [NG-9869] Our 3D Digital Venue integration allows you to map your seats view with their system, so your customers can see their view when purchasing their seats.
🔌 Integrations
- [NG-10098] [NG-10127] [NG-10088] [NG-9776] Various improvements to the Protect Group integration including more robust error handling, better phone number validation & automatic fee adjustments when modifying protected baskets.
- [NG-9777] Improvements to the VAT lookups management for Hungarian customers: improved messaging when looking up invalid or unsupported VAT numbers, more info such as floor, door & group vat number is presented, overall improved UX for a variety of different scenarios.
✨ Enhancements
- [NG-9323] Customer groups can now expire on a specific date

- [NG-9851] Allow order billing and delivery addresses to be edited in admin

- [NG-9212] Event page block titles are now completely optional
- [NG-9849] Immersive box office
- Admin menu will be hidden in box office for users with minimal access
- When admin menu is minified, it will slide out of view

- [NG-9956] Detectable automated traffic (bots, crawlers, marketing tools, etc.) now have dedicated waiting rooms separate from regular visitors & will no longer clog up the waiting rooms.

📱 Mobile Apps
ePos Pro 1.2.0 -> 1.2.1: 20th August 2025- [NG-9171] Items with multiple categories support added.
- [NG-8899] Print button added for local transactions.
- [NG-8900] Order reference added when transactions are finished.
- [NG-10119] Fixed API call incorrect field name.


- [NG-8547] Added the ability to scan a customers ticket to retrieve their details in Mobile Box Office:

- [NG-10114] Internal: Removed “limit” parameter.
- [NG-10115] Internal: Removed “limit” parameter.
🎨 User Interface (UI/UX)
- [NG-9863] Charity donations presentation & usability have been improved: variants are grouped into a single line, percentage-based donation suggestions can be combined with fixed options, custom badges can be added to individual price variants & descriptions now display correctly:


- [NG-9825] Image inheritance is now displayed in tooltip text.

- [NG-9215] Bundled items are now grouped when processing refunds.

- [NG-10023] Basket page and basket panel user experience improvements
- Grouped sale items by events in both areas
- Updated basket panel to make it feel less crowded

🧹 Housekeeping
- [NG-8606] Remove unused fields and table from discount/access codes
- [NG-9996] Removed past events from box office event search
- [NG-9990] Included day of week in date formatting for basket slideover
- [NG-9991] Ensure events are ordered “earliest first” when clicking “back to events” on box office order success page
- [NG-9419] Fixed a situation where discount codes restricted to schedules or inventory items, weren’t shown in the box office ‘discount code’ dropdown.
- [NG-10068] Introduce new event sales report grouping to allow grouping by processing fees paid
- [NG-10069] When grouping event sales reports by ‘event schedule’ we no longer forcefully group unscheduled events into a single
-row; instead we now provide a filter to opt-in to this grouping - [NG-10070] Added an aggregated
venue_namesfield to the transactions report - [NG-8046] Fixed an issue with
sharing after checkoutnot being considered in mass updates of tickets - [NG-10058] Allowed season tickets to enable/disable kiosk as a sales channel
- [NG-8442] Renamed ‘charity donations’ to ‘donations’
- [NG-10092] Added
/donationsand/gift-vouchersto the sitemap - [NG-10156] Forced checkout modal no longer appears when the basket has been emptied
- [NG-10168] It is now possible to rename
event passlabels in the shop via the text manager - [NG-10164] Improve performance of hub role management
- [NG-9420] Open settings panel automatically when first enabling manual payments
- [NG-10161] Custom currency topups can now be transferred post checkout
- [NG-10038] Added “click-to-reveal” on sensitive API tokens throughout the API documentation
- [NG-9532] Error messages no longer force a page refresh when adding refund protection
- [NG-9752] Default header images are no longer prioritised over event images during creation
- [NG-9381] In all our analytics integrations where userId and lastVisit was available we’ve added user_id and last_visit, to match the casing of other properties. The previous name is unaffected and still in place.
- [NG-9567] When adding seats to basket, resolved an issue when previously removed items are submitted with the quantity of 0
- [NG-9904] Ensure the “Assigned to X events” shows the correct number when restricting discount codes
💻 Technical
- [NG-6180] New internal tooling improves our ability to identify & block malicious traffic.
🧑💻 API
Changes to the API have been documented in the changelog on the API documentation homepage.- [NG-9986] Resolved a further issue with
/entry/ticketsendpoint not returning all possible zones permitted for a single ticket, where the ticket has been assigned to multiple zones
- [NG-7719 + NG-9983] Fixed a permission check that prevented child companies from pairing NFC tickets with any orders placed in the parent company. Fixed a query issue that sometimes returned the wrong ticket to pair with NFC, when duplicate barcodes were in use (via data imports)
- [NG-9133] Removed action buttons form the schedule dashboard where relevant permissions are not given to the user
- [NG-9720] Removed non-functional crop action from image uploader
- [NG-9744] Removed timeslot selection when closing the items modal in Shop
- [NG-9746] Resolved an issue which prevented images from being optimised on upload
- [NG-9834] Small images no longer break image uploader
- [NG-9920] Image changes now trigger the mass update modal
- [NG-9923] Inherited schedule image now displays on shop
- [NG-9924] Updated filter to read ‘Completed after’ rather than ‘Completed at (after)
- [NG-9929] Added a new (default) filter to attendance reports to hide box office user details from the
holderandpurchaserfields when no customer name or email was provided during the transaction - [NG-9964] Carousel gallery blocks now open full screen on click
- [NG-10005] Allow for mass updates of the event thumbnail and header image
- [NG-10014] Removed the unschedule event button where the user does not have the relevant permissions
- [NG-9698] Allow showing sale item groups with no sales when grouped by sale item group on a sales report
- [NG-7195] Made Szamlazz validation error more customer friendly during self serve refunds
- [NG-8209] Improved support for copying events with sale item fees, when the target sale item, and the fee sale item are copied with different inventory options selected
- [NG-9925] Allow edit language lines permission to be assigned to roles. Ensured text manager navigation link and text manager screen respects this permission honours correctly.
- [NG-9931] Ensure files such as robots.txt and sitemap.xml etc. are accessible when waiting rooms are active
- [NG-9970] Allow the creation of multiple seating plan blocks for a single DTCM section
- [NG-9971] Added Arial unicode font to event media to ensure non-latin characters render correctly in PDFs.
- [NG-9972] Resolve a temporary issue preventing default (non-custom) reports from being downloaded.
- [NG-9807] [NG-9940] S3 Report Publishing Feature (more details above)
- [NG-9761] Ensure that schedule meta images are correctly shown, rather than incorrectly defaulting to the thumbnail image
- [NG-9886] Resolve an issue with internal hub users appearing in company user lists post suspension
- [NG-9897] Carousel and collage style gallery blocks do not show the image full screen on click
- [NG-9935] Improved keyboard interactivity during checkout
- [NG-9936] Resolve an intermittent issue with Szamlazz invoice generation
- [NG-9953] Updated the DTCM live API URL
- [NG-8843] Resolved an issue here refund protection “Protected total” was including unprotected items
- [NG-9215] Improved the display of bundle items when issuing a refund
- [NG-9348] Added undocumented company fee types to the partner API docs for company create & update endpoints
- [NG-9382] Resolved an issue where the default printable and default apple pass options would be lost when applying mass updates across related sale items
- [NG-9619] Added additional terms, privacy policy, and marketing opt in acceptance dates to the admin user reports
- [NG-9636] Forced min quantity does not submit without adjusting the qty
- [NG-9655] Add missing translation for no sale periods
- [NG-9780] Minor performance improvements to shop event search
- [NG-9787] Accessibility improvements to event listing pages
- [NG-9816] Accessibility improvements to discount code usage in shop
- [NG-9821] Accessibility improvements to labels in shop hot paths
- [NG-9838] Improved search experience for events that contain multiple two letter words
- [NG-9884] Improved accuracy of recently added Hungarian translations
- [NG-9892] Switch publish permission to edit for event dates, to prevent 403 error for some users
- [NG-9897] Resolved an issue where template block images were not viewable in full screen
- [NG-9916] Resolved an issue where refund protect would not display correctly in certain locales
- [NG-7456] Ensure that cancelled at and refunded at dates on order items are formatted to the local timezone
- [NG-7843] Force 2:1 aspect ratio for event block images
- [NG-8113] Improved context of data capture action button wording on event dashboard
- [NG-8660] Timeslot lowest/highest price range in shop now respects the hide free item toggle
- [NG-9302] Resolved an error on the data import list view when a feature flag is disabled after an import is completed that requires the feature
- [NG-9502] Added a new pair tickets permission to avoid scanning users requiring edit events permissions
- [NG-9541] Return event image over schedule image where recurring events are not grouped
- [NG-9606] Labels for some toggles in the sale item form have been reworded for improved clarity
- [NG-9611] Added the country name to delivery address fields on attendance reports
- [NG-9611] Added billing address fields to attendance reports
- [NG-9636] Enable add to basket buttons when forced min quantity is enabled
- [NG-9729] Ensured billing address remains mandatory when order billing address is deleted during checkout
- [NG-9766] Fixed a regression within the edit event page, buy now customisation panel
- [NG-9770] Improved signposting when images are inherited from thumbnails
- [NG-9771] Included bleed aspect ratio warning for image uploads
- [NG-7835] Minor query optimisations to event creation process
- [NG-8664] Up/down keys now shift focus for customer suggestions
- [NG-9197] Apply correct checkin settings when assigning a sale item to another event
- [NG-9395] Removed ’+’ from customer icon in box office, as this is not a clickable action
- [NG-9571] Increased customer search debounce slightly to reduce impact on database
- [NG-9739] Ensure refund protection isn’t offered when the child company has the protect group FF flag off, OR the basket is for items across multiple companies
- [NG-9765] Trackpad clicks now register as expected when using a windows laptop
- [NG-9626] Resolved an issue which prevented bundles being displayed correctly in box office when switching between events
- [NG-9801] Hungarian translation refinements
- [NG-8775] Removed a
language=disallow from robots.txt and prevented asset directories from being crawled
- [NG-9731] Prevent issuing new session ID’s in URLs for requests from known crawlers
Below you will find the summary notes for the 41st release of the Nuweb core platform.











Basket code index pages [NG-7239 & NG-7244]
Best available seating plan updates [NG-9118]
Release 41 included a large number of performance improvements for the ticket shop, many of which were released via patches. These improvements will benefit seated, general admission, and timed entry events.
🚀 New Features
- [NG-9488] Allow user to checkout in the shop for a basket created with the API, using a secure link returned from the API to enter checkout
- [NG-9671] Added a new global data capture setting which allows imported orders to access their tickets instantly without needing to fill out the mandatory data capture fields.
- [NG-9157] Event sale period improvements
- Take event off sale when it is not in a sale period, where sale periods have been defined
- Where the event is off sale for this reason, display this in admin

- Show on sale soon in the shop if a sale period is defined in the future for an event

- Add new event date template block that can be shown in the shop to display when the event goes on sale

🔌 Integrations
- [NG-7935] Enabled Apple Pay for Hyperpay payments
- [NG-9135] Revamped the Szamlazz Integration for Hungary
- Customers can now lookup, amend & verify tax information
- Customers can now assign different tax profiles to different purchases, where previously they would need to create a new account per tax profile.
- Admin users can manage tax profiles & re-issue szamlazz documents per order
- Box office checkouts have an improved user experience


✨ Enhancements
- [NG-8300] Hourly scheduled reports now have a start and end time, as well as date.

- [NG-8198] - Improve syncing of customer groups
- Show which groups a customer belongs to on the customer page, and allow groups to be re-synced for a customer.

- Allow a customer group to be re-synced from the customer groups page

- [NG-9037] Added a new setting for blocks & rows to allow customisation of row label positioning

-📱 Mobile Apps
- Box office improved seating plan integration [NG-8538]

🎨 User Interface (UI/UX)
Image uploads [NG-8617]- Event creation now requires only one image

- Individual images can be set via the event dashboard.

- All basket code index pages have received a UI update, moving all filters to collapsable column and displaying current filters as removable pills.

- Updated tab selection design
- When using the Best Available & General admissions tab, the seating plan has been made interactive to allow selection of areas and general admissions

🧹 Housekeeping
- [NG-7902] Sibling companies with identical tags now display the correct events count in Shop searching
- [NG-9375] Suppressed unnecessary console log on instant checkout
- [NG-9154] Embedding a listing page now uses the correct listing page URL
- [NG-8076] Venues are now sorted alphabetically when creating/editing an event
- [NG-9624] Event sales report allows grouping by venue
- [NG-9624] Event sales report allows you to select multiple venues in the venue filter
- [NG-9625] Attendance report allows for venue ID and name to be added as fields
- [NG-9625] Attendance report allows filtering by venue ID
- [NG-8663] Resolved an issue with the epos settings page showing ‘please select currency’ even after a currency has been selected.
- [NG-9615] Replaced ‘reseller’ with the actual name of the reseller, in the absorbed fees warning message.
- [NG-9714] The event filter on the order index page, and sales reports, is now sorted by start date ascending (oldest to newest).
- [NG-8775] Removed ?sid, ?currency, ?language from any indexed URLs in search engines
- [NG-8775] Set a canonical URL on all pages, respecting the primary domain, and removing any ‘superfluous’ query string parameters (such as currency or language)
- [NG-9518] Serve the event name, venue, and event date as the default event meta data
- [NG-9518] Serve the event header image as the default event meta image/social sharing image
- [NG-9454] Reduced the size of data payloads when returning lists of roles, across UI surfaces that do not display that roles abilities/permissions.
- [NG-8750] Hiding block label setting in seating plan is now respected outside of the editor as well
- [NG-9477] Back to events box office modal is now ordering events by their start date
- [NG-9507] When a row had no custom seat count set, descending seat labels were calculated incorrectly
- [NG-9032] Disabled autosave in seating plan editor while editing fields
- [NG-9519] The embed script has now been updated and all settings has been resurfaced in the code
💻 Technical
- [NG-9354] [NG-9670] [NG-9664] [NG-9631] [NG-9525] [NG-9511] [NG-9510] [NG-8574] [NG-7728] Various infrastructure upgrades & maintenance to accommodate large event on sales, bot controls & speed concerns.
🧑💻 API
Changes to the API have been documented in the changelog on the API documentation homepage.- [NG-9675] Unable to add to basket in wizard mode with a seating plan and non seated items
- [NG-8290] Updated the order UI to allow setting a reservation name for box office orders, if one wasn’t provided during the sales process.
- [NG-8749] Added plural and singular translations for any ‘limiting’ discount code restrictions.
- [NG-9164] Allow order item fulfilment method to be set without changing the status. Hide refund protect fees from the fulfilment panel.
- [NG-9181] Prevent user impersonation against users disassociated from a company.
- [NG-9188] Added event sale periods to
GET /eventandGET /eventsAPI endpoints. - [NG-9233] Prevented box office users address from being suggested during checkout for a new user.
- [NG-9262] Allow for bundle pricing to be included in the price ranges of event pages.
- [NG-9297] Fixed an error when attempting to purchase account balance top-ups with refund protection enabled. This scenario now allows you to checkout, but does not allow protection.
- [NG-9335] Ensure schedules are always grouped in box office.
- [NG-9436] Sale item fees can now be created when disable processing fees is enabled.
- [NG-9460] Order index now shows fulfilment method name correctly in the displayed filters.
- [NG-9554] Added additional validation for non-zero item quantities when adding to basket.
- [NG-9555] Corrected typo in discount code eligibility settings.
- [NG-9573] Allow global reseller roles to be assigned with invoice permissions regardless of feature enablement.
- [NG-9591] Added additional usage tracking to admin event dashboard.
- [NG-9548] Added ability to unlink social logins from a customers record via admin.
- [NG-9618] Prevent 405 errors sometimes appearing when reaching the front of the waiting room.
- [NG-9657] Fixed ‘undefined’ row labels displaying when re-entering a seating plan area.
- [NG-9268] Fixed incorrect listing of events to which a ticket is assigned across a schedule
- [NG-9343, NG-9344, NG-9345] Added the ability for partners to forcefully reset terms and conditions acceptance for company users. Resets can be isolated to a single company or for all companies within the partner account.
- [NG-9549] Added a new company setting, that allows you to redirect all traffic to the primary vanity domain
- [NG-9600] Fix for live search on events to ensure empty state is displayed
- [NG-9603] Added additional decimal point precision to sales dashboard widgets
- [NG-9618] Fixed an issue causing a 405 error to be displayed to some users once they have reached the front of the queue.
- [NG-9531] Removed capacity bars from event/order fee list items.
- [NG-9527] Ensure links to cross-site redirected event URLs work in event listings
- [NG-9585] Resolved issue where light version of logo wasn’t displaying correctly in shop
- [NG-9594] Resolved a race condition that could cause items to be restocked twice on order expiry
- [NG-9127] Add the ability to manually process a transaction whilst bypassing payment status checks
- [NG-9552] Remove AMEX from the SimplePay logos
- [NG-9560] Fix a placeholder display issue in admin when there are no transactions on an order
- [NG-9499] (INTERNAL) Added the ability to copy all live seating plan URLs in hub
- [NG-8868] Performance optimisations to the shop download tickets page
- [NG-9352] Implemented wait lock for mobile within waiting rooms to prevent device from locking whilst users are waiting in the queue
- [NG-9388] Shop wide performance improvements
- [NG-9475] Further improvements to loading speed of whole seating plan in admin seating plan dashboard
- [NG-9540] Performance improvements to order expiry process
- [NG-9545] Performance optimisations during add-to-basket actions in shop
- [NG-9561] Performance optimisations when loading price band data for seat selector in shop
- [NG-9582] Performance optimisation when looking up holds in box office seat selector
- [NG-7892] [Part 1] Deployed prerequisite changes to improve load times of admin customer index, box office customer search and customer global search
- [NG-9392] Speed improvements to admin global search
- [NG-9513] Fix issue with show items with no sales being ignored on sales reports
- [NG-9538] Added
timeslot_idquery string param (as in shop) to embedded seating plans - [NG-9558] Allowed ‘in basket’ mark to be removed on embedded seating plans (more info in example integration guide)
- [NG-8012] Return venue with event data on box office ajax search
- [NG-8795] Standardised the usage of ‘add-on’ rather than ‘addon’ in English language files
- [NG-8902] Gross sales figure on the admin dashboard no longer includes the usage of account balances (top-ups or gift vouchers), as the original purchase value was included in this figure.
- [NG-9414] Added the ability to configure separate test/live credentials for the Protect Group integration.
- [NG-9442] Prevent reservations from being completed without a customer set
- [NG-9516] Add schedule dates to the events API
- [NG-9534] Significant improvement to event index page load speed when the company contains a lot of child codes setup.
- [NG-9550] Prevent iframe pages from showing an expired error when 3rd party cookies are blocked by the browser
- [NG-8851] Customer refund email will now show more appropriate messaging when refunding to balance
-
[NG-8972] Improved initialization of Google Analytics when embedded within iframe.
- However this is not a robust solution due to the nature of iframes. So we also implemented a postMessage script to allow events to be triggered from within an iframe and passed to the parent. Where the parent can then catch the postMessage and trigger events within GTM.
- [NG-9187] Allow event sale periods to be copied when copying/scheduling an event
- [NG-9270] Toggling sale item customer group restrictions now removes all customer groups from the sale item.
- [NG-9349] Internal tool to bulk import child access codes from CSV
- [NG-9360] Name suffixes are no longer removed when mass updating sale items
- [NG-9362] Fixed a regression where prices that should display excluding tax were inclusive of tax in the items modal when the all-in pricing feature is disabled
-
[NG-9374] Brought es_MX up-to-date with all translation modifications in the base es locale.
[NG-9400] Add new
seatingPlan.embedUrlproperty toGET /eventsandGET /eventAPI endpoints - [NG-9462] Admin homepage searches no longer fire immediately when typing
- [NG-9480] Fix feature flag issue with charity donation permissions
-
[NG-9501] Fixed a bug which caused addition (
+) operations in custom report headers to be treated as multiplication (*) when the report was scheduled
- [NG-9424] Increased bottom padding for all panels
- [NG-9443] Order item fees now render correctly on the order item index
- [NG-9437] Discount code dropdown cutoff in box office checkout
- [NG-9326] Suppress console error and failed rendering of order page, in certain parent/child global login situations
- [NG-9401] Added the options to mark seats in the seating plan as ‘selected’ when plans are embedded
- Performance improvements in navigation speed after viewing or interacting with seating plans in the ticket shop
- [NG-9424] All panels should now scroll correctly
- [NG-9423] Sell buttons on event index now open a new box office session
- [NG-9422] Date pickers now open on click, rather than hover
- [NG-9383] Calendar in Shop now shows June as correctly starting on Sunday
- [NG-9367] Right-to-left languages now align menu items and download buttons correctly
- [NG-9362] Tax exclusive items present correctly in the basket page
- [NG-8939] Made a number of UI improvements following the recent change to how scheduled events are grouped in box office
- [NG-9125] Redeem gift voucher in box office now closes the basket panel
- [NG-9221] Prevent event fees from contributing to event capacity limitations
- [NG-9287] Add to basket overlay does not cover screen when scrolled
- [NG-9328] Fulfilment panel now scrolls correctly
- [NG-9338] Returned custom report actions to reports index
- [NG-9370] Ensure inventory items can be added to discount codes
- [NG-9380 & NG-9378] Improved performance when compiling very large seating plan schemas
- [NG-9389] Custom sale banner now collapses even where an item has no description [NG-9408] Resolved a regression that prevented grouped sale items from displaying correctly on the basket page [NG-9415] Since we now group all scheduled events in box office, we no longer present any dates for grouped schedule items.
- [NG-9353] Removed duplicate access code queries in shop, and improved the ability for these queries to be cached
- [NG-9372] Added safety checks when resaving large whole seating plans to check if full schema json containing all area data exists to prevent overriding area data on save
- [NG-9377] Resolved a performance regression on the
/basketpage that caused increase loading times for larger baskets - [NG-9384] Removed duplicate customer group restriction queries when adding items to basket
- [NG-9296] Removed dependencies on 3rd party packages that are no longer required within our job scheduling infrastructure.
- [NG-8483] Admin view wallet transaction screen now shows the correct customer name, rather than the current user’s name
- [NG-9267] Resolved an issue where customer data imports failed to complete.
- [NG-9288] Resolved an error on seating plan import for large seating plans that were marked as small
- [NG-9289] Resolved an error when previewing event media in admin
- [NG-9290] Returned pricing card to free sale item edit pages
- [NG-9293] Menu item type radio input now responds to clicks as expected
- [NG-9295] Resolved an issue to be able to reset “First seat starts with” values on rows
Below you will find the summary notes for the 40th release of the Nuweb core platform.







Allow event sale periods to be configured for events

Event media cover sheets
Allow ticket downloads to be deferred until a set time before the event



All-in pricing






🚀 New Features
Customer wallet management in Admin- Update the customer page to show the customer’s balance, and add a topup link if the customer doesn’t currently have any wallet transactions

- Where the customer does have wallet transactions, show a view wallet link, and allow switching between currencies

- Improvements to the view wallet page to include more useful information and associated actions to topup, cashout, and adjust the wallet balance.

- Allow wallet balance to be adjusted for corrections and a reference to be recorded for the correction

- Added the ability to issue a cashout of a wallet in admin
- Allow bundle items to be added to an event, which don’t count towards capacities themselves, but can have included items that do count towards capacities

- Show bundled items alongside tickets in the shop

- Add new theme setting to set whether bundles should be displayed above or below other tickets in the items modal

- Improve the way included items are displayed to the customer in the shop

- Allow pre-sale and general sale periods to be configured for an event in admin

- Allow content blocks to only be shown in certain sale periods, or only outside of sale periods

- Introduced “cover sheets” as a new event media type allowing you to define order level printables for use when printing address labels, fulfilment sheets, or venue related information in admin.

- Allow deferred tickets downloads to be enabled at the company level in general settings, and the time before event to be set

- Where deferred downloads are enabled, show the date they can be downloaded on the download page

- Send an email to all event attendees when tickets can be download, which includes a download button

- In admin on the order page, display a warning if the tickets cannot yet be downloaded by the customer

- A new ‘all-in pricing’ feature has been added. Enabling this feature will mean that pricing within the shop is fully inclusive of all fees that will be applied to an item if it is added to the basket.
- This feature ensures further legislative compliance around pricing transparencyacross a range of territories.
- Previewing a customer basket can now be done from the event dashboard


✨ Enhancements
- [NG-8651] Added
can_be_fulfilledas a data import column when importing sale items - this is only visible on companies that have fulfilment enabled. - [NG-8651] Added
can_be_downloadedas a data import column when importing sale items. - [NG-8894] Enhancement convert rolled up fees to be inventory item based
- [NG-9044] When viewing an order placed by a box office user, it’s now possible to set the name of the reserver
- [NG-9044] When setting or changing the purchaser for a box office user, the reserver name for the order is removed
- [NG-9044] When generating event media for a box office user’s purchase, personal data fields for the box office user are no longer surfaced as event media fields
- [NG-8959] Included refund protection terms in customers account
- [NG-9205] Add specific permission for cancelling orders
- [NG-9228] Copying sale item customer group restrictions when copying or scheduling events
📱 Mobile Apps
Access ControlBox Office- [NG-8757] Improved receipt printing
- [NG-9222] Network requests performance monitoring
- [NG-8538] Seat selection from seating plan

- [NG-8556] PoC integration with Masung printer
🎨 User Interface (UI/UX)
- [NG-8544] Introduced a company and event level sales banner that can be customised to present within the items modal

- [NG-7178] Decreased the use of primary colours in card-tabs

- [NG-8859] Orders index page now displays active filters, and has a default filter to improve loading times.

- [NG-7240] Reports index view has been updated to use a more condensed layout, and now allows for searching of custom reports

- [NG-8959] Included refund protection terms in the customer account, where refund protection is purchased during booking.
- [NG-8933] Basket panel now closes on click, rather than mouse movement.
🧹 Housekeeping
- [NG-9184] Removed gift voucher navigation when the feature is disabled
- [NG-9042] Info popovers in box office checkout no longer expand off-screen
- [NG-8800] Removed the ‘Do not create item if already exists’ toggle when assigning a sale item to a schedule
- [NG-9007] Prevent duplicate validation message appearing on ticket transferring
- [NG-9184] Disabled gift voucher navigations in admin where this feature is not enabled
- [NG-9247] Preselect the correct default currency when editing items
- [NG-9031] Admin homepage statistics now reload correctly when switching from a newly created company
- [NG-7635] Disabled gift aid settings where this feature is not enabled
- [NG-8000] Prevented a misalignment when the upload image modal on template blocks appeared behind the content
💻 Technical
- [NG-8417] Upgrades to core backend frameworks
🧑💻 API
Changes to the API have been documented in the changelog on the API documentation homepage.- [NG-8541] Display the reason for a refund transaction within the admin order detail view
- [NG-8656] Prevented season tickets being double counted when generated reserved/sold capacity bars on event index
- [NG-8345] Updated sold/reserved counts on event dashboard to include the correct count of season tickets when ‘tickets include season ticket capacity’ is enabled
- [NG-9238] [NG-9235] Fix an issue preventing seating plans revisions being applied to events
- [NG-8470] Added timeslot start + end date filters to sales & attendance reports
- [NG-8870] Integrate with Worldpay payment gateway
- [NG-9069] Added ‘future’ pre-defined date filters to event sales and attendance reports.
- [NG-9069] Added ‘tomorrow’ as a pre-defined date filter
- [NG-9073] Implement a customisable content security policy to allow control over trusted scripts
- [NG-9076] Use the Hungarian payment method name in Szamlazz invoices
- [NG-9120] Display child charity donations during checkout when purchasing child items from a parent company
- [NG-9156] [NG-9160] [NG-9155] Resolve some inconsistencies when assigning hub users to companies.
- [NG-9209] Added double submission prevention when syncing / assigning seating plans to prevent duplicate seats from being created
- [NG-8933] Basket panel now closes on click, rather than mouseover.
- [NG-8971] Allow gift vouchers to be redeemed in box office without creating a basket
- [NG-9031] Admin dashboards no longer remain on 0 sales when switching from a new company.
- [NG-9054] Removed obsolete warning messages when transferring refund protected items
- [NG-9056] Disallow balance refunds for orders belonging to box office users
- [NG-9063] Implement integrity checks for Hyperpay
- [NG-9085] Resolve an error preventing bundled items showing on the sale item form in admin
- [NG-9104] Ensure blank rows are handled correctly during data imports
- [NG-9109] (INTERNAL) Performance improvements on access control API
- [NG-8944] (INTERNAL) Resolve a performance issue when unexpected errors were triggered
- [NG-9115] (INTERNAL) Limit certain user escalation functionalities in the hub
- [NG-9094] Resolved an issue with the zone entry endpoints on the API, which were incorrectly returning ‘denied’ when re-using season ticket barcodes.
- [NG-8997] Resolved display issue with previously released ‘deeplink’ generator
- [NG-9000] The delivery step can now be skipped when completing reserve to pay later orders in box office.
- [NG-9055] Added a new
billing address linesfield to event media, allowing the billing address to be represented as an address block (separated by new lines) rather than one continuous line of text. - [NG-9055] Added delivery address fields to event media
- [NG-7935] (INTERNAL) Added the ability to enable google pay and apple pay for Hyperpay
- [NG-8947] (INTERNAL) Improved traffic monitoring tooling during system degradation
- [NG-2863] Added all header price fields to mass update checks, when customising an event page
- [NG-8673] Prevent box office users from remaining logged in to the shop when leaving box office
- [NG-8997] Hub users now have the option to generate a ‘deeplink’ to access a given page within admin
- [NG-9011] Added support for searching venue names in the shop that include certain special characters
- [NG-9038] Ordered waiting room dashboard by longest queue, then total users
- [NG-9017] Prevent data capture page from erroring when there is a large schedule
- [NG-7912] Improved presentation of validation errors encountered when sharing items within the checkout.
- [NG-8823] Updated waiting room configuration to enable across all companies.
- [NG-8861] Resolved horizontal scrolling in ticket shop on some smaller devices.
- [NG-8946] Reservation with ‘Unknown’ status can now be manually completed.
- [NG-8954 & NG-8964] Excluded deleted items from the reseller and processing fee columns on orders report.
- [NG-8962] Improvements to admin dashboard load time and responsiveness.
- [NG-8967] Resolved alignment issues when viewing some pages of the shop on mobile devices.
- [NG-8990] Resolved an issue displaying sub-schedule tabs within the event schedule dashboard.
- [NG-9002] Significant performance improvements when displaying schedule / timeslot calendar view within the shop items modal.
- [NG-8516] Ensure event listings update in realtime to reflect any recent changes in event schedule settings.
- [NG-8621] Improve caching around customer groups on event listing and show pages.
- [NG-8632] Schedules can now be removed from discount codes.
- [NG-8694] Ensure the relevant data capture is transferred when switching customer in box office checkouts
- [NG-8722] Added payment methods to the text manager, allowing custom naming of the payment options available within an account.
- [NG-8744] Date pagination in items modal now works as expected in all timezones.
- [NG-8770] The rebooking feature now uses British date format when locale is set to ‘en’.
- [NG-8838] Improved the loading speed of the rebooking page within the customer account.
- [NG-8841] Prevent
move datesallowing box office exclusive items from being selected by ticket shop users (in some situations). - [NG-8869] Removed ‘add to basket’ button until the last tab when upsell wizard is enabled.
- [NG-8906] Correct a typo on fees label.
- [NG-8927] Variable fee min/max values can now be configured for tiered sale item fees.
- [NG-8928] On sale start/end dates no longer show as changed when editing a schedules event sale item.
- [NG-8943] Migrate Stripe MOTO to using Stripe Elements for reduced compliance requirements.
- [NG-8952] Ensure HTML added to text manager for event reminder emails displays correctly.
- [NG-8965] Hot-fix to resolve access control app freezing during online zone scanning.
- [NG-8000] Fixed a compatibility issue with Safari, where a user couldn’t upload a background image to a template block.
- [NG-8433] Allow grouping by schedule on the event index.
- [NG-8730] Applied default date filters to the admin/hub dashboard sales stats for improved loading times.
- [NG-8737] Scoped items, schedules and events by company on discount code applies to.
- [NG-8754] Fixed an issue with the price input removing too many characters when backspacing.
- [NG-8765] Marketing preferences no longer take two clicks to enable.
- [NG-8766] Improved ‘link payment provider’ warning UI.
- [NG-8787] Returned purchase restrictions card to season ticket edit form.
- [NG-8803] Made radio button borders consistent.
- [NG-8830] Made small adjustments to fulfilment fee setup in admin and improved address recommendation UI in shop.
- [NG-8835] Fixed topup item UI in Shop.
- [NG-8836] Improved topup transactions display.
- [NG-8837] Order items index date filter no longer overflows filter column.
- [NG-8857] Event media index no longer show ‘-1’ items.
- [NG-8862] New event block style icons are now visible.
- [NG-8903] Fixed an issue with Google Tag Manager script which sometimes didn’t initialise.
- [NG-8920] Improve performance of applying a discount code with the new item usage limit in place.
- [NG-8938] Updated the naming of
date filtertoorder completion dateon attendance reports. - [NG-8938] Added new
event startandevent enddate filters on attendance reports.
Below you will find the summary notes for the 39th release of the Nuweb core platform.


Event reminder emails [NG-8535]




Event tracking pixels [NG-8531]




🚀 New Features
Improved sale item fees- Configure fee sale items to apply a variable, percentage based fee to orders as well as (or instead of) a fixed amount. The per item / once per order selection will determine how these variable fees are calculated.

- Configuring pricing tiers for fees now allows you to apply different fees depending on the value of an item or order.

- Introducing fee hierarchy control - this control allows you to ensure only the most specific usage of the same fee item is applied. Fees applied to specific sale items will take priority, followed by event level fees, finally applying company level order fees if none of the others exist. This is configurable at the inventory level per fee.
- Optionally restrict fee sale items to only be applied to specific item types

- Add new feature flag to enable the event reminder emails feature
- Allow event reminder emails to be configured at the company level within general settings, to dispatch for all events

- Allow event level overrides to be set for event reminder emails

- When reminder emails are enabled, send an email to each customer who has purchased tickets for an event a set time before the event is due to start
- The emails will include details of all orders that customer made for the event, and links to download the tickets for each order

- The email text can be customised per event and company wide using the text manager

🔌 Integrations
- [NG-8682] Upgraded Stripe Connect & Stripe Elements to the latest API versions.
- [NG-8360] Integrated with Nuvei payment gateway

- New feature flag allows users to enable event level tracking pixels
- By enabling this feature, users are able to configure event tracking pixels using any the following providers: Meta, Spotify, TikTok and X
- All providers support separate settings to specify events, and custom events

✨ Enhancements
- [NG-8546] Allow maximum item uses per discount code to be set
- [NG-7925] Surfaced
this seat is accessibleandthis seat is restricted viewas fields on event media
- [NG-7933] Add kiosk mode feature flag, to allow kiosk pricing to be hidden where not relevant to a company
- [NG-8545] Allow discount codes to be limited to a set number of uses per order
- [NG-8165] Access control now uses the company default headers instead of bokeh images. This change also impacts the API.
- [NG-8145] Added a ‘demo mode’ filter on event index of parent companies, which now defaults to only show live child company events
- [NG-8705] Previously the usage of the cookiesAccepted query string parameter has been limited to when the cookie banner was turned off, now it will be accepted regardless
- [NG-8644] Admin global search will now include named orders and item holder name
- [NG-8543] Allow child ticket shop to be disabled using a limitation on child companies with global login
- [NG-7558 & NG-8679] Box office event filters now allow you to include past events
📱Mobile apps
- Improved battery status updates and warnings on Sunmi D3 mini [NG-8244]
- Improved quantity selector in Box Office [NG-8636]

- Switched to using brand specific base URL for white-label apps [NG-8633]
- Investigated Sunmi D3 mini connection to local Stripe reader (no changes in app were made) [NG-8623]
🎨 User Interface (UI/UX)
- [NG-8147] When managing a parent company, if a page or item belongs to one of the child company, its name will be displayed on given pages. Pages include: events, venues, orders, reservations, customers, discount codes, access codes and inventories at the moment.

- [NG-8146] A new setting has been added to event blocks under Site settings, which allows parent companies to display the event’s company name or logo

- [NG-7972] Text block template block has been added under our Basic category

- [NG-8776] Basket panel now opens on click, rather than mouseover.
🧹 Housekeeping
- [NG-8397] Re-ordered report field groups to ensure most common/frequently used remain at the top of the list, and less common/edge case fields sink to the bottom.
- [NG-8397] Added a number of existing fields to field groups to avoid the majority of fields appearing under ‘Other’
- [NG-8678] Renamed a number of order report fields to better reflect what they display
- [NG-8678] Changed the default ordering of fields on sales and order reports, to aid with the understanding of the monetary breakdown (gross values on the left, net values on the right)
- [NG-7158] The old
cashlessproperties from the/configendpoint on the API have now been removed. ==The old cashless app will no longer function.== - [NG-8678] Added a new
order total netfield to order reports, which shows the value oftotal - refunds - [NG-8742] Fixed wording of item restriction text to use the term
itemsinstead oftickets. - [NG-8666] Added compatibility for seat selector when using the Move dates feature for wider screens when the cursor selection was misaligned from the seating plan
- [NG-8468] Solved an issue when using the tabbed table template block, and cells in the tables don’t update when switching between tabs
- [NG-8833] Card network icons now visible when using offline card payment method.
- [NG-8711] Default company tax band can now be set to null.
- [NG-8762] Reseller default role panel no longer turns blank after submit.
- [NG-8671] Fixed pagination on report export index page.
🧑💻 API
Changes to the API have been documented in the changelog on the API documentation homepage.- [NG-6578] Event seating plan dashboard initial page load optimisation
- [NG-8586] Default
ticket_capacity_to_include_season_ticketsto true on event creation, rather than false; and allow season ticket capacity values to influence ticket capacities on schedule-less events - [NG-8610] Updates to Apple pay certificate file validation
- [NG-8627] Szamlazz cancellation documents will now be sent to the original customer by default when customer details are updated. The customer will receive a new copy of the Szamlazz document
- [NG-8674] Added safeguard to navigation permission checks to avoid potential 500 error during new code deployments
- [NG-8652] Added an internal API endpoint for app version checks
- [NG-8657] Removed the restriction to only show season tickets when setting the ‘relationship to event’ filter as ‘show items that can attend’ within the attendance report
- [NG-8713] Resolve an error when trying to export Szamlazz documents for order that contain a free item
- [NG-8721] Seating plan query optimisation in shop when loading available areas per price band
- [NG-6982] Ensure sharing step doesn’t need to be submitted twice when ticket naming is mandatory
- [NG-8192] Allowed season tickets to be reserved when their space is reserved on another unrelated, unscheduled event that shares the same seating plan.
- [NG-8348] Exclude add-ons and bundled items from max ticket basket capacity that is set on an event
- [NG-8378] Prevent customer modification of name + email during checkout, to avoid accidentally transferring entire accounts to other customers
- [NG-8422] Skip payment gateway is no longer the default for completing reservations
- [NG-8512] Customised text now overrides login ‘Buy now’ button text
- [NG-8562] Included a status filter on the event index page
- [NG-8575] Simplified the process of completing reservations and fixed Attendance page not rendering with incomplete, instant access order items
- [NG-8593] Event images used correctly when theme settings override item images
- [NG-8607 & NG-8616 & NG-8639] Selecting a customer from the suggestions now consistently fires the click event
- [NG-8610] Implemented tooling to validate domains for Apple Pay
- [NG-8628] Ensure date filtering works correctly on “Must be purchased with” sale item search
- [NG-8643] Updated permissions required to allow users to manage global data capture questions
- [NG-8647] Performance improvements to hub global search
- [NG-8662] Seating plan now renders correctly even where no price bands are set
- [NG-7260] Added Malay as a language to the system, with a full suite of initial translations.
- [NG-7671] Fixed an issue which prevents billing address preview from displaying on the payment form, if the billing address has a country that isn’t currently available in that company.
- [NG-8159] Improved how event blocks group handpicked events
- [NG-8248] Respect always show description flag on charity donations
- [NG-8303] Ensure parent events cannot be added to customer groups created in child companies
- [NG-8346] Added a new
orders_report_urlfield to the invoices report in hub, allowing direct access to admin reports for a specific invoice. - [NG-8557] Removed duplicated date labels displaying against recent orders in my account
- [NG-8600] Improved labelling of the customer name/email lookup field in box office
- [NG-8602] Improved GA4 tracking when using GTM
- [NG-8619] Use Item permission check for sale items in global search
- [NG-8559] Updated ordering of options in language selectors to show A-Z
- [NG-8451] English has been renamed to
English (UK)to better reflect the fact there are multiple variants of English within the system. - [NG-8464] Resolve a 403 Forbidden error with certain permission configurations, when editing transaction level notes.
- [NG-8338] Resolved an issue on some pages where index page tabs were being displayed on detail pages
- [NG-8576] Improved speed of seating plan summary allocation report when displaying hold information
- [NG-6559] Updated the list of permitted currencies for Klarna via Stripe to now include
AUD, CAD, CHF, CZK, DKK, NOK, NZD, PLN, and SEKin addition to the already presentGBP, EUR, USD. - [NG-7958] Improved the experience of setting customer details on a box office order.
- [NG-8475] Resolved an issue where non-timeslotted sale items were not rending correctly in admin edit form when selected as ‘must be purchase with’
- [NG-8506] Prevent negative values being used as the number of events to show in event blocks
- [NG-8578] Crop article thumbnails to a dimension that scales to the size of the blocks, to prevent digital artwork looking pixelated from using the wrong scale. ==Any existing thumbnails will not be regenerated - any impacted users should re-upload their original high quality images.==
- [NG-8581] Update to guest list sharing options
- [NG-8590] Prevented unnecessary data being requested from the Google Places API
- [NG-7541] Resolved an intermittent pagination related error in a small number of API calls
- [NG-8552] Prevent exception when calling API with X-NU-COMPANY-ID header + no auth user
Below you will find the summary notes for the 38th release of the Nuweb core platform.
🔌 Integrations
- Our direct integration with the Department of Economy and Tourism (DET) in Dubai is now live, with our production servers whitelisted for access to the API [Read more]
✨ Enhancements
- [NG-7749] Created net and gross variations of the new ‘sale item fees’ report columns
- [NG-8362] Improve filenames of exported report files to include report title
- [NG-8220] Feedback message for adding to customer groups
- [NG-7780] Allow charity donations to be purchased alongside items that require approval
- [NG-7993] Stop charity donations step showing in box office instant checkout
- [NG-8120] Allow configuration of the ‘season ticket’ badge in the shop, via the text manager.
- [NG-8148] Rename ‘was pricing’ to ‘guide price’.
- [NG-8434] Removed ‘at’ prepositions in date strings (e.g “Created at Mon 21st Feb 2024”) in favour of more natural language.
- [NG-8144] Improved the wording of sorting options, to remove unclear “DESC” and “ASC” suffixes in favour of more natural language.
🎨 User Interface (UI/UX)
- [NG-8128] Streamlined event media creation process to match other parts of the system

- [NG-8344] Updated sales dashboards by removing some visual noise, and unifying labels across the system
🧹 Housekeeping
- [NG-8412] Ensure box office permissions are company scoped
- [NG-8082] Using the lasso tool in manage events will exclude deleted seats from selection
- [NG-8230] Improved time slot filtering in shop by unifying time formatting, applying time filtering to all schedules in modal
- [NG-8205] Yes/No Data capture field values getting stuck in multi event purchase process has been rectified
- [NG-8307] When adding objects to a seating plan area, they will get added to the top left of the area’s positioning, instead of the viewport + rendering fixes
- [NG-8347] When using auto selecting highest / lowest ticket on seating plans, if there are more than 1 tickets sharing the same price, select the first in their sorted order
- [NG-8519] Fixed visual glitch in box office, when a general admission was added to basket, their current stock displayed incorrectly in seating plan
- [NG-8527] Box office event listing capacity bar reactivity fix
- [NG-6654] Flag payment status as ‘Unknown’ where Barclays ePDQ reports duplicate order IDs, preventing further payment processing
- [NG-8504] Corrected the country label for Taiwan (across all languages)
