Class: Whmcs::Invoice

Inherits:
Base
  • Object
show all
Defined in:
lib/whmcs/invoice.rb

Overview

WHMCS::Invoice is the class for managing invoices

Class Method Summary collapse

Methods inherited from Base

parse_response, send_request

Class Method Details

.add_billable_item(params = {}) ⇒ Object

Add a new billable item

Parameters:

  • :clientid

  • :description

  • :amount

  • :recur - frequency to recur - 1,2,3,etc…

  • :recurcycle - Days, Weeks, Months or Years

  • :recurfor - number of times to repeat

  • :invoiceaction - noinvoice, nextcron, nextinvoice, duedate, recur

  • :duedate - date the invoice should be due

See:

wiki.whmcs.com/API:Add_Billable_Item



143
144
145
146
# File 'lib/whmcs/invoice.rb', line 143

def self.add_billable_item(params = {})
  params.merge!(:action => 'addbillableitem')
  send_request(params)
end

.add_credit(params = {}) ⇒ Object

Add a credit to client’s account

Parameters:

  • :clientid - the ID of the client the credit is to be added to

  • :description - reason for credit being added (stored in admin credit log)

  • :amount - the amount to be added

See:

wiki.whmcs.com/API:Add_Credit



159
160
161
162
# File 'lib/whmcs/invoice.rb', line 159

def self.add_credit(params = {})
  params.merge!(:action => 'addcredit')
  send_request(params)
end

.add_invoice_payment(params = {}) ⇒ Object

Add an invoice payment

Parameters:

  • :invoiceid - should contact the ID number of the invoice to add the payment to

  • :transid - should contain the transaction number for the payment

  • :amount - should contact the amount paid, can be left blank to take full amount of invoice

  • :fees - optional, if set defines how much fees were involved in the transaction

  • :gateway - should contain the gateway used in system name format, eg. paypal, authorize, etc…

  • :noemail - set to true to not send an email if the payment marks the invoice paid

  • :date - optional, if set defines the date the payment was made

See:

wiki.whmcs.com/API:Add_Invoice_Payment



107
108
109
110
# File 'lib/whmcs/invoice.rb', line 107

def self.add_invoice_payment(params = {})
  params.merge!(:action => 'addinvoicepayment')
  send_request(params)
end

.add_transaction(params = {}) ⇒ Object

Add transaction

Parameters:

  • :userid - Optional Add Transaction to a user

  • :invoiceid - Optional Add transaction to a particular invoice

  • :description - Description of the transaction

  • :amountin - amount to add to the account

  • :amountout - if an outgoing enter this

  • :fees - transaction fee you were charged

  • :paymentmethod - gateway used in WHMCS

  • :transid - Transaction ID you wish to assign

  • :date - date of transaction (same format as your WHMCS eg DD/MM/YYYY)

See:

wiki.whmcs.com/API:Add_Transaction



181
182
183
184
# File 'lib/whmcs/invoice.rb', line 181

def self.add_transaction(params = {})
  params.merge!(:action => 'addtransaction')
  send_request(params)
end

.capture_payment(params = {}) ⇒ Object

Attempt to capture payment for an invoice

Parameters:

  • :invoiceid - the ID of the invoice the capture is to be attempted for

  • :cvv - optionally can be used to pass the cards verification value in the payment request

See:

wiki.whmcs.com/API:Capture_Payment



122
123
124
125
# File 'lib/whmcs/invoice.rb', line 122

def self.capture_payment(params = {})
  params.merge!(:action => 'capturepayment')
  send_request(params)
end

.create_invoice(params = {}) ⇒ Object

Create a new invoice

Parameters:

  • :userid - should contain the user id of the client you wish to create the invoice for

  • :date - the date the invoice is created in the format YYYYMMDD

  • :duedate - the date the invoice is due in the format YYYYMMDD

  • :taxrate - the rate of tax that should be charged

  • :paymentmethod - the payment method for the invoice eg. banktransfer

  • :notes - any additional notes the invoice should display to the customer

  • :sendinvoice - set to true to send the “Invoice Created” email to the customer

  • :itemdescription1 - item 1 description

  • :itemamount1 - item 1 amount

  • :itemtaxed1 - set to true if item 1 should be taxed

  • :itemdescription2 - item 2 description

  • :itemamount2 - item 2 amount

  • :itemtaxed2 - set to true if item 2 should be taxed

etc…

See:

wiki.whmcs.com/API:Create_Invoice



60
61
62
63
# File 'lib/whmcs/invoice.rb', line 60

def self.create_invoice(params = {})
  params.merge!(:action => 'createinvoice')
  send_request(params)
end

.get_invoice(params = {}) ⇒ Object

Get an invoice

Parameters:

  • :invoiceid - should be the invoice id you wish to retrieve

See:

wiki.whmcs.com/API:Get_Invoice



31
32
33
34
# File 'lib/whmcs/invoice.rb', line 31

def self.get_invoice(params = {})
  params.merge!(:action => 'getinvoice')
  send_request(params)
end

.get_invoices(params = {}) ⇒ Object

Get invoices

Parameters:

  • :userid - the client ID to retrieve invoices for

  • :status - the status to filter for, Paid, Unpaid, Cancelled, etc…

  • :limitstart - the offset number to start at when returning matches (optional, default 0)

  • :limitnum - the number of records to return (optional, default 25)

See:

wiki.whmcs.com/API:Get_Invoices



17
18
19
20
# File 'lib/whmcs/invoice.rb', line 17

def self.get_invoices(params = {})
  params.merge!(:action => 'getinvoices')
  send_request(params)
end

.get_payment_methodsObject

Get configured payment methods

See:

wiki.whmcs.com/API:Get_Payment_Methods



191
192
193
# File 'lib/whmcs/invoice.rb', line 191

def self.get_payment_methods
  send_request(:action => 'getpaymentmethods')
end

.update_invoice(params = {}) ⇒ Object

Update an existing invoice

Parameters:

  • :invoiceid - The ID of the invoice to update

  • :itemdescription - Array of existing line item descriptions to update. Line ID from database needed

  • :itemamount - Array of existing line item amounts to update

  • :itemtaxed - Array of existing line items taxed or not

  • :newitemdescription - Array of new line item descriptipons to add

  • :newitemamount - Array of new line item amounts

  • :newitemtaxed - Array of new line items taxed or not

  • :date - date of invoice format yyyymmdd

  • :duedate - duedate of invoice format yyyymmdd

  • :datepaid - date invoice was paid format yyyymmdd

  • :status - status of invoice. Unpaid, Paid, Cancelled, Collection, Refunded

  • :paymentmethod - payment method of invoice eg paypal, banktransfer

Other than invoiceid, no other fields are required

See:

wiki.whmcs.com/API:Update_Invoice



87
88
89
90
# File 'lib/whmcs/invoice.rb', line 87

def self.update_invoice(params = {})
  params.merge!(:action => 'updateinvoice')
  send_request(params)
end