Skip to content

Scan Invoice

Sends an Invoice image to the Customer Order Automation and returns the extracted invoice information.

The method accepts the following parameters:

  • response_, out parameter of type CLOB, to which the response will be written.
  • image_data_, required parameter of type BLOB to pass the binary image data to the Customer Order Automation.
  • configuration_id_, optional parameter to specify the Configuration ID from Scheduling Optimization and Machine Learning Configuration to use. If not specified the 'DEFAULT' configuration will be used.
  • response_format_, optional parameter to specify the response format. Possible values are 'XML', 'JSON' and 'IFS_MESSAGE'. If not specified 'IFS_MESSAGE' will be used as the default format.
BEGIN  
   Ml_Util_API.Scan_Invoice(
      response_         => :response_,   -- Clob parameter to accept response data.
      image_data_       => :image_data_, -- Blob parameter to pass the binary image data.
      configuration_id_ => 'DEFAULT',    -- Configuration ID to use.
      response_format_  => 'XML');       -- Response format ('XML' / 'JSON' / 'IFS_MESSAGE').
END;

For the above call, the response may look as following. The response may vary depending on the IFS Planning & Scheduling Optimization (PSO) version being used.

<ScanResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/RESTfulGateway.ResponseObjects">
  <Entities>
    <ExtractedEntity>
      <EntityGroupId>Line1</EntityGroupId>
      <Id>amount</Id>
      <Probability>0.916</Probability>
      <Value>$60.00</Value>
    </ExtractedEntity>
    <ExtractedEntity>
      <EntityGroupId>Line2</EntityGroupId>
      <Id>amount</Id>
      <Probability>0.959</Probability>
      <Value>$30.00</Value>
    </ExtractedEntity>
    <ExtractedEntity>
      <EntityGroupId>Line3</EntityGroupId>
      <Id>amount</Id>
      <Probability>0.962</Probability>
      <Value>$10.00</Value>
    </ExtractedEntity>
    <ExtractedEntity>
      <EntityGroupId>Main</EntityGroupId>
      <Id>amount_due</Id>
      <Probability>0.971</Probability>
      <Value>610.00</Value>
    </ExtractedEntity>
    <ExtractedEntity>
      <EntityGroupId>Main</EntityGroupId>
      <Id>billing_address</Id>
      <Probability>0.952</Probability>
      <Value>123 Bill St, Redmond WA, 98052</Value>
    </ExtractedEntity>
    <ExtractedEntity>
      <EntityGroupId>Main</EntityGroupId>
      <Id>billing_address_recipient</Id>
      <Probability>0.956</Probability>
      <Value>Microsoft Finance</Value>
    </ExtractedEntity>
    <ExtractedEntity>
      <EntityGroupId>Main</EntityGroupId>
      <Id>customer_address</Id>
      <Probability>0.952</Probability>
      <Value>123 Other St, Redmond WA, 98052</Value>
    </ExtractedEntity>
    <ExtractedEntity>
      <EntityGroupId>Main</EntityGroupId>
      <Id>customer_address_recipient</Id>
      <Probability>0.954</Probability>
      <Value>Microsoft Corp</Value>
    </ExtractedEntity>
    <ExtractedEntity>
      <EntityGroupId>Main</EntityGroupId>
      <Id>customer_id</Id>
      <Probability>0.962</Probability>
      <Value>CID-12345</Value>
    </ExtractedEntity>
    <ExtractedEntity>
      <EntityGroupId>Main</EntityGroupId>
      <Id>customer_name</Id>
      <Probability>0.946</Probability>
      <Value>MICROSOFT CORPORATION</Value>
    </ExtractedEntity>
    <ExtractedEntity>
      <EntityGroupId>Line3</EntityGroupId>
      <Id>date</Id>
      <Probability>0.903</Probability>
      <Value>3/6/2021</Value>
    </ExtractedEntity>
    <ExtractedEntity>
      <EntityGroupId>Line1</EntityGroupId>
      <Id>description</Id>
      <Probability>0.9</Probability>
      <Value>Consulting Services</Value>
    </ExtractedEntity>
    <ExtractedEntity>
      <EntityGroupId>Line2</EntityGroupId>
      <Id>description</Id>
      <Probability>0.901</Probability>
      <Value>Document Fee</Value>
    </ExtractedEntity>
    <ExtractedEntity>
      <EntityGroupId>Line3</EntityGroupId>
      <Id>description</Id>
      <Probability>0.899</Probability>
      <Value>Printing Fee</Value>
    </ExtractedEntity>
    <ExtractedEntity>
      <EntityGroupId>Main</EntityGroupId>
      <Id>due_date</Id>
      <Probability>0.6</Probability>
      <Value>2019-12-15</Value>
    </ExtractedEntity>
    <ExtractedEntity>
      <EntityGroupId>Main</EntityGroupId>
      <Id>invoice_date</Id>
      <Probability>0.6</Probability>
      <Value>2019-11-15</Value>
    </ExtractedEntity>
    <ExtractedEntity>
      <EntityGroupId>Main</EntityGroupId>
      <Id>invoice_id</Id>
      <Probability>0.971</Probability>
      <Value>INV-100</Value>
    </ExtractedEntity>
    <ExtractedEntity>
      <EntityGroupId>Main</EntityGroupId>
      <Id>invoice_total</Id>
      <Probability>0.968</Probability>
      <Value>110.00</Value>
    </ExtractedEntity>
    <ExtractedEntity>
      <EntityGroupId>Main</EntityGroupId>
      <Id>previous_unpaid_balance</Id>
      <Probability>0.959</Probability>
      <Value>500.00</Value>
    </ExtractedEntity>
    <ExtractedEntity>
      <EntityGroupId>Line3</EntityGroupId>
      <Id>product_code</Id>
      <Probability>0.899</Probability>
      <Value>C789</Value>
    </ExtractedEntity>
    <ExtractedEntity>
      <EntityGroupId>Main</EntityGroupId>
      <Id>purchase_order</Id>
      <Probability>0.963</Probability>
      <Value>PO-3333</Value>
    </ExtractedEntity>
    <ExtractedEntity>
      <EntityGroupId>Line3</EntityGroupId>
      <Id>quantity</Id>
      <Probability>0.911</Probability>
      <Value>10</Value>
    </ExtractedEntity>
    <ExtractedEntity>
      <EntityGroupId>Main</EntityGroupId>
      <Id>raw_text</Id>
      <Probability>1</Probability>
      <Value>CONTOSO LTD. INVOICE Contoso Headquarters INVOICE: INV-100 123 456th St INVOICE DATE: 11/15/2019 New York, NY, 10001 DUE DATE: 12/15/2019 CUSTOMER NAME: MICROSOFT CORPORATION SERVICE PERIOD: 10/14/2019 - 11/14/2019 CUSTOMER ID: CID-12345 Microsoft Corp 123 Other St, Redmond WA, 98052 BILL TO: SHIP TO: SERVICE ADDRESS: Microsoft Finance Microsoft Delivery Microsoft Services 123 Bill St, 123 Ship St, 123 Service St, Redmond WA, 98052 Redmond WA, 98052 Redmond WA, 98052 SALESPERSON P.O. NUMBER REQUISITIONER SHIPPED VIA F.O.B. POINT TERMS PO-3333 DATE ITEM CODE DESCRIPTION QTY UM PRICE TAX AMOUNT 3/4/2021 A123 Consulting Services 2 hours $30.00 10% $60.00 3/5/2021 B456 Document Fee 3 $10.00 5% $30.00 3/6/2021 C789 Printing Fee 10 pages $1.00 20% $10.00 SUBTOTAL $100.00 SALES TAX $10.00 TOTAL $110.00 PREVIOUS UNPAID BALANCE $500.00 AMOUNT DUE $610.00 THANK YOU FOR YOUR BUSINESS! REMIT TO: Contoso Billing 123 Remit St New York, NY, 10001</Value>
    </ExtractedEntity>
    <ExtractedEntity>
      <EntityGroupId>Main</EntityGroupId>
      <Id>remiitance_address_recipient</Id>
      <Probability>0.954</Probability>
      <Value>Contoso Billing</Value>
    </ExtractedEntity>
    <ExtractedEntity>
      <EntityGroupId>Main</EntityGroupId>
      <Id>remittance_address</Id>
      <Probability>0.95</Probability>
      <Value>123 Remit St New York, NY, 10001</Value>
    </ExtractedEntity>
    <ExtractedEntity>
      <EntityGroupId>Main</EntityGroupId>
      <Id>service_address</Id>
      <Probability>0.949</Probability>
      <Value>123 Service St, Redmond WA, 98052</Value>
    </ExtractedEntity>
    <ExtractedEntity>
      <EntityGroupId>Main</EntityGroupId>
      <Id>service_address_recipient</Id>
      <Probability>0.95</Probability>
      <Value>Microsoft Services</Value>
    </ExtractedEntity>
    <ExtractedEntity>
      <EntityGroupId>Main</EntityGroupId>
      <Id>service_end_date</Id>
      <Probability>0.6</Probability>
      <Value>2019-11-14</Value>
    </ExtractedEntity>
    <ExtractedEntity>
      <EntityGroupId>Main</EntityGroupId>
      <Id>service_start_date</Id>
      <Probability>0.6</Probability>
      <Value>2019-10-14</Value>
    </ExtractedEntity>
    <ExtractedEntity>
      <EntityGroupId>Main</EntityGroupId>
      <Id>shipping_address</Id>
      <Probability>0.95</Probability>
      <Value>123 Ship St, Redmond WA, 98052</Value>
    </ExtractedEntity>
    <ExtractedEntity>
      <EntityGroupId>Main</EntityGroupId>
      <Id>shipping_address_recipient</Id>
      <Probability>0.954</Probability>
      <Value>Microsoft Delivery</Value>
    </ExtractedEntity>
    <ExtractedEntity>
      <EntityGroupId>Main</EntityGroupId>
      <Id>sub_total</Id>
      <Probability>0.971</Probability>
      <Value>100.00</Value>
    </ExtractedEntity>
    <ExtractedEntity>
      <EntityGroupId>Line3</EntityGroupId>
      <Id>tax</Id>
      <Probability>0.802</Probability>
      <Value>20%</Value>
    </ExtractedEntity>
    <ExtractedEntity>
      <EntityGroupId>Main</EntityGroupId>
      <Id>total_tax</Id>
      <Probability>0.971</Probability>
      <Value>10.00</Value>
    </ExtractedEntity>
    <ExtractedEntity>
      <EntityGroupId>Main</EntityGroupId>
      <Id>total_vat</Id>
      <Probability>1</Probability>
      <Value>10.00</Value>
    </ExtractedEntity>
    <ExtractedEntity>
      <EntityGroupId>Line3</EntityGroupId>
      <Id>unit</Id>
      <Probability>0.893</Probability>
      <Value>pages</Value>
    </ExtractedEntity>
    <ExtractedEntity>
      <EntityGroupId>Line3</EntityGroupId>
      <Id>unit_price</Id>
      <Probability>0.829</Probability>
      <Value>$1.00</Value>
    </ExtractedEntity>
    <ExtractedEntity>
      <EntityGroupId>Main</EntityGroupId>
      <Id>vendor_address</Id>
      <Probability>0.949</Probability>
      <Value>123 456th St New York, NY, 10001</Value>
    </ExtractedEntity>
    <ExtractedEntity>
      <EntityGroupId>Main</EntityGroupId>
      <Id>vendor_address_recipient</Id>
      <Probability>0.954</Probability>
      <Value>Contoso Headquarters</Value>
    </ExtractedEntity>
    <ExtractedEntity>
      <EntityGroupId>Main</EntityGroupId>
      <Id>vendor_name</Id>
      <Probability>0.954</Probability>
      <Value>CONTOSO LTD.</Value>
    </ExtractedEntity>
  </Entities>
  <EntityGroups xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
    <d2p1:string>Line1</d2p1:string>
    <d2p1:string>Line2</d2p1:string>
    <d2p1:string>Line3</d2p1:string>
    <d2p1:string>Main</d2p1:string>
  </EntityGroups>
</ScanResponse>

Tip: The IFS Message response format ('IFS_MESSAGE') allows using existing methods in Message_SYS package to handle the response which may be simpler to use in the PL/SQL code than 'XML' or 'JSON'.

For more details about the Customer Order Automation please see the PSO Machine Learning Guide and the PSO Interface Guide.