META CATALOG CSV CHECK · RUNS IN YOUR BROWSER · NOTHING UPLOADED

Why was my Facebook or Instagram catalog upload rejected?

Paste or drop your Meta catalog feed CSV or TSV (Commerce Manager, Facebook Shops, Instagram Shopping, dynamic ads) and get every problem with its line number before you upload: duplicate ids, prices without a currency or written with $ or a decimal comma, In Stock instead of in stock, a sale price that is not lower than the price, empty or http links, WebP images, barcodes that Excel turned into 4.00638E+12, GTINs with a wrong check digit, and variants that look identical. Then apply the safe fixes and download a cleaned file.

The file is read in this browser tab and never leaves your device. Independent of Meta Platforms, Inc. Field names, limits and value lists are read from memory of Meta's public catalog help pages; no Commerce Manager upload was available when this was built.

1. Your feed file

A product feed saved as CSV or tab-separated text, or an export from Shopify, WooCommerce, a spreadsheet or your own system.

Choose a file or paste the text, then click Check file.

The rules, and what they leave out

Common questions

Why was my Facebook or Instagram catalog upload rejected?

The usual causes are a file saved with semicolons or as UTF-16, a missing required column (id, title, description, availability, condition, price, link, image_link, brand), duplicate ids, prices without a currency code like 19.99 USD or written with a $ sign or a decimal comma, availability values such as In Stock instead of in stock, empty image or product links, an image in WebP format, a sale price that is not lower than the price, and barcodes that Excel turned into 4.00638E+12. This tool tests each of them and names the line.

Why did Excel change my ids and barcodes?

Excel treats digit strings as numbers. A 12-digit UPC such as 036000291452 becomes 36000291452 and a long id becomes 1.2346E+09 or gains a trailing .0. Format those columns as Text before pasting. This tool flags each, and restores a barcode's leading zeros only when the padded number has a valid check digit; 36000291452 becomes 036000291452, but a number that is still invalid is left for you to check.

What format does the price field use?

From memory of Meta's catalog help, a price is the amount, a space, then the ISO 4217 currency code, for example 19.99 USD, with a decimal point and no thousands separator. A currency symbol such as $ or a decimal comma is flagged, not guessed, because $ can mean several currencies. sale_price uses the same form and must be lower than price in the same currency.

What does Apply safe fixes change?

Only things with one reasonable reading: semicolon or pipe delimiters to commas, stray spaces, a trailing .0 on an id or barcode, a barcode's leading zeros when the check digit confirms them, availability and condition spelling and case, and price spacing such as 19.99USD to 19.99 USD. It never edits a title, a description, a brand, a link, an image address or the digits of a price.

Is it safe to put my product feed into a web page?

The page runs in your browser, the file is read locally and nothing is uploaded; a test in the code asserts there are no network calls.

What does this not check?

Whether Meta will accept the feed today, whether your domain is verified for the catalog, whether links and images actually open, image dimensions, whether a product category is current, and Meta's commerce and advertising policies, which can reject a perfectly formatted item. A clean result is not a promise of approval: upload a small test feed first.