How to Extract Invoice Data From PDF or Image Using Power Apps and Power Automate

Recently, while working on an Expense Claim application in Power Apps, I noticed one common problem faced by employees and finance teams.

Whenever users submitted an expense claim, they had to manually enter all invoice details, such as:

  • Vendor name
  • Invoice date
  • Tax amount
  • Total amount
  • Bank details
  • Invoice line items

Even though all these details were already available inside the invoice PDF or image, users still had to type everything manually. This process was time-consuming and sometimes led to typing errors or incorrect data entry.

The client wanted a smarter solution.

They asked:

“Can users simply upload the invoice and let the system automatically fill most of the fields?”

That is when I built this Invoice Processing solution using Power Apps, Power Automate, AI Builder, and SharePoint.

In this solution, the user uploads an invoice file, such as a PDF or image, then clicks the Process Invoice button. Power Automate automatically extracts the invoice details using AI Builder and sends the extracted data back to Power Apps.

The best part is that users no longer need to manually enter all invoice details. Most of the fields are automatically populated from the uploaded invoice. Users can simply review the extracted information, make changes if needed, and then save the final data into SharePoint lists.

This not only improves the user experience but also reduces manual effort and helps prevent data entry errors.

Business Requirement

The main requirement is:

A user should be able to upload an invoice file in Power Apps. The invoice can be a PDF, JPG, JPEG, PNG, or GIF file. After clicking the Process Invoice button, Power Automate should extract all invoice details using AI Builder and return them to Power Apps.

How to Extract Data from PDF with Power Automate

The user should then be able to:

Extract Data From a PDF With Power Automate

Another important aspect of this solution is that the entire application is built with a responsive layout in Power Apps. I used responsive containers, dynamic width and height formulas, and flexible layouts so that the application works properly across desktop, tablet, and mobile devices.

SharePoint Lists Used in This Solution

For this solution, I created two SharePoint lists:

  1. Extracted Invoice Data
  2. Invoice Items

1. Extracted Invoice Data SharePoint List

This is the main SharePoint list where invoice header-level details are stored.

Column NameData Type
TitleSingle line of text
Invoice DateDate and Time
Due DateDate and Time
Vendor NameSingle line of text
Vendor AddressMultiple lines of text
Customer NameSingle line of text
Customer AddressMultiple lines of text
SubtotalSingle line of text
Tax AmountSingle line of text
Tax PercentageSingle line of text
Total AmountSingle line of text
CurrencySingle line of text
Item CountSingle line of text
Bank NameSingle line of text
Account NumberSingle line of text
IFSC CodeSingle line of text
UPI IDSingle line of text
Automatically Extract Invoice Data from PDF to SharePoint

The Title column can store the invoice number or a generated invoice reference number.

2. Invoice Items SharePoint List

This list stores the line item details extracted from the invoice.

Column NameData Type
TitleSingle line of text
NameSingle line of text
QuantitySingle line of text
RateSingle line of text
AmountSingle line of text

The Title column can be used to store the invoice number or invoice reference ID, so that each item can be connected with the main invoice record.

Extract Invoice from PDF Power Automate

Create a Power Automate Flow to Extract Data from PDF Invoices

To extract invoice details from the uploaded PDF or image, I created a Power Automate flow. This flow is triggered from Power Apps when the user clicks the Process Invoice button.

In this tutorial, I am not going to explain the complete step-by-step process for creating the AI Builder invoice extraction flow, because I have already explained that in detail in this article:

Extract Data from PDF Invoices Automatically Using Power Automate

In this solution, the flow contains three main actions:

When Power Apps calls a flow (V2)

Run a prompt

Respond to a Power App or flow
Create a Power Automate Flow to Extract Data from PDF Invoices

The uploaded invoice file is passed from Power Apps to Power Automate. Then, the Run a prompt action reads the invoice content and extracts key details, including the invoice date, vendor name, subtotal, tax amount, total amount, bank details, and line items.

Finally, the extracted values are returned back to Power Apps using the Respond to a Power App or flow action. Once the response is received, all extracted invoice fields are displayed in Power Apps, allowing the user to review and modify them before saving the data to SharePoint.

Build the Power Apps Extracted Invoice Data

After creating the Power Automate flow, I created a Power Apps screen where users can upload the invoice file.

In this screen, I used an Attachment control. This control allows users to select and upload an invoice file from their system. In this application, the user can upload only one invoice file at a time.

The uploaded file can be:

  • PDF
  • JPG
  • JPEG
  • PNG
  • GIF

Once the invoice is selected, the file name is displayed inside the attachment control. In my example, I uploaded a PDF invoice named INV-2026-001.pdf.

I also added two buttons:

  • Clear
  • Process an Invoice

The Clear button is used to remove the selected invoice from the attachment control.

Reset(attachInvoice)

The Process an Invoice button is used to call the Power Automate flow. This button sends the uploaded invoice file to the flow, where the invoice details are extracted and returned back to Power Apps.

This is the Power FX code where I am calling the Power Automate flow:

Set(
            varExtractedData,
            invoiceProcess.Run(
                {
                    file: {
                        name: First(attach.Attachments).Name,
                        contentBytes: First(attach.Attachments).Value
                    }
                }
            )
        );
Extract Invoice Details With Power Automate And AI Builder

In this solution, the attachment control is mainly used to pass the uploaded invoice file from Power Apps to Power Automate for invoice extraction.

After processing the invoice, the extracted data is displayed on the Extracted Invoice Data screen.

On this screen, I used a Form control to display the main invoice details. These fields are automatically populated from the uploaded invoice file, such as invoice number, invoice date, due date, vendor details, customer details, subtotal, tax amount, total amount, currency, and bank information.

Use invoice processing in Power Apps - AI Builder

Below the form, I added an Invoice Items section. For this, I used a repeating table concept in a gallery to display the invoice line items extracted from the invoice. Each row contains the item description, quantity or hours, rate, and amount.

Extract Invoice Data From PDF or Image Power Apps

The user can review the extracted data and make changes if required. If the invoice has an extra item, the user can click the plus (+) icon to add a new row. If any item is not required, the user can remove it using the delete icon.

Build the Power Apps Extracted Invoice Data

Finally, I added two buttons at the bottom of the screen:

  • Submit: Saves the invoice header data into the Extracted Invoice Data SharePoint list and saves the invoice line items into the Invoice Items SharePoint list.
  • Clear: Clears the current invoice data and resets the screen for a new invoice.
Extract Table Data from PDF files in Power Automate

This is the Submit button Power FX code:

SubmitForm(Form3_2);

ForAll(
    galItems_2.AllItems,
    Patch(
        'Invoice Items',
        Defaults('Invoice Items'),
        {
            Title: First(colInvoiceData).Title,
            Name: txtName.Text,
            Quantity: Value(numQty.Value),
            Rate: Value(numRate.Value),
            Amount: Value(numAmount.Value)
        }
    )
);

Notify(
    "Your Order Has Been Submitted Successfully",
    NotificationType.Success
);
Clear(colInvoiceData);Clear(colInvoiceItems);
Navigate('Attachment Uplode Screen',ScreenTransition.Cover);

Test the Application

After completing the Power Apps screen and the Power Automate flow, the next step is to test the entire invoice-processing application.

First, upload an invoice file using the attachment control. In this solution, the application supports PDF and image files such as JPG, JPEG, PNG, and GIF.

Invoice processing prebuilt AI model

After selecting the invoice file, click the Process an Invoice button. This button calls the Power Automate flow and sends the uploaded invoice file for processing.

Users can also remove the selected invoice file using the Clear button before processing another invoice.

In this application, only supported invoice file types can be uploaded, such as PDF, JPG, JPEG, PNG, and GIF.

If the user selects an unsupported file type, such as a Word document (.docx), the application displays a notification that the selected file type is not supported.

how to extract data or text from the pdf in the power automate flow

Once the flow runs successfully, AI Builder extracts the invoice details and returns the response to Power Apps. Then, all extracted invoice fields are automatically populated on the screen.

The user can then:

  • Review the extracted invoice details
  • Modify incorrect values if required
  • Add additional invoice items
  • Remove unnecessary invoice items
Extract Data From PDFs and Images With GPT in Power Automate

After verifying the information, click the Submit button to save the data in the SharePoint lists.

The invoice header information is stored in the Extracted Invoice Data list, and all invoice line items are stored in the Invoice Items list.

Extract Invoice Data From PDF or Image Using Power Apps and Power Automate

This way, we can extract the invoice data in Power Automate, modify it in Power Apps, and then store it in a SharePoint list.

Conclusion

In this tutorial, we learned how to build an invoice processing application using Power Apps, Power Automate, AI Builder, and SharePoint.

The user uploads an invoice file from Power Apps, Power Automate extracts the invoice data using AI Builder, and the extracted values are returned to Power Apps. The user can review, edit, and finally submit the invoice data. Once submitted, the invoice header details are saved into the Extracted Invoice Data SharePoint list, and invoice line items are saved into the Invoice Items SharePoint list.

Also, you may like some more Power Automate tutorials:

Power Apps functions free pdf

30 Power Apps Functions

This free guide walks you through the 30 most-used Power Apps functions with real business examples, exact syntax, and results you can see.

Live Webinar

Quiz App Using SharePoint Framework (SPFx)

Learn to built a complete Quiz Management solution that enables admins to create and manage quizzes, categories, questions, and settings with an easy automated setup process in SharePoint. It also includes an interactive quiz experience for users and a powerful dashboard to track participation, analyze results, and view detailed performance reports with charts and answer insights.

📅 2nd June 2026 – 10:00 AM EST | 7:30 PM IST

Download User registration canvas app

DOWNLOAD USER REGISTRATION POWER APPS CANVAS APP

Download a fully functional Power Apps Canvas App (with Power Automate): User Registration App