# WeSelling — complete documentation

> Every documentation page, in one file, for agents answering questions
> about how to use WeSelling.

Source: https://weselling.store/docs

WeSelling is a multi-tenant commerce platform. Each business trades under
its own subdomain with its own catalogue, pricing and policies. Nothing
below describes any individual business's products or terms.

---

## Getting started

> Your first hour on WeSelling — from signing up to taking a real order.

Source: https://weselling.store/docs/getting-started

WeSelling gives a business a till, a stockroom, a public shop and a set of books, all reading from the same data. This page is the shortest path from a new account to a first real order.

### What you get

Your business lives on its own web address — `yourname.weselling.store` — and everything at that address is yours. Your catalogue, your prices, your policies, your customers. Other businesses on the platform cannot see any of it, and your customers never see WeSelling branding.

### The first hour

1. **Create the business** — [Sign up](https://weselling.store/) and pick your web address. Choose carefully — it goes on receipts, QR codes and shop signage, and changing it later orphans every link that was already printed.
2. **Set up your profile** — Go to [Settings](https://weselling.store/settings) and fill in your trading name, currency and timezone. The currency shapes every price in the app, so set it before you add stock.
3. **Add your branches** — [Settings → Branches](https://weselling.store/settings/branches). Even a single-location business has one — headquarters. Stock, sales and staff all belong to a branch.
4. **Turn on what you need** — [Settings → Features](https://weselling.store/settings/features). Services, reservations, table ordering, events and taxes are all off by default. Turn on only what you sell — an unused module is a menu item that confuses your staff.
5. **Add your stock** — [Inventory](https://weselling.store/inventory). Add products with a cost price, a selling price and a quantity. Mark the ones you want customers to see as storefront-visible.
6. **Set up your shop** — [Settings → Storefront](https://weselling.store/settings/storefront). Choose a storefront pack, upload a header image, write your tagline, set your brand colour.
7. **Take money** — [Settings → Integrations](https://weselling.store/settings/integrations) for card payments, or [Settings → Bank accounts](https://weselling.store/settings/bank-accounts) for transfers. You can also sell entirely on cash and record it at the till.
8. **Add your staff** — [Staff](https://weselling.store/staff). Give each person a role. Roles decide what they can see and do — see [Staff & permissions](https://weselling.store/docs/staff-and-permissions).

### The order things have to happen in

Most of the setup can be done in any order. Three things cannot, because later steps depend on them:

1. **Currency before prices.** Changing currency later does not convert anything already entered.
2. **Branches before staff.** Every staff member belongs to a branch.
3. **Stock before the shop.** A storefront with an empty catalogue is worse than no storefront, because it is indexable and it is yours.

### Two ideas worth understanding early

#### Stock only moves through movements

You never edit a quantity directly. Adding, removing, selling and transferring stock all create a **stock movement** — an entry in a ledger that only ever grows. The quantity you see is the sum of that ledger.

This is why you can always answer "where did those twelve units go", and why two people counting the same shelf at the same time cannot corrupt the number.

#### Nothing is really deleted

Business records are soft-deleted: hidden from lists, kept in the database, still counted in the history they belong to. A sale from March is still in March's numbers after you remove it from view.

> This is deliberate. A system where a mistake can erase a month's takings is a system nobody can be held to.

### Where to go next

- [Setting up your storefront](https://weselling.store/docs/storefront) — the public shop your customers see
- [Managing stock](https://weselling.store/docs/inventory) — items, movements, transfers, requisitions
- [Selling](https://weselling.store/docs/selling) — the till, the wallet, close of business
- [Taking payments](https://weselling.store/docs/payments) — cards, transfers, crypto
- [Staff & permissions](https://weselling.store/docs/staff-and-permissions) — who can do what

---

## Your storefront

> The public shop at your own web address — layout, branding, SEO and the till.

Source: https://weselling.store/docs/storefront

Every business on WeSelling gets a public shop at its own address. It shows your catalogue, takes orders, accepts payment and answers your customers' questions — and it is the same data your till and your stockroom read, so nothing has to be kept in step by hand.

### Turning it on and off

The shop is **on by default**. A workshop, a wholesaler or a back-office operation can turn it off in [Settings → Storefront](https://weselling.store/settings/storefront) — an empty storefront sitting on your address is worse than none, because search engines will index it.

### Choosing a storefront pack

A **pack** decides the shape of your shop: what appears on the page and in what order. Seven ship with the platform, free to every shop. See [Storefront packs](https://weselling.store/docs/storefront-packs) for what each one suits.

Every pack sells the same way, with the same cart and the same checkout. Changing pack changes how your shop looks, never how it works.

![Storefront settings, showing the layout picker, typeface options and brand colours](https://weselling.store/docs/shots/settings-storefront.png)
*Everything about how your shop looks lives on this one screen.*

### Branding

| Setting | What it changes |
| --- | --- |
| Brand colour | Accents through the shop, the installed app's theme, the splash screen |
| Accent colour | The second stop of the shop's gradient |
| Logo | The shop header, receipts, gift cards and payment pages |
| Typeface | The whole shop. Six choices, all system fonts |
| Header images | The hero slideshow — images or video, with a call to action per slide |
| Tagline | The line under your header |

> Typefaces are system fonts only. A per-shop webfont would be a blocking request to a third party on every page of your shop, which costs you search ranking and sends your customers' addresses to that third party on your behalf.

### What appears in the shop

An item shows in your shop when it is active and marked storefront-visible in [Inventory](https://weselling.store/inventory). Everything else — internal supplies, staff equipment — stays private.

You can also hide whole sections. A service-only business can turn Products off entirely; any shop can hide its header, tagline or featured rail.

### The till

Signed-in staff see the same shop with a **POS mode** button. That turns the storefront into a scan-first till: scan a barcode, it goes in the basket, take payment. It is the same catalogue and the same cart your customers use, so there is no second system to keep in step.

Barcodes are staff-only. They never reach an anonymous visitor's page source. If your business has no scanner — a dealership sells cars, it does not scan them — turn the whole barcode surface off in Settings → Storefront.

### Being found

[Settings → SEO](https://weselling.store/settings/seo) controls your page title, description, social preview image and search-engine verification. The shop also publishes:

- **Structured data** — puts your address, opening hours, live prices and in-stock status into a search result rather than a bare blue link
- **A sitemap** — so search engines find every product page
- `llms.txt` — your catalogue and policies written for AI assistants, at your address plus /llms.txt

> The llms.txt matters more each month. It is how an AI assistant answering "who sells this near me" reads your shop without having to parse a dozen pages.

### Answering customers

- **FAQ** — your own help centre, grouped, edited in Settings → FAQ
- **Enquiry form** — sits under the FAQ, lands in Enquiries
- **WhatsApp button** — a floating button to your business number
- **Reviews** — verified buyers only, so a rating means a purchase happened

### Your own analytics

[Settings → Storefront](https://weselling.store/settings/storefront) takes your own Google Analytics, pixel or chat widget. WeSelling does not charge for the integration and does not pick the vendor.

> **Scripts run on your own shop** Anything you paste executes on your customers' browsers. Paste only what you got from the vendor. The platform can block scripts across a shop if something is flagged by a malware scanner, because one shop getting listed affects every business on the domain.

### Your own domain

You can point a domain you own at your shop. Until it is verified, it serves nothing — an unverified claim on somebody else's domain must not resolve.

### Every page in this area

| Page | What it does | Needs |
| --- | --- | --- |
| [Products](https://weselling.store/inventory) | The physical products you sell — prices, quantities, and what's running low. Stock only ever moves through a recorded movement, so the count is always explainable. | Inventory · read |
| [Requisitions](https://weselling.store/inventory/requisitions) | Ask the stockkeeper for internal supplies, and approve or issue what other staff have asked for. | Requisition · request |
| [Stock transfers](https://weselling.store/inventory/transfers) | Move stock between branches, with both sides of the movement recorded. | Inventory · transfer |
| [Services](https://weselling.store/services) | The work you sell — consultations, repairs, appointments — and memberships that grant access for a period. | Services · read · Services & Digital Products switched on |
| [Digital products](https://weselling.store/digital-products) | Anything customers download after paying — e-books, music, albums, PDFs, templates, courses, software, photos and videos. Set a limited run or sell without limit. | Services · read · Services & Digital Products switched on |
| [Validate member](https://weselling.store/services/validate) | Scan a membership card to check it's genuine and still in date before letting someone in. | Services · validate · Services & Digital Products switched on |
| [Events & tickets](https://weselling.store/events) | Dated events you sell admission to, the tickets issued for them, and who is allowed to scan at the door. | Events · read · Events & Tickets switched on |
| [Scan tickets](https://weselling.store/events/scan) | Check people in at the door. A ticket scans once — the second attempt shows who came in on it and when. | Tickets · scan · Events & Tickets switched on |
| [Reservations](https://weselling.store/reservations) | Bookings for rooms, halls and other bookable space — who has what, and when they arrive and leave. | Reservations · read · Reservations switched on |

---

## Storefront packs

> Choosing the shape of your shop — what appears on the page, and in what order.

Source: https://weselling.store/docs/storefront-packs

A **pack** decides the shape of your shop — which sections appear on the page and in what order. Seven ship with the platform, free to every shop.

Every pack sells identically. The same product cards, the same stock handling, the same cart, the same checkout. A pack changes the arrangement and nothing else, so switching one can change how your shop looks but can never stop it taking an order.

### The packs that come free

| Pack | Suits | Shape |
| --- | --- | --- |
| Classic | General retail, a first shop | Roomy cards, big header. The safe choice |
| Compact | Large catalogues, wholesale | More on screen, tighter spacing |
| Editorial | Fashion, interiors | Tall images, lots of whitespace, few per row |
| Catalogue | Vehicles, machinery, property | Wide landscape images, price up front |
| Market | Groceries, pharmacy, spare parts | Small dense tiles, price-led |
| Atelier | Fashion, jewellery, furniture, studios | Full-bleed opening, written sections between the pieces |
| Kiosk | Spare parts, hardware, pharmacy counters | No header at all — search is the first thing on the page |

### Atelier and Kiosk are different in kind

The first five differ in spacing and card shape. Atelier and Kiosk differ in **what is on the page**, which is a bigger decision than it sounds.

**Atelier** opens on an image that fills the screen and puts written sections between the products — a story about how you make things, a size-help panel, three promises. It reads like a magazine that happens to sell. It suits a business whose customers browse.

**Kiosk** has no header, no tagline and no featured rail. Search is the first thing on the page, then category chips, then a dense price-led grid. It suits a business whose customers arrive knowing the part number — for them a full-screen header is a screen's worth of scrolling between them and what they came for.

> If you are unsure, ask whether your customers browse or arrive knowing. Browsing wants Atelier or Editorial. Knowing wants Kiosk or Market.

### Changing your pack

1. **Open Settings → Storefront** — [Go there](https://weselling.store/settings/storefront)
2. **Pick a pack** — The preview shows the shape of the page — where the header sits, where the shop sits, what is between them.
3. **Save** — Your shop changes immediately. Nothing about your catalogue, prices, orders or customers is touched.

> You can change pack as often as you like. It is a presentation setting, not a migration.

### Filling in a pack's pictures

Some packs have written sections with image slots — Atelier has one for a workshop photo. A pack never supplies the picture itself; **you do**, from your own media.

Until you fill a slot it shows a labelled placeholder telling you what belongs there. That is why a freshly installed pack looks unfinished rather than broken.

> This is a safety rule, not a limitation. A pack that could name its own image URLs could track every visitor to every shop that installed it, change its pictures after review, or take your header down by letting a domain lapse.

### What a pack can never do

These are enforced by the platform, not by review. A pack has no way to express any of them:

- Run any code on your shop
- Load images or fonts from anywhere but your own media
- Link your customers to another website
- Change what a product card shows, or what the buy button does
- Set colours — it picks a role, and your brand colour fills it
- Touch your cart, your checkout or your stock

> **If your shop shows the default layout** Settings → Storefront will tell you why. Your shop stays open and keeps taking orders — a layout problem must never close a business.

### Building one

A way for developers to build storefront templates is being designed — see [Building a storefront pack](https://weselling.store/docs/building-packs). It is not ready to build against yet.

---

## Selling

> The till, the wallet, deficits and close of business.

Source: https://weselling.store/docs/selling

A sale moves stock, takes money and writes to your books in one step. There is no separate till system to reconcile at the end of the day, because the till and the shop are the same thing.

### Where a sale can start

| Origin | Who starts it |
| --- | --- |
| The storefront | A customer, online |
| POS mode | Staff, scanning at the counter |
| Sales screen | Staff, entering by hand |
| A QR scan point | A customer at a table or desk |
| A partner link | A partner selling on your behalf |

All of them produce the same sale record. Origin is kept, so you can tell what your shop earned versus what the counter earned.

### Payment channels

Every sale is settled through a channel, and each channel keeps its own balance:

- **Cash** — physical money, held by whoever took it
- **Bank transfer** — into one of your accounts, verified before it counts
- **Card / online** — through a gateway
- **Crypto** — on-chain, confirmed by the network
- **Gift card** — redeemed against a balance you already issued

> Channel balances are the point. "We took ₦400,000 today" is not useful if ₦250,000 of it is in a drawer and the rest is in three different banks. The wallet keeps them apart.

![The wallet screen, showing a separate balance for each payment channel](https://weselling.store/docs/shots/wallet.png)
*Each channel holds its own balance. This is the answer to “how much money does this business have, and where”.*

### The wallet

[Sales → Wallet](https://weselling.store/sales/wallet) shows what each channel holds right now. It is the answer to "how much money does this business actually have, and where".

#### Close of business

At the end of a shift, [Close of business](https://weselling.store/sales/wallet#close) asks whoever held cash to declare what they are handing over. Declared against expected produces a difference, and that difference is recorded rather than argued about.

1. **Count what you have** — Physical cash, per person holding it.
2. **Declare it** — Enter the counted figure.
3. **The difference is recorded** — Short or over, it is written down with a name against it.
4. **Shortages become deductions** — An unresolved shortage carries into payroll rather than evaporating.

#### Deficits

[Sales → Deficits](https://weselling.store/sales/deficits) lists sales that did not fully settle — a customer who paid part, a transfer that never arrived, a shortage at close. They stay visible until resolved.

> A deficit is not an accusation. It is an open question with a name attached, which is what stops it from becoming an argument three weeks later.

### Bank transfers

A customer saying they have sent a transfer is not the same as money arriving. [Sales → Bank transfers](https://weselling.store/sales/transfers) holds claimed transfers until somebody with the right permission confirms the money is in the account.

> **Only confirm what you can see** Confirming a transfer credits the sale and releases the goods. Check the account, not the screenshot.

### Returns and refunds

A return puts stock back and reverses the money through the channel it came from. Both write movements — the original sale is never edited.

### Discounts and coupons

[Sales → Coupons](https://weselling.store/sales/coupons) creates codes customers can use at checkout. Staff can also discount at the till if their role allows it, and every discount is recorded against the person who gave it.

### Gift cards

[Gift cards](https://weselling.store/gift-cards) issues cards with a balance. A card is money you have already been paid for and owe as goods, so it sits in your books as a liability rather than as takings.

### Every page in this area

| Page | What it does | Needs |
| --- | --- | --- |
| [Sales](https://weselling.store/sales) | Record a sale and see every sale made — who sold it, how it was paid for, and what was returned or refunded. | Sales · read |
| [Gift cards](https://weselling.store/gift-cards) | Sell gift cards from your shop or hand them out at the counter, and see what you still owe in goods. | Sales · read |
| [Wallet](https://weselling.store/sales/wallet) | Money in the business, split by where it sits — cash, each bank account, each POS terminal and the online wallet. | Payments · read |
| [Close of business](https://weselling.store/sales/wallet#close) | End the day: count each channel, hand over, and record any shortage against the person responsible. | Payments · read |
| [Crypto wallet](https://weselling.store/sales/wallet#crypto) | The business crypto balance: what you hold, what it is worth today, sending it out, and shielding it so the public chain stops showing it. | Crypto · read |
| [Bank transfers](https://weselling.store/sales/transfers) | Customers who paid you by transfer and uploaded their receipt. Check the money arrived, then confirm — that is what marks the order paid. | Payments · verify |
| [Deficits](https://weselling.store/sales/deficits) | Shortfalls still outstanding — money a sale expected that never arrived, and who has to answer for it. | Sales · read |
| [Coupons](https://weselling.store/sales/coupons) | Discount codes — create them, set what they take off, and see which ones are being used. | Sales · manage |
| [Orders](https://weselling.store/orders) | The live board of what's been ordered and not yet handed over, including anything bought on your website. | Order · read |
| [Order origins & QR codes](https://weselling.store/orders/settings) | The QR codes customers scan — one per table, room or desk — so an order arrives knowing where it came from. | Origin · manage |
| [Customers](https://weselling.store/customers) | Everyone who has bought from you, what they bought, and how to reach them. Send an individual an update from here. | Customers · read |
| [Customer intelligence](https://weselling.store/customers/intelligence) | Who spends most, who has drifted away, whose birthday is coming up, and what each customer actually buys. The people counterpart to product profitability. | Customers · read |
| [Enquiries](https://weselling.store/contacts) | Messages sent in from your public website — contact forms, quote requests, sell-your-item enquiries. Every one is a lead nobody has answered yet. | Contacts · read |
| [Offers](https://weselling.store/offers) | Create offers and announcements for your shop, then notify customers who subscribe to offers. | Offers · read |
| [Partners](https://weselling.store/partners) | People who sell your stock for you. Their sales, the commission they've earned, and what you still owe them. | Partners · read |
| [Storefront](https://weselling.store/) | Your public shop exactly as a customer sees it — useful for checking what's listed before you send someone the link. | Any signed-in staff · Storefront switched on |

---

## Taking payments

> Cards, bank transfers, crypto and cash — how each is set up and confirmed.

Source: https://weselling.store/docs/payments

WeSelling takes money through several rails, and every one of them ends at the same place: one confirmed payment against one sale. That convergence is the whole design, and it is why a customer who taps Pay twice is charged once.

### Card and online gateways

Set these up in [Settings → Integrations](https://weselling.store/settings/integrations). You bring your own account — WeSelling does not sit between you and your money.

| Gateway | You need |
| --- | --- |
| Paystack | Public key and secret key |
| Flutterwave | Public key, secret key and webhook hash |
| Nomba | Account ID, client ID and private key |
| Monnify | API key, secret key and contract code |

Monnify has a page of its own — [Connecting Monnify](https://weselling.store/docs/monnify) — because bank transfer is the rail most Nigerian shops actually sell on, and it is the one with a webhook you must not skip.

A gateway appears at checkout as soon as its keys are saved. Configure none and your shop still sells — on cash, transfer or crypto.

> **Secret keys are secrets** Secret keys, webhook hashes and private keys are stored write-only. Once saved, the app will not show them back to you — not to anyone, including you. Keep your own copy where you keep your other credentials.

### How a payment is confirmed

Three things can confirm a payment, and any one of them is enough:

1. The customer's browser returns from the gateway
2. The gateway's webhook fires, even if the customer closed the tab
3. A scheduled sweep re-checks anything still open

> All three converge on one ledger entry. A customer who loses signal at the wrong moment still gets credited, and a webhook that arrives twice still only pays once.

### Bank transfers

Add your accounts in [Settings → Bank accounts](https://weselling.store/settings/bank-accounts). At checkout the customer sees the details and can upload proof of payment.

A claimed transfer is not a paid one. It waits in [Sales → Bank transfers](https://weselling.store/sales/transfers) until somebody with the verify permission confirms the money arrived.

> Give the verify permission to whoever actually has access to the bank account. Anyone else is guessing from a screenshot.

### Crypto

[Settings → Crypto](https://weselling.store/settings/crypto) accepts on-chain payment. The customer pays to your address and submits the transaction hash; the network confirms it, not us.

Set your own addresses. Funds go directly to your wallet — the platform never custodies them.

### Cash

Cash needs no setup. It is recorded at the till, held against whoever took it, and reconciled at [close of business](https://weselling.store/docs/selling).

### Split payments

A sale can be settled across more than one channel — part card, part cash, part gift card. Each part is recorded against its own channel so the wallet stays correct.

### Refunds

A refund goes back through the channel it came from. Card refunds go to the card, transfers to the account, cash out of the drawer — and each writes to the matching channel balance.

### Receipts

Every sale produces a receipt with your logo and business details. Customers get a link; staff can print. Receipts carry your branding, never WeSelling's.

---

## Connecting Monnify

> Take bank transfers, cards and USSD through your own Monnify merchant account.

Source: https://weselling.store/docs/monnify

Monnify is a Nigerian payment gateway. It takes bank transfers, cards, USSD and phone-number payments, and it is particularly good at the first of those — a customer paying by transfer gets a bank account number generated for that one order, so the payment matches itself without anybody reading a reference off a screenshot.

### It is your account, not ours

You open the Monnify account. You supply the keys. Money settles into **your** Monnify wallet and is paid out to **your** bank account on your own settlement schedule. WeSelling never holds it and never sees it.

The same applies to what it costs. Monnify's transaction fees are charged to you under whatever agreement you have with them — we do not add a margin, and we cannot change or discount their pricing. If you want a better rate, that is a conversation with Monnify.

> There is no WeSelling Monnify wallet. Your Monnify balance lives in Monnify's dashboard; what you see here is what has been paid against your orders, which is a different question and answered from your own ledger.

### Opening a Monnify account

1. **Sign up at monnify.com** — You register as a business. Have your CAC registration and a bank account in the business's name ready — Monnify verifies both before it will let you go live.
2. **Complete verification** — Until this is done you can use test keys and nothing else. That is fine — set the whole thing up and test it while verification is in progress.
3. **Add your settlement account** — The bank account Monnify pays your money out to. This is between you and Monnify; WeSelling never sees it.

### Where to find the three credentials

In the Monnify dashboard, open **Settings → API Keys & Webhooks**. You need three things:

| What | Looks like | What it is for |
| --- | --- | --- |
| API key | MK_TEST_… or MK_PROD_… | Identifies your account |
| Secret key | A long random string | Signs your requests and your webhooks |
| Contract code | A number | Which of your contracts to bill against |

> **The secret key is a password** Anyone holding it can take payments as you and forge payment notifications. Once you save it here we will not show it back to you — not to anyone, including you. Keep your own copy wherever you keep your other credentials, and if you ever paste it somewhere it should not go, rotate it in the Monnify dashboard rather than hoping.

### Test keys first

Monnify gives you two sets of keys and two separate environments. Test keys move no money; live keys move real money.

They are not interchangeable, and this is the single most common thing to get wrong: a live key sent to the test environment is rejected as though it were invalid. If you are certain your keys are right and Monnify says they are not, check this setting before you check anything else.

> Set it up on Test, put a real order through end to end, and only then switch to Live. The test cards and test bank details are in Monnify's own documentation.

### Connecting it here

1. **Open Settings → Integrations** — [Settings → Integrations](https://weselling.store/settings/integrations), then scroll to the Monnify card.
2. **Paste the API key, secret key and contract code** — All three. Monnify cannot start a transaction without the contract code, so two out of three leaves it not working.
3. **Choose Test or Live** — Match the keys you pasted.
4. **Save**
5. **Press Test connection** — This signs in to Monnify with the keys you just saved. It takes no payment and moves no money — it only proves the three credentials work together. Save before testing: it checks what is stored, not what is on screen.

### The webhook — do not skip this

In the Monnify dashboard, on that same API Keys & Webhooks page, add this address as your webhook URL:

```
https://<your-shop-address>/api/webhooks/monnify
```

So a shop at `kafadona.weselling.store` uses `https://kafadona.weselling.store/api/webhooks/monnify`. If you are on your own domain, use that instead.

This is what confirms a payment when the customer does not come back — they paid by transfer from their banking app and never returned to the browser tab, or their signal dropped on the way. Monnify tells us directly, and the order is confirmed regardless.

> **Without the webhook, some payments will never be confirmed** The order sits unpaid while the money has already left the customer's account, and somebody has to sort it out by hand. It takes two minutes to set up and it is the difference between bank transfer working and bank transfer half-working.

### How a Monnify payment is confirmed

Never by the customer's browser. Coming back to the shop after paying only proves a browser followed a redirect — that page can be reloaded, shared, or reached by pressing Back. Marking orders paid on that basis is how shops give goods away.

What actually happens:

| Step | What it proves |
| --- | --- |
| The customer returns, or Monnify's webhook fires | Something happened worth checking |
| We ask Monnify directly about that transaction | Whether it was paid, and how much |
| The amount is checked against what was owed | That the order was paid in full |
| One confirmed payment is written against the sale | The order is paid |

> Only the middle step decides anything. A duplicate webhook, a reloaded return page and the scheduled sweep all reach the same single confirmed payment — the order cannot be paid twice, the stock cannot be deducted twice, and the tickets cannot be issued twice.

### Going live

1. **Finish Monnify's verification** — Live keys are not issued until it is done.
2. **Copy the live API key, secret key and contract code**
3. **Paste them here and switch Environment to Live**
4. **Save, then press Test connection again**
5. **Check the webhook** — Monnify keeps separate webhook settings for test and live. Setting one does not set the other, and a live shop with only the test webhook configured is the exact failure this page warns about above.

### When something is wrong

| What you see | What it usually is |
| --- | --- |
| Monnify does not appear at checkout | One of the three credentials is blank. All three are required. |
| “Refused these credentials” | Live keys on Test, or test keys on Live. Check Environment first. |
| Payments taken but orders stay unpaid | The webhook is not set, or is set on the other environment. |
| “Monnify status: PARTIALLY_PAID” | The customer transferred less than the total. The order stays unpaid on purpose. |

### What we have not built

Monnify also offers payouts, reserved accounts, wallets and verification services. None of them are connected here. This integration collects payment for orders and nothing else — if you use those products, you use them in Monnify's own dashboard.

---

## Selling digital products

> Files, downloads and where to host them — and why we do not host them for you.

Source: https://weselling.store/docs/digital-products

You can sell anything that is delivered as a file — an ebook, a design, a course, a sample pack. The buyer pays, and WeSelling gives them a private link of ours that counts the download and sends them to your file.

### We never store your file

You give us a link to where the file already lives. We never hold a copy, and your buyer downloads straight from your host.

| What that means | Why it matters to you |
| --- | --- |
| No size limit from us | Sell a 4GB video course if you want to |
| Your host's speed | Not shared with every other shop on the platform |
| No storage charge from us | You pay your host, at your host's rates |
| Your file stays yours | We cannot lose it, and we cannot hold it hostage |

> This is a deliberate trade. Hosting files for every shop would mean charging every shop for storage and bandwidth — including the ones that sell nothing digital — and it would put your delivery speed at the mercy of our worst month. Your host, your bill, your speed.

### What we do handle

- **A private link per buyer** — long, random, and tied to that sale
- **A download limit** — a few attempts by default, so a dropped connection is not a support ticket
- **An expiry** — the delivery page goes stale on its own
- **A record** — who downloaded, when, from where, so a dispute has an answer

Your customers never see the address of your actual file.

### Where to host it

Any https address works. The one most sellers already have is Google Drive; the others are just as good. All are free to start and give you a link per file:

| Host | One thing to know |
| --- | --- |
| Google Drive | Set the file's sharing to “Anyone with the link” |
| Dropbox | Change dl=0 at the end of the link to dl=1 and it downloads straight away |
| MediaFire | Simple upload, a download link for every file |
| Sync.com | Private by default; links can be switched off later |

Sign up at [Google Drive](https://drive.google.com/), [Dropbox](https://www.dropbox.com/), [MediaFire](https://www.mediafire.com/) or [Sync.com](https://www.sync.com/).

### Setting one up

1. **Upload your file** — To whichever host you chose above.
2. **Copy its share or download link** — Every uploaded file has one.
3. **Paste the link** — Into the item's Download link field in [Services](https://weselling.store/services) (or [Inventory](https://weselling.store/inventory)).
4. **Buy your own product once** — The only way to know the whole chain works before a customer finds out it does not.

The item form reads what you paste and tells you what it sees — which host it is on, with that host's one tip, or a link with an expiry in it. It does not block anything: your host is your business.

### Pay what you want

Any item can be sold at a price the buyer names - the model Radiohead used for In Rainbows. Switch on **Pay what you want** on the item, and its selling price becomes the suggested amount. Set a minimum if you want one; leave it blank and a buyer may take it for nothing. There is no upper limit.

- **Every way of paying** - the figure the buyer chose is written to the sale, and card, transfer, crypto or cash charge that total
- **Free is real** - an order that comes to nothing settles at once with no payment step, and the download or ticket is issued immediately
- **At the till** - the rep types what the customer offers, and the floor is enforced there too
- **Card gateways refuse tiny charges** - if you take cards, a minimum of a few hundred avoids a failed payment on a very small amount

### Verified purchase downloads

Every download is counted against the purchase it belongs to. A buyer's link only exists once their payment settled, so every number on the report is a paying customer — never a visitor, never a forwarded link.

Open [Reports → Verified downloads](https://weselling.store/reports?tab=downloads) to see, per product: copies sold, downloads collected, buyers who have not collected yet, links that expired unused, revenue, and the last download.

### Watch the uncollected count

The figure worth chasing on that report is **not collected**: people who bought and never downloaded. Those are refund requests waiting to happen — usually a link that needs access, an expired file, or a host that moved.

---

## Stock & inventory

> Items, stock movements, transfers between branches, and requisitions.

Source: https://weselling.store/docs/inventory

Inventory is the record of what you have, what it cost, what it sells for and where it is. Everything that touches stock — a sale, a return, a transfer, a stocktake — goes through it.

### Two kinds of item

| Type | What it is | Appears in your shop |
| --- | --- | --- |
| Product | Something you sell | Yes, if marked storefront-visible |
| Internal | Something you use — supplies, tools, equipment | Never |

The split matters because a business that tracks its own printer paper alongside its stock should not have to worry about a customer finding it.

### The one rule about quantities

You never set a quantity directly. Every change creates a **stock movement** — a row in a ledger that only ever grows — and the quantity you see is the sum of that ledger.

| Movement | When |
| --- | --- |
| Purchase / Adjustment in | Stock arrives, or a count corrects upward |
| Sale | An item is sold |
| Return | A customer brings something back |
| Transfer out / in | Stock moves between branches |
| Adjustment out | Damage, loss, a count correcting downward |

> This is why you can always answer "where did those twelve units go", and why two people counting the same shelf at once cannot corrupt the number.

![The inventory list, with the Products and Internal tabs above a table of stock](https://weselling.store/docs/shots/inventory.png)
*Products and Internal are separate tabs — a customer never sees anything on the Internal side.*

### Adding stock

1. **Open Inventory** — [Go there](https://weselling.store/inventory)
2. **Add the item** — Name, category, brand, cost price, selling price.
3. **Set a reorder level** — The point at which you want warning. Below it, the item shows in low-stock alerts.
4. **Adjust the stock** — Add, remove or set. Every option writes a movement — even "set", which writes the difference.
5. **Decide if customers see it** — Mark it storefront-visible. Add images — the first one becomes the card.

### Negative stock

By default an item cannot go below zero — selling what you do not have is usually a mistake, and one that only surfaces when a customer is waiting.

Some businesses genuinely need it: a kitchen that sells a dish before the delivery is booked in, a shop taking backorders. That is a per-item switch, not a global one.

### Spec sheets

Some things need more than a description. A vehicle has a year, a mileage, a transmission; a phone has storage and a screen size. **Attribute profiles** give a category its own vocabulary, and the fields you mark as highlights appear on the product card.

You can use a built-in profile or write your own.

### More than one branch

#### Transfers

[Inventory → Stock transfers](https://weselling.store/inventory/transfers) moves stock between branches. A transfer is two movements — out of one branch, into the other — written together, so stock is never in both places or neither.

> A transfer has to be acknowledged by the receiving branch. That acknowledgement is what makes a dispute about a missing carton answerable.

#### Requisitions

[Inventory → Requisitions](https://weselling.store/inventory/requisitions) is a branch asking headquarters for stock. It has a request, an approval and a fulfilment, so the question "did anyone actually approve this" always has an answer.

### Barcodes

Items can carry a barcode. With one, the [storefront till](https://weselling.store/docs/storefront) becomes scan-first, and the inventory list gains a scanner.

Barcodes are staff-only and never reach a customer's page source. If your business has no scanner, turn the whole barcode surface off in Settings → Storefront rather than living with buttons that do nothing for you.

### Low stock

Any item below its reorder level shows in low-stock alerts on the dashboard and in inventory. There is no automatic reordering — what to buy and when is a judgement about cash, not a threshold.

> **Deleting an item** Items are soft-deleted. The item leaves your lists but every sale that included it keeps its history, so last quarter's numbers do not change because you tidied up this morning.

### Every page in this area

| Page | What it does | Needs |
| --- | --- | --- |
| [Products](https://weselling.store/inventory) | The physical products you sell — prices, quantities, and what's running low. Stock only ever moves through a recorded movement, so the count is always explainable. | Inventory · read |
| [Requisitions](https://weselling.store/inventory/requisitions) | Ask the stockkeeper for internal supplies, and approve or issue what other staff have asked for. | Requisition · request |
| [Stock transfers](https://weselling.store/inventory/transfers) | Move stock between branches, with both sides of the movement recorded. | Inventory · transfer |
| [Services](https://weselling.store/services) | The work you sell — consultations, repairs, appointments — and memberships that grant access for a period. | Services · read · Services & Digital Products switched on |
| [Digital products](https://weselling.store/digital-products) | Anything customers download after paying — e-books, music, albums, PDFs, templates, courses, software, photos and videos. Set a limited run or sell without limit. | Services · read · Services & Digital Products switched on |
| [Validate member](https://weselling.store/services/validate) | Scan a membership card to check it's genuine and still in date before letting someone in. | Services · validate · Services & Digital Products switched on |
| [Events & tickets](https://weselling.store/events) | Dated events you sell admission to, the tickets issued for them, and who is allowed to scan at the door. | Events · read · Events & Tickets switched on |
| [Scan tickets](https://weselling.store/events/scan) | Check people in at the door. A ticket scans once — the second attempt shows who came in on it and when. | Tickets · scan · Events & Tickets switched on |
| [Reservations](https://weselling.store/reservations) | Bookings for rooms, halls and other bookable space — who has what, and when they arrive and leave. | Reservations · read · Reservations switched on |

---

## Customers & orders

> Who bought what, the orders board, QR scan points and the customer portal.

Source: https://weselling.store/docs/customers-and-orders

A customer record is built as you sell. You do not have to create one first — taking a name and a number at the till is enough, and the record accumulates from there.

### Customers

[Customers](https://weselling.store/customers) holds everyone who has bought from you: what they bought, when, how much they have spent, and how to reach them.

Customers are matched on phone number, so the same person buying three times is one record with three sales rather than three records that look like three people.

[Customer intelligence](https://weselling.store/customers/intelligence) groups them by behaviour — who spends most, who has stopped coming, who buys what.

### Orders

[Orders](https://weselling.store/orders) is the board for anything that is not finished at the moment of sale: an online order to fulfil, a delivery to dispatch, a table waiting on a kitchen.

An order moves through states, and each change is recorded with a time and a name against it.

### QR scan points

Turn on Table & QR ordering in [Settings → Features](https://weselling.store/settings/features) and you can print QR codes for tables, desks, rooms or counters.

| A customer scans | And gets |
| --- | --- |
| A table QR | Your shop, with the order tagged to that table |
| A call-staff QR | A way to call a staff member to exactly where they are sitting |

> The point of the QR is that it carries the location. "Someone needs help" is much less useful to a waiter than "table 12 needs help", and the difference is the thing a customer never has to explain.

Manage the codes in [Order origins & QR codes](https://weselling.store/orders/settings). Each origin is tracked, so you can see which tables actually earn.

### Deliveries

An order can carry a delivery address, a landmark and a location pin. All of it is optional except a phone number — reverse geocoding fails often enough that requiring a full address would turn a patchy third-party service into a checkout blocker.

> An order with coordinates and "opposite the second gate" is entirely deliverable. Do not make customers fight a form for an address your rider does not use anyway.

### The customer portal

Customers can sign in to your shop to see their own orders and messages. They sign in with a code sent to their phone — they do not have a staff account, and they see only their own records.

### Enquiries

The form under your storefront FAQ lands in [Enquiries](https://weselling.store/contacts). It sits below the FAQ deliberately: someone who has just searched your answers and not found theirs is one click from closing the tab.

### Reviews

Customers can rate what they bought. Only verified buyers can review, so a rating means a purchase actually happened — which is what makes the number worth showing.

### Reservations

Turn on Reservations in [Settings → Features](https://weselling.store/settings/features) for bookable rooms, halls or spaces. Customers see availability and book from your storefront; [Reservations](https://weselling.store/reservations) is the diary.

---

## Staff & permissions

> Roles, capabilities, per-person exceptions, and who can do what.

Source: https://weselling.store/docs/staff-and-permissions

Permissions decide what each person can see and do. WeSelling uses capabilities rather than job titles, which is a small distinction with a large consequence.

### Capabilities, not job titles

The app never asks "is this person a manager". It asks "can this person approve a refund". A role is a bundle of capabilities, and you can make as many roles as your business actually has.

> This matters the first time you need a supervisor who can approve refunds but not see payroll. With job titles that is a new title and a code change. With capabilities it is two clicks.

### How access is worked out

Three things combine, in this order:

1. **The roles they hold** — Everything from every role they have, added together.
2. **Their personal grants** — Extra capabilities given to this one person, on top of their roles.
3. **Their personal denies** — Capabilities taken away from this one person. A deny always wins.

The per-person layer exists because real businesses have exceptions. One cashier you trust with voids; one manager you would rather not have payroll access during a dispute. Without exceptions you end up making a role for one person, and then another, until roles mean nothing.

### The owner

The owner has every capability, always. The owner cannot be stripped of a capability and cannot be the target of a deny.

> **This is on purpose** A business must never be able to lock itself out of its own account. Any design that allows it turns a mistake into a support ticket nobody can resolve.

### Adding someone

1. **Open Staff** — [Go there](https://weselling.store/staff)
2. **Add them** — Name, email, branch, department.
3. **Give them roles** — Start with a role preset. Adjust once you see what they actually need.
4. **Add exceptions if needed** — The owner can grant or deny individual capabilities per person.

### Roles

[Settings → Roles](https://weselling.store/settings/roles) shows a matrix of every capability grouped by area. Presets cover the common shapes — cashier, stock keeper, supervisor, accountant — and you can change any of them or start fresh.

> Grant the least that lets someone do their job, then add when they hit a wall. Starting broad and trimming later never happens.

### Branches and departments

Everyone belongs to a branch, and stock, sales and attendance follow that. Departments group people within a branch — useful for routing a customer's staff call to the right counter.

### What a role cannot do

Some pages are owner-only regardless of capabilities. Those are the ones where granting access would defeat the point of having an owner at all — the billing account, the permission matrix itself, the platform-level switches.

### Seeing what happened

[Settings → Activity](https://weselling.store/settings/activity) records who did what. Sales, stock movements, permission changes and refunds all carry the name of the person who made them.

### Every page in this area

| Page | What it does | Needs |
| --- | --- | --- |
| [Staff](https://weselling.store/staff) | Your people — invite them, set what each one is allowed to do, and suspend anyone who leaves. | Staff · read |
| [Staff intelligence](https://weselling.store/staff/intelligence) | Who sold the most this month, who turns up on time, and who starts earliest. The people counterpart to customer intelligence. | Staff · read |
| [Attendance](https://weselling.store/attendance) | Who clocked in, when, and from where. This is what feeds hours and lateness into payroll. | Attendance · read |
| [Payroll](https://weselling.store/payroll) | Work out and approve what each person is paid, with attendance, queries, bonuses and unresolved shortages already accounted for. | Payroll · read |

---

## SMS, email & notifications

> Reaching your customers and your staff — SMS, email, push and Telegram.

Source: https://weselling.store/docs/messaging

WeSelling can reach your customers by SMS and email, your staff by push notification, and you by Telegram. Every channel is optional, and every one uses **your own account** — the platform does not resell messaging.

> Bringing your own account means your sender ID is yours, your delivery rates are yours, and your costs are the provider's price rather than a marked-up one.

### What is included, and what is not

| Channel | Who provides it | You pay |
| --- | --- | --- |
| Email | WeSelling — included | Nothing extra |
| Push notifications | WeSelling — included | Nothing extra |
| SMS | You, through your own Termii or Twilio account | Your provider, at their rates |

**Email and push work out of the box.** Receipts, order confirmations, gift cards, password resets and the enquiry replies your customers get are all covered with nothing to configure and nothing to buy.

**SMS is the one channel you bring yourself.** WeSelling routes the message through the account you connect; it does not resell SMS credits and does not mark them up.

> This is deliberate. SMS is metered, priced differently in every country, and requires a sender ID registered to your own business name. Reselling it would mean a margin on your messages and your customers seeing somebody else's sender. Your account means your rates, your sender ID, and no middleman.

![The integrations screen, with sections for the SMS provider, email and payment gateways](https://weselling.store/docs/shots/settings-integrations.png)
*Every outside account you connect lives here. Secrets are stored write-only — saved once, never shown back.*

### Turning SMS on

The SMS toggle asks for credentials because it has nowhere else to get them. Until they are saved, SMS is simply off — nothing silently fails, and nothing falls back to a shared account.

Set up in [Settings → Integrations](https://weselling.store/settings/integrations). Two providers are supported:

| Provider | Suits | What you paste |
| --- | --- | --- |
| Termii | Nigeria and West Africa | API key · Sender ID |
| Twilio | International | Account SID · Auth token · Messaging Service SID or From number |

1. **Open an account with the provider** — Termii if your customers are in Nigeria or West Africa; Twilio for anywhere else. You fund it directly with them.
2. **Register your sender ID** — Both providers require this before anything delivers. It is the name recipients see on the message, and approval takes a day or two.
3. **Paste the credentials** — Settings → Integrations → SMS provider. Pick your provider, fill in its fields, save.
4. **Send a test to your own number** — Before you rely on it for a real order.

> **Register your sender ID first** Messages sent under an unregistered sender ID are silently dropped by most Nigerian networks. Nothing errors — they simply never arrive, which is far harder to diagnose than a failure.

> Auth tokens and API keys are stored write-only. Once saved, the app will not show them back to you — not to anyone, including you. Keep your own copy wherever you keep your other credentials.

> With Twilio, prefer a Messaging Service SID over a bare From number. A messaging service handles number pooling and per-country routing for you, which is the difference between messages arriving in one country and arriving in all of them.

### Email

Email uses SMTP, so any provider works — Zoho, Google Workspace, Microsoft 365, or your own host. Set the host, port, username and password in [Settings → Integrations](https://weselling.store/settings/integrations).

Email carries receipts, gift cards, order confirmations and password resets. Without it, those become links your customers have to be given another way.

> Use an address on your own domain. A shop emailing from a free consumer address gets filtered into spam far more often, and it reads as less trustworthy to the customer.

### Push notifications

Two separate audiences, and they work differently:

- **Staff** — order alerts, staff calls, low stock. Each device opts in individually.
- **Customers** — order updates from a shop they have bought from. They are asked after they have seen something worth being interrupted about, not before.

> Push has to be enabled per device, not per person. Somebody who allowed notifications on their phone will not get them on the shop tablet until they allow it there too.

### Telegram

Connect a Telegram bot to get operational alerts — a new online order, a staff call, a payment confirmed — in a group chat. Useful when the people who need to know are not in the app all day.

### What gets sent, and when

Every stage of an order reaches the customer who placed it, provided they turned notifications on:

| Event | Who hears | How |
| --- | --- | --- |
| Order placed and paid | Customer | Push, email |
| Payment received | Customer | Push |
| Payment could not be confirmed | Customer | Push, email, SMS |
| A branch starts preparing it | Customer | Push |
| Dispatched / on its way | Customer | Push |
| Delivered or collected | Customer | Push |
| Gift card spent — new balance | Customer | Push, email |
| Something back in stock | Customers opted into new stock | Push |
| Online order placed | Staff | Push, Telegram |
| Receipt issued | Customer | Email |
| Gift card issued | Recipient | Email |
| Staff called to a table | The department | Push |
| Stock below reorder level | Staff with inventory access | In-app |
| Payment confirmed | Staff | Telegram |

> Dispatched and Delivered are things staff mark on the order in Sales. They are the two stages nobody else can know about — the shop is the only party who can say the goods have left, or arrived.

### Back in stock

When an item that had run out becomes buyable again, every customer opted into **new stock** is told. Only genuine restocks count: an item going from none to some. Topping up something that was already in stock is a delivery detail, not news.

Announcements are batched for a few seconds and sent as one message — a delivery keyed in as forty separate items produces "Rice, Beans, Oil and 12 more", not forty notifications. Sending forty is how a shop's customers turn notifications off for good.

> Only storefront-visible products are announced. Internal items — a mop, a till roll — are not something a customer can buy, and listing them leaks how the business runs.

### If nothing is configured

The app works. Receipts are links rather than emails, order updates are seen in the app rather than pushed, and alerts appear on the dashboard rather than on a phone. Nothing breaks; it is quieter.

### Customers who ask you to stop

A customer can opt out of notifications. Honour it — the same message that is welcome after an order is a complaint when it is the fourth one this week, and in several jurisdictions it is also a legal obligation rather than a courtesy.

---

## Expenses, payroll & books

> What goes out, what staff are owed, and what the accounts say.

Source: https://weselling.store/docs/money

Money coming in is the sales side. This is the other half — what goes out, who is owed what, and whether the business is actually making anything.

### Expenses

[Expenses](https://weselling.store/expenses) records what the business spends. Each expense has a category, an amount, a channel it was paid from, and a note.

- **Categories are yours** — create them as you go rather than fitting your business into a fixed list.
- **Paid from a channel** — so spending cash out of the drawer reduces the drawer, not some abstract total.
- **Can be marked as a debt** — something owed but not yet paid, which is a different thing from money gone.

> Recording which channel an expense came from is what makes close of business work. Cash spent on a delivery has to leave the drawer's expected balance, or the person counting it comes up short through no fault of theirs.

#### Approval

Expenses can require approval before they count. Whether they do, and who approves, is a capability — so a business that wants a cashier to log spending but not authorise it can have exactly that.

### Payroll

[Payroll](https://weselling.store/payroll) works out what each person is owed for a period, including anything that has to come off.

| Component | Where it comes from |
| --- | --- |
| Basic pay | The staff record |
| Commissions | Sales attributed to that person |
| Deductions | Unresolved cash shortages and deficits |
| Adjustments | Entered by hand, with a reason |

> **Shortages carry into pay** An unresolved cash shortage from close of business appears as a deduction. This is the mechanism that stops a shortage from quietly disappearing — but it means shortages need resolving promptly, while the facts are still fresh, not at the end of the month.

### Accounting

[Accounting](https://weselling.store/accounting) assembles the books from what has already been recorded. It is not a separate ledger you maintain — sales, expenses, payroll and stock movements are the ledger.

- Revenue against expenses, by period
- Cost of goods sold, from actual item costs
- Gross and net margin
- What is owed to you, and what you owe

> Enter cost prices honestly when you add stock. Margin is worked out from them, and a guessed cost price makes every profit figure downstream a guess too.

### Tax

Turn on Taxes in [Settings → Features](https://weselling.store/settings/features), then configure rates in [Settings → Tax](https://weselling.store/settings/tax). Tax is worked out per line, and shown separately on receipts.

You decide whether prices include tax or have it added. Both are normal depending on where you trade and who you sell to; getting it wrong means either eating the tax or surprising your customers at checkout.

### Partners

[Partners](https://weselling.store/partners) covers people who sell on your behalf for a cut. A partner sale is processed automatically: the wholesale portion goes to your wallet, the commission to the partner, and the split is shown on the sale.

> The split is recorded at the time of the sale. Paying a partner out later does not deduct again — the money was already apportioned.

### Every page in this area

| Page | What it does | Needs |
| --- | --- | --- |
| [Expenses](https://weselling.store/expenses) | Money going out — what was spent, on what, who approved it, and what is still owed. | Expenses · read |
| [Tax](https://weselling.store/tax) | What you owe the tax authority and when. VAT collected on sales, PAYE from salaries, withholding tax — each period shown with its filing deadline, ready to mark as filed and paid. | Tax · read · Taxes switched on |
| [Debts](https://weselling.store/accounting/debts) | Who owes this business money and for how long — unpaid sales and staff advances, oldest first, so a total becomes a list of people to call. | Accounting · read |
| [Accounting](https://weselling.store/accounting) | The books. Revenue, cost of sales and gross profit, what it all cost to run, and what the business is left with — for any period you choose, with the receivables, payables, cash and stock position beside it. | Accounting · read |
| [Reports](https://weselling.store/reports) | The longer view — revenue against expenses, what sells, who sells it, and how any of it changed over time. | Reports · read |

---

## Selling outside Nigeria

> Currency, addresses, payment rails and how the directory handles more than one country.

Source: https://weselling.store/docs/selling-internationally

WeSelling is not Nigeria-only. Shops trade from wherever they are, in their own currency, through payment rails that work where their customers are.

### Currency

Set it in [Settings](https://weselling.store/settings) before you add stock. It shapes every price, receipt and report in the app.

> **Set it before you enter prices** Changing currency later does not convert anything already entered. The numbers stay and the symbol changes, which is worse than either.

### Payment rails by region

| Rail | Best for |
| --- | --- |
| Paystack | Nigeria, Ghana, South Africa, Kenya |
| Flutterwave | Africa, broadly |
| Nomba | Nigeria |
| Stripe | US, UK, Europe, most of the world |
| Lemon Squeezy | Digital products, worldwide — handles sales tax for you |
| Crypto | Anywhere, no intermediary |
| Bank transfer / cash | Anywhere, settled by you |

Connect any combination in [Settings → Integrations](https://weselling.store/settings/integrations). Each appears at checkout as soon as its keys are saved.

> Lemon Squeezy is worth a look if you sell digital products internationally — it acts as merchant of record, which means it deals with VAT and sales tax in each country rather than you registering in each of them.

### Addresses

The address fields adapt to the country you enter. One shape, named for wherever the shop is:

| Country | The tier below a state | Postcode called |
| --- | --- | --- |
| Nigeria | Local Government Area | Postcode |
| United States | County | ZIP code |
| United Kingdom | Council area | Postcode |
| Canada | Municipality | Postal code |
| Kenya | Sub-county | Postcode |
| India | District | PIN code |
| Anywhere else | District | Postcode |

> The stored shape does not change, only the label. That is what keeps addresses comparable across countries — and what lets the directory group shops sensibly whether they are in Lagos or Leeds.

### How the directory handles countries

The [business directory](https://weselling.store/discover) lists every shop that opted in, from every country. It presets the filter to the visitor's country and lets them change it.

**The guess comes from the network edge, not from an IP lookup.** No third party is told your customers' addresses, and nothing is delayed waiting on a geolocation service. A wrong guess costs the visitor one click.

The location filter is named for whatever is being browsed. Narrow to the United States and it reads `Any county`; narrow to Nigeria and it reads `Any local government area`. While several countries are on screen it stays neutral rather than mislabelling somebody's shop.

### Being listed

Listing is opt-in, in [Settings → SEO](https://weselling.store/settings/seo). Fill in your address and your search terms — the directory matches on both, and a shop with neither is findable only by name.

---

## Reports & insights

> What the numbers say — takings, margins, staff performance, stock movement.

Source: https://weselling.store/docs/reports

Reports are assembled from what has already been recorded. There is nothing to enter separately — every sale, movement and expense already carries what a report needs.

### The dashboard

[Dashboard](https://weselling.store/dashboard) is today: what has been taken, what is owed, what is running low, what needs attention. It answers "is anything wrong right now" rather than "how did last quarter go".

### Reports

[Reports](https://weselling.store/reports) covers the periods that matter:

- **Sales** — by period, branch, staff member, channel and origin
- **Stock** — what moved, what it cost, what is sitting still
- **Margin** — revenue against cost of goods, per item and overall
- **Expenses** — by category and by period
- **Staff** — who sold what, and what they are owed in commission

### Origin matters

Every sale records where it came from — the storefront, the counter, a table QR, a partner link. Without that, "online is working" is a feeling. With it, it is a number.

> Check origin before you spend on getting more traffic. A shop whose orders all come from the counter has a different problem from one whose orders all come from the web.

### Exports

Reports export to a file you can open in a spreadsheet. Export always works, including for a business whose account has lapsed — refusing somebody their own records turns a billing dispute into a legal one.

### Backups

[Settings → Backup](https://weselling.store/settings/backup) takes a copy of your data. It is yours to keep, wherever you keep important things.

### Every page in this area

| Page | What it does | Needs |
| --- | --- | --- |
| [Dashboard](https://weselling.store/dashboard) | Your home base — today's takings, what's owed, and the numbers that tell you how the business is doing right now. | Any signed-in staff |

---

## Notes on your charts

> Pin what you did to the day you did it, so a spike still means something months later.

Source: https://weselling.store/docs/chart-notes

A graph shows **what** happened. It never shows **why**. A jump in the third week of March is meaningless six months later unless somebody wrote down that the radio advert ran then.

Chart notes are how you write it down — pinned to the exact day, on the chart itself, where you will actually see it next time you look.

### Pinning a note

1. **Open Sales** — [Go there](https://weselling.store/sales), and scroll to the chart.
2. **Press “Pin to a day”** — The chart's columns become clickable.
3. **Click the day it happened** — The one you want to explain — the spike, or the day the campaign started.
4. **Write what was happening** — Short and factual: “Radio advert started”, “Market closed”, “New price list”.
5. **Pick a colour and save** — A marker appears on that day, and the note is listed underneath.

> There is a second way in. “Type a date” skips the clicking, for when you already know the date and would rather not hunt for the column.

### Worked example: an advertising campaign

The most useful thing to annotate, because it is the thing you will want to judge later.

1. **The day it starts, pin a note** — “Radio advert — Wazobia FM, two weeks”. Do it on the day, not from memory afterwards.
2. **Pin the day it ends too** — Without an end, a rise three weeks later looks like it might still be the advert.
3. **Come back in a month** — The markers sit on the chart. You can see what the line did between them.

> **The chart will not tell you the advert worked** Nothing here calculates “revenue rose 18% because of this”, and that is deliberate. That same fortnight also held a payday, a public holiday, and whatever your competition was doing. Presenting that arithmetic as a result would be a claim the data cannot support. The note gives you the honest version: here is what happened, and here is what we were doing at the time.

### What is worth a note

- **Anything you spent money on** — adverts, sponsorship, a promotion, a discount week
- **Anything that changed your prices** — a new price list, a supplier increase
- **Anything outside your control** — a market closure, a fuel shortage, a public holiday, a competitor opening nearby
- **Anything that changed how you sell** — a new branch, a new rep, a new storefront layout

> The test is simple: if you would be annoyed at yourself for not remembering it in six months, pin it. Notes cost nothing and the day they earn their keep is the day somebody asks why last quarter looked like that.

### Who can add them

Anyone who can see the chart can read the notes. Adding and deleting needs the same permission as the rest of your reporting — see [Staff & permissions](https://weselling.store/docs/staff-and-permissions).

On the platform's own investor view the same notes appear, and there only WeSelling staff can write them — somebody reading the figures should not be able to annotate the company's charts.

---

## Your WeSelling account

> How WeSelling charges, what happens if credit runs out, and your web address.

Source: https://weselling.store/docs/billing

WeSelling charges per active day, from a credit balance you top up. There is no monthly commitment and no contract to exit.

### How charging works

- You top up credit
- Each active day costs one day's rate
- A day is charged at most once, ever — a retry or an outage cannot double-charge you
- You can pay in the platform's base currency or in US dollars at the stored rate

> If the platform is down or you are away, the catch-up is capped. A business coming back after a long outage is not billed for a year it did not agree to.

### What happens when credit runs out

| State | Read | Add new | Export | Your shop |
| --- | --- | --- | --- | --- |
| Trial | yes | yes | yes | open |
| Active | yes | yes | yes | open |
| Grace | yes | no | yes | open |
| Expired | yes | no | yes | closed |
| Suspended | no | no | yes | closed |

Two of those are deliberate and worth knowing about:

- **Grace keeps your shop open.** Closing it the moment credit lapses punishes your customers, who can do nothing about it.
- **Export always works.** You are never locked away from your own records, and the page you need in order to pay is never behind the thing stopping you.

Topping up revives a lapsed account immediately.

> **Suspension is different** Suspension is a human decision about conduct, not a billing state. Topping up does not undo it — only the platform can.

### Your web address

Your shop lives at `yourname.weselling.store`. You can change it, but not casually: every change orphans printed receipts, WhatsApp messages and QR codes on your wall, so there is a cooldown between changes.

The old address is held for a while so it can be redirected, and so nobody else can immediately take a name your customers still have written down.

### Your own domain

You can point a domain you own at your shop. It serves nothing until you have proved you own it by publishing a DNS record — an unverified claim on somebody else's domain must never resolve.

### Closing your account

You keep read access and export for a retention window after closing, so nothing is lost the moment you decide to stop.

---

## Building a storefront pack

> Not published yet — the developer format for storefront templates is still being designed.

Source: https://weselling.store/docs/building-packs

### Coming soon

We are designing a way for developers to build storefront templates that businesses on WeSelling can install.

It is not ready to be built against yet. The format is still moving, and publishing it before it settles would mean somebody building a template that breaks on a live shop when the format changes underneath it.

> When the format is fixed, this page will carry the whole contract: what a template may control, how it is packaged, how versions work, and how to publish one. Until then, nothing here is stable enough to rely on.

### In the meantime

Every shop can already choose from the built-in storefront formats — see [Storefront packs](https://weselling.store/docs/storefront-packs) for what each one suits.

If you are a developer who wants to build these, tell us what you are trying to make. What people actually want to build is the thing that should decide the format, and we would rather hear it before it is fixed than after.

---
