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" and "decimal_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 in "strings". * 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 . SEE ALSO Parse::PayPal::TxDetailReport AUTHOR perlancar 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.