Skip to content
ParsedMail

Marketplace order email parser

A marketplace order email parser reads sale notifications from Amazon, eBay, Etsy, Shopify and smaller marketplaces and returns one JSON shape for all of them: channel, order number, buyer, items, prices, fees, shipping method and ship-by date. ParsedMail sends that JSON by webhook or API to your ERP, inventory tool or order spreadsheet.

Email received

From: Etsy Transactions <[email protected]> Subject: You made a sale on Etsy, ship by Oct 19 Congratulations, you sold 2 items to Laura Kim. Order #3318840275 Ordered: Oct 14, 2026 Hand-thrown stoneware mug, speckled oat (SKU MUG-SO-12) Quantity: 2 | Price: $34.00 Item total: $68.00 Shipping: $8.95 Order total: $76.95 Shipping method: USPS Ground Advantage Ship by: Oct 19, 2026 Note from buyer: This is a gift, please leave out the receipt. View the order on Etsy to print a shipping label.

Fields described as

channel (Amazon, eBay, Etsy, Shopify, other), order number, order date, buyer name, items with SKU, title, quantity and price, shipping charged, order total, shipping method, ship by date, gift message

JSON delivered to your webhook

{
  "channel": "Etsy", 0.99
  "order_number": "3318840275", 0.99
  "order_date": "2026-10-14", 0.98
  "buyer_name": "Laura Kim", 0.97
  "items": [
    {
      "sku": "MUG-SO-12",
      "title": "Hand-thrown stoneware mug, speckled oat",
      "quantity": 2,
      "price": { "amount": 34, "currency": "USD" }
    }
  ], 0.96
  "shipping_charged": { "amount": 8.95, "currency": "USD" }, 0.97
  "order_total": { "amount": 76.95, "currency": "USD" }, 0.99
  "shipping_method": "USPS Ground Advantage", 0.95
  "ship_by_date": "2026-10-19", 0.97
  "gift_message": "This is a gift, please leave out the receipt." 0.86
}

Why sellers parse marketplace emails

Large sellers connect marketplaces to their systems through APIs and integration apps. Many sellers do not, or cannot for every channel: a small marketplace has no API, an integration app costs more than the channel earns, or an account is too new for API access. What every marketplace does provide is an email for each sale. Those emails are written for people, in a different layout per channel, and sellers end up copying orders into a spreadsheet or inventory tool by hand.

ParsedMail reads every channel against one schema, so an Amazon notification, an eBay sale email, an Etsy order and a Shopify notification all become the same JSON object. It complements, and does not replace, official integrations where you already have them. For orders that arrive from business customers instead, see the order email parser.

One order format for all channels

The value of a marketplace parser is the unified shape. A schema like the one in the example gives you:

  • channel as an enum, so reports and routing work per marketplace
  • items as a table with SKU, title, quantity and price per row
  • prices, shipping and fees as money objects with currency, useful when you sell on Amazon in the US and in Europe
  • order_date and ship_by_date as YYYY-MM-DD, so a late shipment check is a simple comparison

Fields a channel does not include stay null. Amazon notifications, for example, often leave out the buyer name and full address, which the seller sees only in Seller Central. The parser never fills such gaps with guesses.

Routing each channel to the same inbox

Sale notifications come from many sender addresses. Forward them all to one inbox with Gmail filters or Outlook rules, one rule per marketplace sender. Plus tags can mark the channel in the address, for example [email protected], which helps when one marketplace sends from several addresses. Set allowed senders on the inbox to the marketplace domains, so promotional emails and seller newsletters are logged as blocked_sender and not counted.

Gmail and Outlook send a confirmation email when you add a forwarding address. ParsedMail shows it in the log so you can click the link, and does not parse or count it.

Where the unified orders go

  • Inventory. Decrease stock per SKU in tools such as Sellbrite, Cin7, inFlow or a stock sheet, so a sale on one channel is reflected on the others.
  • ERP and accounting. Create a sales order in NetSuite, Business Central or Odoo, or a sales receipt in QuickBooks, with the channel as the customer or class.
  • Shipping. Send the order to ShipStation or a label tool and flag orders close to their ship-by date.
  • Order log. Append every order to a Google Sheet or Excel table, which is often the first step for small sellers. The email to spreadsheet page shows that setup.

Zapier, Make and n8n all receive the JSON with their built-in webhook triggers. Your own code can verify the signature and read the same payload, as described on the inbound email webhook page.

Cancellations, refunds and payouts

Marketplaces also email cancellations, return requests, refunds and payout summaries. On Growth and Scale, one inbox can hold a sale schema, a cancellation schema and a payout schema, and classification picks one per email. Your automation reads classification.schema and either creates an order, cancels it or posts a payout to accounting. On Starter, use separate inboxes for each kind of email, up to 5 on the plan. Shipping confirmations sent after you buy labels can go to an inbox for the shipping notification parser.

Volume and cost

Each sale notification is one email. Notifications rarely have attachments, so they use few or no pages. Starter covers 1,000 emails a month for $49, or $24 a month billed yearly, Growth 5,000 emails for $149 and Scale 25,000 for $499. Resent notifications with the same Message-ID, or the same sender, subject and body within 30 days, are marked as duplicates and not charged. When you reach the limit, parsing pauses and emails are stored until you upgrade or the period renews, and an alert is sent at 80 percent of the email limit.

Frequently asked questions

Does the marketplace parser connect to Amazon or eBay directly?

No. It reads the sale notification emails those marketplaces send you. That is why it works for channels without an API, and alongside official integrations where you have them.

Can it handle orders with many items?

Yes. Items are a table, and each item becomes a row with SKU, title, quantity and price. There is no separate limit on rows.

Why is the buyer address missing for some channels?

Some marketplaces leave the address out of the email. The parser returns only what the email contains, and missing values are null.

Can I tell which marketplace an order came from?

Yes. Add channel as an enum field. The sender, subject and original recipient address are also part of every webhook payload.

What happens with orders in different currencies?

Money fields return the amount and the currency together, for example EUR for an Amazon order in Germany and USD for an Etsy order in the US.

Related

See your own email as JSON

Paste one into the demo, describe the fields and look at the result. No account needed.