Merchant tools
Set up your whole team
from one spreadsheet.
Thirty shops, two hundred terminals, two hundred staff — you don't have to type them in one at a time. Fill in our template, upload it, and Safewire checks every line before anything is saved. Nothing changes until you press Confirm.
Before you start
Set up your tax profile
Every shop needs a tax profile. Create at least one in Settings → Tax first — the spreadsheet refers to it by name.
Sheet 1
Shops & locations
Your physical places. Terminals and staff are linked to these by name, so name them the way your team already talks about them.
Sheet 2
Terminals
Each payment device. Give it a name and, if it lives in one shop, the shop's name. Leave the shop blank for a device that moves around.
Sheet 3
People
Everyone who works for you. Each row becomes an invitation — they join when they accept it on their phone.
Upload in this order, or all three sheets at once in one file — Safewire processes them top to bottom.
The template
Three sheets. That's the whole file.
Sheet · Locations
One row per shop
The address is what puts you on the map for customers — please fill in every part of it.
nameWhat you call this shoprequiredstreet_addressNumber and streetrequiredaddress_line_2Unit, floor, buildingoptionalcityrequiredstate_provinceState, province or regionrequiredpostal_coderequiredcountryTwo-letter code, e.g. CA, SX, NLrequiredtax_profileName of a tax profile you already createdrequiredphoneShop phone with country codeoptionalshow_in_directoryyes / no — list it for customersoptional
Sheet · Terminals
One row per device
Short and simple. Setup codes are created for you afterwards — they're never in the spreadsheet.
namee.g. “Front till”, “Bar 2”requiredlocationShop name from Sheet 1 — blank = roams between shopsoptionaltax_profileOnly if different from the shop'soptional
Sheet · Employees
One row per person
Set their role and permissions here so you don't have to come back and edit each person later.
emailWhere the invitation goesrequiredfull_nameoptionalrolepos_employee · location_manager · admin_assistant · staffrequiredpositionJob title, e.g. “Barista”optionallocationsShop names, separated by ;optionalterminalsTerminal names they may use, separated by ;optionalcollect_tipsyes / nodefault nocash_in_remitMay take cash and send digital fundsdefault nocash_outMay pay out cashdefault yes
What happens when you upload
Checked first. Saved only when you say so.
Check
Upload the file. Safewire reads every row and shows you the sheet back with any problems marked on the exact cell — a missing postcode, a shop name that doesn't match, a role spelt wrong.
Nothing is saved yet. Fix the file and upload again as many times as you like.
Confirm
When the file is clean, Confirm lights up. Everything goes in together, or nothing does — you'll never end up with half a setup.
Uploading again later? Safewire matches shops and terminals by name and shows you exactly what would change before it changes anything. Imports never delete.
Your people join
Each person gets an email invitation (and an in-app notification if they're already on Safewire). They install the Safewire wallet, open the link, and accept.
Until they do, they show as Pending on your Team page. Once accepted, their shops, terminals and permissions from your sheet are already in place.
Already have the data?
Your data lives in a different system?
Most businesses already have this information somewhere — a staff rota, an HR export, a device list from a previous payments provider. It's rarely in our column layout, and we don't expect you to retype it.
The fastest route: export what you have, then ask the AI tool you already use (ChatGPT, Claude, Copilot — any of them) to reshape it into our template. Copy the prompt, paste it in along with your export, check the result, and upload. The Check step will catch anything it got wrong.
Prefer to do it by hand? Download the template from the upload page — it has the three sheets, the column headings and one example row each.
Copy this prompt
I'm onboarding onto the Safewire payment platform. Reshape the attached data into three tables with exactly these column headings: Locations: name, street_address, address_line_2, city, state_province, postal_code, country, tax_profile, phone, show_in_directory Terminals: name, location, tax_profile Employees: email, full_name, role, position, locations, terminals, collect_tips, cash_in_remit, cash_out Rules: country is a 2-letter code; yes/no for the yes-no columns; separate multiple shop or terminal names with ";"; role must be one of pos_employee, location_manager, admin_assistant, staff. Leave a cell blank if you don't know — don't guess. Give me one Excel file with three sheets named Locations, Terminals, Employees, and a single header row on each.
How it protects you
Nothing saves until you confirm
Checking is free and repeatable. Your account doesn't change until the file is clean and you press Confirm.
All or nothing
If one row fails on the way in, the whole upload is undone and you see which row. No half-finished setups.
People join on their own phone
A spreadsheet can invite someone — only they can accept. Each person sets up their own Safewire wallet; nobody else ever holds their keys.
You stay in control
Safewire staff can't upload on your behalf. If you'd like help, we'll walk through it with you, logged in as you, while you watch.
Accepted files: .xlsx with sheets named Locations / Terminals / Employees, or one .csv per sheet. One header row, no merged cells, up to 2,000 rows per sheet. Extra columns of your own are ignored. Up to 20 shops can be listed in the public directory. Invitations expire after 7 days and can be re-sent from the Team page.
Not on Safewire yet?
See exactly what you'll need to onboard — by country and business type.