NAME
Parse::PayPal::TxFinderReport - Parse PayPal transaction detail report into data structure
VERSION
This document describes version 0.003 of Parse::PayPal::TxFinderReport (from Perl distribution Parse-PayPal-TxFinderReport), released on 2018-11-06.
SYNOPSIS
use Parse::PayPal::TxFinderReport qw(parse_paypal_txfinder_report);
my $res = parse_paypal_txfinder_report(file => );
Sample result when there is a parse error:
[400, "Doesn't find signature in first row"]
Sample result when parse is successful:
[200, "OK", {
format => "txfinder",
transactions => [
{
"3PL Reference ID" => "",
"Auction Buyer ID" => "",
"Auction Closing Date" => "",
"Auction Site" => "",
"Authorization Review Status" => 1,
...
"Transaction Completion Date" => 1467273397,
...
},
...
],
}]
DESCRIPTION
PayPal provides various kinds reports which you can retrieve from their website under Reports menu. This module provides routine to parse PayPal transaction finder report into a Perl data structure. The CSV format is supported. No official documentation of the format is available, but it's mostly regular CSV.
This module can recognize two variants of the report:
Search Transaction Results (STR)
Some characteristics of this variant:
Date is MM/DD/YYYY only without hour/minute/second information
Date will be converted to Unix epoch in the returned data structure.
No transaction status field
Transaction Finder (TF)
Some characteristics of this variant:
Dates are locale-formatted (e.g. DD/MM/YYYY)
Date will be converted to Unix epoch in the returned data structure. Make sure you set the correct
date_format
parameter.Numbers are locale-formatted (e.g. 1,23 instead of 1.23 when using comma as decimal character)
Formatting will be removed. Make sure you set the correct
thousands_sep
anddecimal_point
parameters.
FUNCTIONS
parse_paypal_txfinder_report
Usage:
parse_paypal_txfinder_report(%args) -> [status, msg, payload, meta]
Parse PayPal transaction detail report into data structure.
The result will be a hashref. The main key is transactions
which will be an arrayref of hashrefs.
Dates will be converted into Unix timestamps.
This function is not exported by default, but exportable.
Arguments ('*' denotes required arguments):
date_format => str (default: "MM/DD/YYYY")
decimal_point => str (default: ".")
file => filename
File can be in tab-separated or comma-separated (CSV) format.
format => str
If unspecified, will be deduced from the filename's extension (/csv/i for CSV, or /txt|tsv|tab/i for tab-separated).
string => str
Instead of
files
, you can alternatively provide the file contents instrings
.thousands_sep => str (default: ",")
Returns an enveloped result (an array).
First element (status) is an integer containing HTTP status code (200 means OK, 4xx caller error, 5xx function error). Second element (msg) is a string containing error message, or 'OK' if status is 200. Third element (payload) is optional, the actual result. Fourth element (meta) is called result metadata and is optional, a hash that contains extra information.
Return value: (any)
BUGS
Please report all bug reports or feature requests to mailto:stevenharyanto@gmail.com.
SEE ALSO
AUTHOR
perlancar <perlancar@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2018, 2017, 2016 by perlancar@cpan.org.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.