원클릭으로
amazon-invoice
Generate tax invoices from Amazon Seller Central order data using browser extraction and PDF generation
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Generate tax invoices from Amazon Seller Central order data using browser extraction and PDF generation
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Amazon listing CRUD via the category flat-file (Add Products via Upload). Create a variation family (parent + colour/size children), update attributes, change parent-child relationships, and delete SKUs — all in one template round trip. Also covers the end-to-end sourcing flow: a supplier link (e.g. 1688) → extract product data → local GPU-free OCR of detail images → generate title / bullet points / description → bilingual review with the user → propose the parent-child structure → fill the template → upload → read the processing report. Load this BEFORE any browser-use action on sellercentral.amazon.<tld>/listing/upload or when the task is to create / edit / delete a listing from a product link.
Common Amazon Seller Central / advertising-console mechanics — marketplace TLD map; version-aware navigation (New Seller Central 'NGS' vs classic, navigate by direct URL); sign-in as a challenge LOOP with Ziniao auto-fill of password / OTP (紫鸟验证码服务) / hosted passkey (已托管账号Passkey, native overlay → coordinate-click), Ziniao-stored-else-human rule; ad-console vs seller-central account caveat; capture rule. Prerequisite: every other amazon-* skill (amazon-ads, amazon-reports, amazon-invoice, amazon-listing / amazon-fbn / etc.) expects this loaded for cross-cutting auth and navigation patterns.
Save the workflow you just carried out as a reusable skill — OR update an existing skill — whenever the user asks to remember, reuse, or amend it. Triggers include "把这个任务的流程保存为技能", "save this workflow as a skill", "save to skill", "remember how to do this", "turn this into a skill", "next time do it the same way", AND update/extend phrasings like "update that skill", "extend the skill", "add this step to the skill", "make the skill also remember to…", "更新这个技能", "把这一步加到技能里", "让技能也记住…". Search the existing skills first, then EXTEND the one that already covers this workflow or CREATE a new one — never duplicate. Skills are saved/extended ONLY through the vibe_seller_save_skill MCP tool (the built-in Write/Edit tools do not persist skill files); they then auto-load for future tasks.
Common noon Seller Center mechanics — login (OTP auto-fetch), page-structure URL map, My Catalog read access, common modals, button-click patterns, project-ID discovery. Prerequisite: every other noon-* skill (noon-listing, noon-fbn, noon-exports, noon-ads) expects this loaded for auth and shared UI patterns.
Amazon Sponsored Products / Sponsored Brands / Sponsored Display ads + Coupons on Seller Central / advertising console. ONE catalog covering BOTH mechanics (URLs, click paths, modal patterns, kat-* component gotchas, field input ranges) AND workflows (tuning existing campaigns, weekly review, search-term harvest, ACOS improvement). Load this skill BEFORE any browser-use action that creates, edits, captures, archives, or downloads campaigns / ad-groups / keywords / product targets / coupons on amazon.<tld> or advertising.amazon.<tld>. The catalog below points to topical references — load whichever ones the task needs. Defaults to last 30 days for tuning analysis but accepts any user-specified window.
MUST load BEFORE running any browser-use command. This is the only bridge between the agent and the browser — browser-use 0.13 has NO subcommands (open/click/state are gone); you drive the browser by piping Python helper code via a heredoc. Contains the helper API, wrapper rules, session management, and store-task restrictions. Without this skill, browser commands will fail.
| name | amazon-invoice |
| description | Generate tax invoices from Amazon Seller Central order data using browser extraction and PDF generation |
| requires | ["amazon-shared"] |
PREREQUISITE: Read
../amazon-shared/SKILL.mdfor marketplace TLD map, sign-in / Ziniao / OTP handling, and the hamburger-menu navigation pattern (used to reach Tax Document Library before running this generator).
Generate professional tax invoices for Amazon orders by extracting data from Seller Central and producing PDF invoices via ReportLab.
Python deps are pre-installed — the shared workspace venv already has reportlab. Just use python (it's on your PATH). If you get an import error, run: uv pip install -r .claude/skills/amazon-invoice/requirements.txt
Resolve seller info (company name, VAT/RFC numbers) — optional, try in order:
stores/<store-slug>/) for seller-info.md or notes.md containing seller entity name and VAT numbers.seller-info.md (e.g. stores/<store-slug>/seller-info.md) so future tasks can find it.IMPORTANT: Stay in your current working directory. Do NOT cd into the skill directory or any global path. Use relative paths for scripts and output.
You always know the country before generating an invoice. Get it from:
platform_countries field in your store context tells you which countries this store operates in (e.g., amazon: US, UK). If the task targets a specific country, use task_country.The country field (2-letter ISO code) is required in the JSON you pass to the script. The script uses it to look up the correct tax rate and tax rules.
The script has built-in tax rules for all Amazon marketplace countries:
| Country | Code | Tax | Rate | Prices on Order Page |
|---|---|---|---|---|
| Saudi Arabia | SA | VAT | 15% | Include tax |
| UAE | AE | VAT | 5% | Include tax |
| Egypt | EG | VAT | 14% | Include tax |
| South Africa | ZA | VAT | 15% | Include tax |
| Turkey | TR | KDV | 20% | Include tax |
| UK | UK/GB | VAT | 20% | Include tax |
| Germany | DE | MwSt | 19% | Include tax |
| France | FR | TVA | 20% | Include tax |
| Italy | IT | IVA | 22% | Include tax |
| Spain | ES | IVA | 21% | Include tax |
| Netherlands | NL | BTW | 21% | Include tax |
| Poland | PL | VAT | 23% | Include tax |
| Sweden | SE | Moms | 25% | Include tax |
| Belgium | BE | BTW | 21% | Include tax |
| Ireland | IE | VAT | 23% | Include tax |
| Japan | JP | CT | 10% | Include tax |
| India | IN | GST | 18% | Include tax |
| Singapore | SG | GST | 9% | Include tax |
| Australia | AU | GST | 10% | Include tax |
| US | US | — | 0% | No tax |
| Canada | CA | GST | 5% | Exclude tax |
| Mexico | MX | IVA | 16% | Exclude tax |
| Brazil | BR | ICMS | 17% | Include tax |
"Include tax" means the prices shown on the order detail page already contain tax. The script back-calculates: tax = gross × rate / (1 + rate).
"Exclude tax" means prices are pre-tax. The script adds tax on top: tax = subtotal × rate.
For each order ID provided:
Go to Seller Central → Orders → Manage Orders → search by Order ID → click into the order detail page.
Make sure you are on the correct country/marketplace within Seller Central before extracting data.
From the order detail page, extract the data into this JSON structure. Pass raw strings exactly as shown on the page (e.g., "USD 1,234.56") — the script parses them automatically.
{
"country": "US",
"invoice_number": "<Order ID>",
"date": "<order date, YYYY-MM-DD>",
"bill_to": {
"name": "<buyer name>",
"entity": "<business name if present>",
"vat": "<buyer VAT number if shown>",
"rfc": "<buyer RFC if shown (Mexico)>",
"trn": "<buyer TRN if shown, where applicable>",
"address": "<full billing address>"
},
"ship_to": "<full shipping address>",
"items": [
{
"description": "<product title>",
"quantity": 1,
"amount": "<total amount for this line item, e.g. 'USD 299.00'>"
}
],
"subtotal": "<if shown on page, else omit>",
"tax": "<if shown on page, else omit>",
"shipping_total": "<if shown, else omit>",
"promotion": "<if shown, else omit>",
"refund": "<refund amount shown on the order page as an absolute value (e.g. a row labeled 'Refund: -USD 12.00' becomes '12.00'); omit if none>",
"total": "<total as shown on page>",
"amount_paid": "<if shown, else omit>",
"currency": "USD",
"seller_entity": "<from store knowledge, if available>",
"seller_vat": "<from store knowledge, if available>",
"seller_rfc": "<from store knowledge, if available for Mexico>",
"store": "<store name>"
}
Required fields: country, invoice_number, items (with at least description and amount per item).
All other fields are optional — the script derives what's missing.
Note on items: The PDF shows a simplified 3-column table (Item, Quantity, Amount). The amount field should be the total line item amount (quantity × unit price) as shown on the order page.
You do NOT need to calculate tax yourself. The generate_invoice.py script:
"USD 1,234.56" → 1234.56country field you provideitems + shipping − promotion − refund) because Amazon's order page shows subtotal before refund and total after refund, so those page values are mutually inconsistent when a refund exists. The derived gross matches the Item total line the customer actually paid.Just extract what you see on the page and pass it through. For each item, provide the total line amount (as shown on the order page) rather than unit price.
If seller info was resolved in the Prerequisites step, populate:
seller_entity: company legal nameseller_vat: VAT number for the relevant countryseller_rfc: RFC for MexicoIf no seller info was found, omit these fields — the script handles missing seller data gracefully.
echo '<json_string>' | python .claude/skills/amazon-invoice/generate_invoice.py \
--output ./invoice_{order_id}.pdf
The script outputs the file path to stdout. Output goes to the current working directory (the task workspace).
If you found seller entity details (company name, VAT/TRN numbers) during this task that are NOT already saved in the store's knowledge directory:
stores/<store-slug>/seller-info.md using the Write toolAfter generating, report the file path to the user. If multiple orders were requested, summarize all generated invoices.
If the user provides multiple order IDs (comma-separated, space-separated, or one per line), loop steps 1-6 for each order ID. Generate separate PDFs for each order.
country is missing — always provide it