.NET Client library that wraps the functionalities provided by the kontomanager.at web management interface used by a number of mobile carriers in Austria (MVNOs in the A1 network). Starting with version 2.1.0, the library also supports A1 accounts, which do not have a Kontomanager interface, but use a different system.
The Kontomanager Web interface has had a major design overhaul. Unfortunately, the WebSMS functionality was removed in the process. v1.x is no longer working for at least XOXO and YESSS as of 15.02.2023.
v2.0.0 provides basic account usage reading functionality comparable to what was present before. Reading of current monthly cost is not implemented yet.
Simply install the nuget package from https://www.nuget.org/packages/KontomanagerClient to your project.
The library was testet for:
- XOXO @ xoxo.kontomanager.at
- Yesss @ www.yesss.at/kontomanager.at/
Educom@educom.kontomanager.at| Educom was rebranded to XOXO- A1 Business
Other carriers that use Kontomanager but were not tested include:
- Georg @ kundencenter.georg.at
- BilliTel @ billitel.kontomanager.at
- Goood @ goood.kontomanager.at
- Simfonie @ simfonie.kontomanager.at
And possibly more. Feel free to add carriers to that list.
var client = new XOXOClient("<login_username/number>", "<login_password>")
.EnableDebugLogging(true) // Enables Console Log outputs
.UseAutoReconnect(true); // Enables automatic re-login after a connection timeout
await client.CreateConnection();
var usage = await client.GetAccountUsage();
usage.PrintToConsole();
Some extra units, such as USA minutes, are included in the AdditionalQuotas
dictionary of PackageUsage
.
The key is the string used in the MeinA1 interface to describe the unit.
var client = new A1BusinessClient("<login_username/email>", "<login_password>");
await client.CreateConnection();
var numbers = await client.GetSelectablePhoneNumbers();
var usage = await client.GetAccountUsage(numbers.First());
usage.PrintToConsole();
var client = new XOXOClient("<login_username/number>", "<login_password>")
.EnableDebugLogging(true) // Enables Console Log outputs
.UseAutoReconnect(true); // Enables automatic re-login after a connection timeout
await client.CreateConnection();
string firstNumber = await client.GetSelectedPhoneNumber(); // returns the currently selected phone number in format 43681...
var usage = await client.GetAccountUsage(); // Get Account usage for firstNumber
usage.PrintToConsole(); // Prints a summary to the console
var numbers = await client.GetSelectablePhoneNumbers(); // gets a list of PhoneNumber object for each number linked to the account (has string number and string subscriberId)
PhoneNumber otherNumber = numbers.First(n => !n.Selected);
await client.SelectPhoneNumber(otherNumber); // select other phone number for the client
var otherNumberUsage = await client.GetAccountUsage(); // get account usage for otherNumber
otherNumberUsage.PrintToConsole();
The following projects seem to do the same thing as this client in other languages. However, I did not test any of them.
- Node.JS client https://github.com/mklan/educom-sms
- Python Client https://github.com/cynicer/educom-web-sms
- Python Client https://git.flo.cx/flowolf/yessssms
- set culture for parsing numbers to de-DE. This fixes the problem where used data was read incorrectly if the system locale is not de-DE.
- add more information to
A1BusinessClient
, such as contract validity periods, loyalty points and customer number. - fix bugs found in versions 2.1.0 - 2.1.2
- add
ICarrierAccount
interface to introduce a common interface for all carriers - add support for non-kontomanager MeinA1 accounts via the
A1BusinessClient
- fix bug that parsed the remaining EU data incorrectly
- fix bug that returned null instead of an empty list for selectable phone numbers
- fix bug that caused prepaid credit to be read incorrectly if system culture was not german
- includes fix intended for 2.0.2
- bug fixes
- bug fixes
This is a breaking change. Some methods were removed and the constructor was refactored to only require one URL.
- remove no longer supported WebSMS functionality
- add support for new Kontomanager UI
- added a function to extract the selected phone number from the header
- fix issue that caused an exception when the settings.php page redirects to kundendaten.php for disabled phone numbers
- fix issue that caused an exception when trying to switch to a phone number that has been deactivated
- fix issue with package validity not being read for some packages
- add .net6 as target framework
- fix wrong used data number for eu data
- fix bad return value in CreateConnection
- add support for multiple sims managed under one account
- add support for reading basic information on the contract (available min/sms/mb, ...)