Design demo. Every screen here is a static mockup — nothing is connected to a payment system, and no control does anything. Names, balances, account numbers and references are invented for review. The rate shown (¥1 ≈ ₵1.76) is illustrative, not quoted.
Corridor 03 · 15 screens
A Shenzhen construction contractor pays 42 Ghanaian staff on the 15th of every month. One approver authorises yuan, thirty-eight wallets receive cedi, and each credit settles on its own. These are the screens that hold that together.
A Chinese company registering to pay staff in another jurisdiction. Four screens covering the registry identity, a second factor, the compliance checks that run at different speeds, and the two ends of the corridor being configured as one decision.
A unified social credit code is eighteen characters of Chinese company registry that no one in Accra can check by eye. It is captured first because the entire verification chain hangs off it — and so is the Chinese-character name, because the registry answers to that, not to the English trading name.
The same credential that opens the portal also authorises the month's payroll debit. A second factor here is cheaper than any control further down the flow, because by the time the approval screen appears the number on it is already trusted.
Four checks with different owners and very different clock speeds — a registry lookup answers in seconds, a Ghana Revenue PAYE number takes days. Collapsing them into a single pending bar hides which one is actually holding the account up, which is the only thing the contractor wants to know.
The debit side and the credit side are configured on one screen because they are one decision: yuan leaves ICBC Shenzhen, cedi arrives in eCedi wallets, and the payroll day fixes when the rate gets quoted. Split across separate settings pages, a corridor ends up half configured and nobody can tell.
Forty-two people, thirty-eight of whom can currently be paid. These screens exist to make the gap between those two numbers visible before the 15th rather than on it.
| Batch | Period | Staff | Payout | Status |
|---|---|---|---|---|
| SB-2610-0043 | September 2026 | 38 | ₵176,400.00 | Draft |
| SB-2609-0042 CIPS20260915004388 | August 2026 | 42 | ₵181,300.00 | Paid |
| SB-2608-0041 | July 2026 | 41 | ₵174,950.00 | Paid |
The four figures a payroll manager checks before the 15th: headcount, the date, what last month cost, and whether the funding account covers it. Needs-attention sits directly underneath because four employees without a wallet is a problem with a deadline, not a notification.
| Employee | Role | Ghana Card | Monthly | Wallet readiness |
|---|---|---|---|---|
| Kwame Mensah | Site foreman | GHA-442190834-1 | ₵6,800.00 | Ready · EC-GH-88214470 |
| Akosua Darko | QS assistant | GHA-773028441-5 | ₵4,200.00 | Name check |
| Yaw Owusu | Plant operator | GHA-118840227-3 | ₵5,100.00 | Ready |
| Abena Asante | Storekeeper | GHA-509127730-8 | ₵3,900.00 | Ready |
| Kofi Anane | Driver | Not linked | ₵3,400.00 | No wallet · cannot be paid |
Wallet readiness is a column, not something you discover by opening a record. It decides whether a person can be in a batch at all, so it has to be legible across all forty-two at once — and the list sorts on it, because on payroll day the question is who is missing, not who is fine.
The Ghana Card number is what binds an employee record to a wallet, so the lookup runs on entry and shows the name that wallet is registered under. A transposed digit surfaces here, in front of someone who knows the employee, instead of on the 15th as a failed credit.
| Paid | Period | Batch | Amount | Status |
|---|---|---|---|---|
| 15 Sep 2026 | August 2026 | SB-2609-0042 | ₵6,800.00 | Paid |
| 15 Aug 2026 | July 2026 | SB-2608-0041 | ₵6,800.00 | Paid |
| 15 Jul 2026 | June 2026 | SB-2607-0040 | ₵6,500.00 | Paid |
Employment terms, wallet binding and payment history on one page, because every support question about an employee is some combination of the three: was he paid, into what, and for which month. The batch reference in the history is the thread back to the run that produced it.
| Row | Name in file | Finding | Group |
|---|---|---|---|
| 12 | Akosua Darko | Wallet is registered as A. Darko, not Akosua Darko | Needs review |
| 19 | Kofi Anane | No eCedi wallet linked to this Ghana Card | Needs review |
| 24 | (blank) | Ghana Card malformed — 10 characters, expected 15 | Rejected |
| 31 | Yaw Owusu | Duplicate Ghana Card — already on payroll as GH-0119 | Rejected |
A forty-two row file is never uniformly good. Splitting the result into ready, needs review and rejected lets the thirty-four clean rows import while the eight problem rows are chased down — an all-or-nothing import error holds up a payroll because of a typo in row 24.
September salaries, batch SB-2610-0043. Selection, approval in two currencies by two people, a counted run, and a result in which one of thirty-eight credits did not land.
| In | Employee | Amount | Note |
|---|---|---|---|
| ✓ | Kwame Mensah | ₵6,800.00 | Wallet EC-GH-88214470 |
| ✓ | Akosua Darko | ₵4,200.00 | Name check confirmed 07 Oct |
| ✓ | Abena Asante | ₵3,900.00 | Wallet EC-GH-51907724 |
| — | Kofi Anane | ₵3,400.00 | Excluded · no wallet linked |
Excluded employees stay on the screen with the reason they were dropped. A payroll manager has to see who is about to miss a payday while there is still time to fix it — a staff count that quietly falls from 42 to 38 is precisely what nobody notices until the complaint arrives.
The approver sits in Shenzhen and authorises yuan; thirty-eight people in Ghana receive cedi. Both sides appear together with the held rate between them, because an approval screen showing only ¥100,607.00 asks someone to vouch for a number they have no way to check.
The debit and the conversion are single events that either happened or did not. The credits are thirty-eight separate ones, so progress is counted rather than spun, and the screen keeps the two kinds of step visually apart. Closing the page does not stop the run.
| Employee | Amount | Reason | Action |
|---|---|---|---|
| Abena Asante Storekeeper · EC-GH-51907724 |
₵3,900.00 | Wallet frozen Compliance hold at the wallet provider · opened 14 Oct |
Retry this payment |
Thirty-seven credits are final and one is not, so the retry is attached to the failed row rather than to the batch. The returned ₵3,900.00 is stated plainly because the alternative — an operator re-running the whole batch to fix one person — is how thirty-seven people get paid twice.
The same payment, seen by Kwame Mensah in Ghana. He has no view of the batch, the approvers or the yuan debit — only the cedi that arrived, who sent it and which month it covers.
The employee's first two questions are whether the money is there and how much. The employer's name and the pay period sit directly beneath, because a worker holding two contracts needs to know which job just paid him, and for which month.
One reference, shared by both ends of a two-country corridor. When a payment is queried — by the worker in Accra or the finance office in Shenzhen — both must be able to name the same transfer, so the CIPS reference appears in full rather than abbreviated.
Design language · this corridor
Thirty-eight credits succeed or fail independently, so progress is counted and a failure retries on its own row. Retrying the whole batch to fix one employee is how duplicate salaries happen.
The yuan debit and the cedi payout appear on the same approval screen with the held rate between them, and a second approver is required before any of it moves.
Wallet readiness is a list column, and the four employees it excludes stay visible with their reason all the way into the batch. A headcount that falls on its own is the failure nobody sees.