{"id":3730,"date":"2025-11-02T19:56:18","date_gmt":"2025-11-02T19:56:18","guid":{"rendered":"https:\/\/mazurly.com\/?page_id=3730"},"modified":"2026-04-06T10:21:23","modified_gmt":"2026-04-06T10:21:23","slug":"free-invoice-generator","status":"publish","type":"page","link":"https:\/\/mazurly.com\/fr\/free-invoice-generator\/","title":{"rendered":"Free Invoice Generator"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"3730\" class=\"elementor elementor-3730\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-664e4da e-flex e-con-boxed e-con e-parent\" data-id=\"664e4da\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-892e810 elementor-widget elementor-widget-heading\" data-id=\"892e810\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Free Invoice Generator<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1b3e016 elementor-widget elementor-widget-text-editor\" data-id=\"1b3e016\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p class=\"whitespace-normal break-words\" style=\"text-align: center;\"><span style=\"color: #ffffff;\">Create professional invoices in seconds. No signup required, no hidden fees, just a simple free tool to help you get paid faster. Fill in your details, download your invoice, and send it to clients immediately using our customisable free invoice template with multiple currencies.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3fb2da3 elementor-widget elementor-widget-html\" data-id=\"3fb2da3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div style=\"background:linear-gradient(135deg,rgba(108,73,255,0.12),rgba(139,92,246,0.06));border:1px solid rgba(139,92,246,0.3);border-radius:16px;padding:20px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px;margin:24px 0;flex-wrap:wrap;\">\n  <div style=\"display:flex;align-items:center;gap:14px;\">\n    <div style=\"width:44px;height:44px;background:linear-gradient(135deg,#6c49ff,#8b6cff);border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0;\">\n      <svg width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg>\n    <\/div>\n    <div>\n      <div style=\"font-weight:700;font-size:15px;color:#f0eeff;margin-bottom:3px;\">Use it faster  get our Chrome extension<\/div>\n      <div style=\"font-size:13px;color:#9b93c4;line-height:1.5;\">Generate invoices directly from your browser toolbar.<br>One click, no new tab needed, works on any site.<\/div>\n    <\/div>\n  <\/div>\n  <a href=\"https:\/\/chromewebstore.google.com\/detail\/kgfkikhcmcgmgcbankaebcpcdakfmnjo?utm_source=invoice-page\" target=\"_blank\" style=\"display:inline-flex;align-items:center;gap:8px;background:linear-gradient(135deg,#6c49ff,#8b6cff);color:#fff;text-decoration:none;padding:11px 20px;border-radius:10px;font-weight:600;font-size:14px;white-space:nowrap;box-shadow:0 8px 18px rgba(108,73,255,0.3);flex-shrink:0;\">\n    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\"><circle cx=\"12\" cy=\"12\" r=\"10\" stroke=\"white\" stroke-width=\"2\"\/><path d=\"M12 8v8M8 12h8\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\"\/><\/svg>\n    Add to Chrome \u2014 Free\n  <\/a>\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-acf55b2 elementor-widget-laptop__width-initial elementor-widget elementor-widget-html\" data-id=\"acf55b2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- ===== Mazurly \u2014 Invoice Generator ===== -->\n<style>\n  .maz-wrap{font-family:Inter,system-ui,Segoe UI,Roboto,Arial,sans-serif;color:#111}\n  .maz-card{background:#fff;border:1px solid #e6e8eb;border-radius:18px;box-shadow:0 6px 28px rgba(0,0,0,.06);padding:18px}\n  .maz-grid{display:grid;gap:16px}\n  .maz-row{display:grid;gap:12px}\n  .maz-3{grid-template-columns:1fr 1fr 1fr}\n  .maz-2{grid-template-columns:1fr 1fr}\n  .maz-label{font-size:12px;color:#5a6472;margin-bottom:6px}\n  .maz-input,.maz-select,.maz-textarea{\n    width:100%; background:#fff; border:1px solid #dfe3e8; border-radius:12px;\n    padding:10px 12px; font-size:14px; outline:none; height:44px; box-sizing:border-box;\n  }\n  .maz-textarea{min-height:96px; height:auto; resize:vertical}\n  .maz-num{text-align:right}\n  \/* remove numeric spinners *\/\n  input[type=number]::-webkit-outer-spin-button,\n  input[type=number]::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }\n  input[type=number]{ -moz-appearance:textfield; }\n\n  .maz-upload{display:flex;align-items:center;gap:10px;border:1px dashed #cfd6dd;background:#f8fafc;border-radius:12px;padding:10px}\n  .maz-upload input{display:none}\n  .maz-upbtn{cursor:pointer; padding:8px 12px; border:1px solid #cfd6dd; border-radius:10px; background:#fff; font-weight:600}\n\n  .maz-items{background:#f4f6f9;border:1px solid #e6eaef;border-radius:12px;padding:12px}\n  .item-head{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:10px;font-size:12px;color:#6b7280;margin-bottom:6px;padding:0 2px}\n  .item-row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 40px;gap:10px;align-items:center;margin-bottom:10px}\n  .item-row .amount-read{background:#f8fafc;border:1px solid #dfe3e8;border-radius:12px;height:44px;display:flex;align-items:center;justify-content:flex-end;padding:0 12px;font-size:14px}\n\n  .del-btn{cursor:pointer;border:1px solid #dfe3e8;background:#fff;border-radius:10px;width:40px;height:44px;display:flex;align-items:center;justify-content:center;font-weight:700;line-height:0}\n  .add-pill{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:999px;background:#e8f6ea;color:#208a3c;border:1px solid #bfe6c9;cursor:pointer}\n\n  .maz-hr{border:none;border-top:1px solid #eef1f4;margin:8px 0}\n  .totals-card{border:1px solid #e6e8eb;border-radius:12px;padding:14px}\n\n  \/* Actions: center PDF, Clean all to far right *\/\n  .maz-actions{display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:10px; margin-top:8px;}\n  .maz-actions .right{display:flex;justify-content:flex-end}\n\n  \/* Buttons *\/\n  .mz-btn{\n    background:linear-gradient(135deg,#6c49ff,#8b6cff);\n    border:0; color:#fff; padding:10px 16px; border-radius:10px;\n    cursor:pointer; font-weight:600; font-size:14px;\n    box-shadow:0 8px 18px rgba(108,73,255,.25);\n    transition:.18s transform,.18s box-shadow\n  }\n  .mz-btn:hover{transform:translateY(-1px); box-shadow:0 12px 22px rgba(108,73,255,.32)}\n  .mz-btn.ghost{background:transparent;border:1px solid #dfe3e8;color:#111;box-shadow:none}\n\n  \/* Credit badge *\/\n  .maz-credit{display:flex;align-items:center;gap:10px;background:#f8fafc;border:1px solid #e6e8eb;border-radius:12px;padding:10px}\n  .maz-switch{display:flex;align-items:center;gap:8px;font-size:14px}\n\n  @media (max-width:1024px){\n    .maz-3,.maz-2{grid-template-columns:1fr}\n    .item-head{grid-template-columns:1fr 1fr 1fr 1fr}\n    .item-row{grid-template-columns:1fr 1fr 1fr 1fr 40px}\n  }\n<\/style>\n\n<div class=\"maz-wrap\" id=\"mazApp\">\n  <div class=\"maz-card maz-grid\">\n\n    <!-- Top trio -->\n    <div class=\"maz-row maz-3\">\n      <div>\n        <div class=\"maz-label\">Invoice number<\/div>\n        <input id=\"invNo\" class=\"maz-input\" placeholder=\"e.g., 2025-001\">\n      <\/div>\n      <div>\n        <div class=\"maz-label\">Purchase order<\/div>\n        <input id=\"poNo\" class=\"maz-input\" placeholder=\"Optional\">\n      <\/div>\n      <div>\n        <div class=\"maz-label\">Logo<\/div>\n        <div class=\"maz-upload\">\n          <label class=\"maz-upbtn\" for=\"logoFile\">Upload file<\/label>\n          <input type=\"file\" id=\"logoFile\" accept=\"image\/png, image\/jpeg, image\/webp\">\n          <div style=\"font-size:12px;color:#6b7280\">JPG, JPEG, PNG, &lt; 5MB<\/div>\n        <\/div>\n        <img id=\"logoPreview\" style=\"display:none;margin-top:8px;max-height:48px;border-radius:8px;border:1px solid #e6eaef;\">\n      <\/div>\n    <\/div>\n\n    <!-- From \/ Bill to -->\n    <div class=\"maz-row maz-2\">\n      <div>\n        <div class=\"maz-label\">Your company details<\/div>\n        <textarea id=\"fromBlock\" class=\"maz-textarea\" placeholder=\"Name&#10;Address&#10;VAT\/Tax ID&#10;Email \/ Phone\"><\/textarea>\n      <\/div>\n      <div>\n        <div class=\"maz-label\">Bill to<\/div>\n        <textarea id=\"toBlock\" class=\"maz-textarea\" placeholder=\"Client name&#10;Address&#10;VAT\/Tax ID&#10;Email \/ Phone\"><\/textarea>\n      <\/div>\n    <\/div>\n\n    <!-- Currency \/ dates -->\n    <div class=\"maz-row maz-3\">\n      <div>\n        <div class=\"maz-label\">Currency<\/div>\n        <select id=\"currency\" class=\"maz-select\"><\/select>\n      <\/div>\n      <div>\n        <div class=\"maz-label\">Invoice date<\/div>\n        <input id=\"invDate\" type=\"date\" class=\"maz-input\">\n      <\/div>\n      <div>\n        <div class=\"maz-label\">Due date<\/div>\n        <input id=\"dueDate\" type=\"date\" class=\"maz-input\">\n      <\/div>\n    <\/div>\n\n    <!-- Items -->\n    <div class=\"maz-items\">\n      <div class=\"maz-label\" style=\"margin-bottom:6px\">Items<\/div>\n      <div class=\"item-head\">\n        <div>Description<\/div>\n        <div>Cost<\/div>\n        <div>Unit<\/div>\n        <div>Amount<\/div>\n      <\/div>\n      <div id=\"itemsRoot\"><\/div>\n      <div style=\"display:flex;justify-content:center;margin-top:6px\">\n        <button class=\"add-pill\" id=\"addItem\" title=\"Add item\">+<\/button>\n      <\/div>\n    <\/div>\n\n    <!-- Notes + totals -->\n    <div class=\"maz-row maz-2\">\n      <div>\n        <div class=\"maz-label\">Notes \/ payment terms<\/div>\n        <textarea id=\"notes\" class=\"maz-textarea\" placeholder=\"Payment is due within 15 days\"><\/textarea>\n        <div class=\"maz-label\" style=\"margin-top:10px\">Bank account details<\/div>\n        <textarea id=\"bank\" class=\"maz-textarea\" placeholder=\"Bank name&#10;Account \/ IBAN&#10;SWIFT \/ BIC\"><\/textarea>\n\n        <!-- Credit toggle -->\n        <div class=\"maz-credit\" style=\"margin-top:12px\">\n          <div style=\"font-weight:600\">Made on Mazurly.com<\/div>\n          <label class=\"maz-switch\">\n            <input type=\"checkbox\" id=\"showCredit\" checked>\n            <span>Show credit (page & PDF)<\/span>\n          <\/label>\n        <\/div>\n      <\/div>\n\n      <div class=\"totals-card\">\n        <div class=\"maz-grid\" style=\"gap:10px\">\n          <div class=\"maz-line\" style=\"display:flex;justify-content:space-between\">\n            <div>Subtotal<\/div><div id=\"subTotal\">\u2014<\/div>\n          <\/div>\n          <div class=\"maz-line\" style=\"display:flex;justify-content:space-between;align-items:center\">\n            <div>Tax % (deduct)<\/div>\n            <input id=\"taxPercent\" class=\"maz-input maz-num\" type=\"number\" min=\"0\" step=\"0.01\" value=\"0\" style=\"max-width:140px\">\n          <\/div>\n          <div class=\"maz-line\" style=\"display:flex;justify-content:space-between;align-items:center\">\n            <div>Discount<\/div>\n            <input id=\"discount\" class=\"maz-input maz-num\" type=\"number\" min=\"0\" step=\"0.01\" value=\"0\" style=\"max-width:140px\">\n          <\/div>\n          <div class=\"maz-line\" style=\"display:flex;justify-content:space-between;align-items:center\">\n            <div>Shipping fee<\/div>\n            <input id=\"shipping\" class=\"maz-input maz-num\" type=\"number\" min=\"0\" step=\"0.01\" value=\"0\" style=\"max-width:140px\">\n          <\/div>\n          <hr class=\"maz-hr\">\n          <div class=\"maz-line\" style=\"display:flex;justify-content:space-between;font-weight:800;font-size:18px\">\n            <div>Total<\/div><div id=\"grandTotal\">\u2014<\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- Actions: center PDF, Clean all on far right -->\n    <div class=\"maz-actions\">\n      <div><\/div>\n      <button class=\"mz-btn\" id=\"btnPDF\">Download PDF<\/button>\n      <div class=\"right\"><button class=\"mz-btn ghost\" id=\"btnClear\">Clean all<\/button><\/div>\n    <\/div>\n\n    <div id=\"creditBadge\" style=\"display:flex;justify-content:center;margin-top:8px\">\n      <div style=\"padding:8px 12px;border:1px dashed #cfd6dd;border-radius:999px;color:#6b6f7a;background:#f9fbff;font-size:12px\">\n        Made on <strong>Mazurly.com<\/strong> \ud83d\udc9c Thanks for using our free tool\n      <\/div>\n    <\/div>\n\n  <\/div>\n<\/div>\n\n<!-- libs -->\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/jspdf@2.5.1\/dist\/jspdf.umd.min.js\"><\/script>\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/jspdf-autotable@3.8.2\/dist\/jspdf.plugin.autotable.min.js\"><\/script>\n\n<script>\n(function(){\n  const $ = s=>document.querySelector(s);\n  const el = id=>document.getElementById(id);\n  const LS_KEY = 'maz_invoice_v1';\n\n  \/* ---------- Currency select WITH flags (dropdown only) ---------- *\/\n  const ISO = [\n    \"AED\",\"AFN\",\"ALL\",\"AMD\",\"ANG\",\"AOA\",\"ARS\",\"AUD\",\"AWG\",\"AZN\",\"BAM\",\"BBD\",\"BDT\",\"BGN\",\"BHD\",\"BIF\",\n    \"BMD\",\"BND\",\"BOB\",\"BRL\",\"BSD\",\"BTN\",\"BWP\",\"BYN\",\"BZD\",\"CAD\",\"CDF\",\"CHF\",\"CLP\",\"CNY\",\"COP\",\"CRC\",\n    \"CUP\",\"CVE\",\"CZK\",\"DJF\",\"DKK\",\"DOP\",\"DZD\",\"EGP\",\"ERN\",\"ETB\",\"EUR\",\"FJD\",\"FKP\",\"FOK\",\"GBP\",\"GEL\",\n    \"GGP\",\"GHS\",\"GIP\",\"GMD\",\"GNF\",\"GTQ\",\"GYD\",\"HKD\",\"HNL\",\"HRK\",\"HTG\",\"HUF\",\"IDR\",\"ILS\",\"IMP\",\"INR\",\n    \"IQD\",\"IRR\",\"ISK\",\"JEP\",\"JMD\",\"JOD\",\"JPY\",\"KES\",\"KGS\",\"KHR\",\"KID\",\"KMF\",\"KRW\",\"KWD\",\"KYD\",\"KZT\",\n    \"LAK\",\"LBP\",\"LKR\",\"LRD\",\"LSL\",\"LYD\",\"MAD\",\"MDL\",\"MGA\",\"MKD\",\"MMK\",\"MNT\",\"MOP\",\"MRU\",\"MUR\",\"MVR\",\n    \"MWK\",\"MXN\",\"MYR\",\"MZN\",\"NAD\",\"NGN\",\"NIO\",\"NOK\",\"NPR\",\"NZD\",\"OMR\",\"PAB\",\"PEN\",\"PGK\",\"PHP\",\"PKR\",\n    \"PLN\",\"PYG\",\"QAR\",\"RON\",\"RSD\",\"RUB\",\"RWF\",\"SAR\",\"SBD\",\"SCR\",\"SDG\",\"SEK\",\"SGD\",\"SHP\",\"SLE\",\"SLL\",\n    \"SOS\",\"SRD\",\"SSP\",\"STN\",\"SYP\",\"SZL\",\"THB\",\"TJS\",\"TMT\",\"TND\",\"TOP\",\"TRY\",\"TTD\",\"TVD\",\"TWD\",\"TZS\",\n    \"UAH\",\"UGX\",\"USD\",\"UYU\",\"UZS\",\"VES\",\"VND\",\"VUV\",\"WST\",\"XAF\",\"XCD\",\"XDR\",\"XOF\",\"XPF\",\"YER\",\"ZAR\",\n    \"ZMW\",\"ZWL\"\n  ];\n\n  \/\/ Representative flags for each currency code (emoji). Unions use a known representative.\n  const CURRENCY_FLAG = {\n    AED:'\ud83c\udde6\ud83c\uddea', AFN:'\ud83c\udde6\ud83c\uddeb', ALL:'\ud83c\udde6\ud83c\uddf1', AMD:'\ud83c\udde6\ud83c\uddf2', ANG:'\ud83c\udde8\ud83c\uddfc', AOA:'\ud83c\udde6\ud83c\uddf4', ARS:'\ud83c\udde6\ud83c\uddf7', AUD:'\ud83c\udde6\ud83c\uddfa', AWG:'\ud83c\udde6\ud83c\uddfc', AZN:'\ud83c\udde6\ud83c\uddff',\n    BAM:'\ud83c\udde7\ud83c\udde6', BBD:'\ud83c\udde7\ud83c\udde7', BDT:'\ud83c\udde7\ud83c\udde9', BGN:'\ud83c\udde7\ud83c\uddec', BHD:'\ud83c\udde7\ud83c\udded', BIF:'\ud83c\udde7\ud83c\uddee', BMD:'\ud83c\udde7\ud83c\uddf2', BND:'\ud83c\udde7\ud83c\uddf3', BOB:'\ud83c\udde7\ud83c\uddf4', BRL:'\ud83c\udde7\ud83c\uddf7',\n    BSD:'\ud83c\udde7\ud83c\uddf8', BTN:'\ud83c\udde7\ud83c\uddf9', BWP:'\ud83c\udde7\ud83c\uddfc', BYN:'\ud83c\udde7\ud83c\uddfe', BZD:'\ud83c\udde7\ud83c\uddff', CAD:'\ud83c\udde8\ud83c\udde6', CDF:'\ud83c\udde8\ud83c\udde9', CHF:'\ud83c\udde8\ud83c\udded', CLP:'\ud83c\udde8\ud83c\uddf1', CNY:'\ud83c\udde8\ud83c\uddf3',\n    COP:'\ud83c\udde8\ud83c\uddf4', CRC:'\ud83c\udde8\ud83c\uddf7', CUP:'\ud83c\udde8\ud83c\uddfa', CVE:'\ud83c\udde8\ud83c\uddfb', CZK:'\ud83c\udde8\ud83c\uddff', DJF:'\ud83c\udde9\ud83c\uddef', DKK:'\ud83c\udde9\ud83c\uddf0', DOP:'\ud83c\udde9\ud83c\uddf4', DZD:'\ud83c\udde9\ud83c\uddff', EGP:'\ud83c\uddea\ud83c\uddec',\n    ERN:'\ud83c\uddea\ud83c\uddf7', ETB:'\ud83c\uddea\ud83c\uddf9', EUR:'\ud83c\uddea\ud83c\uddfa', FJD:'\ud83c\uddeb\ud83c\uddef', FKP:'\ud83c\uddeb\ud83c\uddf0', FOK:'\ud83c\uddeb\ud83c\uddf4', GBP:'\ud83c\uddec\ud83c\udde7', GEL:'\ud83c\uddec\ud83c\uddea', GGP:'\ud83c\uddec\ud83c\uddec', GHS:'\ud83c\uddec\ud83c\udded',\n    GIP:'\ud83c\uddec\ud83c\uddee', GMD:'\ud83c\uddec\ud83c\uddf2', GNF:'\ud83c\uddec\ud83c\uddf3', GTQ:'\ud83c\uddec\ud83c\uddf9', GYD:'\ud83c\uddec\ud83c\uddfe', HKD:'\ud83c\udded\ud83c\uddf0', HNL:'\ud83c\udded\ud83c\uddf3', HRK:'\ud83c\udded\ud83c\uddf7', HTG:'\ud83c\udded\ud83c\uddf9', HUF:'\ud83c\udded\ud83c\uddfa',\n    IDR:'\ud83c\uddee\ud83c\udde9', ILS:'\ud83c\uddee\ud83c\uddf1', IMP:'\ud83c\uddee\ud83c\uddf2', INR:'\ud83c\uddee\ud83c\uddf3', IQD:'\ud83c\uddee\ud83c\uddf6', IRR:'\ud83c\uddee\ud83c\uddf7', ISK:'\ud83c\uddee\ud83c\uddf8', JEP:'\ud83c\uddef\ud83c\uddea', JMD:'\ud83c\uddef\ud83c\uddf2', JOD:'\ud83c\uddef\ud83c\uddf4',\n    JPY:'\ud83c\uddef\ud83c\uddf5', KES:'\ud83c\uddf0\ud83c\uddea', KGS:'\ud83c\uddf0\ud83c\uddec', KHR:'\ud83c\uddf0\ud83c\udded', KID:'\ud83c\uddf0\ud83c\uddee', KMF:'\ud83c\uddf0\ud83c\uddf2', KRW:'\ud83c\uddf0\ud83c\uddf7', KWD:'\ud83c\uddf0\ud83c\uddfc', KYD:'\ud83c\uddf0\ud83c\uddfe', KZT:'\ud83c\uddf0\ud83c\uddff',\n    LAK:'\ud83c\uddf1\ud83c\udde6', LBP:'\ud83c\uddf1\ud83c\udde7', LKR:'\ud83c\uddf1\ud83c\uddf0', LRD:'\ud83c\uddf1\ud83c\uddf7', LSL:'\ud83c\uddf1\ud83c\uddf8', LYD:'\ud83c\uddf1\ud83c\uddfe', MAD:'\ud83c\uddf2\ud83c\udde6', MDL:'\ud83c\uddf2\ud83c\udde9', MGA:'\ud83c\uddf2\ud83c\uddec', MKD:'\ud83c\uddf2\ud83c\uddf0',\n    MMK:'\ud83c\uddf2\ud83c\uddf2', MNT:'\ud83c\uddf2\ud83c\uddf3', MOP:'\ud83c\uddf2\ud83c\uddf4', MRU:'\ud83c\uddf2\ud83c\uddf7', MUR:'\ud83c\uddf2\ud83c\uddfa', MVR:'\ud83c\uddf2\ud83c\uddfb', MWK:'\ud83c\uddf2\ud83c\uddfc', MXN:'\ud83c\uddf2\ud83c\uddfd', MYR:'\ud83c\uddf2\ud83c\uddfe', MZN:'\ud83c\uddf2\ud83c\uddff',\n    NAD:'\ud83c\uddf3\ud83c\udde6', NGN:'\ud83c\uddf3\ud83c\uddec', NIO:'\ud83c\uddf3\ud83c\uddee', NOK:'\ud83c\uddf3\ud83c\uddf4', NPR:'\ud83c\uddf3\ud83c\uddf5', NZD:'\ud83c\uddf3\ud83c\uddff', OMR:'\ud83c\uddf4\ud83c\uddf2', PAB:'\ud83c\uddf5\ud83c\udde6', PEN:'\ud83c\uddf5\ud83c\uddea', PGK:'\ud83c\uddf5\ud83c\uddec',\n    PHP:'\ud83c\uddf5\ud83c\udded', PKR:'\ud83c\uddf5\ud83c\uddf0', PLN:'\ud83c\uddf5\ud83c\uddf1', PYG:'\ud83c\uddf5\ud83c\uddfe', QAR:'\ud83c\uddf6\ud83c\udde6', RON:'\ud83c\uddf7\ud83c\uddf4', RSD:'\ud83c\uddf7\ud83c\uddf8', RUB:'\ud83c\uddf7\ud83c\uddfa', RWF:'\ud83c\uddf7\ud83c\uddfc', SAR:'\ud83c\uddf8\ud83c\udde6',\n    SBD:'\ud83c\uddf8\ud83c\udde7', SCR:'\ud83c\uddf8\ud83c\udde8', SDG:'\ud83c\uddf8\ud83c\udde9', SEK:'\ud83c\uddf8\ud83c\uddea', SGD:'\ud83c\uddf8\ud83c\uddec', SHP:'\ud83c\uddf8\ud83c\udded', SLE:'\ud83c\uddf8\ud83c\uddf1', SLL:'\ud83c\uddf8\ud83c\uddf1', SOS:'\ud83c\uddf8\ud83c\uddf4', SRD:'\ud83c\uddf8\ud83c\uddf7',\n    SSP:'\ud83c\uddf8\ud83c\uddf8', STN:'\ud83c\uddf8\ud83c\uddf9', SYP:'\ud83c\uddf8\ud83c\uddfe', SZL:'\ud83c\uddf8\ud83c\uddff', THB:'\ud83c\uddf9\ud83c\udded', TJS:'\ud83c\uddf9\ud83c\uddef', TMT:'\ud83c\uddf9\ud83c\uddf2', TND:'\ud83c\uddf9\ud83c\uddf3', TOP:'\ud83c\uddf9\ud83c\uddf4', TRY:'\ud83c\uddf9\ud83c\uddf7',\n    TTD:'\ud83c\uddf9\ud83c\uddf9', TVD:'\ud83c\uddf9\ud83c\uddfb', TWD:'\ud83c\uddf9\ud83c\uddfc', TZS:'\ud83c\uddf9\ud83c\uddff', UAH:'\ud83c\uddfa\ud83c\udde6', UGX:'\ud83c\uddfa\ud83c\uddec', USD:'\ud83c\uddfa\ud83c\uddf8', UYU:'\ud83c\uddfa\ud83c\uddfe', UZS:'\ud83c\uddfa\ud83c\uddff', VES:'\ud83c\uddfb\ud83c\uddea',\n    VND:'\ud83c\uddfb\ud83c\uddf3', VUV:'\ud83c\uddfb\ud83c\uddfa', WST:'\ud83c\uddfc\ud83c\uddf8', XAF:'\ud83c\udde8\ud83c\uddf2', XCD:'\ud83c\udde6\ud83c\uddec', XDR:'\ud83c\udfe6', XOF:'\ud83c\uddf8\ud83c\uddf3', XPF:'\ud83c\uddf5\ud83c\uddeb', YER:'\ud83c\uddfe\ud83c\uddea', ZAR:'\ud83c\uddff\ud83c\udde6',\n    ZMW:'\ud83c\uddff\ud83c\uddf2', ZWL:'\ud83c\uddff\ud83c\uddfc'\n  };\n  const flag = code => CURRENCY_FLAG[code] || '\ud83c\udf10';\n\n  const curSel = el('currency');\n  curSel.innerHTML = '';\n  ISO.forEach(code=>{\n    const opt=document.createElement('option');\n    opt.value=code;\n    opt.textContent = `${flag(code)} ${code}`;\n    curSel.appendChild(opt);\n  });\n  if(!curSel.value) curSel.value=\"USD\";\n\n  const fmtMoney = (n, ccy)=>{\n    try{ return new Intl.NumberFormat(undefined,{style:'currency',currency:ccy,minimumFractionDigits:2}).format(Number(n||0)); }\n    catch(e){ return (Number(n||0)).toFixed(2)+' '+ccy; }\n  };\n\n  \/* ---------- State ---------- *\/\n  const state = {\n    items: [],            \/\/ {desc, unit (cost), qty (unit)}\n    logoDataURL: null,\n    showCredit: true\n  };\n\n  \/* ---------- Items ---------- *\/\n  const itemsRoot = el('itemsRoot');\n  function addItem(desc='', unit=0, qty=0){\n    state.items.push({desc, unit:Number(unit)||0, qty:Number(qty)||0});\n    renderItems(); save();\n  }\n  function delItem(i){ state.items.splice(i,1); renderItems(); save(); }\n\n  function itemRowHTML(it, i){\n    return `\n      <div class=\"item-row\">\n        <input class=\"maz-input\" placeholder=\"Item description\" value=\"${it.desc||''}\" data-k=\"desc\" data-i=\"${i}\">\n        <input class=\"maz-input maz-num\" placeholder=\"Cost\" type=\"number\" step=\"0.01\" value=\"${it.unit}\" data-k=\"unit\" data-i=\"${i}\">\n        <input class=\"maz-input maz-num\" placeholder=\"Unit\" type=\"number\" step=\"1\" value=\"${it.qty}\" data-k=\"qty\" data-i=\"${i}\">\n        <div class=\"amount-read\" data-amt=\"${i}\"><\/div>\n        <button class=\"del-btn\" title=\"Remove\" data-del=\"${i}\">\u2715<\/button>\n      <\/div>\n    `;\n  }\n\n  function renderItems(){\n    itemsRoot.innerHTML = state.items.map(itemRowHTML).join('');\n    \/\/ wire inputs\n    itemsRoot.querySelectorAll('input[data-k]').forEach(inp=>{\n      inp.oninput = ()=>{\n        const i=Number(inp.dataset.i), k=inp.dataset.k;\n        state.items[i][k]=(k==='desc')?inp.value:Number(inp.value||0);\n        renderTotals(); save();\n      };\n    });\n    itemsRoot.querySelectorAll('button[data-del]').forEach(b=> b.onclick=()=> delItem(Number(b.dataset.del)));\n    renderTotals();\n  }\n\n  \/* ---------- Totals (global tax deduction) ---------- *\/\n  function calc(){\n    const sub = state.items.reduce((s,it)=> s + (Number(it.unit)||0)*(Number(it.qty)||0), 0);\n    const taxP = Number(el('taxPercent').value||0); \/\/ % to deduct\n    const taxDeduct = sub * (taxP\/100);             \/\/ deduction\n    const disc = Number(el('discount').value||0);   \/\/ deduction\n    const ship = Number(el('shipping').value||0);   \/\/ addition\n    const total = Math.max(sub - taxDeduct - disc + ship, 0);\n    return {sub, taxDeduct, disc, ship, total};\n  }\n\n  function renderTotals(){\n    const ccy = curSel.value;\n    \/\/ per-row amounts\n    itemsRoot.querySelectorAll('.item-row').forEach((row, idx)=>{\n      const it = state.items[idx];\n      const line=(Number(it.unit)||0)*(Number(it.qty)||0);\n      const amtEl = row.querySelector('[data-amt]');\n      amtEl.textContent = fmtMoney(line, ccy);\n    });\n    \/\/ totals\n    const {sub, total} = calc();\n    el('subTotal').textContent = fmtMoney(sub, ccy);\n    el('grandTotal').textContent = fmtMoney(total, ccy);\n  }\n\n  \/* ---------- Logo ---------- *\/\n  el('logoFile').addEventListener('change', (e)=>{\n    const f=e.target.files[0]; if(!f) return;\n    if(f.size>5*1024*1024) return alert('Please upload an image under 5MB.');\n    const r=new FileReader();\n    r.onload=ev=>{\n      state.logoDataURL=ev.target.result;\n      const img=el('logoPreview'); img.src=state.logoDataURL; img.style.display='block';\n      save();\n    };\n    r.readAsDataURL(f);\n  });\n\n  \/* ---------- Credit toggle ---------- *\/\n  el('showCredit').onchange = ()=>{\n    state.showCredit = el('showCredit').checked;\n    $('#creditBadge').style.display = state.showCredit ? 'flex' : 'none';\n    save();\n  };\n\n  \/* ---------- Actions ---------- *\/\n  el('addItem').onclick = ()=> addItem('',0,0);\n  ['taxPercent','discount','shipping','currency','invNo','poNo','fromBlock','toBlock','notes','bank','invDate','dueDate'].forEach(id=>{\n    const node = el(id);\n    if(node){ node.oninput = ()=>{ renderTotals(); save(); }; }\n  });\n  el('btnClear').onclick = ()=>{\n    if(!confirm('Clear all fields?')) return;\n    ['invNo','poNo','fromBlock','toBlock','notes','bank','taxPercent','discount','shipping'].forEach(id=> el(id).value = (id==='taxPercent'||id==='discount'||id==='shipping') ? 0 : '');\n    state.items=[]; state.logoDataURL=null;\n    const img=el('logoPreview'); img.src=''; img.style.display='none';\n    renderItems(); renderTotals(); save();\n  };\n\n  \/* ---------- PDF ---------- *\/\n  el('btnPDF').onclick = ()=>{\n    const { jsPDF } = window.jspdf;\n    const doc = new jsPDF({ unit:'pt', format:'a4' });\n    const ccy = curSel.value;\n\n    let y=48, x=40;\n    if(state.logoDataURL){ try{ doc.addImage(state.logoDataURL,'PNG',x,y-10,96,32); }catch(e){} }\n    doc.setFont('helvetica','bold'); doc.setFontSize(20); doc.text('INVOICE', 520, y, {align:'right'});\n    y += 24; doc.setFontSize(10); doc.setFont('helvetica','normal');\n\n    const inv=el('invNo').value||'-', po=el('poNo').value||'-', dt=el('invDate').value||'-', due=el('dueDate').value||'-';\n    doc.text(`Invoice #: ${inv}`, 520, y,{align:'right'}); y+=14;\n    doc.text(`PO: ${po}`, 520, y,{align:'right'}); y+=14;\n    doc.text(`Date: ${dt}`, 520, y,{align:'right'}); y+=14;\n    doc.text(`Due: ${due}`, 520, y,{align:'right'}); y+=20;\n\n    doc.setFont('helvetica','bold'); doc.text('From', x, y); doc.text('Bill To', 300, y);\n    doc.setFont('helvetica','normal'); y+=14;\n    const from=(el('fromBlock').value||'').split('\\n'); const to=(el('toBlock').value||'').split('\\n');\n    doc.text(from,x,y); doc.text(to,300,y);\n    y += Math.max(from.length,to.length)*12 + 12;\n\n    \/\/ table (UI order: Description, Cost, Unit, Amount)\n    const body = state.items.map(it=>{\n      const line=(Number(it.unit)||0)*(Number(it.qty)||0);\n      return [\n        it.desc||'',\n        new Intl.NumberFormat(undefined,{style:'currency',currency:ccy,minimumFractionDigits:2}).format(Number(it.unit||0)),\n        String(it.qty||0),\n        new Intl.NumberFormat(undefined,{style:'currency',currency:ccy,minimumFractionDigits:2}).format(line)\n      ];\n    });\n    doc.autoTable({\n      startY:y, head:[['Description','Cost','Unit','Amount']], body,\n      theme:'grid', styles:{font:'helvetica',fontSize:10}, headStyles:{fillColor:[84,48,203]},\n      columnStyles:{1:{halign:'right'},2:{halign:'right'},3:{halign:'right'}}\n    });\n    const endY = doc.lastAutoTable.finalY || y;\n\n    const c = calc();\n    const bxX=330, bxW=220, lh=16; let ty=endY+20;\n    doc.setFillColor(246,248,252); doc.roundedRect(bxX, ty, bxW, lh*5+26, 8, 8, 'F');\n    doc.setFont('helvetica','normal'); doc.setTextColor(60);\n    doc.text('Subtotal', bxX+14, ty+16); doc.text(new Intl.NumberFormat(undefined,{style:'currency',currency:ccy}).format(c.sub), bxX+bxW-14, ty+16,{align:'right'});\n    doc.text(`Tax deducted (${el('taxPercent').value||0}%)`, bxX+14, ty+16+lh);\n    doc.text('- '+new Intl.NumberFormat(undefined,{style:'currency',currency:ccy}).format(c.taxDeduct), bxX+bxW-14, ty+16+lh,{align:'right'});\n    doc.text('Shipping', bxX+14, ty+16+lh*2); doc.text(new Intl.NumberFormat(undefined,{style:'currency',currency:ccy}).format(c.ship), bxX+bxW-14, ty+16+lh*2,{align:'right'});\n    doc.text('Discount', bxX+14, ty+16+lh*3); doc.text('- '+new Intl.NumberFormat(undefined,{style:'currency',currency:ccy}).format(c.disc), bxX+bxW-14, ty+16+lh*3,{align:'right'});\n    doc.setFont('helvetica','bold'); doc.setTextColor(0);\n    doc.text('Total', bxX+14, ty+16+lh*4+10); doc.text(new Intl.NumberFormat(undefined,{style:'currency',currency:ccy}).format(c.total), bxX+bxW-14, ty+16+lh*4+10,{align:'right'});\n\n    \/\/ Notes \/ Bank\n    const notes=(el('notes').value||'').trim(); const bank=(el('bank').value||'').trim();\n    let nx=x, ny=ty;\n    if(notes){ doc.setFont('helvetica','bold'); doc.setFontSize(11); doc.text('Notes', nx, ny);\n      doc.setFont('helvetica','normal'); doc.setFontSize(10); doc.text(doc.splitTextToSize(notes, 250), nx, ny+16); ny+=80; }\n    if(bank){ doc.setFont('helvetica','bold'); doc.setFontSize(11); doc.text('Bank details', nx, ny);\n      doc.setFont('helvetica','normal'); doc.setFontSize(10); doc.text(doc.splitTextToSize(bank, 250), nx, ny+16); }\n\n    \/\/ Footer credit (only if enabled)\n    if(state.showCredit){\n      doc.setFontSize(9); doc.setTextColor(120);\n      doc.text('Made on Mazurly.com - Free Invoice Generator', 40, 820);\n    }\n\n    doc.save(`invoice-${(el('invNo').value||'draft')}.pdf`);\n  };\n\n  \/* ---------- Autosave (localStorage) ---------- *\/\n  function save(){\n    const data = {\n      invNo: el('invNo').value, poNo: el('poNo').value,\n      fromBlock: el('fromBlock').value, toBlock: el('toBlock').value,\n      currency: curSel.value, invDate: el('invDate').value, dueDate: el('dueDate').value,\n      taxPercent: el('taxPercent').value,\n      discount: el('discount').value, shipping: el('shipping').value,\n      items: state.items, showCredit: state.showCredit,\n      logoDataURL: (state.logoDataURL && state.logoDataURL.length < 1_200_000) ? state.logoDataURL : null\n    };\n    try{ localStorage.setItem(LS_KEY, JSON.stringify(data)); }catch(e){}\n  }\n  function load(){\n    try{\n      const raw = localStorage.getItem(LS_KEY);\n      if(!raw) return;\n      const data = JSON.parse(raw);\n      el('invNo').value=data.invNo||''; el('poNo').value=data.poNo||'';\n      el('fromBlock').value=data.fromBlock||''; el('toBlock').value=data.toBlock||'';\n      el('currency').value=data.currency||'USD';\n      el('invDate').value=data.invDate||''; el('dueDate').value=data.dueDate||'';\n      el('taxPercent').value=data.taxPercent||0;\n      el('discount').value=data.discount||0; el('shipping').value=data.shipping||0;\n      state.items = Array.isArray(data.items)? data.items : [];\n      state.showCredit = data.showCredit!==false; \/* default ON *\/\n      el('showCredit').checked = state.showCredit;\n      $('#creditBadge').style.display = state.showCredit ? 'flex' : 'none';\n      if(data.logoDataURL){ state.logoDataURL=data.logoDataURL; const img=el('logoPreview'); img.src=data.logoDataURL; img.style.display='block'; }\n      renderItems(); renderTotals();\n    }catch(e){}\n  }\n\n  \/* ---------- Defaults (if no saved) ---------- *\/\n  const today = new Date().toISOString().slice(0,10);\n  el('invDate').value = el('invDate').value || today;\n  el('dueDate').value = el('dueDate').value || new Date(Date.now()+14*24*3600*1000).toISOString().slice(0,10);\n\n  load(); \/\/ try restore\n  if(state.items.length===0){ addItem('',0,0); addItem('',0,0); }\n\n})();\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-fa20f22 e-flex e-con-boxed e-con e-parent\" data-id=\"fa20f22\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e6fc73a elementor-widget elementor-widget-heading\" data-id=\"e6fc73a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Frequently Asked Questions<\/h2>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-ccb087f e-flex e-con-boxed e-con e-parent\" data-id=\"ccb087f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c9c89d1 elementor-widget elementor-widget-text-editor\" data-id=\"c9c89d1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<h3 class=\"whitespace-normal break-words\" style=\"text-align: left; font-size: 20px;\"><span style=\"color: #ffffff;\"><strong>Can I put my own logo on the invoice template?<\/strong><\/span><\/h3><p style=\"text-align: left;\"><span style=\"color: #ffffff;\">Yes! Our invoice generator includes a dedicated space for your company logo. Simply upload your logo file, and it will appear at the top of your invoice, giving it a professional, branded appearance.<\/span><\/p><h3 class=\"whitespace-normal break-words\" style=\"text-align: left; font-size: 20px;\"><span style=\"color: #ffffff;\"><strong>What Currency does the Tool Support?<\/strong><\/span><\/h3><p class=\"whitespace-normal break-words\" style=\"text-align: left;\"><span style=\"color: #ffffff;\"> Our free invoice maker supports all major currencies and many regional ones from USD, EUR, and GBP to less common currencies from countries worldwide. Just select your preferred currency from the dropdown menu when creating your invoice.<\/span><\/p><h3 class=\"whitespace-normal break-words\" style=\"text-align: left; font-size: 20px;\"><span style=\"color: #ffffff;\"><strong>How do I Create an Invoice?<\/strong> <\/span><\/h3><p class=\"whitespace-normal break-words\" style=\"text-align: left;\"><span style=\"color: #ffffff;\">Creating an invoice is straightforward: enter your business details and client information, add line items with descriptions and prices, include your payment terms, and download the finished invoice as a PDF. Our tool guides you through each step, so you&#8217;ll have a professional invoice ready in seconds.<\/span><\/p><h3 class=\"whitespace-normal break-words\" style=\"text-align: left; font-size: 20px;\"><span style=\"color: #ffffff;\"><strong>What is the Best Free Invoice Generator?<\/strong> <\/span><\/h3><p class=\"whitespace-normal break-words\" style=\"text-align: left;\"><span style=\"color: #ffffff;\">The best invoice generator depends on your specific needs and preferences. Popular options include Zoho&#8217;s invoice generator, Shopify&#8217;s invoice tool, and standalone platforms like ours. We designed our free invoice generator to be simple and convenient for everyone\u2019s use. No account required, unlimited invoices, and all essential features in one place. <\/span><\/p><h3 class=\"whitespace-normal break-words\" style=\"text-align: left; font-size: 20px;\"><span style=\"color: #ffffff;\"><strong>Can ChatGPT Generate an Invoice?<\/strong> <\/span><\/h3><p class=\"whitespace-normal break-words\" style=\"text-align: left;\"><span style=\"color: #ffffff;\">Yes &#8211; ChatGPT can create invoices in multiple formats, including PDF, Word, Excel\/CSV, or clean copy-paste-ready text. Most modern AI engines can do this to some extent, they can structure the invoice exactly how you want it, again, it&#8217;s all about preferences here.<\/span><\/p><h3 class=\"whitespace-normal break-words\" style=\"text-align: left; font-size: 20px;\"><span style=\"color: #ffffff;\"><strong>What Legally Must be on an Invoice?<\/strong> <\/span><\/h3><p class=\"whitespace-normal break-words\" style=\"text-align: left;\"><span style=\"color: #ffffff;\">Legal requirements vary by country, but most invoices should include: your business name and contact details, client name and address, unique invoice number, invoice date, itemized description of goods or services, amounts and currency, payment terms, and total amount due. Some jurisdictions also require tax identification numbers or VAT information.<\/span><\/p><h3 class=\"whitespace-normal break-words\" style=\"text-align: left; font-size: 20px;\"><span style=\"color: #ffffff;\"><strong>Is it Legal to Create Your own Invoice?<\/strong> <\/span><\/h3><p class=\"whitespace-normal break-words\" style=\"text-align: left;\"><span style=\"color: #ffffff;\">Absolutely. You don&#8217;t need special software or certification to invoice clients, you just need to include the required information for your jurisdiction. Whether you use an invoice template, generator, or create one from scratch, as long as it contains the necessary legal elements, it&#8217;s perfectly valid.<\/span><\/p><h3 class=\"whitespace-normal break-words\" style=\"text-align: left; font-size: 20px;\"><span style=\"color: #ffffff;\"><strong>Why use a Free Invoice Maker?<\/strong> <\/span><\/h3><p class=\"whitespace-normal break-words\" style=\"text-align: left;\"><span style=\"color: #ffffff;\">Free invoice makers save time and ensure your invoices look professional without design skills or expensive software. They automatically calculate totals, format everything correctly, and let you generate unlimited invoices, ideal for freelancers and small businesses managing costs.<\/span><\/p><h3 class=\"whitespace-normal break-words\" style=\"text-align: left; font-size: 20px;\"><span style=\"color: #ffffff;\"><strong>What are the Limitations of Free Invoice Generators?<\/strong> <\/span><\/h3><p class=\"whitespace-normal break-words\" style=\"text-align: left;\"><span style=\"color: #ffffff;\">Most free invoice generators focus on basic invoicing without advanced features like recurring billing, payment processing integration, automated reminders, or client management systems. If you only need to create and send invoices occasionally, a free tool provides everything essential. Growing businesses may eventually want more comprehensive invoicing software.<\/span><\/p><h3 class=\"whitespace-normal break-words\" style=\"text-align: left; font-size: 20px;\"><span style=\"color: #ffffff;\"><strong>Can I Invoice Someone if They don&#8217;t have a Registered Company?<\/strong> <\/span><\/h3><p class=\"whitespace-normal break-words\" style=\"text-align: left;\"><span style=\"color: #ffffff;\">Yes. You can invoice individuals, sole proprietors, or anyone who owes you payment for goods or services. Simply use their personal name and address in the client section. The invoice serves as a payment request and record of the transaction, regardless of whether the client operates a registered business. <\/span><\/p><p class=\"whitespace-normal break-words\" style=\"text-align: left;\"><span style=\"color: #ffffff;\">However, some countries have specific regulations: in certain jurisdictions, if you&#8217;re operating as a business (even as a sole proprietor), you may need to be officially registered to issue invoices, this is common in EU countries where VAT registration is required above certain thresholds. <\/span><\/p><p class=\"whitespace-normal break-words\" style=\"text-align: left;\"><span style=\"color: #ffffff;\">Some countries also require business invoices to include tax identification numbers. If you&#8217;re invoicing as an individual for casual or one-time work, these requirements typically don&#8217;t apply, but it&#8217;s wise to check your local regulations. The invoice itself remains valid as a payment record regardless of registration status.<br \/><\/span><\/p><h3 class=\"whitespace-normal break-words\" style=\"text-align: left; font-size: 20px;\"><strong><span style=\"color: #ffffff;\">Is There a Chrome Extension for This Invoice Generator?<\/span><\/strong><\/h3><p><span style=\"color: #ffffff;\">Yes! Mazurly also offers a free Chrome extension allowing you to create invoices directly from your browser toolbar. Instead of opening a new tab every time, you can generate and download professional invoices with one click from anywhere, whether you&#8217;re in Gmail, a client&#8217;s website, or any other tab. It supports all the same currencies, lets you add line items, set tax rates, and download a PDF instantly. No account required, completely free.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Free Invoice Generator Create professional invoices in seconds. No signup required, no hidden fees, just a simple free tool to help you get paid faster. Fill in your details, download your invoice, and send it to clients immediately using our customisable free invoice template with multiple currencies. Use it faster get our Chrome extension Generate [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-3730","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Free Invoice Generator - Mazurly<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/mazurly.com\/fr\/free-invoice-generator\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Free Invoice Generator - Mazurly\" \/>\n<meta property=\"og:description\" content=\"Free Invoice Generator Create professional invoices in seconds. No signup required, no hidden fees, just a simple free tool to help you get paid faster. Fill in your details, download your invoice, and send it to clients immediately using our customisable free invoice template with multiple currencies. Use it faster get our Chrome extension Generate [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/mazurly.com\/fr\/free-invoice-generator\/\" \/>\n<meta property=\"og:site_name\" content=\"Mazurly\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-06T10:21:23+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data1\" content=\"42 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/mazurly.com\\\/free-invoice-generator\\\/\",\"url\":\"https:\\\/\\\/mazurly.com\\\/free-invoice-generator\\\/\",\"name\":\"Free Invoice Generator - Mazurly\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mazurly.com\\\/#website\"},\"datePublished\":\"2025-11-02T19:56:18+00:00\",\"dateModified\":\"2026-04-06T10:21:23+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/mazurly.com\\\/free-invoice-generator\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/mazurly.com\\\/free-invoice-generator\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/mazurly.com\\\/free-invoice-generator\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/mazurly.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Free Invoice Generator\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/mazurly.com\\\/#website\",\"url\":\"https:\\\/\\\/mazurly.com\\\/\",\"name\":\"Mazurly\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/mazurly.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/mazurly.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/mazurly.com\\\/#organization\",\"name\":\"Mazurly\",\"url\":\"https:\\\/\\\/mazurly.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/mazurly.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/mazurly.com\\\/wp-content\\\/uploads\\\/2024\\\/12\\\/Mazurly-logo-1.png\",\"contentUrl\":\"https:\\\/\\\/mazurly.com\\\/wp-content\\\/uploads\\\/2024\\\/12\\\/Mazurly-logo-1.png\",\"width\":350,\"height\":100,\"caption\":\"Mazurly\"},\"image\":{\"@id\":\"https:\\\/\\\/mazurly.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Free Invoice Generator - Mazurly","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/mazurly.com\/fr\/free-invoice-generator\/","og_locale":"fr_FR","og_type":"article","og_title":"Free Invoice Generator - Mazurly","og_description":"Free Invoice Generator Create professional invoices in seconds. No signup required, no hidden fees, just a simple free tool to help you get paid faster. Fill in your details, download your invoice, and send it to clients immediately using our customisable free invoice template with multiple currencies. Use it faster get our Chrome extension Generate [&hellip;]","og_url":"https:\/\/mazurly.com\/fr\/free-invoice-generator\/","og_site_name":"Mazurly","article_modified_time":"2026-04-06T10:21:23+00:00","twitter_card":"summary_large_image","twitter_misc":{"Dur\u00e9e de lecture estim\u00e9e":"42 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/mazurly.com\/free-invoice-generator\/","url":"https:\/\/mazurly.com\/free-invoice-generator\/","name":"Free Invoice Generator - Mazurly","isPartOf":{"@id":"https:\/\/mazurly.com\/#website"},"datePublished":"2025-11-02T19:56:18+00:00","dateModified":"2026-04-06T10:21:23+00:00","breadcrumb":{"@id":"https:\/\/mazurly.com\/free-invoice-generator\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/mazurly.com\/free-invoice-generator\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/mazurly.com\/free-invoice-generator\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/mazurly.com\/"},{"@type":"ListItem","position":2,"name":"Free Invoice Generator"}]},{"@type":"WebSite","@id":"https:\/\/mazurly.com\/#website","url":"https:\/\/mazurly.com\/","name":"Mazurly","description":"","publisher":{"@id":"https:\/\/mazurly.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/mazurly.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/mazurly.com\/#organization","name":"Mazurly","url":"https:\/\/mazurly.com\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/mazurly.com\/#\/schema\/logo\/image\/","url":"https:\/\/mazurly.com\/wp-content\/uploads\/2024\/12\/Mazurly-logo-1.png","contentUrl":"https:\/\/mazurly.com\/wp-content\/uploads\/2024\/12\/Mazurly-logo-1.png","width":350,"height":100,"caption":"Mazurly"},"image":{"@id":"https:\/\/mazurly.com\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/mazurly.com\/fr\/wp-json\/wp\/v2\/pages\/3730","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mazurly.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mazurly.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mazurly.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mazurly.com\/fr\/wp-json\/wp\/v2\/comments?post=3730"}],"version-history":[{"count":46,"href":"https:\/\/mazurly.com\/fr\/wp-json\/wp\/v2\/pages\/3730\/revisions"}],"predecessor-version":[{"id":4634,"href":"https:\/\/mazurly.com\/fr\/wp-json\/wp\/v2\/pages\/3730\/revisions\/4634"}],"wp:attachment":[{"href":"https:\/\/mazurly.com\/fr\/wp-json\/wp\/v2\/media?parent=3730"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}