Class: Simplify::Invoice

Inherits:
Hash
  • Object
show all
Defined in:
lib/simplify/invoice.rb

Overview

A Invoice object.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#authenticationObject

Authentication object used to access the API (See Simplify::Authentication for details)



37
38
39
# File 'lib/simplify/invoice.rb', line 37

def authentication
  @authentication
end

Class Method Details

.create(parms, *auth) ⇒ Object

Creates an Invoice object

parms

a hash of parameters; valid keys are:

  • billingAddress => city Billing address city of the location where the goods or services were supplied. [max length: 255, min length: 2]

  • billingAddress => country Billing address country of the location where the goods or services were supplied. [max length: 2, min length: 2]

  • billingAddress => line1 Billing address line 1 of the location where the goods or services were supplied. [max length: 255]

  • billingAddress => line2 Billing address line 2 of the location where the goods or services were supplied. [max length: 255]

  • billingAddress => name Billing address name of the location where the goods or services were supplied. Will use the customer name if not provided. [max length: 255]

  • billingAddress => state Billing address state of the location where the goods or services were supplied. [max length: 255]

  • billingAddress => zip Billing address zip of the location where the goods or services were supplied. [max length: 32]

  • businessAddress => city Address city of the business that is sending the invoice. [max length: 255, min length: 2]

  • businessAddress => country Address country of the business that is sending the invoice. [max length: 2, min length: 2]

  • businessAddress => line1 Address line 1 of the business that is sending the invoice. [max length: 255]

  • businessAddress => line2 Address line 2 of the business that is sending the invoice. [max length: 255]

  • businessAddress => name The name of the business that is sending the invoice. [max length: 255]

  • businessAddress => state Address state of the business that is sending the invoice. [max length: 255]

  • businessAddress => zip Address zip of the business that is sending the invoice. [max length: 32]

  • currency Currency code (ISO-4217). Must match the currency associated with your account. [max length: 3, min length: 3, default: USD]

  • customer The customer ID of the customer we are invoicing. This is optional if invoiceToCopy or a name and email are provided

  • customerTaxNo The tax number or VAT id of the person to whom the goods or services were supplied. [max length: 255]

  • discountRate The discount percent as a decimal e.g. 12.5. This is used to calculate the discount amount which is subtracted from the total amount due before any tax is applied. [max length: 6]

  • dueDate The date invoice payment is due. If a late fee is provided this will be added to the invoice total is the due date has past.

  • email The email of the customer we are invoicing. This is optional if customer or invoiceToCopy is provided. A new customer will be created using the the name and email.

  • invoiceId User defined invoice id. If not provided the system will generate a numeric id. [max length: 255]

  • invoiceToCopy The id of an existing invoice to be copied. This is optional if customer or a name and email are provided

  • items => amount Amount of the invoice item (the smallest unit of your currency). Example: 100 = $1.00USD [min value: -9999900, max value: 9999900] required

  • items => description The description of the invoice item. [max length: 1024]

  • items => invoice The ID of the invoice this item belongs to.

  • items => product The product this invoice item refers to.

  • items => quantity Quantity of the item. This total amount of the invoice item is the amount * quantity. [min value: 1, max value: 999999, default: 1]

  • items => reference User defined reference field. [max length: 255]

  • items => tax The tax ID of the tax charge in the invoice item.

  • lateFee The late fee amount that will be added to the invoice total is the due date is past due. Value provided must be in the smallest unit of your currency. Example: 100 = $1.00USD [max value: 9999900]

  • memo A memo that is displayed to the customer on the invoice payment screen. [max length: 4000]

  • name The name of the customer we are invoicing. This is optional if customer or invoiceToCopy is provided. A new customer will be created using the the name and email. [max length: 50, min length: 2]

  • note This field can be used to store a note that is not displayed to the customer. [max length: 4000]

  • reference User defined reference field. [max length: 255]

  • shippingAddress => city Address city of the location where the goods or services were supplied. [max length: 255, min length: 2]

  • shippingAddress => country Address country of the location where the goods or services were supplied. [max length: 2, min length: 2]

  • shippingAddress => line1 Address line 1 of the location where the goods or services were supplied. [max length: 255]

  • shippingAddress => line2 Address line 2 of the location where the goods or services were supplied. [max length: 255]

  • shippingAddress => name Address name of the location where the goods or services were supplied. [max length: 255]

  • shippingAddress => state Address state of the location where the goods or services were supplied. [max length: 255]

  • shippingAddress => zip Address zip of the location where the goods or services were supplied. [max length: 32]

  • suppliedDate The date on which the goods or services were supplied.

  • taxNo The tax number or VAT id of the person who supplied the goods or services. [max length: 255]

  • type The type of invoice. One of WEB or MOBILE. [valid values: WEB, MOBILE, default: WEB]

auth

Authentication information used for the API call. If no value is passed the global keys Simplify::public_key and Simplify::private_key are used. For backwards compatibility the public and private keys may be passed instead of the authentication object.

Returns a Invoice object.



109
110
111
112
113
114
115
116
117
# File 'lib/simplify/invoice.rb', line 109

def self.create(parms, *auth)

    auth_obj = Simplify::PaymentsApi.create_auth_object(auth)
    h = Simplify::PaymentsApi.execute("invoice", 'create', parms, auth_obj)
    obj = Invoice.new()
    obj.authentication = auth_obj
    obj = obj.merge!(h)
    obj
end

.find(id, *auth) ⇒ Object

Retrieve a Invoice object from the API

id

ID of object to retrieve

auth

Authentication information used for the API call. If no value is passed the global keys Simplify::public_key and Simplify::private_key are used. For backwards compatibility the public and private keys may be passed instead of the authentication object.

Returns a Invoice object.



151
152
153
154
155
156
157
158
159
# File 'lib/simplify/invoice.rb', line 151

def self.find(id, *auth)

    auth_obj = Simplify::PaymentsApi.create_auth_object(auth)
    h = Simplify::PaymentsApi.execute("invoice", 'show', {"id" => id}, auth_obj)
    obj = Invoice.new()
    obj.authentication = auth_obj
    obj = obj.merge!(h)
    obj
end

.list(criteria = nil, *auth) ⇒ Object

Retrieve Invoice objects.

criteria

a hash of parameters; valid keys are:

  • filter Filters to apply to the list.

  • max Allows up to a max of 50 list items to return. [min value: 0, max value: 50, default: 20]

  • offset Used in paging of the list. This is the start offset of the page. [min value: 0, default: 0]

  • sorting Allows for ascending or descending sorting of the list. The value maps properties to the sort direction (either asc for ascending or desc for descending). Sortable properties are: id invoiceDate dueDate datePaid customer status dateCreated.

auth

Authentication information used for the API call. If no value is passed the global keys Simplify::public_key and Simplify::private_key are used. For backwards compatibility the public and private keys may be passed instead of the authentication object.

Returns an object where the list property contains the list of Invoice objects and the total property contains the total number of Invoice objects available for the given criteria.



135
136
137
138
139
140
141
142
143
144
# File 'lib/simplify/invoice.rb', line 135

def self.list(criteria = nil, *auth)

    auth_obj = Simplify::PaymentsApi.create_auth_object(auth)
    h = Simplify::PaymentsApi.execute("invoice", 'list', criteria, auth_obj)
    obj = Invoice.new()
    obj.authentication = auth_obj
    obj = obj.merge!(h)
    obj

end

Instance Method Details

#deleteObject

Delete this object



120
121
122
123
124
# File 'lib/simplify/invoice.rb', line 120

def delete()
    h = Simplify::PaymentsApi.execute("invoice", 'delete', self, self.authentication)
    self.merge!(h)
    self
end

#private_keyObject

Returns the private key used when accessing this object. Deprecated: please use ‘authentication’ instead.



50
51
52
# File 'lib/simplify/invoice.rb', line 50

def private_key
    return self.authentication.private_key
end

#private_key=(k) ⇒ Object

Sets the private key used when accessing this object. Deprecated: please use ‘authentication’ instead.



55
56
57
# File 'lib/simplify/invoice.rb', line 55

def private_key=(k)
    return self.authentication.private_key = k
end

#public_keyObject

Returns the public key used when accessing this object. Deprecated: please use ‘authentication’ instead.



40
41
42
# File 'lib/simplify/invoice.rb', line 40

def public_key
    return self.authentication.public_key
end

#public_key=(k) ⇒ Object

Sets the public key used when accessing this object. Deprecated: please use ‘authentication’ instead.



45
46
47
# File 'lib/simplify/invoice.rb', line 45

def public_key=(k)
    return self.authentication.public_key = k
end

#updateObject

  • billingAddress => country Billing address country of the location where the goods or services were supplied. [max length: 2, min length: 2]

  • billingAddress => line1 Billing address line 1 of the location where the goods or services were supplied. [max length: 255]

  • billingAddress => line2 Billing address line 2 of the location where the goods or services were supplied. [max length: 255]

  • billingAddress => name Billing address name of the location where the goods or services were supplied. [max length: 255]

  • billingAddress => state Billing address state of the location where the goods or services were supplied. [max length: 255]

  • billingAddress => zip Billing address zip of the location where the goods or services were supplied. [max length: 32]

  • businessAddress => city Business address city of the business that is sending the invoice. [max length: 255, min length: 2]

  • businessAddress => country Business address country of the business that is sending the invoice. [max length: 2, min length: 2]

  • businessAddress => line1 Business address line 1 of the business that is sending the invoice. [max length: 255]

  • businessAddress => line2 Business address line 2 of the business that is sending the invoice. [max length: 255]

  • businessAddress => name Business address name of the business that is sending the invoice. [max length: 255]

  • businessAddress => state Business address state of the business that is sending the invoice. [max length: 255]

  • businessAddress => zip Business address zip of the business that is sending the invoice. [max length: 32]

  • currency Currency code (ISO-4217). Must match the currency associated with your account. [max length: 3, min length: 3]

  • customerTaxNo The tax number or VAT id of the person to whom the goods or services were supplied. [max length: 255]

  • datePaid This is the date the invoice was PAID in UTC millis.

  • discountRate The discount percent as a decimal e.g. 12.5. This is used to calculate the discount amount which is subtracted from the total amount due before any tax is applied. [max length: 6]

  • dueDate The date invoice payment is due. If a late fee is provided this will be added to the invoice total is the due date has past.

  • email The email of the customer we are invoicing. This is optional if customer or invoiceToCopy is provided. A new customer will be created using the the name and email.

  • invoiceId User defined invoice id. If not provided the system will generate a numeric id. [max length: 255]

  • items => amount Amount of the invoice item in the smallest unit of your currency. Example: 100 = $1.00USD [min value: -9999900, max value: 9999900] (required)

  • items => description The description of the invoice item. [max length: 1024]

  • items => invoice The ID of the invoice this item belongs to.

  • items => product The Id of the product this item refers to.

  • items => quantity Quantity of the item. This total amount of the invoice item is the amount * quantity. [min value: 1, max value: 999999, default: 1]

  • items => reference User defined reference field. [max length: 255]

  • items => tax The tax ID of the tax charge in the invoice item.

  • lateFee The late fee amount that will be added to the invoice total is the due date is past due. Value provided must be in the smallest unit of your currency. Example: 100 = $1.00USD [max value: 9999900]

  • memo A memo that is displayed to the customer on the invoice payment screen. [max length: 4000]

  • name The name of the customer we are invoicing. This is optional if customer or invoiceToCopy is provided. A new customer will be created using the the name and email. [max length: 50, min length: 2]

  • note This field can be used to store a note that is not displayed to the customer. [max length: 4000]

  • payment The ID of the payment. Use this ID to query the /payment API. [max length: 255]

  • reference User defined reference field. [max length: 255]

  • shippingAddress => city Address city of the location where the goods or services were supplied. [max length: 255, min length: 2]

  • shippingAddress => country Address country of the location where the goods or services were supplied. [max length: 2, min length: 2]

  • shippingAddress => line1 Address line 1 of the location where the goods or services were supplied. [max length: 255]

  • shippingAddress => line2 Address line 2 of the location where the goods or services were supplied. [max length: 255]

  • shippingAddress => name Address name of the location where the goods or services were supplied. [max length: 255]

  • shippingAddress => state Address state of the location where the goods or services were supplied. [max length: 255]

  • shippingAddress => zip Address zip of the location where the goods or services were supplied. [max length: 32]

  • status New status of the invoice.

  • suppliedDate The date on which the goods or services were supplied.

  • taxNo The tax number or VAT id of the person who supplied the goods or services. [max length: 255]



208
209
210
211
212
# File 'lib/simplify/invoice.rb', line 208

def update()
      h = Simplify::PaymentsApi.execute("invoice", 'update', self, self.authentication)
      self.merge!(h)
      self
end