# Apple Wallet Pass Personalization

Adding personalization to an Apple Wallet `loyalty` template creates a pass that prompts the user for relevant personal information when signing up for a rewards program. These endpoints help you manage the personalizable information that you require users to provide when signing up for your loyalty/rewards program.


## Add personalization requirements {#addpersonalizationrequirements}

Adds personalization requirements to a template. When a user attempts to install a pass with personalization requirements, they are first prompted for the `requiredPersonalizationFields` specified in this payload. When the user fills out the information and accepts the terms and conditions (if present), they receive a personalized pass.


[Jump to examples ↓](#addpersonalizationrequirements-examples)

### `POST /template/{templateId}/personalization`

**Security:**

- [httpBasic]({{< ref "/developer/rest-api/wallet/introduction/" >}}#security-httpBasic)
- [oauth2Token]({{< ref "/developer/rest-api/wallet/introduction/" >}}#security-oauth2Token): wtmp

**Path parameters:**

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `templateId` | `string` | Required | The loyalty card template you want to add, modify, or retrieve personalization information for. |

**Request headers:**

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `Api-Revision` | `string` | Required | The particular API revision you want to use. In general, this is `1.2`. Possible values: `1.2` |

**Request body**

**Content-Type:** `application/json`

[Apple Pass personalization requirements]({{< ref "/developer/rest-api/wallet/schemas/template-objects/" >}}#personalizationrequirements)

**Responses**

**`200`** Your personalization requirements have been added to the template.

Response body:

**Content-Type:** `application/json`

[Apple Pass personalization requirements]({{< ref "/developer/rest-api/wallet/schemas/template-objects/" >}}#personalizationrequirements)

**Examples**

*Example request*

```http
POST /v1/template/12345/personalization HTTP/1.1
Content-Type: application/json
Authorization: Basic <Base64 key>
Api-Revision: 1.2

{
  "requiredPersonalizationFields": ["name", "postalCode", "emailAddress", "phoneNumber"
  ],
  "description": "Enter your information to sign up and earn points.",
  "termsAndConditions": "Terms and conditions go here"
}

```

*Response*

```http
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

{
  "requiredPersonalizationFields": ["name", "postalCode", "emailAddress", "phoneNumber"
  ],
  "description": "Enter your information to sign up and earn points.",
  "termsAndConditions": "Terms and conditions go here"
}

```

---

## Delete personalization requirements {#removepersonalizationrequirements}

Removes personalization requirements from a template.

[Jump to examples ↓](#removepersonalizationrequirements-examples)

### `DELETE /template/{templateId}/personalization`

**Security:**

- [httpBasic]({{< ref "/developer/rest-api/wallet/introduction/" >}}#security-httpBasic)
- [oauth2Token]({{< ref "/developer/rest-api/wallet/introduction/" >}}#security-oauth2Token): wtmp

**Path parameters:**

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `templateId` | `string` | Required | The loyalty card template you want to add, modify, or retrieve personalization information for. |

**Request headers:**

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `Api-Revision` | `string` | Required | The particular API revision you want to use. In general, this is `1.2`. Possible values: `1.2` |

**Responses**

**`200`** Your personalization requirements removed from the template.

Response body:

**Content-Type:** `application/json`

[Apple Pass personalization requirements]({{< ref "/developer/rest-api/wallet/schemas/template-objects/" >}}#personalizationrequirements)

**Examples**

*Example request*

```http
DELETE /v1/template/12345/personalization HTTP/1.1
Authorization: Basic <Base64 key>
Api-Revision: 1.2

```

*Response*

```http
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

{
  "requiredPersonalizationFields": ["name", "postalCode", "emailAddress", "phoneNumber"
  ],
  "description": "Enter your information to sign up and earn points.",
  "termsAndConditions": "Terms and conditions go here"
}

```

---

## Get personalization requirements {#getpersonalizationrequirements}

Returns personalization requirements for a template.

[Jump to examples ↓](#getpersonalizationrequirements-examples)

### `GET /template/{templateId}/personalization`

**Security:**

- [httpBasic]({{< ref "/developer/rest-api/wallet/introduction/" >}}#security-httpBasic)
- [oauth2Token]({{< ref "/developer/rest-api/wallet/introduction/" >}}#security-oauth2Token): wtmp

**Path parameters:**

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `templateId` | `string` | Required | The loyalty card template you want to add, modify, or retrieve personalization information for. |

**Request headers:**

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `Api-Revision` | `string` | Required | The particular API revision you want to use. In general, this is `1.2`. Possible values: `1.2` |

**Responses**

**`200`** Your template has the following personalization requirements.

Response body:

**Content-Type:** `application/json`

[Apple Pass personalization requirements]({{< ref "/developer/rest-api/wallet/schemas/template-objects/" >}}#personalizationrequirements)

**Examples**

*Example request*

```http
GET /v1/template/12345/personalization HTTP/1.1
Authorization: Basic <Base64 key>
Api-Revision: 1.2

```

*Response*

```http
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

{
  "requiredPersonalizationFields": ["name", "postalCode", "emailAddress", "phoneNumber"
  ],
  "description": "Enter your information to sign up and earn points.",
  "termsAndConditions": "Terms and conditions go here"
}

```

---

## Update personalization requirements {#updatepersonalizationrequirements}

When updating personalization requirements for a template, you must provide a complete payload. This request overwrites all previous personalization requirements attached to the template; any information you leave out of this request will be removed from the personalization requirements for the template.

[Jump to examples ↓](#updatepersonalizationrequirements-examples)

### `PUT /template/{templateId}/personalization`

**Security:**

- [httpBasic]({{< ref "/developer/rest-api/wallet/introduction/" >}}#security-httpBasic)
- [oauth2Token]({{< ref "/developer/rest-api/wallet/introduction/" >}}#security-oauth2Token): wtmp

**Path parameters:**

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `templateId` | `string` | Required | The loyalty card template you want to add, modify, or retrieve personalization information for. |

**Request headers:**

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `Api-Revision` | `string` | Required | The particular API revision you want to use. In general, this is `1.2`. Possible values: `1.2` |

**Request body**

**Content-Type:** `application/json`

[Apple Pass personalization requirements]({{< ref "/developer/rest-api/wallet/schemas/template-objects/" >}}#personalizationrequirements)

**Responses**

**`200`** Your personalization requirements have been updated for the template.


Response body:

**Content-Type:** `application/json`

[Apple Pass personalization requirements]({{< ref "/developer/rest-api/wallet/schemas/template-objects/" >}}#personalizationrequirements)

**Examples**

*Example request*

```http
PUT /v1/template/12345/personalization HTTP/1.1
Content-Type: application/json
Authorization: Basic <Base64 key>
Api-Revision: 1.2

{
  "requiredPersonalizationFields": ["name", "postalCode", "emailAddress", "phoneNumber"
  ],
  "description": "Enter your information to sign up and earn points.",
  "termsAndConditions": "Terms and conditions go here"
}

```

*Response*

```http
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

{
  "requiredPersonalizationFields": ["name", "postalCode", "emailAddress", "phoneNumber"
  ],
  "description": "Enter your information to sign up and earn points.",
  "termsAndConditions": "Terms and conditions go here"
}

```

---

