NAME

    Experian::IDAuth - Experian's ID Authenticate service

DESCRIPTION

    This module provides an interface to Experian's Identity Authenticate
    service.
    http://www.experian.co.uk/identity-and-fraud/products/authenticate.html

    First create a subclass of this module to override the defaults method
    with your own data.

        package My::Experian;
        use strict;
        use warnings;
        use base 'Experian::IDAuth';
    
        sub defaults {
            my $self = shift;
    
            return (
                $self->SUPER::defaults,
                username      => 'my_user',
                password      => 'my_pass',
                residence     => $residence,
                postcode      => $postcode || '',
                date_of_birth => $date_of_birth || '',
                first_name    => $first_name || '',
                last_name     => $last_name || '',
                phone         => $phone || '',
                email         => $email || '',
            );
        }
    
        1;

    Then use this module.

        use My::Experian;
    
        # search_option can either be ProveID_KYC or CheckID
        my $prove_id = My::Experian->new(
            search_option => 'ProveID_KYC',
        );
    
        my $prove_id_result = $prove_id->get_result();
    
        if (!$prove_id->has_done_request) {
            # connection problems
            die;
        }
    
        if ($prove_id_result->{deceased} || $prove_id_result->{fraud}) {
            # client flagged as deceased or fraud
        }
        if ($prove_id_result->{deny}) {
            # client on any of PEP, OFAC, or BOE list
            # you can check $prove_id_result->{PEP} etc if you want more detail
        }
        if ($prove_id_result->{fully_authenticated}) {
            # client successfully authenticated,
            # DOES NOT MEAN NO CONCERNS
    
            # check number of credit verifications done
            print "Number of credit verifications: " . $prove_id_result->{num_verifications} . "\n";
        }
    
        # CheckID is a more simpler version and can be used if ProveID_KYC fails
        my $check_id = My::Experian->new(
            search_option => 'CheckID',
        );
    
        if (!$check_id->has_done_request) {
            # connection problems
            die;
        }
    
        if ($check_id->get_result()) {
            # client successfully authenticated
        }

METHODS

 new()

        Creates a new object of your derived class. The parent class should contain most of the attributes required for new(). But you can set search_option to either ProveID_KYC or CheckID

 get_result()

        Return the Experian results as a hashref

 save_pdf_result()

        Save the Experian credentials as a PDF

 defaults()

        Return default value

 get_192_xml_report()

        Return 192 xml report

 has_done_request()

        Check the request finished or not

 has_downloaded_pdf

        Check the file is downloaded an is a pdf file

 set

        set attributes of object

 valid_country

        Check a country is valid

AUTHOR

    binary.com, perl at binary.com

BUGS

    Please report any bugs or feature requests to bug-experian-idauth at
    rt.cpan.org, or through the web interface at
    http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Experian-IDAuth. We will
    be notified, and then you'll automatically be notified of progress on
    your bug as we make changes.

SUPPORT

    You can find documentation for this module with the perldoc command.

        perldoc Experian::IDAuth

    You can also look for information at:

      * RT: CPAN's request tracker (report bugs here)

      http://rt.cpan.org/NoAuth/Bugs.html?Dist=Experian-IDAuth

      * AnnoCPAN: Annotated CPAN documentation

      http://annocpan.org/dist/Experian-IDAuth

      * CPAN Ratings

      http://cpanratings.perl.org/d/Experian-IDAuth

      * Search CPAN

      http://search.cpan.org/dist/Experian-IDAuth/

DEPENDENCIES

        Locale::Country
        Path::Tiny
        WWW::Mechanize
        XML::Simple
        XML::Twig
        SOAP::Lite
        IO::Socket
        File::MimeInfo::Magic
        Syntax::Keyword::Try

