Extract Invoice Data

Extract vendor name, line items, totals, and dates from invoice documents.

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.

Request
curl -X POST https://api.iterationlayer.com/document-extraction/v1/extract \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "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"
        }
      ]
    }
  }'
Response
{
  "success": true,
  "data": {
    "vendor": {
      "value": "Acme Office Supplies Ltd.",
      "confidence": 0.97,
      "citations": ["Acme Office Supplies Ltd."]
    },
    "invoice_number": {
      "value": "INV-2026-001",
      "confidence": 0.99,
      "citations": ["Invoice #INV-2026-001"]
    },
    "date": {
      "value": "2026-01-15",
      "confidence": 0.98,
      "citations": ["Date: January 15, 2026"]
    },
    "line_items": {
      "value": [
        {
          "description": {
            "value": "Ergonomic Desk Chair",
            "confidence": 0.96,
            "citations": ["Ergonomic Desk Chair"]
          },
          "quantity": {
            "value": 2,
            "confidence": 0.98,
            "citations": ["Qty: 2"]
          },
          "unit_price": {
            "value": {
              "amount": "349.99",
              "currency": "USD"
            },
            "confidence": 0.97,
            "citations": ["$349.99 each"]
          }
        },
        {
          "description": {
            "value": "Standing Desk Converter",
            "confidence": 0.95,
            "citations": ["Standing Desk Converter"]
          },
          "quantity": {
            "value": 1,
            "confidence": 0.99,
            "citations": ["Qty: 1"]
          },
          "unit_price": {
            "value": {
              "amount": "189.00",
              "currency": "USD"
            },
            "confidence": 0.96,
            "citations": ["$189.00 each"]
          }
        }
      ],
      "confidence": 0.96,
      "citations": []
    },
    "total_amount": {
      "value": {
        "amount": "888.98",
        "currency": "USD"
      },
      "confidence": 0.98,
      "citations": ["Total Due: $888.98"]
    }
  }
}
Request
import { IterationLayer } from "iterationlayer";
const client = new IterationLayer({ apiKey: "YOUR_API_KEY" });

const result = await 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",
      },
    ],
  },
});

console.log(result);
Response
{
  "success": true,
  "data": {
    "vendor": {
      "value": "Acme Office Supplies Ltd.",
      "confidence": 0.97,
      "citations": ["Acme Office Supplies Ltd."]
    },
    "invoice_number": {
      "value": "INV-2026-001",
      "confidence": 0.99,
      "citations": ["Invoice #INV-2026-001"]
    },
    "date": {
      "value": "2026-01-15",
      "confidence": 0.98,
      "citations": ["Date: January 15, 2026"]
    },
    "line_items": {
      "value": [
        {
          "description": {
            "value": "Ergonomic Desk Chair",
            "confidence": 0.96,
            "citations": ["Ergonomic Desk Chair"]
          },
          "quantity": {
            "value": 2,
            "confidence": 0.98,
            "citations": ["Qty: 2"]
          },
          "unit_price": {
            "value": {
              "amount": "349.99",
              "currency": "USD"
            },
            "confidence": 0.97,
            "citations": ["$349.99 each"]
          }
        },
        {
          "description": {
            "value": "Standing Desk Converter",
            "confidence": 0.95,
            "citations": ["Standing Desk Converter"]
          },
          "quantity": {
            "value": 1,
            "confidence": 0.99,
            "citations": ["Qty: 1"]
          },
          "unit_price": {
            "value": {
              "amount": "189.00",
              "currency": "USD"
            },
            "confidence": 0.96,
            "citations": ["$189.00 each"]
          }
        }
      ],
      "confidence": 0.96,
      "citations": []
    },
    "total_amount": {
      "value": {
        "amount": "888.98",
        "currency": "USD"
      },
      "confidence": 0.98,
      "citations": ["Total Due: $888.98"]
    }
  }
}
Request
from iterationlayer import IterationLayer
client = 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)
Response
{
  "success": true,
  "data": {
    "vendor": {
      "value": "Acme Office Supplies Ltd.",
      "confidence": 0.97,
      "citations": ["Acme Office Supplies Ltd."]
    },
    "invoice_number": {
      "value": "INV-2026-001",
      "confidence": 0.99,
      "citations": ["Invoice #INV-2026-001"]
    },
    "date": {
      "value": "2026-01-15",
      "confidence": 0.98,
      "citations": ["Date: January 15, 2026"]
    },
    "line_items": {
      "value": [
        {
          "description": {
            "value": "Ergonomic Desk Chair",
            "confidence": 0.96,
            "citations": ["Ergonomic Desk Chair"]
          },
          "quantity": {
            "value": 2,
            "confidence": 0.98,
            "citations": ["Qty: 2"]
          },
          "unit_price": {
            "value": {
              "amount": "349.99",
              "currency": "USD"
            },
            "confidence": 0.97,
            "citations": ["$349.99 each"]
          }
        },
        {
          "description": {
            "value": "Standing Desk Converter",
            "confidence": 0.95,
            "citations": ["Standing Desk Converter"]
          },
          "quantity": {
            "value": 1,
            "confidence": 0.99,
            "citations": ["Qty: 1"]
          },
          "unit_price": {
            "value": {
              "amount": "189.00",
              "currency": "USD"
            },
            "confidence": 0.96,
            "citations": ["$189.00 each"]
          }
        }
      ],
      "confidence": 0.96,
      "citations": []
    },
    "total_amount": {
      "value": {
        "amount": "888.98",
        "currency": "USD"
      },
      "confidence": 0.98,
      "citations": ["Total Due: $888.98"]
    }
  }
}
Request
package main

import il "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",
        ),
    },
})
Response
{
  "success": true,
  "data": {
    "vendor": {
      "value": "Acme Office Supplies Ltd.",
      "confidence": 0.97,
      "citations": ["Acme Office Supplies Ltd."]
    },
    "invoice_number": {
      "value": "INV-2026-001",
      "confidence": 0.99,
      "citations": ["Invoice #INV-2026-001"]
    },
    "date": {
      "value": "2026-01-15",
      "confidence": 0.98,
      "citations": ["Date: January 15, 2026"]
    },
    "line_items": {
      "value": [
        {
          "description": {
            "value": "Ergonomic Desk Chair",
            "confidence": 0.96,
            "citations": ["Ergonomic Desk Chair"]
          },
          "quantity": {
            "value": 2,
            "confidence": 0.98,
            "citations": ["Qty: 2"]
          },
          "unit_price": {
            "value": {
              "amount": "349.99",
              "currency": "USD"
            },
            "confidence": 0.97,
            "citations": ["$349.99 each"]
          }
        },
        {
          "description": {
            "value": "Standing Desk Converter",
            "confidence": 0.95,
            "citations": ["Standing Desk Converter"]
          },
          "quantity": {
            "value": 1,
            "confidence": 0.99,
            "citations": ["Qty: 1"]
          },
          "unit_price": {
            "value": {
              "amount": "189.00",
              "currency": "USD"
            },
            "confidence": 0.96,
            "citations": ["$189.00 each"]
          }
        }
      ],
      "confidence": 0.96,
      "citations": []
    },
    "total_amount": {
      "value": {
        "amount": "888.98",
        "currency": "USD"
      },
      "confidence": 0.98,
      "citations": ["Total Due: $888.98"]
    }
  }
}

Related Recipes

Start building in minutes

Free trial credits included. No credit card required.