Extract Receipt Data

Extract merchant, date, line items, tax, and total from receipts.

Who this is for

Finance teams and expense management apps use this recipe to automate receipt processing. Upload a receipt photo or PDF and receive structured JSON with merchant name, date, individual items, and total — ready for an expense report or reimbursement workflow.

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": "receipt.pdf",
        "url": "https://example.com/receipts/purchase-receipt.pdf"
      }
    ],
    "schema": {
      "fields": [
        {
          "name": "merchant_name",
          "type": "TEXT",
          "description": "Name of the merchant or store"
        },
        {
          "name": "date",
          "type": "DATE",
          "description": "Date of the transaction"
        },
        {
          "name": "items",
          "type": "ARRAY",
          "description": "Individual line items on the receipt",
          "fields": [
            {
              "name": "name",
              "type": "TEXT",
              "description": "Item name or description"
            },
            {
              "name": "amount",
              "type": "CURRENCY_AMOUNT",
              "description": "Item price"
            }
          ]
        },
        {
          "name": "total_amount",
          "type": "CURRENCY_AMOUNT",
          "description": "Total amount charged"
        },
        {
          "name": "currency",
          "type": "CURRENCY_CODE",
          "description": "Currency code (e.g. USD, EUR)"
        }
      ]
    }
  }'
Response
{
  "success": true,
  "data": {
    "merchant_name": {
      "value": "Whole Foods Market",
      "confidence": 0.98,
      "citations": ["WHOLE FOODS MARKET"]
    },
    "date": {
      "value": "2026-02-18",
      "confidence": 0.97,
      "citations": ["02/18/2026"]
    },
    "items": {
      "value": [
        {
          "name": {
            "value": "Organic Avocados (3pk)",
            "confidence": 0.95,
            "citations": [
              "Organic Avocados 3pk"
            ]
          },
          "amount": {
            "value": {
              "amount": "5.99",
              "currency": "USD"
            },
            "confidence": 0.97,
            "citations": ["$5.99"]
          }
        },
        {
          "name": {
            "value": "Sourdough Bread",
            "confidence": 0.96,
            "citations": ["Sourdough Bread"]
          },
          "amount": {
            "value": {
              "amount": "4.49",
              "currency": "USD"
            },
            "confidence": 0.98,
            "citations": ["$4.49"]
          }
        }
      ],
      "confidence": 0.96,
      "citations": []
    },
    "total_amount": {
      "value": {
        "amount": "10.48",
        "currency": "USD"
      },
      "confidence": 0.99,
      "citations": ["TOTAL: $10.48"]
    },
    "currency": {
      "value": "USD",
      "confidence": 0.99,
      "citations": ["$"]
    }
  }
}
Request
import { IterationLayer } from "iterationlayer";
const client = new IterationLayer({ apiKey: "YOUR_API_KEY" });

const result = await client.extract({
  files: [
    {
      type: "url",
      name: "receipt.pdf",
      url: "https://example.com/receipts/purchase-receipt.pdf",
    },
  ],
  schema: {
    fields: [
      {
        name: "merchant_name",
        type: "TEXT",
        description: "Name of the merchant or store",
      },
      {
        name: "date",
        type: "DATE",
        description: "Date of the transaction",
      },
      {
        name: "items",
        type: "ARRAY",
        description: "Individual line items on the receipt",
        fields: [
          {
            name: "name",
            type: "TEXT",
            description: "Item name or description",
          },
          {
            name: "amount",
            type: "CURRENCY_AMOUNT",
            description: "Item price",
          },
        ],
      },
      {
        name: "total_amount",
        type: "CURRENCY_AMOUNT",
        description: "Total amount charged",
      },
      {
        name: "currency",
        type: "CURRENCY_CODE",
        description: "Currency code (e.g. USD, EUR)",
      },
    ],
  },
});

console.log(result);
Response
{
  "success": true,
  "data": {
    "merchant_name": {
      "value": "Whole Foods Market",
      "confidence": 0.98,
      "citations": ["WHOLE FOODS MARKET"]
    },
    "date": {
      "value": "2026-02-18",
      "confidence": 0.97,
      "citations": ["02/18/2026"]
    },
    "items": {
      "value": [
        {
          "name": {
            "value": "Organic Avocados (3pk)",
            "confidence": 0.95,
            "citations": [
              "Organic Avocados 3pk"
            ]
          },
          "amount": {
            "value": {
              "amount": "5.99",
              "currency": "USD"
            },
            "confidence": 0.97,
            "citations": ["$5.99"]
          }
        },
        {
          "name": {
            "value": "Sourdough Bread",
            "confidence": 0.96,
            "citations": ["Sourdough Bread"]
          },
          "amount": {
            "value": {
              "amount": "4.49",
              "currency": "USD"
            },
            "confidence": 0.98,
            "citations": ["$4.49"]
          }
        }
      ],
      "confidence": 0.96,
      "citations": []
    },
    "total_amount": {
      "value": {
        "amount": "10.48",
        "currency": "USD"
      },
      "confidence": 0.99,
      "citations": ["TOTAL: $10.48"]
    },
    "currency": {
      "value": "USD",
      "confidence": 0.99,
      "citations": ["$"]
    }
  }
}
Request
from iterationlayer import IterationLayer
client = IterationLayer(api_key="YOUR_API_KEY")

result = client.extract(
    files=[
        {
            "type": "url",
            "name": "receipt.pdf",
            "url": "https://example.com/receipts/purchase-receipt.pdf",
        }
    ],
    schema={
        "fields": [
            {
                "name": "merchant_name",
                "type": "TEXT",
                "description": "Name of the merchant or store",
            },
            {
                "name": "date",
                "type": "DATE",
                "description": "Date of the transaction",
            },
            {
                "name": "items",
                "type": "ARRAY",
                "description": "Individual line items on the receipt",
                "fields": [
                    {
                        "name": "name",
                        "type": "TEXT",
                        "description": "Item name or description",
                    },
                    {
                        "name": "amount",
                        "type": "CURRENCY_AMOUNT",
                        "description": "Item price",
                    },
                ],
            },
            {
                "name": "total_amount",
                "type": "CURRENCY_AMOUNT",
                "description": "Total amount charged",
            },
            {
                "name": "currency",
                "type": "CURRENCY_CODE",
                "description": "Currency code (e.g. USD, EUR)",
            },
        ]
    },
)

print(result)
Response
{
  "success": true,
  "data": {
    "merchant_name": {
      "value": "Whole Foods Market",
      "confidence": 0.98,
      "citations": ["WHOLE FOODS MARKET"]
    },
    "date": {
      "value": "2026-02-18",
      "confidence": 0.97,
      "citations": ["02/18/2026"]
    },
    "items": {
      "value": [
        {
          "name": {
            "value": "Organic Avocados (3pk)",
            "confidence": 0.95,
            "citations": [
              "Organic Avocados 3pk"
            ]
          },
          "amount": {
            "value": {
              "amount": "5.99",
              "currency": "USD"
            },
            "confidence": 0.97,
            "citations": ["$5.99"]
          }
        },
        {
          "name": {
            "value": "Sourdough Bread",
            "confidence": 0.96,
            "citations": ["Sourdough Bread"]
          },
          "amount": {
            "value": {
              "amount": "4.49",
              "currency": "USD"
            },
            "confidence": 0.98,
            "citations": ["$4.49"]
          }
        }
      ],
      "confidence": 0.96,
      "citations": []
    },
    "total_amount": {
      "value": {
        "amount": "10.48",
        "currency": "USD"
      },
      "confidence": 0.99,
      "citations": ["TOTAL: $10.48"]
    },
    "currency": {
      "value": "USD",
      "confidence": 0.99,
      "citations": ["$"]
    }
  }
}
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(
            "receipt.pdf",
            "https://example.com/receipts/purchase-receipt.pdf",
        ),
    },
    Schema: il.ExtractionSchema{
        "merchant_name": il.NewTextFieldConfig(
            "merchant_name",
            "Name of the merchant or store",
        ),
        "date": il.NewDateFieldConfig(
            "date", "Date of the transaction",
        ),
        "items": il.NewArrayFieldConfig(
            "items",
            "Individual line items on the receipt",
            []il.FieldConfig{
                il.NewTextFieldConfig(
                    "name", "Item name or description",
                ),
                il.NewCurrencyAmountFieldConfig(
                    "amount", "Item price",
                ),
            },
        ),
        "total_amount": il.NewCurrencyAmountFieldConfig(
            "total_amount", "Total amount charged",
        ),
        "currency": il.NewCurrencyCodeFieldConfig(
            "currency", "Currency code (e.g. USD, EUR)",
        ),
    },
})
Response
{
  "success": true,
  "data": {
    "merchant_name": {
      "value": "Whole Foods Market",
      "confidence": 0.98,
      "citations": ["WHOLE FOODS MARKET"]
    },
    "date": {
      "value": "2026-02-18",
      "confidence": 0.97,
      "citations": ["02/18/2026"]
    },
    "items": {
      "value": [
        {
          "name": {
            "value": "Organic Avocados (3pk)",
            "confidence": 0.95,
            "citations": [
              "Organic Avocados 3pk"
            ]
          },
          "amount": {
            "value": {
              "amount": "5.99",
              "currency": "USD"
            },
            "confidence": 0.97,
            "citations": ["$5.99"]
          }
        },
        {
          "name": {
            "value": "Sourdough Bread",
            "confidence": 0.96,
            "citations": ["Sourdough Bread"]
          },
          "amount": {
            "value": {
              "amount": "4.49",
              "currency": "USD"
            },
            "confidence": 0.98,
            "citations": ["$4.49"]
          }
        }
      ],
      "confidence": 0.96,
      "citations": []
    },
    "total_amount": {
      "value": {
        "amount": "10.48",
        "currency": "USD"
      },
      "confidence": 0.99,
      "citations": ["TOTAL: $10.48"]
    },
    "currency": {
      "value": "USD",
      "confidence": 0.99,
      "citations": ["$"]
    }
  }
}

Related Recipes

Start building in minutes

Free trial credits included. No credit card required.