Linkly setup
U9 CITY POS 0.3.15 · Windows sandbox candidate. Accreditation pending.
Requirements
- Windows 64-bit, internet access, a Linkly Cloud sandbox account and a dedicated Virtual Pinpad. Use credentials issued or approved by Linkly for your review.
- An HTTPS tunnel on the reviewing PC. You can use Cloudflare Quick Tunnel or your organisation's approved reverse proxy. No U9 tunnel account, domain or existing pairing files are needed.
- The callback must be publicly reachable over HTTPS on port 443, resolve to public IPv4 addresses and forward to
http://127.0.0.1:4176. Preserve the public Host header. Browser login or an Access challenge must not block the callback.
Install and pair
- Extract the entire ZIP and open U9 CITY POS.exe. Create your own POS owner account and sign in. There is no default password; the owner account is separate from your Linkly account.
- Install the Linkly test harness with Offline Development. Open Virtual Pinpad. Use a dedicated test terminal, not a live bank terminal or one paired to another POS.
- Enable Cloud Mode if needed: FUNC → 7410 → OK → 0 → 1 → OK. Confirm reconnect if shown, then CANCEL. For a new pairing, use FUNC → 8880 → OK → OK to obtain the code. Refer to the Linkly development guide if the prompts differ.
- In the desktop menu, choose U9 CITY POS → Linkly settings. Enter your Cloud username, password and pairing code. Confirm the dedicated terminal and select Pair and save once.
- After Pairing saved, close and reopen the app. Sign in and check that settings show Paired. Pairing does not send a transaction.
The pairing key is encrypted for the current Windows user. Cloud login credentials are not saved.
Connect notifications
- Download
cloudflaredfrom the official Cloudflare download page, or use your approved tunnel tool. - For a Quick Tunnel, run the following in a terminal and keep it open:
cloudflared tunnel --url http://127.0.0.1:4176
- Copy the HTTPS address printed by cloudflared and append
/linkly/notifications. Example:https://assigned-name.trycloudflare.com/linkly/notifications. Use your assigned address, not this example. - In Linkly settings → Notification connection, enter that URL, confirm its destination and select Save address. Close and reopen U9 CITY POS, leaving the tunnel running.
- Sign in, open Linkly settings and select Check connection. Continue only when it shows Public route verified. This check sends no payment or pairing credentials.
Forward only port 4176, never the POS web address or its data folder. The receiver exposes the notification path, not POS or account controls. Ordinary callbacks still require their own authentication.
A Quick Tunnel needs no Cloudflare account, but is temporary and intended for testing. Its address changes when restarted. Resolve pending transactions before changing the saved URL. A named tunnel with a stable URL is preferable for longer reviews.
Run a test
- Create a test menu item and order in the POS. Leave Virtual Pinpad at READY.
- In Linkly settings, choose the test type and amount. Confirm and select Authorize. The app checks your public route again. Authorize does not send the transaction.
- Return to the order and submit using its Linkly payment control. Do not use simulated-payment controls as Linkly evidence.
- Complete the Virtual Pinpad prompts. For a signature request, review and accept or reject it in the POS. Confirm the final result on the original order; terminal READY alone is not proof of payment.
Each authorization permits one transaction of the selected type and amount, up to AUD 100.00, and expires after 15 minutes or app closure. Refunds must reference a successful payment in this profile. Receipts are electronic; physical printing is disabled.
Restart and troubleshooting
- Two-hour session: the receiver stops after two hours. Reopen the app and check the connection before the next test. Do not start a test near the session deadline. Close the tunnel when finished.
- Connection not verified: check the saved hostname, tunnel, HTTPS certificate, path and port. The probe requires a round trip to this app; another server returning HTTP 200 is insufficient. The app does not automatically install or restart the tunnel.
- Pending or unknown payment: query the original transaction. Do not re-pair, change its connection or send a replacement charge. Recovery remains available without authorizing another payment.
- Address change refused: finish or resolve the current transaction and let any unused authorization expire. Then save the new address and restart.
- Port already in use: use one candidate instance per PC. Do not stop an unrelated service to free the port.
- Pairing result unknown or vendor review required: keep the profile and ask support to review it before any retry. Do not delete pairing files.
- Upgrade: close the old app, back up
%LOCALAPPDATA%/U9-CITY-Linkly-Accreditation, and retain that profile. Do not copy it to another PC or Windows account. Version 0.3.15 requires an explicitly saved notification address; it will not authorize new transactions using the previous built-in address alone.
Support
admin@u9city.com. Include the version, time and error text. Exclude passwords, pairing codes, PINs, card details and the complete profile folder.