Extract line items, totals, and vendor details from invoices into structured JSON for accounting workflows.
Who this is for
Accounts payable teams and finance automation platforms use this recipe to eliminate manual invoice data entry. Upload an invoice in any supported format and receive structured JSON with vendor details, line items, and totals — ready to feed into your ERP or accounting system.
import{IterationLayer}from"iterationlayer";constclient=newIterationLayer({apiKey:"YOUR_API_KEY"});constresult=awaitclient.extract({files:[{type:"url",name:"invoice.pdf",url:"https://example.com/invoices/2026-001.pdf",},],schema:{fields:[{name:"vendor",type:"TEXT",description:"Vendor or supplier name"},{name:"invoice_number",type:"TEXT",description:"Invoice reference number"},{name:"date",type:"DATE",description:"Invoice date"},{name:"line_items",type:"ARRAY",description:"Individual line items",fields:[{name:"description",type:"TEXT",description:"Item description"},{name:"quantity",type:"INTEGER",description:"Quantity ordered"},{name:"unit_price",type:"CURRENCY_AMOUNT",description:"Price per unit"},]},{name:"total_amount",type:"CURRENCY_AMOUNT",description:"Total invoice amount"},],},});console.log(result);
fromiterationlayerimportIterationLayerclient=IterationLayer(api_key="YOUR_API_KEY")result=client.extract(files=[{"type":"url","name":"invoice.pdf","url":"https://example.com/invoices/2026-001.pdf",}],schema={"fields":[{"name":"vendor","type":"TEXT","description":"Vendor or supplier name"},{"name":"invoice_number","type":"TEXT","description":"Invoice reference number"},{"name":"date","type":"DATE","description":"Invoice date"},{"name":"line_items","type":"ARRAY","description":"Individual line items","fields":[{"name":"description","type":"TEXT","description":"Item description"},{"name":"quantity","type":"INTEGER","description":"Quantity ordered"},{"name":"unit_price","type":"CURRENCY_AMOUNT","description":"Price per unit"},]},{"name":"total_amount","type":"CURRENCY_AMOUNT","description":"Total invoice amount"},]},)print(result)
packagemainimportil"github.com/iterationlayer/sdk-go"client:=il.NewClient("YOUR_API_KEY")result,err:=client.Extract(il.ExtractRequest{Files:[]il.FileInput{il.NewFileFromURL("invoice.pdf","https://example.com/invoices/2026-001.pdf"),},Schema:il.ExtractionSchema{"vendor":il.NewTextFieldConfig("vendor","Vendor or supplier name"),"invoice_number":il.NewTextFieldConfig("invoice_number","Invoice reference number"),"date":il.NewDateFieldConfig("date","Invoice date"),"line_items":il.NewArrayFieldConfig("line_items","Individual line items",[]il.FieldConfig{il.NewTextFieldConfig("description","Item description"),il.NewIntegerFieldConfig("quantity","Quantity ordered"),il.NewCurrencyAmountFieldConfig("unit_price","Price per unit"),}),"total_amount":il.NewCurrencyAmountFieldConfig("total_amount","Total invoice amount"),},})