-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvisa-digital-enablement.yml
More file actions
415 lines (415 loc) · 15.3 KB
/
Copy pathvisa-digital-enablement.yml
File metadata and controls
415 lines (415 loc) · 15.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
openapi: 3.0.1
info:
title: Visa Digital Enablement Lite App
description: >-
The Visa Digital Enablement (VDE) Lite App is a standalone, white-label
solution that enables cardholders to push card credentials into Apple Pay
(for iOS users) or Google Wallet (for Android users) without the need to
download a client's mobile app. This efficient user experience facilitates
quick and seamless execution of targeted tasks like provisioning to a
digital wallet, thereby enabling immediate use of the card.
version: '1'
servers:
- url: https://sandbox.api.visa.com
description: Sandbox server
security: []
tags:
- name: URL Generation API
description: URL Generation API
paths:
/inapp/provision/appclip/url:
post:
tags:
- URL Generation API
summary: Generate VDE Lite app URL
description: Create app clip or instant app URL for given payload.
parameters:
- $ref: '#/components/parameters/clientId'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateUrlRequest'
examples:
Card ID:
summary: Card ID
value:
emailLookupEnable: true
payload:
cardId: x123&
cardIdMetadata:
- clientId: C2
- customerId: C122
cardIdProvider: FWD
source: X123
user:
lastName: Doe
firstName: John
phoneNumber: '+13352226060'
locale: en-US
email: jdoe@visa.com
appId: d071aeff-9a39-c1b3-4482-1cbb9d300f01
Using PAN:
summary: Using PAN
value:
emailLookupEnable: true
payload:
expirationYear: '2024'
nameOnAccount: John Doe
cardType: DEBIT
source: X123
billingAddress:
phoneNumber: '0015555551234'
city: Rocklin
countryCode: US
postalCode: '94404'
addressLine1: 933 Anvil Cir
addressLine2: Test
addressLine3: Street
stateProvinceCode: CA
expirationMonth: '11'
cardBrand: VISA
accountNumber: '4321432112341234'
user:
firstname: John
phoneNumber: '0015555551234'
locale: en-US
email: Jdoe@email.com
lastname: Doe
appId: d071aeff-9a39-c1b3-4482-1cbb9d300f01
required: true
responses:
'201':
description: Success Response
content:
application/json:
schema:
$ref: '#/components/schemas/CreateUrlResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'503':
description: Service Unavailable
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
x-operationVersions:
- label: v1 - Latest
operationPointer: '#/paths/~1inapp~1provision~1appclip~1url/post'
default: false
x-hideTryIt: true
components:
schemas:
BadRequestResponse:
required:
- httpStatus
- message
- reason
type: object
properties:
reason:
type: string
description: Error Code for the error condition.
message:
type: string
description: >-
Message describing the error condition with additional information
wherever applicable.
requestId:
type: string
description: Request unix timestamp, for debugging purpose.
httpStatus:
type: string
description: HTTP Status code
example: '400'
correlationId:
type: string
description: Request trace id, for debugging purpose.
errorMessages:
type: array
items:
type: object
properties:
message:
type: string
description: Detailed error message if any.
location:
type: string
description: Detailed error location if any.
attribute:
type: string
description: Detailed error attribute if any.
CreateUrlRequest:
required:
- appId
type: object
properties:
appId:
type: string
description: Issuer application Id.
example: d071aeff-9a39-c1b3-4482-1cbb9d300f01
payload:
oneOf:
- required:
- accountNumber
- cardBrand
- cardType
- expirationMonth
- expirationYear
- nameOnAccount
type: object
properties:
user:
type: object
properties:
email:
type: string
description: >-
The users email address, which will be used to identify
the users existing account or user profile or to
establish a new account or user profile (e.g.
JOHNSMITH@email.com).
locale:
type: string
description: >-
Locale code (en-US)- It helps to identify the locale to
be selected for email notifications.
lastname:
type: string
description: The users Last Name (e.g. SMITH).
firstname:
type: string
description: The users First Name (e.g. JOHN).
phoneNumber:
type: string
description: >-
Cardholder phone number including country code, without
spaces and special characters (e.g. 0016503334444).
source:
type: string
description: >-
Optional for Single-Use clients. Required for
Multi-Use/Channel Partner clients.
cardType:
type: string
description: 'Valid values are: DEBIT, CREDIT, PREPAID.'
cardBrand:
type: string
description: 'Valid values are: VISA, MC.'
accountNumber:
type: string
description: Full card number.
nameOnAccount:
type: string
description: Full name on the card (Must use UTF-8 characters).
billingAddress:
required:
- addressLine1
- city
- countryCode
- phoneNumber
- postalCode
- stateProvinceCode
type: object
properties:
city:
maxLength: 100
type: string
description: >-
City of the billing address (e.g. New York), no special
characters.
postalCode:
type: string
description: >-
U.S.: 5-digit numeric value (e.g. 94100). Canada:
6-digit alphanumeric value (e.g. M4B1B3). Other
countries: 5-16 digit alphanumeric value without special
characters.
countryCode:
type: string
description: >-
Must be in ISO 3166-1 alpha-2 or ISO 3166-1 alpha-3 or
ISO 3-digit numeric format (Recommend ISO 3166-1 alpha-2
format, e.g. US).
phoneNumber:
type: string
description: >-
Cardholder phone number including country code, without
spaces and special characters (e.g. 0016503334444).
addressLine1:
maxLength: 256
type: string
description: >-
Line 1 of the billing address (Must use UTF-8
characters)
addressLine2:
maxLength: 256
type: string
description: >-
Line 2 of the address, which usually corresponds to
apartment, suite, etc. (Must use UTF-8 characters)
addressLine3:
maxLength: 256
type: string
description: Line 3 of the address (Must use UTF-8 characters)
stateProvinceCode:
type: string
description: >-
Must be in ISO 3166-2 format, alphabetic value with max
length of 3 characters, with no dashes or spaces.
expirationYear:
type: string
description: Year when the card is set to expire (e.g. 2023).
expirationMonth:
type: string
description: Month when the card is set to expire (e.g. 02 for Feb).
description: With PAN info
- required:
- cardId
- cardIdProvider
type: object
properties:
user:
type: object
properties:
email:
type: string
description: >-
The users email address, which will be used to identify
the users existing account or user profile or to
establish a new account or user profile (e.g.
JOHNSMITH@email.com).
locale:
type: string
description: >-
Locale code (en-US)- It helps to identify the locale to
be selected for email notifications.
lastname:
type: string
description: The users Last Name (e.g. SMITH).
firstname:
type: string
description: The users First Name (e.g. JOHN).
phoneNumber:
type: string
description: >-
Cardholder phone number including country code, without
spaces and special characters (e.g. 0016503334444).
cardId:
type: string
description: Card Identifier/Card ID.
source:
type: string
description: >-
Optional for Single-Use clients. Required for
Multi-Use/Channel Partner clients.
cardIdMetadata:
type: array
items:
type: object
properties:
clientId:
type: string
description: >-
Client information that can be used to resolve Card
ID. Information will be passed as-is to Card ID
provider. Conditional logic based on Card ID Provider:
FWD Not Applicable; VUCE Required; Issuer Client
ID value from VUCE API DCP Onboarding configuration
(Note: There are different values for Sandbox/CERT and
Production); VBR Not Applicable.
customerId:
type: string
description: >-
Client information that can be used to resolve Card
ID. Information will be passed as-is to Card ID
provider who can resolve the card. Conditional logic
based on Card ID Provider: FWD Not Applicable; VUCE
Required for Multi-Use/Channel Partners clients
(unless Client ID is provided); VBR Not Applicable.
cardIdProvider:
type: string
description: >-
Provider who can resolve the Card ID to the actual card
account data. Valid Values are: FWD, VUCE, VBR.
description: With Card Id Request
emailLookupEnable:
type: boolean
description: Enable search by email.
example: true
CreateUrlResponse:
type: object
properties:
url:
type: string
description: URL generated
example: https://domain.visa.com/dlink/push?payload=abc
notified:
type: boolean
description: Notification status if enabled. By default
example: false
ErrorResponse:
required:
- httpStatus
- message
- reason
type: object
properties:
reason:
type: string
description: Error Code for the error condition.
message:
type: string
description: >-
Message describing the error condition with additional information
wherever applicable.
requestId:
type: string
description: Request unix timestamp, for debugging purpose.
httpStatus:
type: string
description: HTTP Status code
correlationId:
type: string
description: Request trace id, for debugging purpose.
responses: {}
parameters:
clientId:
name: x-client-id
in: header
description: VDP client ID via Service Context
required: true
explode: false
schema:
type: string
example: 86da0f74-19f0-4a20-9dde-3e83dfa6bf83
examples: {}
requestBodies: {}
headers: {}
callbacks: {}
x-tagGroups:
- name: API Reference
tags:
- URL Generation API