\nInvoice — Golden Agency \nInvoice | Golden Agency
📲 WhatsApp 💎 Revolut ₿ Crypto

GOLDEN AGENCY

AI-Powered Digital Factory

Plovdiv, Bulgaria

INVOICE

INV-2026-0000

PENDING

Bill To

Client Name

[email protected]

Sofia, Bulgaria

Invoice Dates

Issue: 2026-07-01

Due: 2026-07-15

Description Qty Unit Price Total
Professional Services 1 €0.00 €0.00
Subtotal €0.00
VAT €0.00
Total €0.00
Total (BGN) лв0.00

Payment Details

Beneficiary
Nikolay Haratyunyan
IBAN
LT74 3250 0060 3613 2585
BIC / SWIFT
REVOLT21
Bank
Revolut Bank UAB, Vilnius, Lithuania
Correspondent
CHASDEFX
Bank Address
Konstitucijos ave. 21B, 08130, Vilnius, Lithuania

Revolut
Country
EUR / SEPA Zone
Revolut QR

Pay with Revolut

Scan with the Revolut app to pay instantly. Or send directly to @nikolayhar777.

Crypto payments (USDT/USDC/BTC/ETH) also accepted. View crypto options →

Thank you for your business. Payment is due within 14 days. All services are provided under written contract. Operator: Nikolay Haratyunyan, sole proprietor, Plovdiv, Bulgaria. Please include the invoice number in your transfer reference.

\n' + '\n' + ' \nInvoice | Golden Agency \n' + html + ' \n'; var blob = new Blob([full], { type: 'text/html' }); var url = URL.createObjectURL(blob); var a = document.createElement('a'); a.href = url; a.download = 'invoice-' + STATE.number + '.html'; a.click(); URL.revokeObjectURL(url); showToast('Downloaded ' + a.download); }; // ═══════════════════════════════════════════════════════════════ // URL PARAM PARSER — FULL SPECTRUM // ═══════════════════════════════════════════════════════════════ (function parseUrlParams() { var p = new URLSearchParams(window.location.search); // ─── Basic fields ─── if (p.get('number')) STATE.number = p.get('number'); if (p.get('client')) STATE.clientName = p.get('client'); if (p.get('email')) STATE.clientEmail = p.get('email'); if (p.get('address')) STATE.clientAddress = p.get('address'); if (p.get('status')) STATE.status = p.get('status'); if (p.get('currency')) STATE.currency = p.get('currency').toUpperCase(); if (p.get('vat')) STATE.vatRate = parseFloat(p.get('vat')) / 100; if (p.get('notes')) STATE.notes = decodeURIComponent(p.get('notes').replace(/\+/g, ' ')); // ─── Dates ─── if (p.get('issueDate') || p.get('issue')) { var issue = p.get('issueDate') || p.get('issue'); if (/^\d{4}-\d{2}-\d{2}$/.test(issue)) STATE.issueDate = issue; } if (p.get('dueDate') || p.get('due')) { var due = p.get('dueDate') || p.get('due'); if (/^\d{4}-\d{2}-\d{2}$/.test(due)) STATE.dueDate = due; } // ─── Simple amount (creates single line item) ─── var amount = p.get('amount') || p.get('total'); if (amount) { var num = parseFloat(amount); if (!isNaN(num) && num > 0) { var subtotal = num / (1 + STATE.vatRate); STATE.items = [{ description: 'Professional Services', qty: 1, price: Math.round(subtotal * 100) / 100 }]; } } // ─── Description override ─── if (p.get('desc')) { STATE.items[0].description = decodeURIComponent(p.get('desc').replace(/\+/g, ' ')); } // ─── Multi-item via JSON: ?items=[{"desc":"...","qty":1,"price":100}] ─── if (p.get('items')) { try { var parsed = JSON.parse(p.get('items')); if (Array.isArray(parsed) && parsed.length > 0) { STATE.items = parsed.map(function(item) { return { description: item.desc || item.description || 'Service', qty: Math.max(1, parseInt(item.qty) || 1), price: Math.max(0, parseFloat(item.price) || 0) }; }); } } catch(e) { console.warn('Failed to parse items JSON param'); } } // ─── Multi-item via numbered params: desc1,price1,desc2,price2 ─── if (p.get('desc1')) { var multi = []; for (var i = 1; ; i++) { var d = p.get('desc' + i); var pr = p.get('price' + i); var q = p.get('qty' + i); if (!d && !pr) break; multi.push({ description: d ? decodeURIComponent(d.replace(/\+/g, ' ')) : 'Service ' + i, qty: q ? Math.max(1, parseInt(q)) : 1, price: pr ? Math.max(0, parseFloat(pr)) : 0 }); } if (multi.length > 0) STATE.items = multi; } // ─── Legacy single-item params ─── if (p.get('item_desc') || p.get('item_price')) { STATE.items = [{ description: p.get('item_desc') ? decodeURIComponent(p.get('item_desc').replace(/\+/g, ' ')) : 'Service', qty: parseInt(p.get('item_qty')) || 1, price: parseFloat(p.get('item_price')) || 0 }]; } // ─── Auto-generate number if not provided ─── if (!STATE.number) { STATE.number = generateInvoiceNumber(); } renderInvoice(); })(); })();