Sponsoring The Perl Toolchain Summit 2025: Help make this important event another success Learn more

##----------------------------------------------------------------------------
## Stripe API - ~/lib/Net/API/Stripe/Mandate.pm
## Version v0.100.0
## Copyright(c) 2019 DEGUEST Pte. Ltd.
## Author: Jacques Deguest <@sitael.tokyo.deguest.jp>
## Created 2019/12/25
## Modified 2020/05/15
##
##----------------------------------------------------------------------------
BEGIN
{
use strict;
our( $VERSION ) = 'v0.100.0';
};
sub id { return( shift->_set_get_scalar( 'id', @_ ) ); }
sub object { return( shift->_set_get_scalar( 'object', @_ ) ); }
sub customer_acceptance
{
return( shift->_set_get_class( 'customer_acceptance',
{
accepted_at => { type => 'datetime' },
offline => { type => 'hash_as_object' },
online => { type => 'hash_as_object' },
type => { type => 'scalar' },
}, @_ )
);
}
sub livemode { return( shift->_set_get_boolean( 'livemode', @_ ) ); }
sub multi_use { return( shift->_set_get_hash( 'multi_use', @_ ) ); }
sub payment_method { return( shift->_set_get_scalar_or_object( 'payment_method', 'Net::API::Stripe::Payment::Method', @_ ) ); }
sub payment_method_details
{
return( shift->_set_get_class( 'payment_method_details',
{
card => { type => 'hash' },
sepa_debit => { type => 'hash' },
type => { type => 'scalar' },
}, @_ )
);
}
sub single_use
{
return( shift->_set_get_class( 'single_use',
{
amount => { type => 'number' },
currency => { type => 'scalar' },
}, @_ )
);
}
sub status { return( shift->_set_get_scalar( 'status', @_ ) ); }
sub type { return( shift->_set_get_scalar( 'type', @_ ) ); }
1;
__END__
=encoding utf8
=head1 NAME
Net::API::Stripe::Mandate - A Stripe Mandate Object
=head1 SYNOPSIS
my $mandate = $stripe->mandate({
customer_acceptance =>
{
accepted_at => '2020-04-12T07:30:45',
offline => {},
online => {},
type => 'online',
},
payment_method => $payment_method_object,
single_use =>
{
amount => 2000,
currency => 'jpy',
},
status => 'active',
type => 'mandate',
});
See documentation in L<Net::API::Stripe> for example to make api calls to Stripe to create those objects.
=head1 VERSION
v0.100.0
=head1 DESCRIPTION
A Mandate is a record of the permission a customer has given you to debit their payment method.
=head1 CONSTRUCTOR
=over 4
=item B<new>( %ARG )
Creates a new L<Net::API::Stripe::Mandate> object.
It may also take an hash like arguments, that also are method of the same name.
=back
=head1 METHODS
=over 4
=item B<id> string
Unique identifier for the object.
=item B<object> string, value is "mandate"
String representing the object’s type. Objects of the same type share the same value.
=item B<customer_acceptance> hash
Details about the customer’s acceptance of the mandate.
=over 8
=item I<accepted_at> timestamp
The time at which the customer accepted the Mandate.
=item I<offline> hash
If this is a Mandate accepted offline, this hash contains details about the offline acceptance.
=item I<online> hash
If this is a Mandate accepted online, this hash contains details about the online acceptance.
=item I<type> string
The type of customer acceptance information included with the Mandate. One of online or offline.
=back
=item B<livemode> boolean
Has the value true if the object exists in live mode or the value false if the object exists in test mode.
=item B<multi_use> hash
If this is a multi_use mandate, this hash contains details about the mandate.
=item B< payment_method> string expandable
ID of the payment method associated with this mandate.
=item B<payment_method_details> hash
Additional mandate information specific to the payment method type.
=over 8
=item I<card> hash
If this mandate is associated with a card payment method, this hash contains mandate information specific to the card payment method.
=item I<sepa_debit> hash
If this mandate is associated with a sepa_debit payment method, this hash contains mandate information specific to the sepa_debit payment method.
=item I<type> string
The type of the payment method associated with this mandate. An additional hash is included on payment_method_details with a name matching this value. It contains mandate information specific to the payment method.
=back
=item B<single_use> hash
If this is a single_use mandate, this hash contains details about the mandate.
=over 8
=item I<amount> integer
On a single use mandate, the amount of the payment.
=item I<currency> currency
On a single use mandate, the currency of the payment.
=back
=item B<status> string
The status of the Mandate, one of active, inactive, or pending. The Mandate can be used to initiate a payment only if status=active.
=item B<type> string
The type of the mandate, one of multi_use or single_use
=back
=head1 API SAMPLE
{
"id": "mandate_123456789",
"object": "mandate",
"customer_acceptance": {
"accepted_at": 123456789,
"online": {
"ip_address": "127.0.0.0",
"user_agent": "device"
},
"type": "online"
},
"livemode": false,
"multi_use": {},
"payment_method": "pm_123456789",
"payment_method_details": {
"sepa_debit": {
"reference": "123456789",
"url": ""
},
"type": "sepa_debit"
},
"status": "active",
"type": "multi_use"
}
=head1 HISTORY
=head2 v0.1
Initial version
=head1 AUTHOR
Jacques Deguest E<lt>F<jack@deguest.jp>E<gt>
=head1 SEE ALSO
Stripe API documentation:
=head1 COPYRIGHT & LICENSE
Copyright (c) 2019-2020 DEGUEST Pte. Ltd.
You can use, copy, modify and redistribute this package and associated
files under the same terms as Perl itself.
=cut