Isaac-CIS
Occasional Member - Level 2

Is it possible for PO Match to respect line quantities?

We are using concur invoice and are having issues implementing three-way matching. Working with support we are being told that what we want to do is not possible.

 

Our current process is to upload all POs and Receipts from our ERP system into Concur on a daily basis. When Concur receives invoices they are brought in through invoice processing and are automatically matched to POs and receipts at the line level.

 

We are trying to exactly match invoice line quantity to receipt line quantities. We understand that Concur does a FIFO match since our delivery slip numbers are not listed on the supplier invoice; however, the FIFO does not respect quantities and will under-allocate and then over-allocate one receipt and leave another completely unallocated.

 

Has anyone had success in directly matching invoice line quantities to receipt line quantities in an automated method with high accuracy?

 

If Concur cannot do this natively are there any 3rd party programs that have been written to leverage the API to do this?

1 Solution
Solution
PoojaKumatkar
Super User
Super User

Hi @Isaac-CIS ,

 

In SAP Concur, the standard configuration cannot ensure precise matching of invoice line quantities to individual receipt (GRN) line quantities. To achieve this level of accuracy, the matching must be handled in the ERP system or implemented through a custom integration using APIs.

 

1. In SAP Concur, three-way matching works mainly at the PO line level, not strict receipt (GRN) line level.

2. Concur checks that Invoice Quantity ≤ Total Received Quantity for the PO line.

3. The system uses FIFO logic to consume receipts, but does not strictly respect individual receipt line quantities.

4. Because of this, receipts may be under-allocated, over-allocated, or skipped, which is expected behavior.

5. Exact invoice line ↔ receipt line quantity matching is not supported natively in Concur configuration.

6. To achieve strict matching, companies typically:

  • Perform 3-way matching in the ERP system (recommended), or
  • Build custom logic using the SAP Concur API to allocate invoice quantities to receipt lines.

7. Another workaround is to upload aggregated receipts per PO line instead of individual GRNs to reduce allocation issues.

 

Below is the short process for the workarounds suggested above in point #6 and #7.

Option 1: 3-way matching in the ERP system

Use Concur only for invoice capture and workflow, then send invoices to ERP.

Process:

  • Invoice captured in SAP Concur
  • Sent to ERP
  • ERP performs true 3-way matching

This is the most stable architecture.

 

Option 2: custom logic using the SAP Concur API

Some companies build middleware using the SAP Concur API.

Typical architecture:

1. Pull data via API

  • POs
  • Receipts
  • Invoice lines

2. Middleware performs strict allocation logic.

3. Update invoice allocations back via API.

 

Challenges:

  • API rate limits
  • partial invoice edits
  • concurrency issues
  • audit requirements

 

Option 3: upload aggregated receipts per PO line instead of individual GRNs

Instead of loading each GRN, upload aggregated receipts per PO line.

Example:

Instead of:

GRN Qty
GRN1 40
GRN2 60


Upload:

PO line Received

GRN Qty
Line 1 100

Then Concur logic behaves predictably.

 

Note - I would recommend considering Option 1 or Option 3, as they are easier to implement and involve fewer challenges compared to Option 2.

 

 

If this answers your query, then please mark solution as accepted.

Thanks!
Regards,
Pooja

View solution in original post

5 REPLIES 5
Solution
PoojaKumatkar
Super User
Super User

Hi @Isaac-CIS ,

 

In SAP Concur, the standard configuration cannot ensure precise matching of invoice line quantities to individual receipt (GRN) line quantities. To achieve this level of accuracy, the matching must be handled in the ERP system or implemented through a custom integration using APIs.

 

1. In SAP Concur, three-way matching works mainly at the PO line level, not strict receipt (GRN) line level.

2. Concur checks that Invoice Quantity ≤ Total Received Quantity for the PO line.

3. The system uses FIFO logic to consume receipts, but does not strictly respect individual receipt line quantities.

4. Because of this, receipts may be under-allocated, over-allocated, or skipped, which is expected behavior.

5. Exact invoice line ↔ receipt line quantity matching is not supported natively in Concur configuration.

6. To achieve strict matching, companies typically:

  • Perform 3-way matching in the ERP system (recommended), or
  • Build custom logic using the SAP Concur API to allocate invoice quantities to receipt lines.

7. Another workaround is to upload aggregated receipts per PO line instead of individual GRNs to reduce allocation issues.

 

Below is the short process for the workarounds suggested above in point #6 and #7.

Option 1: 3-way matching in the ERP system

Use Concur only for invoice capture and workflow, then send invoices to ERP.

Process:

  • Invoice captured in SAP Concur
  • Sent to ERP
  • ERP performs true 3-way matching

This is the most stable architecture.

 

Option 2: custom logic using the SAP Concur API

Some companies build middleware using the SAP Concur API.

Typical architecture:

1. Pull data via API

  • POs
  • Receipts
  • Invoice lines

2. Middleware performs strict allocation logic.

3. Update invoice allocations back via API.

 

Challenges:

  • API rate limits
  • partial invoice edits
  • concurrency issues
  • audit requirements

 

Option 3: upload aggregated receipts per PO line instead of individual GRNs

Instead of loading each GRN, upload aggregated receipts per PO line.

Example:

Instead of:

GRN Qty
GRN1 40
GRN2 60


Upload:

PO line Received

GRN Qty
Line 1 100

Then Concur logic behaves predictably.

 

Note - I would recommend considering Option 1 or Option 3, as they are easier to implement and involve fewer challenges compared to Option 2.

 

 

If this answers your query, then please mark solution as accepted.

Thanks!
Regards,
Pooja
Isaac-CIS
Occasional Member - Level 2

Hi Pooja,

 

Thank you for that clear explanation and description of our options.

 

For Option 1,

If we want the completed three-way match that has been performed on the ERP side to be reflected in Concur, are we able to automate Concur's matching by providing a delivery receipt information after the invoice has been captured?

 

For example:

Invoice Capture occurs in Concur

Concur API is used to pull invoice information

Match is performed in ERP

Using the matched receiver information in ERP, pull delivery slip from ERP and update Concur Invoice using Concur API

Have Concur perform exact match using delivery slip.

 

Regards,

Isaac

Hi @Isaac-CIS ,

 

We have not implemented this option previously, so I cannot guarantee its accuracy. However, based on my understanding of this scenario, it may only work partially.

 

While certain parts of the flow can be automated, SAP Concur cannot reliably trigger its matching rules simply by sending delivery receipt information after the invoice has already been captured.

 

What works:

  1. Invoice captured in SAP Concur Invoice
  2. Invoice pulled via API to ERP
  3. 3-way match performed in ERP (PO + GR + Invoice)
  4. Match result and delivery receipt info sent back to Concur via API

Limitation:
Updating the delivery/receipt information does not automatically make Concur re-run matching.

 

Best practice:

  • Either send the goods receipt to Concur before invoice matching (same as Option 3 suggested in my previous response) 

OR

  • Perform the match in the ERP and update Concur with the match status (Concur acts as a record, not the matching engine). 

For example, you can create a custom field on the invoice header to store the ERP matching status (e.g., Matched, Partially Matched, Mismatch). Based on this status, an audit rule can be configured to prevent users from submitting the invoice unless the ERP matching status is “Matched.”

In this setup, SAP Concur performs only 2-way matching (Invoice + PO), while the actual 3-way matching that includes the GRN is performed in the ERP system. The resulting 3-way match status is then sent back and updated on the invoice header in Concur via API.

 

 

I believe these complexities can be avoided by keeping the process simple, as suggested in Option 1 in my previous response—where SAP Concur handles invoice capture and the workflow process, while the 3-way matching is performed entirely in the ERP system.

 

Alternatively, if you prefer to perform the 3-way matching within Concur, then Option 3 should meet your requirement.

 

 

If this answers your query, then please mark solution as accepted.

Thanks!
Regards,
Pooja
Isaac-CIS
Occasional Member - Level 2

Thank you Pooja.  Yes, my intent was to perform matching within the ERP system, but it is important that we update Concur to reflect those matches since we use the GL extract from Concur to update our accounting system.

 

I was hoping to avoid coding the API to perform all the matching operations within Concur by providing the relevant information to Concur and letting it do a targeted match as outlined here: Delivery Slip Number Field for Three-Way Matching | SAP Help Portal.

 

That said it is possible that Option 3 will also work.  Aggregating the receipts and then using a custom field to hold invoice export until we have fully matched an invoice and then populating the appropriate information on it prior to export.  I'll discuss with the team here.

Hi @Isaac-CIS ,

If I may request, once you’ve finalized your approach from the suggested options and completed the initial feasibility testing, could you please share an update with the community.
Also, feel free to mark the solution as accepted so it can benefit others with similar requirements in the future.

 

 

Thanks!
Regards,
Pooja