> For the complete documentation index, see [llms.txt](https://docs.payments.thalescloud.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.payments.thalescloud.io/transit-digitization/implement-apple-transit/account-based-ticketing-abt/lifecycle-management/park-from-transit-issuer.md).

# Park from Transit Issuer

The issuer-initiated parking workflow can be triggered through one of the following 2 methods:

1. User uses his mobile application.
2. Directly from Transit Issuer system following business rules.

In both cases, D1 Transit solution receives a request from Transit Issuer system.

This section provides an overview of the workflow, including detailed steps, sequence diagrams, and potential error scenarios.

### Workflow <a href="#workflow" id="workflow"></a>

Below are the high level steps of the issuer initiated parking workflow:

1. **Card Removal**: Transit issuer initiates the removal of the card from user's device.
2. **Unlink Card**: D1 Transit notifies Apple that the transit card needs to be removed from user's device.
3. **Parking Outcome**: Apple sends a notification to D1 Transit with the outcome of the parking workflow.

### Sequence diagram <a href="#sequence-diagram" id="sequence-diagram"></a>

#### Card Removal <a href="#card-removal" id="card-removal"></a>

The Transit issuer instructs D1 Transit to remove the card from specified device.

#### Unlink Card <a href="#unlink-card" id="unlink-card"></a>

Upon receiving a request from D1 Transit to delete card from a device, Apple server will initiate a removal of the associated pass.

#### Parking Outcome <a href="#parking-outcome" id="parking-outcome"></a>

After the parking process is completed on the Apple side, an eventNotification is sent to D1 Transit, providing the outcome of the parking workflow.

If the event is **lifecycleOutcomeSuccess**, D1 Transit will notify Transit Issuer & delete the digital card from its system and allow the card to be provisioned on the same or another device associated with the same iCloud account.

**Error Scenarios**

**Parking Failed**

If parking is unsuccessful, Apple informs D1 Transit via an eventNotification with the eventType parameter set to lifeCycleOutcomeFailure. The Transit Issuer can attempt to retry the parking process.

**Device Offline**

As the request is not device-initiated, there is no certainty that the device will be online. In such cases, the request to delete the card may never reach the device. For example, the device may be in airplane mode. Therefore, it is strongly recommended to put the provisioned digital cards to deny list to prevent its use for transit.

Transit Issuer must ensure that the deny list has been fully propagated across all relevant readers before allowing the card to be provisioned on another device. This step is critical to prevent the same transit card from being used concurrently on multiple devices and avoiding potential misuse.

**No notification from Apple**

If D1 Transit platform does not receive an eventNotification within a defined timeout period after the managePass request, a getStatus request will be sent to verify the state of the provisioning bundle.

* If the response indicates an active state, parking is incomplete. D1 platform notifies the Transit Issuer, so the card instance can be put in deny-list.
* If the response header contains an HTTP 404 status code, it confirms that the card has been successfully deleted and no longer exists on Apple servers, i.e. parking was successful.

In both cases, it should be possible to provision the card on another device associated with the same iCloud account.

**Delayed Event Notification request from Apple**

If D1 Transit platform receives an eventNotification from Apple after the predefined timeout period (e.g. the device comes back online after an extended period), D1 Transit deletes the digital card from its system and notifies the Transit Issuer that the parking was successful. Transit issuer removes the card instance from the deny list.

<figure><img src="/files/qrktiYreWLtghwKYX8VR" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.payments.thalescloud.io/transit-digitization/implement-apple-transit/account-based-ticketing-abt/lifecycle-management/park-from-transit-issuer.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
