Skip to content

Instantly share code, notes, and snippets.

@jaredk2g
Created July 27, 2015 22:37
Show Gist options
  • Save jaredk2g/a1ae26d43d36bf149790 to your computer and use it in GitHub Desktop.
Save jaredk2g/a1ae26d43d36bf149790 to your computer and use it in GitHub Desktop.
Invoiced Ruby Client

Invoiced API Ruby Client

The example.rb file has examples for performing various tasks on the API, like creating customers, invoicing, and recording payments.

Installation

The invoiced gem needs to be installed first with:

gem install invoiced
require 'invoiced'
invoiced = Invoiced::Client.new('{YOUR_API_KEY}')
##
## Customers
##
# Create a Customer
p "Creating customer:"
customer = invoiced.Customer.create({
:name => 'Pied Piper'
})
p customer
# Update the newly created Customer
p "Updating customer #{customer.id}:"
customer.payment_terms = 'NET 30'
p customer.save
# And then delete the Customer
p "Deleting customer #{customer.id}:"
p customer.delete
# List the 3 newest Customers
p "Listing customers:"
customers, metadata = invoiced.Customer.list({:per_page => 3, :sort => "created_at DESC"})
p metadata, customers
# Retrieve a Customer by ID
id = customers.first.id
customer = invoiced.Customer.retrieve(id)
p "Retrieved customer #{id}:", customer
##
## Invoices
##
# Create an Invoice
p "Creating invoice:"
invoice = invoiced.Invoice.create({
:customer => customer.id,
:items => [
{
:name => "Line Item Title",
:description => "More detailed description",
:quantity => 5,
:unit_cost => 100
}
]
})
p invoice
# Mark the newly created Invoice as sent
p "Updating invoice:"
invoice.sent = true
p invoice.save
# And then delete the Invoice
p "Deleting invoice:"
p invoice.delete
# List the 3 most recent unpaid Invoices
p "Listing invoices:"
invoices, metadata = invoiced.Invoice.list({
:per_page => 3,
:sort => "created_at desc",
:filter => {:paid => false, :closed => false}})
p metadata, invoices
# Retrieve an Invoice by ID
id = invoices.first.id
invoice = invoiced.Invoice.retrieve(id)
p "Retrieved invoice #{id}:", invoice
##
## Transactions
##
# Mark one of the outstanding invoices from earlier as paid
# by creating a transaction matching the balance on the invoice
p "Creating transaction:"
transaction = invoiced.Transaction.create(
:invoice => invoice.id,
:method => "check",
:amount => invoice.balance
)
p transaction
# Update the newly created Transaction
p "Updating transaction:"
transaction.notes = "Test notes"
p transaction.save
# Delete the Transaction (also unmarks the invoice as paid)
p "Deleting transaction:"
p transaction.delete
# List the 3 most recent Transactions
p "Listing transactions:"
transactions, metadata = invoiced.Transaction.list({:per_page => 3, :sort => "created_at DESC"})
p metadata, transactions
# Retrieve a Transaction by ID
id = transactions.first.id
transaction = invoiced.Transaction.retrieve(id)
p "Retrieved transaction #{id}:", transaction
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment