# User Presentment
source: https://developer.mastercard.com/pclo-presentment/documentation/use-cases/user-presentment/index.md

## Retrieve Access Token {#retrieve-access-token}

When a cardholder logs in to their Offers account, a user session token or access token is created, which is used to authenticate and keep track of the cardholder's interactions with their Offers program. The token must be called prior to any other API calls for the specified cardholder. The default expiration time of the access token is 60 minutes, but it could be configured based on a customer request. The access token is then used in the subsequent user presentment API requests.

### Sequence diagram {#sequence-diagram}

Diagram access-tokens

### Example {#example}

The example sequence shows the use of the **Access Token API** POST request to get the access token for the user.


API Reference: `GET /access-tokens`

<br />

## Retrieve User Offers {#retrieve-user-offers}

A cardholder can get a list of offers they were assigned based on their spend history. The offers are returned along with applicable offer content such as:

* Marketing content
* Terms and conditions
* Logos
* Images
* Translations

### Sequence diagram {#sequence-diagram-1}

Diagram useroffers

### Example {#example-1}

The example sequence shows the use of the following APIs:

1. (Required) **Access Token API** POST request to get the access token for the user and use it in the Offers API GET request.

2. **Offers API** GET request to retrieve the offers that are matched to the cardholder.


   API Reference: `GET /offers`

   <br />

## Retrieve Filtered Offers {#retrieve-filtered-offers}

A cardholder can filter the list of offers they were assigned based on criteria provided. The offers are returned along with all the associated marketing content, terms and conditions, logos, images, and translations.

### Sequence diagram {#sequence-diagram-2}

Diagram filteruseroffers

### Example {#example-2}

The example sequence shows the use of the following APIs:

1. (Required) **Access Token API** POST request to get the access token for the user and use it in the Offers API GET request.

2. **Filter User Offers** POST request to retrieve the offers that are matched to the cardholder based on filter criteria provided.


   API Reference: `GET /offers/filters`

   <br />

## Look up Offers by Geo Location {#look-up-offers-by-geo-location}

When planning for future travel, cardholders can enter search criteria such as a city name. Offers for Publishers provides lookup capabilities to provide geographical coordinates, which can be used to filter offers in another location, using the Retrieve Filtered Offers use case.

### Sequence diagram {#sequence-diagram-3}

Diagram updatedgeolocations

### Example {#example-3}

The example sequence shows the use of the following APIs:

1. (Required) **Access Token API** POST request to get the access token for the user and use it in the Offers API GET request.
2. **Geo Locations** GET request to retrieve the geographical coordinates based on keywords such as a city name.
   API Reference: `GET /geo-locations`

3. **Filter User Offers** POST request to retrieve the offers that are matched to the cardholder based on filter criteria provided.
   API Reference: `GET /offers/filters`

## Activate an Offer {#activate-an-offer}

A cardholder can activate a given offer and make it available for redemption.
Note: Not all programs require an offer to be activated. This is determined during program implementation and Mastercard will consult with the Publisher if offers require an activation for use.

### Sequence diagram {#sequence-diagram-4}

Diagram useractivations

### Example {#example-4}

The example sequence shows the use of the following APIs:

1. (Required) **Access Token API** POST request to get the access token for the user and use it in the Offers API GET request and the Activations API POST request.

2. **Offers API** GET request to retrieve the offers that are matched to the cardholder and use the offer ID of one of the user matched offers in the Activations API POST request.


   API Reference: `GET /offers`

   <br />

3. **Activations API** POST request to activate an offer and enable that offer for use.


   API Reference: `GET /activations`

   <br />

## Retrieve Offer Details {#retrieve-offer-details}

A cardholder can retrieve details for the requested offer with information such as category, associated merchant, merchant location, and more.

### Sequence diagram {#sequence-diagram-5}

Diagram useroffer

### Example {#example-5}

The example sequence shows the use of the following APIs:

1. (Required) **Access Token API** POST request to get the access token for the user and use it in the Offer API GET request.

2. **Offer API** GET request to retrieve detailed information about an offer.


   API Reference: `GET /offers/{offer_id}`

   <br />

## Retrieve Rewards {#retrieve-rewards}

A cardholder can retrieve an itemized view of rewards they have earned based on their specified search criteria. A reward is defined as a value or benefit earned by eligible cardholders as a result of redeeming an offer. Rewards may include cashback, discounts, points, or other forms of compensation to the consumer determined by the terms of the offer.

### Sequence diagram {#sequence-diagram-6}

Diagram useradjustments

### Example {#example-6}

The example sequence shows the use of the following APIs:

1. (Required) **Access Token API** POST request to get the access token for the user and use it in the Adjustments API GET request.

2. **Adjustments API** GET request to retrieve the adjustments for the user.


   API Reference: `GET /adjustments`

   <br />

## Retrieve User Savings {#retrieve-user-savings}

A cardholder can access the total savings they have earned from the offers program, along with the total cash back or points accumulated from redeemed offers. Savings are displayed as a comprehensive total covering the duration of the cardholder's participation in the program.

### Sequence diagram {#sequence-diagram-7}

Diagram usersavings

### Example {#example-7}

The example sequence shows the use of the following APIs:

1. (Required) **Access Token API** POST request to get the access token for the user and use it in the User Savings API GET request.

2. **User Savings API** GET request to retrieve the accumulated and potential savings for a user.


   API Reference: `GET /savings`

   <br />

