invoice-generator.com Open in urlscan Pro
3.22.19.247  Public Scan

Submitted URL: http://invoice-generator.com/
Effective URL: https://invoice-generator.com/
Submission: On May 03 via manual from US — Scanned from DE

Form analysis 3 forms found in the DOM

Name: documentForm

<form name="documentForm" class="ng-pristine ng-scope ng-invalid ng-invalid-required">
  <div class="invoice-holder clearfix">
    <div class="mobile-btns bg-white border-top">
      <div class="inner">
        <div class="my-invoices-btn">
          <a href="/history" class="btn btn-outline-secondary">
						History
						<span class="badge rounded-circle bg-secondary ng-binding ng-hide" ng-show="numDocuments>0">0</span>
					</a>
        </div>
        <div class="right">
          <button type="button" class="btn btn-primary" ng-disabled="documentForm.$invalid" ng-click="saveAndDownloadPDF()" disabled="disabled">
            <span class="fas fa-arrow-to-bottom"></span> Download </button>
        </div>
      </div>
    </div>
    <div class="invoice-controls desktop">
      <div class="affix-el" id="invoice-controls-affix">
        <div class="d-grid gap-2">
          <button type="button" class="btn btn-primary ng-binding" ng-disabled="documentForm.$invalid" ng-click="saveAndDownloadPDF()" tabindex="1051" disabled="disabled">
            <span class="fas fa-arrow-to-bottom"></span> Download Invoice </button>
        </div>
        <div class="border-top border-bottom px-3 mt-5">
          <div class="mt-3">
            <label class="control-label">Currency</label>
            <div class="mt-1">
              <select class="form-select form-select-sm ng-pristine ng-untouched ng-valid" ng-model="document.currency" ng-options="currency.code as currency.name for (code, currency) in currencies">
                <option value="AED" label="AED (د.إ)">AED (د.إ)</option>
                <option value="AFN" label="AFN">AFN</option>
                <option value="ALL" label="ALL (Lek)">ALL (Lek)</option>
                <option value="AMD" label="AMD">AMD</option>
                <option value="ANG" label="ANG (ƒ)">ANG (ƒ)</option>
                <option value="AOA" label="AOA (Kz)">AOA (Kz)</option>
                <option value="ARS" label="ARS ($)">ARS ($)</option>
                <option value="AUD" label="AUD ($)">AUD ($)</option>
                <option value="AWG" label="AWG (ƒ)">AWG (ƒ)</option>
                <option value="AZN" label="AZN (ман)">AZN (ман)</option>
                <option value="BAM" label="BAM (KM)">BAM (KM)</option>
                <option value="BBD" label="BBD ($)">BBD ($)</option>
                <option value="BDT" label="BDT (Tk)">BDT (Tk)</option>
                <option value="BGN" label="BGN (лв)">BGN (лв)</option>
                <option value="BHD" label="BHD">BHD</option>
                <option value="BIF" label="BIF">BIF</option>
                <option value="BMD" label="BMD ($)">BMD ($)</option>
                <option value="BND" label="BND ($)">BND ($)</option>
                <option value="BOB" label="BOB ($b)">BOB ($b)</option>
                <option value="BOV" label="BOV">BOV</option>
                <option value="BRL" label="BRL (R$)">BRL (R$)</option>
                <option value="BSD" label="BSD ($)">BSD ($)</option>
                <option value="BTN" label="BTN">BTN</option>
                <option value="BWP" label="BWP (P)">BWP (P)</option>
                <option value="BYN" label="BYN (Br)">BYN (Br)</option>
                <option value="BZD" label="BZD (BZ$)">BZD (BZ$)</option>
                <option value="CAD" label="CAD ($)">CAD ($)</option>
                <option value="CDF" label="CDF">CDF</option>
                <option value="CHE" label="CHE">CHE</option>
                <option value="CHF" label="CHF">CHF</option>
                <option value="CHW" label="CHW">CHW</option>
                <option value="CLF" label="CLF">CLF</option>
                <option value="CLP" label="CLP ($)">CLP ($)</option>
                <option value="CNY" label="CNY (¥)">CNY (¥)</option>
                <option value="COP" label="COP (p.)">COP (p.)</option>
                <option value="COU" label="COU">COU</option>
                <option value="CRC" label="CRC (₡)">CRC (₡)</option>
                <option value="CUC" label="CUC">CUC</option>
                <option value="CUP" label="CUP (₱)">CUP (₱)</option>
                <option value="CVE" label="CVE">CVE</option>
                <option value="CZK" label="CZK (Kč)">CZK (Kč)</option>
                <option value="DJF" label="DJF (CHF)">DJF (CHF)</option>
                <option value="DKK" label="DKK (kr)">DKK (kr)</option>
                <option value="DOP" label="DOP (RD$)">DOP (RD$)</option>
                <option value="DZD" label="DZD">DZD</option>
                <option value="EGP" label="EGP (E£)">EGP (E£)</option>
                <option value="ERN" label="ERN">ERN</option>
                <option value="ETB" label="ETB">ETB</option>
                <option value="EUR" label="EUR (€)">EUR (€)</option>
                <option value="FJD" label="FJD ($)">FJD ($)</option>
                <option value="FKP" label="FKP (£)">FKP (£)</option>
                <option value="GBP" label="GBP (£)">GBP (£)</option>
                <option value="GEL" label="GEL">GEL</option>
                <option value="GHS" label="GHS (GH¢)">GHS (GH¢)</option>
                <option value="GIP" label="GIP (£)">GIP (£)</option>
                <option value="GMD" label="GMD">GMD</option>
                <option value="GNF" label="GNF">GNF</option>
                <option value="GTQ" label="GTQ (Q)">GTQ (Q)</option>
                <option value="GYD" label="GYD ($)">GYD ($)</option>
                <option value="HKD" label="HKD (HK$)">HKD (HK$)</option>
                <option value="HNL" label="HNL (L)">HNL (L)</option>
                <option value="HTG" label="HTG">HTG</option>
                <option value="HUF" label="HUF (Ft)">HUF (Ft)</option>
                <option value="IDR" label="IDR (Rp)">IDR (Rp)</option>
                <option value="ILS" label="ILS (₪)">ILS (₪)</option>
                <option value="INR" label="INR (Rs)">INR (Rs)</option>
                <option value="IQD" label="IQD">IQD</option>
                <option value="IRR" label="IRR">IRR</option>
                <option value="ISK" label="ISK (kr)">ISK (kr)</option>
                <option value="JMD" label="JMD (J$)">JMD (J$)</option>
                <option value="JOD" label="JOD">JOD</option>
                <option value="JPY" label="JPY (¥)">JPY (¥)</option>
                <option value="KES" label="KES (KSh)">KES (KSh)</option>
                <option value="KGS" label="KGS (лв)">KGS (лв)</option>
                <option value="KHR" label="KHR (៛)">KHR (៛)</option>
                <option value="KMF" label="KMF">KMF</option>
                <option value="KPW" label="KPW (₩)">KPW (₩)</option>
                <option value="KRW" label="KRW (₩)">KRW (₩)</option>
                <option value="KWD" label="KWD (ك)">KWD (ك)</option>
                <option value="KYD" label="KYD ($)">KYD ($)</option>
                <option value="KZT" label="KZT (лв)">KZT (лв)</option>
                <option value="LAK" label="LAK (₭)">LAK (₭)</option>
                <option value="LBP" label="LBP (£)">LBP (£)</option>
                <option value="LKR" label="LKR (Rs)">LKR (Rs)</option>
                <option value="LRD" label="LRD ($)">LRD ($)</option>
                <option value="LSL" label="LSL">LSL</option>
                <option value="LYD" label="LYD (LD)">LYD (LD)</option>
                <option value="MAD" label="MAD">MAD</option>
                <option value="MDL" label="MDL">MDL</option>
                <option value="MGA" label="MGA">MGA</option>
                <option value="MKD" label="MKD (ден)">MKD (ден)</option>
                <option value="MMK" label="MMK">MMK</option>
                <option value="MNT" label="MNT (₮)">MNT (₮)</option>
                <option value="MOP" label="MOP">MOP</option>
                <option value="MRU" label="MRU">MRU</option>
                <option value="MUR" label="MUR (Rs)">MUR (Rs)</option>
                <option value="MVR" label="MVR">MVR</option>
                <option value="MWK" label="MWK">MWK</option>
                <option value="MXN" label="MXN ($)">MXN ($)</option>
                <option value="MXV" label="MXV">MXV</option>
                <option value="MYR" label="MYR (RM)">MYR (RM)</option>
                <option value="MZN" label="MZN (MT)">MZN (MT)</option>
                <option value="NAD" label="NAD (N$)">NAD (N$)</option>
                <option value="NGN" label="NGN (₦)">NGN (₦)</option>
                <option value="NIO" label="NIO (C$)">NIO (C$)</option>
                <option value="NOK" label="NOK (kr)">NOK (kr)</option>
                <option value="NPR" label="NPR (Rs)">NPR (Rs)</option>
                <option value="NZD" label="NZD ($)">NZD ($)</option>
                <option value="OMR" label="OMR">OMR</option>
                <option value="PAB" label="PAB (B/.)">PAB (B/.)</option>
                <option value="PEN" label="PEN (S/.)">PEN (S/.)</option>
                <option value="PGK" label="PGK">PGK</option>
                <option value="PHP" label="PHP (₱)">PHP (₱)</option>
                <option value="PKR" label="PKR (Rs)">PKR (Rs)</option>
                <option value="PLN" label="PLN (zł)">PLN (zł)</option>
                <option value="PYG" label="PYG (Gs)">PYG (Gs)</option>
                <option value="QAR" label="QAR">QAR</option>
                <option value="RON" label="RON (lei)">RON (lei)</option>
                <option value="RSD" label="RSD (Дин.)">RSD (Дин.)</option>
                <option value="RUB" label="RUB (руб)">RUB (руб)</option>
                <option value="RWF" label="RWF">RWF</option>
                <option value="SAR" label="SAR">SAR</option>
                <option value="SBD" label="SBD ($)">SBD ($)</option>
                <option value="SCR" label="SCR (Rs)">SCR (Rs)</option>
                <option value="SDG" label="SDG">SDG</option>
                <option value="SEK" label="SEK (kr)">SEK (kr)</option>
                <option value="SGD" label="SGD ($)">SGD ($)</option>
                <option value="SHP" label="SHP (£)">SHP (£)</option>
                <option value="SLE" label="SLE">SLE</option>
                <option value="SOS" label="SOS (S)">SOS (S)</option>
                <option value="SRD" label="SRD ($)">SRD ($)</option>
                <option value="SSP" label="SSP">SSP</option>
                <option value="STN" label="STN">STN</option>
                <option value="SVC" label="SVC ($)">SVC ($)</option>
                <option value="SYP" label="SYP (£)">SYP (£)</option>
                <option value="SZL" label="SZL">SZL</option>
                <option value="THB" label="THB (฿)">THB (฿)</option>
                <option value="TJS" label="TJS">TJS</option>
                <option value="TMT" label="TMT">TMT</option>
                <option value="TND" label="TND (DT)">TND (DT)</option>
                <option value="TOP" label="TOP">TOP</option>
                <option value="TRY" label="TRY">TRY</option>
                <option value="TTD" label="TTD (TT$)">TTD (TT$)</option>
                <option value="TWD" label="TWD (NT$)">TWD (NT$)</option>
                <option value="TZS" label="TZS (TSh)">TZS (TSh)</option>
                <option value="UAH" label="UAH (₴)">UAH (₴)</option>
                <option value="UGX" label="UGX (USh)">UGX (USh)</option>
                <option value="USD" selected="selected" label="USD ($)">USD ($)</option>
                <option value="USN" label="USN">USN</option>
                <option value="UYI" label="UYI">UYI</option>
                <option value="UYU" label="UYU ($U)">UYU ($U)</option>
                <option value="UYW" label="UYW">UYW</option>
                <option value="UZS" label="UZS (лв)">UZS (лв)</option>
                <option value="VED" label="VED">VED</option>
                <option value="VES" label="VES">VES</option>
                <option value="VND" label="VND (₫)">VND (₫)</option>
                <option value="VUV" label="VUV">VUV</option>
                <option value="WST" label="WST">WST</option>
                <option value="XAF" label="XAF">XAF</option>
                <option value="XAG" label="XAG">XAG</option>
                <option value="XAU" label="XAU">XAU</option>
                <option value="XBA" label="XBA">XBA</option>
                <option value="XBB" label="XBB">XBB</option>
                <option value="XBC" label="XBC">XBC</option>
                <option value="XBD" label="XBD">XBD</option>
                <option value="XCD" label="XCD ($)">XCD ($)</option>
                <option value="XDR" label="XDR">XDR</option>
                <option value="XOF" label="XOF">XOF</option>
                <option value="XPD" label="XPD">XPD</option>
                <option value="XPF" label="XPF">XPF</option>
                <option value="XPT" label="XPT">XPT</option>
                <option value="XSU" label="XSU">XSU</option>
                <option value="XTS" label="XTS">XTS</option>
                <option value="XUA" label="XUA">XUA</option>
                <option value="XXX" label="XXX">XXX</option>
                <option value="YER" label="YER">YER</option>
                <option value="ZAR" label="ZAR (R)">ZAR (R)</option>
                <option value="ZMW" label="ZMW (ZK)">ZMW (ZK)</option>
                <option value="ZWL" label="ZWL">ZWL</option>
              </select>
            </div>
          </div>
          <div class="mt-3">
            <a href="" ng-click="saveDefaults()" ng-show="!isDefault()" tabindex="1054" class="btn btn-link d-block">
							Save Defaults
						</a>
          </div>
        </div>
        <div class="mt-3">
          <a href="/history" tabindex="1054" class="btn btn-outline-secondary d-block">
						History
						<span class="badge rounded-circle bg-secondary ng-binding ng-hide" ng-show="numDocuments>0">0</span>
					</a>
        </div>
        <div id="adngin-side_1-0"></div>
      </div>
    </div>
    <div class="papers">
      <div class="invoice-editor">
        <div class="row">
          <div class="col-md-8">
            <div class="logo noselect">
              <div class="placeholder" ng-hide="document.logo">
                <div class="main"><span class="fas fa-plus"></span> Add Your Logo</div>
              </div>
              <img ng-show="document.logo" ng-src="" alt="Your Logo" class="ng-hide">
              <input type="file" accept="image/*" class="file-1" onchange="angular.element(this).scope().changeLogo(this)" tabindex="12">
              <input type="file" accept="image/*" class="file-2" onchange="angular.element(this).scope().changeLogo(this)">
              <input type="file" accept="image/*" class="file-3" onchange="angular.element(this).scope().changeLogo(this)">
              <input type="file" accept="image/*" class="file-4" onchange="angular.element(this).scope().changeLogo(this)">
              <input type="file" accept="image/*" class="file-5" onchange="angular.element(this).scope().changeLogo(this)">
              <input type="file" accept="image/*" class="file-6" onchange="angular.element(this).scope().changeLogo(this)">
              <input type="file" accept="image/*" class="file-7" onchange="angular.element(this).scope().changeLogo(this)">
              <input type="file" accept="image/*" class="file-8" onchange="angular.element(this).scope().changeLogo(this)">
              <button class="remove-logo ng-hide" ng-show="document.logo" ng-click="removeLogo()" tabindex="13">
                <span class="fas fa-times"></span>
              </button>
            </div>
            <div class="logo-not-supported alert alert-warning">
              <span class="fas fa-exclamation-triangle"></span> Uploading logos is not supported by your browser. Please consider <a href="https://firefox.com" target="_blank">upgrading</a>.
            </div>
          </div>
          <div class="col-md-4">
            <div class="title">
              <input type="text" class="form-control input-label text-dark ng-pristine ng-untouched ng-valid" ng-model="document.header" tabindex="10" ng-show="document.type === 'invoice'">
              <input type="text" class="form-control input-label text-dark ng-pristine ng-untouched ng-valid ng-hide" ng-model="document.credit_note_header" tabindex="10" ng-show="document.type === 'credit_note'">
              <input type="text" class="form-control input-label text-dark ng-pristine ng-untouched ng-valid ng-hide" ng-model="document.quote_header" tabindex="10" ng-show="document.type === 'quote'">
              <input type="text" class="form-control input-label text-dark ng-pristine ng-untouched ng-valid ng-hide" ng-model="document.purchase_order_header" tabindex="10" ng-show="document.type === 'purchase_order'">
              <div class="subtitle">
                <div class="input-group input-group-sm">
                  <span class="input-group-text">#</span>
                  <input class="form-control border-start-0 ps-0 ng-pristine ng-untouched ng-valid" type="text" tabindex="11" ng-model="document.number">
                </div>
              </div>
            </div>
          </div>
        </div>
        <div class="row mt-3">
          <div class="col-md-7">
            <div class="row">
              <div class="col-md-8">
                <div class="contact">
                  <div class="value">
                    <div class="expandingText" style="position: relative;"><textarea class="form-control form-control-sm ng-pristine ng-untouched expanding-init ng-invalid ng-invalid-required" placeholder="Who is this invoice from? (required)"
                        ng-model="document.from" tabindex="15" required="" expanding-textarea="" style="position: absolute; height: 100%; resize: none;"></textarea>
                      <pre class="textareaClone"
                        style="visibility: hidden; border: 1px solid; white-space: pre-wrap; line-height: 19.5px; text-decoration: none solid rgb(30, 32, 34); font-size: 13px; font-family: Inter, sans-serif; text-align: start; overflow-wrap: break-word; padding: 8px 16px; margin-bottom: 0px;"><div> </div></pre>
                    </div>
                  </div>
                </div>
              </div>
            </div>
            <div class="row">
              <div class="col-md-6">
                <div class="contact pt-3">
                  <div class="theme-label mb-1">
                    <input type="text" class="input-label form-control form-control-sm ng-pristine ng-untouched ng-valid" ng-model="document.to_title" tabindex="16">
                  </div>
                  <div class="value">
                    <div class="expandingText" style="position: relative;"><textarea class="form-control form-control-sm ng-pristine ng-untouched expanding-init ng-invalid ng-invalid-required" placeholder="Who is this invoice to? (required)"
                        ng-model="document.to" tabindex="17" required="" expanding-textarea="" style="position: absolute; height: 100%; resize: none;"></textarea>
                      <pre class="textareaClone"
                        style="visibility: hidden; border: 1px solid; white-space: pre-wrap; line-height: 19.5px; text-decoration: none solid rgb(30, 32, 34); font-size: 13px; font-family: Inter, sans-serif; text-align: start; overflow-wrap: break-word; padding: 8px 16px; margin-bottom: 0px;"><div> </div></pre>
                    </div>
                  </div>
                </div>
              </div>
              <div class="col-md-6">
                <div class="contact pt-3">
                  <div class="theme-label mb-1">
                    <input type="text" class="input-label form-control form-control-sm ng-pristine ng-untouched ng-valid" ng-model="document.ship_to_title" tabindex="18">
                  </div>
                  <div class="value">
                    <div class="expandingText" style="position: relative;"><textarea class="form-control form-control-sm ng-pristine ng-untouched ng-valid expanding-init" placeholder="(optional)" ng-model="document.ship_to" tabindex="19"
                        expanding-textarea="" style="position: absolute; height: 100%; resize: none;"></textarea>
                      <pre class="textareaClone"
                        style="visibility: hidden; border: 1px solid; white-space: pre-wrap; line-height: 19.5px; text-decoration: none solid rgb(30, 32, 34); font-size: 13px; font-family: Inter, sans-serif; text-align: start; overflow-wrap: break-word; padding: 8px 16px; margin-bottom: 0px;"><div> </div></pre>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>
          <div class="col-md-5">
            <div class="invoice-details pt-3">
              <!-- Date -->
              <div class="input-group addon-input">
                <input class="input-label form-control form-control-sm ng-pristine ng-untouched ng-valid" type="text" ng-model="document.date_title" tabindex="20">
                <div class="input-group-addon">
                  <input class="form-control form-control-sm datepicker date ng-pristine ng-untouched ng-valid hasDatepicker" type="text" ng-model="document.date" tabindex="21" date-picker="" id="dp1714765935883">
                </div>
              </div>
              <!-- Payment Terms -->
              <div class="input-group addon-input mt-1">
                <input class="input-label form-control form-control-sm ng-pristine ng-untouched ng-valid" type="text" ng-model="document.payment_terms_title" tabindex="22">
                <div class="input-group-addon">
                  <input class="form-control form-control-sm ng-pristine ng-untouched ng-valid" type="text" ng-model="document.payment_terms" tabindex="23">
                </div>
              </div>
              <!-- Due Date -->
              <div class="input-group addon-input mt-1" ng-show="document.type === 'invoice'">
                <input class="input-label form-control form-control-sm ng-pristine ng-untouched ng-valid" type="text" ng-model="document.due_date_title" tabindex="24">
                <div class="input-group-addon">
                  <input class="form-control form-control-sm datepicker due-date ng-pristine ng-untouched ng-valid hasDatepicker" type="text" ng-model="document.due_date" tabindex="25" date-picker="" id="dp1714765935884">
                </div>
              </div>
              <!-- PO # -->
              <div class="input-group addon-input mt-1" ng-hide="document.type == 'purchase_order'">
                <input class="input-label form-control form-control-sm ng-pristine ng-untouched ng-valid" type="text" ng-model="document.purchase_order_title" tabindex="26">
                <div class="input-group-addon">
                  <input class="form-control form-control-sm ng-pristine ng-untouched ng-valid" type="text" ng-model="document.purchase_order" tabindex="27">
                </div>
              </div>
            </div>
          </div>
        </div>
        <div class="items-holder">
          <div class="items-table-header rounded-1 bg-dark mb-1">
            <div class="amount">
              <div class="theme-label bordered">
                <input type="text" class="input-label form-control form-control-sm text-light ng-pristine ng-untouched ng-valid" ng-model="document.amount_header" tabindex="31">
              </div>
            </div>
            <div class="unit_cost">
              <div class="theme-label bordered">
                <input type="text" class="input-label form-control form-control-sm text-light ng-pristine ng-untouched ng-valid ng-valid-required" required="" ng-model="document.unit_cost_header" tabindex="30">
              </div>
            </div>
            <div class="quantity">
              <div class="theme-label bordered">
                <input type="text" class="input-label form-control form-control-sm text-light ng-pristine ng-untouched ng-valid" ng-model="document.quantity_header" tabindex="29">
              </div>
            </div>
            <div class="name">
              <div class="theme-label bordered">
                <input type="text" class="input-label form-control form-control-sm text-light ng-pristine ng-untouched ng-valid" ng-model="document.item_header" tabindex="28">
              </div>
            </div>
          </div>
          <div class="items-table">
            <!-- ngRepeat: (k, item) in document.items -->
            <div class="item-row pb-1 ng-scope" ng-repeat="(k, item) in document.items">
              <div class="main-row">
                <div class="delete ng-hide" ng-hide="document.items.length==1">
                  <button type="button" class="delete-row btn btn-link" ng-click="deleteLineItem(item)" tabindex="45">
                    <span class="fas fa-times"></span>
                  </button>
                </div>
                <div class="amount value ng-binding" ng-bind-html="item.amount|currencyFormat:document.currency">0,00&nbsp;$</div>
                <div class="unit_cost">
                  <div ng-tabindex="40+8*k+3" ng-model="item.unit_cost" currency="document.currency" ng-required="true" input-amount="" class="ng-pristine ng-untouched ng-valid ng-isolate-scope ng-valid-required" required="required">
                    <div class="input-group input-group-sm"><!-- ngIf: !isRate -->
                      <div class="input-group-text pe-2 ps-2 ng-binding ng-scope" ng-if="!isRate">$</div><!-- end ngIf: !isRate --><input class="form-control ng-pristine ng-untouched ng-valid ng-valid-required border-start-0 ps-2"
                        ng-class="{'border-start-0 ps-2': !isRate, 'border-end-0 pe-2': isRate}" type="number" step="any" autocomplete="off" tabindex="43" ng-required="ngRequired" ng-model="value" ng-change="change()"
                        required="required"><!-- ngIf: !!isRate --><!-- ngIf: hasSelector -->
                    </div>
                  </div>
                </div>
                <div class="quantity">
                  <input type="number" step="any" class="form-control form-control-sm ng-pristine ng-untouched ng-valid ng-valid-required" autocomplete="off" ng-model="item.quantity" tabindex="42" placeholder="Quantity" required="">
                </div>
                <div class="name">
                  <div class="expandingText" style="position: relative;"><textarea class="form-control form-control-sm ng-pristine ng-untouched ng-valid expanding-init" ng-model="item.name" tabindex="41"
                      placeholder="Description of service or product..." expanding-textarea="" style="position: absolute; height: 100%; resize: none;"></textarea>
                    <pre class="textareaClone"
                      style="visibility: hidden; border: 1px solid; white-space: pre-wrap; line-height: 19.5px; text-decoration: none solid rgb(30, 32, 34); font-size: 13px; font-family: Inter, sans-serif; overflow-wrap: break-word; padding: 8px 16px; margin-bottom: 0px;"><div> </div></pre>
                  </div>
                </div>
              </div>
            </div><!-- end ngRepeat: (k, item) in document.items -->
          </div>
          <div class="new-line">
            <button type="button" class="btn btn-outline-primary btn-sm" tabindex="1000" ng-click="addLineItem()">
              <span class="fas fa-plus"></span> Line Item </button>
          </div>
        </div>
        <div class="row">
          <div class="col-md-6">
            <div class="invoice-footer">
              <div class="notes-holder">
                <div class="theme-label mb-1">
                  <input type="text" class="input-label form-control form-control-sm ng-pristine ng-untouched ng-valid" ng-model="document.notes_title" tabindex="1014">
                </div>
                <div class="value">
                  <div class="expandingText" style="position: relative;"><textarea class="notes form-control form-control-sm ng-pristine ng-untouched ng-valid expanding-init" placeholder="Notes - any relevant information not already covered"
                      ng-model="document.notes" tabindex="1015" expanding-textarea="" style="position: absolute; height: 100%; resize: none;"></textarea>
                    <pre class="textareaClone"
                      style="visibility: hidden; border: 1px solid; white-space: pre-wrap; line-height: 19.5px; text-decoration: none solid rgb(30, 32, 34); font-size: 13px; font-family: Inter, sans-serif; overflow-wrap: break-word; padding: 8px 16px; margin-bottom: 0px;"><div> </div></pre>
                  </div>
                </div>
              </div>
              <div class="terms-holder mt-3">
                <div class="theme-label mb-1">
                  <input type="text" class="input-label form-control form-control-sm ng-pristine ng-untouched ng-valid" ng-model="document.terms_title" tabindex="1016">
                </div>
                <div class="value">
                  <div class="expandingText" style="position: relative;"><textarea class="terms form-control form-control-sm ng-pristine ng-untouched ng-valid expanding-init"
                      placeholder="Terms and conditions - late fees, payment methods, delivery schedule" ng-model="document.terms" tabindex="1017" expanding-textarea="" style="position: absolute; height: 100%; resize: none;"></textarea>
                    <pre class="textareaClone"
                      style="visibility: hidden; border: 1px solid; white-space: pre-wrap; line-height: 19.5px; text-decoration: none solid rgb(30, 32, 34); font-size: 13px; font-family: Inter, sans-serif; overflow-wrap: break-word; padding: 8px 16px; margin-bottom: 0px;"><div> </div></pre>
                  </div>
                </div>
              </div>
            </div>
          </div>
          <div class="col-md-6">
            <!-- Subtotal -->
            <div class="input-group addon-input">
              <input class="input-label form-control form-control-sm ng-pristine ng-untouched ng-valid" type="text" ng-model="document.subtotal_title" tabindex="1001">
              <div class="input-group-addon value deleteable ng-binding" ng-bind-html="document.subtotal|currencyFormat:document.currency">0,00&nbsp;$</div>
            </div>
            <!-- Discounts -->
            <div class="input-group addon-input mt-1 ng-hide" ng-show="!!document.fields.discounts">
              <div class="delete">
                <button type="button" class="btn btn-link" ng-click="removeDiscount()">
                  <span class="fas fa-times"></span>
                </button>
              </div>
              <input class="input-label form-control form-control-sm ng-pristine ng-untouched ng-valid" type="text" ng-model="document.discounts_title" tabindex="1002">
              <div class="input-group-addon input deleteable">
                <div input-amount="" is-rate="discountIsRate" currency="document.currency" ng-model="document.discounts" ng-tabindex="1003" has-selector="true" class="ng-pristine ng-untouched ng-valid ng-isolate-scope">
                  <div class="input-group input-group-sm"><!-- ngIf: !isRate -->
                    <div class="input-group-text pe-2 ps-2 ng-binding ng-scope" ng-if="!isRate">$</div><!-- end ngIf: !isRate --><input class="form-control ng-pristine ng-untouched ng-valid border-start-0 ps-2 ng-valid-required"
                      ng-class="{'border-start-0 ps-2': !isRate, 'border-end-0 pe-2': isRate}" type="number" step="any" autocomplete="off" tabindex="1003" ng-required="ngRequired" ng-model="value"
                      ng-change="change()"><!-- ngIf: !!isRate --><!-- ngIf: hasSelector --><button type="button" class="btn btn-outline-secondary ng-scope" ng-click="toggleRate()" ng-if="hasSelector"><span
                        class="fas fa-repeat"></span></button><!-- end ngIf: hasSelector -->
                  </div>
                </div>
              </div>
            </div>
            <!-- Tax -->
            <div class="input-group addon-input mt-1" ng-show="!!document.fields.tax">
              <div class="delete">
                <button type="button" class="btn btn-link" ng-click="removeTax()">
                  <span class="fas fa-times"></span>
                </button>
              </div>
              <input class="input-label form-control form-control-sm ng-pristine ng-untouched ng-valid" type="text" ng-model="document.tax_title" tabindex="1004">
              <div class="input-group-addon input deleteable">
                <div input-amount="" is-rate="taxIsRate" currency="document.currency" ng-model="document.tax" ng-tabindex="1005" has-selector="true" class="ng-pristine ng-untouched ng-valid ng-isolate-scope">
                  <div class="input-group input-group-sm"><!-- ngIf: !isRate --><input class="form-control ng-pristine ng-untouched ng-valid border-end-0 pe-2 ng-valid-required" ng-class="{'border-start-0 ps-2': !isRate, 'border-end-0 pe-2': isRate}"
                      type="number" step="any" autocomplete="off" tabindex="1005" ng-required="ngRequired" ng-model="value" ng-change="change()"><!-- ngIf: !!isRate -->
                    <div class="input-group-text ps-2 pe-2 ng-scope" ng-if="!!isRate">%</div><!-- end ngIf: !!isRate --><!-- ngIf: hasSelector --><button type="button" class="btn btn-outline-secondary ng-scope" ng-click="toggleRate()"
                      ng-if="hasSelector"><span class="fas fa-repeat"></span></button><!-- end ngIf: hasSelector -->
                  </div>
                </div>
              </div>
            </div>
            <!-- Shipping -->
            <div class="input-group addon-input mt-1 ng-hide" ng-show="!!document.fields.shipping">
              <div class="delete">
                <button type="button" class="btn btn-link" ng-click="removeShipping()">
                  <span class="fas fa-times"></span>
                </button>
              </div>
              <input class="input-label form-control form-control-sm ng-pristine ng-untouched ng-valid" type="text" ng-model="document.shipping_title" tabindex="1006">
              <div class="input-group-addon input deleteable">
                <div input-amount="" is-rate="false" currency="document.currency" ng-model="document.shipping" ng-tabindex="1007" class="ng-pristine ng-untouched ng-valid ng-isolate-scope">
                  <div class="input-group input-group-sm"><!-- ngIf: !isRate -->
                    <div class="input-group-text pe-2 ps-2 ng-binding ng-scope" ng-if="!isRate">$</div><!-- end ngIf: !isRate --><input class="form-control ng-pristine ng-untouched ng-valid border-start-0 ps-2 ng-valid-required"
                      ng-class="{'border-start-0 ps-2': !isRate, 'border-end-0 pe-2': isRate}" type="number" step="any" autocomplete="off" tabindex="1007" ng-required="ngRequired" ng-model="value"
                      ng-change="change()"><!-- ngIf: !!isRate --><!-- ngIf: hasSelector -->
                  </div>
                </div>
              </div>
            </div>
            <div class="add-rates mt-1">
              <button type="button" class="btn btn-link btn-sm" ng-click="addDiscount()" ng-hide="!!document.fields.discounts" tabindex="1008">
                <span class="fas fa-plus"></span> Discount </button>
              <button type="button" class="btn btn-link btn-sm ng-hide" ng-click="addTax()" ng-hide="!!document.fields.tax" tabindex="1009">
                <span class="fas fa-plus"></span> Tax </button>
              <button type="button" class="btn btn-link btn-sm" ng-click="addShipping()" ng-hide="!!document.fields.shipping" tabindex="1010">
                <span class="fas fa-plus"></span> Shipping </button>
            </div>
            <!-- Total -->
            <div class="input-group addon-input mt-1">
              <input class="input-label form-control form-control-sm ng-pristine ng-untouched ng-valid" type="text" ng-model="document.total_title" tabindex="1011">
              <div class="input-group-addon value deleteable ng-binding" ng-bind-html="document.total|currencyFormat:document.currency">0,00&nbsp;$</div>
            </div>
            <!-- Amount Paid -->
            <div class="input-group addon-input mt-1" ng-show="document.type === 'invoice'">
              <input class="input-label form-control form-control-sm ng-pristine ng-untouched ng-valid" type="text" ng-model="document.amount_paid_title" tabindex="1012">
              <div class="input-group-addon input deleteable">
                <div input-amount="" currency="document.currency" ng-model="document.amount_paid" ng-tabindex="1013" class="ng-pristine ng-untouched ng-valid ng-isolate-scope">
                  <div class="input-group input-group-sm"><!-- ngIf: !isRate -->
                    <div class="input-group-text pe-2 ps-2 ng-binding ng-scope" ng-if="!isRate">$</div><!-- end ngIf: !isRate --><input class="form-control ng-pristine ng-untouched ng-valid border-start-0 ps-2 ng-valid-required"
                      ng-class="{'border-start-0 ps-2': !isRate, 'border-end-0 pe-2': isRate}" type="number" step="any" autocomplete="off" tabindex="1013" ng-required="ngRequired" ng-model="value"
                      ng-change="change()"><!-- ngIf: !!isRate --><!-- ngIf: hasSelector -->
                  </div>
                </div>
              </div>
            </div>
            <!-- Amount Refunded -->
            <div class="input-group addon-input mt-1 ng-hide" ng-show="document.type === 'credit_note'">
              <input class="input-label form-control form-control-sm ng-pristine ng-untouched ng-valid" type="text" ng-model="document.amount_paid_title" tabindex="1012">
              <div class="input-group-addon input deleteable">
                <div input-amount="" currency="document.currency" ng-model="document.amount_refunded" ng-tabindex="1013" class="ng-pristine ng-untouched ng-valid ng-isolate-scope">
                  <div class="input-group input-group-sm"><!-- ngIf: !isRate -->
                    <div class="input-group-text pe-2 ps-2 ng-binding ng-scope" ng-if="!isRate">$</div><!-- end ngIf: !isRate --><input class="form-control ng-pristine ng-untouched ng-valid border-start-0 ps-2 ng-valid-required"
                      ng-class="{'border-start-0 ps-2': !isRate, 'border-end-0 pe-2': isRate}" type="number" step="any" autocomplete="off" tabindex="1013" ng-required="ngRequired" ng-model="value"
                      ng-change="change()"><!-- ngIf: !!isRate --><!-- ngIf: hasSelector -->
                  </div>
                </div>
              </div>
            </div>
            <!-- Balance -->
            <div class="input-group addon-input mt-1" ng-show="document.type === 'invoice'">
              <input class="input-label form-control form-control-sm ng-pristine ng-untouched ng-valid" type="text" ng-model="document.balance_title" tabindex="1014">
              <div class="input-group-addon value deleteable ng-binding" ng-bind-html="document.balance|currencyFormat:document.currency">0,00&nbsp;$</div>
            </div>
          </div>
        </div>
      </div>
    </div>
    <div class="invoice-controls mobile">
      <div class="d-none d-md-flex justify-content-between">
        <button type="button" class="btn btn-primary w-50 m-2 ng-binding" ng-disabled="documentForm.$invalid" ng-click="saveAndDownloadPDF()" disabled="disabled">
          <span class="fas fa-arrow-to-bottom"></span> Download Invoice </button>
      </div>
      <div class="mt-3">
        <label class="control-label">Currency</label>
        <div>
          <select class="form-select form-select-sm ng-pristine ng-untouched ng-valid" ng-model="document.currency" ng-options="currency.code as currency.name for (code, currency) in currencies">
            <option value="AED" label="AED (د.إ)">AED (د.إ)</option>
            <option value="AFN" label="AFN">AFN</option>
            <option value="ALL" label="ALL (Lek)">ALL (Lek)</option>
            <option value="AMD" label="AMD">AMD</option>
            <option value="ANG" label="ANG (ƒ)">ANG (ƒ)</option>
            <option value="AOA" label="AOA (Kz)">AOA (Kz)</option>
            <option value="ARS" label="ARS ($)">ARS ($)</option>
            <option value="AUD" label="AUD ($)">AUD ($)</option>
            <option value="AWG" label="AWG (ƒ)">AWG (ƒ)</option>
            <option value="AZN" label="AZN (ман)">AZN (ман)</option>
            <option value="BAM" label="BAM (KM)">BAM (KM)</option>
            <option value="BBD" label="BBD ($)">BBD ($)</option>
            <option value="BDT" label="BDT (Tk)">BDT (Tk)</option>
            <option value="BGN" label="BGN (лв)">BGN (лв)</option>
            <option value="BHD" label="BHD">BHD</option>
            <option value="BIF" label="BIF">BIF</option>
            <option value="BMD" label="BMD ($)">BMD ($)</option>
            <option value="BND" label="BND ($)">BND ($)</option>
            <option value="BOB" label="BOB ($b)">BOB ($b)</option>
            <option value="BOV" label="BOV">BOV</option>
            <option value="BRL" label="BRL (R$)">BRL (R$)</option>
            <option value="BSD" label="BSD ($)">BSD ($)</option>
            <option value="BTN" label="BTN">BTN</option>
            <option value="BWP" label="BWP (P)">BWP (P)</option>
            <option value="BYN" label="BYN (Br)">BYN (Br)</option>
            <option value="BZD" label="BZD (BZ$)">BZD (BZ$)</option>
            <option value="CAD" label="CAD ($)">CAD ($)</option>
            <option value="CDF" label="CDF">CDF</option>
            <option value="CHE" label="CHE">CHE</option>
            <option value="CHF" label="CHF">CHF</option>
            <option value="CHW" label="CHW">CHW</option>
            <option value="CLF" label="CLF">CLF</option>
            <option value="CLP" label="CLP ($)">CLP ($)</option>
            <option value="CNY" label="CNY (¥)">CNY (¥)</option>
            <option value="COP" label="COP (p.)">COP (p.)</option>
            <option value="COU" label="COU">COU</option>
            <option value="CRC" label="CRC (₡)">CRC (₡)</option>
            <option value="CUC" label="CUC">CUC</option>
            <option value="CUP" label="CUP (₱)">CUP (₱)</option>
            <option value="CVE" label="CVE">CVE</option>
            <option value="CZK" label="CZK (Kč)">CZK (Kč)</option>
            <option value="DJF" label="DJF (CHF)">DJF (CHF)</option>
            <option value="DKK" label="DKK (kr)">DKK (kr)</option>
            <option value="DOP" label="DOP (RD$)">DOP (RD$)</option>
            <option value="DZD" label="DZD">DZD</option>
            <option value="EGP" label="EGP (E£)">EGP (E£)</option>
            <option value="ERN" label="ERN">ERN</option>
            <option value="ETB" label="ETB">ETB</option>
            <option value="EUR" label="EUR (€)">EUR (€)</option>
            <option value="FJD" label="FJD ($)">FJD ($)</option>
            <option value="FKP" label="FKP (£)">FKP (£)</option>
            <option value="GBP" label="GBP (£)">GBP (£)</option>
            <option value="GEL" label="GEL">GEL</option>
            <option value="GHS" label="GHS (GH¢)">GHS (GH¢)</option>
            <option value="GIP" label="GIP (£)">GIP (£)</option>
            <option value="GMD" label="GMD">GMD</option>
            <option value="GNF" label="GNF">GNF</option>
            <option value="GTQ" label="GTQ (Q)">GTQ (Q)</option>
            <option value="GYD" label="GYD ($)">GYD ($)</option>
            <option value="HKD" label="HKD (HK$)">HKD (HK$)</option>
            <option value="HNL" label="HNL (L)">HNL (L)</option>
            <option value="HTG" label="HTG">HTG</option>
            <option value="HUF" label="HUF (Ft)">HUF (Ft)</option>
            <option value="IDR" label="IDR (Rp)">IDR (Rp)</option>
            <option value="ILS" label="ILS (₪)">ILS (₪)</option>
            <option value="INR" label="INR (Rs)">INR (Rs)</option>
            <option value="IQD" label="IQD">IQD</option>
            <option value="IRR" label="IRR">IRR</option>
            <option value="ISK" label="ISK (kr)">ISK (kr)</option>
            <option value="JMD" label="JMD (J$)">JMD (J$)</option>
            <option value="JOD" label="JOD">JOD</option>
            <option value="JPY" label="JPY (¥)">JPY (¥)</option>
            <option value="KES" label="KES (KSh)">KES (KSh)</option>
            <option value="KGS" label="KGS (лв)">KGS (лв)</option>
            <option value="KHR" label="KHR (៛)">KHR (៛)</option>
            <option value="KMF" label="KMF">KMF</option>
            <option value="KPW" label="KPW (₩)">KPW (₩)</option>
            <option value="KRW" label="KRW (₩)">KRW (₩)</option>
            <option value="KWD" label="KWD (ك)">KWD (ك)</option>
            <option value="KYD" label="KYD ($)">KYD ($)</option>
            <option value="KZT" label="KZT (лв)">KZT (лв)</option>
            <option value="LAK" label="LAK (₭)">LAK (₭)</option>
            <option value="LBP" label="LBP (£)">LBP (£)</option>
            <option value="LKR" label="LKR (Rs)">LKR (Rs)</option>
            <option value="LRD" label="LRD ($)">LRD ($)</option>
            <option value="LSL" label="LSL">LSL</option>
            <option value="LYD" label="LYD (LD)">LYD (LD)</option>
            <option value="MAD" label="MAD">MAD</option>
            <option value="MDL" label="MDL">MDL</option>
            <option value="MGA" label="MGA">MGA</option>
            <option value="MKD" label="MKD (ден)">MKD (ден)</option>
            <option value="MMK" label="MMK">MMK</option>
            <option value="MNT" label="MNT (₮)">MNT (₮)</option>
            <option value="MOP" label="MOP">MOP</option>
            <option value="MRU" label="MRU">MRU</option>
            <option value="MUR" label="MUR (Rs)">MUR (Rs)</option>
            <option value="MVR" label="MVR">MVR</option>
            <option value="MWK" label="MWK">MWK</option>
            <option value="MXN" label="MXN ($)">MXN ($)</option>
            <option value="MXV" label="MXV">MXV</option>
            <option value="MYR" label="MYR (RM)">MYR (RM)</option>
            <option value="MZN" label="MZN (MT)">MZN (MT)</option>
            <option value="NAD" label="NAD (N$)">NAD (N$)</option>
            <option value="NGN" label="NGN (₦)">NGN (₦)</option>
            <option value="NIO" label="NIO (C$)">NIO (C$)</option>
            <option value="NOK" label="NOK (kr)">NOK (kr)</option>
            <option value="NPR" label="NPR (Rs)">NPR (Rs)</option>
            <option value="NZD" label="NZD ($)">NZD ($)</option>
            <option value="OMR" label="OMR">OMR</option>
            <option value="PAB" label="PAB (B/.)">PAB (B/.)</option>
            <option value="PEN" label="PEN (S/.)">PEN (S/.)</option>
            <option value="PGK" label="PGK">PGK</option>
            <option value="PHP" label="PHP (₱)">PHP (₱)</option>
            <option value="PKR" label="PKR (Rs)">PKR (Rs)</option>
            <option value="PLN" label="PLN (zł)">PLN (zł)</option>
            <option value="PYG" label="PYG (Gs)">PYG (Gs)</option>
            <option value="QAR" label="QAR">QAR</option>
            <option value="RON" label="RON (lei)">RON (lei)</option>
            <option value="RSD" label="RSD (Дин.)">RSD (Дин.)</option>
            <option value="RUB" label="RUB (руб)">RUB (руб)</option>
            <option value="RWF" label="RWF">RWF</option>
            <option value="SAR" label="SAR">SAR</option>
            <option value="SBD" label="SBD ($)">SBD ($)</option>
            <option value="SCR" label="SCR (Rs)">SCR (Rs)</option>
            <option value="SDG" label="SDG">SDG</option>
            <option value="SEK" label="SEK (kr)">SEK (kr)</option>
            <option value="SGD" label="SGD ($)">SGD ($)</option>
            <option value="SHP" label="SHP (£)">SHP (£)</option>
            <option value="SLE" label="SLE">SLE</option>
            <option value="SOS" label="SOS (S)">SOS (S)</option>
            <option value="SRD" label="SRD ($)">SRD ($)</option>
            <option value="SSP" label="SSP">SSP</option>
            <option value="STN" label="STN">STN</option>
            <option value="SVC" label="SVC ($)">SVC ($)</option>
            <option value="SYP" label="SYP (£)">SYP (£)</option>
            <option value="SZL" label="SZL">SZL</option>
            <option value="THB" label="THB (฿)">THB (฿)</option>
            <option value="TJS" label="TJS">TJS</option>
            <option value="TMT" label="TMT">TMT</option>
            <option value="TND" label="TND (DT)">TND (DT)</option>
            <option value="TOP" label="TOP">TOP</option>
            <option value="TRY" label="TRY">TRY</option>
            <option value="TTD" label="TTD (TT$)">TTD (TT$)</option>
            <option value="TWD" label="TWD (NT$)">TWD (NT$)</option>
            <option value="TZS" label="TZS (TSh)">TZS (TSh)</option>
            <option value="UAH" label="UAH (₴)">UAH (₴)</option>
            <option value="UGX" label="UGX (USh)">UGX (USh)</option>
            <option value="USD" selected="selected" label="USD ($)">USD ($)</option>
            <option value="USN" label="USN">USN</option>
            <option value="UYI" label="UYI">UYI</option>
            <option value="UYU" label="UYU ($U)">UYU ($U)</option>
            <option value="UYW" label="UYW">UYW</option>
            <option value="UZS" label="UZS (лв)">UZS (лв)</option>
            <option value="VED" label="VED">VED</option>
            <option value="VES" label="VES">VES</option>
            <option value="VND" label="VND (₫)">VND (₫)</option>
            <option value="VUV" label="VUV">VUV</option>
            <option value="WST" label="WST">WST</option>
            <option value="XAF" label="XAF">XAF</option>
            <option value="XAG" label="XAG">XAG</option>
            <option value="XAU" label="XAU">XAU</option>
            <option value="XBA" label="XBA">XBA</option>
            <option value="XBB" label="XBB">XBB</option>
            <option value="XBC" label="XBC">XBC</option>
            <option value="XBD" label="XBD">XBD</option>
            <option value="XCD" label="XCD ($)">XCD ($)</option>
            <option value="XDR" label="XDR">XDR</option>
            <option value="XOF" label="XOF">XOF</option>
            <option value="XPD" label="XPD">XPD</option>
            <option value="XPF" label="XPF">XPF</option>
            <option value="XPT" label="XPT">XPT</option>
            <option value="XSU" label="XSU">XSU</option>
            <option value="XTS" label="XTS">XTS</option>
            <option value="XUA" label="XUA">XUA</option>
            <option value="XXX" label="XXX">XXX</option>
            <option value="YER" label="YER">YER</option>
            <option value="ZAR" label="ZAR (R)">ZAR (R)</option>
            <option value="ZMW" label="ZMW (ZK)">ZMW (ZK)</option>
            <option value="ZWL" label="ZWL">ZWL</option>
          </select>
        </div>
      </div>
      <div class="mt-3">
        <a href="" ng-click="saveDefaults()" ng-show="!isDefault()" class="btn btn-link">
					Save Defaults
				</a>
      </div>
      <div class="mt-3 d-none d-md-block">
        <a href="/history" class="btn btn-outline-secondary">
					History
					<span class="badge rounded-circle bg-secondary ng-binding ng-hide" ng-show="numDocuments>0">0</span>
				</a>
      </div>
    </div>
  </div>
</form>

POST /pdf?source=lite

<form method="post" action="/pdf?source=lite" class="nomargin ng-pristine ng-valid" id="pdf_form" target="_blank">
  <input type="hidden" name="_csrf_token" value="2f7bb0877a78de58f023fe8e21f98f1.nmGX6UTN_w7JovMLEgXdcoEKQbn0-X_eyUGzsjCsAmU.1zHdxCaXhjiWj8ZpWm-sHdJFDNStmye6uQL1x0WfQwSnMPGvDIGzZpDGlA">
  <input id="pdf_json" type="hidden" name="json">
</form>

POST /ubl?source=lite

<form method="post" action="/ubl?source=lite" class="nomargin ng-pristine ng-valid" id="ubl_form" target="_blank">
  <input type="hidden" name="_csrf_token" value="a90cb4fd753b54866a929f1ad.uJLLujJ32hE22uytnn6ZgAKOu6uHIwW6WZ1GIazgCX0.8cKBl1Atoydp99nP1hTo71HB9sbeQV3eKd4AVNnTSByBw638ejuWeW--iw">
  <input id="ubl_json" type="hidden" name="json">
</form>

Text Content

Sign In Sign Up
 * Help
 * Invoicing Guide
 * Enable Dark Mode
 * Enable Light Mode
 * Sign In
 * Sign Up





FREE INVOICE TEMPLATE


MAKE BEAUTIFUL INVOICES WITH ONE CLICK!

Welcome to the original Invoice Generator, trusted by millions of people.
Invoice Generator lets you instantly make invoices with our attractive invoice
template straight from your web browser. The invoices you make can be sent and
paid online or downloaded as a PDF.

Did we also mention that Invoice Generator lets you generate an unlimited number
of invoices?

OK, got it!

History 0
Download
Download Invoice
Currency
AED (د.إ)AFNALL (Lek)AMDANG (ƒ)AOA (Kz)ARS ($)AUD ($)AWG (ƒ)AZN (ман)BAM (KM)BBD
($)BDT (Tk)BGN (лв)BHDBIFBMD ($)BND ($)BOB ($b)BOVBRL (R$)BSD ($)BTNBWP (P)BYN
(Br)BZD (BZ$)CAD ($)CDFCHECHFCHWCLFCLP ($)CNY (¥)COP (p.)COUCRC (₡)CUCCUP
(₱)CVECZK (Kč)DJF (CHF)DKK (kr)DOP (RD$)DZDEGP (E£)ERNETBEUR (€)FJD ($)FKP
(£)GBP (£)GELGHS (GH¢)GIP (£)GMDGNFGTQ (Q)GYD ($)HKD (HK$)HNL (L)HTGHUF (Ft)IDR
(Rp)ILS (₪)INR (Rs)IQDIRRISK (kr)JMD (J$)JODJPY (¥)KES (KSh)KGS (лв)KHR
(៛)KMFKPW (₩)KRW (₩)KWD (ك)KYD ($)KZT (лв)LAK (₭)LBP (£)LKR (Rs)LRD ($)LSLLYD
(LD)MADMDLMGAMKD (ден)MMKMNT (₮)MOPMRUMUR (Rs)MVRMWKMXN ($)MXVMYR (RM)MZN
(MT)NAD (N$)NGN (₦)NIO (C$)NOK (kr)NPR (Rs)NZD ($)OMRPAB (B/.)PEN (S/.)PGKPHP
(₱)PKR (Rs)PLN (zł)PYG (Gs)QARRON (lei)RSD (Дин.)RUB (руб)RWFSARSBD ($)SCR
(Rs)SDGSEK (kr)SGD ($)SHP (£)SLESOS (S)SRD ($)SSPSTNSVC ($)SYP (£)SZLTHB
(฿)TJSTMTTND (DT)TOPTRYTTD (TT$)TWD (NT$)TZS (TSh)UAH (₴)UGX (USh)USD
($)USNUYIUYU ($U)UYWUZS (лв)VEDVESVND (₫)VUVWSTXAFXAGXAUXBAXBBXBCXBDXCD
($)XDRXOFXPDXPFXPTXSUXTSXUAXXXYERZAR (R)ZMW (ZK)ZWL
Save Defaults
History 0

Add Your Logo
Uploading logos is not supported by your browser. Please consider upgrading.
#
 

 

 


0,00 $
$

 

Line Item
 

 

0,00 $
$
%
$
Discount Tax Shipping
0,00 $
$
$
0,00 $
Download Invoice
Currency
AED (د.إ)AFNALL (Lek)AMDANG (ƒ)AOA (Kz)ARS ($)AUD ($)AWG (ƒ)AZN (ман)BAM (KM)BBD
($)BDT (Tk)BGN (лв)BHDBIFBMD ($)BND ($)BOB ($b)BOVBRL (R$)BSD ($)BTNBWP (P)BYN
(Br)BZD (BZ$)CAD ($)CDFCHECHFCHWCLFCLP ($)CNY (¥)COP (p.)COUCRC (₡)CUCCUP
(₱)CVECZK (Kč)DJF (CHF)DKK (kr)DOP (RD$)DZDEGP (E£)ERNETBEUR (€)FJD ($)FKP
(£)GBP (£)GELGHS (GH¢)GIP (£)GMDGNFGTQ (Q)GYD ($)HKD (HK$)HNL (L)HTGHUF (Ft)IDR
(Rp)ILS (₪)INR (Rs)IQDIRRISK (kr)JMD (J$)JODJPY (¥)KES (KSh)KGS (лв)KHR
(៛)KMFKPW (₩)KRW (₩)KWD (ك)KYD ($)KZT (лв)LAK (₭)LBP (£)LKR (Rs)LRD ($)LSLLYD
(LD)MADMDLMGAMKD (ден)MMKMNT (₮)MOPMRUMUR (Rs)MVRMWKMXN ($)MXVMYR (RM)MZN
(MT)NAD (N$)NGN (₦)NIO (C$)NOK (kr)NPR (Rs)NZD ($)OMRPAB (B/.)PEN (S/.)PGKPHP
(₱)PKR (Rs)PLN (zł)PYG (Gs)QARRON (lei)RSD (Дин.)RUB (руб)RWFSARSBD ($)SCR
(Rs)SDGSEK (kr)SGD ($)SHP (£)SLESOS (S)SRD ($)SSPSTNSVC ($)SYP (£)SZLTHB
(฿)TJSTMTTND (DT)TOPTRYTTD (TT$)TWD (NT$)TZS (TSh)UAH (₴)UGX (USh)USD
($)USNUYIUYU ($U)UYWUZS (лв)VEDVESVND (₫)VUVWSTXAFXAGXAUXBAXBBXBCXBDXCD
($)XDRXOFXPDXPFXPTXSUXTSXUAXXXYERZAR (R)ZMW (ZK)ZWL
Save Defaults
History 0




 * Use Invoice Generator
 * Invoice Template
 * Credit Note Template
 * Quote Template
 * Purchase Order Template

 * Resources
 * Invoicing Guide
 * How to Use
 * Sign In
 * Sign Up
 * Release Notes
 * Developer API

 * © 2012-2024 Invoice-Generator.com
 * Terms of Service
 * Privacy Policy
 * Do not share my Personal Information.




DER SCHUTZ IHRER PRIVATSPHÄRE LIEGT UNS AM HERZEN!

Beim Besuch unserer Website können ausgewählte Unternehmen auf bestimmte
Informationen auf Ihrem Gerät und auf dieser Webseite zugreifen und diese
verwenden, um relevante Anzeigen oder personalisierte Inhalte zu schalten. Bitte
beachten Sie, dass Anzeigen dazu beitragen, dass unser Dienst weiterhin
kostenlos bleibt. Personenbezogene Daten werden basierend auf der Zustimmung
gemäß Artikel 6 Absatz 1 Buchstabe a des DSGVO-Rahmens im EU-Recht verarbeitet
oder wenn ein berechtigtes Interesse gemäß Artikel 6 Absatz 1 Buchstabe f
desselben vorliegt.


ERFAHREN SIE MEHR DARÜBER, WARUM IHNEN DIES ANGEZEIGT WIRD

Wir, der 'Herausgeber' und eine ausgewählte Gruppe von vertrauenswürdigen
Partnern (830), die als 'Anbieter' bezeichnet werden, benötigen Ihre Zustimmung
zum Zweck der Datenverarbeitung. Mit diesen Zwecken können wir Informationen auf
einem Gerät speichern und/oder abrufen, wie z. B. die Cookie-Verwaltung, und
personenbezogene Daten verarbeiten, wie Standardinformationen, die von einem
Gerät gesendet werden, und andere eindeutige Kennungen für personalisierte
Anzeigen und Inhalte, Anzeigen- und Inhaltsmessungen, Erkenntnisse über
Zielgruppen und Produktentwicklungen. Mit Ihrer Zustimmung können wir und unsere
Partner möglicherweise genaue Standortdaten verwenden und Geräteeigenschaften
zur Identifikation aktiv abfragen.

Sie können der oben beschriebenen Verarbeitung zustimmen oder auf detailliertere
Informationen zugreifen und Ihre Auswahl anpassen. Die erteilte Zustimmung gilt
nur für diese Website. Bitte beachten Sie, dass ein Teil der Verarbeitung Ihrer
personenbezogenen Daten möglicherweise auf berechtigten Interessen beruht, für
die Ihre Zustimmung nicht erforderlich ist. Sie haben jedoch das Recht, dem zu
widersprechen.

Sie können Ihre Einstellungen jederzeit auf der Datenschutzerklärungsseite auf
unserer Website ändern.

Auswahlmöglichkeiten anpassen
Alle akzeptieren und Website besuchen