Payment Gateway 6.1.7
2 August 2026
This release has upgrade notes. Read them before updating — they describe behaviour changes that need your attention.
Payment Gateway v6.1.7
Release Date: August 2, 2026 Tags: ADMIN, DASHBOARD, PAYOUTS, SLA, MERCHANTS, MONITORING, CURRENCY, RELIABILITY, LAYOUT, TRANSLATIONS, SERVER RENDERING, UI
Overview
Version 6.1.7 is a rebuild of the gateway admin dashboard, and it starts from what an operator actually opens that page to find out: what is waiting on them, and how long it has been waiting. Merchants take money through this platform and the platform owes it back to them, so every hour a payout sits in the queue is an hour a business is out of pocket — and until now that fact was a single number in the third of four tiles. Four payouts queued this morning and four queued nine days ago are the same number and completely different mornings.
The pending payout queue is now the headline, split into on-time, due-soon and overdue, and aged against the platform's shared service-level budget for money leaving.
Rewriting the statistics behind it surfaced two figures that were wrong. Net volume was a single sum across every completed payment regardless of currency, printed with a hardcoded dollar sign. And when the statistics request failed, the page did not say so: it dropped the error, cleared its spinner, and rendered a full console of zeros.
Two figures you have been reading were wrong, and one panel does not follow the Live/Test switch — read Upgrade Notes before comparing anything against last week.
Requires Core v6.6.1.
Update Instructions
pnpm updatorThen restart the backend so the statistics endpoint picks up its new aggregates.
pm2 restart allNothing else is needed. There is no database work, no new setting, no new scheduled task and no permission to grant — the dashboard reads the same tables it always did, and the service-level budget it measures payouts against is the one the platform already uses for withdrawals. The first load after updating is the new dashboard.
Upgrade Notes
Net volume and pending payout totals were labelled in a currency they may not be in
The dashboard's Net Volume tile was one sum over every completed payment on the installation, whatever currency each was taken in, printed with a dollar sign written into the page. Pending payouts was the same shape. Merchants choose their own settlement currency, so on any installation with more than one in play those two headline figures were a mixed-denomination total wearing a unit it had not earned.
- Changed: completed volume, fees and payment counts now arrive broken out by currency, and so do pending payout totals. When every row is in one currency the tile names it. When the rows span several, the figure is shown bare and the caption says how many currencies went into it — because an unlabelled number is merely unlabelled, while a wrongly labelled one is a lie with two decimal places on it.
A dashboard full of zeros may have been a failed request, not a quiet day
The page asked for its figures, and if the request failed it did nothing with the failure. The spinner cleared on schedule and the dashboard rendered four zero tiles and an empty recent-payments list, with no error, no banner and no indication that anything had gone wrong.
- Changed: a failed refresh now keeps the last good figures on screen, stamps them with the time they were computed, and says the refresh failed. A failure with nothing loaded yet replaces the page with the error and a retry, rather than a console of zeros the page cannot support.
The payout queue does not follow the Live/Test switch
- Changed: the payout age meter and the pending payout tile count every pending payout, in both modes. The merchant, payment and volume tiles and the recent-payments list do follow the switch, and the mode is now stated in plain text above the page title so it is visible in a screenshot.
Added
The payout queue is the first thing on the page, and it now has an age
- Added a queue meter above the page title, splitting pending payouts into on time, due soon and overdue, with the count and the amount in each band. The bands are weighted by number of payouts, not by amount, and the label says so — each payout is one decision somebody has to make, and weighting by money would draw nine overdue small payouts as a hairline beside one fresh large one.
- Added the age of the oldest waiting payout, which is the fact a count cannot carry and the difference between a queue and a backlog.
- Added the budget it is all measured against: the platform's shared service-level allowance for money leaving, which is 7 days, with due soon starting at half of it. The budget is sent from the server with the figures rather than restated in the page, so this meter and any age shown on the payout queue itself are computed from one number.
- Added a Pending payout value tile as the first of the four, replacing merchant count in that position. It only takes on a warning colour when a payout has actually breached the budget — an overdue payout is a problem, not a category.
Merchants whose checkout has started failing
- Added a panel comparing each merchant's payment success rate over the last 7 days against the 7 before, listing the five that have fallen furthest. Each row shows the before and after rates, the drop in percentage points, and how many decided payments it was measured over, and links straight to that merchant.
- Added a floor of 10 decided payments in both windows before a merchant is compared at all, and a threshold of 5 percentage points before a decline is reported. Without the floor, a merchant that took two payments last week and one this week swings from 100% to 0% and out-ranks a real regression on a merchant doing thousands.
The figures now say where they came from and when
- Added a provenance line above the title: whether these figures are Live or Test, the time they were computed, and the payout budget the meter below is measured against. The mode was previously visible only as a switch in the site header, so a screenshot of this page could not be read — test volume and live volume looked identical.
- Added a 60-second refresh that runs only while the tab is in front, plus a manual refresh, and an indicator that distinguishes live, updating and stale. A green pulse beside a clock that has stopped advancing is the easy lie to ship, so the indicator turns amber the moment a refresh fails.
Volume broken out by currency
- Added completed volume, fees and payment count per currency to the statistics, and pending payout count and amount per currency. This is what lets the page decide whether it is entitled to print a currency symbol at all — see Upgrade Notes.
Changed
The dashboard sits on the platform's standard page frame
- Changed the dashboard onto the shared page frame, so its gutters, its heading and its spacing match the rest of the admin instead of being written into this one page.
- Changed all four summary tiles to link through to the rows that produced them — merchants, payments and the payout queue.
- Removed the Quick Links row. Three cards pointing at Merchants, Payments and Payouts, one row below four tiles that now link to the same three places, directly beneath a navigation bar that lists them.
- Changed the wallet-type chip on each payment from status colours — green for fiat, amber for spot, accent for ecosystem — to a neutral chip with its own icon. On a page where amber has to mean "this payout is nine days late", spending it on a category is what makes the warning stop working.
The licence check no longer blanks the header and the footer
- Changed the licence check to cover the page content only. It previously wrapped the entire back office including the site header, the navigation and the footer, so a licence check still in flight replaced every one of them with a single centred spinner.
Loading is a state of these pages rather than a replacement for them
- Changed the merchant detail and payment detail screens so the page renders once and only the values wait. Their pending views were a different page: a bare container against the real one, so on arrival the whole page dropped roughly 80px and gained its side gutters before a single figure had been compared. Inside that, six hand-typed heights stood in for a heading block and four cards whose height is set by their contents.
- Changed every waiting figure on those pages to a placeholder measured from the text it stands in for, rather than a default. A merchant's per-transaction limit shown as
$0reads as a merchant blocked from trading; a status chip defaulting to a verdict paints one on a record nobody has read yet. - Changed the wallet-types panel in gateway settings so its explanatory note stays on screen while the currency list loads. The pending state dropped it along with the list, so the panel was about 288px while waiting and roughly 460px once resolved.
- Changed the recent-payments list, which is capped at 10 rows, to hold its shape while it loads instead of collapsing and then growing back.
Figures are formatted the same way on the server and in the browser
- Changed every number and date on the dashboard from the runtime's default locale to a fixed one. A bare locale format takes its grouping separator from wherever it runs, so the same figure was
50,000in one place and50.000in another — which stops being cosmetic the moment a page is prefetched.
Fixed
The dashboard showed a full console of zeros when it could not read its figures
- Fixed the statistics request dropping its failure. The page tested for an error, did nothing with it, cleared its loading state on schedule and rendered four zero tiles and an empty payment list — every one of them a claim it could not support. A failed refresh now keeps the last good figures and says the refresh failed; a failure with nothing loaded takes the page and offers a retry. See Upgrade Notes.
Net volume and pending payouts printed a dollar sign over mixed currencies
- Fixed the two money tiles carrying a hardcoded
$. Volume was one sum across every completed payment whatever currency it was taken in, and merchants set their own. The figure is now shown with a unit only when the underlying rows are all in one currency, and with a count of currencies when they are not. See Upgrade Notes.
The whole gateway back office rendered nothing on the server
- Fixed the layer that carries the Live/Test switch withholding every page beneath it until the browser had mounted. It wrapped the entire admin gateway area, so the server sent an empty document for every route under it and the whole back office — header, navigation, content and footer — arrived at once during hydration.
The footer moved on every gateway admin page as its content arrived
- Fixed the page's main area having no layout parent, so its instruction to fill the viewport did nothing and the footer sat immediately beneath whatever height the content happened to settle at. On a page shorter than the viewport the footer travelled 185.5px as the data resolved — measured layout movement of 0.0169, and the last admin extension route still shifting.
The dashboard was in English in every language
- Fixed payment status labels — Completed, Pending, Processing, Failed, Cancelled, Expired, Refunded and Partially Refunded — being English text written into the page, along with the words Merchant, Customer and Guest on every row and relative times reading "Just now" and "5m ago". All of them are translated across the platform's 90 languages now.
The checkout design preview could not show its signed-out design
- Fixed every sample state in the checkout design preview missing the flag that separates "signed out" from "not asked yet". Each design renders its waiting treatment on the latter, so the signed-out layout could not be inspected at all.