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 -
:email -
: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: 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 -
:email -
: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 -
:email -
: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 -
:email -
: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[x]- 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 |