Business::Payment::ClearingHouse - ClearingHouse for Business::Payment


    use Business::Payment::ClearingHouse;

    my $house = Business::Payment::ClearingHouse->new();

    # Create a charge
    my $charge = Business::Payment::ClearingHouse::Charge->new(
        subtotal => 100,
        tax      => 10
    # Authorizate it and get the uuid
    my $uuid = $house->auth($charge);

    # Settle!
    my $total = $house->settle;


Business::Payment::ClearingHouse provides an API that emulates a payment processor like the ones used with credit cards. The operations it provides are inspired by those present with a credit card processor: preauth (reserve), postauth (consume the reserved funds), auth (immediately charge), credit (refund) and void (remove a charge).

This module is intended to provide a testbed for features of Business::Payment and to provide a testing processor for use in development environments. The settle method allows a developer to examine the net results of a series of transactions.

Notice: This module is in development. The API will likely change.



Hashref of charges. Keys are the UUIDs and values are the charge objects.


Hashref of charge states. Keys are the UUIDs and the values are the strings that represent state. One of preauth, postauth, auth or credit.


The UUID generator used by this object, a lazily insantiated Data::UUID object.


auth ($charge)

Performs an immediate auth for the supplied charge.

credit ($charge)

Performs a credit for the supplied charge.

info ($uuid)

Returns the charge associated with the supplied UUID.

postauth ($uuid)

Performs a post-authorization for the charge tied to the supplied UUID. This is the second operation after a preauth.

preauth ($charge)

Performs a pre-authorization for the supplied charge. This should be followed by a postauth.


Totals up and removes all pending transactions. Returns the total (sum of all auth and postauth, less any credits). Any remaining preauth transactions are left in the clearinghouse to be postauthed later.

void ($uuid)

Voids the charge with the supplied UUID. Removes any information about the charge from the clearinghouse.


Cory G Watson, <gphat at>


Copyright 2009 Cold Hard Code, LLC.

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See for more information.