line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
1
|
|
|
|
|
|
|
##---------------------------------------------------------------------------- |
2
|
|
|
|
|
|
|
## Stripe API - ~/lib/Net/API/Stripe/Connect/ExternalAccount/Card.pm |
3
|
|
|
|
|
|
|
## Version v0.203.0 |
4
|
|
|
|
|
|
|
## Copyright(c) 2020 DEGUEST Pte. Ltd. |
5
|
|
|
|
|
|
|
## Author: Jacques Deguest <jack@deguest.jp> |
6
|
|
|
|
|
|
|
## Created 2019/11/02 |
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
|
|
|
|
|
|
|
## https://stripe.com/docs/api/external_account_cards/object |
14
|
|
|
|
|
|
|
package Net::API::Stripe::Connect::ExternalAccount::Card; |
15
|
|
|
|
|
|
|
BEGIN |
16
|
|
|
|
|
|
|
{ |
17
|
3
|
|
|
3
|
|
21481780
|
use strict; |
|
3
|
|
|
|
|
17
|
|
|
3
|
|
|
|
|
100
|
|
18
|
3
|
|
|
3
|
|
16
|
use warnings; |
|
3
|
|
|
|
|
7
|
|
|
3
|
|
|
|
|
85
|
|
19
|
3
|
|
|
3
|
|
16
|
use parent qw( Net::API::Stripe::Generic ); |
|
3
|
|
|
|
|
11
|
|
|
3
|
|
|
|
|
17
|
|
20
|
3
|
|
|
3
|
|
248
|
use vars qw( $VERSION ); |
|
3
|
|
|
|
|
7
|
|
|
3
|
|
|
|
|
204
|
|
21
|
3
|
|
|
3
|
|
64
|
our( $VERSION ) = 'v0.203.0'; |
22
|
|
|
|
|
|
|
}; |
23
|
|
|
|
|
|
|
|
24
|
3
|
|
|
3
|
|
20
|
use strict; |
|
3
|
|
|
|
|
7
|
|
|
3
|
|
|
|
|
63
|
|
25
|
3
|
|
|
3
|
|
14
|
use warnings; |
|
3
|
|
|
|
|
6
|
|
|
3
|
|
|
|
|
4227
|
|
26
|
|
|
|
|
|
|
|
27
|
0
|
|
|
0
|
1
|
|
sub id { return( shift->_set_get_scalar( 'id', @_ ) ); } |
28
|
|
|
|
|
|
|
|
29
|
0
|
|
|
0
|
1
|
|
sub object { return( shift->_set_get_scalar( 'object', @_ ) ); } |
30
|
|
|
|
|
|
|
|
31
|
0
|
|
|
0
|
1
|
|
sub account { return( shift->_set_get_scalar_or_object( 'account', 'Net::API::Stripe::Connect::Account', @_ ) ); } |
32
|
|
|
|
|
|
|
|
33
|
0
|
|
|
0
|
1
|
|
sub address { return( shift->_address_populate( @_ ) ); } |
34
|
|
|
|
|
|
|
|
35
|
0
|
|
|
0
|
1
|
|
sub address_city { return( shift->_set_get_scalar( 'address_city', @_ ) ); } |
36
|
|
|
|
|
|
|
|
37
|
0
|
|
|
0
|
1
|
|
sub address_country { return( shift->_set_get_scalar( 'address_country', @_ ) ); } |
38
|
|
|
|
|
|
|
|
39
|
0
|
|
|
0
|
1
|
|
sub address_line1 { return( shift->_set_get_scalar( 'address_line1', @_ ) ); } |
40
|
|
|
|
|
|
|
|
41
|
0
|
|
|
0
|
1
|
|
sub address_line1_check { return( shift->_set_get_scalar( 'address_line1_check', @_ ) ); } |
42
|
|
|
|
|
|
|
|
43
|
0
|
|
|
0
|
1
|
|
sub address_line2 { return( shift->_set_get_scalar( 'address_line2', @_ ) ); } |
44
|
|
|
|
|
|
|
|
45
|
0
|
|
|
0
|
1
|
|
sub address_state { return( shift->_set_get_scalar( 'address_state', @_ ) ); } |
46
|
|
|
|
|
|
|
|
47
|
0
|
|
|
0
|
1
|
|
sub address_zip { return( shift->_set_get_scalar( 'address_zip', @_ ) ); } |
48
|
|
|
|
|
|
|
|
49
|
0
|
|
|
0
|
1
|
|
sub address_zip_check { return( shift->_set_get_scalar( 'address_zip_check', @_ ) ); } |
50
|
|
|
|
|
|
|
|
51
|
0
|
|
|
0
|
1
|
|
sub amount_authorized { return( shift->_set_get_number( 'amount_authorized', @_ ) ); } |
52
|
|
|
|
|
|
|
|
53
|
0
|
|
|
0
|
1
|
|
sub available_payout_methods { return( shift->_set_get_array( 'available_payout_methods', @_ ) ); } |
54
|
|
|
|
|
|
|
|
55
|
0
|
|
|
0
|
0
|
|
sub bank_code { return( shift->_set_get_scalar( 'bank_code', @_ ) ); } |
56
|
|
|
|
|
|
|
|
57
|
0
|
|
|
0
|
0
|
|
sub branch_code { return( shift->_set_get_scalar( 'branch_code', @_ ) ); } |
58
|
|
|
|
|
|
|
|
59
|
|
|
|
|
|
|
# Card brand name, e.g. American Express, Diners Club, Discover, JCB, MasterCard, UnionPay, Visa, or Unknown |
60
|
|
|
|
|
|
|
|
61
|
0
|
|
|
0
|
1
|
|
sub brand { return( shift->_set_get_scalar( 'brand', @_ ) ); } |
62
|
|
|
|
|
|
|
|
63
|
0
|
|
|
0
|
1
|
|
sub capture_before { return( shift->_set_get_datetime( 'capture_before', @_ ) ); } |
64
|
|
|
|
|
|
|
|
65
|
0
|
|
|
0
|
0
|
|
sub capture_method { return( shift->_set_get_scalar( 'capture_method', @_ ) ); } |
66
|
|
|
|
|
|
|
|
67
|
0
|
|
|
0
|
1
|
|
sub cardholder_name { return( shift->_set_get_scalar( 'cardholder_name', @_ ) ); } |
68
|
|
|
|
|
|
|
|
69
|
0
|
|
|
0
|
1
|
|
sub checks { return( shift->_set_get_hash( 'checks', @_ ) ) }; |
70
|
|
|
|
|
|
|
|
71
|
0
|
|
|
0
|
1
|
|
sub country { return( shift->_set_get_scalar( 'country', @_ ) ); } |
72
|
|
|
|
|
|
|
|
73
|
0
|
|
|
0
|
1
|
|
sub currency { return( shift->_set_get_scalar( 'currency', @_ ) ); } |
74
|
|
|
|
|
|
|
|
75
|
0
|
|
|
0
|
1
|
|
sub customer { return( shift->_set_get_scalar_or_object( 'customer', 'Net::API::Stripe::Customer', @_ ) ); } |
76
|
|
|
|
|
|
|
|
77
|
0
|
|
|
0
|
1
|
|
sub cvc { return( shift->_set_get_scalar( 'cvc', @_ ) ); } |
78
|
|
|
|
|
|
|
|
79
|
0
|
|
|
0
|
1
|
|
sub cvc_check { return( shift->_set_get_scalar( 'cvc_check', @_ ) ); } |
80
|
|
|
|
|
|
|
|
81
|
0
|
|
|
0
|
1
|
|
sub default_for_currency { return( shift->_set_get_scalar( 'default_for_currency', @_ ) ); } |
82
|
|
|
|
|
|
|
|
83
|
0
|
|
|
0
|
1
|
|
sub description { return( shift->_set_get_scalar( 'description', @_ ) ); } |
84
|
|
|
|
|
|
|
|
85
|
0
|
|
|
0
|
1
|
|
sub dynamic_last4 { return( shift->_set_get_scalar( 'dynamic_last4', @_ ) ); } |
86
|
|
|
|
|
|
|
|
87
|
0
|
|
|
0
|
1
|
|
sub emv_auth_data { return( shift->_set_get_scalar( 'emv_auth_data', @_ ) ); } |
88
|
|
|
|
|
|
|
|
89
|
0
|
|
|
0
|
1
|
|
sub exp_month { return( shift->_set_get_number( 'exp_month', @_ ) ); } |
90
|
|
|
|
|
|
|
|
91
|
0
|
|
|
0
|
1
|
|
sub exp_year { return( shift->_set_get_number( 'exp_year', @_ ) ); } |
92
|
|
|
|
|
|
|
|
93
|
0
|
|
|
0
|
1
|
|
sub fingerprint { return( shift->_set_get_scalar( 'fingerprint', @_ ) ); } |
94
|
|
|
|
|
|
|
|
95
|
0
|
|
|
0
|
1
|
|
sub funding { return( shift->_set_get_scalar( 'funding', @_ ) ); } |
96
|
|
|
|
|
|
|
|
97
|
0
|
|
|
0
|
1
|
|
sub generated_card { return( shift->_set_get_scalar( 'generated_card', @_ ) ); } |
98
|
|
|
|
|
|
|
|
99
|
0
|
|
|
0
|
1
|
|
sub generated_from { return( shift->_set_get_object( 'generated_from', 'Net::API::Stripe::Payment::GeneratedFrom', @_ ) ); } |
100
|
|
|
|
|
|
|
|
101
|
0
|
|
|
0
|
1
|
|
sub iin { return( shift->_set_get_scalar( 'iin', @_ ) ); } |
102
|
|
|
|
|
|
|
|
103
|
0
|
|
|
0
|
1
|
|
sub incremental_authorization_supported { return( shift->_set_get_boolean( 'incremental_authorization_supported', @_ ) ); } |
104
|
|
|
|
|
|
|
|
105
|
0
|
|
|
0
|
1
|
|
sub installments { return( shift->_set_get_object( 'installments', 'Net::API::Stripe::Payment::Installment', @_ ) ); } |
106
|
|
|
|
|
|
|
|
107
|
0
|
|
|
0
|
1
|
|
sub issuer { return( shift->_set_get_scalar( 'issuer', @_ ) ); } |
108
|
|
|
|
|
|
|
|
109
|
0
|
|
|
0
|
1
|
|
sub last4 { return( shift->_set_get_scalar( 'last4', @_ ) ); } |
110
|
|
|
|
|
|
|
|
111
|
0
|
|
|
0
|
1
|
|
sub mandate { return( shift->_set_get_scalar( 'mandate', @_ ) ); } |
112
|
|
|
|
|
|
|
|
113
|
0
|
|
|
0
|
1
|
|
sub mandate_options { return( shift->_set_get_object( 'mandate_options', 'Net::API::Stripe::Mandate::Options', @_ ) ); } |
114
|
|
|
|
|
|
|
|
115
|
0
|
|
|
0
|
1
|
|
sub metadata { return( shift->_set_get_hash( 'metadata', @_ ) ); } |
116
|
|
|
|
|
|
|
|
117
|
|
|
|
|
|
|
# Cardholder name |
118
|
|
|
|
|
|
|
|
119
|
0
|
|
|
0
|
1
|
|
sub name { return( shift->_set_get_scalar( 'name', @_ ) ); } |
120
|
|
|
|
|
|
|
|
121
|
|
|
|
|
|
|
# Preview features says Stripe API |
122
|
|
|
|
|
|
|
|
123
|
0
|
|
|
0
|
1
|
|
sub network { return( shift->_set_get_scalar( 'network', @_ ) ); } |
124
|
|
|
|
|
|
|
|
125
|
|
|
|
|
|
|
sub networks |
126
|
|
|
|
|
|
|
{ |
127
|
0
|
|
|
0
|
1
|
|
return( shift->_set_get_class( 'networks', |
128
|
|
|
|
|
|
|
{ |
129
|
|
|
|
|
|
|
available => { type => 'array_as_object' }, |
130
|
|
|
|
|
|
|
preferred => { type => 'scalar_as_object' }, |
131
|
|
|
|
|
|
|
}, @_ ) ); |
132
|
|
|
|
|
|
|
} |
133
|
|
|
|
|
|
|
|
134
|
0
|
|
|
0
|
1
|
|
sub overcapture_supported { return( shift->_set_get_boolean( 'overcapture_supported', @_ ) ); } |
135
|
|
|
|
|
|
|
|
136
|
0
|
|
|
0
|
1
|
|
sub preferred_locales { return( shift->_set_get_array( 'preferred_locales', @_ ) ); } |
137
|
|
|
|
|
|
|
|
138
|
0
|
|
|
0
|
1
|
|
sub read_method { return( shift->_set_get_scalar( 'read_method', @_ ) ); } |
139
|
|
|
|
|
|
|
|
140
|
0
|
|
|
0
|
1
|
|
sub receipt { return( shift->_set_get_class( 'receipt', |
141
|
|
|
|
|
|
|
{ |
142
|
|
|
|
|
|
|
account_type => { type => 'scalar' }, |
143
|
|
|
|
|
|
|
application_cryptogram => { type => 'scalar' }, |
144
|
|
|
|
|
|
|
application_preferred_name => { type => 'scalar' }, |
145
|
|
|
|
|
|
|
authorization_code => { type => 'scalar' }, |
146
|
|
|
|
|
|
|
authorization_response_code => { type => 'scalar' }, |
147
|
|
|
|
|
|
|
cardholder_verification_method => { type => 'scalar' }, |
148
|
|
|
|
|
|
|
dedicated_file_name => { type => 'scalar' }, |
149
|
|
|
|
|
|
|
terminal_verification_results => { type => 'scalar' }, |
150
|
|
|
|
|
|
|
transaction_status_information => { type => 'scalar' }, |
151
|
|
|
|
|
|
|
}, @_ ) ); } |
152
|
|
|
|
|
|
|
|
153
|
0
|
|
|
0
|
1
|
|
sub recipient { return( shift->_set_get_scalar_or_object( 'recipient', 'Net::API::Stripe::Connect::Account', @_ ) ); } |
154
|
|
|
|
|
|
|
|
155
|
0
|
|
|
0
|
1
|
|
sub reference { return( shift->_set_get_scalar( 'reference', @_ ) ); } |
156
|
|
|
|
|
|
|
|
157
|
0
|
|
|
0
|
1
|
|
sub request_extended_authorization { return( shift->_set_get_boolean( 'request_extended_authorization', @_ ) ); } |
158
|
|
|
|
|
|
|
|
159
|
0
|
|
|
0
|
1
|
|
sub request_incremental_authorization_support { return( shift->_set_get_boolean( 'request_incremental_authorization_support', @_ ) ); } |
160
|
|
|
|
|
|
|
|
161
|
0
|
|
|
0
|
1
|
|
sub request_three_d_secure { return( shift->_set_get_scalar( 'request_three_d_secure', @_ ) ); } |
162
|
|
|
|
|
|
|
|
163
|
0
|
|
|
0
|
0
|
|
sub setup_future_usage { return( shift->_set_get_scalar( 'setup_future_usage', @_ ) ); } |
164
|
|
|
|
|
|
|
|
165
|
0
|
|
|
0
|
0
|
|
sub statement_descriptor_suffix_kana { return( shift->_set_get_scalar( 'statement_descriptor_suffix_kana', @_ ) ); } |
166
|
|
|
|
|
|
|
|
167
|
0
|
|
|
0
|
0
|
|
sub statement_descriptor_suffix_kanji { return( shift->_set_get_scalar( 'statement_descriptor_suffix_kanji', @_ ) ); } |
168
|
|
|
|
|
|
|
|
169
|
0
|
|
|
0
|
1
|
|
sub status { return( shift->_set_get_scalar( 'status', @_ ) ); } |
170
|
|
|
|
|
|
|
|
171
|
0
|
|
|
0
|
1
|
|
sub three_d_secure { return( shift->_set_get_class( 'three_d_secure', |
172
|
|
|
|
|
|
|
{ |
173
|
|
|
|
|
|
|
authenticated => { type => 'boolean' }, |
174
|
|
|
|
|
|
|
authentication_flow => { type => 'scalar' }, |
175
|
|
|
|
|
|
|
result => { type => 'scalar' }, |
176
|
|
|
|
|
|
|
result_reason => { type => 'scalar' }, |
177
|
|
|
|
|
|
|
succeeded => { type => 'boolean' }, |
178
|
|
|
|
|
|
|
version => { type => 'scalar' }, |
179
|
|
|
|
|
|
|
}, @_ ) ); } |
180
|
|
|
|
|
|
|
|
181
|
|
|
|
|
|
|
# sub three_d_secure_usage { return( shift->_set_get_hash_as_object( 'three_d_secure_usage', 'Net::API::Stripe::Payment::3DUsage', @_ ) ); } |
182
|
|
|
|
|
|
|
|
183
|
0
|
|
|
0
|
1
|
|
sub three_d_secure_usage { return( shift->_set_get_class( 'three_d_secure_usage', |
184
|
|
|
|
|
|
|
{ supported => { type => "boolean" } }, @_ ) ); } |
185
|
|
|
|
|
|
|
|
186
|
0
|
|
|
0
|
1
|
|
sub tokenization_method { return( shift->_set_get_scalar( 'tokenization_method', @_ ) ); } |
187
|
|
|
|
|
|
|
|
188
|
|
|
|
|
|
|
## sub wallet { return( shift->_set_get_hash_as_object( 'wallet', 'Net::API::Stripe::Payment::Wallet', @_ ) ); } |
189
|
|
|
|
|
|
|
|
190
|
0
|
|
|
0
|
1
|
|
sub url { return( shift->_set_get_uri( 'url', @_ ) ); } |
191
|
|
|
|
|
|
|
|
192
|
0
|
|
|
0
|
1
|
|
sub wallet { return( shift->_set_get_class( 'wallet', |
193
|
|
|
|
|
|
|
{ |
194
|
|
|
|
|
|
|
amex_express_checkout => { type => "hash" }, |
195
|
|
|
|
|
|
|
apple_pay => { type => "hash" }, |
196
|
|
|
|
|
|
|
dynamic_last4 => { type => "scalar" }, |
197
|
|
|
|
|
|
|
google_pay => { type => "hash" }, |
198
|
|
|
|
|
|
|
masterpass => { |
199
|
|
|
|
|
|
|
definition => { |
200
|
|
|
|
|
|
|
billing_address => { package => "Net::API::Stripe::Address", type => "object" }, |
201
|
|
|
|
|
|
|
email => { type => "scalar" }, |
202
|
|
|
|
|
|
|
name => { type => "scalar" }, |
203
|
|
|
|
|
|
|
shipping_address => { package => "Net::API::Stripe::Address", type => "object" }, |
204
|
|
|
|
|
|
|
}, |
205
|
|
|
|
|
|
|
type => "class", |
206
|
|
|
|
|
|
|
}, |
207
|
|
|
|
|
|
|
samsung_pay => { type => "hash" }, |
208
|
|
|
|
|
|
|
type => { type => "scalar" }, |
209
|
|
|
|
|
|
|
visa_checkout => { |
210
|
|
|
|
|
|
|
definition => { |
211
|
|
|
|
|
|
|
billing_address => { package => "Net::API::Stripe::Address", type => "object" }, |
212
|
|
|
|
|
|
|
email => { type => "scalar" }, |
213
|
|
|
|
|
|
|
name => { type => "scalar" }, |
214
|
|
|
|
|
|
|
shipping_address => { package => "Net::API::Stripe::Address", type => "object" }, |
215
|
|
|
|
|
|
|
}, |
216
|
|
|
|
|
|
|
type => "class", |
217
|
|
|
|
|
|
|
}, |
218
|
|
|
|
|
|
|
}, @_ ) ); } |
219
|
|
|
|
|
|
|
|
220
|
|
|
|
|
|
|
1; |
221
|
|
|
|
|
|
|
|
222
|
|
|
|
|
|
|
__END__ |
223
|
|
|
|
|
|
|
|
224
|
|
|
|
|
|
|
=encoding utf8 |
225
|
|
|
|
|
|
|
|
226
|
|
|
|
|
|
|
=head1 NAME |
227
|
|
|
|
|
|
|
|
228
|
|
|
|
|
|
|
Net::API::Stripe::Connect::ExternalAccount::Card - A Stripe Card Account Object |
229
|
|
|
|
|
|
|
|
230
|
|
|
|
|
|
|
=head1 SYNOPSIS |
231
|
|
|
|
|
|
|
|
232
|
|
|
|
|
|
|
my $card = $stripe->card({ |
233
|
|
|
|
|
|
|
account => 'acct_fake123456789', |
234
|
|
|
|
|
|
|
# Or you can also simply pass a Net::API::Stripe::Address object |
235
|
|
|
|
|
|
|
# address => $address_object |
236
|
|
|
|
|
|
|
address_line1 => '1-2-3 Kudan-Minami, Chiyoda-ku', |
237
|
|
|
|
|
|
|
address_line2 => 'Big bldg. 12F', |
238
|
|
|
|
|
|
|
address_city => 'Tokyo', |
239
|
|
|
|
|
|
|
address_zip => '123-4567', |
240
|
|
|
|
|
|
|
address_country => 'jp', |
241
|
|
|
|
|
|
|
brand => 'visa', |
242
|
|
|
|
|
|
|
country => 'jp', |
243
|
|
|
|
|
|
|
currency => 'jpy', |
244
|
|
|
|
|
|
|
customer => $customer_object, |
245
|
|
|
|
|
|
|
cvc => 123, |
246
|
|
|
|
|
|
|
# Boolean |
247
|
|
|
|
|
|
|
default_for_currency => 1, |
248
|
|
|
|
|
|
|
exp_month => 12, |
249
|
|
|
|
|
|
|
exp_year => 2030, |
250
|
|
|
|
|
|
|
funding => 'debit', |
251
|
|
|
|
|
|
|
metadata => { transaction_id => 123, customer_id => 456 }, |
252
|
|
|
|
|
|
|
name => 'John Doe', |
253
|
|
|
|
|
|
|
}); |
254
|
|
|
|
|
|
|
|
255
|
|
|
|
|
|
|
See documentation in L<Net::API::Stripe> for example to make api calls to Stripe to create those objects. For example: |
256
|
|
|
|
|
|
|
|
257
|
|
|
|
|
|
|
my $stripe = Net::API::Stripe->new( conf_file => 'settings.json' ) | die( Net::API::Stripe->error ); |
258
|
|
|
|
|
|
|
my $stripe_card = $stripe->cards( create => |
259
|
|
|
|
|
|
|
{ |
260
|
|
|
|
|
|
|
account => 'acct_fake123456789', |
261
|
|
|
|
|
|
|
external_account => |
262
|
|
|
|
|
|
|
{ |
263
|
|
|
|
|
|
|
object => 'card', |
264
|
|
|
|
|
|
|
exp_month => 12, |
265
|
|
|
|
|
|
|
exp_year => 2030, |
266
|
|
|
|
|
|
|
number => '012345678', |
267
|
|
|
|
|
|
|
}, |
268
|
|
|
|
|
|
|
default_for_currency => $stripe->true, |
269
|
|
|
|
|
|
|
metadata => { transaction_id => 123, customer_id => 456 }, |
270
|
|
|
|
|
|
|
}) || die( $stripe->error ); |
271
|
|
|
|
|
|
|
|
272
|
|
|
|
|
|
|
=head1 VERSION |
273
|
|
|
|
|
|
|
|
274
|
|
|
|
|
|
|
v0.203.0 |
275
|
|
|
|
|
|
|
|
276
|
|
|
|
|
|
|
=head1 DESCRIPTION |
277
|
|
|
|
|
|
|
|
278
|
|
|
|
|
|
|
These External Accounts are transfer destinations on Account objects for Custom accounts (L<https://stripe.com/docs/connect/custom-accounts>). They can be bank accounts or debit cards. |
279
|
|
|
|
|
|
|
|
280
|
|
|
|
|
|
|
Bank accounts (L<https://stripe.com/docs/api#customer_bank_account_object>) and debit cards (L<https://stripe.com/docs/api#card_object>) can also be used as payment sources on regular charges, and are documented in the links above. |
281
|
|
|
|
|
|
|
|
282
|
|
|
|
|
|
|
=head1 CONSTRUCTOR |
283
|
|
|
|
|
|
|
|
284
|
|
|
|
|
|
|
=head2 new( %ARG ) |
285
|
|
|
|
|
|
|
|
286
|
|
|
|
|
|
|
Creates a new L<Net::API::Stripe::Connect::ExternalAccount::Card> object. |
287
|
|
|
|
|
|
|
It may also take an hash like arguments, that also are method of the same name. |
288
|
|
|
|
|
|
|
|
289
|
|
|
|
|
|
|
=head1 METHODS |
290
|
|
|
|
|
|
|
|
291
|
|
|
|
|
|
|
=head2 id string |
292
|
|
|
|
|
|
|
|
293
|
|
|
|
|
|
|
Unique identifier for the object. |
294
|
|
|
|
|
|
|
|
295
|
|
|
|
|
|
|
=head2 object string, value is "card" |
296
|
|
|
|
|
|
|
|
297
|
|
|
|
|
|
|
String representing the object’s type. Objects of the same type share the same value. |
298
|
|
|
|
|
|
|
|
299
|
|
|
|
|
|
|
=head2 account custom only string (expandable) |
300
|
|
|
|
|
|
|
|
301
|
|
|
|
|
|
|
The account this card belongs to. This attribute will not be in the card object if the card belongs to a customer or recipient instead. |
302
|
|
|
|
|
|
|
|
303
|
|
|
|
|
|
|
When expanded, this is a L<Net::API::Stripe::Connect::Account> object. |
304
|
|
|
|
|
|
|
|
305
|
|
|
|
|
|
|
=head2 address L<Net::API::Stripe::Address> object or hash |
306
|
|
|
|
|
|
|
|
307
|
|
|
|
|
|
|
This is a helper method. Provided with either a L<Net::API::Stripe::Address> object or a hash with same properties, this will assign all the address_* properties by calling its method. |
308
|
|
|
|
|
|
|
|
309
|
|
|
|
|
|
|
=head2 address_city string |
310
|
|
|
|
|
|
|
|
311
|
|
|
|
|
|
|
City/District/Suburb/Town/Village. |
312
|
|
|
|
|
|
|
|
313
|
|
|
|
|
|
|
=head2 address_country string |
314
|
|
|
|
|
|
|
|
315
|
|
|
|
|
|
|
Billing address country, if provided when creating card. |
316
|
|
|
|
|
|
|
|
317
|
|
|
|
|
|
|
=head2 address_line1 string |
318
|
|
|
|
|
|
|
|
319
|
|
|
|
|
|
|
Address line 1 (Street address/PO Box/Company name). |
320
|
|
|
|
|
|
|
|
321
|
|
|
|
|
|
|
=head2 address_line1_check string |
322
|
|
|
|
|
|
|
|
323
|
|
|
|
|
|
|
If address_line1 was provided, results of the check: pass, fail, unavailable, or unchecked. |
324
|
|
|
|
|
|
|
|
325
|
|
|
|
|
|
|
=head2 address_line2 string |
326
|
|
|
|
|
|
|
|
327
|
|
|
|
|
|
|
Address line 2 (Apartment/Suite/Unit/Building). |
328
|
|
|
|
|
|
|
|
329
|
|
|
|
|
|
|
=head2 address_state string |
330
|
|
|
|
|
|
|
|
331
|
|
|
|
|
|
|
State/County/Province/Region. |
332
|
|
|
|
|
|
|
|
333
|
|
|
|
|
|
|
=head2 address_zip string |
334
|
|
|
|
|
|
|
|
335
|
|
|
|
|
|
|
ZIP or postal code. |
336
|
|
|
|
|
|
|
|
337
|
|
|
|
|
|
|
=head2 address_zip_check string |
338
|
|
|
|
|
|
|
|
339
|
|
|
|
|
|
|
If address_zip was provided, results of the check: pass, fail, unavailable, or unchecked. |
340
|
|
|
|
|
|
|
|
341
|
|
|
|
|
|
|
=head2 amount_authorized integer |
342
|
|
|
|
|
|
|
|
343
|
|
|
|
|
|
|
The authorized amount |
344
|
|
|
|
|
|
|
|
345
|
|
|
|
|
|
|
=head2 available_payout_methods array |
346
|
|
|
|
|
|
|
|
347
|
|
|
|
|
|
|
A set of available payout methods for this card. Will be either ["standard"] or ["standard", "instant"]. Only values from this set should be passed as the method when creating a transfer. |
348
|
|
|
|
|
|
|
|
349
|
|
|
|
|
|
|
=head2 brand string |
350
|
|
|
|
|
|
|
|
351
|
|
|
|
|
|
|
Card brand. Can be American Express, Diners Club, Discover, JCB, MasterCard, UnionPay, Visa, or Unknown. |
352
|
|
|
|
|
|
|
|
353
|
|
|
|
|
|
|
=head2 capture_before timestamp |
354
|
|
|
|
|
|
|
|
355
|
|
|
|
|
|
|
When using manual capture, a future timestamp after which the charge will be automatically refunded if uncaptured. |
356
|
|
|
|
|
|
|
|
357
|
|
|
|
|
|
|
=head2 cardholder_name string |
358
|
|
|
|
|
|
|
|
359
|
|
|
|
|
|
|
The cardholder name as read from the card, in L<ISO 7813|https://en.wikipedia.org/wiki/ISO/IEC_7813> format. May include alphanumeric characters, special characters and first/last name separator (C</>). |
360
|
|
|
|
|
|
|
|
361
|
|
|
|
|
|
|
=head2 checks |
362
|
|
|
|
|
|
|
|
363
|
|
|
|
|
|
|
=over 4 |
364
|
|
|
|
|
|
|
|
365
|
|
|
|
|
|
|
=item I<address_line1_check> string |
366
|
|
|
|
|
|
|
|
367
|
|
|
|
|
|
|
If a address line1 was provided, results of the check, one of ‘pass’, ‘failed’, ‘unavailable’ or ‘unchecked’. |
368
|
|
|
|
|
|
|
|
369
|
|
|
|
|
|
|
=item I<address_postal_code_check> string |
370
|
|
|
|
|
|
|
|
371
|
|
|
|
|
|
|
If a address postal code was provided, results of the check, one of ‘pass’, ‘failed’, ‘unavailable’ or ‘unchecked’. |
372
|
|
|
|
|
|
|
|
373
|
|
|
|
|
|
|
=item I<cvc_check> string |
374
|
|
|
|
|
|
|
|
375
|
|
|
|
|
|
|
If a CVC was provided, results of the check, one of ‘pass’, ‘failed’, ‘unavailable’ or ‘unchecked’. |
376
|
|
|
|
|
|
|
|
377
|
|
|
|
|
|
|
=back |
378
|
|
|
|
|
|
|
|
379
|
|
|
|
|
|
|
=head2 country string |
380
|
|
|
|
|
|
|
|
381
|
|
|
|
|
|
|
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. |
382
|
|
|
|
|
|
|
|
383
|
|
|
|
|
|
|
=head2 currency custom only currency |
384
|
|
|
|
|
|
|
|
385
|
|
|
|
|
|
|
Three-letter ISO code for currency. Only applicable on accounts (not customers or recipients). The card can be used as a transfer destination for funds in this currency. |
386
|
|
|
|
|
|
|
|
387
|
|
|
|
|
|
|
=head2 customer string (expandable) |
388
|
|
|
|
|
|
|
|
389
|
|
|
|
|
|
|
The customer that this card belongs to. This attribute will not be in the card object if the card belongs to an account or recipient instead. |
390
|
|
|
|
|
|
|
|
391
|
|
|
|
|
|
|
When expanded, this is a L<Net::API::Stripe::Customer> object. |
392
|
|
|
|
|
|
|
|
393
|
|
|
|
|
|
|
=head2 cvc string |
394
|
|
|
|
|
|
|
|
395
|
|
|
|
|
|
|
Card security code. Highly recommended to always include this value, but it's required only for accounts based in European countries. |
396
|
|
|
|
|
|
|
|
397
|
|
|
|
|
|
|
This is used when creating a card object on Stripe API. See here: L<https://stripe.com/docs/api/cards/create> |
398
|
|
|
|
|
|
|
|
399
|
|
|
|
|
|
|
=head2 cvc_check string |
400
|
|
|
|
|
|
|
|
401
|
|
|
|
|
|
|
If a CVC was provided, results of the check: pass, fail, unavailable, or unchecked. |
402
|
|
|
|
|
|
|
|
403
|
|
|
|
|
|
|
=head2 default_for_currency custom only boolean |
404
|
|
|
|
|
|
|
|
405
|
|
|
|
|
|
|
Whether this card is the default external account for its currency. |
406
|
|
|
|
|
|
|
|
407
|
|
|
|
|
|
|
=head2 description string |
408
|
|
|
|
|
|
|
|
409
|
|
|
|
|
|
|
A high-level description of the type of cards issued in this range |
410
|
|
|
|
|
|
|
|
411
|
|
|
|
|
|
|
=head2 dynamic_last4 string |
412
|
|
|
|
|
|
|
|
413
|
|
|
|
|
|
|
(For tokenized numbers only.) The last four digits of the device account number. |
414
|
|
|
|
|
|
|
|
415
|
|
|
|
|
|
|
=head2 emv_auth_data string |
416
|
|
|
|
|
|
|
|
417
|
|
|
|
|
|
|
Authorization response cryptogram. |
418
|
|
|
|
|
|
|
|
419
|
|
|
|
|
|
|
=head2 exp_month integer |
420
|
|
|
|
|
|
|
|
421
|
|
|
|
|
|
|
Two-digit number representing the card’s expiration month. |
422
|
|
|
|
|
|
|
|
423
|
|
|
|
|
|
|
=head2 exp_year integer |
424
|
|
|
|
|
|
|
|
425
|
|
|
|
|
|
|
Four-digit number representing the card’s expiration year. |
426
|
|
|
|
|
|
|
|
427
|
|
|
|
|
|
|
=head2 fingerprint string |
428
|
|
|
|
|
|
|
|
429
|
|
|
|
|
|
|
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. |
430
|
|
|
|
|
|
|
|
431
|
|
|
|
|
|
|
=head2 funding string |
432
|
|
|
|
|
|
|
|
433
|
|
|
|
|
|
|
Card funding type. Can be credit, debit, prepaid, or unknown. |
434
|
|
|
|
|
|
|
|
435
|
|
|
|
|
|
|
=head2 generated_card string |
436
|
|
|
|
|
|
|
|
437
|
|
|
|
|
|
|
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. |
438
|
|
|
|
|
|
|
|
439
|
|
|
|
|
|
|
=head2 generated_from hash |
440
|
|
|
|
|
|
|
|
441
|
|
|
|
|
|
|
Details of the original PaymentMethod that created this object. |
442
|
|
|
|
|
|
|
|
443
|
|
|
|
|
|
|
=head2 iin string |
444
|
|
|
|
|
|
|
|
445
|
|
|
|
|
|
|
Issuer identification number of the card |
446
|
|
|
|
|
|
|
|
447
|
|
|
|
|
|
|
=head2 incremental_authorization_supported boolean |
448
|
|
|
|
|
|
|
|
449
|
|
|
|
|
|
|
Whether this L<PaymentIntent|https://stripe.com/docs/api/payment_intents> is eligible for incremental authorizations. Request support using L<requestI<incremental>authorization_support|https://stripe.com/docs/api/payment_intents/create#create_payment_intent-payment_method_options-card_present-request_incremental_authorization_support>. |
450
|
|
|
|
|
|
|
|
451
|
|
|
|
|
|
|
=head2 installments hash |
452
|
|
|
|
|
|
|
|
453
|
|
|
|
|
|
|
If present, this is a L<Net::API::Stripe::Payment::Installment> object. As of 2019-02-19, this is only used in Mexico though. See here for more information: L<https://stripe.com/docs/payments/installments> |
454
|
|
|
|
|
|
|
|
455
|
|
|
|
|
|
|
=head2 issuer string |
456
|
|
|
|
|
|
|
|
457
|
|
|
|
|
|
|
The name of the card's issuing bank |
458
|
|
|
|
|
|
|
|
459
|
|
|
|
|
|
|
=head2 last4 string |
460
|
|
|
|
|
|
|
|
461
|
|
|
|
|
|
|
The last four digits of the card. |
462
|
|
|
|
|
|
|
|
463
|
|
|
|
|
|
|
=head2 mandate string |
464
|
|
|
|
|
|
|
|
465
|
|
|
|
|
|
|
ID of the mandate used to make this payment. |
466
|
|
|
|
|
|
|
|
467
|
|
|
|
|
|
|
=head2 mandate_options |
468
|
|
|
|
|
|
|
|
469
|
|
|
|
|
|
|
Additional fields for Mandate creation |
470
|
|
|
|
|
|
|
|
471
|
|
|
|
|
|
|
This is just a property with an empty hash. There are a few instances of this on Stripe api documentation. |
472
|
|
|
|
|
|
|
|
473
|
|
|
|
|
|
|
=head2 metadata hash |
474
|
|
|
|
|
|
|
|
475
|
|
|
|
|
|
|
Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. |
476
|
|
|
|
|
|
|
|
477
|
|
|
|
|
|
|
=head2 name string |
478
|
|
|
|
|
|
|
|
479
|
|
|
|
|
|
|
Cardholder name. |
480
|
|
|
|
|
|
|
|
481
|
|
|
|
|
|
|
=head2 network string preview feature |
482
|
|
|
|
|
|
|
|
483
|
|
|
|
|
|
|
Identifies which network this charge was processed on. Can be amex, diners, discover, interac, jcb, mastercard, unionpay, visa, or unknown. |
484
|
|
|
|
|
|
|
|
485
|
|
|
|
|
|
|
=head2 networks hash |
486
|
|
|
|
|
|
|
|
487
|
|
|
|
|
|
|
Contains information about card networks that can be used to process the payment. |
488
|
|
|
|
|
|
|
|
489
|
|
|
|
|
|
|
=over 4 |
490
|
|
|
|
|
|
|
|
491
|
|
|
|
|
|
|
=item I<available> array containing strings |
492
|
|
|
|
|
|
|
|
493
|
|
|
|
|
|
|
All available networks for the card. |
494
|
|
|
|
|
|
|
|
495
|
|
|
|
|
|
|
=item I<preferred> string |
496
|
|
|
|
|
|
|
|
497
|
|
|
|
|
|
|
The preferred network for the card. |
498
|
|
|
|
|
|
|
|
499
|
|
|
|
|
|
|
=back |
500
|
|
|
|
|
|
|
|
501
|
|
|
|
|
|
|
=head2 overcapture_supported boolean |
502
|
|
|
|
|
|
|
|
503
|
|
|
|
|
|
|
Defines whether the authorized amount can be over-captured or not |
504
|
|
|
|
|
|
|
|
505
|
|
|
|
|
|
|
=head2 preferred_locales string_array |
506
|
|
|
|
|
|
|
|
507
|
|
|
|
|
|
|
EMV tag 5F2D. Preferred languages specified by the integrated circuit chip. |
508
|
|
|
|
|
|
|
|
509
|
|
|
|
|
|
|
=head2 read_method string |
510
|
|
|
|
|
|
|
|
511
|
|
|
|
|
|
|
How were card details read in this transaction. Can be contact_emv, contactless_emv, magnetic_stripe_fallback, magnetic_stripe_track2, or contactless_magstripe_mode |
512
|
|
|
|
|
|
|
|
513
|
|
|
|
|
|
|
=head2 receipt hash |
514
|
|
|
|
|
|
|
|
515
|
|
|
|
|
|
|
A collection of fields required to be displayed on receipts. Only required for EMV transactions. |
516
|
|
|
|
|
|
|
|
517
|
|
|
|
|
|
|
=over 4 |
518
|
|
|
|
|
|
|
|
519
|
|
|
|
|
|
|
=item I<account_type> string |
520
|
|
|
|
|
|
|
|
521
|
|
|
|
|
|
|
The type of account being debited or credited |
522
|
|
|
|
|
|
|
|
523
|
|
|
|
|
|
|
=item I<application_cryptogram> string |
524
|
|
|
|
|
|
|
|
525
|
|
|
|
|
|
|
EMV tag 9F26, cryptogram generated by the integrated circuit chip. |
526
|
|
|
|
|
|
|
|
527
|
|
|
|
|
|
|
=item I<application_preferred_name> string |
528
|
|
|
|
|
|
|
|
529
|
|
|
|
|
|
|
Mnenomic of the Application Identifier. |
530
|
|
|
|
|
|
|
|
531
|
|
|
|
|
|
|
=item I<authorization_code> string |
532
|
|
|
|
|
|
|
|
533
|
|
|
|
|
|
|
Identifier for this transaction. |
534
|
|
|
|
|
|
|
|
535
|
|
|
|
|
|
|
=item I<authorization_response_code> string |
536
|
|
|
|
|
|
|
|
537
|
|
|
|
|
|
|
EMV tag 8A. A code returned by the card issuer. |
538
|
|
|
|
|
|
|
|
539
|
|
|
|
|
|
|
=item I<cardholder_verification_method> string |
540
|
|
|
|
|
|
|
|
541
|
|
|
|
|
|
|
How the cardholder verified ownership of the card. |
542
|
|
|
|
|
|
|
|
543
|
|
|
|
|
|
|
=item I<dedicated_file_name> string |
544
|
|
|
|
|
|
|
|
545
|
|
|
|
|
|
|
EMV tag 84. Similar to the application identifier stored on the integrated circuit chip. |
546
|
|
|
|
|
|
|
|
547
|
|
|
|
|
|
|
=item I<terminal_verification_results> string |
548
|
|
|
|
|
|
|
|
549
|
|
|
|
|
|
|
The outcome of a series of EMV functions performed by the card reader. |
550
|
|
|
|
|
|
|
|
551
|
|
|
|
|
|
|
=item I<transaction_status_information> string |
552
|
|
|
|
|
|
|
|
553
|
|
|
|
|
|
|
An indication of various EMV functions performed during the transaction. |
554
|
|
|
|
|
|
|
|
555
|
|
|
|
|
|
|
=back |
556
|
|
|
|
|
|
|
|
557
|
|
|
|
|
|
|
=head2 recipient string (expandable) |
558
|
|
|
|
|
|
|
|
559
|
|
|
|
|
|
|
The recipient that this card belongs to. This attribute will not be in the card object if the card belongs to a customer or account instead. |
560
|
|
|
|
|
|
|
|
561
|
|
|
|
|
|
|
Since 2017, Stripe recipients have been replaced by Stripe accounts: L<https://stripe.com/docs/connect/recipient-account-migrations> |
562
|
|
|
|
|
|
|
|
563
|
|
|
|
|
|
|
So this is a Stripe account id, or if expanded, a L<Net::API::Stripe::Connect::Account> object. |
564
|
|
|
|
|
|
|
|
565
|
|
|
|
|
|
|
=head2 reference string |
566
|
|
|
|
|
|
|
|
567
|
|
|
|
|
|
|
The unique reference of the mandate. |
568
|
|
|
|
|
|
|
|
569
|
|
|
|
|
|
|
=head2 request_extended_authorization |
570
|
|
|
|
|
|
|
|
571
|
|
|
|
|
|
|
Request ability to capture this payment beyond the standard L<authorization validity window|https://stripe.com/docs/terminal/features/extended-authorizations#authorization-validity> |
572
|
|
|
|
|
|
|
|
573
|
|
|
|
|
|
|
=head2 request_incremental_authorization_support |
574
|
|
|
|
|
|
|
|
575
|
|
|
|
|
|
|
Request ability to increment this PaymentIntent if the combination of MCC and card brand is eligible. Check L<incremental_authorization_supported|https://stripe.com/docs/api/charges/object#charge_object-payment_method_details-card_present-incremental_authorization_supported> in the L<Confirm|https://stripe.com/docs/api/payment_intents/confirm> response to verify support. |
576
|
|
|
|
|
|
|
|
577
|
|
|
|
|
|
|
=head2 request_three_d_secure string |
578
|
|
|
|
|
|
|
|
579
|
|
|
|
|
|
|
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. Permitted values include: C<automatic> or C<any>. If not provided, defaults to C<automatic>. Read our guide on manually requesting 3D Secure for more information on how this configuration interacts with Radar and our SCA Engine. |
580
|
|
|
|
|
|
|
|
581
|
|
|
|
|
|
|
=head2 status string |
582
|
|
|
|
|
|
|
|
583
|
|
|
|
|
|
|
For external accounts, possible values are C<new> and C<errored>. If a transfer fails, the status is set to C<errored> and transfers are stopped until account details are updated. |
584
|
|
|
|
|
|
|
|
585
|
|
|
|
|
|
|
=head2 three_d_secure hash |
586
|
|
|
|
|
|
|
|
587
|
|
|
|
|
|
|
Populated if this transaction used 3D Secure authentication. |
588
|
|
|
|
|
|
|
|
589
|
|
|
|
|
|
|
This is an objectified hash reference, ie its key / value pairs can be accessed as virtual methods. It uses the virtal package L<Net::API::Stripe::Payment::3DSecure> |
590
|
|
|
|
|
|
|
|
591
|
|
|
|
|
|
|
=over 4 |
592
|
|
|
|
|
|
|
|
593
|
|
|
|
|
|
|
=item I<authenticated> boolean |
594
|
|
|
|
|
|
|
|
595
|
|
|
|
|
|
|
Whether or not authentication was performed. 3D Secure will succeed without authentication when the card is not enrolled. |
596
|
|
|
|
|
|
|
|
597
|
|
|
|
|
|
|
=item I<authentication_flow> string |
598
|
|
|
|
|
|
|
|
599
|
|
|
|
|
|
|
For authenticated transactions: how the customer was authenticated by the issuing bank. |
600
|
|
|
|
|
|
|
|
601
|
|
|
|
|
|
|
=item I<result> string |
602
|
|
|
|
|
|
|
|
603
|
|
|
|
|
|
|
Indicates the outcome of 3D Secure authentication. |
604
|
|
|
|
|
|
|
|
605
|
|
|
|
|
|
|
=item I<result_reason> string |
606
|
|
|
|
|
|
|
|
607
|
|
|
|
|
|
|
Additional information about why 3D Secure succeeded or failed based on the C<result>. |
608
|
|
|
|
|
|
|
|
609
|
|
|
|
|
|
|
=item I<succeeded> boolean |
610
|
|
|
|
|
|
|
|
611
|
|
|
|
|
|
|
Whether or not 3D Secure succeeded. |
612
|
|
|
|
|
|
|
|
613
|
|
|
|
|
|
|
=item I<version> string |
614
|
|
|
|
|
|
|
|
615
|
|
|
|
|
|
|
The version of 3D Secure that was used for this payment. |
616
|
|
|
|
|
|
|
|
617
|
|
|
|
|
|
|
=back |
618
|
|
|
|
|
|
|
|
619
|
|
|
|
|
|
|
=head2 three_d_secure_usage hash |
620
|
|
|
|
|
|
|
|
621
|
|
|
|
|
|
|
Contains details on how this Card maybe be used for 3D Secure authentication. |
622
|
|
|
|
|
|
|
|
623
|
|
|
|
|
|
|
This is a virtual L<Net::API::Stripe::Payment::3DUsage> object ie whereby each key can be accessed as methods. |
624
|
|
|
|
|
|
|
|
625
|
|
|
|
|
|
|
=over 4 |
626
|
|
|
|
|
|
|
|
627
|
|
|
|
|
|
|
=item I<supported> boolean |
628
|
|
|
|
|
|
|
|
629
|
|
|
|
|
|
|
Whether 3D Secure is supported on this card. |
630
|
|
|
|
|
|
|
|
631
|
|
|
|
|
|
|
=back |
632
|
|
|
|
|
|
|
|
633
|
|
|
|
|
|
|
=head2 tokenization_method string |
634
|
|
|
|
|
|
|
|
635
|
|
|
|
|
|
|
If the card number is tokenized, this is the method that was used. Can be apple_pay or google_pay. |
636
|
|
|
|
|
|
|
|
637
|
|
|
|
|
|
|
=head2 url string |
638
|
|
|
|
|
|
|
|
639
|
|
|
|
|
|
|
The URL of the mandate. This URL generally contains sensitive information about the customer and should be shared with them exclusively. |
640
|
|
|
|
|
|
|
|
641
|
|
|
|
|
|
|
=head2 wallet hash |
642
|
|
|
|
|
|
|
|
643
|
|
|
|
|
|
|
If this Card is part of a card wallet, this contains the details of the card wallet. |
644
|
|
|
|
|
|
|
|
645
|
|
|
|
|
|
|
It has the following properties: |
646
|
|
|
|
|
|
|
|
647
|
|
|
|
|
|
|
=over 4 |
648
|
|
|
|
|
|
|
|
649
|
|
|
|
|
|
|
=item I<amex_express_checkout> hash |
650
|
|
|
|
|
|
|
|
651
|
|
|
|
|
|
|
If this is a C<amex_express_checkout> card wallet, this hash contains details about the wallet. |
652
|
|
|
|
|
|
|
|
653
|
|
|
|
|
|
|
=over 8 |
654
|
|
|
|
|
|
|
|
655
|
|
|
|
|
|
|
=item I<amex_express_checkout> |
656
|
|
|
|
|
|
|
|
657
|
|
|
|
|
|
|
This is an empty hash. |
658
|
|
|
|
|
|
|
|
659
|
|
|
|
|
|
|
=back |
660
|
|
|
|
|
|
|
|
661
|
|
|
|
|
|
|
=item I<apple_pay> hash |
662
|
|
|
|
|
|
|
|
663
|
|
|
|
|
|
|
If this is a C<apple_pay> card wallet, this hash contains details about the wallet. |
664
|
|
|
|
|
|
|
|
665
|
|
|
|
|
|
|
=over 8 |
666
|
|
|
|
|
|
|
|
667
|
|
|
|
|
|
|
=item I<apple_pay> |
668
|
|
|
|
|
|
|
|
669
|
|
|
|
|
|
|
This is an empty hash. |
670
|
|
|
|
|
|
|
|
671
|
|
|
|
|
|
|
=back |
672
|
|
|
|
|
|
|
|
673
|
|
|
|
|
|
|
=item I<dynamic_last4> string |
674
|
|
|
|
|
|
|
|
675
|
|
|
|
|
|
|
(For tokenized numbers only.) The last four digits of the device account number. |
676
|
|
|
|
|
|
|
|
677
|
|
|
|
|
|
|
=item I<google_pay> hash |
678
|
|
|
|
|
|
|
|
679
|
|
|
|
|
|
|
If this is a C<google_pay> card wallet, this hash contains details about the wallet. |
680
|
|
|
|
|
|
|
|
681
|
|
|
|
|
|
|
=over 8 |
682
|
|
|
|
|
|
|
|
683
|
|
|
|
|
|
|
=item I<google_pay> |
684
|
|
|
|
|
|
|
|
685
|
|
|
|
|
|
|
This is an empty hash. |
686
|
|
|
|
|
|
|
|
687
|
|
|
|
|
|
|
=back |
688
|
|
|
|
|
|
|
|
689
|
|
|
|
|
|
|
=item I<masterpass> hash |
690
|
|
|
|
|
|
|
|
691
|
|
|
|
|
|
|
If this is a C<masterpass> card wallet, this hash contains details about the wallet. |
692
|
|
|
|
|
|
|
|
693
|
|
|
|
|
|
|
=over 8 |
694
|
|
|
|
|
|
|
|
695
|
|
|
|
|
|
|
=item I<billing_address> hash |
696
|
|
|
|
|
|
|
|
697
|
|
|
|
|
|
|
Owner's verified billing address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated. |
698
|
|
|
|
|
|
|
|
699
|
|
|
|
|
|
|
When expanded, this is a L<Net::API::Stripe::Address> object. |
700
|
|
|
|
|
|
|
|
701
|
|
|
|
|
|
|
=item I<email> string |
702
|
|
|
|
|
|
|
|
703
|
|
|
|
|
|
|
Owner's verified email. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated. |
704
|
|
|
|
|
|
|
|
705
|
|
|
|
|
|
|
=item I<name> string |
706
|
|
|
|
|
|
|
|
707
|
|
|
|
|
|
|
Owner's verified full name. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated. |
708
|
|
|
|
|
|
|
|
709
|
|
|
|
|
|
|
=item I<shipping_address> hash |
710
|
|
|
|
|
|
|
|
711
|
|
|
|
|
|
|
Owner's verified shipping address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated. |
712
|
|
|
|
|
|
|
|
713
|
|
|
|
|
|
|
When expanded, this is a L<Net::API::Stripe::Address> object. |
714
|
|
|
|
|
|
|
|
715
|
|
|
|
|
|
|
=back |
716
|
|
|
|
|
|
|
|
717
|
|
|
|
|
|
|
=item I<samsung_pay> hash |
718
|
|
|
|
|
|
|
|
719
|
|
|
|
|
|
|
If this is a C<samsung_pay> card wallet, this hash contains details about the wallet. |
720
|
|
|
|
|
|
|
|
721
|
|
|
|
|
|
|
=over 8 |
722
|
|
|
|
|
|
|
|
723
|
|
|
|
|
|
|
=item I<samsung_pay> |
724
|
|
|
|
|
|
|
|
725
|
|
|
|
|
|
|
This is an empty hash. |
726
|
|
|
|
|
|
|
|
727
|
|
|
|
|
|
|
=back |
728
|
|
|
|
|
|
|
|
729
|
|
|
|
|
|
|
=item I<type> string |
730
|
|
|
|
|
|
|
|
731
|
|
|
|
|
|
|
The type of the card wallet, one of C<amex_express_checkout>, C<apple_pay>, C<google_pay>, C<masterpass>, C<samsung_pay>, or C<visa_checkout>. An additional hash is included on the Wallet subhash with a name matching this value. It contains additional information specific to the card wallet type. |
732
|
|
|
|
|
|
|
|
733
|
|
|
|
|
|
|
=item I<visa_checkout> hash |
734
|
|
|
|
|
|
|
|
735
|
|
|
|
|
|
|
If this is a C<visa_checkout> card wallet, this hash contains details about the wallet. |
736
|
|
|
|
|
|
|
|
737
|
|
|
|
|
|
|
=over 8 |
738
|
|
|
|
|
|
|
|
739
|
|
|
|
|
|
|
=item I<billing_address> hash |
740
|
|
|
|
|
|
|
|
741
|
|
|
|
|
|
|
Owner's verified billing address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated. |
742
|
|
|
|
|
|
|
|
743
|
|
|
|
|
|
|
When expanded, this is a L<Net::API::Stripe::Address> object. |
744
|
|
|
|
|
|
|
|
745
|
|
|
|
|
|
|
=item I<email> string |
746
|
|
|
|
|
|
|
|
747
|
|
|
|
|
|
|
Owner's verified email. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated. |
748
|
|
|
|
|
|
|
|
749
|
|
|
|
|
|
|
=item I<name> string |
750
|
|
|
|
|
|
|
|
751
|
|
|
|
|
|
|
Owner's verified full name. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated. |
752
|
|
|
|
|
|
|
|
753
|
|
|
|
|
|
|
=item I<shipping_address> hash |
754
|
|
|
|
|
|
|
|
755
|
|
|
|
|
|
|
Owner's verified shipping address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated. |
756
|
|
|
|
|
|
|
|
757
|
|
|
|
|
|
|
When expanded, this is a L<Net::API::Stripe::Address> object. |
758
|
|
|
|
|
|
|
|
759
|
|
|
|
|
|
|
=back |
760
|
|
|
|
|
|
|
|
761
|
|
|
|
|
|
|
=back |
762
|
|
|
|
|
|
|
|
763
|
|
|
|
|
|
|
=head1 API SAMPLE |
764
|
|
|
|
|
|
|
|
765
|
|
|
|
|
|
|
{ |
766
|
|
|
|
|
|
|
"id": "card_fake123456789", |
767
|
|
|
|
|
|
|
"object": "card", |
768
|
|
|
|
|
|
|
"address_city": null, |
769
|
|
|
|
|
|
|
"address_country": null, |
770
|
|
|
|
|
|
|
"address_line1": null, |
771
|
|
|
|
|
|
|
"address_line1_check": null, |
772
|
|
|
|
|
|
|
"address_line2": null, |
773
|
|
|
|
|
|
|
"address_state": null, |
774
|
|
|
|
|
|
|
"address_zip": null, |
775
|
|
|
|
|
|
|
"address_zip_check": null, |
776
|
|
|
|
|
|
|
"brand": "Visa", |
777
|
|
|
|
|
|
|
"country": "US", |
778
|
|
|
|
|
|
|
"customer": null, |
779
|
|
|
|
|
|
|
"cvc_check": null, |
780
|
|
|
|
|
|
|
"dynamic_last4": null, |
781
|
|
|
|
|
|
|
"exp_month": 8, |
782
|
|
|
|
|
|
|
"exp_year": 2020, |
783
|
|
|
|
|
|
|
"fingerprint": "lkavkajndvkdvnj", |
784
|
|
|
|
|
|
|
"funding": "credit", |
785
|
|
|
|
|
|
|
"last4": "4242", |
786
|
|
|
|
|
|
|
"metadata": {}, |
787
|
|
|
|
|
|
|
"name": null, |
788
|
|
|
|
|
|
|
"tokenization_method": null |
789
|
|
|
|
|
|
|
} |
790
|
|
|
|
|
|
|
|
791
|
|
|
|
|
|
|
=head1 HISTORY |
792
|
|
|
|
|
|
|
|
793
|
|
|
|
|
|
|
=head2 v0.1 |
794
|
|
|
|
|
|
|
|
795
|
|
|
|
|
|
|
Initial version |
796
|
|
|
|
|
|
|
|
797
|
|
|
|
|
|
|
=head2 v0.2 |
798
|
|
|
|
|
|
|
|
799
|
|
|
|
|
|
|
Added the method B<address> to make it easy to pass a L<Net::API::Stripe::Address> object or an hash reference to populate automatically the properties I<address_line1>, I<address_line2>, I<address_city>, I<address_zip> and I<address_country> |
800
|
|
|
|
|
|
|
|
801
|
|
|
|
|
|
|
=head1 STRIPE HISTORY |
802
|
|
|
|
|
|
|
|
803
|
|
|
|
|
|
|
=head2 2018-01-23 |
804
|
|
|
|
|
|
|
|
805
|
|
|
|
|
|
|
When being viewed by a platform, cards and bank accounts created on behalf of connected accounts will have a fingerprint that is universal across all connected accounts. For accounts that are not connect platforms, there will be no change. |
806
|
|
|
|
|
|
|
|
807
|
|
|
|
|
|
|
=head1 AUTHOR |
808
|
|
|
|
|
|
|
|
809
|
|
|
|
|
|
|
Jacques Deguest E<lt>F<jack@deguest.jp>E<gt> |
810
|
|
|
|
|
|
|
|
811
|
|
|
|
|
|
|
=head1 SEE ALSO |
812
|
|
|
|
|
|
|
|
813
|
|
|
|
|
|
|
Stripe API documentation: |
814
|
|
|
|
|
|
|
|
815
|
|
|
|
|
|
|
L<https://stripe.com/docs/api/external_account_cards/object>, L<https://stripe.com/docs/connect/payouts> |
816
|
|
|
|
|
|
|
|
817
|
|
|
|
|
|
|
=head1 COPYRIGHT & LICENSE |
818
|
|
|
|
|
|
|
|
819
|
|
|
|
|
|
|
Copyright (c) 2019-2020 DEGUEST Pte. Ltd. |
820
|
|
|
|
|
|
|
|
821
|
|
|
|
|
|
|
You can use, copy, modify and redistribute this package and associated |
822
|
|
|
|
|
|
|
files under the same terms as Perl itself. |
823
|
|
|
|
|
|
|
|
824
|
|
|
|
|
|
|
=cut |