File Coverage

lib/Net/API/Stripe/Payment/Method/Options.pm
Criterion Covered Total %
statement 21 52 40.3
branch n/a
condition n/a
subroutine 7 38 18.4
pod 31 31 100.0
total 59 121 48.7


line stmt bran cond sub pod time code
1             ##----------------------------------------------------------------------------
2             ## Stripe API - ~/lib/Net/API/Stripe/Payment/Method/Details.pm
3             ## Version v0.103.0
4             ## Copyright(c) 2020 DEGUEST Pte. Ltd.
5             ## Author: Jacques Deguest <jack@deguest.jp>
6             ## Created 2022/08/11
7             ## Modified 2022/10/29
8             ## All rights reserved
9             ##
10             ## This program is free software; you can redistribute it and/or modify it
11             ## under the same terms as Perl itself.
12             ##----------------------------------------------------------------------------
13             package Net::API::Stripe::Payment::Method::Options;
14             BEGIN
15             {
16 3     3   1603 use strict;
  3         8  
  3         99  
17 3     3   27 use warnings;
  3         8  
  3         90  
18 3     3   16 use parent qw( Net::API::Stripe::Generic );
  3         10  
  3         22  
19 3     3   229 use vars qw( $VERSION @EXPORT_OK %EXPORT_TAGS );
  3         8  
  3         429  
20 3     3   32 our @EXPORT_OK = qw(
21             ach_credit_transfer ach_debit acss_debit affirm afterpay_clearpay alipay au_becs_debit
22             bacs_debit bancontact blik boleto card card_present customer_balance eps fpx
23             giropay grabpay ideal interac_present klarna konbini multibanco oxxo p24 sepa_debit
24             sofort stripe_account us_bank_account wechat
25             );
26 3         13 our %EXPORT_TAGS = ( all => \@EXPORT_OK );
27 3         78 our( $VERSION ) = 'v0.103.0';
28             };
29              
30 3     3   20 use strict;
  3         10  
  3         82  
31 3     3   56 use warnings;
  3         7  
  3         3192  
32              
33 0     0 1   sub ach_credit_transfer { return( shift->_set_get_object( 'ach_credit_transfer', 'Net::API::Stripe::Payment::Source::ACHCreditTransfer', @_ ) ); }
34              
35 0     0 1   sub ach_debit { return( shift->_set_get_object( 'ach_debit', 'Net::API::Stripe::Payment::Source::ACHDebit', @_ ) ); }
36              
37 0     0 1   sub acss_debit { return( shift->_set_get_object( 'acss_debit', 'Net::API::Stripe::Connect::ExternalAccount::Card', @_ ) ); }
38              
39 0     0 1   sub affirm { return( shift->_set_get_class( 'affirm',
40             {
41             capture_method => { type => 'string' },
42             setup_future_usage => { type => 'string' },
43             }, @_ ) ); }
44              
45 0     0 1   sub afterpay_clearpay { return( shift->_set_get_class( 'afterpay_clearpay',
46             {
47             capture_method => { type => 'string' },
48             reference => { type => 'string' },
49             setup_future_usage => { type => 'string' },
50             }, @_ ) ); }
51              
52 0     0 1   sub alipay { return( shift->_set_get_class( 'alipay',
53             {
54             fingerprint => { type => "scalar" },
55             setup_future_usage => { type => "scalar" },
56             transaction_id => { type => "scalar" },
57             }, @_ ) ); }
58              
59 0     0 1   sub au_becs_debit { return( shift->_set_get_class( 'au_becs_debit',
60             {
61             bsb_number => { type => "scalar" },
62             fingerprint => { type => "scalar" },
63             last4 => { type => "scalar" },
64             mandate => { type => "scalar" },
65             setup_future_usage => { type => "scalar" },
66             }, @_ ) ); }
67              
68 0     0 1   sub bacs_debit { return( shift->_set_get_class( 'bacs_debit',
69             {
70             fingerprint => { type => "scalar" },
71             last4 => { type => "scalar" },
72             mandate => { type => "scalar" },
73             network_status => { type => "scalar" },
74             reference => { type => "scalar" },
75             setup_future_usage => { type => "scalar" },
76             sort_code => { type => "scalar" },
77             url => { type => "uri" },
78             }, @_ ) ); }
79              
80 0     0 1   sub bancontact { return( shift->_set_get_class( 'bancontact',
81             {
82             bank_code => { type => "scalar" },
83             bank_name => { type => "scalar" },
84             bic => { type => "scalar" },
85             generated_sepa_debit => {
86             package => "Net::API::Stripe::Payment::Method",
87             type => "scalar_or_object",
88             },
89             generated_sepa_debit_mandate => { package => "Net::API::Stripe::Mandate", type => "scalar_or_object" },
90             iban_last4 => { type => "scalar" },
91             preferred_language => { type => "scalar" },
92             setup_future_usage => { type => "scalar" },
93             verified_name => { type => "scalar" },
94             }, @_ ) ); }
95              
96 0     0 1   sub blik { return( shift->_set_get_object( 'blik', 'Net::API::Stripe::Connect::ExternalAccount::Card', @_ ) ); }
97              
98 0     0 1   sub boleto { return( shift->_set_get_class( 'boleto',
99             {
100             expires_after_days => { type => 'integer' },
101             setup_future_usage => { type => "scalar" },
102             }, @_ ) ); }
103              
104             # sub card { return( shift->_set_get_object( 'card', 'Net::API::Stripe::Connect::ExternalAccount::Card', @_ ) ); }
105              
106 0     0 1   sub card { return( shift->_set_get_object( 'card', 'Net::API::Stripe::Payment::Card', @_ ) ); }
107              
108 0     0 1   sub card_present { return( shift->_set_get_object( 'card_present', 'Net::API::Stripe::Connect::ExternalAccount::Card', @_ ) ); }
109              
110 0     0 1   sub customer_balance { return( shift->_set_get_class( 'customer_balance',
111             {
112             bank_transfer => {
113             definition => {
114             eu_bank_transfer => { package => "Net::API::Stripe::Address", type => "object" },
115             requested_address_types => { type => "array" },
116             type => { type => "scalar" },
117             },
118             type => "class",
119             },
120             funding_type => { type => "scalar" },
121             setup_future_usage => { type => "scalar" },
122             }, @_ ) ); }
123              
124 0     0 1   sub eps { return( shift->_set_get_object( 'eps', 'Net::API::Stripe::Connect::Account::Verification', @_ ) ); }
125              
126 0     0 1   sub fpx { return( shift->_set_get_object( 'fpx', 'Net::API::Stripe::Connect::ExternalAccount::Card', @_ ) ); }
127              
128 0     0 1   sub giropay { return( shift->_set_get_object( 'giropay', 'Net::API::Stripe::Connect::ExternalAccount::Card', @_ ) ); }
129              
130 0     0 1   sub grabpay { return( shift->_set_get_object( 'grabpay', 'Net::API::Stripe::Connect::ExternalAccount::Card', @_ ) ); }
131              
132 0     0 1   sub ideal { return( shift->_set_get_object( 'ideal', 'Net::API::Stripe::Connect::ExternalAccount::Card', @_ ) ); }
133              
134 0     0 1   sub interac_present { return( shift->_set_get_object( 'interac_present', 'Net::API::Stripe::Connect::ExternalAccount::Card', @_ ) ); }
135              
136 0     0 1   sub klarna { return( shift->_set_get_object( 'klarna', 'Net::API::Stripe::Connect::ExternalAccount::Card', @_ ) ); }
137              
138 0     0 1   sub konbini { return( shift->_set_get_class( 'konbini',
139             {
140             confirmation_number => { type => "scalar" },
141             expires_after_days => { type => "number" },
142             expires_at => { type => "datetime" },
143             product_description => { type => "scalar" },
144             setup_future_usage => { type => "scalar" },
145             }, @_ ) ); }
146              
147 0     0 1   sub multibanco { return( shift->_set_get_class( 'multibanco',
148             {
149             entity => { type => "scalar" },
150             reference => { type => "scalar" },
151             }, @_ ) ); }
152              
153 0     0 1   sub oxxo { return( shift->_set_get_object( 'oxxo', 'Net::API::Stripe::Issuing::Card', @_ ) ); }
154              
155 0     0 1   sub p24 { return( shift->_set_get_object( 'p24', 'Net::API::Stripe::Connect::ExternalAccount::Card', @_ ) ); }
156              
157 0     0 1   sub sepa_debit { return( shift->_set_get_object( 'sepa_debit', 'Net::API::Stripe::Connect::ExternalAccount::Card', @_ ) ); }
158              
159 0     0 1   sub sofort { return( shift->_set_get_class( 'sofort',
160             {
161             preferred_language => { type => "scalar" },
162             setup_future_usage => { type => "scalar" },
163             }, @_ ) ); }
164              
165 0     0 1   sub stripe_account { return( shift->_set_get_hash_as_object( 'stripe_account', 'Net::API::Stripe::Payment::Method::Options::StripeAccount', @_ ) ); }
166              
167 0     0 1   sub type { return( shift->_set_get_scalar( 'type', @_ ) ); }
168              
169 0     0 1   sub us_bank_account { return( shift->_set_get_class( 'us_bank_account',
170             {
171             financial_connections => {
172             definition => { permissions => { type => "array" } },
173             type => "class",
174             },
175             setup_future_usage => { type => "scalar" },
176             verification_method => { type => "scalar" },
177             }, @_ ) ); }
178              
179 0     0 1   sub wechat { return( shift->_set_get_hash_as_object( 'wechat', 'Net::API::Stripe::Payment::Method::Options::WeChat', @_ ) ); }
180              
181             1;
182             # NOTE: POD
183             __END__
184              
185             =encoding utf8
186              
187             =head1 NAME
188              
189             Net::API::Stripe::Payment::Method::Options - A Stripe Payment Method Details
190              
191             =head1 SYNOPSIS
192              
193             my $details = $stripe->charge->payment_method_details({
194             card => $card_object,
195             type => 'card',
196             });
197              
198             =head1 VERSION
199              
200             v0.103.0
201              
202             =head1 DESCRIPTION
203              
204             Transaction-specific details of the payment method used in the payment.
205              
206             =head1 CONSTRUCTOR
207              
208             =head2 new( %ARG )
209              
210             Creates a new L<Net::API::Stripe::Payment::Method::Options> object.
211             It may also take an hash like arguments, that also are method of the same name.
212              
213             =head1 METHODS
214              
215             =head2 ach_credit_transfer hash
216              
217             If this is a ach_credit_transfer payment, this hash contains a snapshot of the transaction specific details of the ach_credit_transfer payment method.
218              
219             This is a L<Net::API::Stripe::Payment::Source::ACHCreditTransfer> object
220              
221             =head2 ach_debit hash
222              
223             If this is a ach_debit payment, this hash contains a snapshot of the transaction specific details of the ach_debit payment method.
224              
225             This is a L<Net::API::Stripe::Payment::Source::ACHDebit> object.
226              
227             =head2 acss_debit object
228              
229             If the PaymentIntent's paymentI<method>types includes C<acss_debit>, this hash contains the configurations that will be applied to each payment attempt of that type.
230              
231             This is a L<Net::API::Stripe::Connect::ExternalAccount::Card> object.
232              
233             =head2 affirm
234              
235             If this is an affirm PaymentMethod, this hash contains details about the Affirm payment method.
236              
237             It has the following properties:
238              
239             =over 4
240              
241             =item * C<capture_method>
242              
243             Controls when the funds will be captured from the customer’s account.
244              
245             Possible enum values
246              
247             =over 8
248              
249             =item * C<manual>
250              
251             Use manual if you intend to place the funds on hold and want to override the top-level capture_method value for this payment method.
252              
253             =back
254              
255             =item * C<setup_future_usage>
256              
257             Indicates that you intend to make future payments with this PaymentIntent’s payment method.
258              
259             Providing this parameter will attach the payment method to the PaymentIntent’s Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be attached to a Customer after the transaction completes.
260              
261             When processing card payments, Stripe also uses setup_future_usage to dynamically optimize your payment flow and comply with regional legislation and network rules, such as SCA.
262              
263             Possible enum values
264              
265             =over 8
266              
267             =item * C<none>
268              
269             Use none if you do not intend to reuse this payment method and want to override the top-level setup_future_usage value for this payment method.
270              
271             =back
272              
273             =back
274              
275             =head2 afterpay_clearpay
276              
277             If this is an AfterpayClearpay PaymentMethod, this hash contains details about the AfterpayClearpay payment method.
278              
279             =head2 alipay hash
280              
281             If this is a C<alipay> payment, this hash contains a snapshot of the transaction specific details of the C<alipay> payment method.
282              
283             It has the following properties that can be access as methods:
284              
285             =over 4
286              
287             =item * C<fingerprint> string
288              
289             Uniquely identifies this particular Alipay account. You can use this attribute to check whether two Alipay accounts are the same.
290              
291             =item * C<transaction_id> string
292              
293             Transaction ID of this particular Alipay transaction.
294              
295             =back
296              
297             =head2 au_becs_debit hash
298              
299             If this is a C<au_becs_debit> payment, this hash contains a snapshot of the transaction specific details of the C<au_becs_debit> payment method.
300              
301             It has the following properties that can be accessed as methods:
302              
303             =over 4
304              
305             =item * C<bsb_number> string
306              
307             Bank-State-Branch number of the bank account.
308              
309             =item * C<fingerprint> string
310              
311             Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same.
312              
313             =item * C<last4> string
314              
315             Last four digits of the bank account number.
316              
317             =item * C<mandate> string
318              
319             ID of the mandate used to make this payment.
320              
321             =back
322              
323             =head2 bacs_debit hash
324              
325             If this is a C<bacs_debit> payment, this hash contains a snapshot of the transaction specific details of the C<bacs_debit> payment method.
326              
327             It has the following properties:
328              
329             =over 4
330              
331             =item * C<fingerprint> string
332              
333             Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same.
334              
335             =item * C<last4> string
336              
337             Last four digits of the bank account number.
338              
339             =item * C<mandate> string
340              
341             ID of the mandate used to make this payment.
342              
343             =item * C<sort_code> string
344              
345             Sort code of the bank account. (e.g., C<10-20-30>)
346              
347             =back
348              
349             =head2 bancontact hash
350              
351             If this is a C<bancontact> payment, this hash contains a snapshot of the transaction specific details of the C<bancontact> payment method.
352              
353             It has the following properties:
354              
355             =over 4
356              
357             =item * C<bank_code> string
358              
359             Bank code of bank associated with the bank account.
360              
361             =item * C<bank_name> string
362              
363             Name of the bank associated with the bank account.
364              
365             =item * C<bic> string
366              
367             Bank Identifier Code of the bank associated with the bank account.
368              
369             =item * C<generated_sepa_debit> string expandable
370              
371             The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge.
372              
373             When expanded this is an L<Net::API::Stripe::Payment::Method> object.
374              
375             =item * C<generated_sepa_debit_mandate> string expandable
376              
377             The mandate for the SEPA Direct Debit PaymentMethod which was generated by this Charge.
378              
379             When expanded this is an L<Net::API::Stripe::Mandate> object.
380              
381             =item * C<iban_last4> string
382              
383             Last four characters of the IBAN.
384              
385             =item * C<preferred_language> string
386              
387             Preferred language of the Bancontact authorization page that the customer is redirected to.
388             Can be one of C<en>, C<de>, C<fr>, or C<nl>
389              
390             =item * C<verified_name> string
391              
392             Owner's verified full name. Values are verified or provided by Bancontact directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.
393              
394             =back
395              
396             =head2 blik object
397              
398             If the SetupIntent's paymentI<method>types includes C<blik>, this hash contains the configurations that will be applied to each setup attempt of that type.
399              
400             This is a L<Net::API::Stripe::Connect::ExternalAccount::Card> object.
401              
402             =head2 boleto hash
403              
404             If this is a boleto PaymentMethod, this hash contains details about the Boleto payment method.
405              
406             Possible properties are:
407              
408             =over 4
409              
410             =item * C<fingerprint> string preview feature
411              
412             =item * C<tax_id> string
413              
414             Uniquely identifies the customer tax id (CNPJ or CPF)
415              
416             =back
417              
418             =head2 card hash
419              
420             If this is a card payment, this hash contains a snapshot of the transaction specific details of the card payment method.
421              
422             This is a L<Net::API::Stripe::Payment::Card> object.
423              
424             =head2 card_present object
425              
426             This hash contains the snapshot of the C<card_present> transaction-specific details which generated this C<card> payment method.
427              
428             This is a L<Net::API::Stripe::Connect::ExternalAccount::Card> object.
429              
430             =head2 customer_balance hash
431              
432             If the PaymentIntent's paymentI<method>types includes C<customer_balance>, this hash contains the configurations that will be applied to each payment attempt of that type.
433              
434             It has the following properties:
435              
436             =over 4
437              
438             =item C<bank_transfer> hash
439              
440             Configuration for the bank transfer funding type, if the C<funding_type> is set to C<bank_transfer>.
441              
442             =over 8
443              
444             =item C<eu_bank_transfer> hash
445              
446             Configuration for eu_bank_transfer
447              
448             When expanded, this is a L<Net::API::Stripe::Address> object.
449              
450             =item C<requested_address_types> array
451              
452             List of address types that should be returned in the financial_addresses response. If not specified, all valid types will be returned.
453              
454             Permitted values include: C<sort_code>, C<zengin>, C<iban>, or C<spei>.
455              
456             =item C<type> string
457              
458             The bank transfer type that this PaymentIntent is allowed to use for funding Permitted values include: C<eu_bank_transfer>, C<gb_bank_transfer>, C<jp_bank_transfer>, or C<mx_bank_transfer>.
459              
460              
461             =back
462              
463             =item C<funding_type> string
464              
465             The funding method type to be used when there are not enough funds in the customer balance. Permitted values include: C<bank_transfer>.
466              
467             =item C<setup_future_usage> string
468              
469             Indicates that you intend to make future payments with this PaymentIntent's payment method.
470              
471             Providing this parameter will L<attach the payment method|https://stripe.com/docs/payments/save-during-payment> to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be L<attached|https://stripe.com/docs/api/payment_methods/attach> to a Customer after the transaction completes.
472              
473             When processing card payments, Stripe also uses C<setup_future_usage> to dynamically optimize your payment flow and comply with regional legislation and network rules, such as L<SCA|https://stripe.com/docs/strong-customer-authentication>.
474              
475             =back
476              
477             =head2 eps object
478              
479             If this is a C<eps> payment, this hash contains a snapshot of the transaction specific details of the C<eps> payment method.
480              
481             This is a L<Net::API::Stripe::Connect::Account::Verification> object.
482              
483             The properties used are:
484              
485             =over 4
486              
487             =item * C<bank> bank
488              
489             The customer’s bank. Should be one of arzte_und_apotheker_bank, austrian_anadi_bank_ag, bank_austria, bankhaus_carl_spangler, bankhaus_schelhammer_und_schattera_ag, bawag_psk_ag, bks_bank_ag, brull_kallmus_bank_ag, btv_vier_lander_bank, capital_bank_grawe_gruppe_ag, dolomitenbank, easybank_ag, erste_bank_und_sparkassen, hypo_alpeadriabank_international_ag, hypo_noe_lb_fur_niederosterreich_u_wien, hypo_oberosterreich_salzburg_steiermark, hypo_tirol_bank_ag, hypo_vorarlberg_bank_ag, hypo_bank_burgenland_aktiengesellschaft, marchfelder_bank, oberbank_ag, raiffeisen_bankengruppe_osterreich, schoellerbank_ag, sparda_bank_wien, volksbank_gruppe, volkskreditbank_ag, or vr_bank_braunau.
490              
491             =item * C<verified_name> string
492              
493             Owner’s verified full name. Values are verified or provided by EPS directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.
494              
495             =back
496              
497             =head2 fpx object
498              
499             If the PaymentIntent's paymentI<method>types includes C<fpx>, this hash contains the configurations that will be applied to each payment attempt of that type.
500              
501             This is a L<Net::API::Stripe::Connect::ExternalAccount::Card> object.
502              
503             =head2 giropay object
504              
505             If the PaymentIntent's paymentI<method>types includes C<giropay>, this hash contains the configurations that will be applied to each payment attempt of that type.
506              
507             This is a L<Net::API::Stripe::Connect::ExternalAccount::Card> object.
508              
509             =head2 grabpay object
510              
511             If the PaymentIntent's paymentI<method>types includes C<grabpay>, this hash contains the configurations that will be applied to each payment attempt of that type.
512              
513             This is a L<Net::API::Stripe::Connect::ExternalAccount::Card> object.
514              
515             =head2 ideal object
516              
517             If the PaymentIntent's paymentI<method>types includes C<ideal>, this hash contains the configurations that will be applied to each payment attempt of that type.
518              
519             This is a L<Net::API::Stripe::Connect::ExternalAccount::Card> object.
520              
521             =head2 interac_present object
522              
523             If this is a C<interac_present> payment, this hash contains a snapshot of the transaction specific details of the C<interac_present> payment method.
524              
525             This is a L<Net::API::Stripe::Connect::ExternalAccount::Card> object.
526              
527             =head2 klarna object
528              
529             If the PaymentIntent's paymentI<method>types includes C<klarna>, this hash contains the configurations that will be applied to each payment attempt of that type.
530              
531             This is a L<Net::API::Stripe::Connect::ExternalAccount::Card> object.
532              
533             =head2 konbini hash
534              
535             If the PaymentIntent's paymentI<method>types includes C<konbini>, this hash contains the configurations that will be applied to each payment attempt of that type.
536              
537             It has the following properties:
538              
539             =over 4
540              
541             =item C<confirmation_number> string
542              
543             An optional 10 to 11 digit numeric-only string determining the confirmation code at applicable convenience stores.
544              
545             =item C<expires_after_days> integer
546              
547             The number of calendar days (between 1 and 60) after which Konbini payment instructions will expire. For example, if a PaymentIntent is confirmed with Konbini and C<expires_after_days> set to 2 on Monday JST, the instructions will expire on Wednesday 23:59:59 JST.
548              
549             =item C<expires_at> timestamp
550              
551             The timestamp at which the Konbini payment instructions will expire. Only one of C<expires_after_days> or C<expires_at> may be set.
552              
553             =item C<product_description> string
554              
555             A product descriptor of up to 22 characters, which will appear to customers at the convenience store.
556              
557             =item C<setup_future_usage> string
558              
559             Indicates that you intend to make future payments with this PaymentIntent's payment method.
560              
561             Providing this parameter will L<attach the payment method|https://stripe.com/docs/payments/save-during-payment> to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be L<attached|https://stripe.com/docs/api/payment_methods/attach> to a Customer after the transaction completes.
562              
563             When processing card payments, Stripe also uses C<setup_future_usage> to dynamically optimize your payment flow and comply with regional legislation and network rules, such as L<SCA|https://stripe.com/docs/strong-customer-authentication>.
564              
565             =back
566              
567             =head2 link hash
568              
569             If this is an Link PaymentMethod, this hash contains details about the Link payment method.
570              
571             =head2 multibanco hash
572              
573             If this is a C<multibanco> payment, this hash contains a snapshot of the transaction specific details of the C<multibanco> payment method.
574              
575             This is a L<Net::API::Stripe::Payment::Method::Options::MultiBanco> object.
576              
577             It has the following properties:
578              
579             =over 4
580              
581             =item * C<entity> string
582              
583             Entity number associated with this Multibanco payment.
584              
585             =item * C<reference> string
586              
587             Reference number associated with this Multibanco payment.
588              
589             =back
590              
591             =head2 oxxo object
592              
593             If this is a C<oxxo> payment, this hash contains a snapshot of the transaction specific details of the C<oxxo> payment method.
594              
595             This is a L<Net::API::Stripe::Billing::CreditNote> object.
596              
597             =head2 p24 object
598              
599             If the PaymentIntent's paymentI<method>types includes C<p24>, this hash contains the configurations that will be applied to each payment attempt of that type.
600              
601             This is a L<Net::API::Stripe::Connect::ExternalAccount::Card> object.
602              
603             =head2 paynow hash
604              
605             If this is a paynow PaymentMethod, this hash contains details about the PayNow payment method.
606              
607             =head2 promptpay hash
608              
609             If this is a promptpay PaymentMethod, this hash contains details about the PromptPay payment method.
610              
611             =head2 sepa_debit hash
612              
613             If this is a sepa_debit payment, this hash contains a snapshot of the transaction specific details of the sepa_debit payment method.
614              
615             =over 4
616              
617             =item * C<bank_code> string
618              
619             Bank code of bank associated with the bank account.
620              
621             =item * C<branch_code> string
622              
623             Branch code of bank associated with the bank account.
624              
625             =item * C<country> string
626              
627             Two-letter ISO code representing the country the bank account is located in.
628              
629             =item * C<fingerprint> string
630              
631             Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same.
632              
633             =item * C<generated_from> hash
634              
635             Information about the object that generated this PaymentMethod.
636              
637             =over 8
638              
639             =item * C<charge> string
640              
641             This is expandable to a L<Net::API::Stripe::Charge> object.
642              
643             The ID of the Charge that generated this PaymentMethod, if any.
644              
645             =item * C<setup_attempt> string
646              
647             This is expandable to a L<Net::API::Stripe::SetupAttempt> object.
648              
649             The ID of the SetupAttempt that generated this PaymentMethod, if any.
650              
651             =back
652              
653             =item * C<last4> string
654              
655             Last four characters of the IBAN.
656              
657             =item * C<mandate> string
658              
659             ID of the mandate used to make this payment.
660              
661             =back
662              
663             =head2 sofort hash
664              
665             If the PaymentIntent's paymentI<method>types includes C<sofort>, this hash contains the configurations that will be applied to each payment attempt of that type.
666              
667             It has the following properties:
668              
669             =over 4
670              
671             =item C<preferred_language> string
672              
673             Preferred language of the SOFORT authorization page that the customer is redirected to.
674              
675             =item C<setup_future_usage> string
676              
677             Indicates that you intend to make future payments with this PaymentIntent's payment method.
678              
679             Providing this parameter will L<attach the payment method|https://stripe.com/docs/payments/save-during-payment> to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be L<attached|https://stripe.com/docs/api/payment_methods/attach> to a Customer after the transaction completes.
680              
681             When processing card payments, Stripe also uses C<setup_future_usage> to dynamically optimize your payment flow and comply with regional legislation and network rules, such as L<SCA|https://stripe.com/docs/strong-customer-authentication>.
682              
683             =back
684              
685             =head2 stripe_account hash
686              
687             If this is a stripe_account payment, this hash contains a snapshot of the transaction specific details of the stripe_account payment method.
688              
689             This is a L<Net::API::Stripe::Payment::Method::Options::StripeAccount> object.
690              
691             =head2 type string
692              
693             The type of transaction-specific details of the payment method used in the payment, one of ach_credit_transfer, ach_debit, alipay, bancontact, card, card_present, eps, giropay, ideal, klarna, multibanco, p24, sepa_debit, sofort, stripe_account, or wechat. An additional hash is included on payment_method_details with a name matching this value. It contains information specific to the payment method.
694              
695             =head2 us_bank_account hash
696              
697             If the PaymentIntent's paymentI<method>types includes C<us_bank_account>, this hash contains the configurations that will be applied to each payment attempt of that type.
698              
699             It has the following properties:
700              
701             =over 4
702              
703             =item C<financial_connections> hash
704              
705             Additional fields for Financial Connections Session creation
706              
707             =over 8
708              
709             =item C<permissions> array
710              
711             The list of permissions to request. The C<payment_method> permission must be included.
712              
713              
714             =back
715              
716             =item C<setup_future_usage> string
717              
718             Indicates that you intend to make future payments with this PaymentIntent's payment method.
719              
720             Providing this parameter will L<attach the payment method|https://stripe.com/docs/payments/save-during-payment> to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be L<attached|https://stripe.com/docs/api/payment_methods/attach> to a Customer after the transaction completes.
721              
722             When processing card payments, Stripe also uses C<setup_future_usage> to dynamically optimize your payment flow and comply with regional legislation and network rules, such as L<SCA|https://stripe.com/docs/strong-customer-authentication>.
723              
724             =item C<verification_method> string
725              
726             Bank account verification method.
727              
728             =back
729              
730             =head2 wechat hash
731              
732             If this is a wechat payment, this hash contains a snapshot of the transaction specific details of the wechat payment method.
733              
734             This is a L<Net::API::Stripe::Payment::Method::Options::WeChat> object.
735              
736             =head2 wechat_pay hash
737              
738             If this is an wechat_pay PaymentMethod, this hash contains details about the wechat_pay payment method.
739              
740             =head1 HISTORY
741              
742             =head2 v0.1
743              
744             Initial version
745              
746             =head1 STRIPE HISTORY
747              
748             =head2 2019-12-24
749              
750             Stripe added the property B<sepa_debit>
751              
752             =head1 AUTHOR
753              
754             Jacques Deguest E<lt>F<jack@deguest.jp>E<gt>
755              
756             =head1 SEE ALSO
757              
758             Stripe API documentation:
759              
760             L<https://stripe.com/docs/api/charges/object#charge_object-payment_method_details>
761              
762             L<https://stripe.com/docs/api/payment_methods/object>, L<https://stripe.com/docs/api/charges/object#charge_object-payment_method_details>
763              
764             =head1 COPYRIGHT & LICENSE
765              
766             Copyright (c) 2019-2020 DEGUEST Pte. Ltd.
767              
768             You can use, copy, modify and redistribute this package and associated
769             files under the same terms as Perl itself.
770              
771             =cut