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

# Discrepancies

> How Mercora checks a document against its trade, and how to resolve the differences it finds. Also covers the expected documents checklist.

Once a document is [matched](https://docs.mercora.io/documents/matching.md) to a trade, Mercora compares it with the trade, and with its shipment if it has one, and flags each difference as a **discrepancy**. You decide whether each one is acceptable or needs fixing before you approve the document.

Examples come from aluminium trade ALU-2026-0012 of Veltana Metals SA (Altamira Metals DMCC → Extrunord Metallwerke GmbH), shipped under B/L CBAY-JEA-RTM-88213.

> [!NOTE]
>
> **Before you start:** checks need the **Trades** module. Resolving discrepancies, and correcting document values, needs permission to edit documents.

## What gets checked

Mercora compares the document field by field with the trade's record: its contract or recap, its legs, and what its approved documents have already established. Checks run when the document is matched, and again when you edit a field, click **Run checks**, or another document on the trade is approved.

* **Contracts, recaps, amendments, invoices, L/Cs, credit advices and B/Ls** get a full check: parties, product, quantities, prices and amounts, ports, dates, terms and references.
* **Every other type**, such as certificates and packing lists, is checked on product, quantity and weights, ports and vessel.
* **Container seals** are checked on every document that lists containers.

| Severity | Typical fields |
| - | - |
| **Critical** | Prices and amounts, buyer and seller, ports, product, contract status |
| **Warning** | Quantities outside tolerance, dates, other parties and banks, terms, currency, containers and seals, document numbers |
| **Info** | Shipment checks on a document covering several B/Ls, where Mercora can't isolate this shipment's part |

Prices and amounts must match exactly. Quantities may vary within the trade's tolerance from its contract or L/C, or 5% if none is stated.

### When Mercora holds back

When a comparison might not be fair, Mercora skips it rather than raise a false alarm:

* Wording and number formats don't count ("Santos" and "Port of Santos, Brazil" match). If a number can be read two ways, either reading passes.
* Units are converted; an unknown unit is skipped. Gross weight is never compared with contract quantity.
* Quantity is skipped on a multi-leg trade when the document doesn't say which leg it's for.
* Document issue dates aren't compared.
* A purchase contract is checked against the sale contract only on product, quantity, ports and dates, never on price, terms or parties: those differ by design.
* A B/L number is flagged only if the trade doesn't know it yet.

## Reviewing discrepancies in the Inbox

Open discrepancies sit at the top of the document's review panel in the [Inbox](https://docs.mercora.io/documents/inbox.md), and the document shows a status such as **2 disc.** Each card shows the field, its severity, the document's value (**Doc**) and what it was compared with. Click a card to highlight the value on the page.

There are two kinds of card. A shipping document can carry both, and the same seal can be flagged on each.

| Card | Compared with | Your choices |
| - | - | - |
| **Trade** | The trade's record | **Approve** if the difference is acceptable (the trade's value stands). **Decline** if it must be fixed at the source: it's marked **Declined — needs fixing** and included when you [request a correction](https://docs.mercora.io/documents/inbox.md#request-a-correction). |
| **Shipment** | The document's shipment | **Keep doc value** if the document is right: the shipment is updated to match. **Keep shipment value** if the shipment is right: the discrepancy is marked **Declined — needs fixing**. |

Every card also has **Note…** to record why. Resolved cards stay listed, muted, below the open ones; **Undo** reopens one.

![A discrepancy card with Trade and Doc values and Approve, Decline, Note…](https://mintcdn.com/placeholder-f4ffdeec/22McaegbdDRSI41b/images/documents/discrepancy-card-trade.png?fit=max\&auto=format\&n=22McaegbdDRSI41b\&q=85\&s=6cb77feb6bbadb7eeef81e8f671cc5bc)

A trade discrepancy: the weight certificate's seal for container GCLU4021440 is GSL7152207; the trade has GSL7152270.

![A critical discrepancy card on the discharge port](https://mintcdn.com/placeholder-f4ffdeec/22McaegbdDRSI41b/images/documents/discrepancy-card-critical.png?fit=max\&auto=format\&n=22McaegbdDRSI41b\&q=85\&s=ca2d74a7b7e73bc06b419a3721e8da2a)

A critical shipment discrepancy: the shipment says Antwerp, Belgium; the packing list says Rotterdam, Netherlands. Keep doc value moves the shipment to Rotterdam.

**Keep doc value** updates the shipment straight away if the document is already on it, otherwise when you approve the document. It applies to the shipment's own fields (quantity, vessel and IMO, ports, B/L number and date, ETD). For a single container's weight or seal, the decision is recorded but the shipment doesn't change.

**If Mercora misread the document,** double-click the **Doc** value, correct it and press <kbd>Enter</kbd>. The discrepancy disappears if the value now matches. Seal values can't be edited this way.

> [!WARNING]
>
> Approving a document accepts all its open **trade** discrepancies, as the line beside **Approve** says ("accepts 2 differences"). Open **shipment** discrepancies aren't accepted: they stay open on the shipment.

## Discrepancies on a trade

A trade's **Discrepancies** tab lists its trade discrepancies under **Open** and **Resolved**, with field, severity, status, source document and date. Click a row to resolve it in the Inbox.

Shipment discrepancies are on the shipment's own **Discrepancies** tab, where you can choose **Keep doc value** or **Keep shipment value** directly. See [Shipments](https://docs.mercora.io/trades/shipments.md).

## Expected documents

A trade's **Documents** tab has an **Expected Documents** checklist of what the trade still needs.

1. Click **Generate** to build it from the document requirements in the trade's contract and L/C (marked **Contract/LC**). Click **Refresh** after a new contract or L/C arrives.
2. As documents are approved, Mercora ticks off the requirements they fulfil, for example a phytosanitary certificate read as a compliance certificate.
3. Click an item's status icon to mark it **Pending**, **Satisfied** or **Not needed**, or **Remove** it. Click **Add** for a document the contract doesn't mention.

A terminated trade expects no further documents. Changing the checklist needs permission to edit trades.

![The Expected Documents card with the checklist](https://mintcdn.com/placeholder-f4ffdeec/22McaegbdDRSI41b/images/documents/expected-documents-card.png?fit=max\&auto=format\&n=22McaegbdDRSI41b\&q=85\&s=f6bc41708b9110a5ba7154592d207868)

Every document the contract and L/C require for sugar trade VCS-S-2026-0714 has arrived: 10/10.

## Next steps

* [Trades overview](https://docs.mercora.io/trades/overview.md): the trade your approved documents built.
* [Trade financials](https://docs.mercora.io/trades/financials.md): invoices and payments on the trade.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.