NAME

Net-Flotum - use Flotum as your payment gateway

SYNOPSIS

    use Net::Flotum;

    $flotum = Net::Flotum->new(
        merchant_api_key => 'foobar',
    );

    # returns a Net::Flotum::Object::Customer
    $customer = $flotum->new_customer(

        name  => 'name here',
        remote_id => 'your id here',
        legal_document => '...',
        default_address_neighbourhood => '...'
    );

    # returns a Net::Flotum::Object::Customer
    $customer = $flotum->load_customer(

        # via remote_id
        remote_id => 'foobar',
        # or via id
        id => '0b912879-7c7b-42a1-8f49-722f13b67ae6'

    );

    # returns a hash reference containing details for creating an credit card.
    $http_description = $customer->new_credit_card();
    # something like that
    {
        accept     :  "application/json",
        fields     :  {
            address_city         :  "?Str",
            address_inputed_at   :  "?GmtDateTime",
            address_name         :  "?Str",
            address_neighbourhood:  "?Str",
            address_number       :  "?Str",
            address_observation  :  "?Str",
            address_state        :  "?Str",
            address_street       :  "?Str",
            address_zip          :  "?Str",
            brand                :  "*Brand",
            csc                  :  "*CSC",
            legal_document       :  "*Str",
            name_on_card         :  "*Str",
            number               :  "*CreditCard",
            validity             :  "*YYYYDD"
        },
        href       :  "https://default.flotum.com/customers/9baa2e37-2cb0-4c5c-9fe0-b2d91fdd53fe/credit-cards/?api_key=xxxx",
        method     :  "POST",
        valid_until:  1448902516
    }
    # ? means not required
    # * means required.
    # Str = Any String, CreditCard = credit card number, YYYYMD = Year+Month (2 pad)
    # Brands acceptance may vary, but may be one or more of bellow:
    # visa|mastercard|discover|americanexpress|jcb|enroute|bankcard|solo|chinaunionpay|laser|isracard|aura|elo


    # returns a list of Net::Flotum::Object::CreditCard
    @credit_cards = $customer->list_credit_cards();

    # Creating a charge.
    my $charge = $customer->new_charge(
        amount   => 100,
        currency => 'bra',
        metadata => {
            'Please use' => 'The way you need',
            'but'        => 'Do not use more than 10000 bytes after encoded in JSON',
        }
    );

    # Doing payment.
    my $payment = $charge->payment(
        customer_credit_card_id => $customer_credit_card_id,
        csc_check               => '000',
    );

    # Capture.
    my $capture = $charge->capture(description => "is optional");
    print $capture->{transaction_status} . "\n"; # authorized

    # Refund.
    my $refund = $charge->refund();
    print $refund->{status} . "\n";             # aborted
    print $refund->{transaction_status} . "\n"; # in-cancellation

DESCRIPTION

this is WIP work, please check this page later! Flotum is currently only being used on eokoe.com startups.

Flotum is a solution for storing credit card information and creating charges against it. It allow you to change between operators (Stripe, Paypal, etc) while keeping your customer credit cards in one place.

AUTHOR

Renato CRON <rentocron@cpan.org>

COPYRIGHT

Copyright 2015-2016 Renato CRON

Owing to http://eokoe.com

LICENSE

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

SEE ALSO

Business::Payment Business::OnlinePayment