> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pdf.co/llms.txt
> Use this file to discover all available pages before exploring further.

# AI Invoice Parser

> Utilize the **PDF.co** AI Invoice Parser to automatically detect invoice and structurally extract data with our advancedu AI. The AI Invoice parser automatically detects invoice layouts without the manual effort previously required to supply document parsing templates for reference.

<Warning>
  **Important**

  * **Only invoices will be parsed**. For all other documents, please use our existing [**Document Parser**](/integrations/make/document-parser).
  * To ensure accurate processing, each invoice must be clearly separated. **If an invoice contains multiple pages, we recommend splitting it** into individual PDFs using the [PDF Split ](/integrations/make/split-pdf)node in your workflow.
  * While AI Invoice Parser supports multi-page invoices, **the total page count for a single PDF must not exceed 100 pages**. Submitting large PDFs containing multiple invoices is not recommended.
</Warning>

<Frame>
  <img src="https://mintcdn.com/pdfco/jvNpJlS3eEFjK2tL/images/integrations/make/make-step2.png?fit=max&auto=format&n=jvNpJlS3eEFjK2tL&q=85&s=41177a9e71be789c31ac812c76edb89b" alt="Make Step" width="1050" height="979" data-path="images/integrations/make/make-step2.png" />
</Frame>

## Input

| Name               | Description                                                                  | Required |
| ------------------ | ---------------------------------------------------------------------------- | -------- |
| **Import Options** | Choose the input source, either `Upload a File` or `Import a file from URL`. | Yes      |

***

**Upload a File**

| Name     | Description                                                                                                                                                                          | Required |
| -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------- |
| **Data** | Upload a file using raw binary data from another module. Note: This requires additional credits as it first uploads to [PDF.co Temporary Files Storage](/api-reference/file-upload). | Yes      |

**Import a file from URL**

| Name    | Description                                                                                                                                                                                                                                               | Required |
| ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- |
| **URL** | Provide the URL to the source **PDF** document, or a `filetoken://` link from [PDF.co Built-In Files Storage](https://app.pdf.co/files). If you use another cloud service such as **Google Drive** or **Dropbox** ensure the link is publicly accessible. | Yes      |

| Name                  | Description                                                                                                                                                                                                     | Required |
| --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- |
| **customField**       | Comma-separated list of [custom field](/integrations/make/ai-invoice-parser#custom-fields) names to extract. Use `camelCase` for field names (e.g., `storeNumber`, `deliveryDate`).                             | No       |
| **lineItemStructure** | A JSON object that defines a [custom structure](/integrations/make/ai-invoice-parser#line-item-structure) for line items. Each key is a field name (in `camelCase`) and each value is `"string"` or `"number"`. | No       |
| **Webhook URL**       | The callback URL or Webhook used to receive the output data.                                                                                                                                                    | No       |
| **Export Type**       | Choose between `Download a File` or `JSON Output`. Default is `Download a File`.                                                                                                                                | No       |

### Integrating External File Sources

<Note>
  Streamline your **Make** workflows with external file sources like **Google Drive** and **Dropbox** using their unique actions. Discover efficient integration strategies in our guide: [File Source Integrations in Make](/integrations/make/input-file-sources).
</Note>

### Custom Fields

AI Invoice Parser with custom fields support automatically detects invoice layouts and extracts both standard schema data and user-specified custom fields without requiring manual templates.

The `customField` parameter allows you to specify additional fields to extract beyond the standard schema. Some examples include:

* `storeNumber` - Store or branch identifier
* `deliveryDate` - Expected delivery date
* `financialCharges` - Additional financial charges
* `lineTotal` - Total amount for line items
* `purchaseOrderRef` - Purchase order reference number
* `customerReference` - Customer reference number
* `departmentCode` - Department or cost center code

<Note>
  If a custom field returns an empty value, please [contact our support team](https://pdf.co/support/request?subject=ai-invoice-parser%20-%20custom%20fields) to help improve the extraction accuracy.
</Note>

### Line Item Structure

The `lineItemStructure` parameter lets you define a custom schema for line items. Each key is a field name you choose (in `camelCase`) and each value is the expected data type — either `"string"` or `"number"`.

When provided, every object inside the `lineItems` array will contain exactly the fields you specified. If a value cannot be extracted from the invoice, the field will still be present with an empty or default value instead of being omitted.

<Note>
  Use `camelCase` for field names (e.g., `unitPrice`, `totalPrice`). The field names you define will be used as-is in the response, giving you full control over the output keys.
</Note>

## Output

| Name               | Description                                                                              |
| ------------------ | ---------------------------------------------------------------------------------------- |
| `body`             | An object array containing the all invoice parsing result.                               |
| `error`            | Details of any errors (if any).                                                          |
| `status`           | The [response status](/api-reference/introduction) code. If all good this will be `200`. |
| `credits`          | The credits spent on the process.                                                        |
| `remainingCredits` | The credits left on your account.                                                        |
| `duration`         | The time it took for the process.                                                        |
| `Page Count`       | Total Page Count.                                                                        |

## Supported Languages

* **Albanian (Shqip)**
* **Bosnian (Bosanski)**
* **Bulgarian (Български)**
* **Croatian (Hrvatski)**
* **Czech (Čeština)**
* **Danish (Dansk)**
* **Dutch (Nederlands)**
* **English**
* **Estonian (Eesti)**
* **Finnish (Suomi)**
* **French (Français)**
* **German (Deutsch)**
* **Greek (Ελληνικά)**
* **Hungarian (Magyar)**
* **Icelandic (Íslenska)**
* **Italian (Italiano)**
* **Latvian (Latviešu)**
* **Lithuanian (Lietuvių)**
* **Norwegian (Norsk)**
* **Polish (Polski)**
* **Portuguese (Português)**
* **Romanian (Română)**
* **Russian (Русский)**
* **Serbian (Српски)**
* **Slovak (Slovenčina)**
* **Slovenian (Slovenščina)**
* **Spanish (Español)**
* **Swedish (Svenska)**
* **Turkish (Türkçe)**
* **Ukrainian (Українська)**
