# Visa Digital Enablement Lite App
The VDE Lite App allows quick card provisioning to Apple Pay and Google Wallet using App Clip (iOS) and Instant App (Android) technology.

## Version: 1

### Servers

| URL | Description |
| --- | ----------- |
| https://sandbox.api.visa.com | Sandbox server |

---
## URL Generation API
URL Generation API

### [POST] /inapp/provision/appclip/url
**Generate VDE Lite app URL**

Create app clip or instant app URL for given payload.

#### Parameters

| Name | Located in | Description | Required | Schema | Explode |
| ---- | ---------- | ----------- | -------- | ------ | ------- |
| x-client-id | header | VDP client ID via Service Context | Yes | string | No |

#### Request Body

| Required | Schema |
| -------- | ------ |
|  Yes | **application/json**: { **"appId"**: string, **"payload"**: { **"user"**: { **"email"**: string, **"locale"**: string, **"lastname"**: string, **"firstname"**: string, **"phoneNumber"**: string }, **"source"**: string, **"cardType"**: string, **"cardBrand"**: string, **"accountNumber"**: string, **"nameOnAccount"**: string, **"billingAddress"**: { **"city"**: string, **"postalCode"**: string, **"countryCode"**: string, **"phoneNumber"**: string, **"addressLine1"**: string, **"addressLine2"**: string, **"addressLine3"**: string, **"stateProvinceCode"**: string }, **"expirationYear"**: string, **"expirationMonth"**: string } or { **"user"**: { **"email"**: string, **"locale"**: string, **"lastname"**: string, **"firstname"**: string, **"phoneNumber"**: string }, **"cardId"**: string, **"source"**: string, **"cardIdMetadata"**: [ { **"clientId"**: string, **"customerId"**: string } ], **"cardIdProvider"**: string }, **"emailLookupEnable"**: boolean }<br> |

#### Responses

| Code | Description | Schema |
| ---- | ----------- | ------ |
| 201 | Success Response | **application/json**: { **"url"**: string, **"notified"**: boolean }<br> |
| 400 | Bad Request | **application/json**: { **"reason"**: string, **"message"**: string, **"requestId"**: string, **"httpStatus"**: string, **"correlationId"**: string, **"errorMessages"**: [ { **"message"**: string, **"location"**: string, **"attribute"**: string } ] }<br> |
| 401 | Unauthorized | **application/json**: { **"reason"**: string, **"message"**: string, **"requestId"**: string, **"httpStatus"**: string, **"correlationId"**: string }<br> |
| 403 | Forbidden | **application/json**: { **"reason"**: string, **"message"**: string, **"requestId"**: string, **"httpStatus"**: string, **"correlationId"**: string }<br> |
| 500 | Internal Server Error | **application/json**: { **"reason"**: string, **"message"**: string, **"requestId"**: string, **"httpStatus"**: string, **"correlationId"**: string }<br> |
| 503 | Service Unavailable | **application/json**: { **"reason"**: string, **"message"**: string, **"requestId"**: string, **"httpStatus"**: string, **"correlationId"**: string }<br> |

---
### Schemas

#### BadRequestResponse Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| reason | string | Error Code for the error condition. | Yes |
| message | string | Message describing the error condition with additional information wherever applicable. | Yes |
| requestId | string | Request unix timestamp, for debugging purpose. | No |
| httpStatus | string | HTTP Status code<br>*Example:* `"400"` | Yes |
| correlationId | string | Request trace id, for debugging purpose. | No |
| errorMessages | [ { **"message"**: string, **"location"**: string, **"attribute"**: string } ] |  | No |

#### CreateUrlRequest Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| appId | string | Issuer application Id.<br>*Example:* `"50c7e5ac-1e75-4faa-9a27-9882592eff43"` | Yes |
| payload | { **"user"**: { **"email"**: string, **"locale"**: string, **"lastname"**: string, **"firstname"**: string, **"phoneNumber"**: string }, **"source"**: string, **"cardType"**: string, **"cardBrand"**: string, **"accountNumber"**: string, **"nameOnAccount"**: string, **"billingAddress"**: { **"city"**: string, **"postalCode"**: string, **"countryCode"**: string, **"phoneNumber"**: string, **"addressLine1"**: string, **"addressLine2"**: string, **"addressLine3"**: string, **"stateProvinceCode"**: string }, **"expirationYear"**: string, **"expirationMonth"**: string } or { **"user"**: { **"email"**: string, **"locale"**: string, **"lastname"**: string, **"firstname"**: string, **"phoneNumber"**: string }, **"cardId"**: string, **"source"**: string, **"cardIdMetadata"**: [ { **"clientId"**: string, **"customerId"**: string } ], **"cardIdProvider"**: string } |  | No |
| emailLookupEnable | boolean | Enable search by email.<br>*Example:* `true` | No |

#### CreateUrlResponse Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| url | string | URL generated<br>*Example:* `"https://domain.visa.com/dlink/push?payload=abc"` | No |
| notified | boolean | Notification status if enabled. By default<br>*Example:* `false` | No |

#### ErrorResponse Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| reason | string | Error Code for the error condition. | Yes |
| message | string | Message describing the error condition with additional information wherever applicable. | Yes |
| requestId | string | Request unix timestamp, for debugging purpose. | No |
| httpStatus | string | HTTP Status code | Yes |
| correlationId | string | Request trace id, for debugging purpose. | No |
