SIMPLer Features‎ > ‎Features Index‎ > ‎

2011-2Q: SIMPLer API

Due to multiple recurring requests to add an API that would allow easier integration of the signup forms with SIMPLer system, a SIMPLer API feature has been added to the system. 

API has been implemented in two technologies:
  • SOAP - has been used to provide a well known, standardised environment, that should be easy to deploy regardless of the programming platform used. An overview of SOAP technology can be find here: http://en.wikipedia.org/wiki/SOAP
  • REST/JSON - this is a de-facto industry standard for small integrations
Setup
To interface with SIMPLer operator has to:
  1. Provide Azotel Technologies Ltd with a Public IP address the API will be interfaced from. Also let know which version of API  (SOAP or REST/JSON) will be used
  2. Configure their API client script with the details below that will be send back as an acknowledgement of the IP address:
    • API URL
    • API credentials: username & password
Examples
Do refer to below examples while developing your API client.
  • SOAP - An example of SIMPLer SOAP API client written in Perl and PHP language can be found here:
  • REST/JSON


General
The SOAP Client should interface with a proxy URL contructed appropiately to his server name. I.e if the IP address of the wib server operator uses is 84.203.220.111 that the URL would look following:
http://84.203.220.111/API/operatorapi.pl
The URI should point at OperatorAPI context
http://84.203.220.111/OperatorAPI
In perl language it would look followingly (using the SOAP::Lite module)
my $result = SOAP::Lite
	-> uri('http://84.203.220.111/OperatorAPI')
	-> proxy('http://84.203.220.111/API/operatorapi.pl
')
REST/JSON - do please review attached CURL based examples - these explain everything on how to invoke each command - there are two invoke each command:
  • one that follows the original API concept - these are available under /API folder. i.e. 
POST server.azotel.com/API/modifyCustomer
  • second that follows REST a bit more closely - these are available under / folder. In this case POST, PUT and DELETE functions would be used for data manipulation i.e. 
PUT server.azotel.com/customer

The API runs on port 8080 and it uses same authentication procedure as original API i.e. it will check against the Access List for username, ip and password - before enabling any APi functions are executed.

The SSL version of API is deployed under following URL:

https://server.azotel.com/restapi/




Functions

  • pingAPI - this function is used to verify that the SIMPLer API is reachable
    • Attributes - any set constructed from below can be used as long as the required set is provided
                api_username       => TEXT (required)
                api_password       => TEXT (required)
                operator           => TEXT (optional): to specify the database in case an operator has muiltiple databases
  • Result - the SOAP reply will either:
    • 'OK' - to confirm successful processing 
    • error message
  • addCustomer - this function is used to add a new customer account to SIMPLer system.
    • Attributes - any set constructed from below can be used as long as the required set is provided
api_username       => TEXT (required)
api_password       => TEXT (required)
operator           => TEXT (optional): to specify the database in case an operator has muiltiple databases
name               => TEXT (required)
nickname           => TEXT (required): SIMPLer will make it unique by adding a serial number postfix if the nickname already exists in the database
invoicingid        => TEXT (required): SIMPLer will make it unique by adding a serial number postfix if the invoicingid already exists in the database
init_date          => DATE: Initial Contact date in MM/DD/YYYY format
startdate          => DATE: Start Date in MM/DD/YYYY format
customerstatus     =>  TEXT: current, etc..
customer_tracking  => TEXT
installdate        => DATE: Installation Date in MM/DD/YYYY format
frequency          => INTEGER: billing frequency in months
invoicing_status   => BOOLEAN: 1 billing on, 0 billing off
voip               => BOOLEAN: 1 account voip enabled, 0 account voip disabled
address            => TEXT: Installation Address in add1:::add2:::add3:::add4:::add5:::add6 format, where:
add1: Street 1
add2: Street 2
add3: Town
add4: County
add5: Post Code
add6: State

iaddress           => TEXT: format is same as for address attribute
country            => TEXT
eup_username       => TEXT: End User Portal username (if not used customer invoicing ID will be used as EUP login)
password           => TEXT: End User Portal password
type               => TEXT: Customer account type from following list: customer business, customer home, reseller, partner, supplier, competitor gov,
marketingcode      => TEXT
marketingemails    => BOOLEAN: 1 marketing emails on, 0 marketing emails off
installation_area  => TEXT
community_code     => TEXT
reference          => TEXT or INTEGER - if using historical Referencing system, this field is to be populated with any text representing the referee, otherwise populate with referee customer ID number
referral_fee_status => TEXT: no fee, due, pre-paid, paid
referral_fee_amount => FLOAT
note               => TEXT
privatenote        => TEXT
importance         => INTEGER: from 1 to 5
phone_list_main    => TEXT
fax                => TEXT
email              => EMAIL ADDRESS
accounts_email     => TEXT
support_email      => TEXT
website            => TEXT
contacts_list      => TEXT: The contact list in following format - name1:::phone1:::position1:::email1///name2:::phone2:::position2:::email2
vat_exemption      => TEXT: vat exemption details in following format - Yes:::1:::29/12/2012
payment_method     => TEXT: cash, cheque, credit card, debit card, direct debit, online transfer, standing order
send_method        => TEXT: mail, pdf, both, none
                                            where:
                                             - mail - Email To Customer
                                             - pdf  - Only to Operator
                                             - both - Both email customer and send to operator
                                             - none - do not send invoice
                                    
credit             => INTEGER: number of credit days assigned do the cusotmer
setup_fees         => FLOAT
folder             => TEXT
order_number       => TEXT
gwid               => INTEGER: ID number of the gateway we want to assign to customer account
bucketid           => INTEGER: ID number of the bucket we want to assign to customer account
monitor            => TEXT: monitor, no monitor, monitor+sms, monitor no alert
tcp                => TEXT
udp                => TEXT
p2p                => TEXT: true, false
sites              =>
ip_type            => TEXT: public, private
ip_number          => INTEGER
connLimit          => INTEGER
rssi               => BOOLEAN: 1 equipment graphs on, 0 equipment graphs off
nat                => BOOLEAN: 1 auto provision nat on, 0 auto provision nat off
auto_prov_radius_credentials             => BOOLEAN: auto-provision 'Generate RADIUS Accounts'
auto_prov_activatecpe                    => BOOLEAN: auto-provision 'Activate IP Address'
auto_prov_radius_dynamic_ip              => BOOLEAN: auto-provision 'Generate Customer IP Address'
auto_prov_pppoe                          => BOOLEAN: auto-provision 'Set PPPoE on WAN interface'
sand_invoice_status                      => TEXT: must be on of the following: override, default, off, deferred
sand_invoice_email_from                 
=> EMAIL ADDRESS
               sand_invoice_email_to                    => EMAIL ADDRESS
sand_invoice_email_bcc                   => EMAIL ADDRESS
sand_invoice_billing_issue_date         
=> TEXT: example: 15 days
sand_invoice_email_date_1               
=>
TEXT: example: 20 days
sand_invoice_email_date_2               
=>
TEXT: example: 25 days
sand_invoice_disconnection_date         
=>
TEXT: example: 30 days
sand_invoice_throttling_date            
=> TEXT: example: 28 days
sand_invoice_deferred_to                 
=> DATE: correct format: DD/MM/YYYY
lodgement_failure_email_2               
=> TEXT: example: 5 days
lodgement_failure_email_3               
=>
TEXT: example: 10 days
lodgement_failure_disconnection         
=>
TEXT: example: 15 days
sand_traffic_limit                      
=> INTEGER: traffic limit [GB]: example: 10
sand_traffic_status                     
=> TEXT: must be on of the following: override, default, off, deferred
sand_traffic_email_from                 
=>
EMAIL ADDRESS
sand_traffic_email_to                   
=>
EMAIL ADDRESS
sand_traffic_email_bcc                  
=> EMAIL ADDRESS,
sand_traffic_email_treshold_1           
=> INTEGER: percentage usage threshold [%]: example: 60
sand_traffic_email_treshold_2           
=> INTEGER: percentage usage threshold [%]: example: 80
sand_traffic_disconnection_treshold     
=>
INTEGER: percentage usage threshold [%]: example: 100
sand_traffic_overage_treshold           
=> INTEGER: percentage usage threshold [%]: example: 90
sand_traffic_do_not_prorate             
=>
must be one of the following:
                                               
default                                      :  leave the field empty
                                               
Prorate the CAP in the first month           :  -1
                                                Do NOT
prorate the CAP in the first month    :  1 
sand_traffic_do_not_carry_overage_over  
=>
must be one of the following:
                                                default                                              :  leave the field empty
                                               
Carry over overage Top-Ups to the next period        :  -1
                                                Do NOT
carry over overage Top-Ups to the next period :  1 
sand_traffic_deferred_to                 
=>
DATE: correct format: DD/MM/YYYY
tax_zone           => INTEGER: default tax zone ID
tax_mode           => TEXT: default, fixed, multi
tax_rate           => FLOAT: default tax rate
overage            => FLOAT
formula            => TEXT
overageid          => INTEGER
free_service       => BOOLEAN: 1 free service on, 0 free service off
invoicing_day      => INTEGER
gpsx               => FLOAT
gpsy               => FLOAT
value_added_reseller   => INTEGER: VAR ID
master_agent           => INTEGER: MA ID
regional_sales_manager => INTEGER: RSM ID
salesman           => INTEGER: Salesman ID
group              => INTEGER/INTEGER LIST: ID of the group to which the customer should be assigned, or comma separated list of group ID (e.g. '1,2,5')
custom_field_*          => TEXT
cp_terms           => BOOLEAN: 't' or 'f'
send_receipt       => BOOLEAN: 1 or 0
sendCCPassword     => BOOLEAN: 1 or 0 - a customer_portal_login email will be send if name, sageid and password are specified
use_invoicing_id_auto_generation_from_wisp_settings  => BOOLEAN: 1 or 0
generate_nickname_based_on_invoicing_id => BOOLEAN: 1 or 0
 


Note: For custom fields replace the * in custom_field_* with the ID of the custom field defined under settings->Custom Fields.
    • Result - the SOAP reply will either:
      • start with 'OK:' token followed by customerid of the new account - for successful processing
      • contain an error message
  • modifyCustomer - this function is used to modify an existing customer account in SIMPLer system.
    • Attributes - any set constructed from below can be used as long as the required set is provided
api_username       => TEXT (required)
api_password       => TEXT (required)
operator           => TEXT (optional): to specify the database in case an operator has muiltiple databases
customerid         => TEXT (required)
name               => TEXT (optional)
nickname           => TEXT (optional)
invoicingid        => TEXT (optional)
init_date          => DATE: Initial Contact date in MM/DD/YYYY format
startdate          => DATE: Start Date in MM/DD/YYYY format
customerstatus     => TEXT: current, etc..
customer_tracking  => TEXT
installdate        => DATE: Installation Date in MM/DD/YYYY format
frequency          => INTEGER: billing frequency in months
invoicing_status   => BOOLEAN: 1 billing on, 0 billing off
voip               => BOOLEAN: 1 account voip enabled, 0 account voip disabled
address            => TEXT: Installation Address in add1:::add2:::add3:::add4:::add5:::add6 format, where:
add1: Street 1
add2: Street 2
add3: Town
add4: County
add5: Post Code
add6: State

iaddress           => TEXT: format is same as for address attribute
country            => TEXT
password           => TEXT: End User Portal password
type               => TEXT: Customer account type from following list: customer business, customer home, reseller, partner, supplier, competitor gov,
marketingcode      => TEXT
marketingemails    => BOOLEAN: 1 marketing emails on, 0 marketing emails off
installation_area  => TEXT
community_code     => TEXT
reference          => TEXT or INTEGER - if using historical Referencing system, this field is to be populated with any text representing the referee, otherwise populate with referee customer ID number
referral_fee_status => TEXT: no fee, due, pre-paid, paid
referral_fee_amount => FLOAT
note               => TEXT
privatenote        => TEXT
importance         => INTEGER: from 1 to 5
phone_list_main    => TEXT
fax                => TEXT
email              => EMAIL ADDRESS
accounts_email     => TEXT
support_email      => TEXT
website            => TEXT
contacts_list      => TEXT: The contact list in following format - name1:::phone1:::position1:::email1///name2:::phone2:::position2:::email2
vat_exemption      => TEXT: vat exemption details in following format - Yes:::1:::29/12/2012
payment_method     => TEXT: cash, cheque, credit card, debit card, direct debit, online transfer, standing order
send_method        => TEXT: mail, pdf
credit             => INTEGER: number of credit days assigned do the cusotmer
setup_fees         => FLOAT
folder             => TEXT
order_number       => TEXT
gwid               => INTEGER: ID number of the gateway we want to assign to customer account
bucketid           => INTEGER: ID number of the bucket we want to assign to customer account
monitor            => TEXT: monitor, no monitor, monitor+sms, monitor no alert
tcp                => TEXT
udp                => TEXT
p2p                => TEXT: true, false
sites              =>
ip_type            => TEXT: public, private
ip_number          => INTEGER
connLimit          => INTEGER
rssi               => BOOLEAN: 1 equipment graphs on, 0 equipment graphs off
nat                => BOOLEAN: 1 auto provision nat on, 0 auto provision nat off
auto_prov_radius_credentials             => BOOLEAN: auto-provision 'Generate RADIUS Accounts'
auto_prov_activatecpe                    => BOOLEAN: auto-provision 'Activate IP Address'
auto_prov_radius_dynamic_ip              => BOOLEAN: auto-provision 'Generate Customer IP Address'
auto_prov_pppoe                          => BOOLEAN: auto-provision 'Set PPPoE on WAN interface'
sand           => TEXT
tax_zone           => INTEGER: default tax zone ID
tax_mode           => TEXT: default, fixed, multi
tax_rate           => FLOAT: default tax rate
overage            => FLOAT
formula            => TEXT
overageid          => INTEGER
free_service       => BOOLEAN: 1 free service on, 0 free service off
invoicing_day      => INTEGER
gpsx               => FLOAT
gpsy               => FLOAT
value_added_reseller   => INTEGER: VAR ID
master_agent           => INTEGER: MA ID
regional_sales_manager => INTEGER: RSM ID
salesman           => INTEGER: Salesman ID
group              => INTEGER/INTEGER LIST: ID of the group to which the customer should be assigned, or comma separated list of group ID (e.g. '1,2,5')
send_receipt       => BOOLEAN: 1 or 0
custom_field_*          => TEXT


Note: For custom fields replace the * in custom_field_* with the ID of the custom field defined under settings->Custom Fields.
  • Result - the SOAP reply will either:
    • 'OK'
    • contain an error message


  • deleteCustomer - this function is used to delete an existing customer account in SIMPLer system.
    • Attributes - any set constructed from below can be used as long as the required set is provided
api_username       => TEXT (required)
api_password       => TEXT (required)
operator           => TEXT (optional): to specify the database in case an operator has multiple databases
customerid         => TEXT (required)
deleteMaintenance  => boolean (optional)
deleteSubscription => boolean (optional)
  • Result - the SOAP reply will either:
    • 'OK'
    • contain an error message

Note - SIMPLer will allow to delete only accounts that meet following conditions:

  1. customer must be in a status different than 'current'
  2. no subscriptions should be attached to a customer account
  3. no IP addresses should be set under a customer account 
  4. no invoices should be generated for a customer account
  5. no sales issues should be attached to a customer account
  6. no maintenance tickets should be attached to a customer account
  7. no billing issues should be attached to a customer account
  8. no VoIP accounts should be set under a customer account
  9. no email accounts should be set under a customer account
  10. no FTP accounts should be attached to a customer account
  11. no CPE/Equipment details should be added to a customer account
  12. no Credit Cards should be added to a customer account
  13. no Bank Accounts / EFT Accounts should be added to a customer account
  14. no Attachments should be linked to a customer account

Once above conditions are met - SIMPLer will delete the customer account along with all other setup (i.e. RADIUS account) associated with the particular customer account


  • addSubscription - this function is used to add a new subscription to a customer account in SIMPLer system.
    • Attributes - any set constructed from below can be used as long as the required set is provided
api_username       => TEXT (required)
api_password       => TEXT (required)
operator           => TEXT (optional): to specify the database in case an operator has muiltiple databases
customerid         => INTEGER (required)
productid          => INTEGER (required)
quantity           => INTEGER
discount           => FLOAT
round              => TEXT: default, up, down, arithmetic
premium            => FLOAT
type               => TEXT: Recurring, Overage, Reconnection
valid_to           => DATE in MM/DD/YYYY format
valid_from         => DATE in MM/DD/YYYY format
cycles             => INTEGER
frequency          => INTEGER
price              => FLOAT
description        => TEXT
tax_zone           => INTEGER: default tax zone ID
tax_mode           => TEXT: default, fixed, multi
tax_rate           => FLOAT: default tax rate
overage            => FLOAT
formula            => TEXT
overageid          => INTEGER
free_service       => BOOLEAN: 1 free service on, 0 free service off
price_changed      => BOOLEAN: 1 price overriden,
description_changed=> BOOLEAN: 1 description overriden

  • Result - the SOAP reply will either:
    • 'OK' - to confirm successful processing
    • error message
  • addIP - this function is used to add a new IP to a customer account in SIMPLer system.
    • Attributes - any set constructed from below can be used as long as the required set is provided
api_username       => TEXT (required)
api_password       => TEXT (required)
operator           => TEXT (optional): to specify the database in case an operator has muiltiple databases
customerid         => INTEGER (required)
ip                 => INET
mac                => MAC
macrestrict        => BOOLEAN: 1 mac restriction on, 0 mac restriction off
label              => TEXT
type               => BOOLEAN: 1 - Public IP, 0 - Private IP
dhcpoptions        => TEXT
radius_username    => TEXT
gatewayid          => INTEGER
updateMAConEUPLogin =>
BOOLEAN: 1 - Allow to auto - update MAC on EUP login ON, 0 - Allow to auto - update MAC on EUP login OFF
  • Result - the SOAP reply will either:
    • 'OK' - to confirm successful processing
    • error message
  • addSite - this function is used to add a new Site to the SIMPLer system.
    • Attributes - any set constructed from below can be used as long as the required set is provided
api_username       => TEXT (required)
api_password       => TEXT (required)
operator           => TEXT (optional): to specify the database in case an operator has muiltiple databases
sitename           => TEXT (required)
wibid              => INTEGER: ID of WIB
contactname        => TEXT
accessinfo         => TEXT
gpsx               => NUMERIC
gpsy               => NUMERIC
phone              => TEXT
email              => TEXT
accesshours        => TEXT
interval           => INTEGER: 0 - none, 1 - Quarterly, 2 - Semi-Annually, 3 - Annually
status             => INTEGER: 1 -Potential, 2 - Production, 3 - Decommissioned, 4 - Cancelled
sitetype           => TEXT: Network, Warehouse, Installer
maintenanceOption  => INTEGER: 0 - Disabled, 1 - Enabled
frequency          => NUMERIC
height             => NUMERIC
min_stock_level    => TEXT
common             => TEXT
owner              => TEXT
reference          => TEXT
mlduration         => TEXT
towertype          => TEXT: Building, Grain, Guided Tower, Lattice, Monopole, Pole, Water Tower
substatus          => TEXT
ponumber           => TEXT
compliancenumber   => TEXT
heightallocation   => TEXT
accessgpsx         => NUMERIC
accessgpsy         => NUMERIC
nextmaintenancedate=> DATE: format: YYYY-MM-DD
state              => TEXT: must be a valid non abbreviated US state
street1            => TEXT
street2            => TEXT
city               => TEXT
county             => TEXT
zip                => TEXT
country            => TEXT: must be a valid full name country
  • Result - the SOAP reply will either:
    • 'OK:<siteid>' - to confirm successful processing
    • error message


  • modifySite - this function is used to modify a site in SIMPLer system.
    • Attributes - any set constructed from below can be used as long as the required set is provided
api_username       => TEXT (required)
api_password       => TEXT (required)
operator           => TEXT (optional): to specify the database in case an operator has muiltiple databases
siteid             => INTEGER (required)
sitename           => TEXT
wibid              => INTEGER: ID of WIB
contactname        => TEXT
accessinfo         => TEXT
gpsx               => NUMERIC
gpsy               => NUMERIC
phone              => TEXT
email              => TEXT
accesshours        => TEXT
interval           => INTEGER: 0 - none, 1 - Quarterly, 2 - Semi-Annually, 3 - Annually
status             => INTEGER: 1 -Potential, 2 - Production, 3 - Decommissioned, 4 - Cancelled
sitetype           => TEXT: Network, Warehouse, Installer
maintenanceOption  => INTEGER: 0 - Disabled, 1 - Enabled
frequency          => NUMERIC
height             => NUMERIC
min_stock_level    => TEXT
common             => TEXT
owner              => TEXT
reference          => TEXT
mlduration         => TEXT
towertype          => TEXT: Building, Grain, Guided Tower, Lattice, Monopole, Pole, Water Tower
substatus          => TEXT
ponumber           => TEXT
compliancenumber   => TEXT
heightallocation   => TEXT
accessgpsx         => NUMERIC
accessgpsy         => NUMERIC
nextmaintenancedate=> DATE: format: YYYY-MM-DD
state              => TEXT: must be a valid non abbreviated US state
street1            => TEXT
street2            => TEXT
city               => TEXT
county             => TEXT
zip                => TEXT
country            => TEXT: must be a valid full name country
  • Result - the SOAP reply will either:
    • 'OK:<siteid>' - to confirm successful processing
    • error message
  • deleteSite - this function is used to delete an existing Site entry.
    • Attributes - any set constructed from below can be used as long as the required set is provided
api_username       => TEXT (required)
api_password       => TEXT (required)
operator           => TEXT (optional): to specify the database in case an operator has muiltiple databases
siteid             => INTEGER (required)

  • Result - the SOAP reply will either:
    • OK' - to confirm successful processing, OR 
    • error message
  • addCreditCardToken - this function is used to add a new Credit Card Details with TOKEN to a customer account in SIMPLer system.
    • Attributes - any set constructed from below can be used as long as the required set is provided
api_username       => TEXT (required)
api_password       => TEXT (required)
operator           => TEXT (optional): to specify the database in case an operator has muiltiple databases
customerid         => INTEGER (required)
cc_last4           => INTEGER (required) - 4 digits allowed
module_id          => INTEGER (required)
cc_token           => TEXT (required)
cc_month           => INTEGER - number between 1 and 12
cc_year            => INTEGER - number bigger or equal than current year
cc_type            => TEXT: visa, mastercard, american express, discover, other
cc_auto_payment    => BOOLEAN: 't' or 'f'
cc_preferred       => BOOLEAN: 't' or 'f'
street1            => TEXT
street2            => TEXT
city               => TEXT
county             => TEXT
zip                => TEXT
firstname          => TEXT
lastname           => TEXT
cc_holder          => TEXT
state              => TEXT: 'Alabama','Alaska','Arizona','Arkansas','California','Colorado','Connecticut','Delaware','District of Columbia','Florida','Georgia','Hawaii','Idaho','Illinois','Indiana','Iowa','Kansas','Kentucky','Louisiana','Maine','Maryland','Massachusetts','Michigan','Minnesota','Mississippi','Missouri','Montana','Nebraska','Nevada','New Hampshire','New Jersey','New Mexico','New York','North Carolina','North Dakota','Ohio','Oklahoma','Oregon','Pennsylvania','Puerto Rico','Rhode Island','South Carolina','South Dakota','Tennessee','Texas','Utah','Vermont','Virginia','Washington','West Virginia','Wisconsin','Wyoming'
country            => TEXT: "Afghanistan","Albania","Algeria","Andorra","Angola","Antigua and Barbuda","Argentina","Armenia","Australia","Austria","Azerbaijan","Bahamas","Bahrain","Bangladesh","Barbados","Belarus","Belgium", "Belize","Benin","Bermuda","Bhutan","Bolivia","Bosnia and Herzegovina","Botswana","Brazil","Brunei","Bulgaria","Burkina Faso","Burundi","Cambodia","Cameroon","Canada","Cape Verde","Central African Republic", "Chad","Chile","China","Colombia","Comoros","Congo","Costa Rica","C&ocirc;te d'Ivoire","Croatia","Cuba","Cyprus","Czech Republic","Denmark","Djibouti","Dominica","Dominican Republic","East Timor","Ecuador", "Egypt","El Salvador","Equatorial Guinea","Eritrea","Estonia","Ethiopia","Fiji","Finland","France","Gabon","Gambia","Georgia","Germany","Ghana","Greece","Grenada","Guatemala","Guinea","Guinea-Bissau","Guyana","Haiti","Honduras","Hong Kong","Hungary","Iceland","India","Indonesia","Iran","Iraq","Ireland","Israel","Italy","Jamaica","Japan","Jordan","Kazakhstan","Kenya","Kiribati","North Korea","South Korea","Kuwait","Kyrgyzstan","Laos","Latvia","Lebanon","Lesotho","Liberia","Libya","Liechtenstein","Lithuania","Luxembourg","Macedonia","Madagascar","Malawi","Malaysia","Maldives","Mali","Malta","Marshall Islands","Mauritania","Mauritius","Mexico","Micronesia","Moldova","Monaco","Mongolia","Montenegro","Morocco","Mozambique","Myanmar","Namibia","Nauru","Nepal","Netherlands","New Zealand","Nicaragua","Niger","Nigeria","Norway","Oman","Pakistan","Palau","Palestine","Panama","Papua New Guinea","Paraguay","Peru","Philippines","Poland","Portugal","Puerto Rico","Qatar","Romania","Russia","Rwanda","Saint Kitts and Nevis","Saint Lucia","Saint Vincent and the Grenadines","Samoa","San Marino","Sao Tome and Principe","Saudi Arabia","Senegal","Serbia and Montenegro","Seychelles","Sierra Leone","Singapore","Slovakia","Slovenia","Solomon Islands","Somalia","South Africa","Spain","Sri Lanka","Sudan","Suriname","Swaziland","Sweden","Switzerland","Syria","Taiwan","Tajikistan","Tanzania","Thailand","Togo","Tonga","Trinidad and Tobago","Tunisia","Turkey","Turkmenistan","Tuvalu","Uganda","Ukraine","United Arab Emirates","United Kingdom","United States","Uruguay","Uzbekistan","Vanuatu","Vatican City","Venezuela","Vietnam","Yemen","Zambia","Zimbabwe"
  • Result - the SOAP reply will either:
    • 'OK: [creditcard ID]' - to confirm successful processing
    • error message
  • addEFTToken- this function is used to add a new EFT Details with TOKEN to a customer account in SIMPLer system.
    • Attributes - any set constructed from below can be used as long as the required set is provided
api_username       => TEXT (required)
api_password       => TEXT (required)
operator           => TEXT (optional): to specify the database in case an operator has muiltiple databases
customerid         => INTEGER (required)
               eft_last4          => INTEGER (required) - 4 digits allowed 
               eft_token          => TEXT(required)
               eft_banksortcode   => INTEGER(required)
               eft_bankonlineref  => TEXT(required)
               eft_bankaccountname=> TEXT(required)
               eft_bankaccounttype=> TEXT(required) - 'checking' or 'savings'
               eft_auto_payment   => BOOLEAN - 't' or 'f'
               eft_preferred      => BOOLEAN - 't' or 'f'
               module_id          => INTEGER (required) - send email to support@azotel.com if you do not know the module ID


  • Result - the SOAP reply will either:
    • 'OK: [EFT ID]' - to confirm successful processing
    • error message

  • addMaintenance - this function is used to add a new Maintenance Ticket to SIMPLer system.
    • Attributes - any set constructed from below can be used as long as the required set is provided
api_username       => TEXT (required)
api_password       => TEXT (required)
operator           => TEXT (optional): to specify the database in case an operator has muiltiple databases
customerid         => INTEGER
dateReported       => DATE in YYYY-MM-DD format
reportedby         => TEXT
type               => support, administration, installation, network, support, relocate, remove, repair, azotel, azotel-feature, disti, accounts, sales, management, suspend, internal tracking, connection review, general outage, point to point link required, RF interference, Engineering, router, survey, Upgrade, voip
subtype            => must be a valid subtype that belongs to a given maintenance type
description        => TEXT
resolution         => TEXT
priority           => INTEGER
status             => open, closed, waiting for customer
dateClosed         => DATE in YYYY-MM-DD format
closedby                        => TEXT
title              => TEXT (required)
hours_spent        => INTEGER
siteId             => INTEGER
equipmentId        => INTEGER
  • Result - the SOAP reply will either:
    • 'OK:[new maintenance issue id]' - to confirm successful processing, the id
    • error message
  • modifyMaintenance - this function is used to modify an existing Maintenance Ticket in the SIMPLer system.
    • Attributes - any set constructed from below can be used as long as the required set is provided
api_username       => TEXT (required)
api_password       => TEXT (required)
operator           => TEXT (optional): to specify the database in case an operator has muiltiple databases
id                 => INTEGER (required) - id of the maintenance ticket
customerid         => INTEGER
dateReported       => DATE in YYYY-MM-DD format
reportedby         => TEXT
type               => support, administration, installation, network, support, relocate, remove, repair, azotel, azotel-feature, disti, accounts, sales, management, suspend, internal tracking, connection review, general outage, point to point link required, RF interference, Engineering, router, survey, Upgrade, voip
subtype            => must be a valid subtype that belongs to a given maintenance type
description        => TEXT
resolution         => TEXT
updateresolution   => INTEGER - 1 = append resolution rather than replacing      
priority           => INTEGER
status             => open, closed, waiting for customer
dateClosed         => DATE in YYYY-MM-DD format
closedby           => TEXT
title              => TEXT
hours_spent        => INTEGER
siteId             => INTEGER
equipmentId        => INTEGER
updatedby          => TEXT
  • Result - the SOAP reply will either:
    • 'OK' - to confirm successful processing
    • error message

  • addInstallerTracking - this function is used to add a new Installer Tracking entry.
    • Attributes - any set constructed from below can be used as long as the required set is provided
api_username       => TEXT (required)
api_password       => TEXT (required)
operator           => TEXT (optional): to specify the database in case an operator has muiltiple databases
maintenanceId      => INTEGER (required)
dateOpened         => DATE in YYYY-MM-DD format
dateClosed         => DATE in YYY-MM-DD format
status             => open, paid
installerFee       => FLOAT
installerId        => INTEGER
note               => TEXT
dueDate            => DATE in YYYY-MM-DD format
dueHour            => INTEGER
dueMinute          => INTEGER
  • Result - the SOAP reply will either:
    • '[new installer tracking id]OK' - to confirm successful processing, OR 
    • error message

  • modifyInstallerTracking - this function is used to modify an existing Installer Tracking entry.
    • Attributes - any set constructed from below can be used as long as the required set is provided
api_username       => TEXT (required)
api_password       => TEXT (required)
operator           => TEXT (optional): to specify the database in case an operator has muiltiple databases
installerTrackingId => INTEGER (required)
dateOpened         => DATE in YYYY-MM-DD format
dateClosed         => DATE in YYY-MM-DD format
status             => open, paid
installerFee       => FLOAT
maintenanceId      => INTEGER
installerId        => INTEGER
note               => TEXT
dueDate            => DATE in YYYY-MM-DD format
dueHour            => INTEGER
dueMinute          => INTEGER
  • Result - the SOAP reply will either:
    • '[installer tracking id]OK' - to confirm successful processing, OR 
    • error message

  • deleteInstallerTracking - this function is used to modify an existing Installer Tracking entry.
    • Attributes - any set constructed from below can be used as long as the required set is provided
api_username       => TEXT (required)
api_password       => TEXT (required)
operator           => TEXT (optional): to specify the database in case an operator has muiltiple databases
installerTrackingId => INTEGER (required)

  • Result - the SOAP reply will either:
    • '[installer tracking id]OK' - to confirm successful processing, OR 
    • error message

        • addEquipment - this function is used to add a new equipment table entry in SIMPLer.
          • Attributes - any set constructed from below can be used as long as the required set is provided
        api_username       => TEXT (required)
        api_password       => TEXT (required)
        operator           => TEXT (optional): to specify the database in case an operator has muiltiple databases
        nickname           => TEXT (required) - nickname for equipment. Must be unique
        ipaddress          => TEXT - must be a valid ip address
        description        => TEXT
        serialnumber       => TEXT
        mac                => TEXT - must be a valid mac address
        status             => TEXT - valid values: stock, use
        invDetails         => TEXT
        parent             => INTEGER - equipment ID of parent device
        type               => TEXT - valid values:  AirOSBH, AirOSBH1, alvarionap, alvarionsm, bridge, bridgeSNMP, canopyap, canopybh, canopycmm, canopyofdm, canopyOFDMv2, canopyPTP800,
        canopysm, genericAP, genericAPSNMP, genericAPSNMPv1, genericBH,
        genericBHSNMP,
         genericBHSNMPv1, genericSM, genericSMSNMP, genericSMSNMPv1,
        mikrotikap,
         mikrotikrouter, mikrotiksm, nanostationap, nanostationsm, other,
        otherSNMP,
         pbx, remotevoipphone, router, routerSNMP, switch, switchSNMP,
        canopy320sm, canopy320ap
        snmp_community     => TEXT
        value              => TEXT - equipment costs
        assigned_site      => INTEGER - site ID of parent site
        maintemail         => TEXT - email address to override default maintenance email address
        dhcpoptions        => TEXT
        equipmentdata      => TEXT - not used by SIMPLer. For operator to store any information relating to the equipment
        supplier            => TEXT
        supplier_orderno    => TEXT
        receive_by          => TEXT
        receive_date        => TEXT
        internal_groupno    => TEXT
        port                => TEXT
        equipnote          => TEXT
        typeLabel          => TEXT
        assigned_site_name => TEXT
        parentNickname     => TEXT
        custom_field_*            => TEXT

        Note: For custom fields replace the * in custom_field_* with the ID of the custom field defined under settings->Custom Fields.


        • Result - the SOAP reply will either:
          • 'OK: [new equipment id]' - to confirm successful processing, the id of the newly added equipment is returned.
          • error message

        • modifyEquipment - this function is used to modify an existing equipment table entry in SIMPLer.
          • Attributes - any set constructed from below can be used as long as the required set is provided
        api_username       => TEXT (required)
        api_password       => TEXT (required)
        operator           => TEXT (optional): to specify the database in case an operator has muiltiple databases
        equipid            => INTEGER (required)
        nickname           => TEXT - nickname for equipment. Must be unique
        ipaddress          => TEXT
        description        => TEXT
        serialnumber       => TEXT
        mac                => TEXT
        status             => TEXT - valid values: stock, use
        invDetails         => TEXT
        parent             => INTEGER - equipment ID of parent device
        type               => TEXT - valid values:  AirOSBH, AirOSBH1, alvarionap, alvarionsm, bridge, bridgeSNMP, canopyap, canopybh, canopycmm, canopyofdm, canopyOFDMv2, canopyPTP800,
        canopysm,
         genericAP, genericAPSNMP, genericAPSNMPv1, genericBH, genericBHSNMP,
        genericBHSNMPv1,
        genericSM, genericSMSNMP, genericSMSNMPv1, mikrotikap,
        mikrotikrouter,
        mikrotiksm,nanostationap, nanostationsm, other, otherSNMP,
        pbx,
         remotevoipphone, router, routerSNMP, switch, switchSNMP, canopy320sm, canopy320ap
        snmp_community     => TEXT
        value              => TEXT - equipment costs
        assigned_site      => INTEGER - site ID of parent site
        maintemail         => TEXT - email address to override default maintenance email address
        dhcpoptions        => TEXT
        equipmentdata      => TEXT - not used by SIMPLer. For operator to store any information relating to the equipment
        supplier            => TEXT
        supplier_orderno    => TEXT
        receive_by          => TEXT
        receive_date        => TEXT
        internal_groupno    => TEXT
        port                => TEXT
        equipnote          => TEXT
        typeLabel          => TEXT
        assigned_site_name => TEXT
        parentNickname     => TEXT
        custom_field_*            => TEXT

        Note: For custom fields replace the * in custom_field_* with the ID of the custom field defined under settings->Custom Fields.

        • Result - the SOAP reply will either:
          • 'OK - to confirm successful processing
          • error message
        • addEquipmentLoginDetails - this function is used to add a new equipment login details to the equipment entry in SIMPLer.
          • Attributes - any set constructed from below can be used as long as the required set is provided
        api_username       => TEXT (required)
        api_password       => TEXT (required)
        operator           => TEXT (optional): to specify the database in case an operator has muiltiple databases
        equipid            => TEXT (required) - equipid for equipment.
        username           => TEXT (required) - login username
        password           => TEXT
        notes              => TEXT


        • Result - the SOAP reply will either:
          • 'OK' - to confirm successful processing
          • error message
        • deleteEquipmentLoginDetails - this function is used to delete equipment login details from the equipment entry in SIMPLer.
          • Attributes - any set constructed from below can be used as long as the required set is provided
        api_username       => TEXT (required)
        api_password       => TEXT (required)
        operator           => TEXT (optional): to specify the database in case an operator has muiltiple databases
        equipid            => TEXT (required) - equipid for equipment.
        username           => TEXT (required) - login username


        • Result - the SOAP reply will either:
          • 'OK' to confirm successful processing
          • error message
        • updateWibFiles - this function is used to update the WIB files
          • Attributes - any set constructed from below can be used as long as the required set is provided
        api_username       => TEXT (required)
        api_password       => TEXT (required)
        operator           => TEXT (optional): to specify the database in case an operator has muiltiple databases
        wibnumber          => INTEGER (required)
        force              => BOOLEAN: 1 - Force Mode (i.e.required for QoS rate changes), 0 - Standard Mode
        • Result - the SOAP reply will either:
          • 'OK' - to confirm successful processing
          • error message
        • updateGPSdetails - this function is used to calculate the missing GPS details based on addresses
          • Attributes - any set constructed from below can be used as long as the required set is provided
        api_username       => TEXT (required)
        api_password       => TEXT (required)
        operator           => TEXT (optional): to specify the database in case an operator has muiltiple databases
        • Result - the SOAP reply will either:
          • 'OK' - to confirm successful processing
          • error message
        • generateInvoices - this function is used to start up the invoicing process
          • Attributes - any set constructed from below can be used as long as the required set is provided
        api_username       => TEXT (required)
        api_password       => TEXT (required)
        operator           => TEXT (optional): to specify the database in case an operator has muiltiple databases
        type               => TEXT: new, recurring (defaults to recurring)
        customerid         => INTEGER
        • Result - the SOAP reply will either:
          • 'OK' - to confirm successful processing
          • error message

        • addEFT - this function is used to add customer EFT details (bank account)
          • Attributes - any set constructed from below can be used as long as the required set is provided
        api_username                   => TEXT (required)
        api_password                   => TEXT (required)
        operator                       => TEXT (optional): to specify the database in case an operator has multiple database
        customerid                     => INTEGER
        bankaccountnumber              => TEXT (required)
        banksortcode                   => TEXT
        bankonlineref                  => TEXT
        bankaccountname                => TEXT
        bankdetailschanged             => BOOLEAN
        bankaccounttype                => TEXT: checking, savings, DEFAULT
        autopayment                    => BOOLEAN
        preferred                      => BOOLEAN
        eft_sepa_sequencetype          => TEXT: SEPA Sequence Type 
          
                                   
                                        'FRST','RCUR','OOFF','FNAL','NA', where:

                                        'FRST'    => 'First Time Debits',
                                        'RCUR'    => 'Recurring Debits',
                                        'OOFF'    => 'Once Off Debits',
                                        'FNAL'    => 'Final Debits',
                                        'NA'      => 'Not Available / Used Up'
        eft_sepa_bic                   => INTEGER
        : SEPA BIC / SWIFT
        eft_sepa_iban                  => TEXT: SEPA IBAN
        eft_sepa_debtorname            => TEXT: SEPA Debtor Name
        eft_sepa_country               => TEXT: SEPA Debtor Country
        eft_sepa_debtorremittancedata  => TEXT: SEPA Remittance Data
        eft_sepa_signaturedate         => DATE (format: YYYY-MM-DD): SEPA Signature Date
        • Result - the SOAP reply will either:
          • 'OK' - to confirm successful processing
          • error message

        • addCPE - this function is used to add customer CPE details (customer permises equipment)
          • Attributes - any set constructed from below can be used as long as the required set is provided
        api_username       => TEXT (required)
        api_password       => TEXT (required)
        operator           => TEXT (optional): to specify the database in case an operator has multiple database
        equipid            => INTEGER (required)
        customerid         => INTEGER (required)
        gpsx               => FLOAT
        gpsy               => FLOAT
        distance           => FLOAT
        colour             => TEXT
        frequency          => TEXT
        installedby        => TEXT
        dishinstalled      => BOOLEAN
        groundingcompleted => BOOLEAN
        additionalinfo     => TEXT ARRAY

        • Result - the SOAP reply will either:
          • 'OK :[new cpe id]' - to confirm successful processing, the id
          • error message

        • modifyCPE - this function is used to modify customer CPE details (customer permises equipment)
          • Attributes - any set constructed from below can be used as long as the required set is provided
        api_username       => TEXT (required)
        api_password       => TEXT (required)
        operator           => TEXT (optional): to specify the database in case an operator has multiple database
        cpeid              => INTEGER (required)
        equipid            => INTEGER
        customerid         => INTEGER
        gpsx               => FLOAT
        gpsy               => FLOAT
        distance           => FLOAT
        colour             => TEXT
        frequency          => TEXT
        installedby        => TEXT
        dishinstalled      => BOOLEAN
        groundingcompleted => BOOLEAN
        additionalinfo     => TEXT ARRAY

        • Result - the SOAP reply will either:
          • 'OK' - to confirm successful processing
          • error message

        • deleteCPE - this function is used to delete customer CPE details (customer permises equipment)
          • Attributes - any set constructed from below can be used as long as the required set is provided
        api_username       => TEXT (required)
        api_password       => TEXT (required)
        operator           => TEXT (optional): to specify the database in case an operator has multiple database
        cpeid              => INTEGER (required)

        • Result - the SOAP reply will either:
          • 'OK' - to confirm successful processing
          • error message


        • addBasestation - this function is used to add Basestation details
          • Attributes - any set constructed from below can be used as long as the required set is provided
        api_username       => TEXT (required)
        api_password       => TEXT (required)
        operator           => TEXT (optional): to specify the database in case an operator has multiple database
        equipid            => INTEGER (required)
        siteid             => INTEGER (required)
        sector             => TEXT
        direction          => TEXT
        colour             => TEXT
        frequency          => NUMERIC
        installed          => TEXT
        note               => TEXT
        gatewayid          => INTEGER
        monitor            => TEXT: monitor, no monitor, monitor+sms, monitor no alert

        • Result - the SOAP reply will either:
          • 'OK :[new basestation id]' - to confirm successful processing
          • error message

        • modifyBasestation - this function is used to modify customer Basestation details
          • Attributes - any set constructed from below can be used as long as the required set is provided
        api_username       => TEXT (required)
        api_password       => TEXT (required)
        operator           => TEXT (optional): to specify the database in case an operator has multiple database
        basestationid      => INTEGER (required)
        equipid            => INTEGER (required)
        siteid             => INTEGER
        sector             => TEXT
        direction          => TEXT
        colour             => TEXT
        frequency          => NUMERIC
        installed          => TEXT
        note               => TEXT
        gatewayid          => INTEGER
        monitor            => TEXT: monitor, no monitor, monitor+sms, monitor no alert

        • Result - the SOAP reply will either:
          • 'OK' - to confirm successful processing
          • error message

        • deleteBasestation - this function is used to delete customer Basestation details
          • Attributes - any set constructed from below can be used as long as the required set is provided
        api_username       => TEXT (required)
        api_password       => TEXT (required)
        operator           => TEXT (optional): to specify the database in case an operator has multiple database
        basestationid      => INTEGER (required)

        • Result - the SOAP reply will either:
          • 'OK' - to confirm successful processing
          • error message

        • payInvoice - this function is used to pay specific Invoice based on Invoice Number provided
          • Attributes - any set constructed from below can be used as long as the required set is provided
        api_username       => TEXT (required)
        api_password       => TEXT (required)
        operator           => TEXT (optional): to specify the database in case an operator has multiple database
        invoiceNo          => INTEGER (required)
        amount             => INTEGER (required)
        paymentDate        => DATE: YYYY-MM-DD (if not specified current date is used)
        paymentType        => TEXT (required): direct debit, cash, cheque, online transfer, credit card, debit card, standing order
        narrative          => TEXT (optional)

        • Result - the SOAP reply will either:
          • 'OK' - to confirm successful processing
          • error message

        • addRADIUSdetails - this function is used to add a username and password details to a RADIUS server associated to the customer's account
          • Attributes - any set constructed from below can be used as long as the required set is provided
        api_username       => TEXT (required)
        api_password       => TEXT (required)
        operator           => TEXT (optional): to specify the database in case an operator has multiple databases
        customerid         => INTEGER (required)
        radius_username    => TEXT (required)
        radius_password    => TEXT (optional, can be left blank if required)
        radius_priority    => INTEGER (optional, defines sort order)
        existing_radius_username    => TEXT (optional): instead of customer ID

        • Result - the SOAP reply will either:
          • 'OK' - to confirm successful processing
          • error message
        • deleteRADIUSdetails - this function is used to delete a username and password details from a RADIUS server associated to the customer's account
          • Attributes - any set constructed from below can be used as long as the required set is provided
        api_username       => TEXT (required)
        api_password       => TEXT (required)
        operator           => TEXT (optional): to specify the database in case an operator has multiple databases
        radius_username    => TEXT (required)

        • Result - the SOAP reply will either:
          • 'OK' - to confirm successful processing
          • error message
        • addSalesmanTask - this function is used to add salesman issue to the database
          • Attributes - any set constructed from below can be used as long as the required set is provided
        api_username       => TEXT (required)
        api_password       => TEXT (required)
        operator           => TEXT (optional): to specify the database in case an operator has multiple databases
        custId             => INTEGER(required)
        date_reported      => DATE(required) - format YYYY-MM-DD
        description        => TEXT(required)
        type               => TEXT(required)
        date_closed        => DATE(optional) - format YYYY-MM-DD)
        hours_spent        => NUMBER(optional)
        value              => NUMBER(optional)
        priority           => INTEGER(optional): 1,2,3,4 or 5
        status             => TEXT(optional): open, closed, waiting for customer
        var                => TEXT(optional): name of Value Added Reseller that exists in the database
        rsm                => TEXT(optional): name of Regional Sales Manager that exists in the database
        ma                 => TEXT(optional): name of Master Agent that exists in the database
        salesman           => TEXT(optional): name of Salesman that exists in the database
        resolution         => TEXT(optional)
            


        • Result - the SOAP reply will either:
          • 'OK:<ISSUEID>' - to confirm successful processing
          • error message
        • modifySalesmanTask - this function is used to modify salesman issue to the database
          • Attributes - any set constructed from below can be used as long as the required set is provided
        api_username       => TEXT (required)
        api_password       => TEXT (required)
        operator           => TEXT (optional): to specify the database in case an operator has multiple databases
        custId             => INTEGER(required)
        issueId            => INTEGER(required)
        date_reported      => DATE(required) - format YYYY-MM-DD
        description        => TEXT(required)
        type               => TEXT(required)
        date_closed        => DATE(optional) - format YYYY-MM-DD)
        hours_spent        => NUMBER(optional)
        value              => NUMBER(optional)
        priority           => INTEGER(optional): 1,2,3,4 or 5
        status             => TEXT(optional): open, closed, waiting for customer
        var                => TEXT(optional): name of Value Added Reseller that exists in the database
        rsm                => TEXT(optional): name of Regional Sales Manager that exists in the database
        ma                 => TEXT(optional): name of Master Agent that exists in the database
        salesman           => TEXT(optional): name of Salesman that exists in the database
        resolution         => TEXT(optional)
        updateresolution   => TEXT(optional): if non-zero then resolution will be appended instead of being overwritten    


        • Result - the SOAP reply will either:
          • 'OK:<ISSUEID>' - to confirm successful processing
          • error message
        • deleteSalesmanTask - this function is used to delete salesman issue from the database
          • Attributes - any set constructed from below can be used as long as the required set is provided
        api_username       => TEXT (required)
        api_password       => TEXT (required)
        operator           => TEXT (optional): to specify the database in case an operator has multiple databases
        issueId            => INTEGER(required)   


        • Result - the SOAP reply will either:
          • 'OK' - to confirm successful processing
          • error message

        • updateBucketsFromSubscription - this function is used to execute a routine that will update customer buckets (and RADIUS details) based on the subscriptions attached to the account
          • Attributes - any set constructed from below can be used as long as the required set is provided
        api_username       => TEXT (required)
        api_password       => TEXT (required)
        operator           => TEXT (optional): to specify the database in case an operator has multiple databases
        customerid         => INTEGER (optional, limits operation to one account only)
        force              => boolean [0 or 1] - if specified it will force the RADIUS group recalculation even if the bucket has not been changed for the account - enabling new RADIUS accounts to pick up bucket settings, but wiping out all custom changes made to the radius groups

        • Result - the SOAP reply will either:
          • 'OK' - to confirm successful processing
          • error message


        • checkExistingEmail - this function is used to check whether customer account with email address supplied already exists in SIMPler system.
          • Attributes - any set constructed from below can be used as long as the required set is provided
        api_username       => TEXT (required)
        api_password       => TEXT (required)
        email              => EMAIL ADDRESS (required)

        • Result - the SOAP reply will either:
          • 0 - customer account with supplied email does not exist
          • <customerid> - customer ID of found customer
          • error message


        • addCustomerNote - this function is used to add Customer Note to the existing customer
          • Attributes - any set constructed from below can be used as long as the required set is provided
        api_username       => TEXT (required)
        api_password       => TEXT (required)
        operator           => TEXT (optional): to specify the database in case an operator has multiple database
        customerid         => INTEGER (required)
        note_title         => TEXT (required)
        note_text          => TEXT (required)


        • Result - the SOAP reply will either:
          • 'OK' - to confirm successful processing
          • error message


        • getActiveSubscriptionData - this function is used to get Active Subscription from customer account
          • Attributes - any set constructed from below can be used as long as the required set is provided
        api_username       => TEXT (required)
        api_password       => TEXT (required)
        operator           => TEXT (optional): to specify the database in case an operator has multiple database
        customerid         => INTEGER (required)


        • Result - the SOAP reply will either:
          • XML containing data
          • error message


        • deleteSubscription - this function is used to delete an existing Subscription entry.
          • Attributes - any set constructed from below can be used as long as the required set is provided
        api_username       => TEXT (required)
        api_password       => TEXT (required)
        operator           => TEXT (optional): to specify the database in case an operator has muiltiple databases
        subscriptionid     => INTEGER (required): ID of subscription that is to be deleted
        update_wib_files   => BOOLEAN: toggles wib update on subscription change for operators using buckets from subscriptions feature
        deleteActiveProductId => INTEGER (optional): productid of an active product to be deleted from customer subscriptions


        • Result - the SOAP reply will either:
          • OK' - to confirm successful processing, OR 
          • error message


        • getMaintenanceData - this function is used to get Maintenance Data from customer account
          • Attributes - any set constructed from below can be used as long as the required set is provided
        api_username       => TEXT (required)
        api_password       => TEXT (required)
        operator           => TEXT (optional): to specify the database in case an operator has multiple database
        customerid         => INTEGER (required)


        • Result - the SOAP reply will either:
          • XML containing data
          • error message


        • getInvoicesData - this function is used to get Invoices Data from customer account
          • Attributes - any set constructed from below can be used as long as the required set is provided
        api_username       => TEXT (required)
        api_password       => TEXT (required)
        operator           => TEXT (optional): to specify the database in case an operator has multiple database
        customerid         => INTEGER (required)


        • Result - the SOAP reply will either:
          • XML containing data
          • error message
        • getCustomerData - this function is used to get  Customer Data from customer account
          • Attributes - any set constructed from below can be used as long as the required set is provided
        api_username       => TEXT (required)
        api_password       => TEXT (required)
        operator           => TEXT (optional): to specify the database in case an operator has multiple database
        customerid         => INTEGER (required)
        ip                 => 1  (optional): to retrieve IP details,
        cpe                => 1  (optional): to retrieve CPE details,
        creditcard         => 1  (optional): to retrieve Credit Card details,
        eft                => 1  (optional): to retrieve EFT details,
        subscription       => 1  (optional): to retrieve Subscription details,    
        maintenance        => 1  (optional): to retrieve Maintenance details,
        invoices           => 1  (optional): to retrieve Invoices details


        • Result - the SOAP reply will either:
          • XML containing data
          • error message
        • getEFTData - this function is used to get EFT data from customer account
          • Attributes - any set constructed from below can be used as long as the required set is provided
        api_username       => TEXT (required)
        api_password       => TEXT (required)
        operator           => TEXT (optional): to specify the database in case an operator has multiple database
        customerid         => INTEGER (required)


        • Result - the SOAP reply will either:
          • XML containing data
          • error message
        • getIPData - this function is used to get IP data from customer account
          • Attributes - any set constructed from below can be used as long as the required set is provided
        api_username       => TEXT (required)
        api_password       => TEXT (required)
        operator           => TEXT (optional): to specify the database in case an operator has multiple database
        customerid         => INTEGER (required)


        • Result - the SOAP reply will either:
          • XML containing data
          • error message
        • getCreditCardData - this function is used to get Credit Card Data from customer account
          • Attributes - any set constructed from below can be used as long as the required set is provided
        api_username       => TEXT (required)
        api_password       => TEXT (required)
        operator           => TEXT (optional): to specify the database in case an operator has multiple database
        customerid         => INTEGER (required)


        • Result - the SOAP reply will either:
          • XML containing data
          • error message
        • getCPEData - this function is used to get CPE Data from customer account
          • Attributes - any set constructed from below can be used as long as the required set is provided
        api_username       => TEXT (required)
        api_password       => TEXT (required)
        operator           => TEXT (optional): to specify the database in case an operator has multiple database
        customerid         => INTEGER (required)


        • Result - the SOAP reply will either:
          • XML containing data
          • error message
        • searchCustomer - this function is used to search for customer accounts
        api_username       => TEXT (required)
        api_password       => TEXT (required)
        operator           => TEXT (optional): to specify the database in case an operator has multiple database
        customerid         => INTEGER (optional): search on customerid
        firstname          => TEXT (optional): search on firstname field (i.e. first part of customer name split at the first white space)
        lastname           => TEXT (optional): search on lastname field (i.e. second part of customer name split at the first white space)
        nickname           => TEXT (optional): search on state field
        invoicingid        => TEXT (optional): search on state field
        email              => TEXT (optional)search on customer email field
        phone              => TEXT (optional)search on customer phone field
        customerstatus     => TEXT (optional)search on customer status field, statuses as used in SIMPLer:
        • contract
        • current
        • installed
        • post
        • potential
        • survey failed
        • unused
        • waiting for install
        • waiting for survey
        street1            => TEXT (optional)search on customer street 1 field
        street2            => TEXT (optional): search on customer street 2 field
        city               => TEXT (optional): search on customer city field
        county             => TEXT (optional): search on country field
        postcode           => TEXT (optional): search on post code/zip code field
        state              => TEXT (optional): search on state field
        country            => TEXT (optional): search on country field
        limit              => INTEGER (optional): limit output to X records - defaults to 20
        offset             =>
         INTEGER (optional): says to skip that many rows before beggining to return rews
        case_sensitive     => INTEGER (optional): by default searches are case insensitive, if set to 1 - searches will be case sensitive
        order              => TEXT (optional): field defines sorting field (firstname, lastname). DEFAULT: customerid

        • Result - the SOAP reply will either:
          • XML containing data
          • error message

        Example XML Output - note that there are additional data returned apart from customer records that cover query details - such as number of results, limit applied, offset applied, order used to sort results, case_sensitivity option used.


        <customerSearchRoot>  

          <case_sensitive>0</case_sensitive>
          <customer id="27738">
            <city>Pogwizdow</city>
            <country>Albania</country>
            <county></county>
            <customerid>27738</customerid>
            <customerstatus>post</customerstatus>
            <email>maciej.gawlowski@gmail.com</email>
            <firstname>Maciej</firstname>
            <lastname>2 Gawlowski</lastname>
            <phone>606473915</phone>
            <postcode>43-418</postcode>
            <state>Alaska</state>
            <street1>Cieszynska 146</street1>
            <street2></street2>
          </customer>
          <customer id="27739">
            <city>Pogwizdow</city>
            <country>Afghanistan</country>
            <county></county>
            <customerid>27739</customerid>
            <customerstatus>post</customerstatus>
            <email>maciej.gawlowski@gmail.com</email>
            <firstname>Maciej</firstname>
            <lastname>3 Gawlowski</lastname>
            <phone>606473915</phone>
            <postcode>43-418</postcode>
            <state>Alaska</state>
            <street1>Cieszynska 146</street1>
            <street2></street2>
          </customer>
          <customer id="27827">
            <city>Not Collected</city>
            <country>Poland</country>
            <county></county>
            <customerid>27827</customerid>
            <customerstatus>current</customerstatus>
            <email>maciej.gawlowski@gmail.com</email>
            <firstname>Maciej</firstname>
            <lastname>Gawlowski</lastname>
            <phone></phone>
            <postcode>50-535</postcode>
            <state></state>
            <street1>Not Collected</street1>
            <street2></street2>
          </customer>
          <customer id="27784">
            <city>Not Collected</city>
            <country>United States</country>
            <county></county>
            <customerid>27784</customerid>
            <customerstatus>post</customerstatus>
            <email></email>
            <firstname>Maciej</firstname>
            <lastname>Gawlowski</lastname>
            <phone>606473915</phone>
            <postcode></postcode>
            <state></state>
            <street1>Not Collected</street1>
            <street2></street2>
          </customer>
          <customer id="27831">
            <city>Wroclaw</city>
            <country>Poland</country>
            <county></county>
            <customerid>27831</customerid>
            <customerstatus>post</customerstatus>
            <email>maciej.gawlowski@gmail.com</email>
            <firstname>Maciej</firstname>
            <lastname>Gawlowski</lastname>
            <phone>606473915</phone>
            <postcode>50-536</postcode>
            <state>Maryland</state>
            <street1>Not Collected</street1>
            <street2></street2>
          </customer>
          <limit>5</limit>
          <offset>0</offset>
          <order>lastname</order>
          <results>307</results>
        </customerSearchRoot>


        • synchronizeCustomerAttachments - this function is used to snchronize customer attachments with the FTP server
          • Attributes - any set constructed from below can be used as long as the required set is provided
        api_username       => TEXT (required)
        api_password       => TEXT (required)
        operator           => TEXT (optional): to specify the database in case an operator has multiple databases
        customerid         => INTEGER (required)
        filenameregexp     => TEXT (required): if defined only files that match the regexp will be processed by the script
        description        => TEXT (required): to specify what description should be used for all new files added
        rights             => TEXT (required): to specify rights required - field must be in pgsql ARRAY format allowed rights are: billing information, maintenance, network information, sales tracking  i.e. {"billin information", "maintenance"}

        • Result - the SOAP reply will either:
          • 'OK' - to confirm successful processing
          • error message


        • synchronizeMaintenanceAttachments - this function is used to snchronize maintenance attachments with the FTP server
          • Attributes - any set constructed from below can be used as long as the required set is provided
        api_username       => TEXT (required)
        api_password       => TEXT (required)
        operator           => TEXT (optional): to specify the database in case an operator has multiple databases
        issuenumber        => INTEGER (required)
        filenameregexp     => TEXT (required): if defined only files that match the regexp will be processed by the script
        description        => TEXT (required): to specify what description should be used for all new files added
        dateadded          => TEXT (required): date added

        • Result - the SOAP reply will either:
          • 'OK' - to confirm successful processing
          • error message


        • addCommunityCode - this function is used to add Community Codes to a dedicated table in SIMPLer
          • Attributes - any set constructed from below can be used as long as the required set is provided
        api_username       => TEXT (required)
        api_password       => TEXT (required)
        operator           => TEXT (optional): to specify the database in case an operator has multiple database
        code               => TEXT (required)

        • Result - the SOAP reply will either:
          • 'OK'
          • contain error message (i.e. code already exist message)


        • modifyCommunityCode - this function is used to modify existing Community Codes in a dedicated table in SIMPLer
          • Attributes - any set constructed from below can be used as long as the required set is provided
        api_username       => TEXT (required)
        api_password       => TEXT (required)
        operator           => TEXT (optional): to specify the database in case an operator has multiple database
        code               => TEXT (required)
        new_code           => TEXT (required)

        • Result - the SOAP reply will either:
          • 'OK'
          • contain error message (i.e. code already exist message)


        • deleteCommunityCode - this function is used to delete existing Community Codes in a dedicated table in SIMPLer
          • Attributes - any set constructed from below can be used as long as the required set is provided
        api_username       => TEXT (required)
        api_password       => TEXT (required)
        operator           => TEXT (optional): to specify the database in case an operator has multiple database
        code               => TEXT (required)

        • Result - the SOAP reply will either:
          • 'OK'
          • contain error message (i.e. code already exist message)


        • listCommunityCode - this function is used to delete existing Community Codes in a dedicated table in SIMPLer
          • Attributes - any set constructed from below can be used as long as the required set is provided
        api_username       => TEXT (required)
        api_password       => TEXT (required)
        operator           => TEXT (optional): to specify the database in case an operator has multiple database

        • Result - the SOAP reply will will come in following XML formatted output:
        <customerSearchRoot>  <code>Code 1 via API Modified</code>
          <code>Code 1 via API</code>
          <code>Community Code 4</code>
          <code>Community Code 3</code>
          <code>Community Code 2</code>
          <code>Community Code 1 Default</code>
          <results>6</results>


        • addSubaccount - this function is used to add Subaccount to Master Account in SIMPLer
          • Attributes - any set constructed from below can be used as long as the required set is provided
        api_username       => TEXT (required)
        api_password       => TEXT (required)
        operator           => TEXT (optional): to specify the database in case an operator has multiple database
        masterCustomerId   => TEXT (required)
        subCustomerId      => TEXT (required)
        master_display_subaccount_invoices              => BOOLEAN: 't' or 'f'
        master_display_subaccount_usage                 => BOOLEAN: 't' or 'f'
        subaccount_display_master_invoices              => BOOLEAN: 't' or 'f'
        subaccount_synchronization_customerstatus       => BOOLEAN: 't' or 'f'
        subaccount_synchronization_usage_allowance      => BOOLEAN: 't' or 'f'
        master_allow_eup_relogin                        => BOOLEAN: 't' or 'f'
        subaccount_invoice_from_master                  => BOOLEAN: 't' or 'f'
        subaccount_invoice_from_master_prorate          => VALUE: '1' or '2' or '3' where 1 - No Prorate, 2 - Prorate Option A, 3 - Prorate Option 3

        • Result - the SOAP reply will either:
          • 'OK'
          • contain error message (i.e. code already exist message)
        • updateSubaccount - this function is used to update Subaccount to Master Account in SIMPLer
          • Attributes - any set constructed from below can be used as long as the required set is provided
        api_username       => TEXT (required)
        api_password       => TEXT (required)
        operator           => TEXT (optional): to specify the database in case an operator has multiple database
        masterCustomerId   => TEXT (required)
        subCustomerId      => TEXT (required)
        master_display_subaccount_invoices              => BOOLEAN: 't' or 'f'
        master_display_subaccount_usage                 => BOOLEAN: 't' or 'f'
        subaccount_display_master_invoices              => BOOLEAN: 't' or 'f'
        subaccount_synchronization_customerstatus       => BOOLEAN: 't' or 'f'
        subaccount_synchronization_usage_allowance      => BOOLEAN: 't' or 'f'
        master_allow_eup_relogin                        => BOOLEAN: 't' or 'f'
        subaccount_invoice_from_master                  => BOOLEAN: 't' or 'f'
        subaccount_invoice_from_master_prorate          => VALUE: '1' or '2' or '3' where 1 - No Prorate, 2 - Prorate Option A, 3 - Prorate Option 3

        • Result - the SOAP reply will either:
          • 'OK'
          • contain error message (i.e. code already exist message)

        • deleteSubaccount - this function is used to delete Subaccount from Master Account in SIMPLer
          • Attributes - any set constructed from below can be used as long as the required set is provided
        api_username       => TEXT (required)
        api_password       => TEXT (required)
        operator           => TEXT (optional): to specify the database in case an operator has multiple database
        masterCustomerId   => TEXT (required)
        subCustomerId      => TEXT (required)

        • Result - the SOAP reply will either:
          • 'OK'
          • contain error message (i.e. code already exist message)

        • generateIP - this function is used to generate an IP (or a set of IP addresses) in SIMPLer.
          • Attributes - any set constructed from below can be used as long as the required set is provided
        api_username       => TEXT (required)
        api_password       => TEXT (required)
        operator           => TEXT (optional): to specify the database in case an operator has multiple database
        quantity           => TEXT (optional): number of IP addresses that are to be generated. If not defined it will default to 1

        customerid         => TEXT (required): defines customer for whom IP addresses are to be generated
        iptype             => TEXT (optional): override customers IP type for generation 
        interface_id       => INTEGER (optional): specify interface to generate IP from 
        saveInDb           => TEXT (optional): if defined - generated IP addresses will automatically be saved to customer account 
        syncRADIUS         => TEXT (optional): if defined - generated IP addresses will automatically be assigned to customer radius accounts and RADIUS server will be updated accordingly (Note: saveInDb attribute must be present)
        updateWIB          => TEXT (optional): if defined - WIB will be updated with new IP addresses (Note: saveInDb attribute must be present)
        updateMAConEUPLogin => BOOLEAN: 1 - Allow to auto - update MAC on EUP login ON, 0 - Allow to auto - update MAC on EUP login OFF


        • Result - the JSON reply will either:
          • Error message
          • Generation Result
            • SOAP Format Example
        <customerSearchRoot>
          <gatewayid>1</gatewayid>
          <generated>10</generated>
          <interfaceid>20</interfaceid>
          <ip>192.168.99.68</ip>
          <ip>192.168.99.69</ip>
          <ip>192.168.99.70</ip>
          <ip>192.168.99.71</ip>
          <ip>192.168.99.72</ip>
          <ip>192.168.99.73</ip>
          <ip>192.168.99.74</ip>
          <ip>192.168.99.75</ip>
          <ip>192.168.99.76</ip>
          <ip>192.168.99.77</ip>
          <iptype>Public</iptype>
          <quantity>10</quantity>
          <wibnumber>100</wibnumber>
        </customerSearchRoot>

              • REST Format Example

        {
           "ip" : "192.168.150.1",
           "result" : {
              "wibnumber" : "100",
              "iptype" : "Public",
              "ip" : [
                 "192.168.99.58",
                 "192.168.99.59",
                 "192.168.99.60",
                 "192.168.99.61",
                 "192.168.99.62",
                 "192.168.99.63",
                 "192.168.99.64",
                 "192.168.99.65",
                 "192.168.99.66",
                 "192.168.99.67"
              ],
              "quantity" : "10",
              "gatewayid" : "1",
              "generated" : 10,
              "interfaceid" : [
                 "20"
              ]
           }
        }






                                                        • customerRadius - this function is used to manipulate (list, add, modify, delete) customer RADIUS tables i.e. radcheck, radreply.
                                                          • Attributes - any set constructed from below can be used as long as the required set is provided
                                                        api_username       => TEXT (required)
                                                        api_password       => TEXT (required)
                                                        operator           => TEXT (optional): to specify the database in case an operator has multiple database

                                                        table              => TEXT (required)[radcheck, radreply]: specifies which radius table should be updated. Should be either radcheck or radreply.
                                                        action             => TEXT (required)[list,add,modify,delete]: specifies what action we want to execute on the table.
                                                        • list - use this action to list all entries related to either all usernames associated with a SIMPLer customer or with a specified username
                                                        • add - use this action to add new 
                                                        • modify - 
                                                        • delete - 
                                                        customerid         => TEXT (required): 

                                                        username           => TEXT (optional): 
                                                        attribute          => INTEGER (optional): 
                                                        op                 => TEXT (optional): 
                                                        value              => TEXT (optional): 


                                                        • Result - the JSON reply will either:
                                                          • Error message
                                                          • Generation Result
                                                            • SOAP Format Example
                                                              • list

                                                              • add

                                                              • modify

                                                              • modify

                                                              • REST Format Example
                                                                • for add / delete / modify
                                                        {
                                                            "ip": "192.168.150.1",
                                                            "result": {
                                                                "table": "radcheck",
                                                                "action": "add",
                                                                "result": "OK"
                                                            }
                                                        }

                                                                • list
                                                        {
                                                            "ip": "192.168.150.1",
                                                            "result": {
                                                                "table": "radcheck",
                                                                "action": "list",
                                                                "results": [
                                                                    {
                                                                        "attribute": "Cleartext-Password",
                                                                        "value": "0ac5ae06a2ec2",
                                                                        "customerid": "27939",
                                                                        "id": "4270",
                                                                        "op": ":=",
                                                                        "username": "ts_telrad_autopro"
                                                                    },
                                                                    {
                                                                        "attribute": "filter-id",
                                                                        "value": "firewall-filter",
                                                                        "customerid": "27939",
                                                                        "id": "4273",
                                                                        "op": "==",
                                                                        "username": "ts_telrad_autopro"
                                                                    },
                                                                ]
                                                            }
                                                        }


                                                        • checkEUPLogin - this is used to check if the given username / password are valid End User Portal login details. If so the corresponding customer ID will be returned. 
                                                          • Attributes - any set constructed from below can be used as long as the required set is provided
                                                        api_username       => TEXT (required)
                                                        api_password       => TEXT (required)
                                                        operator           => TEXT (optional): to specify the database in case an operator has multiple database

                                                        eup_username       => TEXT (required) The username to check.
                                                        eup_password       => TEXT (required) The password to check. 

                                                        • Result - the SOAP reply will either - note if the username / password do not match "ERROR: invalid username/password" will be returned. 
                                                          • "ERROR: Error message"
                                                          • "OK: nnn" - Where nnn is the customer ID of the matching customer. 
                                                        • Result - the JSON reply will contain the above reply in the "result" attribute. For example:
                                                        {
                                                           "ip" : "92.235.33.179",
                                                           "result" : "OK: 15"
                                                        }



                                                        NOTE: Nickname rules - there should not be ANY special signs (only "_" sign is allowed), no SPACES are allowed, i.e.: "NewCustomer"  or "New_Customer.
                                                         
                                                        Azotel | River House | Blackpool Park | Cork | Ireland
                                                        US +1-312-239-0680 | IE +353-21-234-8100 | UK +44-207-193-4170 | SA +27-11-083-6900