# Expense Management Integration Flow
source: https://developer.mastercard.com/transaction-notifications/documentation/use-case-expense-mangement/index.md

Transaction Notifications enables systems to populate expense reports with real-time transaction data. This removes the need to save and submit receipts and enables systems to flag out-of-policy purchases and notify employees automatically.

![Header image showing a real-time transaction notification on a mobile device](https://static.developer.mastercard.com/content/transaction-notifications/img/transaction_detected_header_2x.webp)

On average, companies with employees who file expense reports experience:
19%

**percent of expense reports with error**

<https://www.gbta.org/how-much-do-expense-reports-really-cost-a-company/>
20 min

**minutes to complete one expense report**

<https://www.gbta.org/how-much-do-expense-reports-really-cost-a-company/>
18 min

**minutes spent correcting an incorrect expense report**

<https://www.gbta.org/how-much-do-expense-reports-really-cost-a-company/>

## Consumer Experience {#consumer-experience}

Your app can use Transaction Notifications to prompt employees in real time --- for example, to upload a receipt, select meal attendees, or flag a policy violation at the time of purchase. The following table shows how an expense management app might use notifications across a business trip:

| Event                                               | Potential Experience                                                                                                                                                                                                                                       |
|:----------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| PRE-TRIP Flight booked directly with corporate card | ![Report Created](https://static.developer.mastercard.com/content/transaction-notifications/img/report_created_2x.webp) ![Compliance Alert](https://static.developer.mastercard.com/content/transaction-notifications/img/compliance_alert_flight_2x.webp) |
| DURING-TRIP Employee pays for their cab             | ![New Transaction](https://static.developer.mastercard.com/content/transaction-notifications/img/new_transaction_2x.webp)                                                                                                                                  |
| DURING-TRIP An unauthorized purchase is made        | ![Compliance Alert](https://static.developer.mastercard.com/content/transaction-notifications/img/compliance_alert_purchase_2x.webp)                                                                                                                       |
| DURING-TRIP Abnormally expensive dinner             | ![Near Daily Allowance](https://static.developer.mastercard.com/content/transaction-notifications/img/near_daily_allowance_2x.webp)                                                                                                                        |
| POST-TRIP Expense report review and submission      | ![Close Your Trip](https://static.developer.mastercard.com/content/transaction-notifications/img/close_your_trip_2x.webp)                                                                                                                                  |

## Experience Guide {#experience-guide}

The following experience design guide shows best practices for using Transaction Notifications in an expense management app. The flow uses a sample customer, ExpenseCo, and includes both desktop and mobile screens.

## How It Works {#how-it-works}

Before you can receive notifications, enroll cardholders through [Consent Management \& Enrollment](https://developer.mastercard.com/consent-management/documentation/) and store the returned `cardReference`. You can enroll cards individually or in bulk.

![Diagram showing the expense management notification flow from card enrollment to real-time notification delivery](https://static.developer.mastercard.com/content/transaction-notifications/img/howitworks_2x.webp)

### Actors {#actors}

|                Actor                 |                               Role                                |
|--------------------------------------|-------------------------------------------------------------------|
| Cardholder                           | Corporate employee making a purchase with an enrolled card        |
| Expense management app               | Partner application receiving notifications and managing expenses |
| Mastercard                           | Processes the transaction and sends the notification              |
| Consent Management \& Enrollment API | Handles card enrollment and consent                               |

### Preconditions {#preconditions}

* The cardholder's card is enrolled using [Consent Management \& Enrollment](https://developer.mastercard.com/consent-management/documentation/) and a card reference is stored.
* The partner's webhook endpoint is registered and secured with MTLS.
* The partner's application is configured to receive transaction notifications.

### Outcome {#outcome}

The expense management app receives a real-time transaction notification and can prompt the cardholder to categorize or annotate the expense at the point of purchase.

### Flow {#flow}

1. Cardholder makes a purchase with their enrolled corporate card.
2. Mastercard sends a transaction notification to your webhook endpoint.
   API Reference: `POST /notifications`

3. Your app matches the `cardReference` to the cardholder and creates or updates an expense entry.
4. Your app prompts the cardholder to add details (receipt, category, attendees) based on company policy.
5. When clearing data is available, use the [Search Clearing Transactions](https://developer.mastercard.com/transaction-notifications/documentation/use-cases/search-clearing-transactions/index.md) endpoint to retrieve the final transaction amount and reconcile the expense using `financialNetworkCode` + `referenceNumber` + `settlementDate`.
   API Reference: `POST /notifications/transactions/search`

## Next Steps {#next-steps}

* [View the full Open API specification](https://developer.mastercard.com/transaction-notifications/documentation/api-reference/index.md)
* [Review the API's error responses](https://developer.mastercard.com/transaction-notifications/documentation/codes-and-formats/index.md)
