Automate invoicing in South Africa: connect your shop, bookings or CRM to Xero or Sage.
Stop typing invoices by hand. Connect Shopify, a booking system or a CRM to Xero or Sage, keep tax invoices valid for SARS and match payments faster.
AutomationUpdated 7 min read
If someone in your business copies orders, bookings or won deals into Xero or Sage by hand, you know the cost. It takes hours every week, one typo puts the wrong amount on an invoice, and at month end nobody can say which payment belongs to which order.
This guide shows how to connect an online shop, booking system or CRM to Xero or Sage Business Cloud Accounting so invoices, payments and stock update on their own. It compares the three ways to connect them, covers what SARS needs on a valid tax invoice, explains bank feeds, and ends with a checklist for before you switch it on.
Is invoicing the right job to automate first?
Usually, yes. It follows clear rules, the information is already digital, and it happens every day. Those are the traits of a good first automation, as we explain in which business processes to automate first.
Count the work before you choose a method: how many invoices a month, how long each takes, and what goes wrong. Our automation savings calculator turns those numbers into hours and rand.
Three ways to connect your systems to Xero or Sage
Most businesses start with the first route and move on only when it stops fitting.
1. A ready-made app
- Connect Shopify to Xero. The Shopify App Store and the Xero App Store both list several apps. Some post each order as its own invoice, others post one summary per day or per payout. Most charge a monthly fee that rises with order volume.
- Card machines. Yoco links to Xero, Sage and QuickBooks. At the time of writing, its Xero link imports daily sales and Yoco fees, and needs Yoco's Pro plan.
- Sage Business Cloud integration with your shop. The South African Sage marketplace lists connectors such as Stock2Shop, which syncs stock and orders between Sage and Shopify, WooCommerce, Magento and Takealot.
A warning for Sage users. Sage Business Cloud Accounting in South Africa does not run on the same system as the Sage Accounting sold in the UK, US and Europe. When a South African merchant reviewed one Shopify app for Sage, the developer replied that "Sage SA is a different API". An app that works for Sage overseas may not work for you, so check the listing names South Africa and test it on your own Sage company before you pay.
Ready-made apps are cheap and quick, but you get their way of numbering invoices, picking VAT rates and handling refunds.
2. A connector tool such as Zapier or Make
Zapier and Make link apps without code. You set a trigger, such as "new paid order in Shopify" or "deal won in the CRM", and an action, such as "create a sales invoice in Xero". Both have Xero and Sage apps and connect to many booking systems, form tools and CRMs.
This route suits systems with no ready-made app. You can also add steps, such as checking that an invoice for the order does not already exist. They charge by the number of tasks or runs each month, so price them against your real volumes. The Sage warning applies here too.
3. A custom integration
This is code written for your business that talks to Xero or Sage directly through their APIs. Sage publishes a separate API for its South African product, with keys issued by Sage South Africa.
It makes sense when you have rules apps cannot handle, such as deposits or split payments, when several systems feed one set of books, or when per-task fees start to add up. It costs more to build and needs looking after, so it is rarely the first step. This is the kind of business process automation we build when the ready-made options run out.
What SARS needs on a valid tax invoice
If you are registered for VAT, automation does not change the rules. It does mean one mistake repeats on every invoice. SARS publishes a checklist. A full tax invoice, needed when the amount including VAT is more than R5,000, must show:
- The words "Tax Invoice", "VAT Invoice" or "Invoice".
- Your name, address and VAT registration number.
- The buyer's name and address, and their VAT number if they are a VAT vendor.
- A serial number and the date of issue.
- An accurate description of the goods or services.
- The quantity or volume supplied.
- The value, the VAT charged and the total including VAT.
For R5,000 or less you may issue an abridged tax invoice, which can leave out the buyer's details and the quantity. For R50 or less, no tax invoice is needed. Amounts must be in rand. SARS notes that a business cannot claim back VAT on its purchases without a proper tax invoice, so business customers will spot errors.
Three rules matter most when you automate:
- One tax invoice per sale. The VAT Act says it is not lawful to issue more than one tax invoice for each taxable supply. If Shopify emails an invoice and Xero sends another for the same order, pick one system to issue the customer's document and let the other only record the sale.
- Capture business details at checkout. Many checkouts do not ask for a VAT number. Add the field so business orders over R5,000 carry the buyer's name, address and VAT number into your books.
- Issue within 21 days of the date of supply. A connector that fails quietly for a month can push you past that.
Refunds should become credit notes against the original invoice, not deleted invoices.
SARS is also consulting on e-invoicing. Nothing is compulsory at the time of writing, but invoices created by an integration will be easier to adapt than ones typed by hand.
This is general information, not tax or legal advice. Check your setup with your accountant.
Matching payments with bank feeds
Creating the invoice is half the job. The other half is marking it paid.
Xero and Sage both bring in transactions from South African banks through bank feeds. Xero and Nedbank launched a direct API feed, and Sage lists direct feeds for several large banks. Not every account type is supported, so look your bank up in the software first. Both systems then suggest matches and let you set rules for repeat items.
Payment gateways and marketplaces are harder. PayFast, Yoco, Paystack and Takealot usually pay one amount that covers many orders, with fees already taken off. To reconcile that cleanly, your integration should:
- post each sale against a clearing account for that gateway;
- record the fees as an expense;
- match the bank payout to the clearing account, not to individual invoices.
Otherwise you will see deposits that never quite match an invoice.
Keeping stock in sync
Decide which system owns stock, because two systems counting it leads to overselling. Either the shop owns stock and sends sales to accounting, or Sage owns stock and pushes levels to the shop, as Stock2Shop does. Use the same product codes everywhere, since mismatched codes often break a sync.
Customer data and POPIA
An integration copies customer names, emails and addresses between systems, often through a service hosted abroad. Under POPIA, a service that processes personal information for you is an operator, and section 21 requires a written contract that makes it keep that information secure. Section 72 limits sending personal information abroad unless conditions are met, such as the recipient being bound by laws or agreements that give adequate protection. Read the connector's data terms. This is not legal advice.
What to check before you switch it on
- One source of truth for invoices, customers and stock.
- VAT rates mapped: standard, zero-rated and exempt items go to the right rate.
- One invoice number sequence, with no duplicates.
- Accounts mapped for sales, shipping, discounts, fees and refunds, agreed with your accountant.
- A start date, so orders you already captured are not posted twice.
- Test orders: a normal sale, a business sale over R5,000, a discount, a refund and a failed payment.
- Error alerts, so nothing fails silently.
- Accounts in your name: the connector, API keys and subscriptions belong to your business.
- A monthly check comparing shop sales with the sales in your books.
Run the manual process alongside the new one for a week or two. When the numbers match, stop typing.
What to do next
List every place a sale starts: the shop, the booking tool, the CRM, the card machine. Count the invoices each creates in a month and what capturing them costs. Often one ready-made app or connector removes most of the work, and custom code handles the rest.
If you would like help choosing a route or building the connection, you can reach us through our contact page.