Net::Simplify::Invoice

<<

- NAME
- SYNOPSIS
- DESCRIPTION
  - METHODS
    - create(%params, $auth)
    - delete()
    - list(%criteria, $auth)
    - find($id, $auth)
    - update()
- SEE ALSO
- VERSION
- LICENSE
- SEE ALSO

# 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:

  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 is a name and email are provided

  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 a customer id 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 (the smallest unit of your currency). Example: 100 = $1.00USD [min value: 1, 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. (required)

  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 a customer id 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]

  shippingAddressLine1

    Address Line 1 where the product should be shipped. [max length: 255]

  shippingAddressLine2

    Address Line 2 where the product should be shipped. [max length: 255]

  shippingCity

    City where the product should be shipped. [max length: 255, min length: 2]

  shippingCountry

    Country where the product should be shipped. [max length: 2, min length: 2]

  shippingState

    State where the product should be shipped. [max length: 2, min length: 2]

  shippingZip

    ZIP code where the product should be shipped. [max length: 9, min length: 5]

  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`

    Filters to apply to the list.

  `max`

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

  `offset`

    Used in paging of the list. This is the start offset of the page. [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`

### 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:

`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.

`items.amount`

  Amount of the invoice item in the smallest unit of your currency. Example: 100 = $1.00USD [min value: 1, 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. (required)

`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

`memo`

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

`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]

`shippingAddressLine1`

  The shipping address line 1 for the product. [max length: 255]

`shippingAddressLine2`

  The shipping address line 2 for the product. [max length: 255]

`shippingCity`

  The shipping city for the product. [max length: 255, min length: 2]

`shippingCountry`

  The shipping country for the product. [max length: 2, min length: 2]

`shippingState`

  The shipping state for the product. [max length: 2, min length: 2]

`shippingZip`

  The shipping ZIP code for the product. [max length: 9, min length: 5]

`status`

  New status of the invoice.

  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.1.0

# LICENSE

Copyright (c) 2013, 2014 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

<<