Description
Tellbill is a Swiss invoicing service: QR-bill invoices (ISO 20022), automatic payment reminders, bank reconciliation and credit notes. This plugin connects your WooCommerce shop to your Tellbill account.
What it does
- When an order reaches the trigger status you choose (default: « Processing »), the plugin calls the Tellbill API and creates the matching invoice — with a Swiss QR code — then (optionally) emails it to your customer.
- The Tellbill invoice number is displayed in the orders list and in the order notes.
- Payment sync (optional): when the customer pays the QR-bill, Tellbill notifies WooCommerce through a signed webhook and the order is automatically marked as paid (stock, downloads, etc.).
- Refunds: a WooCommerce refund automatically creates the matching credit note in Tellbill (VAT included; full refund = full credit note).
- Duplicate-safe: each order is sent with a unique identifier (
external_id = "wc_<order id>"). If the same order is sent twice (double status change, network retry), Tellbill returns the existing invoice instead of creating a duplicate.
Requirements: a Tellbill account (https://tellbill.ch) and an API key.
Which trigger status should you choose?
- Invoice-based selling (very common in Switzerland: the customer receives the goods, then pays within X days): trigger « Processing » or « Completed ». The invoice carries your payment term; if the customer is late, Tellbill sends reminders automatically.
- Prepayment by QR-bill (the customer pays before you ship): enable the « Direct bank transfer » gateway so the order lands in « On hold », and set the trigger to « On hold ». The customer receives the QR-bill, pays, then you ship.
- Paid online (card at checkout): trigger « Processing » — the Tellbill invoice then serves as a receipt and accounting record.
External services
This plugin communicates with the Tellbill API (https://tellbill.ch) — the invoicing service it connects to; that is its sole purpose. No data is sent until you configure your API key.
Data transmitted to the Tellbill API (https://tellbill.ch/api/v1, or the URL you configure):
- When an invoice is created (order reaching the trigger status): the customer’s billing details (name, email, address), the order lines (item names, quantities, prices) and the order number.
- When a refund is issued: the refunded amount and the refund reason.
- When you click « Test connection »: only your API key is transmitted (as a header).
This data is required to issue the invoices. It is processed by Tellbill according to its terms of service and privacy policy:
- Terms of service: https://tellbill.ch/cgu
- Privacy policy: https://tellbill.ch/confidentialite
Translations
The plugin ships with German (de_DE, de_CH), Italian (it_IT) and English (en_US, en_GB) translations — the four Swiss business languages are covered out of the box. Source strings are in French (built for the Swiss market). A .pot template is bundled in /languages for any additional language.
Installation
- Upload the plugin through Plugins Add New Upload Plugin (or copy the folder to
wp-content/plugins/), then activate it. - Go to WooCommerce Settings « Tellbill » tab.
- Paste your Tellbill API key (Tellbill panel Settings API & integrations).
- Pick the trigger status, the payment term and the default VAT rate, then use the « Test connection » button.
Payment sync (optional): in your Tellbill panel Webhooks, create an endpoint pointing to the URL shown in the plugin settings (https://your-site/wp-json/tellbill/v1/webhook), subscribed to the invoice.paid event. Then paste the signing secret shown by Tellbill into the plugin settings. Requests are verified with an HMAC-SHA256 signature and a 5-minute anti-replay window; while no secret is configured, the endpoint rejects all requests.
FAQ
-
Do I need a Tellbill account?
-
Yes. The plugin is a connector: invoices are created, sent and reconciled by Tellbill. You can create an account on https://tellbill.ch.
-
In which languages are the invoices sent?
-
Tellbill issues the invoice PDF and the email in the customer’s language (French, German, Italian or English), configurable per customer in your Tellbill panel.
-
What happens if the API is unreachable when an order comes in?
-
The plugin adds a note to the order with the error message. You can re-trigger the invoice by setting the order status again — thanks to the
external_id, no duplicate will ever be created.
Avis
Il n’y a aucun avis sur cette extension.
Contributeurs & développeurs
« Tellbill for WooCommerce » est un logiciel libre. Les personnes suivantes ont contribué à cette extension.
ContributeursTraduisez « Tellbill for WooCommerce » dans votre langue.
Le développement vous intéresse ?
Parcourir le code, consulter le SVN dépôt, ou s’inscrire au journal de développement par RSS.
Historique des changements
1.4.2
- Review fix: the admin JavaScript and CSS are now loaded via the standard
wp_enqueue_script/wp_enqueue_stylefunctions (withwp_localize_scriptfor the nonce and labels) instead of being printed inline. - Translations are now delivered through WordPress.org language packs (translate.wordpress.org) and loaded automatically; the plugin no longer ships or manually loads bundled translation files.
1.4.1
- Security: the payment-sync endpoint now rejects ALL requests until a signing secret is configured (previously, an empty secret meant requests were accepted unverified).
- WordPress.org compliance: plugin renamed « Tellbill for WooCommerce » (trademark rules), English readme, Requires Plugins / License URI headers, admin notice when WooCommerce is inactive, « External services » disclosure, translators comments, bundled .pot file.
- Bundled translations: German (de_DE, de_CH), Italian (it_IT) and English (en_US, en_GB).
1.4.0
- WooCommerce refund Tellbill credit note, created automatically, VAT included (full refund = full credit note; partial refunds grossed up by the VAT rate when WooCommerce does not handle tax). One credit note per refund (duplicate-safe).
1.3.0
- « Test connection » button in the settings (validates the API key).
- Plugin internationalized (i18n): all strings are translatable.
1.2.0
- Payment sync: Tellbill webhook (invoice.paid) the WooCommerce order is automatically marked as paid. Signed REST endpoint (HMAC), mapped via external_id.
1.1.0
- Configurable payment term (payment_term_days).
- Default trigger status = « Processing »; guidance for the 3 selling models in the settings.
1.0.0
- Initial release: invoice created on order, duplicate-safe (external_id), orders-list column + order notes, HPOS compatible.
