Class: Whmcs::Invoice
Overview
WHMCS::Invoice is the class for managing invoices
Class Method Summary collapse
-
.add_billable_item(params = {}) ⇒ Object
Add a new billable item.
-
.add_credit(params = {}) ⇒ Object
Add a credit to client’s account.
-
.add_invoice_payment(params = {}) ⇒ Object
Add an invoice payment.
-
.add_transaction(params = {}) ⇒ Object
Add transaction.
-
.capture_payment(params = {}) ⇒ Object
Attempt to capture payment for an invoice.
-
.create_invoice(params = {}) ⇒ Object
Create a new invoice.
-
.get_invoice(params = {}) ⇒ Object
Get an invoice.
-
.get_invoices(params = {}) ⇒ Object
Get invoices.
-
.get_payment_methods ⇒ Object
Get configured payment methods.
-
.update_invoice(params = {}) ⇒ Object
Update an existing invoice.
Methods inherited from Base
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:
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:
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:
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:
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:
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:
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:
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:
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_methods ⇒ Object
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:
87 88 89 90 |
# File 'lib/whmcs/invoice.rb', line 87 def self.update_invoice(params = {}) params.merge!(:action => 'updateinvoice') send_request(params) end |