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

# Invoice statuses

> Invoice statuses in ABBYY FlexiCapture for Invoices — Valid, Exception, and Rejected — how rule checks assign them and how operators change them manually.

<Info>
  This feature must be enabled by the Administrator. Otherwise, the **Invoice Status** column remains empty and no status or status description is displayed in the data form.
</Info>

Statuses are assigned to invoices based on rule checks or manual checks performed by operators. Statuses are displayed in the **Invoice Status** column in the document list.

<Note>
  Rule checks affect the status of invoices only when they are processed within the Invoice Processing (EU) project. For more information, see [Rules and the status of invoices in the Invoice Processing (EU) project](#ruleseu) below.
</Note>

| Status        | Description                                                                                                                                                                                                                        |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Valid**     | Rule checks completed successfully; the invoice is ready for export.                                                                                                                                                               |
| **Exception** | The invoice requires verification.                                                                                                                                                                                                 |
| **Rejected**  | The invoice does not comply with legislation (necessary data could not be found, is missing, or was recognized incorrectly). Specify this data manually or process the invoice another way (for example, return it to the vendor). |

The status of an invoice is determined automatically by validation rules. When errors have been corrected, rule checks run again and a new status is automatically assigned. For more information, see [Available rules](/flexi-capture/invoice-reader/ir-rules).

If an invoice contains errors that could not be corrected and has a status other than **Valid**, the operator must confirm the status. Such invoices are exported separately from the correctly completed invoices (as specified by the Administrator).

You can also set a status manually. For example, to let the program export invoices that do not satisfy some of the rules, the operator can change their status to **Valid**. Similarly, an invoice that satisfies all of the rules but should not be exported must be changed manually to **Rejected** or **Exception**.

## Change the status of an invoice

The current status of an invoice and a description of the rule used to determine it are displayed at the top of the data form. The reason for a manual status change may also be displayed there.

<Steps>
  <Step title="Open the status list">
    Click the <img src="https://mintcdn.com/abbyy/IFr-A2MDVJd80FDs/images/flexi-capture/DotsButton.png?fit=max&auto=format&n=IFr-A2MDVJd80FDs&q=85&s=6fea4abb8a79f9ec8ff1ed79c45b17bd" alt="" style={{display:"inline-block",verticalAlign:"middle",margin:0}} width="19" height="17" data-path="images/flexi-capture/DotsButton.png" /> button to the right of the status.
  </Step>

  <Step title="Select a status">
    Select the status you want to assign.
  </Step>

  <Step title="Select a reason">
    Select the reason for the manual status change, or type your own (unless custom reasons have been forbidden by the Administrator).
  </Step>
</Steps>

## <a id="ruleseu" />Rules and the status of invoices in the Invoice Processing (EU) project

### Business Unit

| Rule                                                           | Description                                                                                                                                                     | Effect on invoice status |
| -------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------ |
| **Information about business units must be added to database** | Checks whether a new business unit that was found on the image and saved to the BU data set has been added to the database.                                     | Rejected                 |
| **Business Unit's address is required**                        | Checks that the `BU\Street` field is not empty.                                                                                                                 | Rejected                 |
| **Business Unit's name is required**                           | Checks that the `BU\Name` field is not empty.                                                                                                                   | Rejected                 |
| **Business Unit's VATID is required**                          | Checks that the `BU\VATID` field is not empty. Applied to all supported countries except Switzerland.                                                           | Rejected                 |
| **Business Unit must be found in database**                    | Checks whether the business unit found on the invoice image is in the BU data set.                                                                              | Rejected                 |
| **Business Unit's Country is required**                        | Checks that the `BU\Country` field is not empty.                                                                                                                | Rejected                 |
| **Check tax rates on national invoices**                       | Checks that the applied tax rates are correct for invoices from the same country. The possible tax rates and their validity periods are known for each country. | Rejected                 |
| **Check tax rates field on international invoices**            | Checks that the applied tax rates are correct for international invoices. The possible tax rates and their validity periods are known for each country.         | Exception                |

### Vendor

| Rule                                             | Description                                                                                                              | Effect on invoice status |
| ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------ |
| **Vendor address is required**                   | Checks that the `Vendor\Street` field is not empty.                                                                      | Rejected                 |
| **Vendor name is required**                      | Checks that the `Vendor\Name` field is not empty.                                                                        | Rejected                 |
| **Vendor VATID is required**                     | Checks that the `Vendor\VATID` field is not empty. Applied to all supported countries except Switzerland.                | Rejected                 |
| **Vendor must be found in database**             | Checks whether the vendor found on the invoice image is in the vendor data set.                                          | Exception                |
| **Vendor details must be added to database**     | Checks whether a new vendor that was found on the image and saved to the vendor data set has been added to the database. | Exception                |
| **Vendor's bank details are required**           | Checks whether IBAN, Bank code, and Bank Account correspond to values in the vendor data set.                            | No effect                |
| **Check vendor's bank details against database** | Checks that the vendor's bank details detected on the invoice image are the same as those in the **Vendor** data set.    | No effect                |

### Invoice Header Data

| Rule                                                  | Description                                                                                                   | Effect on invoice status |
| ----------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------ |
| **Invoice number is required**                        | Checks that the **Invoice Number** field is not empty. Applied to all supported countries except Switzerland. | Rejected                 |
| **Invoice date is required**                          | Checks that the **Invoice Date** field is not empty.                                                          | Rejected                 |
| **Delivery date is required**                         | Checks that the **Delivery Date** field is not empty. Has no effect if **Delivery Date Indicator** is set.    | Rejected                 |
| **Delivery date must be earlier than Invoice date**   | Checks that the delivery date is on or before the invoice date.                                               | Exception                |
| **Delivery date must not be earlier than a year ago** | Checks that the delivery date is within the last 360 days.                                                    | Exception                |
| **Check currency value**                              | Checks that the currency is one of the currencies specified for the project.                                  | Rejected                 |

### Amounts

| Rule                                                    | Description                                                                                                                                                                         | Effect on invoice status |
| ------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------ |
| **Total is a required field**                           | Checks that the **Total** field is not empty.                                                                                                                                       | Rejected                 |
| **Amount check**                                        | Checks whether Net Amount + Tax Amount = Total. If additional costs or discounts are detected, checks whether Net Amount + Tax Amount + Additional Costs − Discount Amount = Total. | Exception                |
| **Tax Rate field must not be empty**                    | If Net Amount or Tax Amount is not empty, the respective Tax Rate must not be empty.                                                                                                | Rejected                 |
| **If tax rate is detected, pre-tax amount is required** | For each tax rate found, checks that the respective Net Amount and Tax Amount are not empty and that Tax Amount = (Tax Rate / 100) × Net Amount.                                    | Rejected                 |
| **If tax rate is found, tax amount is required**        | Checks that for each detected tax rate, the respective Tax Amount is not empty. Applied only to invoices from Germany.                                                              | Rejected                 |
| **Total Tax is required field**                         | Checks that the `Amounts\Total Tax Amount` field is not empty. Applied to all supported countries except Germany.                                                                   | Rejected                 |
| **Check Tax field**                                     | Checks that for each detected tax rate, the respective Tax Amount is correct for the respective Net Amount and Tax Rate (that is, Tax Amount = Net Amount × Tax Rate).              | Exception                |
| **Check Total Tax field**                               | Checks that Total Tax Amount = Tax Amount 1 + Tax Amount 2. Applied to all supported countries except Germany and Great Britain.                                                    | Exception                |
| **Check Net Total field**                               | Checks that Total Net Amount = Net Amount 0 + Net Amount 1 + Net Amount 2. If the Total Net Amount field is empty, this rule fills it in according to the calculation.              | Exception                |
| **Check Total field if total tax amount is required**   | Checks that the sum of the detected net amount, tax amount, and additional costs equals Total. Applied to all countries except Germany.                                             | Exception                |
| **Check Total field if total tax amount is optional**   | Checks that the sum of each found net amount, tax amount, and additional costs equals Total. Applied to invoices from Germany.                                                      | Exception                |
| **Verify net total against order items**                | Checks the sum of the values in the **TotalPriceNetto** column of the **LineItems** table against the invoice amount before taxes (**TotalNetAmount**).                             | No effect                |

### Purchase Order

| Rule                                                                | Description                                                                                                                      | Effect on invoice status |
| ------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | ------------------------ |
| **Check invoice line items count against order items count**        | Checks whether the number of line items in an invoice equals the number of line items in the corresponding purchase order.       | No effect                |
| **Check purchase order number and amount**                          | Checks whether the order number and amount captured from an invoice correspond to the orders in the **PurchaseOrders** data set. | Rejected                 |
| **Check if invoice line items are matched with unique order items** | Checks whether multiple invoice line items are associated with the same purchase order line item.                                | Rejected                 |

### Line Items

| Rule                                        | Description                                                                                                                                                                                                  | Effect on invoice status |
| ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------ |
| **Check item amount**                       | For each invoice item, checks that Quantity × UnitPrice equals TotalPriceNetto for the item after DiscountPercentage is applied.                                                                             | No effect                |
| **Match invoice line item with order item** | Checks that each invoice line item has a corresponding item in the **PurchaseOrderItems** data set.                                                                                                          | Rejected                 |
| **Check LineItems currency value**          | Checks that the line item's currency is one of the currencies specified for the project.                                                                                                                     | Rejected                 |
| **Price per unit is required**              | Checks that the **Unit Price** column is not empty.                                                                                                                                                          | Exception                |
| **Line level Total is required**            | Checks that the **Total Price Netto** field is not empty.                                                                                                                                                    | Exception                |
| **Quantity is required**                    | Checks that the **Quantity** column is not empty.                                                                                                                                                            | Exception                |
| **Check GL Code**                           | Checks whether the field value is in the **GLCodes** data set. Also used to make a list of suggestions for stations.                                                                                         | No effect                |
| **Check cost center**                       | Checks whether the **VendorId**, the associated **BUId**, and the associated `LineItems/CostCenter` field are present in the **CostCenters** data set. Also used to make a list of suggestions for stations. | No effect                |
