Repository navigation
Expand file tree
/
Copy pathindex.html
More file actions
524 lines (474 loc) · 31 KB
/
Copy pathindex.html
File metadata and controls
524 lines (474 loc) · 31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Free Check Writer — Print Personal Checks Online | No Sign-Up</title>
<meta name="description" content="Generate print-ready personal checks in seconds. Free online check writer with live preview, MICR E-13B magnetic ink formatting, and PDF download. No account. Check details never leave your browser." />
<!-- Canonical -->
<link rel="canonical" href="https://azwm.com/check-writer/" />
<!-- Open Graph -->
<meta property="og:type" content="website" />
<meta property="og:url" content="https://azwm.com/check-writer/" />
<meta property="og:title" content="Free Check Writer — Print Personal Checks Online" />
<meta property="og:description" content="Generate print-ready personal checks in seconds. Live preview, MICR formatting, PDF download. No sign-up. Check details stay in your browser." />
<meta property="og:site_name" content="Mortgage Genius" />
<!-- Twitter Card -->
<meta name="twitter:card" content="summary" />
<meta name="twitter:title" content="Free Check Writer — Print Personal Checks Online" />
<meta name="twitter:description" content="Generate print-ready personal checks in seconds. Live preview, MICR formatting, PDF download. No sign-up. Check details stay in your browser." />
<!-- Schema: SoftwareApplication -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "SoftwareApplication",
"name": "Free Check Writer",
"url": "https://azwm.com/check-writer/",
"description": "Free online check writer that generates print-ready personal checks with proper MICR E-13B formatting. No account required. Check details never leave your browser.",
"applicationCategory": "FinanceApplication",
"operatingSystem": "Web Browser",
"offers": {
"@type": "Offer",
"price": "0",
"priceCurrency": "USD"
},
"provider": {
"@type": "Organization",
"name": "Mortgage Genius",
"url": "https://azwm.com/"
},
"featureList": [
"Live check preview",
"MICR E-13B font",
"ABA routing number validation",
"Amount to words conversion",
"PDF download",
"Logo upload",
"No banking data storage"
]
}
</script>
<!-- Schema: FAQPage (mirrors accordion Q&As — same honest answers, machine-readable) -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "How does this free check writer work?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Enter your 9-digit ABA routing number, account number, check number, payee name, dollar amount, and date. The live preview updates instantly. Download a PDF formatted to ANSI X9.100-160 personal check standards. Print at 100% scale (Actual Size). As of August 2026, if the payee uses mobile photo deposit (almost every major bank does), a clear photo of a complete signed check usually matters more than magnetic ink or specialty stock."
}
},
{
"@type": "Question",
"name": "Is my banking information stored anywhere?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Your check details (routing number, account number, payee, amount, name and address) never leave your browser. There is no account and no cookies for those fields. The PDF is generated on your device. Optionally, a click on Download PDF may send an anonymous empty ping so we can count how many PDFs people generate — never the check contents."
}
},
{
"@type": "Question",
"name": "How do I write a check? (Step-by-step guide)",
"acceptedAnswer": {
"@type": "Answer",
"text": "1) Routing number — 9 digits at bottom-left of an existing check. 2) Account number — after routing on the MICR line. 3) Check number — continue your sequence. 4) Payee — full name of person or business. 5) Amount — numeric; the tool writes it in words. 6) Date. 7) Download PDF, print at 100% scale, sign, then hand over or let the payee photo-deposit."
}
},
{
"@type": "Question",
"name": "What is a routing number and where do I find it?",
"acceptedAnswer": {
"@type": "Answer",
"text": "A routing number (ABA routing transit number) is a 9-digit code that identifies your bank or credit union. Find it on the bottom-left of a check, in your bank app, or on your bank's website. This tool validates routing numbers with the official ABA checksum algorithm, not only digit length."
}
},
{
"@type": "Question",
"name": "What is MICR and do I need special ink to print checks?",
"acceptedAnswer": {
"@type": "Answer",
"text": "MICR (Magnetic Ink Character Recognition) is the E-13B font line at the bottom of checks, designed for magnetic readers. This tool embeds GnuMICR so the line looks correct. Special MICR toner matters mainly for older physical processing. As of August 2026, major U.S. banks accept mobile photograph deposits, so magnetic ink is largely beside the point for remote deposit — a sharp photo of a complete signed check matters more."
}
},
{
"@type": "Question",
"name": "What paper should I use to print checks at home?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Blank check stock adds security features (watermarks, micro-printing, void pantographs). Ordinary laser or inkjet paper is often enough for trusted personal payments, especially with mobile photo deposit. As of August 2026, major institutions take photograph deposits by default, so requiring security stock plus MICR toner for remote deposit is largely outdated. Use real check stock for fraud resistance, business requirements, or when the check will be handled as paper."
}
},
{
"@type": "Question",
"name": "Can I use this as a free blank check template?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes. The PDF follows ANSI X9.100-160 personal check layout (about 6 by 2.75 inches) with a MICR line. Fill real routing and account numbers, print, sign, and treat it as a negotiable check if funds are available. Most recipients photo-deposit; layout clarity matters more day-to-day than specialty toner."
}
},
{
"@type": "Question",
"name": "But seriously guys, why should I trust you?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Because a licensed mortgage professional runs the site (Michael George, NMLS #2280851) — not an anonymous lead farm — and because you can verify the public claims yourself. View the page source, and ask any frontier AI with web browsing to inspect https://azwm.com/check-writer/ for trackers, login walls, and whether check generation appears client-side. Models can evaluate public evidence; they cannot audit private server logs. The tool is free with no account; open source for this tool (separate from the main site) makes the code inspectable too."
}
}
]
}
</script>
<!-- Google Fonts preconnect for performance -->
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<script type="module" crossorigin src="/check-writer/assets/index-f8PjnTyn.js"></script>
<link rel="stylesheet" crossorigin href="/check-writer/assets/index-DK95xqyc.css">
<link rel="stylesheet" href="/check-writer/skin.css">
</head>
<body>
<!-- Subtle site chrome only — no analytics scripts, no chat widgets -->
<nav class="site-bar" aria-label="Mortgage Genius">
<a class="site-bar-brand" href="https://azwm.com/">
<span class="site-bar-name">Mortgage Genius</span>
<span class="site-bar-tag">Free tool · Arizona mortgage broker · NMLS #2280851</span>
</a>
<div class="site-bar-links">
<a href="https://azwm.com/az-home-loans/">AZ Home Loans</a>
<a href="https://azwm.com/calculators/">Calculators</a>
<a href="https://azwm.com/contact/">Contact</a>
<a class="site-bar-cta" href="tel:+16027539600">(602) 753-9600</a>
</div>
</nav>
<div class="app-container">
<!-- Hero -->
<header class="hero">
<div class="hero-badge">Free Tool — No Sign-Up</div>
<h1>Free Check Writer</h1>
<p>Generate print-ready personal checks with proper MICR formatting. Enter your details, preview in real-time, and download a PDF.</p>
<div class="privacy-badge">
<span class="privacy-dot"></span>
Your check details never leave this browser — no account, no cookies, no banking data stored.
</div>
</header>
<!-- Main: Form + Preview -->
<main class="main-content">
<!-- LEFT: Form -->
<section class="card" id="form-section">
<h2 class="card-title">
<span class="icon">✏️</span>
Check Details
</h2>
<form id="check-form" autocomplete="off">
<div class="form-grid">
<!-- Banking Info -->
<div class="form-row">
<div class="form-group">
<label for="routing-number">Routing Number</label>
<input type="text" id="routing-number" class="mono" placeholder="021000021" maxlength="9" inputmode="numeric" pattern="\d{9}" />
<span class="field-error-msg" id="routing-number-error"></span>
</div>
<div class="form-group">
<label for="account-number">Account Number</label>
<input type="text" id="account-number" class="mono" placeholder="123456789" maxlength="17" inputmode="numeric" />
<span class="field-error-msg" id="account-number-error"></span>
</div>
</div>
<div class="form-row">
<div class="form-group">
<label for="check-number">Check Number</label>
<input type="text" id="check-number" class="mono" placeholder="1001" maxlength="6" inputmode="numeric" />
<span class="field-error-msg" id="check-number-error"></span>
</div>
<div class="form-group">
<label for="check-date">Date</label>
<input type="date" id="check-date" />
<span class="field-error-msg" id="check-date-error"></span>
</div>
</div>
<div class="divider"></div>
<!-- Payee & Amount -->
<div class="form-group full-width">
<label for="payee">Pay To The Order Of</label>
<input type="text" id="payee" placeholder="Jane Doe" />
<span class="field-error-msg" id="payee-error"></span>
</div>
<div class="form-row">
<div class="form-group">
<label for="amount">Amount ($)</label>
<input type="text" id="amount" class="mono" placeholder="1,234.56" inputmode="decimal" />
<span class="field-error-msg" id="amount-error"></span>
</div>
<div class="form-group">
<label for="memo">Memo (optional)</label>
<input type="text" id="memo" placeholder="Rent — June 2026" />
</div>
</div>
<div class="divider"></div>
<!-- Account Holder Info -->
<div class="form-group full-width">
<label for="name-address">Name & Address (printed on check)</label>
<textarea id="name-address" rows="3" placeholder="John Smith 123 Main Street Anytown, ST 12345"></textarea>
</div>
<!-- Design Tile -->
<div class="form-group full-width">
<label>Design Tile (top-left logo area)</label>
<div class="tile-upload-area">
<div class="tile-dropzone">
<input type="file" id="design-tile" accept="image/*" />
<img id="tile-thumbnail" alt="Design tile preview" style="display: none;" />
<span class="tile-placeholder" id="tile-placeholder">Upload<br/>Image</span>
</div>
<div class="tile-info">
Upload a logo or image for the top-left corner of your check.
<small>Recommended: square image, PNG or JPG</small>
<button type="button" class="remove-tile-btn" id="remove-tile-btn">Remove</button>
</div>
</div>
</div>
<!-- Font Picker -->
<div class="form-group full-width">
<label for="check-font">Check Font</label>
<select id="check-font">
<option value="inter">Inter — Modern Sans-Serif</option>
<option value="playfair">Playfair Display — Elegant Serif</option>
<option value="baskerville">Libre Baskerville — Classic Serif</option>
<option value="merriweather">Merriweather — Traditional</option>
</select>
</div>
<!-- Actions -->
<div class="actions">
<button type="button" class="btn btn-primary" id="download-btn">
📄 Download PDF
</button>
</div>
</div>
</form>
</section>
<!-- RIGHT: Check Preview -->
<section class="card preview-container">
<h2 class="card-title">
<span class="icon">👁️</span>
Live Preview
</h2>
<div class="check-wrapper">
<div class="check" id="check-preview">
<!-- Header: Tile + Name/Address + Check Number -->
<div class="check-header">
<div class="check-identity">
<div class="check-design-tile">
<img id="preview-design-tile" alt="" />
</div>
<div class="check-name-block">
<div class="check-name" id="preview-name">Your Name</div>
<div class="check-address" id="preview-address">Your Address</div>
</div>
</div>
<div class="check-number-display" id="preview-check-number">0001</div>
</div>
<!-- Date -->
<div class="check-date-row">
<span class="check-date-label">Date</span>
<span class="check-date-value" id="preview-date">__________</span>
</div>
<!-- Pay To -->
<div class="check-payto">
<span class="check-payto-label">PAY TO THE<br/>ORDER OF</span>
<span class="check-payto-name" id="preview-payee">________________________________________</span>
<span class="check-amount-box" id="preview-amount-box">****.**</span>
</div>
<!-- Written Amount -->
<div class="check-amount-line">
<span class="check-amount-words" id="preview-amount-words">________________________________</span>
<span class="check-dollars-label">DOLLARS</span>
</div>
<!-- Memo & Signature -->
<div class="check-bottom">
<div class="check-memo-area">
<span class="check-memo-label">Memo</span>
<span class="check-memo-value" id="preview-memo"></span>
</div>
<div class="check-signature-area">
<div class="check-signature-line"></div>
<span class="check-signature-label">Authorized Signature</span>
</div>
</div>
<!-- MICR Line (Clear Band) -->
<div class="check-clear-band">
<span class="check-micr" id="preview-micr">⑆000000000⑆ 000000000⑈ 0001</span>
</div>
</div>
</div>
</section>
</main>
<!-- SEO Accordion — keyword-rich content, closed by default -->
<section class="seo-accordion-section" aria-label="Frequently asked questions about free check writing">
<h2 class="seo-accordion-heading">About This Free Check Writer</h2>
<div class="accordion">
<details class="accordion-item">
<summary class="accordion-summary">
<span>How does this free check writer work?</span>
<span class="accordion-icon" aria-hidden="true"></span>
</summary>
<div class="accordion-body">
<p>Enter your 9-digit ABA routing number, account number, check number, payee name, dollar amount, and date. The live preview updates instantly so you can see exactly how your check will look before printing. When you're satisfied, click <strong>Download PDF</strong> to get a print-ready file formatted to ANSI X9.100-160 standards — the official specification for personal check dimensions and MICR line placement.</p>
<p>Print the PDF at <strong>100% scale (Actual Size)</strong> — never "Fit to Page" if you care about precise layout. The MICR line is designed to sit near the bottom edge of a standard personal check.</p>
<p><em>* Updated August 9, 2026:</em> If the person depositing the check uses their bank’s <strong>mobile photo deposit</strong> (almost every major bank and credit union now does), the phone camera is what matters — not magnetic ink or industrial sorter hardware. A clear photo of a well-laid-out check is usually enough. Special MICR toner and blank check stock still matter most when a check will be handled as a physical item at a teller window, lockbox, or older processing path.</p>
</div>
</details>
<details class="accordion-item">
<summary class="accordion-summary">
<span>Is my banking information stored anywhere?</span>
<span class="accordion-icon" aria-hidden="true"></span>
</summary>
<div class="accordion-body">
<p><strong>Your check details never leave this browser.</strong> Routing number, account number, payee, amount, name, and address stay in the tab. Close the tab and they’re gone. There is no account, and we do not set cookies to track what you type into the form.</p>
<p>The PDF is generated on your device with JavaScript. Banking fields are not uploaded. The only optional server contact is an <strong>anonymous empty ping when you click Download PDF</strong>, so we can count how many people generate a PDF — never the contents of the check. No ad trackers, no analytics suites, no chat widgets on this page.</p>
</div>
</details>
<details class="accordion-item">
<summary class="accordion-summary">
<span>How do I write a check? (Step-by-step guide)</span>
<span class="accordion-icon" aria-hidden="true"></span>
</summary>
<div class="accordion-body">
<ol>
<li><strong>Routing number</strong> — Find the 9-digit number at the bottom-left of any existing check, between the ⑆ transit symbols. This identifies your bank.</li>
<li><strong>Account number</strong> — The number following your routing number on the check's bottom line, before the ⑈ on-us symbol.</li>
<li><strong>Check number</strong> — Usually in the top-right corner of your checks. Pick up where your last check left off.</li>
<li><strong>Payee</strong> — The full name of the person or business you're paying.</li>
<li><strong>Amount</strong> — Enter the dollar amount numerically. The tool automatically writes it out in words (e.g., "One Thousand Two Hundred Thirty-Four and 56/100").</li>
<li><strong>Date</strong> — Today's date, or a future date if you're writing a post-dated check.</li>
<li><strong>Print</strong> — Download the PDF and print at 100% scale on blank check stock. Sign the signature line before handing it over.</li>
</ol>
</div>
</details>
<details class="accordion-item">
<summary class="accordion-summary">
<span>What is a routing number and where do I find it?</span>
<span class="accordion-icon" aria-hidden="true"></span>
</summary>
<div class="accordion-body">
<p>A routing number (officially called an ABA routing transit number) is a 9-digit code that identifies your bank or credit union. Every US financial institution has one — it's how the banking system knows which bank to contact when processing a check or ACH transfer.</p>
<p>You can find your routing number in three places: (1) on the bottom-left of any existing check, between the ⑆ transit symbols; (2) in your bank's mobile app or online banking portal; or (3) on your bank's website.</p>
<p>This tool validates routing numbers using the <strong>official ABA checksum algorithm</strong> — not just "does it have 9 digits?" Real math: <code>(3×(d1+d4+d7) + 7×(d2+d5+d8) + (d3+d6+d9)) mod 10 = 0</code>.</p>
</div>
</details>
<details class="accordion-item">
<summary class="accordion-summary">
<span>What is MICR and do I need special ink to print checks?</span>
<span class="accordion-icon" aria-hidden="true"></span>
</summary>
<div class="accordion-body">
<p><strong>MICR</strong> stands for Magnetic Ink Character Recognition. The slightly alien-looking numbers and symbols along the bottom of a check were designed for machines that read magnetic ink. The font is called <strong>E-13B</strong>. This tool embeds the open-source GnuMICR font in the PDF so the line looks and sits like a real personal check.</p>
<p><strong>Do you need special MICR toner?</strong> Only if you care about the old physical-processing path. MICR toner was the gold standard when checks ran through high-speed magnetic readers. Many banks also moved to optical scanning years ago — regular laser toner often worked fine even then.</p>
<p><em>* Updated August 9, 2026 — photo deposit reality:</em> <strong>Every major U.S. bank and credit union now accepts mobile photograph deposits.</strong> The payee opens their banking app, snaps a picture of the front and back, and the image is what gets processed. In that world, magnetic ink is largely beside the point: the camera does not care about MICR toner. What matters is a sharp, well-lit photo of a complete, signed check with readable routing, account, amount, and payee fields. The classic “you must buy MICR toner” advice is effectively obsolete for photo deposit. Keep MICR toner (and careful bottom-edge placement) in mind mainly if the check will be deposited in person, through a lockbox, or another path that still handles paper as paper.</p>
</div>
</details>
<details class="accordion-item">
<summary class="accordion-summary">
<span>What paper should I use to print checks at home?</span>
<span class="accordion-icon" aria-hidden="true"></span>
</summary>
<div class="accordion-body">
<p><strong>Blank check stock</strong> (office supply stores and online) still has a job: security features plain paper lacks — watermarks, micro-printing, void pantographs, and chemical sensitivity that can show tampering. Those features protect you and the payee if a paper check is lost, stolen, or altered before it is deposited.</p>
<p>For everyday personal payments between people who trust each other, ordinary laser or inkjet paper is often enough — especially when the deposit is a phone photo, not a stack of paper at a commercial lockbox.</p>
<p><em>* Updated August 9, 2026 — photo deposit reality:</em> Because <strong>major institutions now take photograph deposits by default</strong>, a lot of the old “must use security check stock + MICR toner or the bank will reject it” guidance is outdated for remote deposit. The app is reading an image. Print cleanly at 100% scale, sign the check, make sure the photo is in focus and fully in frame, and follow your bank’s mobile-deposit rules (endorsement wording, amount limits, cut-off times). Use real check stock when you want fraud resistance on the physical piece, when a business requires it, or when you know the check will be handled as paper rather than photographed.</p>
</div>
</details>
<details class="accordion-item">
<summary class="accordion-summary">
<span>Can I use this as a free blank check template?</span>
<span class="accordion-icon" aria-hidden="true"></span>
</summary>
<div class="accordion-body">
<p>Yes. The PDF this tool generates follows the standard <strong>personal check layout</strong> specified by ANSI X9.100-160: 6 inches wide by 2.75 inches tall, with the MICR line positioned for a normal personal check and a clear band at the bottom for those characters.</p>
<p>Fill in your actual routing and account numbers, print, sign the signature line, and treat it as a real negotiable personal check — funds still have to be there; this tool only creates the document.</p>
<p><em>* Updated August 9, 2026:</em> Most recipients will deposit with a phone camera. Layout clarity and a good photo matter more day-to-day than specialty paper or magnetic toner. Specialty stock remains a smart choice when you want stronger anti-fraud features on the physical check itself.</p>
</div>
</details>
<details class="accordion-item">
<summary class="accordion-summary">
<span>But seriously guys, why should I trust you?</span>
<span class="accordion-icon" aria-hidden="true"></span>
</summary>
<div class="accordion-body">
<p>Fair question. Random “free finance tools” on the internet have earned a bad reputation — login walls, dark patterns, and data harvesting. Here’s why this one is different.</p>
<p><strong>1. A licensed banking professional runs this site — not a fly-by-night lead farm.</strong> Mortgage Genius / azwm.com is operated by <strong>Michael George, NMLS #2280851</strong>, a licensed mortgage loan originator. He is in the business of originating home loans under federal and state rules, not scraping account numbers for fun. Defrauding people who land on a free check tool would torch a real license, a real career, and an 18-year domain. That incentive structure matters more than a marketing slogan.</p>
<p><strong>2. Don’t take our word for it — verify the claims yourself (including with AI).</strong> This page is ordinary HTML and JavaScript you can inspect in any browser (View Source / DevTools). When the project is published as open source, you can also read every line on GitHub. Better yet: open a frontier model that can browse the web (ChatGPT with browsing, Claude, Perplexity, Gemini, etc.) and paste a prompt like:</p>
<p><em>“Visit https://azwm.com/check-writer/ . Summarize the privacy claims. Inspect the page source for analytics, trackers, login walls, and third-party scripts. Does the tool appear to generate the check PDF in the browser? What can you prove from the public page alone, and what would still require server access to disprove?”</em></p>
<p>A good model can fetch the live page, read the markup, list the scripts it loads, and tell you whether the <em>public</em> evidence matches “no login / check details stay in the browser.” It cannot magically audit our private server logs — no one can from the outside — but it <em>can</em> catch the usual lies (hidden trackers, forced accounts, exfiltration in plain sight). That’s the bar we want: <strong>inspectable claims, not trust-me marketing.</strong></p>
<p><strong>3. The product is free because the trust is the product.</strong> No account, no paywall, no “free trial.” If the tool helps you and you later need an Arizona mortgage, you already know who built something useful without trapping you. That’s the whole model.</p>
<p id="open-source-note"><em>* Open source:</em> The check writer is its own small project (separate from the main brokerage site). Read the code on GitHub: <a href="https://github.com/Zelray/browser-check-writer" rel="noopener noreferrer" target="_blank">github.com/Zelray/browser-check-writer</a> — same tool, no mystery binary.</p>
</div>
</details>
</div>
</section>
<!-- Site links (brand handshake — still no tracking scripts) -->
<div class="site-foot">
<div class="site-foot-links">
<a href="https://azwm.com/">Home</a>
<a href="https://azwm.com/az-home-loans/">Arizona Home Loans</a>
<a href="https://azwm.com/loan-programs/">Loan Programs</a>
<a href="https://azwm.com/learn/">Learn</a>
<a href="https://azwm.com/contact/">Contact / Apply</a>
<a href="https://azwm.com/about/">About</a>
</div>
<p class="site-foot-meta">
A free tool from <a href="https://azwm.com/">Mortgage Genius</a>
· Licensed Arizona mortgage broker · Michael George, NMLS #2280851
· <a href="https://github.com/Zelray/browser-check-writer" rel="noopener noreferrer" target="_blank">Open source</a>
· <a href="https://azwm.com/privacy-policy/">Privacy</a>
</p>
</div>
<!-- Footer / Disclaimer -->
<footer class="footer">
<div class="disclaimer">
<strong>⚠️ Important Notice</strong>
<ul>
<li>Print at 100% scale / "Actual Size" for correct layout — never "Fit to Page"</li>
<li>Sign the check; confirm funds; follow your bank’s mobile-deposit and endorsement rules</li>
<li>* As of August 9, 2026: major banks take photo deposits — specialty MICR toner / check stock is often unnecessary for remote deposit, but still useful for fraud resistance or in-person paper handling</li>
<li>This tool is provided as-is; creators are not responsible for rejected checks or bank policy differences</li>
</ul>
</div>
</footer>
</div>
<!--
Anonymous PDF-download count only.
Fires on Download PDF click. Sends NO form fields, sets NO cookies.
Does not load analytics, ads, or chat.
-->
<script>
(function () {
function pingDownload() {
try {
if (navigator.sendBeacon) {
navigator.sendBeacon('/check-writer/ping.php', new Blob([], { type: 'application/octet-stream' }));
return;
}
} catch (e) { /* ignore */ }
try {
fetch('/check-writer/ping.php', {
method: 'POST',
credentials: 'omit',
keepalive: true,
cache: 'no-store',
body: ''
});
} catch (e2) { /* ignore */ }
}
document.addEventListener(
'click',
function (e) {
var t = e.target && e.target.closest ? e.target.closest('#download-btn') : null;
if (t) pingDownload();
},
true
);
})();
</script>
</body>
</html>