Description
PWL DTE for Bsale connects your WooCommerce store with Bsale, the leading electronic invoicing and point-of-sale platform in Chile. When an order is completed, the plugin automatically generates the corresponding tax document (boleta or factura electrónica) and submits it to the SII.
Key Features
- Automatic boleta electrónica — generated when an order is completed (codeSii 39)
- Factura electrónica — customer checks “I need an invoice” at checkout and provides their RUT and company name
- Real-time RUT validation — check digit verification with instant feedback
- Classic and Blocks checkout compatible — works with WooCommerce shortcode checkout and the new Blocks checkout (WC 8.6+)
- Manual stock sync — update WooCommerce stock from Bsale with one click
- Duplicate prevention — uses referenceId to avoid issuing the same DTE twice
[pwl_dte]shortcode — display the tax document on the order confirmation page or My Account- Sandbox mode — test without affecting real SII documents
- Activity logs — detailed record of every DTE issued with status and folio number
Requirements
- WordPress 6.0 or higher
- WooCommerce 8.0 or higher
- PHP 8.0 or higher
- Active Bsale account with API token
Lite vs Pro
The free (Lite) edition includes boleta, factura, checkout fields, manual stock sync, and DTE shortcode.
The Pro version adds: automatic cron-based stock sync, dedicated stock office, multi-office support (shipping method office mapping), automatic retry for failed DTEs, real-time webhooks, and credit notes on refunds.
External Services
This plugin connects to the Bsale API to generate and manage electronic tax documents (DTEs) required by Chilean tax law (SII).
What data is sent and when
- When a WooCommerce order is completed, the order details (products, quantities, prices, and customer billing information such as RUT and company name) are sent to Bsale to create a tax document (boleta or factura electrónica).
- When manual stock sync is triggered by the store admin, product SKUs are sent to retrieve current stock levels from Bsale.
- When testing the API connection from the settings page, a simple request is made to verify the token is valid. No customer data is sent.
Service information
- Bsale website: https://www.bsale.cl/
- Bsale API documentation: https://docs.bsale.dev/
- API hosts used by this plugin:
- Default API base URL used by the client:
https://api.bsale.io/v1/ - Additional v2 endpoint usage (for product import and webhook resource reads):
https://api.bsale.io/v2/
- Default API base URL used by the client:
- Terms of service: https://www.bsale.cl/sheet/condiciones-uso
- Privacy policy: https://www.bsale.cl/sheet/politica-privacidad
Source Code and Build Tools
This plugin includes generated production assets under assets/ (for example assets/admin/js/admin.js and assets/public/js/checkout*.js).
The non-compiled source code is publicly available in the project repository:
- Source repository: https://github.com/PluginLATAM/PWL-dte-for-bsale-lite
- JavaScript/CSS source files:
resources/admin/andresources/public/ - Build configuration:
package.json,vite.config.js,tailwind.config.js,postcss.config.js
To build assets locally:
- Install dependencies:
npm install - Development/watch mode:
npm run dev - Production assets build:
npm run build
Installation
- Upload the plugin to
/wp-content/plugins/pwl-dte-for-bsale/or install it directly from the WordPress plugin directory. - Activate the plugin from the Plugins menu in WordPress.
- Go to PWL DTE Settings and enter your Bsale API token.
- Select the mode (Sandbox or Production) and the issuing office.
- Click Test Connection to verify the token is valid.
- Done! DTEs will be generated automatically when orders are completed.
FAQ
-
Do I need a Bsale account?
-
Yes. This plugin requires an active Bsale account and an API token with permission to issue documents.
-
Does it work in sandbox mode?
-
Yes. In Settings Connection you can enable Sandbox mode to test without issuing real documents to the SII.
-
What happens if DTE generation fails?
-
The error is recorded in PWL DTE DTE Logs with the Bsale error message. You can retry manually from the order metabox in the WooCommerce admin.
-
Is it compatible with WooCommerce Blocks checkout?
-
Yes. The RUT, Company Name, and Business Activity fields work with both the classic checkout ([woocommerce_checkout]) and the Blocks checkout (WC 8.6+).
-
Does the plugin deduct stock in Bsale?
-
Yes, if the option is enabled in settings. You can control this via the dispatch parameter in the document settings.
-
Where can I see generated DTEs?
-
Each WooCommerce order has a “Bsale — Tax Document” metabox showing the document type, folio, status, and links to the PDF and public URL. You can also view the full history in PWL DTE DTE Logs.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“PWL DTE for Bsale” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “PWL DTE for Bsale” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
2.0.7
- Removed automatic cross-plugin deactivation logic to comply with WordPress.org activation policy (users now resolve Lite/Pro conflicts manually).
- Finalized 2.0.7 consistency updates across plugin metadata and release docs.
2.0.6
- Resolved Plugin Check scanner findings by tightening prepared-query handling in webhook event queries.
- Replaced legacy runtime logging calls with WooCommerce logger integration for production-safe logs.
- Improved release/build consistency and metadata validation (including plugin header URI safeguards and deploy keep-version flow).
2.0.5
- Hardened WordPress.org review compliance across escaping, admin asset loading, and i18n behavior.
- Added runnable Playwright Lite E2E workflow and updated Lite testing documentation.
2.0.0
- Renamed plugin to PWL DTE for Bsale (slug: pwl-dte-for-bsale) for WordPress.org trademark compliance.
- Converted all inline scripts to use wp_add_inline_script() per WordPress best practices.
- Added External Services section to readme documenting Bsale API usage.
1.0.5
- Legacy release prior to the current trademark-compliant plugin naming.
1.0.1
- Fix: In Blocks checkout (WC Blocks), the “I need an electronic invoice” field is now read correctly using the _wc_other/ prefix that WooCommerce Blocks uses internally. This fixes an issue where a Boleta was always generated instead of a Factura when using the Blocks checkout.
1.0.0
- Initial public release.
- Automatic boleta and factura electrónica generation on order completion.
- RUT, Company Name, and Business Activity fields in checkout (classic and Blocks).
- Real-time RUT validation via AJAX.
- Manual stock sync from Bsale.
- DTE shortcode to display the document on the frontend.
- Sandbox mode for testing.
- Activity logs with filters.
