NAME

Net::Simplify::Invoice - A Simplify Commerce Invoice object

SYNOPSIS

use Net::Simplify;


$Net::Simplify::public_key = 'YOUR PUBLIC KEY';
$Net::Simplify::private_key = 'YOUR PRIVATE KEY';

# Create a new Invoice.
my $invoice = Net::Simplify::Invoice->create{ {...});

# Retrieve a Invoice given its ID.
my $invoice = Net::Simplify::Invoice->find('a7e41');

# Update existing Invoice.
my $invoice = Net::Simplify::Invoice->find('a7e41');
$invoice->{PROPERTY} = "NEW VALUE";
$invoice->update();

# Delete
my $invoice = Net::Simplify::Invoice->find('a7e41');
$invoice->delete();

# Retrieve a list of objects
my $invoices = Net::Simplify::Invoice->list({max => 10});
foreach my $v ($invoices->list) {
    # ...
}

DESCRIPTION

METHODS

create(%params, $auth)

Creates a Net::Simplify::Invoice object. The parameters are:

%params

Hash map containing initial values for the object. 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]

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]

invoiceLanguage

The language in which invoice will be displayed. [max length: 5, min length: 5]

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.00 (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.00

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 object for accessing the API. If no value is passed the global keys $Net::Simplify::public_key and $Net::Simplify::private_key are used.

delete()

Deletes the Net::Simplify::Invoice object. Authentication is done using the same credentials used when the AccessToken was created.

list(%criteria, $auth)

Retrieve a list of Net::Simplify::Invoice objects. The parameters are:

%criteria

Hash map representing the criteria to limit the results of the list operation. Valid keys are:

filter

<table class="filter_list"><tr><td>filter.id</td><td>Filter by the invoice Id</td></tr><tr><td>filter.amount</td><td>Filter by the invoice amount (in the smallest unit of your currency)</td></tr><tr><td>filter.text</td><td>Filter by the name of the invoice</td></tr><tr><td>filter.dateCreatedMin<sup>*</sup></td><td>Filter by the minimum created date you are searching for - Date in UTC millis</td></tr><tr><td>filter.dateCreatedMax<sup>*</sup></td><td>Filter by the maximum created date you are searching for - Date in UTC millis</td></tr><tr><td>filter.datePaidMin<sup>*</sup></td><td>Filter by the minimum invoice paid date you are searching for - Date in UTC millis</td></tr><tr><td>filter.datePaidMax<sup>*</sup></td><td>Filter by the maximum invoice paid date you are searching for - Date in UTC millis</td></tr><tr><td>filter.status</td><td>Filter by the status of the invoice</td></tr><tr><td>filter.statuses</td><td>Filter by multiple statuses of different invoices</td></tr><tr><td>filter.customer</td><td>Filter using the Id of the customer linked to the invoice</td></tr><tr><td>filter.type</td><td>Filter by the invoice type</td></tr><tr><td>filter.types</td><td>Filter by multiple invoice types</td></tr><tr><td>filter.invoiceId</td><td>Filter by the user defined invoice id</td></tr><tr><td>filter.reference</td><td>Filter by the invoice reference text</td></tr></table><br><sup>*</sup>The filters datePaidMin and datePaidMax can be used in the same filter if you want to search between the two dates. The same is for dateCreatedMin/dateCreatedMax.

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

find($id, $auth)

Retrieve a Net::Simplify::Invoice object from the API. Parameters are:

$id

Identifier of the object to retrieve.

$auth

Authentication object for accessing the API. If no value is passed the global keys $Net::Simplify::public_key and $Net::Simplify::private_key are used.

update()

Update Net::Simplify::Invoice object. The properties that can be updated 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. [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]

invoiceLanguage

The language in which invoice will be displayed. [max length: 5, min length: 5]

items.amount

Amount of the invoice item in the smallest unit of your currency. Example: 100 = $1.00 (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.00

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]

sendMail

Boolean flag. If true the invoice will be sent to the customer if the invoice is in an OPEN state. [default: false] (required)

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]

Authentication is done using the same credentials used when the AccessToken was created.

SEE ALSO

Net::Simplify, Net::Simplify::Domain, Net::Simplify::DomainList, Net::Simplify::Authentication, Net::Simplify::ApiException, http://www.simplify.com

VERSION

1.6.0

LICENSE

Copyright (c) 2013 - 2022 MasterCard International Incorporated All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of the MasterCard International Incorporated nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

SEE ALSO