You uploaded your catalogue, and instead of an approval you got a list of errors. The customer is waiting, the deadline from the supplier guideline is running, and the message in the report is of little help: “element not expected”, “invalid value”, “import aborted”.
The good news: rejected BMEcat catalogues almost always come down to the same eight causes. This article goes through them in turn – how to recognise the error, why it happens and how to fix it.
The eight causes at a glance
| No. | Cause | Typical message |
|---|---|---|
| 1 | Character encoding and special characters | File not readable, import aborts immediately |
| 2 | Element order and mandatory fields | Element not expected, element missing |
| 3 | Units of measure | Invalid order unit |
| 4 | Prices | Invalid price, unknown price type |
| 5 | Item numbers | Duplicate item, value too long |
| 6 | Classification | Unknown class, wrong version |
| 7 | Images and documents | File not found |
| 8 | Version and transaction type | Wrong format, catalogue cannot be assigned |
Whether your file passes the first of these can be checked in a few seconds with the free validator:
Check your BMEcat catalogue for free
1. Character encoding and special characters
How to recognise it: The import aborts right at the start, often pointing to a specific line and column. Or the catalogue is accepted, but “Größe” turns into “Größe”.
Why it happens: The first line of the file says encoding="UTF-8", but the file was saved in a Windows encoding – or the other way round. The second classic is characters that have a meaning of their own in XML: an ampersand in “nuts & bolts” or a less-than sign in “Ø < 10 mm” ends the file as far as the parser is concerned.
How to fix it: Save the file in the encoding actually declared in the first line; if in doubt, UTF-8. In text, the characters &, < and > must be written as &, < and >. A catalogue tool does this automatically; anyone building XML with Excel macros or search and replace trips here first.
2. Element order and mandatory fields
How to recognise it: Messages such as “element ARTICLE_ORDER_DETAILS not expected here” or “DESCRIPTION_SHORT missing”.
Why it happens: BMEcat prescribes not only which elements exist but also their order. In BMEcat 1.2, within an item SUPPLIER_AID is followed first by ARTICLE_DETAILS, then ARTICLE_FEATURES, ARTICLE_ORDER_DETAILS, ARTICLE_PRICE_DETAILS and only then MIME_INFO. If prices come before the order details, the file is invalid even though every value is correct in itself. Then there are mandatory fields: without a short description, order unit and price an item is not complete.
How to fix it: Validate the file against the official schema of the version your customer requires. Empty cells in the source table are the most common source of missing mandatory fields – before exporting, filter for items without a short description, price or unit.
3. Units of measure
How to recognise it: “Invalid unit” for ORDER_UNIT or CONTENT_UNIT, usually for a great many items at once.
Why it happens: In your ERP the unit is called “pcs”, “ea” or “Stk”. BMEcat expects internationally standardised codes instead, such as C62 or PCE for piece, MTR for metre, KGM for kilogram, PK for pack. Which codes exactly are permitted is additionally defined by the platform: what one accepts as a piece, another rejects.
How to fix it: Create a mapping table once, from your internal units to the required codes, and apply it to every export. Watch out for packaging units: “box of 100 pieces” consists of an order unit, a content unit and the number of content units in one order unit.
4. Prices
How to recognise it: “Invalid value for PRICE_AMOUNT”, “unknown price type”, or items that appear with a wrong price without any error message.
Why it happens: Depending on its regional settings, Excel exports numbers with a decimal comma and thousands separators. BMEcat requires a point as the decimal separator and no thousands separator: 1234.50, not 1.234,50 or 1,234.50. The second cause is the price type: the price_type attribute has fixed values such as net_list for the list price excluding VAT or net_customer for the customer-specific net price. And if the currency is missing both in the catalogue header and on the price, the price cannot be interpreted.
How to fix it: Format prices as plain numbers with a decimal point before exporting. Clarify with the customer which price type is expected – under framework agreements it is usually the customer-specific net price. With scale prices, each tier needs its own lower bound.
5. Item numbers
How to recognise it: “Item exists more than once” or “value exceeds maximum length”.
Why it happens: The item number SUPPLIER_AID must be unique within the catalogue. Duplicates arise when variants share a number or when Excel strips leading zeros and turns 00123 and 123 into the same value. The standard allows 32 characters, many platforms considerably fewer. Spaces, slashes or umlauts in the number lead to further rejections.
How to fix it: Check the source table for duplicate numbers before exporting and format the column as text. If your numbers are longer than the platform allows, you need a fixed short number – not one that is generated afresh with every export, otherwise the target system will not recognise the items again.
6. Classification
How to recognise it: “Unknown class”, “classification system not supported”, or items that do not show up in the customer search.
Why it happens: Almost every customer requires classification by ECLASS, ETIM or UNSPSC – and in a specific version. A code from ECLASS 9.1 may not exist in ECLASS 5.1. Often the name of the system is not written in the catalogue the way the platform expects, or too coarse a level is delivered: the eight-digit ECLASS code of the lowest level is required, the parent group is supplied.
How to fix it: Take system and version from the supplier guideline and record both in the catalogue exactly as stated. If your data uses a different classification or product groups of your own, you need a mapping. This is the most laborious step for the first catalogue – and the one that pays off most afterwards, because it can be reused for every further customer.
7. Images and documents
How to recognise it: The catalogue is accepted but images are missing; or the platform reports “file not found”.
Why it happens: The catalogue only contains the reference to the image; the file itself is delivered separately. If the name does not match exactly, the target system cannot find it: Pliers_180.JPG and pliers_180.jpg are two different files to most servers. Umlauts and spaces in file names are another source of errors, as are references to local paths such as C:\Images\....
How to fix it: Use file names without umlauts, spaces and special characters, consistently in lower case. Before delivery, check that every file named in the catalogue is in the image package. Clarify whether the platform expects file names or full web addresses.
8. Version and transaction type
How to recognise it: The import fails completely, or a price update unintentionally deletes items.
Why it happens: BMEcat 1.2 and BMEcat 2005 are not interchangeable. Version 1.2 describes items in the ARTICLE element, version 2005 in the PRODUCT element; a platform that expects 1.2 cannot do anything with a 2005 file. Then there is the transaction type: T_NEW_CATALOG transfers a complete catalogue, T_UPDATE_PRODUCTS changed items, T_UPDATE_PRICES prices only. Sending an update when the platform expects a full catalogue results in a rejection – or an incomplete range.
How to fix it: Version and transaction type are stated in the guideline of the customer. If in doubt, the full catalogue is the safe choice. Also make sure that the catalogue ID and version number in the header match what is already loaded at the customer.
Formally valid and still rejected
Even if your catalogue passes all eight points, it can still come back. Every platform and many customers place rules of their own on top of the standard: shorter field lengths, no HTML markup in descriptions, mandatory GTIN, blocked commodity groups or price limits. These rules are not in the BMEcat specification but in the supplier guideline.
We have compiled what the major platforms require in addition, per target system:
- SAP Ariba integration – CIF catalogue, UNSPSC and approval via SAP Business Network
- Onventis integration – BMEcat 1.2 with extensions of its own and differing field lengths
- Jaggaer integration – requirements per product line and customer
- Unite Mercateo integration – BMEcat 1.2 and the rules of the marketplace
What to do after a rejection
- Sort the error list. Hundreds of messages usually go back to two or three causes. Group by message text, not by item.
- Work from top to bottom. Encoding and structure first: as long as the file cannot be read, all further messages are unreliable.
- Correct at the source, not in the XML file. A file repaired by hand will be faulty again at the next export.
- Validate before uploading again. Every failed attempt costs the customer time and trust.
How validation works in detail is described in our article on BMEcat validation. If your data comes from a spreadsheet, continue with Excel to BMEcat.
Find errors before your customer does
Primus Catalog starts exactly there, at the source: you upload your item list, map the columns once, and the software generates the catalogue with correct encoding, element order, units and classification. Validation runs before the export, and the mapping stays saved for the next price round.
If you already have a rejected file, upload it to the free validator. The report shows where it fails.
Check your BMEcat catalogue for free
Would you like to go through the error list from your customer together? Book a conversation.
Frequently asked questions about rejected BMEcat catalogues
Why is my BMEcat catalogue rejected although it is formally valid?
Because platforms and customers place rules of their own on top of the standard: shorter field lengths, specific classification versions, mandatory information such as GTIN or lead time. A file can conform to the BMEcat schema and still violate the supplier guideline.
Which BMEcat version should I deliver?
The one the customer requires. Many platforms in the German-speaking countries still work with BMEcat 1.2, others with BMEcat 2005. The two versions are structured differently and are not interchangeable.
Can I correct the errors directly in the XML file?
For a single typo, yes. For structural errors or many affected items it is not worth it: the correction has to be made at the source or in the mapping, otherwise the same error will occur again at the next export.
How do I check a BMEcat catalogue before uploading it?
With a validator that checks the file against the schema of the required version and reports typical content errors. The BMEcat validator by Primus Catalog is free and returns a report with the location of each error.
How long does it take to correct a rejected catalogue?
That depends on the cause. Encoding, number format and units can usually be fixed the same day. A missing classification for a large range is the most laborious case, because every item has to be assigned to a class.