Class: WHMCS::Client
Overview
WHMCS::Client is the class for managing clients
Class Method Summary collapse
-
.add_cancel_request(params = {}) ⇒ Object
Add Cancel Request This command is used to Add Cancellation Request for a specific product.
-
.add_client(params = {}) ⇒ Object
Create a new client.
-
.add_client_note(params = {}) ⇒ Object
Add Client Note This command is used to add the Client Note to a specific Client.
-
.add_contact(params = {}) ⇒ Object
Add a client contact.
-
.close_client(params = {}) ⇒ Object
Close a client account.
-
.delete_client(params = {}) ⇒ Object
Delete a client.
-
.delete_contact(params = {}) ⇒ Object
Delete a client's contact.
-
.get_client_groups ⇒ Object
Get Client Groups.
- .get_clients(params = {}) ⇒ Object
-
.get_clients_details(params = {}) ⇒ Object
Get a client's info.
-
.get_clients_domains(params = {}) ⇒ Object
Get Clients Domains.
-
.get_clients_password(params = {}) ⇒ Object
Get a hash of a client's password.
-
.get_clients_products(params = {}) ⇒ Object
Get client's products.
-
.get_contacts(params = {}) ⇒ Object
Get client's contacts.
-
.get_credits(params = {}) ⇒ Object
Get Client Credits.
-
.get_emails(params = {}) ⇒ Object
Get Emails This command is used to get a list of the client emails in XML format.
-
.get_quotes(params = {}) ⇒ Object
Get Quotes.
-
.get_transactions(params = {}) ⇒ Object
Get Transactions This command is used to obtain an XML list of transactions from your WHMCS.
-
.send_email(params = {}) ⇒ Object
Send email to client.
-
.update_client(params = {}) ⇒ Object
Update a client's info Parameters: * :clientid - Client you wish to update.
-
.update_client_addon(params = {}) ⇒ Object
Update Client Addon.
-
.update_client_domain(params = {}) ⇒ Object
Update Client Domain.
-
.update_client_product(params = {}) ⇒ Object
Update client's product.
-
.update_contact(params = {}) ⇒ Object
Update a client's contact.
-
.upgrade_product(params = {}) ⇒ Object
Upgrade Product.
-
.validate_login(params = {}) ⇒ Object
Validate client login info.
Instance Method Summary collapse
-
#get_clients_addons(params = {}) ⇒ Object
Get Clients Addons.
Methods inherited from Base
Class Method Details
.add_cancel_request(params = {}) ⇒ Object
Add Cancel Request This command is used to Add Cancellation Request for a specific product
Parameters:
- :serviceid - Service ID to be cancelled
- :type - 'Immediate' OR 'End of Billing Period'
Optional attributes:
- :reason - Reason for cancel
314 315 316 317 |
# File 'lib/whmcs/client.rb', line 314 def self.add_cancel_request(params = {}) params.merge!(:action => 'addcancelrequest') send_request(params) end |
.add_client(params = {}) ⇒ Object
Create a new client
Parameters:
- :firstname
- :lastname
- :address1
- :city
- :state
- :postcode
- :country - two letter ISO country code
- :phonenumber
- :password2 - password for new user account
Optional attributes:
- :companyname
- :address2
- :currency - the ID of the currency to set the user to
- :clientip - pass the client IP address
- :language - the language to assign to the client
- :groupid - used to assign the client to a client group
- :securityqid - the ID of the security question for the user
- :securityqans - the answer to the client security question
- :notes
- :cctype - Visa, Mastercard, etc...
- :cardnum
- :expdate
- :startdate
- :issuenumber
- :customfields - a base64 encoded serialized array of custom field values
- :noemail - pass as true to surpress the client signup welcome email sending
- :skipvalidation - set true to not validate or check required fields
Note: All client required fields can be optional if "skipvalidation" is passed See: http://docs.whmcs.com/API:Add_Client
41 42 43 44 |
# File 'lib/whmcs/client.rb', line 41 def self.add_client(params = {}) params.merge!(:action => 'addclient') send_request(params) end |
.add_client_note(params = {}) ⇒ Object
Add Client Note This command is used to add the Client Note to a specific Client
Parameters:
- :userid - UserID for the note
- :notes - The note to add
55 56 57 58 |
# File 'lib/whmcs/client.rb', line 55 def self.add_client_note(params = {}) params.merge!(:action => 'addclientnote') send_request(params) end |
.add_contact(params = {}) ⇒ Object
Add a client contact
Parameters:
- :clientid - the client ID to add the contact to
Optional attributes:
- :firstname
- :lastname
- :companyname
- :address1
- :address2
- :city
- :state
- :postcode
- :country - two letter ISO country code
- :phonenumber
- :password2 - if creating a sub-account
- :permissions - can specify sub-account permissions eg manageproducts,managedomains
- :generalemails - set true to receive general email types
- :productemails - set true to receive product related emails
- :domainemails - set true to receive domain related emails
- :invoiceemails - set true to receive billing related emails
- :supportemails - set true to receive support ticket related emails
See:
297 298 299 300 |
# File 'lib/whmcs/client.rb', line 297 def self.add_contact(params = {}) params.merge!(:action => 'addcontact') send_request(params) end |
.close_client(params = {}) ⇒ Object
68 69 70 71 |
# File 'lib/whmcs/client.rb', line 68 def self.close_client(params = {}) params.merge!(:action => 'closeclient') send_request(params) end |
.delete_client(params = {}) ⇒ Object
Delete a client
Parameters:
- :clientid - ID Number of the client to delete
See:
185 186 187 188 |
# File 'lib/whmcs/client.rb', line 185 def self.delete_client(params = {}) params.merge!(:action => 'deleteclient') send_request(params) end |
.delete_contact(params = {}) ⇒ Object
Delete a client's contact
Parameters:
- :contactid - The ID of the contact to delete
See:
419 420 421 422 |
# File 'lib/whmcs/client.rb', line 419 def self.delete_contact(params = {}) params.merge!(:action => 'deletecontact') send_request(params) end |
.get_client_groups ⇒ Object
Get Client Groups
This command is used to get a list of the client groups in XML format
See:
604 605 606 |
# File 'lib/whmcs/client.rb', line 604 def self.get_client_groups send_request(:action => 'getclientgroups') end |
.get_clients(params = {}) ⇒ Object
203 204 205 206 |
# File 'lib/whmcs/client.rb', line 203 def self.get_clients(params = {}) params.merge!(:action => 'getclients') send_request(params) end |
.get_clients_details(params = {}) ⇒ Object
Get a client's info
Parameters:
- :clientid - the id number of the client
- :email - the email address of the client
Optional attributes:
- :stats - true - If the responsetype of your API call is not XML, stats are not returned unless this variable is passed
247 248 249 250 |
# File 'lib/whmcs/client.rb', line 247 def self.get_clients_details(params = {}) params.merge!(:action => 'getclientsdetails') send_request(params) end |
.get_clients_domains(params = {}) ⇒ Object
Get Clients Domains
- :clientid - the ID of the client to retrieve products for
Optional attributes:
- :domainid - the ID of the domain to retrieve details for
- :domain - the domain of the service to retrieve details for
- :limitstart - where to start the records. Used for pagination
- :limitnum - the number of records to retrieve. Default = 25
- :getnameservers - retrieve nameservers in the response
See:
458 459 460 461 |
# File 'lib/whmcs/client.rb', line 458 def self.get_clients_domains(params = {}) params.merge!(:action => 'getclientsdomains') send_request(params) end |
.get_clients_password(params = {}) ⇒ Object
Get a hash of a client's password
Parameters:
- :userid - should contain the user id of the client you wish to get the password for
Optional attributes:
- :email - send email address instead of userid
See:
263 264 265 266 |
# File 'lib/whmcs/client.rb', line 263 def self.get_clients_password(params = {}) params.merge!(:action => 'getclientpassword') send_request(params) end |
.get_clients_products(params = {}) ⇒ Object
Get client's products
Optional attributes:
- :clientid - the ID of the client to retrieve products for
- :serviceid - the ID of the service to retrieve details for
- :domain - the domain of the service to retrieve details for
- :pid - the product ID of the services to retrieve products for
- :username2 - the service username to retrieve details for
- :limitstart - where to start the records. Used for pagination
- :limitnum - the number of records to retrieve. Default = 999999
See:
439 440 441 442 |
# File 'lib/whmcs/client.rb', line 439 def self.get_clients_products(params = {}) params.merge!(:action => 'getclientsproducts') send_request(params) end |
.get_contacts(params = {}) ⇒ Object
Get client's contacts
Optional attributes:
- :limitstart - Record to start at (default = 0)
- :limitnum - Number of records to return (default = 25)
- :userid
- :firstname
- :lastname
- :companyname
- :address1
- :address2
- :city
- :state
- :postcode
- :country
- :phonenumber
- :subaccount - true/false
See:
342 343 344 345 |
# File 'lib/whmcs/client.rb', line 342 def self.get_contacts(params = {}) params.merge!(:action => 'getcontacts') send_request(params) end |
.get_credits(params = {}) ⇒ Object
215 216 217 218 |
# File 'lib/whmcs/client.rb', line 215 def self.get_credits(params = {}) params.merge!(:action => 'getcredits') send_request(params) end |
.get_emails(params = {}) ⇒ Object
Get Emails This command is used to get a list of the client emails in XML format
Parameters:
- :clientid - ID of the client to obtain the credit list for
Optional attributes:
- :date - date to obtain emails for. Can be YYYYMMDD, YYYYMM, MMDD, DD or MM
- :subject - to obtain email with a specific subject
- :limitstart - for pagination, specify an ID to start at (default = 0)
- :limitnum - to restrict the number of results returned (default = 25)
551 552 553 554 |
# File 'lib/whmcs/client.rb', line 551 def self.get_emails(params = {}) params.merge!(:action => 'getemails') send_request(params) end |
.get_quotes(params = {}) ⇒ Object
Get Quotes
Parameters:
- :userid
Optional attributes:
- :quoteid - specific quote to obtain
- :userid - obtain quotes for a specific user
- :datecreated - Format YYYYMMDD
- :astmodified - Format YYYYMMDD
- :validuntil - Format YYYYMMDD
- :stage - Specific stage to retrieve quotes for
- :subject - to obtain quotes with a specific subject
- :limitstart - for pagination, specify an ID to start at
- :limitnum - to restrict the number of results returned
See:
592 593 594 595 |
# File 'lib/whmcs/client.rb', line 592 def self.get_quotes(params = {}) params.merge!(:action => 'getquotes') send_request(params) end |
.get_transactions(params = {}) ⇒ Object
Get Transactions This command is used to obtain an XML list of transactions from your WHMCS
Optional attributes:
- :clientid - User ID to obtain details for
- :invoiceid - Obtain transactions for a specific invoice
- :transid - Obtain details for a specific transaction ID
567 568 569 570 |
# File 'lib/whmcs/client.rb', line 567 def self.get_transactions(params = {}) params.merge!(:action => 'gettransactions') send_request(params) end |
.send_email(params = {}) ⇒ Object
Send email to client
Parameters:
- :messagename - unique name of the email template to send from WHMCS
- :id - related ID number to send message for (for a general email type a client ID, for a product email type the products Service ID, etc...)
Optional attributes:
- :customtype - The type of email: general, product, domain or invoice
- :customsubject - Subject for the custom email being sent
- :custommessage - Content to send as an email, this will override 'messagename' if set
- :customvars - serialized base64 encoded array of custom variables
See:
535 536 537 538 |
# File 'lib/whmcs/client.rb', line 535 def self.send_email(params = {}) params.merge!(:action => 'sendemail') send_request(params) end |
.update_client(params = {}) ⇒ Object
Update a client's info Parameters:
- :clientid - Client you wish to update
Optional attributes:
- :firstname
- :lastname
- :companyname
- :address1
- :address2
- :city
- :state
- :postcode
- :country - two letter ISO country code
- :phonenumber
- :password2
- :credit - credit balance
- :taxexempt - true to enable
- :notes
- :cardtype - visa, mastercard, etc...
- :cardnum - cc number
- :expdate - cc expiry date
- :startdate - cc start date
- :issuenumber - cc issue number
- :language - default language
- :status - active or inactive
- :latefeeoveride - true/false
- :overideduenotices - true/false
- :separateinvoices - true/false
- :disableautocc - true/false
See:
108 109 110 111 |
# File 'lib/whmcs/client.rb', line 108 def self.update_client(params = {}) params.merge!(:action => 'updateclient') send_request(params) end |
.update_client_addon(params = {}) ⇒ Object
Update Client Addon
Parameters:
- :id - ID of addon to update tblhostingaddons.id
Optional attributes:
- :addonid - Update the defined addon id - tbladdons.id
- :name - Custom name to define for the addon
- :setupfee - Setup fee cost. No symbol,i.e xx.xx
- :recurring - Setup fee cost. No symbol,i.e xx.xx
- :billingcycle - One of Free Account, One Time, Monthly, Quarterly, Semi-Annually, Annually, Biennially or Triennially
- :nextduedate - Update the next due date yyyymmdd
- :nextinvoicedate - Update the next invoice date yyyymmdd
- :notes - add custom notes to the addon
- :status - Pending, Active, Suspended, Cancelled, Terminated, Fraud
133 134 135 136 |
# File 'lib/whmcs/client.rb', line 133 def self.update_client_addon(params = {}) params.merge!(:action => 'updateclientaddon') send_request(params) end |
.update_client_domain(params = {}) ⇒ Object
Update Client Domain
Parameters:
- :domainid - ID of domain to update tbldomains.id
- :domain - instead of domainid
Optional attributes:
- :type - Register or Transfer
- :autorecalc - automatically recalculate the recurring price. Will override recurringamount
- :regdate - Update the reg date yyyymmdd
- :domain - Update the domain name
- :firstpaymentamount - Set the first payment amount. No symbol, i.e xx.xx
- :recurringamount - Setup fee cost. No symbol, i.e xx.xx
- :registrar - Update the registrar assigned to the domain
- :billingcycle - One of Free Account, One Time, Monthly, Quarterly, Semi-Annually, Annually, Biennially or Triennially
- :status - One of Active, Pending, Pending Transfer, Expired, Cancelled, Fraud
- :nextduedate - Update the next due date yyyymmdd
- :nextinvoicedate - Update the next invoice date yyyymmdd
- :expirydate - Update the expiry date yyyymmdd
- :regperiod - Update the reg period for the domain. 1-10
- :paymentmethod - set the payment method
- :subscriptionid - allocate a subscription ID
- :dnsmanagement - enable/disable DNS Management
- :emailforwarding - enable/disable Email Forwarding
- :idprotection - enable/disable ID Protection status
- :donotrenew - enable/disable Do Not Renew
- :updatens - Set to true to update Nameservers
- :nsX - X should be 1-5, nameservers to send. Minimum 1&2 required
- :notes - add custom notes to the addon
170 171 172 173 |
# File 'lib/whmcs/client.rb', line 170 def self.update_client_domain(params = {}) params.merge!(:action => 'updateclientdomain') send_request(params) end |
.update_client_product(params = {}) ⇒ Object
Update client's product
Parameters:
- :serviceid - the ID of the service to be updated
Optional attributes:
- :pid
- :serverid
- :regdate - Format: YYYY-MM-DD
- :nextduedate - Format: YYYY-MM-DD
- :domain
- :firstpaymentamount
- :recurringamount
- :billingcycle
- :paymentmethod
- :status
- :serviceusername
- :servicepassword
- :subscriptionid
- :promoid
- :overideautosuspend - on/off
- :overidesuspenduntil - Format: YYYY-MM-DD
- :ns1
- :ns2
- :dedicatedip
- :assignedips
- :notes
- :autorecalc - pass true to auto set price based on product ID or billing cycle change
- :customfields - a base64 encoded serialized array of custom field values
- :configoptions - a base64 encoded serialized array of configurable options values
See:
498 499 500 501 |
# File 'lib/whmcs/client.rb', line 498 def self.update_client_product(params = {}) params.merge!(:action => 'updateclientproduct') send_request(params) end |
.update_contact(params = {}) ⇒ Object
Update a client's contact
Parameters:
- :contactid - The ID of the contact to delete
Optional attributes:
- :generalemails - set to true to receive general emails
- :productemails - set to true to receive product emails
- :domainemails - set to true to receive domain emails
- :invoiceemails - set to true to receive invoice emails
- :supportemails - set to true to receive support emails
- :firstname - change the firstname
- :lastname - change the lastname
- :companyname - change the companyname
- :email - change the email address
- :address1 - change address1
- :address2 - change address2
- :city - change city
- :state - change state
- :postcode - change postcode
- :country - change country
- :phonenumber - change phonenumber
- :subaccount - enable subaccount
- :password2 - change the password
- :permissions - set permissions eg manageproducts,managedomains
Only send fields you wish to update
See:
379 380 381 382 |
# File 'lib/whmcs/client.rb', line 379 def self.update_contact(params = {}) params.merge!(:action => 'updatecontact') send_request(params) end |
.upgrade_product(params = {}) ⇒ Object
Upgrade Product
This command allows you to calculate the cost for an upgrade or downgrade of a product/service, and create an order for it.
Parameters:
- :clientid - the client ID to be upgraded
- :serviceid - the service ID to be upgraded
- :type - either "product" or "configoptions"
- :newproductid - if upgrade type = product, the new product ID to upgrade to
- :newproductbillingcycle - monthly, quarterly, etc...
- :configoptions - if upgrade type = configoptions, an array of config options
- :paymentmethod - the payment method for the order (paypal, authorize, etc...)
Optional attributes:
- :promocode - associate a promotion code with the upgrade
- :calconly - set true to validate upgrade and get price, false to actually create order
- :ordernotes - any admin notes to add to the order See:
404 405 406 407 |
# File 'lib/whmcs/client.rb', line 404 def self.upgrade_product(params = {}) params.merge!(:action => 'upgradeproduct') send_request(params) end |
.validate_login(params = {}) ⇒ Object
Validate client login info
Parameters:
- :email - the email address of the user trying to login
- :password2 - the password they supply for authentication
See:
513 514 515 516 |
# File 'lib/whmcs/client.rb', line 513 def self.validate_login(params = {}) params.merge!(:action => 'validatelogin') send_request(params) end |
Instance Method Details
#get_clients_addons(params = {}) ⇒ Object
Get Clients Addons
Parameters:
- :clientid - The Client ID you wish to obtain the results for
- :addonid - The specific addonid you wish to find
- :serviceid - The specific, or comma separated list of, service(s)
229 230 231 232 |
# File 'lib/whmcs/client.rb', line 229 def get_clients_addons(params = {}) params.merge!(:action => 'getclientsaddons') send_request(params) end |