h1. Xero API wrapper h2. Introduction This library is designed to help ruby based applications communicate with the publicly available API for Xero. If you are unfamiliar with the API, you should first read the documentation, located here "http://blog.xero.com/developer/":http://blog.xero.com/developer/ h2. Prerequisites To use the Xero API you must have a Xero API Key. If you don't know what this is, and don't know how to get one, this library is probably not for you. h2. Usage
require 'xero_gateway'
gateway = XeroGateway::Gateway.new(
:customer_key => "THE_CUSTOMER_KEY_GENERATED_FOR_YOUR_APP",
:api_key => "YOUR_XERO_API_KEY",
:xero_url => "THE URL FOR THE XERO API (test or live)"
)
h2. Implemented interface methods
h3. GET /api.xro/1.0/contact (get_contact_by_id)
Example:
result = gateway.get_contact_by_id(contact_id)
contact = result.contact if result.success?
h3. GET /api.xro/1.0/contact (get_contact_by_number)
Example:
gateway.get_contact_by_number(contact_number)
h3. GET /api.xro/1.0/contacts (get_contacts)
Example:
gateway.get_contacts(:type => :all, :sort => :name, :direction => :desc)
h3. PUT /api.xro/1.0/contact
Example:
contact = XeroGateway::Contact.new
contact.name = "The contacts name"
contact.email = "whoever@something.com"
contact.phone.number = "555 123 4567"
contact.address.line_1 = "LINE 1 OF THE ADDRESS"
contact.address.line_2 = "LINE 2 OF THE ADDRESS"
contact.address.city = "WELLINGTON"
contact.address.region = "WELLINGTON"
contact.address.country = "NEW ZEALAND"
contact.address.post_code = "6021"
gateway.create_contact(contact)
h3. GET /api.xro/1.0/invoice (get_invoice_by_id)
Example:
gateway.get_invoice_by_id(invoice_id)
h3. GET /api.xro/1.0/invoice (get_invoice_by_number)
Example:
gateway.get_invoice_by_number(invoice_number)
h3. GET /api.xro/1.0/invoices (get_invoices)
Example:
gateway.get_invoices(modified_since = nil)
h3. PUT /api.xro/1.0/invoice
Example:
invoice = XeroGateway::Invoice.new({
:invoice_type => "ACCREC",
:due_date => 1.month.from_now,
:invoice_number => "YOUR INVOICE NUMBER",
:reference => "YOUR REFERENCE (NOT NECESSARILY UNIQUE!)",
:tax_inclusive => true,
:includes_tax => false,
:sub_total => 1000,
:total_tax => 125,
:total => 1250
})
invoice.contact = XeroGateway::Contact.new(:name => "THE NAME OF THE CONTACT")
invoice.contact.phone.number = "12345"
invoice.contact.address.line_1 = "LINE 1 OF THE ADDRESS"
invoice.line_items << XeroGateway::LineItem.new(
:description => "THE DESCRIPTION OF THE LINE ITEM",
:unit_amount => 1000,
:tax_amount => 125,
:line_amount => 1000,
:tracking_category => "THE TRACKING CATEGORY FOR THE LINE ITEM",
:tracking_option => "THE TRACKING OPTION FOR THE LINE ITEM"
)
gateway.create_invoice(invoice)
h3. GET /api.xro/1.0/accounts
Example:
gateway.get_accounts