File Coverage

lib/Net/API/Stripe/Payment/Settings.pm
Criterion Covered Total %
statement 19 22 86.3
branch n/a
condition n/a
subroutine 7 10 70.0
pod 2 3 66.6
total 28 35 80.0


line stmt bran cond sub pod time code
1             ##----------------------------------------------------------------------------
2             ## Stripe API - ~/lib/Net/API/Stripe/Payment/Settings.pm
3             ## Version v0.1.0
4             ## Copyright(c) 2022 DEGUEST Pte. Ltd.
5             ## Author: Jacques Deguest <jack@deguest.jp>
6             ## Created 2022/07/15
7             ## Modified 2022/07/15
8             ## All rights reserved.
9             ##
10             ##
11             ## This program is free software; you can redistribute it and/or modify it
12             ## under the same terms as Perl itself.
13             ##----------------------------------------------------------------------------
14             package Net::API::Stripe::Payment::Settings;
15             BEGIN
16             {
17 1     1   1785 use strict;
  1         2  
  1         36  
18 1     1   7 use warnings;
  1         3  
  1         35  
19 1     1   7 use parent qw( Net::API::Stripe::Generic );
  1         4  
  1         6  
20 1     1   81 use vars qw( $VERSION );
  1         2  
  1         58  
21 1     1   20 our $VERSION = 'v0.1.0';
22             };
23              
24 1     1   5 use strict;
  1         2  
  1         41  
25 1     1   6 use warnings;
  1         2  
  1         133  
26              
27 0     0 0   sub default_mandate { return( shift->_set_get_object_without_init( 'default_mandate', 'Net::API::Stripe::Mandate', @_ ) ); }
28              
29 0     0 1   sub payment_method_options { return( shift->_set_get_object( 'payment_method_options', 'Net::API::Stripe::Payment::Method::Options', @_ ) ); }
30              
31 0     0 1   sub payment_method_types { return( shift->_set_get_array( 'payment_method_types', @_ ) ); }
32              
33             1;
34             # NOTE: POD
35             __END__
36              
37             =encoding utf-8
38              
39             =head1 NAME
40              
41             Net::API::Stripe::Payment::Settings - Stripe API
42              
43             =head1 SYNOPSIS
44              
45             use Net::API::Stripe::Payment::Settings;
46             my $this = Net::API::Stripe::Payment::Settings->new || die( Net::API::Stripe::Payment::Settings->error, "\n" );
47              
48             =head1 VERSION
49              
50             v0.1.0
51              
52             =head1 DESCRIPTION
53              
54             Configuration settings for the PaymentIntent that is generated when the invoice is finalized.
55              
56             =head1 METHODS
57              
58             =head2 payment_method_options
59              
60             Payment-method-specific configuration to provide to the invoice’s PaymentIntent.
61              
62             =over 4
63              
64             =item * C<acss_debit> hash
65              
66             If paying by acss_debit, this sub-hash contains details about the Canadian pre-authorized debit payment method options to pass to the invoice’s PaymentIntent.
67              
68             =over 8
69              
70             =item * C<mandate_options> hash
71              
72             Additional fields for Mandate creation
73              
74             =item * C<verification_method> enum
75              
76             Bank account verification method.
77              
78             Possible enum values
79              
80             =over 12
81              
82             =item * C<automatic>
83              
84             Instant verification with fallback to microdeposits.
85              
86             =item * Cinstant>
87              
88             Instant verification.
89              
90             =item * Cmicrodeposits>
91              
92             Verification using microdeposits.
93              
94             =back
95              
96             =back
97              
98             =item * C<bancontact> hash
99              
100             If paying by bancontact, this sub-hash contains details about the Bancontact payment method options to pass to the invoice’s PaymentIntent.
101              
102             =over 8
103              
104             =item * C<preferred_language> enum
105              
106             Preferred language of the Bancontact authorization page that the customer is redirected to.
107              
108             Possible enum values
109              
110             =over 12
111              
112             =item * C<en>
113              
114             English
115              
116             =item * C<de>
117              
118             German
119              
120             =item * C<fr>
121              
122             French
123              
124             =item * C<nl>
125              
126             Dutch
127              
128             =back
129              
130             =back
131              
132             =item * C<card> hash
133              
134             If paying by card, this sub-hash contains details about the Card payment method options to pass to the invoice’s PaymentIntent.
135              
136             =over 8
137              
138             =item * C<request_three_d_secure> enum advanced
139              
140             We strongly recommend that you rely on our SCA Engine to automatically prompt your customers for authentication based on risk level and other requirements. However, if you wish to request 3D Secure based on logic from your own fraud engine, provide this option. Read our guide on manually requesting 3D Secure for more information on how this configuration interacts with Radar and our SCA Engine.
141              
142             Possible enum values
143              
144             =over 12
145              
146             =item * C<automatic>
147              
148             Triggers 3D Secure authentication only if it is required.
149              
150             =item * C<any>
151              
152             Requires 3D Secure authentication if it is available.
153              
154             =back
155              
156             =back
157              
158             =item * C<customer_balance> hash
159              
160             If paying by customer_balance, this sub-hash contains details about the Bank transfer payment method options to pass to the invoice’s PaymentIntent.
161              
162             =over 8
163              
164             =item * C<bank_transfer> hash
165              
166             Configuration for the bank transfer funding type, if the funding_type is set to bank_transfer.
167              
168             =over 12
169              
170             =item * C<eu_bank_transfer> hash preview feature
171              
172             Configuration for eu_bank_transfer funding type.
173              
174             =over 16
175              
176             =item * C<country> string
177              
178             The desired country code of the bank account information. Permitted values include: DE, ES, FR, IE, or NL.
179              
180             =back
181              
182             =item * C<type> string
183              
184             The bank transfer type that can be used for funding. Permitted values include: C<eu_bank_transfer>, C<gb_bank_transfer>, C<jp_bank_transfer>, or C<mx_bank_transfer>.
185              
186             =back
187              
188             =item * C<funding_type> string
189              
190             The funding method type to be used when there are not enough funds in the customer balance. Permitted values include: bank_transfer.
191              
192             =back
193              
194             =item * C<konbini> hash
195              
196             If paying by konbini, this sub-hash contains details about the Konbini payment method options to pass to the invoice’s PaymentIntent.
197              
198             =item * C<us_bank_account> hash
199              
200             If paying by us_bank_account, this sub-hash contains details about the ACH direct debit payment method options to pass to the invoice’s PaymentIntent.
201              
202             =over 8
203              
204             =item * C<financial_connections> hash preview feature
205              
206             Additional fields for Financial Connections Session creation
207              
208             =over 12
209              
210             =item * C<permissions> array of enum values
211              
212             The list of permissions to request. The payment_method permission must be included.
213              
214             Possible enum values
215              
216             =over 16
217              
218             =item * C<payment_method>
219              
220             Allows the creation of a payment method from the account.
221              
222             =item * C<balances>
223              
224             Allows accessing balance data from the account.
225              
226             =item * C<transactions>
227              
228             Allows accessing transactions data from the account.
229              
230             =back
231              
232             =back
233              
234             =item * C<verification_method> enum
235              
236             Bank account verification method.
237              
238             Possible enum values
239              
240             =over 12
241              
242             =item * C<automatic>
243              
244             Instant verification with fallback to microdeposits.
245              
246             =item * C<instant>
247              
248             Instant verification only.
249              
250             =item * C<microdeposits>
251              
252             Verification using microdeposits. Cannot be used with Stripe Checkout or Hosted Invoices.
253              
254             =back
255              
256             =back
257              
258             =back
259              
260             =head2 payment_method_types array of enum values
261              
262             The list of payment method types (e.g. card) to provide to the invoice’s PaymentIntent. If not set, Stripe attempts to automatically determine the types to use by looking at the invoice’s default payment method, the subscription’s default payment method, the customer’s default payment method, and your invoice template settings.
263              
264             Possible enum values
265              
266             =over 4
267              
268             =item * C<ach_credit_transfer> USD only
269              
270             ACH bank transfer
271              
272             The collection_method must be send_invoice.
273              
274             =item * C<ach_debit> USD only
275              
276             ACH
277              
278             =item * C<acss_debit> USD and CAD
279              
280             Canadian pre-authorized debit
281              
282             =item * C<au_becs_debit> AUD only
283              
284             BECS Direct Debit
285              
286             =item * C<bacs_debit> GBP only
287              
288             Bacs Direct Debit
289              
290             =item * C<bancontact> EUR only
291              
292             Bancontact
293              
294             The collection_method must be send_invoice.
295              
296             =item * C<boleto> BRL only
297              
298             Boleto
299              
300             =item * C<card>
301              
302             Card
303              
304             =item * C<customer_balance> EUR, GBP, and 3 other currencies
305              
306             Bank transfer
307              
308             The collection_method must be send_invoice.
309              
310             =item * C<eps> EUR only
311              
312             EPS
313              
314             The collection_method must be send_invoice.
315              
316             =item * C<fpx> MYR only
317              
318             FPX
319              
320             The collection_method must be send_invoice.
321              
322             =item * C<giropay> EUR only
323              
324             giropay
325              
326             The collection_method must be send_invoice.
327              
328             =item * C<grabpay> MYR and SGD
329              
330             GrabPay
331              
332             The collection_method must be send_invoice.
333              
334             =item * C<ideal> EUR only
335              
336             iDEAL
337              
338             The collection_method must be send_invoice.
339              
340             =item * C<konbini> JPY only
341              
342             Konbini
343              
344             The collection_method must be send_invoice.
345              
346             =item * C<link> USD only
347              
348             Link
349              
350             =item * C<p24> EUR and PLN
351              
352             Przelewy24
353              
354             The collection_method must be send_invoice.
355              
356             =item * C<paynow> SGD only
357              
358             PayNow
359              
360             The collection_method must be send_invoice.
361              
362             =item * C<promptpay> THB only
363              
364             PromptPay
365              
366             The collection_method must be send_invoice.
367              
368             =item * C<sepa_debit> EUR only
369              
370             SEPA Direct Debit
371              
372             =item * C<sofort> EUR only
373              
374             SOFORT
375              
376             The collection_method must be send_invoice.
377              
378             =item * C<us_bank_account> USD only
379              
380             ACH direct debit
381              
382             =item * C<wechat_pay> USD, EUR, and 11 other currencies
383              
384             WeChat Pay
385              
386             The collection_method must be send_invoice.
387              
388             =back
389              
390             =head1 AUTHOR
391              
392             Jacques Deguest E<lt>F<jack@deguest.jp>E<gt>
393              
394             =head1 SEE ALSO
395              
396             L<https://stripe.com/docs/api/invoices/object>
397              
398             L<https://stripe.com/docs/api/subscriptions/object>
399              
400             =head1 COPYRIGHT & LICENSE
401              
402             Copyright(c) 2022 DEGUEST Pte. Ltd.
403              
404             All rights reserved.
405              
406             This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
407              
408             =cut