File Coverage

blib/lib/Net/API/Stripe/Payment/Method/Details.pm
Criterion Covered Total %
statement 7 26 26.9
branch n/a
condition n/a
subroutine 3 22 13.6
pod 19 19 100.0
total 29 67 43.2


line stmt bran cond sub pod time code
1             ##----------------------------------------------------------------------------
2             ## Stripe API - ~/lib/Net/API/Stripe/Payment/Method/Details.pm
3             ## Version v0.100.0
4             ## Copyright(c) 2019 DEGUEST Pte. Ltd.
5             ## Author: Jacques Deguest <@sitael.tokyo.deguest.jp>
6             ## Created 2019/11/02
7             ## Modified 2020/05/15
8             ##
9             ##----------------------------------------------------------------------------
10             package Net::API::Stripe::Payment::Method::Details;
11             BEGIN
12             {
13 1     1   885 use strict;
  1         2  
  1         28  
14 1     1   4 use parent qw( Net::API::Stripe::Generic );
  1         2  
  1         4  
15 1     1   460 our( $VERSION ) = 'v0.100.0';
16             };
17              
18 0     0 1   sub ach_credit_transfer { return( shift->_set_get_object( 'ach_credit_transfer', 'Net::API::Stripe::Payment::Source::ACHCreditTransfer', @_ ) ); }
19              
20 0     0 1   sub ach_debit { return( shift->_set_get_object( 'ach_debit', 'Net::API::Stripe::Payment::Source::ACHDebit', @_ ) ); }
21              
22 0     0 1   sub alipay { return( shift->_set_get_hash_as_object( 'alipay', 'Net::API::Stripe::Payment::Method::Details::Alipay', @_ ) ); }
23              
24 0     0 1   sub au_becs_debit { return( shift->_set_get_hash_as_object( 'au_becs_debit', 'Net::API::Stripe::Payment::Method::Details::AuBecsDebit', @_ ) ); }
25              
26 0     0 1   sub bancontact { return( shift->_set_get_hash_as_object( 'bancontact', 'Net::API::Stripe::Payment::Method::Details::BanContact', @_ ) ); }
27              
28             # sub card { return( shift->_set_get_hash_as_object( 'card', 'Net::API::Stripe::Payment::Method::Details::Card', @_ ) ); }
29 0     0 1   sub card { return( shift->_set_get_object( 'card', 'Net::API::Stripe::Payment::Card', @_ ) ); }
30              
31 0     0 1   sub card_present { return( shift->_set_get_hash_as_object( 'card_present', 'Net::API::Stripe::Payment::Method::Details::CardPresent', @_ ) ); }
32              
33 0     0 1   sub eps { return( shift->_set_get_hash_as_object( 'eps', 'Net::API::Stripe::Payment::Method::Details::EPS', @_ ) ); }
34              
35 0     0 1   sub fpx { return( shift->_set_get_hash_as_object( 'fpx', 'Net::API::Stripe::Payment::Method::Details::FPX', @_ ) ); }
36              
37 0     0 1   sub giropay { return( shift->_set_get_hash_as_object( 'giropay', 'Net::API::Stripe::Payment::Method::Details::Giropay', @_ ) ); }
38              
39 0     0 1   sub ideal { return( shift->_set_get_hash_as_object( 'ideal', 'Net::API::Stripe::Payment::Method::Details::Ideal', @_ ) ); }
40              
41 0     0 1   sub klarna { return( shift->_set_get_hash_as_object( 'klarna', 'Net::API::Stripe::Payment::Method::Details::Klarna', @_ ) ); }
42              
43 0     0 1   sub multibanco { return( shift->_set_get_hash_as_object( 'multibanco', 'Net::API::Stripe::Payment::Method::Details::MultiBanco', @_ ) ); }
44              
45 0     0 1   sub p24 { return( shift->_set_get_hash_as_object( 'p24', 'Net::API::Stripe::Payment::Method::Details::P24', @_ ) ); }
46              
47 0     0 1   sub sepa_debit { return( shift->_set_get_hash( 'sepa_debit', @_ ) ); }
48              
49 0     0 1   sub sofort { return( shift->_set_get_hash_as_object( 'sofort', 'Net::API::Stripe::Payment::Method::Details::Sofort', @_ ) ); }
50              
51 0     0 1   sub stripe_account { return( shift->_set_get_hash_as_object( 'stripe_account', 'Net::API::Stripe::Payment::Method::Details::StripeAccount', @_ ) ); }
52              
53 0     0 1   sub type { return( shift->_set_get_scalar( 'type', @_ ) ); }
54              
55 0     0 1   sub wechat { return( shift->_set_get_hash_as_object( 'wechat', 'Net::API::Stripe::Payment::Method::Details::WeChat', @_ ) ); }
56              
57             1;
58              
59             __END__
60              
61             =encoding utf8
62              
63             =head1 NAME
64              
65             Net::API::Stripe::Payment::Method::Details - A Stripe Payment Method Details
66              
67             =head1 SYNOPSIS
68              
69             my $details = $stripe->charge->payment_method_details({
70             card => $card_object,
71             type => 'card',
72             });
73              
74             =head1 VERSION
75              
76             v0.100.0
77              
78             =head1 DESCRIPTION
79              
80             Transaction-specific details of the payment method used in the payment.
81              
82             =head1 CONSTRUCTOR
83              
84             =over 4
85              
86             =item B<new>( %ARG )
87              
88             Creates a new L<Net::API::Stripe::Payment::Method::Details> object.
89             It may also take an hash like arguments, that also are method of the same name.
90              
91             =back
92              
93             =head1 METHODS
94              
95             =over 4
96              
97             =item B<ach_credit_transfer> hash
98              
99             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.
100              
101             This is a L<Net::API::Stripe::Payment::Source::ACHCreditTransfer> object
102              
103             =item B<ach_debit> hash
104              
105             If this is a ach_debit payment, this hash contains a snapshot of the transaction specific details of the ach_debit payment method.
106              
107             This is a L<Net::API::Stripe::Payment::Source::ACHDebit> object.
108              
109             =item B<alipay> hash
110              
111             If this is a alipay payment, this hash contains a snapshot of the transaction specific details of the alipay payment method.
112              
113             Data can be accessed as objectified hash reference, ie each key / value pair can be accessed as virtual methods as a L<Net::API::Stripe::Payment::Method::Details::Alipay> object.
114              
115             =item B<au_becs_debit> hash
116              
117             If this is a au_becs_debit payment, this hash contains a snapshot of the transaction specific details of the au_becs_debit payment method.
118              
119             =over 8
120              
121             =item I<bsb_number> string
122              
123             Bank-State-Branch number of the bank account.
124              
125             =item I<fingerprint> string
126              
127             Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same.
128              
129             =item I<last4> string
130              
131             Last four digits of the bank account number.
132              
133             =item I<mandate> string
134              
135             ID of the mandate used to make this payment.
136              
137             =back
138              
139             =item B<bancontact> hash
140              
141             If this is a bancontact payment, this hash contains a snapshot of the transaction specific details of the bancontact payment method.
142              
143             This is a virtual package L<Net::API::Stripe::Payment::Method::Details::BanContact> object.
144              
145             The methods are:
146              
147             =over 8
148              
149             =item B<bank_code> string
150              
151             Bank code of bank associated with the bank account.
152              
153             =item B<bank_name> string
154              
155             Name of the bank associated with the bank account.
156              
157             =item B<bic> string
158              
159             Bank Identifier Code of the bank associated with the bank account.
160              
161             =item B<iban_last4> string
162              
163             Last four characters of the IBAN.
164              
165             =item B<preferred_language> string
166              
167             Preferred language of the Bancontact authorization page that the customer is redirected to. Can be one of en, de, fr, or nl
168              
169             =item B<verified_name> string
170              
171             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.
172              
173             =back
174              
175             =item B<card> hash
176              
177             If this is a card payment, this hash contains a snapshot of the transaction specific details of the card payment method.
178              
179             This is a L<Net::API::Stripe::Payment::Card> object.
180              
181             =item B<card_present> hash
182              
183             If this is a card_present payment, this hash contains a snapshot of the transaction specific details of the card_present payment method.
184              
185             This is a L<Net::API::Stripe::Payment::Method::Details::CardPresent> object.
186              
187             =over 8
188              
189             =item I<brand> string
190              
191             Card brand. Can be amex, diners, discover, jcb, mastercard, unionpay, visa, or unknown.
192              
193             =item I<country> string
194              
195             Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you’ve collected.
196              
197             =item I<emv_auth_data> string
198              
199             Authorization response cryptogram.
200              
201             =item I<exp_month> integer
202              
203             Two-digit number representing the card’s expiration month.
204              
205             =item I<exp_year> integer
206              
207             Four-digit number representing the card’s expiration year.
208              
209             =item I<fingerprint> string
210              
211             Uniquely identifies this particular card number. You can use this attribute to check whether two customers who’ve signed up with you are using the same card number, for example.
212              
213             =item I<funding> string
214              
215             Card funding type. Can be credit, debit, prepaid, or unknown.
216              
217             =item I<generated_card> string
218              
219             ID of a card PaymentMethod generated from the card_present PaymentMethod that may be attached to a Customer for future transactions. Only present if it was possible to generate a card PaymentMethod.
220              
221             =item I<last4> string
222              
223             The last four digits of the card.
224              
225             =item I<network> string preview feature
226              
227             Identifies which network this charge was processed on. Can be amex, diners, discover, interac, jcb, mastercard, unionpay, visa, or unknown.
228              
229             =item I<read_method> string
230              
231             How were card details read in this transaction. Can be contact_emv, contactless_emv, magnetic_stripe_fallback, magnetic_stripe_track2, or contactless_magstripe_mode
232              
233             =item I<receipt> hash
234              
235             A collection of fields required to be displayed on receipts. Only required for EMV transactions.
236              
237             =over 12
238              
239             =item I<application_cryptogram> string
240              
241             EMV tag 9F26, cryptogram generated by the integrated circuit chip.
242              
243             =item I<application_preferred_name> string
244              
245             Mnenomic of the Application Identifier.
246              
247             =item I<authorization_code> string
248              
249             Identifier for this transaction.
250              
251             =item I<authorization_response_code> string
252              
253             EMV tag 8A. A code returned by the card issuer.
254              
255             =item I<cardholder_verification_method> string
256              
257             How the cardholder verified ownership of the card.
258              
259             =item I<dedicated_file_name> string
260              
261             EMV tag 84. Similar to the application identifier stored on the integrated circuit chip.
262              
263             =item I<terminal_verification_results> string
264              
265             The outcome of a series of EMV functions performed by the card reader.
266              
267             =item I<transaction_status_information> string
268              
269             An indication of various EMV functions performed during the transaction.
270              
271             =back
272              
273             =back
274              
275             =item B<eps> hash
276              
277             If this is a eps payment, this hash contains a snapshot of the transaction specific details of the eps payment method.
278              
279             This is a L<Net::API::Stripe::Payment::Method::Details::EPS> object.
280              
281             =over 8
282              
283             =item I<verified_name> string
284              
285             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.
286              
287             =back
288              
289             =item B<fpx>
290              
291             If this is a fpx payment, this hash contains a snapshot of the transaction specific details of the fpx payment method.
292              
293             =over 8
294              
295             =item I<bank> string
296              
297             The customer’s bank. Can be one of affin_bank, alliance_bank, ambank, bank_islam, bank_muamalat, bank_rakyat, bsn, cimb, hong_leong_bank, hsbc, kfh, maybank2u, ocbc, public_bank, rhb, standard_chartered, uob, deutsche_bank, maybank2e, or pb_enterprise.
298              
299             =item I<transaction_id> string
300              
301             Unique transaction id generated by FPX for every request from the merchant
302              
303             =back
304              
305             =item B<giropay> hash
306              
307             If this is a giropay payment, this hash contains a snapshot of the transaction specific details of the giropay payment method.
308              
309             This is a L<Net::API::Stripe::Payment::Method::Details::Giropay> object.
310              
311             =over 8
312              
313             =item I<bank_code> string
314              
315             Bank code of bank associated with the bank account.
316              
317             =item I<bank_name> string
318              
319             Name of the bank associated with the bank account.
320              
321             =item I<bic> string
322              
323             Bank Identifier Code of the bank associated with the bank account.
324              
325             =item I<verified_name> string
326              
327             Owner’s verified full name. Values are verified or provided by Giropay directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.
328              
329             =back
330              
331             =item B<ideal> hash
332              
333             If this is a ideal payment, this hash contains a snapshot of the transaction specific details of the ideal payment method.
334              
335             This is a L<Net::API::Stripe::Payment::Method::Details::Ideal> object.
336              
337             =over 8
338              
339             =item I<bank> string
340              
341             The customer’s bank. Can be one of abn_amro, asn_bank, bunq, handelsbanken, ing, knab, moneyou, rabobank, regiobank, sns_bank, triodos_bank, or van_lanschot.
342              
343             =item I<bic> string
344              
345             The Bank Identifier Code of the customer’s bank.
346              
347             =item I<iban_last4> string
348              
349             Last four characters of the IBAN.
350              
351             =item I<verified_name> string
352              
353             Owner’s verified full name. Values are verified or provided by iDEAL directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.
354              
355             =back
356              
357             =item B<klarna> hash
358              
359             If this is a klarna payment, this hash contains a snapshot of the transaction specific details of the klarna payment method.
360              
361             This is a L<Net::API::Stripe::Payment::Method::Details::Klarna> object.
362              
363             =item B<multibanco> hash
364              
365             If this is a multibanco payment, this hash contains a snapshot of the transaction specific details of the multibanco payment method.
366              
367             This is a L<Net::API::Stripe::Payment::Method::Details::MultiBanco> object.
368              
369             =over 8
370              
371             =item I<entity> string
372              
373             Entity number associated with this Multibanco payment.
374              
375             =item I<reference> string
376              
377             Reference number associated with this Multibanco payment.
378              
379             =back
380              
381             =item B<p24> hash
382              
383             If this is a p24 payment, this hash contains a snapshot of the transaction specific details of the p24 payment method.
384              
385             This is a L<Net::API::Stripe::Payment::Method::Details::P24> object.
386              
387             =over 8
388              
389             =item I<reference> string
390              
391             Unique reference for this Przelewy24 payment.
392              
393             =item I<verified_name> string
394              
395             Owner’s verified full name. Values are verified or provided by Przelewy24 directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.
396              
397             =back
398              
399             =item B<sepa_debit> hash
400              
401             If this is a sepa_debit payment, this hash contains a snapshot of the transaction specific details of the sepa_debit payment method.
402              
403             =over 8
404              
405             =item I<bank_code> string
406              
407             Bank code of bank associated with the bank account.
408              
409             =item I<branch_code> string
410              
411             Branch code of bank associated with the bank account.
412              
413             =item I<country> string
414              
415             Two-letter ISO code representing the country the bank account is located in.
416              
417             =item I<fingerprint> string
418              
419             Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same.
420              
421             =item I<last4> string
422              
423             Last four characters of the IBAN.
424              
425             =item I<mandate> string
426              
427             ID of the mandate used to make this payment.
428              
429             =back
430              
431             =item B<sofort> hash
432              
433             If this is a sofort payment, this hash contains a snapshot of the transaction specific details of the sofort payment method.
434              
435             This is a L<Net::API::Stripe::Payment::Method::Details::Sofort> object.
436              
437             =over 8
438              
439             =item I<bank_code> string
440              
441             Bank code of bank associated with the bank account.
442              
443             =item I<bank_name> string
444              
445             Name of the bank associated with the bank account.
446              
447             =item I<bic> string
448              
449             Bank Identifier Code of the bank associated with the bank account.
450              
451             =item I<country> string
452              
453             Two-letter ISO code representing the country the bank account is located in.
454              
455             =item I<iban_last4> string
456              
457             Last four characters of the IBAN.
458              
459             =item I<verified_name> string
460              
461             Owner’s verified full name. Values are verified or provided by SOFORT directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.
462              
463             =back
464              
465             =item B<stripe_account> hash
466              
467             If this is a stripe_account payment, this hash contains a snapshot of the transaction specific details of the stripe_account payment method.
468              
469             This is a L<Net::API::Stripe::Payment::Method::Details::StripeAccount> object.
470              
471             =item B<type> string
472              
473             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.
474              
475             =item B<wechat> hash
476              
477             If this is a wechat payment, this hash contains a snapshot of the transaction specific details of the wechat payment method.
478              
479             This is a L<Net::API::Stripe::Payment::Method::Details::WeChat> object.
480              
481             =back
482              
483             =head1 HISTORY
484              
485             =head2 v0.1
486              
487             Initial version
488              
489             =head1 STRIPE HISTORY
490              
491             =head2 2019-12-24
492              
493             Stripe added the property B<sepa_debit>
494              
495             =head1 AUTHOR
496              
497             Jacques Deguest E<lt>F<jack@deguest.jp>E<gt>
498              
499             =head1 SEE ALSO
500              
501             Stripe API documentation:
502              
503             L<https://stripe.com/docs/api/charges/object#charge_object-payment_method_details>
504              
505             L<https://stripe.com/docs/api/payment_methods/object>, L<https://stripe.com/docs/api/charges/object#charge_object-payment_method_details>
506              
507             =head1 COPYRIGHT & LICENSE
508              
509             Copyright (c) 2019-2020 DEGUEST Pte. Ltd.
510              
511             You can use, copy, modify and redistribute this package and associated
512             files under the same terms as Perl itself.
513              
514             =cut