Integrating Bexio into your website: a 2026 Swiss SME guide
Connecting Bexio to your website: what's possible, what isn't, and what it costs. A clear guide for a Swiss SME in 2026.
Bexio is the management software used by many Swiss SMEs. Invoices, quotes, client contacts, a link to your accounting. If you run a business in French-speaking Switzerland, you probably already know it.
Your website lives in its own corner. A visitor fills in a form, you get an email, and you copy everything by hand into Bexio. It's slow. It causes mistakes. And nobody really told you that the two can talk to each other. This guide explains how the connection would work, what's possible, and what it costs. No vague promises: just the method, and its limits.
Why connect Bexio to your website
Most SMEs in Geneva have two tools that don't talk to each other. On one side, the website that receives requests. On the other, Bexio that handles clients and invoicing. In between, a human doing copy and paste.
That manual copying is expensive. Not in direct francs, but in time. Fifteen minutes per lead, multiplied by the month's requests, adds up to hours. Hours you don't bill. And every copy-paste adds a risk of error: a misspelled email, a wrong phone number, a client who slips through the cracks.
Connecting the site to Bexio removes that step. A request comes in, and it files itself in the right place. Here is what changes in practice:
- Zero re-typing. The contact created on the site shows up in Bexio with no action from you.
- Fewer errors. Data passes through as is, with no typos.
- Clean tracking. Every lead is logged from the first second, not three days later.
- Faster replies. You see the request inside your usual tool, where you already work.
To link the two, I use the Bexio API. An API is an official entry door: Bexio publishes precise rules so that another program can come and read or write data inside it. Your site knocks on that door, shows an authentication key, and drops off the information. Bexio files everything in the right folder. No manual step.
What you can automate
The Bexio API covers a good chunk of what matters for an SME. Not everything is equal in complexity, but here are the realistic automations in 2026.
Creating contacts. This is the simplest and most useful case. A form on the site creates a contact record directly in Bexio. First name, last name, email, phone, message: it all arrives sorted.
Generating quotes. A visitor configures a request on the site, and a draft quote is prepared in Bexio. You review it, adjust it, send it. The bulk of the work is already done.
Creating invoices. For a site that sells (a course, a subscription, a product), a confirmed order can trigger an invoice in Bexio. I come back to this below with a concrete case.
Syncing products. If you manage a catalogue in Bexio, I can show the right items and prices on the site, with no double entry.
To make this react in real time, I rely on webhooks. A webhook is the opposite of the classic API: instead of your site constantly asking "anything new?", it's Bexio that warns your site as soon as an event happens. A payment received, an invoice marked as paid: Bexio sends a signal, and your site reacts. A paid invoice can then trigger the automatic sending of an access or a document.
None of these automations require a complex site. Often it's just a well-placed piece of code between the form and Bexio. If you want to see the full set of cases I handle, I've detailed my automation offer for SMEs.
Case 1: client form to Bexio contact
This is the most requested automation, and the simplest to set up. Here is how I would connect it, step by step.
Step 1: the form sends the request. The visitor fills in their name, email, message. Instead of only landing in your inbox, the data goes to a small program on the server side. That program is the only one holding the access key to Bexio. The key never sits in the visitor's browser. That matters for security.
Step 2: the server calls the Bexio API. The program prepares the contact record in the format Bexio expects. It sends it to the right address (/contact in the API), with the authentication key. Bexio checks, accepts, and creates the record.
Step 3: Bexio confirms. Bexio returns a contact ID. The server keeps that confirmation, just in case. If something jams, I know exactly where.
Step 4: the visitor sees a success message. For them, nothing changes. They just experience a normal form. The magic happens behind the scenes.
In practice, I recommend keeping the notification email too. That way you're warned right away, and the record already exists in Bexio. Belt and braces.
One detail that counts: what if Bexio is briefly unavailable? A good setup plans for that. The request is not lost. It's put in a queue and sent again later. The visitor never sees an error. That's the kind of detail that separates a quick hack from clean work.
This case takes a few hours of development. For an SME in Geneva receiving ten to thirty requests a month, the time saved pays off fast.
Case 2: order on the site to Bexio invoice
This case is more ambitious. The site no longer just forwards a request: it triggers a real invoice in your accounting. Keep it for sites that genuinely sell something online.
Step 1: the client orders and pays. On the site, the client picks their product or service, then pays. The payment goes through a Swiss provider like Stripe or a local module. This part stays separate from Bexio: Bexio never touches the bank card directly.
Step 2: the confirmed payment triggers the Bexio API. Once the payment is validated, the server prepares an invoice in Bexio. It adds the right client, the right lines, the right amount, and VAT if it applies. A useful reminder: a Swiss sole proprietorship under 100,000 francs of turnover is not liable for VAT. So the setup has to handle both cases, with or without VAT, depending on your situation.
Step 3: Bexio creates the invoice. The invoice appears in your Bexio, ready. Depending on your choice, it can stay a draft for review, or go straight to the client.
Step 4: the webhook closes the loop. When the invoice is marked as paid in Bexio, a webhook warns the site. The site can then unlock an access, send a document, or activate a subscription. The loop is complete, with no action on your part.
Let's be honest: this case demands rigour. Invoicing touches your accounting and the tax office. A wrong invoice is a real problem, not a cosmetic detail. That's why I test this kind of setup heavily before putting it live. I validate every scenario: successful payment, failed payment, refund, the client double-clicking. Nothing is left to chance.
If your need is simpler than a full shop, I can often stop at Case 1. No point paying for automatic invoicing if you bill three times a month. The right tool is the one that matches your real volume.
Limits of the integration
I'd rather state the limits upfront. An honest guide doesn't sell dreams.
The API has rate rules. Bexio limits the number of calls per minute. For a normal SME, you'll never feel it. But if you imagine importing ten thousand contacts at once, you have to spread it out over time. It's manageable, but it needs planning.
Not everything is exposed by the API. Bexio opens up a large part of its features, not all of them. Some very specific actions stay manual. Before promising an automation, I check it's actually possible in the official documentation. No surprise after billing.
Access keys must be protected. A leaked API key is an open door to your client data. It lives on the server side, never in the browser, never in public code. That's a non-negotiable rule.
Bexio can change its API. Like any software, Bexio evolves its rules. A version can be retired. A setup that works today needs a minimum of monitoring over time. That's exactly what a maintenance contract covers.
A note on my experience. I'm a developer, I work alone, and my business is young. I haven't yet delivered a Bexio integration in production. What I describe here is the method, validated against Bexio's official documentation. I'd rather tell you straight than inflate a fake track record. My only delivered project so far is the bilingual website for the firm Ahmed Ghattour & Co, and I still maintain it. If robustness matters to you, know that I already know the traps, even without a Bexio case in my portfolio.
One last bit of common sense: before coding a custom automation, I check there isn't already a ready-made connector that does the job. Sometimes there is. In that case, I tell you, and I save your budget.
What it costs
Let's talk clear numbers, in Swiss francs. Here are my real rates, with no hidden asterisk.
A simple automation, like Case 1 (form to Bexio contact), starts at CHF 800. It's a standalone setup, placed between your existing form and Bexio.
A fuller setup, like Case 2 (order to invoice, with payment and webhooks), belongs more to a business-tool project, from CHF 4,000. The range depends on the number of scenarios to cover and the VAT rules.
If the integration comes with a brand-new website, the site itself follows my usual rates: a showcase site from CHF 2,500, an advanced or multilingual version from CHF 3,000 to 12,000. I've laid it all out on my website pricing in Switzerland page.
Once live, an integration needs a minimum of follow-up, because the API can evolve. My hosting and maintenance is CHF 800 per year, or CHF 80 per month. A one-off intervention outside the plan is billed at CHF 100 per hour.
Why custom instead of a ready-made plugin on a standard site? Because a clean setup, tested, that handles failures, lasts. That said, I have nothing against other approaches: WordPress is great for other needs. If an existing connector is enough, I point you to it. To understand when custom truly makes sense, I wrote a comparison: WordPress versus custom for a Swiss SME.
Connecting Bexio to your website isn't science fiction. It's a well-placed piece of code between two tools you already use. The payoff: less re-typing, fewer errors, more time for your real work. And since I'm starting out, you get launch rates and my full attention on your project.
Want to see if your case is doable? See the automation offer and write to me with your need. I'll tell you straight what's possible, and what isn't.