Proforma Invoice Generator
Build a proforma invoice for a wholesale quote or a cross-border shipment, with HS codes, Incoterms and a customs-ready layout.
Your details
Printable proforma invoice
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Proforma Invoice PF-2026-014</title>
<style>
* { box-sizing: border-box; }
body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; color: #111; margin: 0; padding: 32px; font-size: 13px; line-height: 1.5; background: #fff; }
.doc { max-width: 760px; margin: 0 auto; }
.row { display: flex; justify-content: space-between; gap: 24px; }
.head { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 28px; gap: 16px; }
h1 { font-size: 22px; margin: 0 0 4px; letter-spacing: -0.02em; }
h2 { font-size: 12px; text-transform: uppercase; letter-spacing: 0.06em; color: #666; margin: 24px 0 8px; }
table { width: 100%; border-collapse: collapse; margin-top: 8px; }
th, td { text-align: left; padding: 8px 10px; border-bottom: 1px solid #e3e3e3; font-size: 12.5px; }
th { text-transform: uppercase; font-size: 10.5px; letter-spacing: 0.05em; color: #666; border-bottom: 2px solid #111; }
td.num, th.num { text-align: right; }
.totals { margin-top: 12px; width: 260px; margin-left: auto; }
.totals div { display: flex; justify-content: space-between; padding: 4px 0; }
.totals .grand { font-weight: 700; border-top: 2px solid #111; margin-top: 4px; padding-top: 8px; font-size: 15px; }
.muted { color: #666; }
.box { border: 1px solid #ddd; border-radius: 8px; padding: 12px 14px; }
.sig { margin-top: 40px; display: flex; gap: 40px; }
.sig div { flex: 1; border-top: 1px solid #111; padding-top: 6px; font-size: 11px; color: #666; }
@media print { body { padding: 0; } }
</style>
</head>
<body>
<div class="doc">
<div class="head">
<div><h1>Proforma Invoice</h1><p class="muted">PF-2026-014 · not a demand for payment</p></div>
<div class="box" style="text-align:right"><p><strong>Harbour & Co</strong></p><p class="muted" style="white-space:pre-line">48 Quay Street
Cork, Ireland</p><p class="muted">hello@harbourco.com</p></div>
</div>
<div class="row">
<div><h2>Buyer</h2><p><strong>Wren & Co</strong></p><p class="muted" style="white-space:pre-line">12 Baker Street
London, UK</p></div>
<div style="text-align:right"><h2>Terms</h2><p>Date: 2026-09-30</p><p>Valid for 30 days</p><p>Incoterm: FOB</p><p>Origin: Ireland</p><p>Reason: sale</p></div>
</div>
<h2>Goods quoted</h2>
<table><thead><tr><th>Description</th><th>HS tariff no.</th><th class="num">Qty</th><th class="num">Unit price</th><th class="num">Amount</th></tr></thead><tbody><tr><td>Wool scarf</td><td>6214.20</td><td class="num">48</td><td class="num">$18.00</td><td class="num">$864.00</td></tr><tr><td>Gift box</td><td>4819.50</td><td class="num">48</td><td class="num">$2.50</td><td class="num">$120.00</td></tr></tbody></table>
<div class="totals">
<div><span>Goods subtotal</span><span>$984.00</span></div>
<div><span>Freight and insurance</span><span>$120.00</span></div>
<div class="grand"><span>Total (FOB)</span><span>$1104.00</span></div>
</div>
<h2>Payment</h2>
<p class="muted" style="white-space:pre-line">Wire transfer only. IBAN IE00 AAAA 0000 0000 00. SWIFT AAAAIE2D.</p>
<p class="muted">This proforma invoice is for customs and quoting purposes only. It is not a demand for payment and is not a tax invoice.</p>
</div>
</body>
</html>Open the downloaded file and print it (Ctrl or Cmd+P), then choose Save as PDF, to get a PDF copy.
Live preview
A proforma invoice vs a real invoice
A proforma invoice is a quote, formatted like an invoice so it can double as a customs document. It states what the buyer would pay if they went ahead, but it isn't a demand for payment and isn't a tax invoice, which the printed copy says outright.
- Wholesale buyers use it to confirm price and terms before placing a purchase order.
- Customs authorities use it to assess duty on a shipment, or to release a sample or gift where no real sale is happening.
- Your bank may want one to process a wire transfer or open a letter of credit.
Incoterms shown
| Term | Who pays freight to destination | Who's responsible in transit |
|---|---|---|
| EXW | Buyer, from your door | Buyer, from your door |
| FOB | Buyer, from the port of origin | Buyer, once loaded on the vessel |
| CIF | Seller, includes freight and insurance | Seller, until the goods reach the destination port |
| DAP | Seller, to the named place | Seller, until the goods arrive, before unloading |
| DDP | Seller, including import duty | Seller, right up to delivery |
These five are commonly used for ecommerce and small wholesale shipments. The ICC's Incoterms® rules publish the full 2020 set and exact definitions; use the term your freight forwarder or buyer actually agreed to.
Questions people ask
Do I need an HS tariff number?
For anything crossing a border, yes: it's what customs uses to assess duty. Look yours up on your country's tariff database, or ask your freight forwarder if you're not sure.
Is a proforma invoice the same as a packing list?
No. A proforma invoice states price and terms before a sale is final. A packing slip lists what's physically in a shipped box, usually without prices.
What does "reason for export" affect?
It tells customs whether duty should apply. A sample with no commercial value, or a repair being returned, is often treated differently to a straightforward sale.
Can I use this for a domestic wholesale quote?
Yes. Leave the HS tariff number and country of origin blank if they don't apply, and pick an Incoterm loosely (or skip relying on it) for a shipment that stays in one country.
Related tools
Last reviewed 30 September 2026.
Sources: International Chamber of Commerce: Incoterms® rules
