Xtream UI Pro Connectors

Sell IPTV lines from the system you already use

Connectors let a reseller of an Xtream UI Pro panel sell lines and sub-reseller accounts from their own billing system, shop or ERP. A paid order creates the line on the panel, and suspension, renewal and cancellation follow automatically. You keep your own prices and payment gateway.

Getting started

Every connector talks to the panel through the Reseller API with your own API key. It never sees the panel's admin side and adds no payment step of its own.

  1. Get your API details

    Sign in to the panel with the reseller account the orders are charged to. Its Connectors page shows the API address and the link that creates your API key.

  2. Download and install

    Pick your system below, download the archive and follow its install steps. Each archive also holds a README with every option.

  3. Connect and test

    Enter the API address and the API key in the connector's settings and run its connection test.

  4. Sell

    Map your products to panel packages. New lines, renewals and sub-reseller accounts are paid from the credits of your reseller account, so keep enough credits.

Connectors

17 connectors. Each card says honestly how the connector was tested before release: inside the real system, or through a stand-in for it. Try a connector on a test installation first.

No connector matches. Missing yours? Ask for it on GitHub.

Billing systems

Blesta module

For Blesta 5.x
v1.1.0

Module for Blesta: a paid order creates a line or a sub-reseller account, and renewal, suspension and cancellation in Blesta are carried out on the panel.

How it was testedEvery module function was run against a panel through a stand-in for Blesta. It has not yet run inside a licensed Blesta.
Install steps
  1. Upload the components folder of the archive into the root folder of Blesta, so that components/modules/xtreampro/ exists.
  2. In Blesta open Settings → Company → Modules → Available and install Xtream UI Pro.
  3. On the panel, sign in as the reseller account the orders are charged to and create its API key.
  4. Add a panel to the module: the API host name, the port, whether it uses SSL, and the API key.
  5. Create a package with the module Xtream UI Pro and choose what it sells: a line with its package, or a sub-reseller account with its credits.
Download README Source xtreampro-blesta-1.1.0.zip · 32 KB

Early version: read the notice and test it before using it in production.

SHA-256 3e0e980209dd6f794bfa40ec41887db38518f7e02d6407aee7d3fcf8a17a6b11

ClientExec server plugin

For ClientExec 6.x
v1.1.0

Server plugin for ClientExec: activating a package creates a line or a sub-reseller account, and suspension and deletion in ClientExec are carried out on the panel. ClientExec does not tell a server plugin about renewals, so renewing is an action the admin runs.

How it was testedIts core (API client and provisioning rules) was run against a panel; the part that plugs into ClientExec has not run inside ClientExec yet. The README lists what is unverified.
Install steps
  1. Extract the archive into the root folder of ClientExec, so that plugins/server/xtreampro/ exists.
  2. On the panel, sign in as the reseller account the orders are charged to and create its API key.
  3. In ClientExec add a server with the plugin Xtream UI Pro: the API host name, port, whether it uses SSL, and the API key.
  4. On a product choose that server and set what it sells: a line with its package, or a sub-reseller account with its credits.
Download README Source xtreampro-clientexec-1.1.0.zip · 23 KB

Early version: read the notice and test it before using it in production.

SHA-256 665079f289bd639c1456434efefdaa4c537cb0ee009915baf69d13c101da8c25

FOSSBilling service module

For FOSSBilling 0.8.x
v1.1.0

Service module for FOSSBilling: a paid order creates a line or a sub-reseller account, and renewal, suspension and cancellation in FOSSBilling are carried out on the panel.

How it was testedRun end to end inside FOSSBilling 0.8.8 against a panel.
Install steps
  1. Extract the archive into the root folder of FOSSBilling, so that modules/Servicextreampro/ exists.
  2. In the FOSSBilling admin area open Extensions and activate Xtream UI Pro.
  3. On the panel, sign in as the reseller account the orders are charged to and create its API key.
  4. Open Extensions → Xtream UI Pro, enter the API address and the API key, save and press Test connection.
  5. Create a product of the type Xtreampro and choose on its Configuration tab what it sells: a line with its package, or a sub-reseller account with its credits.
Download README Source xtreampro-fossbilling-1.1.0.zip · 25 KB

Early version: read the notice and test it before using it in production.

SHA-256 05570647acea0df27f95469357bc9515b456ad5889d2c8e21e63586e95deaa82

HostBill provisioning script

For HostBill (Script Provisioning)
v1.1.0

Command-line script for the Script Provisioning module of HostBill: creating, suspending, unsuspending and terminating an account in HostBill is carried out on the panel. Any system that can run a command on billing events can use it.

How it was testedThe script was run from the command line against a panel. It has not yet run inside a licensed HostBill, which has no renewal event: the README says how to call renew.
Install steps
  1. Copy the folder xtreampro of the archive to the HostBill server, outside the web root.
  2. On the panel, sign in as the reseller account the orders are charged to and create its API key.
  3. Copy config.sample.php to config.php, enter the API address and the API key, and make the file readable by its owner only (chmod 600).
  4. Put the two-line wrapper from the README into the scripts folder of HostBill and make it executable.
  5. On a product with the module Script Provisioning, set the script and its arguments for each event as listed in the README.
Download README Source xtreampro-hostbill-1.1.0.zip · 19 KB

Early version: read the notice and test it before using it in production.

SHA-256 4b982f82064273be10feb08612dea9bba5d033b3db7feb76dc2e05b715924994

Webhook bridge for Invoice Ninja

For Invoice Ninja (webhooks) + your own PHP 8.1 web server
v1.1.0

Webhook bridge for Invoice Ninja: a small PHP application you host yourself. Invoice Ninja posts it a webhook when an order is paid or revoked, and the bridge creates, tops up or disables the lines and sub-reseller accounts on the panel and emails the buyer their sign-in details.

How it was testedThe bridge was run against a panel with signed sample webhooks of Invoice Ninja. It has not yet received webhooks from a real Invoice Ninja account; the README lists what is unverified.
Install steps
  1. Extract the archive on your web server and point an HTTPS site at its public folder only.
  2. On the panel, sign in as the reseller account the orders are charged to and create its API key.
  3. Copy config.sample.php to config.php outside the public folder, enter the API address, the API key and the webhook secret, map your products to packages or credits, and make the file readable by its owner only (chmod 600).
  4. In Invoice Ninja open Settings → Account Management → Webhooks and add webhooks for the invoice events listed in the README, pointing at https://your-bridge/hook/invoiceninja, with the custom header from config.php as the shared secret.
  5. Run php bin/bridge.php check to test the configuration, and schedule php bin/bridge.php retry every few minutes to repeat what failed.
Download README Source xtreampro-invoiceninja-1.1.0.zip · 43 KB

Early version: read the notice and test it before using it in production.

SHA-256 5ec87762ca1dbd5baa248533bb54ae8d7c8f7673d08d7b1e6dcd66d50d30c855

Paymenter server extension

For Paymenter 1.5+
v1.1.0

Server extension for Paymenter: a paid order creates a line or a sub-reseller account, and paid renewals, suspension and termination in Paymenter are carried out on the panel.

How it was testedRun end to end inside Paymenter 1.5.9 against a panel.
Install steps
  1. Copy the extensions folder of the archive into the root folder of Paymenter, so that extensions/Servers/XtreamPro/ exists.
  2. On the panel, sign in as the reseller account the orders are charged to and create its API key.
  3. In the Paymenter admin area open Servers, create a server of the type Xtream UI Pro and enter the API address and the API key.
  4. Create a product, attach it to that server and choose what it sells: a line with its package, or a sub-reseller account with its credits.
  5. Keep the queue worker and the cron job of Paymenter running: they create, suspend and terminate the services.
Download README Source xtreampro-paymenter-1.1.0.zip · 20 KB

Early version: read the notice and test it before using it in production.

SHA-256 8ec7451a1aba1bff4df74da323289218f5637789b5498d8c97ffd360b37ad1e2

Webhook bridge for Upmind

For Upmind (webhooks) + your own PHP 8.1 web server
v1.1.0

Webhook bridge for Upmind: a small PHP application you host yourself. Upmind posts it a webhook when an order is paid or revoked, and the bridge creates, tops up or disables the lines and sub-reseller accounts on the panel and emails the buyer their sign-in details.

How it was testedThe bridge was run against a panel with signed sample webhooks of Upmind. It has not yet received webhooks from a real Upmind account; the README lists what is unverified.
Install steps
  1. Extract the archive on your web server and point an HTTPS site at its public folder only.
  2. On the panel, sign in as the reseller account the orders are charged to and create its API key.
  3. Copy config.sample.php to config.php outside the public folder, enter the API address, the API key and the webhook secret, map your products to packages or credits, and make the file readable by its owner only (chmod 600).
  4. In Upmind add a webhook endpoint pointing at https://your-bridge/hook/upmind for the contract product and invoice events listed in the README, and put its secret into config.php.
  5. Run php bin/bridge.php check to test the configuration, and schedule php bin/bridge.php retry every few minutes to repeat what failed.
Download README Source xtreampro-upmind-1.1.0.zip · 43 KB

Early version: read the notice and test it before using it in production.

SHA-256 5ec87762ca1dbd5baa248533bb54ae8d7c8f7673d08d7b1e6dcd66d50d30c855

WHMCS server module

For WHMCS 8.x
v1.1.1

Provisioning module for WHMCS: a paid order creates a line or a sub-reseller account, and suspension, unsuspension, termination and renewal in WHMCS are carried out on the panel.

How it was testedEvery module function was run against a panel through a stand-in for WHMCS. It has not yet run inside a licensed WHMCS.
Install steps
  1. Extract the archive into the root folder of WHMCS, so that modules/servers/xtreampro/ exists.
  2. On the panel, sign in as the reseller account the orders are charged to and create its API key.
  3. In WHMCS open System Settings → Servers → Add New Server: choose the module Xtream UI Pro, enter the API address as hostname and the API key as password, then press Test Connection.
  4. Create a product, select Xtream UI Pro under Module Settings and choose what it sells: a line with its package, or a sub-reseller account with its credits.
  5. From then on WHMCS creates, suspends, unsuspends, terminates and renews them by itself. Every new line, renewal and sub-reseller account is charged to the credits of the reseller account.
Download README Source xtreampro-whmcs-1.1.1.zip · 32 KB

Early version: read the notice and test it before using it in production.

SHA-256 4cff697ee7c4abe6cc32afeea8ff4ba85cb63017982d0d33ac9060e5dfe4f6ae

WISECP product module

For WISECP 5.x
v1.1.0

Product module for WISECP: a paid order creates a line or a sub-reseller account, and renewal, suspension and cancellation in WISECP are carried out on the panel.

How it was testedEvery module function was run against a panel through a stand-in for WISECP. It has not yet run inside a licensed WISECP; the README lists what is unverified.
Install steps
  1. Upload the archive in WISECP under Modules → Product → All Modules → Upload Module, or extract it into the root folder so that coremio/modules/Product/XtreamPro/ exists.
  2. On the panel, sign in as the reseller account the orders are charged to and create its API key.
  3. Open the module Xtream UI Pro, enter the API address and the API key, save and press Test connection.
  4. Create a product in a special product group, choose the module Xtream UI Pro on its Automation tab and set what it sells: a line with its package, or a sub-reseller account with its credits.
Download README Source xtreampro-wisecp-1.1.0.zip · 29 KB

Early version: read the notice and test it before using it in production.

SHA-256 555cf120190a4240032ce70ef4718e27c1b2314d225093e634bf91f24f28f3e2

Shops and websites

Magento 2 module

For Magento 2.4 / Adobe Commerce
v1.1.0

Module for Magento 2: a paid invoice creates the lines or the sub-reseller account of its products, a credit memo or a cancelled order disables them, and customers see what they bought on the order page and under My IPTV.

How it was testedIts core (API client and provisioning rules) was run against a panel; the part that plugs into Magento has not run inside Magento yet. The README lists what is unverified.
Install steps
  1. Extract the archive into the root folder of Magento, so that app/code/XtreamPro/Connector/ exists.
  2. Run bin/magento module:enable XtreamPro_Connector, bin/magento setup:upgrade and, in production mode, setup:di:compile and setup:static-content:deploy.
  3. On the panel, sign in as the reseller account the orders are charged to and create its API key.
  4. Open Stores → Configuration → Xtream UI Pro, enter the API address and the API key and press Test connection.
  5. On a product set the Xtream UI Pro attributes: what it sells: a line with its package, or a sub-reseller account with its credits.
Download README Source xtreampro-magento-1.1.0.zip · 58 KB

Early version: read the notice and test it before using it in production.

SHA-256 2003b7348499b990d5fda73518195da435d6351ae1eccc29e1dd563e147f4b76

OpenCart extension

For OpenCart 4.0.2+
v1.1.0

Extension for OpenCart 4: an order that reaches a paid status creates the lines or the sub-reseller account of its products, a revoked order disables them, and customers see what they bought in their account.

How it was testedIts core and its database layer were run against a panel and MariaDB; the extension has not run inside OpenCart yet. The guide with what is unverified is in the source folder of the connector, not in the archive.
Install steps
  1. In OpenCart open Extensions → Installer and upload the archive. Keep its name xtreampro.ocmod.zip: OpenCart reads the extension code from it.
  2. Open Extensions → Extensions → Modules and install Xtream UI Pro.
  3. On the panel, sign in as the reseller account the orders are charged to and create its API key.
  4. Edit the module: enter the API address and the API key, choose which order statuses count as paid and as revoked, and press Test connection.
  5. On a product open the Xtream UI Pro tab and choose what it sells: a line with its package, or a sub-reseller account with its credits.

The download holds xtreampro.ocmod.zip: upload that file as it is, without renaming it.

Download README Source xtreampro-opencart-1.1.0.zip · 43 KB

Early version: read the notice and test it before using it in production.

SHA-256 9b4c269fdad3a9d3e89f73b980735e3e0089a66a8754d877b5e8f2508085e47f

PrestaShop module

For PrestaShop 8.x
v1.1.0

Module for PrestaShop: a paid order creates the lines or the sub-reseller account of its products, a cancelled or refunded order disables them, and customers see what they bought in their account.

How it was testedIts core (API client and provisioning rules) was run against a panel; the part that plugs into PrestaShop has not run inside PrestaShop yet. The README lists what is unverified.
Install steps
  1. In PrestaShop open Modules → Module Manager → Upload a module and choose the archive.
  2. On the panel, sign in as the reseller account the orders are charged to and create its API key.
  3. Open the configuration of the module, enter the API address and the API key, choose which order statuses count as paid and as revoked, and press Test connection.
  4. On a product open the Xtream UI Pro tab and choose what it sells: a line with its package, or a sub-reseller account with its credits.
  5. To put the sign-in details in the order emails, add {xtreampro_credentials} to the email templates as the README describes.
Download README Source xtreampro-prestashop-1.1.0.zip · 48 KB

Early version: read the notice and test it before using it in production.

SHA-256 11a0de6c8b9898248e57b73588651ea02d91f3cabad64456b5b69446593b2ca5

Webhook bridge for Shopify

For Shopify (webhooks) + your own PHP 8.1 web server
v1.1.0

Webhook bridge for Shopify: a small PHP application you host yourself. Shopify posts it a webhook when an order is paid or revoked, and the bridge creates, tops up or disables the lines and sub-reseller accounts on the panel and emails the buyer their sign-in details.

How it was testedThe bridge was run against a panel with signed sample webhooks of Shopify. It has not yet received webhooks from a real Shopify account; the README lists what is unverified.
Install steps
  1. Extract the archive on your web server and point an HTTPS site at its public folder only.
  2. On the panel, sign in as the reseller account the orders are charged to and create its API key.
  3. Copy config.sample.php to config.php outside the public folder, enter the API address, the API key and the webhook secret, map your products to packages or credits, and make the file readable by its owner only (chmod 600).
  4. In Shopify open Settings → Notifications → Webhooks and add orders/paid, refunds/create and orders/cancelled, in JSON format, pointing at https://your-bridge/hook/shopify. Put the signing secret shown there into config.php.
  5. Run php bin/bridge.php check to test the configuration, and schedule php bin/bridge.php retry every few minutes to repeat what failed.
Download README Source xtreampro-shopify-1.1.0.zip · 43 KB

Early version: read the notice and test it before using it in production.

SHA-256 5ec87762ca1dbd5baa248533bb54ae8d7c8f7673d08d7b1e6dcd66d50d30c855

WordPress plugin

For WordPress 5.8+ with WooCommerce, Easy Digital Downloads or SureCart
v1.1.1

Plugin for WordPress with WooCommerce, Easy Digital Downloads or SureCart: sells packages and sub-reseller accounts as products, creates the line or the account when an order is completed and shows customers what they bought.

How it was testedRun end to end inside WordPress 7.1 with WooCommerce 11 and with Easy Digital Downloads 3.7 against a panel. The SureCart integration was run through a stand-in for SureCart and has not run in a real SureCart store yet.
Install steps
  1. In WordPress open Plugins → Add New → Upload Plugin, choose the archive and activate Xtream UI Pro Connector.
  2. On the panel, sign in as the reseller account the orders are charged to and create its API key.
  3. In WordPress open Settings → Xtream UI Pro, enter the API address and the API key, then press Test connection.
  4. With WooCommerce or Easy Digital Downloads: edit a product and choose what it sells: a line with its package, or a sub-reseller account with its credits. A completed order creates it and emails the sign-in details to the customer.
  5. Put the shortcode [xtreampro_packages] on a page to list the packages, [xtreampro_my_lines] to show signed-in customers their lines and [xtreampro_my_reseller] their reseller account.
Download README Source xtreampro-wordpress-1.1.1.zip · 57 KB

Early version: read the notice and test it before using it in production.

SHA-256 dfeecf88bae8cf0ca5a3a619e4d50ddf267a0a51261343a241c742dfeda98e1a

ERP and CRM

Dolibarr module

For Dolibarr 18+
v1.1.0

Module for Dolibarr: an invoice classified as paid creates the lines or the sub-reseller account of its products, a cancelled invoice or a credit note disables them, and each line can be renewed, suspended or terminated from the third party's card.

How it was testedIts core (API client and provisioning rules) was run against a panel; the part that plugs into Dolibarr has not run inside Dolibarr yet. The README lists what is unverified.
Install steps
  1. Extract the archive into htdocs/custom of Dolibarr, so that htdocs/custom/xtreampro/ exists.
  2. In Dolibarr open Home → Setup → Modules and enable Xtream UI Pro.
  3. On the panel, sign in as the reseller account the orders are charged to and create its API key.
  4. Open the setup page of the module, enter the API address and the API key and press Test connection.
  5. On a product or service fill the Xtream UI Pro fields: what it sells: a line with its package, or a sub-reseller account with its credits.
Download README Source xtreampro-dolibarr-1.1.0.zip · 42 KB

Early version: read the notice and test it before using it in production.

SHA-256 bfe1d12cb92834fde19e2c22e6941b77547ca0d24378d95a6a66ac9a44f6a0ce

ERPNext app

For ERPNext 15 (Frappe 15)
v1.1.0

Frappe app for ERPNext: a paid sales invoice creates the lines or the sub-reseller account of its items, a cancelled invoice or a credit note disables them, and each line can be renewed, suspended or terminated from ERPNext.

How it was testedIts core (API client and provisioning rules) was run against a panel; the part that plugs into ERPNext has not run inside ERPNext yet. The README lists what is unverified.
Install steps
  1. Extract the archive into the apps folder of your bench, so that apps/xtreampro_connector/ exists, then run bench pip install -e apps/xtreampro_connector and bench --site your-site install-app xtreampro_connector.
  2. On the panel, sign in as the reseller account the orders are charged to and create its API key.
  3. Open Xtream UI Pro Settings, enter the API address and the API key, press Test connection and then Sync packages.
  4. On an item fill the Xtream UI Pro fields: what it sells: a line with its package, or a sub-reseller account with its credits.
  5. Keep the scheduler and the background workers of the bench running: they create the lines after an invoice is paid.
Download README Source xtreampro-erpnext-1.1.0.zip · 57 KB

Early version: read the notice and test it before using it in production.

SHA-256 dd4252e5e9b94237edefd82860d424431536cd814d25bf64db248dee9952b3af

Odoo module

For Odoo 17 (Sales)
v1.1.1

Module for Odoo Sales: confirming a sale order creates the lines or the sub-reseller account of its products, which are then renewed, suspended or topped up with credits from Odoo.

How it was testedRun end to end inside Odoo 17 against a panel.
Install steps
  1. Extract the archive into the addons folder of Odoo, so that xtreampro_connector/ exists, then restart Odoo.
  2. In Odoo open Apps → Update Apps List and install Xtream UI Pro Connector.
  3. On the panel, sign in as the reseller account the orders are charged to and create its API key.
  4. In Odoo open Settings → Xtream UI Pro, enter the API address and the API key, press Test connection and then Sync packages.
  5. Choose on every product what it sells: a line with its package, or a sub-reseller account with its credits. Confirming a sale order creates them; they are listed under Sales → Xtream UI Pro.
Download README Source xtreampro-odoo-1.1.1.zip · 53 KB

Early version: read the notice and test it before using it in production.

SHA-256 7bd49fdd0aa6774d0c0b2b5ff97b6aaa9450a18fead8d0635fe9ebe8f7e9e94e

Verify & update

Check a download

Every archive carries its version in its name. Compare it with the checksum list before you install it:

curl -O https://plugins.xtream-ui.pro/SHA256SUMS
sha256sum -c --ignore-missing SHA256SUMS

Scripts and tools can read versions.json: the current version, file and checksum of every connector.

Update a connector

  • Read the connector's CHANGELOG (next to its README) for what changed.
  • Install the new archive over the old one, the same way you installed it.
  • Run the connection test again afterwards.

The same archives are also on your panel's Connectors page.

Contribute

Report a problem

Open an issue with the connector and its version, your system's version, what you did and the error from its module log. Remove API keys, passwords and customer data before you paste a log.

Improve a connector

The connectors are open source under the MIT license. Fork the repository, change one connector per pull request and say how you tested it. See CONTRIBUTING.md.