Implement the invoice quantity check extension point to enable the invoice dispute intake assistant AI agent to validate a customer's quantity dispute claim by reconciling it with delivered quantity data from your Enterprise
Resource Planning (ERP) or inventory system.
About this task
The demo data for the Manage Invoice Operations application includes a sample implementation called invoiceQuantityCheckDemo as part of the sn_inv_ops_aias.invoiceQuantityCheckEP
extension point. To enable real-world validation of quantity disputes against your external ERP system or inventory delivery records, replace the demo implementation with your own custom logic.
The demo implementation also illustrates a fallback pattern. When sold product information is unavailable on an invoice line, the function validates the disputed quantity against the corresponding
sales order line quantity instead. You can mirror this pattern in your custom implementation when applicable.
Procedure
-
Log in to the ServiceNow instance.
-
Navigate to .
-
Search for the sn_inv_ops_aias.invoiceQuantityCheckEP scripted extension point in the API Name field.
-
View the sample script included in the demo data by selecting sn_inv_ops_aias.invoiceQuantityCheckEP.
-
Create your own implementation of the extension point by selecting the Create implementation related link.
-
On the Script Include form, fill in the fields.
-
Override the functions in the script to implement your logic for validating the customer's quantity dispute claim.
- checkInvoiceQuantityWithInvoiceCase
- Placeholder function meant to be overridden. Use this placeholder to implement the logic to validate quantity disputes across multiple invoice lines associated with an invoice case.
-
Input:
{
"invoiceNumber": <Invoice number of the customer invoice record>,
"verifiedInvoiceLineDetails": <Array of invoice line details>
Output:
{
“invoiceLineNumber”: <Invoice line number against which the dispute was raised>,
“disputedQuantity”: <Disputed quantity claimed by the customer, as available in the invoice case line>
}
- checkInvoiceQuantity
- Placeholder function meant to be overridden. Use this placeholder to implement the logic to validate a quantity dispute by reconciling the customer's claimed quantity against your ERP or inventory delivery
records.
-
Input:
{
"invoiceNumber": <Invoice number of the customer invoice record>,
"invoiceLineNumber": <Invoice line number of the customer invoice line record against which the dispute was raised>,
"userEnteredQty": <Disputed quantity claimed by the customer>
}
Output:
{
"invoiceLineNumber": <Invoice line number against which the dispute was raised>,
"invoiceQty": <Actual quantity on the invoice line record>,
"deliveredQty": <Integer representing the disputed quantity claimed
by the customer>,
"qtyMatch": <Boolean; true if the customer's dispute claim is valid, false if the invoiced and claimed quantities match>,
"isError": <Boolean; true if the API call failed, false if the API call was successful>,
"errorMessage": <Error message string to handle failure scenarios>
}
-
Select Update.
- Optional:
Validate your implementation by submitting an invoice dispute from the Business Portal using the Now Assist Virtual Assistant.