# SYNOPSIS

   use WebService::ValidSign;
   use WebService::ValidSign::Object::DocumentPackage;
   use WebService::ValidSign::Object::Document;

   my $client = WebService::ValidSign->new(
       secret   => 'my very secret API key',
       endpoint => 'https://my.validsign.nl/api'
       lwp      => LWP::UserAgent->new(), # optional
   );

   my $documentpackage = WebService::ValidSign::Object::DocumentPackage->new(
       name => "Document package name"
   );

   my $senders = $client->account->senders(search => $sender);
   if (!@$senders) {
       die "Unable to find sender $opts{senders}\n";
   }
   elsif (@$senders > 1) {
       die "Multiple senders found for $opts{senders}\n";
   }
   $documentpackage->sender($senders->[0]);

   my $signers = $client->account->senders(search => $signer);
   if (!@$signers) {
       die "Unable to find sender $signer\n";
   }
   # at this moment only one signer is supported
   elsif (@$signers > 1) {
       die "Multiple senders found for $signer}\n";
   }
   $documentpackage->add_signer('rolename' => signers->[0]);

   my @documents = qw(
       /path/to/documents/foo.bar
       /path/to/documents/foo.txt
   );
   foreach (@documents) {
       my $document = WebService::ValidSign::Object::Document->new(
           name => "$_",
           path => $_,
       );
       $documentpackage->add_document($document);
   }

   my $id = $client->package->create($documentpackage);
   print "Created package with ID $id", $/;
   my $details = $client->package->details($documentpackage);

# DESCRIPTION

A module that uses the ValidSign API to create/upload and sign documents.
This module is in ALPHA state and is subject to change at any given moment
without notice.

# ATTRIBUTES

This module extends [WebService::ValidSign::API::Constructor](https://metacpan.org/pod/WebService::ValidSign::API::Constructor) and all of its
attributes.

- secret

   Your API key

- endpoint

   The API URI endpoint as described in the Application Integrator's Guide

- lwp

   An [LWP::UserAgent](https://metacpan.org/pod/LWP::UserAgent) object.

- auth

   An [WebService::ValidSign::API::Auth](https://metacpan.org/pod/WebService::ValidSign::API::Auth) object. Build for you.

- package

   An [WebService::ValidSign::API::DocumentPackage](https://metacpan.org/pod/WebService::ValidSign::API::DocumentPackage) object. Build for you.

- account

   An [WebService::ValidSign::API::Account](https://metacpan.org/pod/WebService::ValidSign::API::Account) object. Build for you.

# BUGS

[JSON::XS](https://metacpan.org/pod/JSON::XS) 4.01 has a bug that causes JSON serialization errors. Please
upgrade or downgrade JSON::XS where needed.

# ACKNOWLEDGEMENTS

This module has been made possible by my employer [Mintlab
B.V.](https://mintlab.nl) who uses this module in their open source product
[Zaaksysteem](https://zaaksysteem.nl).