Starting point

Finance and receipts
Automatically file expenses from receipt photos
Every receipt photo from Microsoft Outlook, Gmail or the line-of-business mailbox is read, checked against travel policy and submitted as a reimbursement claim in the system of record. Only unreadable shots and amounts outside the agreed limits go to a person; everything else is ready for a decision the same day.
Process architecture
From a receipt photo to an auditable expense claim.
The chain connects the mailbox the company actually uses to policy and the ERP. Azure AI Document Intelligence reads the receipt. Only exceptions land as a card in Microsoft Teams or Google Chat. Posting happens only through the REST API of the system of record.
01Input
Capture the receipt and the trip
Microsoft Graph API or the Gmail API takes the photo or PDF from the shared mailbox and adds the person, travel window and cost centre from the existing environment.
2 Steps
02Process
Read, check, approve if needed
The receipt is extracted and checked for readability and policy. Unclear shots go back to the sender; exceptions go to the person who may approve them.
6 Steps
03Output
Post the claim and file the record
The approved claim sits in the ERP, the sender receives the status, and the receipt plus the decision log sit in the company's storage on the case.
3 Steps
Source01Capture the receipt
Microsoft Graph API or the Gmail API takes every new message in the shared mailbox, including the photo or PDF. Senders stay in Microsoft Outlook or Gmail; no second portal is introduced.Details
Capture the receipt
Microsoft Graph API or the Gmail API takes every new message in the shared mailbox, including the photo or PDF. Senders stay in Microsoft Outlook or Gmail; no second portal is introduced.
- Microsoft Graph API
- SharePoint API
- Load the trip context
Data02Load the trip context
Person, cost centre and open trip are matched from the directory, the calendar and the cost-centre list, so the receipt is never without an owner or a posting account.Details
Load the trip context
Person, cost centre and open trip are matched from the directory, the calendar and the cost-centre list, so the receipt is never without an owner or a posting account.
- Azure AI Document Intelligence
- Mistral OCR
- Dataverse API
- Read the receipt
Action03Read the receipt
Azure AI Document Intelligence reads date, amount, tax and merchant. Gaps are flagged instead of inventing values; the cost type is assigned to the loaded trip.Details
Read the receipt
Azure AI Document Intelligence reads date, amount, tax and merchant. Gaps are flagged instead of inventing values; the cost type is assigned to the loaded trip.
- Power Automate
- Azure Functions
- Microsoft Graph API
- Check readability
Decision04Check readability
Required fields and image quality decide whether the receipt continues. If the amount is missing or the photo is unusable, the case goes back to the sender.Details
Check readability
Required fields and image quality decide whether the receipt continues. If the amount is missing or the photo is unusable, the case goes back to the sender.
- Azure OpenAI GPT
- Anthropic Claude
- AI Builder
- Check the policyReadable
- Request a new copyUnreadable
Approval05Request a new copy
A Microsoft Teams Adaptive Card or the Google Chat API asks for a sharper photo or the missing field. The case waits until the addition arrives in the same mailbox.Details
Request a new copy
A Microsoft Teams Adaptive Card or the Google Chat API asks for a sharper photo or the missing field. The case waits until the addition arrives in the same mailbox.
- Teams Adaptive Cards
- Power Apps
- Read the receipt
Decision06Check the policy
Amount, receipt type and deadline are held against the stored travel policy. Inside the limits the claim continues; above them it needs an approval.Details
Check the policy
Amount, receipt type and deadline are held against the stored travel policy. Inside the limits the claim continues; above them it needs an approval.
- Azure OpenAI GPT
- Anthropic Claude
- AI Builder
- Create the claimWithin policy
- Approve the exceptionNeeds approval
Approval07Approve the exception
A manager or finance decides in Microsoft Teams or Google Chat using the receipt image, the rule reference and the suggested cost centre. The reason is stored with the case.Details
Approve the exception
A manager or finance decides in Microsoft Teams or Google Chat using the receipt image, the rule reference and the suggested cost centre. The reason is stored with the case.
- Teams Adaptive Cards
- Power Apps
- Create the claim
System08Create the claim
The REST API creates the reimbursement claim in the system of record and keeps it current. A replay key prevents a second posting of the same receipt.Details
Create the claim
The REST API creates the reimbursement claim in the system of record and keeps it current. A replay key prevents a second posting of the same receipt.
- Dynamics 365 API
- Azure Service Bus
- Report the status
Result09Report the status
The sender receives the status in Microsoft Outlook, Gmail or chat: accepted, waiting for approval, or returned, each with the next step.Details
Report the status
The sender receives the status in Microsoft Outlook, Gmail or chat: accepted, waiting for approval, or returned, each with the next step.
- Power BI API
- Teams Webhook
- Inform finance
- File the record
Result10Inform finance
Finance sees the posted claim in the overview it already uses. Only backlogs and open approvals are reported in addition; no parallel list is created.Details
Inform finance
Finance sees the posted claim in the overview it already uses. Only backlogs and open approvals are reported in addition; no parallel list is created.
- Power BI API
- Teams Webhook
Result11File the record
Receipt image, extracted fields, rule decision and approval sit in storage on the case. Who decided what, and on which basis, remains auditable.Details
File the record
Receipt image, extracted fields, rule decision and approval sit in storage on the case. Who decided what, and on which basis, remains auditable.
- Power BI API
- Teams Webhook
System landscape
Mailbox and ERP stay where they are today.
- Microsoft
Microsoft Graph API
Möglicher Baustein für die Microsoft-Systemvariante.
- Microsoft
SharePoint API
Möglicher Baustein für die Microsoft-Systemvariante.
- Microsoft
Azure AI Document Intelligence
Möglicher Baustein für die Microsoft-Systemvariante.
- Microsoft
Mistral OCR
Möglicher Baustein für die Microsoft-Systemvariante.
- Microsoft
Dataverse API
Möglicher Baustein für die Microsoft-Systemvariante.
- Microsoft
Power Automate
Möglicher Baustein für die Microsoft-Systemvariante.
- Microsoft
Azure Functions
Möglicher Baustein für die Microsoft-Systemvariante.
- Microsoft
Azure OpenAI GPT
Möglicher Baustein für die Microsoft-Systemvariante.
- Microsoft
Anthropic Claude
Möglicher Baustein für die Microsoft-Systemvariante.
- Microsoft
AI Builder
Möglicher Baustein für die Microsoft-Systemvariante.
- Microsoft
Teams Adaptive Cards
Möglicher Baustein für die Microsoft-Systemvariante.
- Microsoft
Power Apps
Möglicher Baustein für die Microsoft-Systemvariante.
- Microsoft
Dynamics 365 API
Möglicher Baustein für die Microsoft-Systemvariante.
- Microsoft
Azure Service Bus
Möglicher Baustein für die Microsoft-Systemvariante.
- Microsoft
Power BI API
Möglicher Baustein für die Microsoft-Systemvariante.
- Microsoft
Teams Webhook
Möglicher Baustein für die Microsoft-Systemvariante.
- Interfaces in use
Gmail API
In a Google Workspace environment, reads the incoming message including the photo or PDF and writes the status back.
- Interfaces in use
REST API
Controlled handover of the reimbursement claim to the ERP of record, repeatable without a double posting.
- Interfaces in use
Microsoft Teams Adaptive Cards
Collects a resubmission or an approval in Microsoft Teams, directly in the conversation of the person in charge.
- Interfaces in use
Google Chat API
Collects a resubmission or an approval in Google Chat when the workplace is Google Workspace.
- Possible apps & platforms
Microsoft Outlook
Shared mailbox as intake when the workplace is Microsoft 365, unchanged for the sender.
- Possible apps & platforms
Gmail
Shared mailbox as intake when the workplace is Google Workspace, without a second form.
- Possible apps & platforms
Microsoft Teams
Working surface for questions and approvals in a Microsoft 365 environment.
- Possible apps & platforms
Google Drive
Storage for the receipt and the record in a Google Workspace environment, linked to the claim.
- Possible apps & platforms
Microsoft Dynamics 365 Business Central
A possible system of record for the claim, the posting and the reimbursement.
- Possible apps & platforms
DATEV Unternehmen online
Handover of the checked documents to the tax firm when finance already runs there.
Implementation in context
Receipts stop disappearing into private chats.
Nexaluna does not replace the mailbox or the ERP. In a Microsoft 365 environment intake stays Microsoft Outlook, in a Google Workspace environment it stays Gmail, and in a custom environment it stays the line-of-business mailbox or the file drop. Ownership of the claim and the payment stays with the system of record. What is added is the reading of the receipt and the policy check before anyone spends time on it.
What the policy can decide unambiguously is decided automatically: a readable receipt, a known person, an amount inside the limit, no duplicate. Everything else goes as a draft to the sender or to approval. The automation does not decide goodwill.
Receipt images and personal data stay in the company's environment. Only the text needed for matching and checking reaches a model. Every decision records who made it and on which rule. The ERP connection uses the REST API with a key that prevents a double posting.
If the mailbox subscription expires, a catch-up run recovers missed messages so no receipt is lost. Policy changes are maintained in the existing list, not in program code. Which chain applies — Microsoft Graph API, Gmail API or the custom path — is set during setup, not chosen again for every receipt.
Target picture
Every receipt has an owner, a cost centre and a visible status. Inside policy the claim is created without retyping. Exceptions sit with the person who may decide, together with the image and the rule that was applied.
Expected benefits
- Every receipt has an owner and a visible status on the day it arrives.
- Inside policy, amount, date and merchant no longer need to be retyped.
- Exceptions reach the person who may decide, with the image and the rule reference.
- The same meal or the same fuel receipt is not reimbursed twice.
- Receipt, decision and approval sit on the case and can be audited.
- Staff keep the mailbox they already use instead of filling another portal.
Prerequisites to start
- 01A shared mailbox or a clear file drop for travel receipts, with administrator consent in Microsoft Entra ID or the Google domain.
- 02A maintained travel policy with testable limits per receipt type, not only running text.
- 03A documented REST API on the system of record that can create reimbursement claims, including a test environment.
- 04A named person in each department for approvals outside the policy.
- 05Clean cost centres and a mapping of travelling staff to those accounts.
- 06A decision on the region in which receipt text may be processed.
Your next step
Which process costs your team unnecessary time every day?
Give us a short outline. We will tell you honestly where automation is useful—and where it is not.






