NAME

PayProp::API::Public::Client::Request::Entity::Payment - Payment entity module.

SYNOPSIS

my $Payment = PayProp::API::Public::Client::Request::Entity::Payment->new(
	domain => 'API_DOMAIN.com',                                         # Required: API domain.
	authorization => C<PayProp::API::Public::Client::Authorization::*>, # Required: Instance of an authorization module.
);

DESCRIPTION

Implementation for creating, retrieving and updating (CRU) payment entity results via API. This module is intended to be accessed via instance of PayProp::API::Public::Client.

METHODS

list_p(\%params)

Issues a C<HTTP GET> request to PayProp API C</entity/payment> endpoint. It takes an optional C<HASHREF> of parameters.

See L</"QUERY PARAMETERS"> for a list of expected parameters.

$Payment
	->list_p({ ... })
	->then( sub {
		my ( $ResponsePayment ) = @_;
		...;

		See L<PayProp::API::Public::Client::Response::Entity::Payment>.
	} )
	->catch( sub {
		my ( $Exception ) = @_;
		...;

		See L<PayProp::API::Public::Client::Exception::Response>.
	} )
	->wait
;

create_p(\%content)

Issues a C<HTTP POST> request to PayProp API C</entity/payment> endpoint.

See L</"REQUEST BODY FIELDS"> for a list of expected request body fields.

$Payment
	->create_p({ ... })
	->then( sub {
		my ( $ResponsePayment ) = @_;
		...;

		See L<PayProp::API::Public::Client::Response::Entity::Payment>.
	} )
	->catch( sub {
		my ( $Exception ) = @_;
		...;

		See L<PayProp::API::Public::Client::Exception::Response>.
	} )
	->wait
;

update_p(\%params, \%content)

Issues a C<HTTP PUT> request to PayProp API C</entity/payment> endpoint.

See L</"REQUEST BODY FIELDS"> for a list of expected request body fields, L</"QUERY PARAMETERS"> and L</"PATH PARAMETERS"> for a list of expected parameters.

$Payment
	->update_p({ ... })
	->then( sub {
		my ( $ResponsePayment ) = @_;
		...;

		See L<PayProp::API::Public::Client::Response::Entity::Payment>.
	} )
	->catch( sub {
		my ( $Exception ) = @_;
		...;

		See L<PayProp::API::Public::Client::Exception::Response>.
	} )
	->wait
;

REQUEST BODY FIELDS

amount

B<number>
Payment amount. C<required>

category_id

B<string> C<[10..32] characters /^[a-zA-Z0-9]+$/>
Payment category external ID. C<required>

customer_id

B<string> C<[1..50] characters /^[a-zA-Z0-9]+$/>
The customer ID is a unique, case-sensitive value per API consumer. The value can be used to retrieve and update the entity. Providing C<null> on update will remove the customer ID associated with the entity. Please note that currently, this functionality is marked as experimental; we strongly recommend keeping track of PayProp entity C<external_id> along with your C<customer_id>.

description

B<string> C<<= 255 characters>
Payment description.

end_date

B<date>
Payment end date.

frequency

B<string>
Enum: "O" "W" "2W" "4W" "M" "2M" "Q" "6M" "A"
Payment frequency. C<required>

has_payment_period

B<boolean>
Available for reoccurring payments

has_tax

B<boolean>

is_direct_debit

B<boolean>

payment_day

B<number>
C<[1..31]> C<required>

property_id

B<string> C<[1..32] characters /^[a-zA-Z0-9]+$/>
External ID of payment property. C<required>

start_date

B<date>
Payment start date.

tenant_id

B<string> C<[1..32] characters /^[a-zA-Z0-9]+$/>
External ID of payment tenant. C<required>

QUERY PARAMETERS

is_customer_id

B<boolean>
Lookup entity based on given customer ID by overriding route C<external_id>.

PATH PARAMETERS

external_id

B<string> C<[1..32] characters /^[a-zA-Z0-9]+$/>
External ID of payment. C<required> for L</"list_p(\%params)"> and L</"update_p(\%params, \%content)">.

AUTHOR

Yanga Kandeni E<lt>yangak@cpan.orgE<gt>

Valters Skrupskis E<lt>malishew@cpan.orgE<gt>

COPYRIGHT

Copyright 2023- PayProp

LICENSE

This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.

If you would like to contribute documentation
or file a bug report then please raise an issue / pull request:

L<https://github.com/Humanstate/api-client-public-module>