NAME

Net::FreshBooks::API::Recurring - FreshBooks Recurring Item access

VERSION

version 0.24

SYNOPSIS

use Net::FreshBooks::API;
use Net::FreshBooks::API::InvoiceLine;
use DateTime;

# You will not access this module directly, but rather fetch an object via
# its parent class, Net::FreshBooks::API

my $fb = Net::FreshBooks::API->new({ ... });

# create a new client
my $client = $fb->client->create(
    {   first_name   => 'Larry',
        last_name    => 'Wall',
        organization => 'Perl HQ',
        email        => 'larry@example.com',
    }
);

# create a recurring item
use Net::FreshBooks::API;

my $line = Net::FreshBooks::API::InvoiceLine->new({
    name         => "Widget",
    description  => "Net::FreshBooks::API Widget",
    unit_cost    => '1.99',
    quantity     => 1,
    tax1_name    => "GST",
    tax1_percent => 5,
});

# set up autobill

my $autobill = Net::FreshBooks::API::Recurring::AutoBill->new;
$autobill->gateway_name('PayPal Payflow Pro');
$autobill->card->name('Tim Toady');
$autobill->card->number('4111 1111 1111 1111');
$autobill->card->expiration->month(12);
$autobill->card->expiration->year(2015);

# use the client object from the previous example

my $recurring_item = $fb->recurring->create({
    client_id   => $client->client_id,
    date        => DateTime->now->add( days => 2 )->ymd, # YYYY-MM-DD
    frequency   => 'monthly',
    lines       => [ $line ],
    autobill    => $autobill,
    notes       => 'Created by Net::FreshBooks::API',
});

$recurring_item->po_number( 999 );
$recurring_item->update;

See also L<Net::FreshBooks::API::Base> for other available methods, such
as create, update, get, list and delete.

create

my $recurring = $fb->recurring->create({...});

delete

my $item = $recurring->get({ recurring_id => $recurring_id });
$item->delete;

get

my $item = $recurring->get({ recurring_id => $recurring_id });

update

$referring->organization('Perl Foundation');
$referring->update;

# or more quickly
$referring->update( { organization => 'Perl Foundation', } );

autobill

Returns a Net::FreshBooks::API::Recurring::AutoBill object

my $autobill = $recurring_item->autobill;
$autobill->gateway_name('PayPal Payflow Pro');
$autobill->card->name('Tim Toady');
$autobill->card->number('4111 1111 1111 1111');
$autobill->card->expiration->month(12);
$autobill->card->expiration->year(2015);

$recurring_item->create;

To delete an autobill profile, just set autobill to an empty string prior to update.

$referring->autobill('');
$referring->update;

list

Returns a Net::FreshBooks::API::Iterator object.

my $recurrings = $fb->recurring->list;
while ( my $recurring = $recurrings->next ) {
    print $recurring->recurring_id, "\n";
}

lines

Returns an ARRAYREF of Net::FreshBooks::API::InvoiceLine objects

foreach my $line ( @{ $recurring->lines } ) {
    print $line->amount, "\n";
}

AUTHOR

Olaf Alders
CPAN ID: OALDERS
olaf@raybec.com

CREDITS

Thanks to Edmund von der Burg for doing all of the hard work to get this module going and for allowing me to act as a co-maintainer.

Thanks to Raybec Communications http://www.raybec.com for funding my work on this module and for releasing it to the world.

COPYRIGHT

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

AUTHORS

  • Edmund von der Burg <evdb@ecclestoad.co.uk>

  • Olaf Alders <olaf@wundercounter.com>

COPYRIGHT AND LICENSE

This software is copyright (c) 2011 by Edmund von der Burg & Olaf Alders.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.