> For the complete documentation index, see [llms.txt](https://docs.unimarket.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.unimarket.com/documentation/troubleshooting/invoices-not-appearing-in-banner.md).

# Troubleshooting: Invoices Not Appearing in Banner

When an invoice is created in Unimarket (via electronic cXML or in the Invoices module), it is transmitted to Banner via an API.

If the invoice does not appear in Banner (e.g., in `FAIINVL` or `FAAINVE`), follow this multi-step diagnostic workflow.

## Step 1: Check Community Inbox for Integration Errors

* Check the Community Inbox to see if an error was generated for the invoice.
* If an error was generated, refer to [Unimarket-to-Banner PO Integration Errors](/documentation/troubleshooting/unimarket-to-banner-po-integration-errors.md).

## Step 2: Check the Unimarket "Error\_" Code

At times, errors will appear in Unimarket to define the error that occurred:

1. Navigate to the **Invoices** module and open the specific invoice.
2. Look at the invoice number to see if an error appears (e.g. `INXXXX (Error_10)`).
3. Unimarket provides high-level diagnostic codes:

| Code          | Meaning               | Common Cause                                                                  |
| ------------- | --------------------- | ----------------------------------------------------------------------------- |
| **Error\_10** | Header Build Error    | The Purchase Order has not posted yet, or the Vendor ID is missing in Banner. |
| **Error\_20** | Header API Error      | Failure in the initial creation of the Banner Invoice header.                 |
| **Error\_30** | Item/Accounting Error | Invalid FOAPAL strings or referencing a closed/cancelled PO line.             |
| **Error\_40** | Completion API Error  | The invoice was created but failed the final "Complete" validation in Banner. |

4. If no error appears in Unimarket, proceed to Step 3.

## Step 3: Reach out to the Support team

* Review if a timeout or 500 Internal Server error was generated on the backend.
  * A 500 Internal Server Error is a generic HTTP status code indicating the server encountered an unexpected condition preventing it from fulfilling a request. This occurs if the customer's server was temporarily down, preventing the invoices from flowing into Banner.
* If there are no timeout errors found, proceed to Step 4.

## Step 4: Technical Diagnostics (SQL)

If the error code is vague, use SQL to view the exact response from the Banner API.

### Step A: Check the Request (FZBEPRC)

Verify the message reached Banner. Search by the Unimarket Invoice ID (e.g., `I0123456`).

```sql
SELECT FZBEPRC_ID, FZBEPRC_STATUS, FZBEPRC_DATE_TIME
FROM FISHRS.FZBEPRC
WHERE FZBEPRC_CXML LIKE '%IXXXXXXX%'
ORDER BY FZBEPRC_DATE_TIME DESC;
```

### Step B: Check the API Feedback (FZRCXML)

This is the most critical table. It stores the specific error message returned by the Banner API.

```sql
SELECT FZRCXML_DOCUMENT_ID, FZRCXML_ERROR_MSG, FZRCXML_ACTIVITY_DATE
FROM FISHRS.FZRCXML
WHERE FZRCXML_FZBEPRC_ID = (SELECT FZBEPRC_ID FROM FISHRS.FZBEPRC WHERE FZBEPRC_CXML LIKE '%IXXXXXXX%')
ORDER BY FZRCXML_ACTIVITY_DATE DESC;
```

## Step 5: Banner Form Check - Incomplete Invoices (FGRIDOC)

Sometimes the invoice *is* in Banner, but is invisible in inquiry forms because it is **Incomplete**.

1. Open form **FAAINVE** (Invoice Entry).
2. In the **Document** field, enter the Unimarket I-number.
3. If the record loads, it means it is "Incomplete." Navigate to the **Completion** tab to see the specific validation error (e.g., NSF, Invalid Fund).
4. Alternatively, run the **FGRIDOC** report to see all incomplete documents.

{% hint style="info" %}
Following an upgrade to Oracle 19c, ensure the `FISHRS` user has been granted `CREATE JOB` permissions. Without this, the background jobs that reprocess "PO Not Posted" errors will fail to trigger.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.unimarket.com/documentation/troubleshooting/invoices-not-appearing-in-banner.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
