/stripe-perl

Perl library to connect to the Stripe API

Primary LanguagePerl

NAME

Net::Stripe - API client for Stripe.com

VERSION

version 0.37

SYNOPSIS

my $stripe     = Net::Stripe->new(api_key => $API_KEY);
my $card_token = 'a token';
my $charge = $stripe->post_charge(  # Net::Stripe::Charge
    amount      => 12500,
    currency    => 'usd',
    card        => $card_token,
    description => 'YAPC Registration',
);
print "Charge was not paid!\n" unless $charge->paid;
my $card = $charge->card;           # Net::Stripe::Card

# look up a charge by id
my $same_charge = $stripe->get_charge(charge_id => $charge->id);

# ... and the API mirrors https://stripe.com/docs/api
# Charges: post_charge() get_charge() refund_charge() get_charges()
# Customer: post_customer()

DESCRIPTION

This module is a wrapper around the Stripe.com HTTP API. Methods are generally named after the HTTP method and the object name.

This method returns Moose objects for responses from the API.

METHODS

new PARAMHASH

This creates a new stripe API object. The following parameters are accepted:

api_key

This is required. You get this from your Stripe Account settings.

debug

You can set this to true to see extra debug info.

debug_network

You can set this to true to see the actual network requests.

Balance Transaction Methods

get_balance_transaction

Retrieve a balance transaction.

https://stripe.com/docs/api#retrieve_balance_transaction

  • id - Str - balance transaction ID to retrieve.

Returns a Net::Stripe::BalanceTransaction.

$stripe->get_balance_transaction(id => 'id');

Charge Methods

post_charge

Create a new charge.

https://stripe.com/docs/api#create_charge

  • amount - Int - amount to charge

  • currency - Str - currency for charge

  • customer - Net::Stripe::Customer, HashRef or Str - customer to charge - optional

  • card - Net::Stripe::Card, Net::Stripe::Token, Str or HashRef - card to use - optional

  • description - Str - description for the charge - optional

  • metadata - HashRef - metadata for the charge - optional

  • capture - Bool - optional

  • statement_description - Str - description for statement - optional

  • application_fee - Int - optional

  • receipt_email - Str - The email address to send this charge's receipt to - optional

Returns Net::Stripe::Charge.

$stripe->post_charge(currency => 'USD', amount => 500, customer => 'testcustomer');

get_charge

Retrieve a charge.

https://stripe.com/docs/api#retrieve_charge

  • charge_id - Str - charge id to retrieve

Returns Net::Stripe::Charge.

$stripe->get_charge(charge_id => 'chargeid');

refund_charge

Refunds a charge.

https://stripe.com/docs/api#create_refund

  • charge - Net::Stripe::Charge or Str - charge or charge_id to refund

  • amount - Int - amount to refund in cents, optional

Returns a new Net::Stripe::Refund.

$stripe->refund_charge(charge => $charge, amount => 500);

get_charges

Returns a Net::Stripe::List object containing Net::Stripe::Charge objects.

https://stripe.com/docs/api#list_charges

  • created - HashRef - created conditions to match, optional

  • customer - Net::Stripe::Customer or Str - customer to match

  • ending_before - Str - ending before condition, optional

  • limit - Int - maximum number of charges to return, optional

  • starting_after - Str - starting after condition, optional

Returns a list of Net::Stripe::Charge objects.

$stripe->get_charges(customer => $customer, limit => 5);

Customer Methods

post_customer

Create or update a customer.

https://stripe.com/docs/api#create_customer

  • customer - Net::Stripe::Customer - existing customer to update, optional

  • account_balance - Int, optional

  • card - Net::Stripe::Card, Net::Stripe::Token, Str or HashRef, default card for the customer, optional

  • coupon - Str, optional

  • description - Str, optional

  • email - Str, optional

  • metadata - HashRef, optional

  • plan - Str, optional

  • quantity - Int, optional

  • trial_end - Int or Str, optional

Returns a Net::Stripe::Customer object.

my $customer = $stripe->post_customer(
  card => $fake_card,
  email => 'stripe@example.com',
  description => 'Test for Net::Stripe',
);

list_subscriptions

Returns the subscriptions for a customer.

https://stripe.com/docs/api#list_subscriptions

  • customer - Net::Stripe::Customer or Str

  • ending_before - Str, optional

  • limit - Int, optional

  • starting_after - Str, optional

Returns a list of Net::Stripe::Subscription objects.

get_customer

Retrieve a customer.

https://stripe.com/docs/api#retrieve_customer

  • customer_id - Str - the customer id to retrieve

Returns a Net::Stripe::List object containing Net::Stripe::Customer objects.

$stripe->get_customer(customer_id => $id);

delete_customer

Delete a customer.

https://stripe.com/docs/api#delete_customer

Returns a Net::Stripe::Customer object.

$stripe->delete_customer(customer => $customer);

get_customers

Returns a list of customers.

https://stripe.com/docs/api#list_customers

  • created - HashRef - created conditions, optional

  • ending_before - Str, optional

  • limit - Int, optional

  • starting_after - Str, optional

Returns a Net::Stripe::List object containing Net::Stripe::Customer objects.

$stripe->get_customers(limit => 7);

Card Methods

get_card

Retrieve information about a customer's card.

https://stripe.com/docs/api#retrieve_card

Returns a Net::Stripe::Card.

$stripe->get_card(customer => 'customer_id', card_id => 'abcdef');

post_card

Create or update a card.

https://stripe.com/docs/api#create_card

Returns a Net::Stripe::Card.

$stripe->create_card(customer => $customer, card => $card);

get_cards

Returns a list of cards.

https://stripe.com/docs/api#list_cards

  • customer - Net::Stripe::Customer or Str

  • ending_before - Str, optional

  • limit - Int, optional

  • starting_after - Str, optional

Returns a Net::Stripe::List object containing Net::Stripe::Card objects.

$stripe->list_cards(customer => 'abcdec', limit => 10);

delete_card

Delete a card.

https://stripe.com/docs/api#delete_card

Returns a Net::Stripe::Card.

$stripe->delete_card(customer => $customer, card => $card);

Subscription Methods

post_subscription

Adds or updates a subscription for a customer.

https://stripe.com/docs/api#create_subscription

Returns a Net::Stripe::Customer object.

$stripe->post_subscription(customer => $customer, plan => 'testplan');

get_subscription

Returns a customer's subscription.

Returns a Net::Stripe::Subscription.

$stripe->get_subscription(customer => 'test123');

delete_subscription

Cancel a customer's subscription.

https://stripe.com/docs/api#cancel_subscription

Returns a Net::Stripe::Subscription object.

$stripe->delete_subscription(customer => $customer, subscription => $subscription);

Token Methods

post_token

Create a new token.

https://stripe.com/docs/api#create_card_token

card - Net::Stripe::Card or HashRef

Returns a Net::Stripe::Token.

$stripe->post_token(card => $test_card);

get_token

Retrieves an existing token.

https://stripe.com/docs/api#retrieve_token

  • token_id - Str

Returns a Net::Stripe::Token.

$stripe->get_token(token_id => 'testtokenid');

Plan Methods

post_plan

Create a new plan.

https://stripe.com/docs/api#create_plan

  • id - Str - identifier of the plan

  • amount - Int - cost of the plan in cents

  • currency - Str

  • interval - Str

  • interval_count - Int - optional

  • name - Str - name of the plan

  • trial_period_days - Int - optional

  • statement_description - Str - optional

Returns a Net::Stripe::Plan object.

$stripe->post_plan(
   id => "free-$future_ymdhms",
   amount => 0,
   currency => 'usd',
   interval => 'year',
   name => "Freeplan $future_ymdhms",
);

get_plan

Retrieves a plan.

  • plan_id - Str

Returns a Net::Stripe::Plan.

$stripe->get_plan(plan_id => 'plan123');

delete_plan

Delete a plan.

https://stripe.com/docs/api#delete_plan

Returns a Net::Stripe::Plan object.

$stripe->delete_plan(plan_id => $plan);

get_plans

Return a list of plans.

https://stripe.com/docs/api#list_plans

  • ending_before - Str, optional

  • limit - Int, optional

  • starting_after - Str, optional

Returns a Net::Stripe::List object containing Net::Stripe::Plan objects.

$stripe->get_plans(limit => 10);

Coupon Methods

post_coupon

Create or update a coupon.

https://stripe.com/docs/api#create_coupon

  • id - Str, optional

  • duration - Str

  • amount_offset - Int, optional

  • currency - Str, optional

  • duration_in_months - Int, optional

  • max_redemptions - Int, optional

  • metadata - HashRef, optional

  • percent_off - Int, optional

  • redeem_by - Int, optional

Returns a Net::Stripe::Coupon object.

$stripe->post_coupon(
   id => $coupon_id,
   percent_off => 100,
   duration => 'once',
   max_redemptions => 1,
   redeem_by => time() + 100,
);

get_coupon

Retrieve a coupon.

https://stripe.com/docs/api#retrieve_coupon

  • coupon_id - Str

Returns a Net::Stripe::Coupon object.

$stripe->get_coupon(coupon_id => 'id');

delete_coupon

Delete a coupon.

https://stripe.com/docs/api#delete_coupon

  • coupon_id - Str

Returns a Net::Stripe::Coupon.

$stripe->delete_coupon(coupon_id => 'coupon123');

get_coupons

  • ending_before - Str, optional

  • limit - Int, optional

  • starting_after - Str, optional

Returns a Net::Stripe::List object containing Net::Stripe::Coupon objects.

$stripe->get_coupons(limit => 15);

Invoice Methods

post_invoice

Update an invoice.

  • invoice - Net::Stripe::Invoice, Str

  • application_fee - Int - optional

  • closed - Bool - optional

  • description - Str - optional

  • metadata - HashRef - optional

Returns a Net::Stripe::Invoice.

$stripe->post_invoice(invoice => $invoice, closed => 'true')

get_invoice

  • invoice_id - Str

Returns a Net::Stripe::Invoice.

$stripe->get_invoice(invoice_id => 'testinvoice');

pay_invoice

  • invoice_id - Str

Returns a Net::Stripe::Invoice.

$stripe->pay_invoice(invoice_id => 'testinvoice');

get_invoices

Returns a list of invoices.

https://stripe.com/docs/api#list_customer_invoices

  • customer - Net::Stripe::Customer or Str, optional

  • date - Int or HashRef, optional

  • ending_before - Str, optional

  • limit - Int, optional

  • starting_after - Str, optional

Returns a Net::Stripe::List object containing Net::Stripe::Invoice objects.

$stripe->get_invoices(limit => 10);

create_invoice

Create a new invoice.

https://stripe.com/docs/api#create_invoice

Returns a Net::Stripe::Invoice.

$stripe->create_invoice(customer => 'custid', description => 'test');

get_invoice

  • invoice_id - Str

Returns a Net::Stripe::Invoice.

$stripe->get_invoice(invoice_id => 'test');

get_upcominginvoice

Returns a Net::Stripe::Invoice.

$stripe->get_upcominginvoice(customer => $customer);

Invoice Item Methods

create_invoiceitem

Create an invoice item.

https://stripe.com/docs/api#create_invoiceitem

Returns a Net::Stripe::Invoiceitem object.

$stripe->create_invoiceitem(customer => 'test', amount => 500, currency => 'USD');

post_invoiceitem

Update an invoice item.

https://stripe.com/docs/api#create_invoiceitem

  • invoice_item - Net::Stripe::Invoiceitem or Str

  • amount - Int, optional

  • description - Str, optional

  • metadata - HashRef, optional

Returns a Net::Stripe::Invoiceitem.

$stripe->post_invoiceitem(invoice_item => 'itemid', amount => 750);

get_invoiceitem

Retrieve an invoice item.

  • invoice_item - Str

Returns a Net::Stripe::Invoiceitem.

$stripe->get_invoiceitem(invoice_item => 'testitemid');

delete_invoiceitem

Delete an invoice item.

Returns a Net::Stripe::Invoiceitem.

$stripe->delete_invoiceitem(invoice_item => $invoice_item);

get_invoiceitems

  • customer - Net::Stripe::Customer or Str, optional

  • date - Int or HashRef, optional

  • ending_before - Str, optional

  • limit - Int, optional

  • starting_after - Str, optional

Returns a Net::Stripe::List object containing Net::Stripe::Invoiceitem objects.

$stripe->get_invoiceitems(customer => 'test', limit => 30);

WARNING

This SDK is "version agnostic" of the Stripe API lukec#80 and at the time of this release Stripe has some major changes afoot lukec#115

If you're considering using this please click "Watch" on this github project https://github.com/lukec/stripe-perl/ where discussion on these topics takes place.

=discount_method delete_customer_discount

Deletes a customer-wide discount.

https://stripe.com/docs/api/curl#delete_discount

$stripe->delete_customer_discount(customer => $customer);

Returns hashref of the form

{
  deleted => <bool>
}

SEE ALSO

https://stripe.com, https://stripe.com/docs/api

AUTHORS

  • Luke Closs

  • Rusty Conover

CONTRIBUTORS

  • Andrew Solomon <andrew@geekuni.com>

  • Andrew Solomon <andrew@illywhacker.net>

  • Brian Collins <bricollins@gmail.com>

  • Devin M. Certas <devin@nacredata.com>

  • Dimitar Petrov <mitakaa@gmail.com>

  • Dylan Reinhold <dylan@gasdasoftware.com>

  • E. Choroba <choroba@matfyz.cz>

  • Florian Heyer <info@heyer-it.de>

  • Hermann Calabria <hermann@ivouch.com>

  • Jonathan "Duke" Leto <jonathan@leto.net>

  • Luke Closs <me@luk.ec>

  • Mohammad S Anwar <mohammad.anwar@yahoo.com>

  • Olaf Alders <olaf@wundersolutions.com>

  • Paul Cochrane <paul@liekut.de>

  • Peter Scott <peter@shotgundriver.com>

  • Rusty Conover <rusty@luckydinosaur.com>

  • Sachin Sebastian <sachinjsk@users.noreply.github.com>

  • Sherrard Burton <32931314+sherrardb@users.noreply.github.com>

  • Sherrard Burton <sburton@allafrica.com>

  • Slobodan Mišković <slobodan@miskovic.ca>

  • Tom Eliaz <tom@tomeliaz.com>

COPYRIGHT AND LICENSE

This software is copyright (c) 2015 by Prime Radiant, Inc., (c) copyright 2014 Lucky Dinosaur LLC.

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

POD ERRORS

Hey! The above document had some coding errors, which are explained below:

Around line 915:

Non-ASCII character seen before =encoding in 'Mišković'. Assuming UTF-8