<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: ChatToPDF</title>
    <description>The latest articles on DEV Community by ChatToPDF (@chattopdf).</description>
    <link>https://dev.to/chattopdf</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3958955%2F93286515-28b9-4cc2-8bfa-f9c55c7a9302.png</url>
      <title>DEV Community: ChatToPDF</title>
      <link>https://dev.to/chattopdf</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/chattopdf"/>
    <language>en</language>
    <item>
      <title>Why WhatsApp Export Parsers Break: 14 Formats Tested</title>
      <dc:creator>ChatToPDF</dc:creator>
      <pubDate>Tue, 14 Jul 2026 08:04:27 +0000</pubDate>
      <link>https://dev.to/chattopdf/why-whatsapp-export-parsers-break-14-formats-tested-ngh</link>
      <guid>https://dev.to/chattopdf/why-whatsapp-export-parsers-break-14-formats-tested-ngh</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Disclosure:&lt;/strong&gt; I am the founder of ChatToPDF and maintain the open-source parser used in the linked benchmark. Every published fixture is synthetic; no customer conversation appears in the test data.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A WhatsApp export parser usually breaks because the timestamp at the start of each message is not one universal format. Brackets, separators, date order, seconds, AM/PM position, numeral script and invisible direction marks can all change with the phone and locale. A parser that recognizes only &lt;code&gt;DD/MM/YY, HH:MM - Name: text&lt;/code&gt; may appear correct in development and then merge an entire German, US, Dutch or Arabic export into one message.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Do not build a WhatsApp export parser around one regular expression. Normalize Unicode digits and spacing first, try an ordered set of explicit timestamp families, keep ambiguous numeric dates visible as a limitation, and parse the file as a stateful stream so multiline messages are joined instead of discarded. Our public 2026.07 benchmark contains 24 synthetic cases: 14 timestamp layouts, four numeral-normalization cases and six behavior cases. The published Node.js and Python packages passed those 24 cases. That result describes this fixture set only; it is not a claim that every WhatsApp export ever produced is supported.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbrwcuhbrg9w9ywavuzbw.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbrwcuhbrg9w9ywavuzbw.webp" alt="WhatsApp export parser pipeline from localized timestamps through normalization, matching and validated messages" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why one WhatsApp timestamp regex fails
&lt;/h2&gt;

&lt;p&gt;The first parser I wrote had the usual shape: split the file into lines, run one regex against each line, and treat anything that matched as a new message. It worked against the sample in front of me. That was the problem. The sample came from one phone with one regional setting.&lt;/p&gt;

&lt;p&gt;This pattern is a reasonable first experiment for an Android export using a slash date and an English AM/PM marker:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;header&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sr"&gt;/^&lt;/span&gt;&lt;span class="se"&gt;(\d{1,2}\/\d{1,2}\/\d{2,4})&lt;/span&gt;&lt;span class="sr"&gt;,&lt;/span&gt;&lt;span class="se"&gt;\s&lt;/span&gt;&lt;span class="sr"&gt;+&lt;/span&gt;&lt;span class="se"&gt;(\d{1,2}&lt;/span&gt;&lt;span class="sr"&gt;:&lt;/span&gt;&lt;span class="se"&gt;\d{2})\s&lt;/span&gt;&lt;span class="sr"&gt;+&lt;/span&gt;&lt;span class="se"&gt;(&lt;/span&gt;&lt;span class="sr"&gt;AM|PM&lt;/span&gt;&lt;span class="se"&gt;)\s&lt;/span&gt;&lt;span class="sr"&gt;+-&lt;/span&gt;&lt;span class="se"&gt;\s&lt;/span&gt;&lt;span class="sr"&gt;+&lt;/span&gt;&lt;span class="se"&gt;([^&lt;/span&gt;&lt;span class="sr"&gt;:&lt;/span&gt;&lt;span class="se"&gt;]&lt;/span&gt;&lt;span class="sr"&gt;+&lt;/span&gt;&lt;span class="se"&gt;)&lt;/span&gt;&lt;span class="sr"&gt;:&lt;/span&gt;&lt;span class="se"&gt;\s&lt;/span&gt;&lt;span class="sr"&gt;+&lt;/span&gt;&lt;span class="se"&gt;(&lt;/span&gt;&lt;span class="sr"&gt;.*&lt;/span&gt;&lt;span class="se"&gt;)&lt;/span&gt;&lt;span class="sr"&gt;$/i&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It matches:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;3/15/24, 2:30 PM - Researcher: Hello
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It does not match any of these valid shapes from the public fixture set:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[2024/07/09, 08:01:49] Researcher: Morning
15.03.2024, 14:30 - Researcher: Guten Tag
[15-03-2024, 14:30:01] Researcher: Hoi
[15/3/24 下午 2:30:45] Researcher: 你好
2026-01-13, 12:22 PM - Researcher: Hello
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6yd0feimopdo315ztrdm.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6yd0feimopdo315ztrdm.webp" alt="WhatsApp export parser regex matching one US timestamp while rejecting European, ISO and CJK examples" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When a header fails to match, the common continuation-line rule appends it to the preceding message. That makes the bug quiet. Instead of throwing an error, the parser can report one enormous message with thousands of lines. A count check is therefore as important as the regex itself.&lt;/p&gt;

&lt;p&gt;The exported file is plain text, but its structure depends on the exporting environment. The academic &lt;a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC11133087/" rel="noopener noreferrer"&gt;ChatDashboard parsing description&lt;/a&gt; reports the same underlying issue: operating system, language, date settings and time settings affect the exported log structure. WhatsApp's &lt;a href="https://faq.whatsapp.com/1180414079177245/" rel="noopener noreferrer"&gt;official export instructions&lt;/a&gt; explain how to create the file; they do not promise one developer-facing timestamp schema.&lt;/p&gt;

&lt;h2&gt;
  
  
  The timestamp families a parser meets
&lt;/h2&gt;

&lt;p&gt;The 2026.07 benchmark groups 14 layouts by structural family. The point is not that 14 is a permanent total. It is that a production parser needs explicit coverage and fixtures rather than an assumption that one example represents the format.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcaaaysb3iq2vtxm0k3hw.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcaaaysb3iq2vtxm0k3hw.webp" alt="WhatsApp export parser format matrix covering bracketed, dashed, dotted, slash, ISO and CJK timestamp families" width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Family&lt;/th&gt;
&lt;th&gt;Example&lt;/th&gt;
&lt;th&gt;Structural difference&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;iOS year-first slash&lt;/td&gt;
&lt;td&gt;[2024/07/09, 08:01:49] Name: text&lt;/td&gt;
&lt;td&gt;Brackets, seconds, year first, no dash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;iOS slash + AM/PM&lt;/td&gt;
&lt;td&gt;[3/15/24, 2:30:45 PM] Name: text&lt;/td&gt;
&lt;td&gt;Month/day ambiguity and optional seconds&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Android slash&lt;/td&gt;
&lt;td&gt;3/15/24, 2:30 PM - Name: text&lt;/td&gt;
&lt;td&gt;No brackets and a dash before sender&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;European dotted&lt;/td&gt;
&lt;td&gt;15.03.2024, 14:30 - Name: text&lt;/td&gt;
&lt;td&gt;Dots, day first and 24-hour time&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dutch dashed&lt;/td&gt;
&lt;td&gt;15-03-2024 14:30 - Name: text&lt;/td&gt;
&lt;td&gt;Dash date and no comma&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ISO year-first&lt;/td&gt;
&lt;td&gt;2026-01-13, 12:22 PM - Name: text&lt;/td&gt;
&lt;td&gt;Year first with dash separators&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CJK marker&lt;/td&gt;
&lt;td&gt;[15/3/24 下午 2:30:45] Name: text&lt;/td&gt;
&lt;td&gt;Day-period marker appears before time&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Some families differ only in punctuation. Others change the meaning of the numeric fields. Bracket detection alone is not enough: iOS can emit bracketed slash, dotted and dash-date forms, while non-bracketed Android-style forms can use slash, dash or year-first dates.&lt;/p&gt;

&lt;p&gt;This is also why a permissive expression such as &lt;code&gt;^(.+?), (.+?) - (.+?): (.*)$&lt;/code&gt; is not a dependable fix. It accepts more lines, but it pushes all the difficult work into later guesses and can mistake message text for a header. A parser should be tolerant about known equivalent syntax and strict about the boundary that declares a new message.&lt;/p&gt;

&lt;h2&gt;
  
  
  Normalize before matching
&lt;/h2&gt;

&lt;p&gt;Regular expressions are easier to reason about after equivalent characters have one representation. The input can contain characters that look familiar on screen but are not the ASCII characters in your pattern.&lt;/p&gt;

&lt;p&gt;The published parser performs a normalization pass before trying timestamp families:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Remove carriage returns and selected directional control marks around headers.&lt;/li&gt;
&lt;li&gt;Convert narrow no-break and non-breaking spaces to ordinary spaces.&lt;/li&gt;
&lt;li&gt;Map localized AM/PM markers to &lt;code&gt;AM&lt;/code&gt; or &lt;code&gt;PM&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Translate Arabic-Indic, Persian, Devanagari and Thai numerals to ASCII digits.&lt;/li&gt;
&lt;li&gt;Normalize punctuation such as the Arabic comma where it appears in the header.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjc26pr2ifjw7l1x03def.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjc26pr2ifjw7l1x03def.webp" alt="WhatsApp export parser normalization of directional marks, locale digits, spacing, commas and AM PM markers" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here is a reduced JavaScript version of the digit step:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;translateDigits&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;[...&lt;/span&gt;&lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;map&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;char&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;point&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;char&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;codePointAt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;point&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mh"&gt;0x0660&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;point&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="mh"&gt;0x0669&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;point&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mh"&gt;0x0660&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// Arabic-Indic&lt;/span&gt;
    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;point&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mh"&gt;0x06f0&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;point&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="mh"&gt;0x06f9&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;point&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mh"&gt;0x06f0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// Persian&lt;/span&gt;
    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;point&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mh"&gt;0x0966&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;point&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="mh"&gt;0x096f&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;point&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mh"&gt;0x0966&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// Devanagari&lt;/span&gt;
    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;point&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mh"&gt;0x0e50&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;point&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="mh"&gt;0x0e59&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;point&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mh"&gt;0x0e50&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// Thai&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;char&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}).&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For example, the Arabic-Indic header &lt;code&gt;١٥/٠٣/٢٤, ١٤:٣٠&lt;/code&gt; becomes &lt;code&gt;15/03/24, 14:30&lt;/code&gt; before structural matching. The message body remains unchanged. Normalization should be scoped: rewriting the entire message body can damage the content you were asked to preserve.&lt;/p&gt;

&lt;p&gt;Normalization reduces the number of patterns, but it does not remove date-order ambiguity. It makes symbols comparable; it does not tell you whether &lt;code&gt;03/04/24&lt;/code&gt; means 3 April or March 4.&lt;/p&gt;

&lt;h2&gt;
  
  
  Use ordered format families
&lt;/h2&gt;

&lt;p&gt;The parser uses an ordered list of sender and system-message patterns. More specific shapes are tested before more general shapes. A match returns the date string, time string, optional day-period marker, sender and body, plus a pattern type that controls date construction.&lt;/p&gt;

&lt;p&gt;Conceptually, the loop looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;for &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;pattern&lt;/span&gt; &lt;span class="k"&gt;of&lt;/span&gt; &lt;span class="nx"&gt;timestampPatterns&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;senderMatch&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;line&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;match&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;pattern&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;senderRegex&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;senderMatch&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;parseSenderMessage&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;senderMatch&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;pattern&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;type&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;systemMatch&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;line&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;match&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;pattern&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;systemRegex&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;systemMatch&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;parseSystemMessage&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;systemMatch&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;pattern&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;type&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// continuation text, preamble or unsupported header&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Pattern order matters. A broad slash-date expression placed first can consume a more specific four-digit Brazilian form and apply the wrong month/day rule. A sender pattern should also run before a corresponding system pattern so the colon in &lt;code&gt;Name: message&lt;/code&gt; is not swallowed as generic system text.&lt;/p&gt;

&lt;p&gt;Keep timestamp recognition separate from message classification. Once the header boundary is known, the body can be classified as text, media, call, deleted or system using its own localized markers. Combining every possible body type into the timestamp regex makes the structural expression difficult to test and easy to break.&lt;/p&gt;

&lt;h2&gt;
  
  
  Treat ambiguous numeric dates honestly
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;15/03/24&lt;/code&gt; is not ambiguous because 15 cannot be a month. &lt;code&gt;03/15/24&lt;/code&gt; is equally clear. &lt;code&gt;03/04/24&lt;/code&gt; is not. Without context, both 3 April and March 4 are valid interpretations.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fy25onn20dl1bx3r3fq5f.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fy25onn20dl1bx3r3fq5f.webp" alt="WhatsApp export parser decision tree for ambiguous day month values such as 03 slash 04 slash 24" width="800" height="368"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The published parser uses structural context and a limited heuristic:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If the first number is above 12, treat it as the day.&lt;/li&gt;
&lt;li&gt;If the second number is above 12, treat it as the day.&lt;/li&gt;
&lt;li&gt;If both are 12 or below and an English AM/PM marker is present, prefer the US month-first interpretation.&lt;/li&gt;
&lt;li&gt;Otherwise prefer day-first for the generic slash family.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is useful, not infallible. The right production behavior is to retain the raw line, record the detected pattern and make ambiguous dates auditable. For evidence, research or compliance work, compare the result with the source device and surrounding messages. The parser should not turn a heuristic into a certainty claim.&lt;/p&gt;

&lt;p&gt;A stronger application can detect locale from a sample of unambiguous dates across the file, then apply the inferred order to ambiguous dates. Even then, keep a warning when the sample provides no decisive values.&lt;/p&gt;

&lt;h2&gt;
  
  
  Parse messages as state, not isolated lines
&lt;/h2&gt;

&lt;p&gt;A WhatsApp message can contain line breaks. Only its first line has a timestamp header. The following lines must be appended to the current message until another recognized header begins.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;3/15/24, 2:30 PM - Alice: first line
second line
third line
3/15/24, 2:31 PM - Bob: next message
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7ufsaoxf9boogeiyp89x.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7ufsaoxf9boogeiyp89x.webp" alt="WhatsApp export parser state machine joining multiline text and separating sender messages from system events" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A minimal state machine is clearer than splitting on a regex:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;messages&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[];&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;current&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;for &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;line&lt;/span&gt; &lt;span class="k"&gt;of&lt;/span&gt; &lt;span class="nx"&gt;normalizedText&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;split&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;header&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;recognizeHeader&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;line&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;header&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;current&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="nx"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;push&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;current&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;current&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;header&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;current&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;current&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;text&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="s2"&gt;`\n&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;line&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;current&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="nx"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;push&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;current&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This state also gives you a place to handle preamble text, blank lines and unsupported headers deliberately. The first unmatched line should not create a phantom message. An unmatched line after a valid message is continuation text. A run of thousands of unmatched lines is a diagnostic signal that header recognition probably failed.&lt;/p&gt;

&lt;p&gt;System messages need a separate path because they have a timestamp but no sender/body colon. Participant joins, group changes and encryption notices are not sender-attributed chat messages, yet dropping them changes message counts and chronology. The benchmark includes one system case, one multiline case and participant extraction across two senders for that reason.&lt;/p&gt;

&lt;h2&gt;
  
  
  How the 24-case benchmark works
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://chattopdf.app/research/whatsapp-export-benchmark-2026" rel="noopener noreferrer"&gt;WhatsApp Export Parser Benchmark 2026&lt;/a&gt; is intentionally small enough to inspect. It contains no customer messages and no private chats. Every fixture is synthetic and declares its input plus expected structured fields.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqu99c2csjve8hagliiu3.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqu99c2csjve8hagliiu3.webp" alt="WhatsApp export parser benchmark method using 24 synthetic fixtures across Node.js and Python runtimes" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The suite currently contains:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;14 timestamp cases&lt;/strong&gt; covering bracketed and non-bracketed layouts, slash/dot/dash separators, year-first dates, seconds, and day-period placement.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;4 normalization cases&lt;/strong&gt; using Arabic-Indic, Persian, Devanagari and Thai numerals.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;6 behavior cases&lt;/strong&gt; for multiline messages, system messages, media markers, deleted messages, call markers and participant extraction.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Both runners read the same fixture JSON. They assert message count and, when applicable, participants, sender, text, type, year, month, day, hour and minute. A failure produces a non-zero exit status, which makes the benchmark usable in CI.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"timestamp-android-slash"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"input"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"3/15/24, 2:30 PM - Researcher: Hello"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"expected"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"messageCount"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"sender"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Researcher"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"year"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2024&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"month"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"day"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"hour"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;14&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"text"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Node.js 0.1.1 and Python 0.1.1 each passed 24 of 24 published cases. Read that result narrowly. It does not prove support for every device, app version, locale, malformed ZIP or future WhatsApp change. It proves that the two published implementations satisfy the explicit expectations in this public fixture set. You can download the &lt;a href="https://chattopdf.app/research-data/whatsapp-export-benchmark-2026/synthetic-fixtures.json" rel="noopener noreferrer"&gt;fixture JSON&lt;/a&gt;, &lt;a href="https://chattopdf.app/research-data/whatsapp-export-benchmark-2026/benchmark-case-results.csv" rel="noopener noreferrer"&gt;case results CSV&lt;/a&gt; and &lt;a href="https://chattopdf.app/research-data/whatsapp-export-benchmark-2026/benchmark-summary.json" rel="noopener noreferrer"&gt;full summary&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  A safer implementation shape
&lt;/h2&gt;

&lt;p&gt;If you need a parser rather than a finished PDF, the open-source package exposes the same approach in Node and Python. The source, runners and release artifacts are available in the &lt;a href="https://github.com/generalistprogrammer/whatsapp-chat-to-pdf" rel="noopener noreferrer"&gt;whatsapp-chat-to-pdf GitHub repository&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Node.js:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install &lt;/span&gt;whatsapp-chat-to-pdf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;fs&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;node:fs&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;parseText&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;whatsapp-chat-to-pdf&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;input&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;fs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;readFileSync&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;_chat.txt&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;utf8&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;chat&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;parseText&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;input&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;messageCount&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;participants&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Python:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;whatsapp-chat-to-pdf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;whatsapp_chat_to_pdf&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;parse_file&lt;/span&gt;

&lt;span class="n"&gt;chat&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;parse_file&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;WhatsApp Chat with Alice.zip&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;message_count&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;participants&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The implementation sequence is the transferable part:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Find the real chat text inside a TXT or ZIP, ignoring macOS &lt;code&gt;__MACOSX&lt;/code&gt; and &lt;code&gt;._&lt;/code&gt; resource-fork entries.&lt;/li&gt;
&lt;li&gt;Normalize structural Unicode variants without rewriting the message body unnecessarily.&lt;/li&gt;
&lt;li&gt;Recognize an ordered timestamp family and retain the raw input line.&lt;/li&gt;
&lt;li&gt;Build the timestamp with an explicit rule for that family.&lt;/li&gt;
&lt;li&gt;Stitch continuation lines into the current message.&lt;/li&gt;
&lt;li&gt;Classify the message body separately.&lt;/li&gt;
&lt;li&gt;Extract participants from non-system senders.&lt;/li&gt;
&lt;li&gt;Assert fields against synthetic fixtures in every supported runtime.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you are inspecting the export before writing code, the &lt;a href="https://chattopdf.app/blog/extract-whatsapp-chat-data" rel="noopener noreferrer"&gt;extract WhatsApp chat data guide&lt;/a&gt; explains the fields inside &lt;code&gt;_chat.txt&lt;/code&gt;. The &lt;a href="https://chattopdf.app/blog/export-chat-in-whatsapp-meaning" rel="noopener noreferrer"&gt;export chat meaning guide&lt;/a&gt; explains what the ZIP is and is not. For a formatted media-rich result rather than a parser library, the &lt;a href="https://chattopdf.app/blog/whatsapp-to-pdf" rel="noopener noreferrer"&gt;WhatsApp to PDF guide&lt;/a&gt; covers the hosted workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  Production checklist and limitations
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9q00vtnimn5l3gn3fcv9.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9q00vtnimn5l3gn3fcv9.webp" alt="WhatsApp export parser production checklist for normalization, patterns, classification, fixtures and limitations" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Before trusting a WhatsApp export parser, check these properties:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Format coverage is named.&lt;/strong&gt; “Supports WhatsApp” is too broad. Publish the layouts or fixtures you actually test.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Normalization is tested independently.&lt;/strong&gt; A format test written only with ASCII digits will not catch localized-numeral failures.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Raw input is retained.&lt;/strong&gt; When a timestamp is ambiguous or classification looks wrong, the original line is needed for review.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Counts are plausible.&lt;/strong&gt; Zero, one or an unexpectedly small number of messages should trigger a diagnostic rather than a confident empty output.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multiline content survives.&lt;/strong&gt; A continuation line should stay with its message and preserve its newline.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;System messages are explicit.&lt;/strong&gt; Do not attribute group events to the previous participant.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ZIP selection is defensive.&lt;/strong&gt; Ignore resource forks and prefer the recognized chat filename over the first &lt;code&gt;.txt&lt;/code&gt; entry.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Failures are visible.&lt;/strong&gt; Record unsupported header samples using synthetic or safely redacted examples; never upload a private conversation to a public issue.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Claims stay bounded.&lt;/strong&gt; Passing a fixture suite is not proof of export completeness, authorship, authenticity or legal admissibility.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The current benchmark does not measure speed, memory consumption, PDF fidelity, attachment matching or voice transcription. It does not statistically sample all WhatsApp versions. Those are separate tests. A useful next contribution is a new synthetic fixture representing a genuinely different header shape, accompanied by the expected parsed fields and a source description that does not expose private chat content.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Reproduce before you trust&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Download the fixtures, run both public benchmark commands, then add a synthetic case shaped like the export you expect to receive. A parser is reliable to the extent that its assumptions are visible and repeatedly tested.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What format is a WhatsApp exported chat?
&lt;/h3&gt;

&lt;p&gt;WhatsApp exports one conversation as a plain-text chat file, optionally inside a ZIP with media. Message headers commonly contain a localized timestamp followed by a sender and message body, but punctuation, ordering and day-period markers differ across device and locale. Use WhatsApp's official Export Chat flow to create the file; treat the parser schema as something your own fixtures must verify.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can one regex parse every WhatsApp export?
&lt;/h3&gt;

&lt;p&gt;Not safely. One broad regex can accept many header shapes, but it cannot by itself resolve date order, localized digits, day-period markers, system events and multiline continuation. Use normalization plus ordered structural families, then construct dates according to the matched family and validate the result with field-level fixtures.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I parse multiline WhatsApp messages?
&lt;/h3&gt;

&lt;p&gt;Read the export as a stateful stream. A line with a recognized timestamp header starts a new message. A non-header line after a message is appended to that current message with its newline preserved. Flush the current message when the next header appears and again at end of file.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why does a parser swap the day and month?
&lt;/h3&gt;

&lt;p&gt;Purely numeric slash dates are ambiguous when both values are 12 or below. Use unambiguous dates elsewhere in the file, structural markers and device context to infer the order, but retain the raw line and surface the assumption. For sensitive work, verify the interpreted date against the source device and surrounding conversation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is the 24 out of 24 benchmark result universal?
&lt;/h3&gt;

&lt;p&gt;No. It means Node.js 0.1.1 and Python 0.1.1 passed the 24 synthetic fixtures published in benchmark version 2026.07. It does not cover every WhatsApp release, locale or damaged export and it makes no claim about authorship, authenticity, completeness or admissibility.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A WhatsApp export parser needs multiple explicit timestamp families because brackets, separators, date order, seconds and day-period position vary.&lt;/li&gt;
&lt;li&gt;Normalize structural Unicode variants and four tested numeral scripts before matching; do not rewrite the preserved message body unnecessarily.&lt;/li&gt;
&lt;li&gt;Treat numeric day/month ambiguity as a visible assumption, not a fact inferred from one line.&lt;/li&gt;
&lt;li&gt;Parse with state so multiline messages and system events remain separate and message counts stay meaningful.&lt;/li&gt;
&lt;li&gt;The public benchmark reports 24 of 24 for two runtimes only against its 24 synthetic cases; fixtures and limitations are downloadable.&lt;/li&gt;
&lt;li&gt;Production reliability comes from named assumptions, raw-line retention, diagnostics and regression fixtures rather than one permissive regex.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://chattopdf.app/upload" rel="noopener noreferrer"&gt;Test a WhatsApp export in the free preview&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://chattopdf.app/blog/why-whatsapp-export-parsers-break" rel="noopener noreferrer"&gt;ChatToPDF&lt;/a&gt;. This Dev.to copy declares that page as its canonical URL.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>python</category>
      <category>testing</category>
      <category>opensource</category>
    </item>
    <item>
      <title>WhatsApp Chat Export: Complete Guide (iPhone, Android, ZIP, PDF, 2026)</title>
      <dc:creator>ChatToPDF</dc:creator>
      <pubDate>Mon, 15 Jun 2026 09:16:19 +0000</pubDate>
      <link>https://dev.to/chattopdf/whatsapp-chat-export-complete-guide-iphone-android-zip-pdf-2026-10lo</link>
      <guid>https://dev.to/chattopdf/whatsapp-chat-export-complete-guide-iphone-android-zip-pdf-2026-10lo</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; A WhatsApp chat export is a ZIP file containing &lt;code&gt;_chat.txt&lt;/code&gt; plus any attached media. WhatsApp silently caps the export at 40,000 messages — older history is cut off. Group chats add their own quirks: anonymised contacts, system messages, and a join-date cutoff. The fastest path from that WhatsApp chat export ZIP to a readable, sender-attributed document is a $14 Standard per chat conversion on ChatToPDF — about 30 seconds from upload to PDF.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fko3sul7sd3qxj5e00vh6.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fko3sul7sd3qxj5e00vh6.webp" alt="WhatsApp chat exporting to ZIP and PDF, with annotated arrows showing what each export contains" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/QzQsJzA-Fj4"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  What WhatsApp Export Chat actually does (and what it doesn't)
&lt;/h2&gt;

&lt;p&gt;I see this confused constantly in support tickets, Reddit threads, and WhatsApp help forums. People assume "export" means backup. It does not. WhatsApp's Export Chat feature produces a snapshot — a text file of the conversation as it exists right now, wrapped in a ZIP archive. It is not a sync, not a live connection to WhatsApp's servers, and not a way to restore the chat into a different WhatsApp account.&lt;/p&gt;

&lt;p&gt;What it does: it reads your local chat history on the device, writes every message line-by-line into a plain text file called &lt;code&gt;_chat.txt&lt;/code&gt;, and packages that file (plus any attached media, if you chose Including Media) into a ZIP. The process takes seconds for short chats and a couple of minutes for very long ones.&lt;/p&gt;

&lt;p&gt;What it doesn't do: it does not export calls. It does not export disappearing messages that have already vanished. It does not give you chat history from a device you no longer own. And — this is the part that trips people up — it does not export all messages if your chat has more than 40,000. I explain that ceiling in detail in its own section below.&lt;/p&gt;

&lt;p&gt;The output file is a standard ZIP archive. You can open it with any file manager, any decompression app, or any browser that handles ZIP files. The contents are plain text and media files — nothing proprietary, nothing encrypted.&lt;/p&gt;

&lt;p&gt;Here is the practical upshot: if you want a portable, human-readable record of a WhatsApp conversation, the Export Chat menu is your starting point. What you do with the ZIP after that depends on what you actually need — a PDF, a spreadsheet, a backup, or just a local archive.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwa6b6n7icyro9su0wptn.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwa6b6n7icyro9su0wptn.webp" alt="Decision flow chart routing a WhatsApp export to the right destination based on what you actually need" width="800" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Without Media vs Including Media — when each one is the right call
&lt;/h2&gt;

&lt;p&gt;WhatsApp offers two export modes. The choice you make here affects file size, export speed, and what you can do with the result.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Without Media&lt;/strong&gt; exports &lt;code&gt;_chat.txt&lt;/code&gt; only. Every message appears in plain text, with photo and video references shown as &lt;code&gt;&amp;lt;Media omitted&amp;gt;&lt;/code&gt; placeholders. Voice notes, stickers, and documents are also replaced by placeholders. The resulting ZIP is tiny — usually under 1 MB even for thousands of messages. It exports quickly, emails easily, and uploads to any converter in seconds.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Including Media&lt;/strong&gt; bundles &lt;code&gt;_chat.txt&lt;/code&gt; with all attached files: images as &lt;code&gt;.jpg&lt;/code&gt; or &lt;code&gt;.webp&lt;/code&gt;, voice notes as &lt;code&gt;.opus&lt;/code&gt; or &lt;code&gt;.m4a&lt;/code&gt;, documents as their original format. For a media-heavy chat, this ZIP can easily be 100 MB or more. WhatsApp also applies a quiet constraint: media is only included for roughly the most-recent 10,000 messages. Messages beyond that cutoff appear as &lt;code&gt;&amp;lt;Media omitted&amp;gt;&lt;/code&gt; in &lt;code&gt;_chat.txt&lt;/code&gt; even though you chose Including Media. WhatsApp itself does not surface this limit in any dialog or warning — you only discover it if you check the dates of your media files against the full chat history.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6fidtqhifivu8us050d6.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6fidtqhifivu8us050d6.webp" alt="Side-by-side comparison of Without Media versus Including Media exports showing file sizes and contents" width="" height=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Which should you choose? I use Without Media as my default when the goal is documentation, archiving, or legal evidence. The text record is what matters in those cases, and the smaller file is faster to handle. I switch to Including Media when photos and voice notes are part of what needs to be preserved — a family chat where images have sentimental value, a business conversation where a shared document is relevant to a dispute.&lt;/p&gt;

&lt;p&gt;One practical note: if you are converting to PDF using ChatToPDF, Including Media means images appear inline in the PDF output rather than as &lt;code&gt;&amp;lt;Media omitted&amp;gt;&lt;/code&gt; placeholders. The $14 Standard per chat conversion includes embedded photos. Voice notes are transcribed on the $29 Premium per chat tier and above — see my &lt;a href="https://chattopdf.app/blog/transcribe-whatsapp-audio" rel="noopener noreferrer"&gt;WhatsApp audio transcription guide&lt;/a&gt; for detail on how the voice pipeline handles different languages and audio quality.&lt;/p&gt;

&lt;p&gt;One situation where Including Media is always the right call: preserving a conversation with someone who has died, where the voice notes are usually what matters most. That situation has &lt;a href="https://chattopdf.app/blog/save-whatsapp-messages-deceased-loved-one" rel="noopener noreferrer"&gt;its own gentle guide&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 40,000-message limit that nobody warns you about
&lt;/h2&gt;

&lt;p&gt;Here's the part nobody tells you: WhatsApp caps every export at 40,000 messages. It does not warn you. It does not show a truncation notice. It just exports the most-recent 40,000 messages and stops. If your chat has 60,000 messages spanning five years, the exported &lt;code&gt;_chat.txt&lt;/code&gt; covers only the most-recent 40,000. The older 20,000 are not in the file.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvk311wr97fb2wrsax3p3.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvk311wr97fb2wrsax3p3.webp" alt="Visualisation of the 40,000-message export ceiling and how to split a longer chat into multiple exports" width="800" height="320"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;How do you know if you hit the ceiling? Open the exported &lt;code&gt;_chat.txt&lt;/code&gt; and check the earliest timestamp. If it is more recent than you expect — if a chat you know started in 2019 only shows messages from 2022 — you hit the limit.&lt;/p&gt;

&lt;p&gt;The bad news is that there is no simple way to export the older slice. WhatsApp's export function always takes the most-recent N messages up to 40,000. You cannot set a date range. You cannot say "give me messages from 2019 to 2020." The only clean workaround is to use Android tools like Android Backup Extractor to read the WhatsApp database directly — a process that requires root access or a full local backup, and is outside the scope of what most people want to attempt.&lt;/p&gt;

&lt;p&gt;For most personal use cases — a chat you want to archive before switching phones, a conversation you want to share with a lawyer — 40,000 messages is more than enough. A 40,000-message chat covers roughly three to four years of moderate daily messaging. Only very active group chats or very long-running individual conversations bump into this ceiling. Given that WhatsApp users collectively send &lt;a href="https://chattopdf.app/blog/whatsapp-statistics" rel="noopener noreferrer"&gt;over 100 billion messages a day&lt;/a&gt;, though, those very active chats are more common than you'd expect.&lt;/p&gt;

&lt;p&gt;If your chat exceeds 40,000 messages and you need the full history, I recommend exporting as early and as often as possible going forward, so the most-recent export always overlaps with your previous one. That is not a perfect solution, but it is the practical one given how WhatsApp's export works.&lt;/p&gt;

&lt;h2&gt;
  
  
  Inside the ZIP — what's in &lt;code&gt;_chat.txt&lt;/code&gt; and how it's formatted
&lt;/h2&gt;

&lt;p&gt;Unzip a WhatsApp export and you find two things: the &lt;code&gt;_chat.txt&lt;/code&gt; file and, if you chose Including Media, a folder of attached files.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;_chat.txt&lt;/code&gt; file is plain UTF-8 text. Each message is one line. The format looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[2024-03-15, 14:32:18] John Doe: Hello there
[2024-03-15, 14:33:02] Jane Smith: Hey! How are you?
[2024-03-15, 14:33:45] John Doe: IMG-20240315-WA0001.jpg (file attached)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdavhpncfhdfvd78au5d1.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdavhpncfhdfvd78au5d1.webp" alt="WhatsApp ZIP contents diagram showing _chat.txt and the per-message media attachments folder layout" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The brackets, the date format, the separator between date and time — all of these vary by locale. US-locale exports use &lt;code&gt;M/D/YY, H:MM AM/PM&lt;/code&gt; format. ISO-locale exports use &lt;code&gt;YYYY-MM-DD, HH:MM:SS&lt;/code&gt;. European exports often use &lt;code&gt;DD/MM/YYYY, HH:MM&lt;/code&gt;. A parser that handles only one date format silently misreads every message in a differently-formatted file, which is how you end up with a PDF showing incorrect timestamps or merged messages.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0haa1u3cynrycywltfu6.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0haa1u3cynrycywltfu6.webp" alt="Sample _chat.txt lines showing the WhatsApp date-bracket-sender-message format that parsers depend on" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Media file names follow WhatsApp's own naming convention: &lt;code&gt;IMG-YYYYMMDD-WA####.jpg&lt;/code&gt; for images, &lt;code&gt;PTT-YYYYMMDD-WA####.opus&lt;/code&gt; for voice notes (PTT stands for Push-to-Talk), &lt;code&gt;VID-YYYYMMDD-WA####.mp4&lt;/code&gt; for videos, and &lt;code&gt;DOC-YYYYMMDD-WA####.pdf&lt;/code&gt; for documents. Each referenced file appears in both the &lt;code&gt;_chat.txt&lt;/code&gt; line and as an actual file in the ZIP. If a media file is missing from the ZIP — because you chose Without Media, or because it fell outside the media window — the &lt;code&gt;_chat.txt&lt;/code&gt; line shows &lt;code&gt;&amp;lt;Media omitted&amp;gt;&lt;/code&gt; in place of the file reference.&lt;/p&gt;

&lt;p&gt;System messages — events like "John added Jane to the group" or "The encryption key for this chat changed" — appear as lines with no sender name. They look like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[2024-03-15, 09:00:01] Messages and calls are end-to-end encrypted. No one outside of this chat, not even WhatsApp, can read or listen to them. Tap to learn more.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A well-built parser detects these and renders them differently from regular messages. ChatToPDF handles them as formatted system notices rather than treating them as messages from an unnamed sender.&lt;/p&gt;

&lt;h2&gt;
  
  
  Group chats: the export quirks (joined messages, anonymised contacts, system messages)
&lt;/h2&gt;

&lt;p&gt;Group chat exports follow the same format as individual chats, but with a few quirks that consistently catch people off guard.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2lyulmy3c5okktcm5qrn.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2lyulmy3c5okktcm5qrn.webp" alt="Group chat export quirks: anonymised contacts, system messages, joined messages, and how the export renders them" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Anonymised contacts.&lt;/strong&gt; If a participant has not saved their name in your contacts — or if their number is not in your phonebook — they appear as a phone number instead of a name. A line like &lt;code&gt;[2024-03-15, 10:22:04] +27 82 555 1234: Hello everyone&lt;/code&gt; is normal in a group chat export with participants you do not have saved. The PDF output from ChatToPDF preserves this number as the sender attribution; it cannot invent a name that is not in the file.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;System messages.&lt;/strong&gt; Group chats generate more system messages than individual ones: additions, removals, subject changes, admin assignments. These clutter the export if left unhandled. In &lt;code&gt;_chat.txt&lt;/code&gt; they are distinguishable from regular messages because they have no sender name — the line starts with the timestamp bracket and goes directly to the event text. Parsers that do not handle this end up attributing system events to the previous sender, producing confusing output.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Join-date cutoff.&lt;/strong&gt; This is the one I see cause the most confusion. Your export only shows messages from the date you joined the group. If you joined a group in March 2023 and the group started in January 2020, your exported &lt;code&gt;_chat.txt&lt;/code&gt; starts at March 2023. The history before your join date was never on your device and cannot be exported by you. If you need the full history, you need the export from someone who has been in the group since the beginning.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Forwarded messages.&lt;/strong&gt; Forwarded messages appear in &lt;code&gt;_chat.txt&lt;/code&gt; with a &lt;code&gt;‎Forwarded&lt;/code&gt; tag prepended to the content, sometimes followed by the original content. This is a special Unicode character (the left-to-right mark, U+200E), not a regular space. Parsers that do not strip it correctly render forwarded messages with a stray character artifact at the start.&lt;/p&gt;

&lt;p&gt;For a full walk-through of how the parser handles these cases — and how they affect the PDF output — see my &lt;a href="https://chattopdf.app/blog/whatsapp-to-pdf" rel="noopener noreferrer"&gt;WhatsApp to PDF guide&lt;/a&gt;. If you are exporting a group chat that originally lived on Android and now need it on iPhone, my &lt;a href="https://chattopdf.app/blog/whatsapp-android-to-iphone" rel="noopener noreferrer"&gt;Android to iPhone transfer guide&lt;/a&gt; covers the full handoff.&lt;/p&gt;

&lt;h2&gt;
  
  
  Exporting on Android (every Android skin has a different menu)
&lt;/h2&gt;

&lt;p&gt;The core path is the same across all Android versions: open the chat, find a menu with "Export Chat," tap it. The specific route to get there changes depending on your Android skin and WhatsApp version.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stock Android and Pixel:&lt;/strong&gt; Open the chat. Tap the three-dot menu icon (⋮) in the top-right corner. Tap More. Tap Export Chat. WhatsApp presents the Without Media / Including Media choice, then a share sheet. Tap Save to Files (or any cloud option you prefer).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Samsung One UI:&lt;/strong&gt; The three-dot menu is present, but the label may say "Settings" on some One UI versions rather than going straight to "More." If you see Settings, tap it and look for Export Chat inside. Alternatively, long-press the chat title in the chat list — Samsung sometimes exposes Export Chat in the context menu at that level.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Xiaomi MIUI / HyperOS:&lt;/strong&gt; The three-dot menu is present. The path is ⋮ → More → Export Chat. Some MIUI versions reorder the "More" submenu items; scroll down if Export Chat is not visible immediately.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OnePlus OxygenOS:&lt;/strong&gt; Same as stock Android. ⋮ → More → Export Chat. No known deviations from the standard path as of OxygenOS 14.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Motorola and Nokia (close to stock):&lt;/strong&gt; Follow the stock Android path. These manufacturers make minimal changes to the Android shell.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxuepijmd99v4n21ey2s6.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxuepijmd99v4n21ey2s6.webp" alt="WhatsApp Android Export Chat menu showing the same Without Media and Including Media options" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After tapping Export Chat and choosing your media option, WhatsApp shows a share sheet. The options visible depend on what apps you have installed. For moving the file off your Android without a cable, the most reliable options are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Save to Files&lt;/strong&gt; (if you have a file manager installed) — saves to &lt;code&gt;Internal storage/Downloads/&lt;/code&gt; or equivalent&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Drive&lt;/strong&gt; — saves to your Google Drive, where you can download it from any device&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Email to yourself&lt;/strong&gt; — works, but be aware that large ZIPs may be blocked by email attachment limits&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The exported file name follows the pattern &lt;code&gt;WhatsApp Chat - [Contact Name].zip&lt;/code&gt; or &lt;code&gt;WhatsApp Chat with [Contact Name].zip&lt;/code&gt; depending on your WhatsApp version.&lt;/p&gt;

&lt;h2&gt;
  
  
  Exporting on iPhone
&lt;/h2&gt;

&lt;p&gt;On iPhone the menu path is slightly different from Android. You navigate to it through the contact sheet rather than a three-dot overflow menu.&lt;/p&gt;

&lt;p&gt;Open the chat you want to export. Tap the contact name or group name at the very top of the screen — this opens the contact or group info sheet. Scroll down past participants, media gallery, links, and other settings. Near the bottom you will see Export Chat. Tap it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx3uitveocq38hgpjpu3e.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx3uitveocq38hgpjpu3e.webp" alt="WhatsApp iPhone Export Chat menu with Without Media and Including Media options highlighted" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;WhatsApp for iOS then shows the same two choices: Without Media or Including Media. After you select one, WhatsApp prepares the ZIP and hands you an iOS share sheet. The share sheet options you see depend on your installed apps and iCloud configuration.&lt;/p&gt;

&lt;p&gt;For keeping the file on your iPhone: tap Save to Files and choose a location you will remember. "On My iPhone → Downloads" is a good default. Avoid the Quick Look preview path — if you tap the ZIP attachment in Files without saving it first, you may see the contents but the file is only in a temporary location that the browser's file picker cannot reach.&lt;/p&gt;

&lt;p&gt;For moving the ZIP to a Mac: AirDrop is the fastest option. Tap the share icon, tap AirDrop, select your Mac. The ZIP appears in your Mac's Downloads folder. Alternatively, saving to iCloud Drive syncs it to your Mac automatically if iCloud Drive is enabled.&lt;/p&gt;

&lt;p&gt;For transferring to an Android or Windows device: save to iCloud Drive or email it to yourself. iCloud.com is accessible from any browser, so you can download from there.&lt;/p&gt;

&lt;p&gt;One thing worth knowing about iPhone exports specifically: WhatsApp on iOS tends to include more complete media in the Including Media export than WhatsApp on Android, at least in my testing. The Android media window seems to cap earlier than iOS does on equivalent chats. If you have the option to export from either device, prefer iPhone for Including Media exports when full photo coverage matters.&lt;/p&gt;

&lt;h2&gt;
  
  
  Exporting to your computer — the three honest options
&lt;/h2&gt;

&lt;p&gt;There is a persistent myth that WhatsApp Web or WhatsApp Desktop lets you export chats directly from your computer. It does not. WhatsApp Web is a mirror of your phone's connection — it displays your chats on a computer screen, but the data lives on your phone.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc3qa5u1vmn7soma011qj.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc3qa5u1vmn7soma011qj.webp" alt="Three computer export paths for WhatsApp: WhatsApp Web download, USB transfer of phone export, and AirDrop to Mac" width="800" height="320"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here are the three options that actually work.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Option 1: Export on your phone, transfer the ZIP.&lt;/strong&gt; This is the most reliable path. Export the chat on your phone using the steps above (Android or iPhone), then move the ZIP to your computer. On iPhone, AirDrop or iCloud Drive. On Android, USB cable drag-and-drop, Google Drive, or email. This approach works on every device, every OS version, and does not depend on any third-party software.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Option 2: WhatsApp Desktop's limited download feature.&lt;/strong&gt; In 2024, WhatsApp added a chat history download option to WhatsApp Desktop on Windows and Mac for some accounts. It is not available to everyone — it appears to be a staged rollout — and it produces the same ZIP format as the phone export. If you see a "Download chat history" option in WhatsApp Desktop (typically under the three-dot menu in a chat), it works the same way. If you do not see it, you are not in the rollout and Option 1 is your path.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Option 3: Third-party backup tools.&lt;/strong&gt; Tools like Backup Trans, iMazing (for iPhone), or Android Backup Extractor can access your WhatsApp database directly and offer more export flexibility — date-range filtering, full history regardless of the 40,000-message limit, and sometimes more media. These tools require a desktop app, a USB connection, and in some cases root access or a local encrypted backup. They are genuinely useful for power users who need full history exports. For everyone else, Option 1 is faster.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://faq.whatsapp.com/1180414079177245" rel="noopener noreferrer"&gt;WhatsApp's own FAQ page&lt;/a&gt; covers the export feature in general terms, though it understates the 40,000-message ceiling and does not document the media-window limit on Including Media exports.&lt;/p&gt;

&lt;h2&gt;
  
  
  Excel and CSV exports (and why most people actually want a PDF)
&lt;/h2&gt;

&lt;p&gt;WhatsApp does not natively export to Excel or CSV. When people ask for this, what they actually want is &lt;code&gt;_chat.txt&lt;/code&gt; transformed into structured rows — sender in one column, timestamp in another, message text in a third. That transformation requires a parser. ChatToPDF supports both PDF and CSV output from the same ZIP upload.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpelyi1ogs4ssmvffgk4k.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpelyi1ogs4ssmvffgk4k.webp" alt="Excel vs PDF comparison: structured rows for analysis versus chronological pages for reading and archiving" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why you might want CSV/Excel:&lt;/strong&gt; If your goal is analysis — counting messages per sender, calculating response times, doing sentiment scoring, building a frequency chart — structured rows are the right format. You can import CSV into Excel, Google Sheets, or any data tool. You can sort by sender, filter by date range, run formulas. The structure that makes PDFs readable (chronological flow, visual bubbles, timestamps as prose) makes them poor inputs for analysis.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why most people actually want PDF:&lt;/strong&gt; The PDF output from ChatToPDF reads like a document. Every message has a sender name, a timestamp, and the message content in order. You can scroll through it the way you would read a printed conversation. You can share it with someone who has never heard of WhatsApp and they will understand it immediately. You can attach it to an email, upload it to a legal case file, or print it. PDFs are universally readable; CSV files require a spreadsheet application to make sense.&lt;/p&gt;

&lt;p&gt;I built ChatToPDF with PDF as the primary output because that is what the overwhelming majority of people want when they say "I need to save this conversation." If you need CSV, it is available — but I would ask yourself first: what are you actually going to do with that spreadsheet? If the answer is "read through the conversation" or "share it," you want PDF. If the answer is "count how many times this person said X" or "build a chart of message frequency by hour," you want CSV.&lt;/p&gt;

&lt;p&gt;For the specific case of exporting WhatsApp to a format compatible with Excel, the CSV download button on ChatToPDF produces a three-column file: &lt;code&gt;timestamp&lt;/code&gt;, &lt;code&gt;sender&lt;/code&gt;, &lt;code&gt;message&lt;/code&gt;. Import that into Excel and use Data → Text to Columns if any values contain commas.&lt;/p&gt;

&lt;h2&gt;
  
  
  Privacy-safe export workflow (what NOT to upload anywhere)
&lt;/h2&gt;

&lt;p&gt;An exported WhatsApp chat contains private conversation data — often including names, phone numbers, locations, photos, and the full text of personal communications. The moment you upload that ZIP to a third-party service, you are trusting that service with all of it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdx9n73nw25283cu8ow7i.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdx9n73nw25283cu8ow7i.webp" alt="Privacy do-not-list checklist: services where uploading a WhatsApp export ZIP is risky for the chat owner" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here is what I look for before I upload any chat export anywhere, and what I recommend you check.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do not upload to:&lt;/strong&gt; Free unnamed converters with no privacy policy, services whose terms say "we may use uploaded content to improve our services" (a common clause that means your conversation data may feed a training set), or any tool hosted in a jurisdiction with weak data protection enforcement.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Before uploading anywhere, check:&lt;/strong&gt; Does the service delete your file after conversion? Is there a stated retention period? Does the privacy policy explicitly say your content is not used for model training? Does the service process files on the server, or in your browser? Server-side processing is not inherently bad, but it means your file leaves your device.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ChatToPDF's approach:&lt;/strong&gt; the ZIP is processed on the server, the resulting PDF is stored temporarily for download, and both are deleted after the delivery window closes. No training. No storage beyond conversion. The privacy policy is readable and specific on this point.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;On the device side:&lt;/strong&gt; after you have downloaded your converted PDF, you can safely delete the original ZIP from your phone and from any cloud location where you staged it. Keep the PDF; it is the durable version. The ZIP can be regenerated from WhatsApp at any time (up to the 40,000-message limit and however long WhatsApp retains the local chat).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Special consideration for group chats:&lt;/strong&gt; you do not own the content in a group chat — each participant owns their own messages. Exporting a group chat and uploading it to a service means you are uploading other people's messages without their knowledge. For personal archiving this is generally fine. For business purposes, or for any situation where those other participants might have objections, it is worth a moment's thought.&lt;/p&gt;

&lt;p&gt;For more on privacy-conscious handling of WhatsApp data, &lt;a href="https://faq.whatsapp.com/general/security-and-privacy/answering-your-questions-about-whatsapps-privacy-policy" rel="noopener noreferrer"&gt;WhatsApp's privacy FAQ&lt;/a&gt; covers their data handling practices in reasonable detail.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pricing and tier guidance
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdqlx8ti3ihz6ka8nmk1u.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdqlx8ti3ihz6ka8nmk1u.webp" alt="Five chattopdf pricing tiers from $7 Basic to $99 Power User per chat conversion" width="" height=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ChatToPDF uses per-conversion pricing. You pay for the specific chat you are converting today. There is no recurring fee attached to your account — each conversion stands alone.&lt;/p&gt;

&lt;p&gt;Here is how I think about which tier fits which export scenario.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;$7 Basic per chat conversion&lt;/strong&gt; handles text-only exports up to 5,000 messages. Right for short conversations, quick records, and any chat where photos do not need to appear in the output. If you chose Without Media during the WhatsApp export and the chat is a few hundred messages, this is the tier you want.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;$14 Standard per chat conversion&lt;/strong&gt; handles exports up to 25,000 messages and includes embedded photos. This is the right tier for the majority of individual chat exports — it covers several years of normal messaging frequency and supports Including Media exports with inline images in the PDF.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;$29 Premium per chat conversion&lt;/strong&gt; removes the message-count ceiling and supports full media bundles. Voice notes appear as placeholder references in the PDF — transcription is not included at this tier. If your export has no voice notes (or you do not need them transcribed), this is the tier for very long chats.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;$49 Premium+Voice per chat conversion&lt;/strong&gt; adds Deepgram Nova-3 voice-note transcription with automatic language detection across 17 high-accuracy languages and 30+ more at a wider accuracy range. Up to 8 hours of audio per chat is included. If you have voice notes (&lt;code&gt;.opus&lt;/code&gt; files) in your export and you want them transcribed inline in the PDF, this is the entry tier.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;$99 Power User per chat conversion&lt;/strong&gt; is for large exports: multi-year group chats, legal evidence compilations, business communication archives. No message ceiling, full media, Deepgram Nova-3 transcription with no audio cap, and priority queue processing. For HR, customer-service, and contract-trail archiving specifically, the &lt;a href="https://chattopdf.app/blog/whatsapp-business-pdf" rel="noopener noreferrer"&gt;WhatsApp Business PDF guide&lt;/a&gt; walks through the team workflows and retention patterns. For evidence preparation specifically, see the &lt;a href="https://chattopdf.app/blog/whatsapp-evidence-court-pdf" rel="noopener noreferrer"&gt;WhatsApp evidence court PDF guide&lt;/a&gt; for hash chains and admissibility considerations.&lt;/p&gt;

&lt;p&gt;For a typical individual chat export — one conversation, a few thousand messages, maybe some photos — the $14 Standard per chat conversion covers almost every case. For group chats that have been active for years, step up to $29 Premium per chat or $99 Power User per chat depending on whether voice notes are present and how long the history runs.&lt;/p&gt;

&lt;p&gt;If you are converting multiple individual chats — say, five conversations from a business dispute — each is a separate conversion at its applicable tier. There is no account-level access that bundles them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://chattopdf.app/upload" rel="noopener noreferrer"&gt;Convert your WhatsApp export to PDF — from $7 Basic per chat&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Related guides — exporting WhatsApp chats deeper
&lt;/h2&gt;

&lt;p&gt;I split the export-mechanics topic into 15 focused guides, each one solving a specific question. The vocabulary you searched for tells me what you actually need; pick the entry that matches the question in your head.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Start here if you are new to it:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://chattopdf.app/blog/export-from-whatsapp-step-by-step" rel="noopener noreferrer"&gt;Export from WhatsApp — start here&lt;/a&gt; — entry-level overview that routes you to the right deeper guide&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What "export chat" actually is:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://chattopdf.app/blog/what-is-export-chat-in-whatsapp" rel="noopener noreferrer"&gt;What "export chat" is at a feature level&lt;/a&gt; — what the menu produces, what it isn't, when to use it&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://chattopdf.app/blog/what-does-export-chat-mean-on-whatsapp" rel="noopener noreferrer"&gt;What it does for your data and privacy&lt;/a&gt; — what happens to the chat, the file, and the other person&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://chattopdf.app/blog/export-chat-in-whatsapp-meaning" rel="noopener noreferrer"&gt;What "export chat" means as a phrase&lt;/a&gt; — why WhatsApp uses "export" rather than "download"&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://chattopdf.app/blog/export-chat-whatsapp" rel="noopener noreferrer"&gt;The mechanics — menu, ZIP, what's inside&lt;/a&gt; — the menu, the ZIP, what's really inside&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Step-by-step workflows:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://chattopdf.app/blog/how-to-export-a-whatsapp-chat" rel="noopener noreferrer"&gt;Export a single chat — one conversation focus&lt;/a&gt; — for when you only want to save one specific chat&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://chattopdf.app/blog/export-whatsapp-chat-to-pdf" rel="noopener noreferrer"&gt;Export WhatsApp chat to PDF — the real path&lt;/a&gt; — ZIP to PDF in 30 seconds, with photos&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://chattopdf.app/blog/download-chat-history-whatsapp" rel="noopener noreferrer"&gt;Download chat history — what users mean&lt;/a&gt; — three intents, three different answers&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://chattopdf.app/blog/how-to-download-chat-history-from-whatsapp" rel="noopener noreferrer"&gt;Download chat history — step-by-step&lt;/a&gt; — three walkthroughs across iOS, Android, and Web&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://chattopdf.app/blog/how-to-export-chat-from-whatsapp-web" rel="noopener noreferrer"&gt;WhatsApp Web export — yes, it exists&lt;/a&gt; — the desktop flow, hidden in the three-dot menu&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Vocabulary variants:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://chattopdf.app/blog/how-to-export-whatsapp-messages" rel="noopener noreferrer"&gt;"Messages" vocabulary variant&lt;/a&gt; — when you only want some messages, not the whole chat&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://chattopdf.app/blog/export-conversation-whatsapp" rel="noopener noreferrer"&gt;"Conversation" vocabulary variant&lt;/a&gt; — when you think in conversations, not chats&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Contacts (not chats):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://chattopdf.app/blog/how-to-export-contacts-from-whatsapp" rel="noopener noreferrer"&gt;General contacts&lt;/a&gt; — four workarounds for the missing contacts-export feature&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://chattopdf.app/blog/how-to-export-whatsapp-group-contacts" rel="noopener noreferrer"&gt;Group contacts specifically&lt;/a&gt; — four workarounds for pulling a participant list&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Analytical framing:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://chattopdf.app/blog/extract-whatsapp-chat-data" rel="noopener noreferrer"&gt;Extract WhatsApp chat data&lt;/a&gt; — what fields you can pull, what to do with them&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  When the export itself goes wrong — troubleshooting
&lt;/h2&gt;

&lt;p&gt;The Export Chat menu is reliable, but a few things still trip people up. Here's the fix for each:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://chattopdf.app/blog/whatsapp-zip-export-too-big" rel="noopener noreferrer"&gt;Export ZIP too big, or only some messages came through&lt;/a&gt; — media bloat and the 40,000-message cap&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://chattopdf.app/blog/whatsapp-export-without-media" rel="noopener noreferrer"&gt;Exporting without media — what you actually get&lt;/a&gt; — the text-only export, and when it's the right call&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://chattopdf.app/blog/whatsapp-chat-export-stuck-preparing" rel="noopener noreferrer"&gt;Export stuck on "Preparing file…"&lt;/a&gt; — large chats, storage, background limits&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://chattopdf.app/blog/whatsapp-export-corrupted-zip" rel="noopener noreferrer"&gt;The exported ZIP won't open / is "damaged"&lt;/a&gt; — interrupted transfers and how to avoid them&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://chattopdf.app/blog/whatsapp-export-arabic-rtl-broken" rel="noopener noreferrer"&gt;Arabic / Hebrew text reversed in the export&lt;/a&gt; — bidi rendering, and how the ChatToPDF output handles RTL&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Key takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A WhatsApp export produces a ZIP file containing &lt;code&gt;_chat.txt&lt;/code&gt; (every message, line by line) and, for Including Media exports, all attached photos, voice notes, and documents&lt;/li&gt;
&lt;li&gt;Without Media exports are typically under 1 MB even for thousands of messages; Including Media exports can reach 100 MB or more, with media only included for roughly the most-recent 10,000 messages&lt;/li&gt;
&lt;li&gt;WhatsApp caps all exports at 40,000 messages — the most-recent 40,000 — with no warning or truncation notice in the app&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;_chat.txt&lt;/code&gt; date format varies by locale: US exports use &lt;code&gt;M/D/YY, H:MM AM/PM&lt;/code&gt;, ISO exports use &lt;code&gt;YYYY-MM-DD, HH:MM:SS&lt;/code&gt;, and European exports often use &lt;code&gt;DD/MM/YYYY, HH:MM&lt;/code&gt;; a parser must handle all three&lt;/li&gt;
&lt;li&gt;Group chat exports include system messages with no sender name, phone-number-only contacts for anyone not in your phonebook, and history only from your personal join date — not from the group's founding date&lt;/li&gt;
&lt;li&gt;The $14 Standard per chat conversion handles exports up to 25,000 messages with inline photos; the $29 Premium per chat conversion adds voice-note transcription for chats containing &lt;code&gt;.opus&lt;/code&gt; audio files&lt;/li&gt;
&lt;li&gt;Before uploading any chat export to a third-party service, verify their deletion policy, data-use terms, and whether they exclude user content from model training&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What does an exported WhatsApp chat actually contain?
&lt;/h3&gt;

&lt;p&gt;The export produces a ZIP file with a &lt;code&gt;_chat.txt&lt;/code&gt; plain-text file inside. Each message is one line, formatted as &lt;code&gt;[date, time] Sender Name: message text&lt;/code&gt;. If you chose Including Media during export, the ZIP also contains the attached files — images, voice notes, documents — named with WhatsApp's own convention (&lt;code&gt;IMG-YYYYMMDD-WA####.jpg&lt;/code&gt;, &lt;code&gt;PTT-YYYYMMDD-WA####.opus&lt;/code&gt;, etc.). Calls and disappearing messages that have already expired are not included.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I export a WhatsApp chat on iPhone?
&lt;/h3&gt;

&lt;p&gt;Open the chat on iPhone, tap the contact or group name at the top to open the info screen, scroll to the bottom, and tap Export Chat. Choose Without Media for a text-only ZIP or Including Media to bundle photos and voice notes. iOS shows a share sheet — tap Save to Files and choose a folder you will remember. To convert the ZIP to a PDF, upload it to chattopdf.app; the $14 Standard per chat conversion handles most individual chats including photos.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is the 40,000-message limit and how do I work around it?
&lt;/h3&gt;

&lt;p&gt;WhatsApp exports a maximum of 40,000 messages per export, always taking the most-recent 40,000. There is no date-range filter and no warning when the limit is hit. To check whether you hit it, open &lt;code&gt;_chat.txt&lt;/code&gt; in a text editor and look at the first timestamp — if it is later than expected, the export was truncated. The only workaround for accessing older messages is a third-party tool that reads the WhatsApp database directly (Android Backup Extractor, iMazing on iPhone), which requires a local backup or device root access.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why do some contacts appear as phone numbers in my group chat export?
&lt;/h3&gt;

&lt;p&gt;WhatsApp uses the contact name from your phonebook as the sender name in &lt;code&gt;_chat.txt&lt;/code&gt;. If a group participant's number is not saved in your contacts, their messages appear with the raw phone number as the sender — something like &lt;code&gt;+27 82 555 1234: Hello everyone&lt;/code&gt;. ChatToPDF preserves this phone number as the sender attribution in the PDF output; it cannot infer a name that is not in the source file. If you want names, save the number in your phone contacts and re-export.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I export a WhatsApp chat directly from a computer?
&lt;/h3&gt;

&lt;p&gt;Not reliably. WhatsApp Web and WhatsApp Desktop mirror your phone's connection but do not offer a native export on most accounts. The only direct path is to export on your phone (Android: ⋮ → More → Export Chat; iPhone: tap the contact name → scroll down → Export Chat), then transfer the ZIP to your computer via AirDrop, USB, Google Drive, or iCloud Drive. A limited chat history download was added to WhatsApp Desktop for some accounts in 2024, but it is not available universally.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is it safe to upload my WhatsApp export to ChatToPDF?
&lt;/h3&gt;

&lt;p&gt;ChatToPDF processes the ZIP on the server, generates the PDF, and then deletes both files after the download window closes. Content is not used for model training, and there is no long-term storage of your messages. For group chats where other participants' messages are included, consider whether the export contains sensitive information before uploading to any service — including this one. WhatsApp's own end-to-end encryption protects messages in transit; it does not apply to files you export and upload elsewhere.&lt;/p&gt;

&lt;h3&gt;
  
  
  Which ChatToPDF tier do I need for a group chat export?
&lt;/h3&gt;

&lt;p&gt;It depends on message count and whether voice notes are present. The $14 Standard per chat conversion covers up to 25,000 messages with photos, which handles most group chats under two to three years old. For longer group chats, the $29 Premium per chat conversion removes the message ceiling and adds voice transcription. For very large, multi-year group archives, the $99 Power User per chat conversion adds priority processing and handles the largest exports. Check the first and last timestamp in your &lt;code&gt;_chat.txt&lt;/code&gt; to estimate message volume before choosing.&lt;/p&gt;

</description>
      <category>whatsapp</category>
      <category>pdf</category>
      <category>productivity</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>WhatsApp Evidence Court PDF: Format, Authenticity, Hash Chains (2026)</title>
      <dc:creator>ChatToPDF</dc:creator>
      <pubDate>Mon, 15 Jun 2026 09:16:10 +0000</pubDate>
      <link>https://dev.to/chattopdf/whatsapp-evidence-court-pdf-format-authenticity-hash-chains-2026-3ik1</link>
      <guid>https://dev.to/chattopdf/whatsapp-evidence-court-pdf-format-authenticity-hash-chains-2026-3ik1</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; A WhatsApp evidence court PDF needs three things: sender attribution on every line, immutable timestamps, and a SHA-256 hash that proves the chat was not edited. ChatToPDF produces that PDF from your WhatsApp export — clean, formatted, hash-stamped on the cover page. Admissibility itself is the court's decision and your lawyer's job. For most evidence-prep workflows, the $14 Standard per chat conversion covers text and photos; the $49 Premium+Voice per chat conversion adds transcribed voice notes.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F77xtepqfrklfw9vim1lb.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F77xtepqfrklfw9vim1lb.webp" alt="WhatsApp chat being formatted into a court-ready PDF with hash chain stamps and lawyer-review caveat" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/1rKWDEW3EGU"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;I am not a lawyer. This is not legal advice.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Whether your WhatsApp evidence is admitted depends on the court, the jurisdiction, and the argument your lawyer constructs. ChatToPDF produces a clean, formatted PDF — that's it. Everything after the download is on you and your counsel. Nothing in this guide substitutes for legal advice on your specific matter. Please talk to a lawyer before relying on any WhatsApp conversation as evidence in any proceeding.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Why courts accept WhatsApp chats as evidence — and what makes them refuse
&lt;/h2&gt;

&lt;p&gt;I built ChatToPDF because I needed a WhatsApp conversation as a legal document. Not a stack of screenshots. Not a forwarded message thread. A proper, readable, attributed record that a solicitor could open on their desktop and work with directly. That original need is why the legal-evidence use case is baked into the tool's design at every level — the hash generation, the ISO timestamps, the formal PDF style.&lt;/p&gt;

&lt;p&gt;Courts in most jurisdictions are willing to consider WhatsApp conversations as evidence when the communication is relevant and its authenticity can be reasonably established. The legal principle is straightforward: a relevant communication is admissible if you can show it is what you claim it is. WhatsApp messages satisfy that bar more often than people expect, because the export format preserves verifiable metadata that a screenshot simply does not have.&lt;/p&gt;

&lt;p&gt;The cases where WhatsApp evidence has been accepted are wide-ranging. Contract disputes hinge on informal messages that amount to acceptance — a "yes, deal" in a WhatsApp thread can be a binding agreement in many jurisdictions. Employment disputes turn on harassment threads where the pattern of communication, not just individual messages, makes the case. Family law matters involve custody-related conversations where the tone and frequency of contact are directly relevant. Commercial disputes rely on deal terms agreed informally before formal contracts were drafted.&lt;/p&gt;

&lt;p&gt;Courts refuse WhatsApp evidence for five main reasons:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Authenticity not established.&lt;/strong&gt; If the other side can credibly argue the messages were fabricated or edited, and you have no integrity proof, the evidence weakens or fails. A manipulated screenshot is easy to produce; a verified export with a hash is much harder to dispute.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Chain of custody broken.&lt;/strong&gt; If the chat was extracted using an unverified method, has no metadata, and cannot be tied back to a specific phone or account, the chain of custody argument collapses.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hearsay problems.&lt;/strong&gt; In jurisdictions with strict hearsay rules, a WhatsApp message may be excluded as an out-of-court statement offered for its truth, unless it falls within an exception such as a party admission or a business record.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Privacy and consent violations.&lt;/strong&gt; A chat obtained by accessing someone's phone without permission, or by intercepting a private conversation you were not a party to, raises serious admissibility problems — and potentially criminal liability. I am not going to help you do that. If you were a participant in the conversation, you're on much firmer ground.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Group-chat third-party complications.&lt;/strong&gt; Messages from participants who are not part of the dispute can introduce consent and data protection considerations that some courts find problematic. The solution is usually targeted redaction, not wholesale exclusion — but this is a question for your lawyer.&lt;/p&gt;

&lt;p&gt;The bottom line: a clean, authenticated PDF made from WhatsApp's own export mechanism gives you a strong foundation. What you build on top of that foundation is legal work, not formatting work. If you are new to the export process itself, start with the &lt;a href="https://chattopdf.app/blog/whatsapp-to-pdf" rel="noopener noreferrer"&gt;WhatsApp to PDF overview&lt;/a&gt; before returning here for the evidence-specific requirements.&lt;/p&gt;

&lt;h2&gt;
  
  
  The format checklist — what a usable evidence PDF must show
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foy22uxelgijx62hzqqso.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foy22uxelgijx62hzqqso.webp" alt="Court evidence PDF format checklist: sender attribution, timestamps, chat title, hash, page numbers, signature line" width="800" height="1000"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Not every PDF is equally useful in a legal context. A conversation pasted into a Word document and saved as PDF is not the same as a structured export from WhatsApp's own mechanism. Here is what a properly formatted evidence PDF should contain, and what ChatToPDF generates automatically.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cover page.&lt;/strong&gt; A dedicated first page that shows the chat title (the group name or the contact's name and phone number), the date range of the exported conversation, the total message count, and — critically — the SHA-256 hash of the source ZIP file. The hash is what ties the PDF to the original export and makes integrity verification possible.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Page numbers with total count.&lt;/strong&gt; Every page should carry a "Page X of Y" footer. This prevents anyone from claiming pages were removed or reordered after the fact.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sender attribution on every message.&lt;/strong&gt; Each message in the PDF should show the sender's display name and phone number. Display names alone are not sufficient — names can be changed or spoofed. Phone numbers are tied to registered accounts and are harder to fabricate.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ISO 8601 timestamps.&lt;/strong&gt; WhatsApp exports use locale-specific date formats like &lt;code&gt;[15/03/2024, 14:32:18]&lt;/code&gt;. ChatToPDF converts these to ISO 8601 format — &lt;code&gt;2024-03-15T14:32:18&lt;/code&gt; — which is internationally unambiguous. A timestamp that reads &lt;code&gt;01/03/2024&lt;/code&gt; is ambiguous between January 3 and March 1 depending on locale; the ISO version is not.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Per-message anchors.&lt;/strong&gt; Each message in the PDF should be referenceable. ChatToPDF assigns a page-and-line anchor to each message — so your lawyer can cite "page 4, message 7" in a submission without ambiguity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Footer on every page.&lt;/strong&gt; A persistent footer reading something like "Generated by ChatToPDF · Export date: 2024-03-20 · SHA-256: [first 16 chars]" creates a clear chain of custody marker across the full document.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;No editorial commentary.&lt;/strong&gt; The PDF should be a faithful rendering of the export, nothing more. Annotations, highlighted sections, or added commentary on the chat content itself should be handled separately by your lawyer, not baked into the evidence document.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxqjupleou3g5bwo5gakj.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxqjupleou3g5bwo5gakj.webp" alt="Sample evidence PDF page showing court-ready formatting with cover page, hash, and authenticated chat content" width="800" height="1000"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Formal PDF style in ChatToPDF was designed specifically for this use case. It uses a letterhead-style cover page, small-caps sender attribution, right-margin timestamps, and indented message bodies — the format that reads most like a deposition transcript and least like an app screenshot.&lt;/p&gt;

&lt;h2&gt;
  
  
  Authenticity: how to prove the chat was not edited
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo2se1e8d9n3hqkumig85.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo2se1e8d9n3hqkumig85.webp" alt="Hash chain workflow showing source ZIP SHA-256 cited in the PDF metadata to prove the chat was not edited" width="" height=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The most common objection to WhatsApp evidence is that messages were fabricated or altered. It is a reasonable objection — any text file can be edited. The way to rebut it is a hash chain: a cryptographic fingerprint computed at the moment of export that changes if even a single character in the source file changes.&lt;/p&gt;

&lt;p&gt;Here's how it works in practice. WhatsApp's Export Chat feature packages your messages into a &lt;code&gt;_chat.txt&lt;/code&gt; file and, if you chose Including Media, wraps it in a ZIP alongside any photos, voice notes, and documents. ChatToPDF computes the SHA-256 hash of that ZIP file the moment you upload it. SHA-256 produces a 64-character hexadecimal string that is unique to that exact file content — change one character anywhere in the file and the hash changes completely.&lt;/p&gt;

&lt;p&gt;That hash is printed on the cover page of the PDF. It is also embedded in the PDF's document metadata (the &lt;code&gt;Producer&lt;/code&gt; and &lt;code&gt;Keywords&lt;/code&gt; fields), so it travels with the file even if the cover page is somehow separated.&lt;/p&gt;

&lt;p&gt;The verification step works in reverse. If a court or opposing counsel wants to verify the PDF against the original export, they take the original ZIP file — which you should preserve alongside the PDF as part of your chain of custody — compute its SHA-256, and compare it to the hash on the cover page. If they match, the source file was not modified after the PDF was generated. If they do not match, something changed.&lt;/p&gt;

&lt;p&gt;This is not an exotic or complex process. SHA-256 is a standard cryptographic algorithm supported by every operating system and built into tools like OpenSSL and macOS's built-in &lt;code&gt;shasum&lt;/code&gt; utility. It is the same algorithm used to verify software downloads and file integrity across the internet.&lt;/p&gt;

&lt;p&gt;One important caveat: the hash proves the source ZIP was not modified after you uploaded it. It does not prove the chat was not edited before you exported it. WhatsApp's own "Edit message" and "Delete for everyone" features can alter message content before you export. I cover what those features do to the export in the section on edited and deleted messages below. This is a distinction your lawyer needs to be aware of and prepared to address.&lt;/p&gt;

&lt;h2&gt;
  
  
  Metadata you must preserve — timestamps, sender phone numbers, chat title
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F801q919ydpn5j7zih8vk.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F801q919ydpn5j7zih8vk.webp" alt="Metadata fields preserved in the evidence PDF: sender phone number, timestamp, chat title, message ID anchor" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The metadata in a WhatsApp export is what separates it from a screenshot in terms of evidentiary value. Here is a precise breakdown of what ChatToPDF extracts and preserves, and why each field matters.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Timestamps.&lt;/strong&gt; WhatsApp's &lt;code&gt;_chat.txt&lt;/code&gt; stores each message with a timestamp that reflects the local time on the exporting device, in the format &lt;code&gt;[DD/MM/YYYY, HH:MM:SS]&lt;/code&gt;. ChatToPDF converts these to ISO 8601 with timezone offset where inferable. If you are dealing with a cross-border dispute or a conversation where participants are in different time zones, raise this with your lawyer — the timezone attached to each timestamp matters for establishing the sequence of events.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sender phone numbers.&lt;/strong&gt; For contacts not saved in your address book, WhatsApp uses the phone number directly in the &lt;code&gt;_chat.txt&lt;/code&gt;. For saved contacts, it uses the display name you assigned. ChatToPDF renders both — display name plus the underlying phone number where present. Phone numbers are registered to specific accounts at specific times through WhatsApp's own verification process, which makes them more reliable identifiers than display names.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Chat title.&lt;/strong&gt; For group chats, the group name as it existed at export time is preserved. For individual chats, the contact name or number is the title. This appears on the cover page and in the PDF header of every page.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Message sequence.&lt;/strong&gt; The order of messages in the export is the order they appear in the &lt;code&gt;_chat.txt&lt;/code&gt; — which is chronological. ChatToPDF preserves this order and assigns sequential anchors so the complete record is navigable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Media references.&lt;/strong&gt; Even in a text-only export (Without Media), the &lt;code&gt;_chat.txt&lt;/code&gt; contains references to attached files: &lt;code&gt;&amp;lt;attached: 00000012-AUDIO-2024-03-15-09-22-31.opus&amp;gt;&lt;/code&gt;. ChatToPDF renders these as clearly labelled placeholders in the PDF. If you later need the actual media, you can re-export with Including Media — but the text record already shows that a file was sent at that time.&lt;/p&gt;

&lt;p&gt;One thing I want to be direct about: preserving this metadata is a technical task, but deciding which metadata is legally relevant in your specific case is your lawyer's job. The phone number of the sender matters enormously in a fraud case; it may be less significant in a contract dispute where the identity of both parties is already established. Do not assume that preserving everything is the same as knowing which parts matter.&lt;/p&gt;

&lt;h2&gt;
  
  
  Screenshots vs exports — why screenshots get rejected
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7s3absde181tmoevg217.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7s3absde181tmoevg217.webp" alt="Screenshot versus chat export comparison showing why courts reject screenshots as primary evidence" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I get asked this question constantly: "Can't I just take screenshots?" The honest answer is: sometimes screenshots are the only option, and courts do occasionally admit them as supplementary evidence. But as a primary evidence format, screenshots have problems that an authenticated export does not.&lt;/p&gt;

&lt;p&gt;Here's the core issue. A screenshot is a photograph of your phone's screen at a specific moment. It contains whatever was visible on that screen, no more. There is no machine-readable content. There is no metadata beyond the screenshot's own file timestamp (which reflects when you took the photo, not when the messages were sent). And critically, a screenshot is trivially editable in any image editor — change the text, adjust the timestamp, alter the sender name — and a visual inspection cannot detect the manipulation.&lt;/p&gt;

&lt;p&gt;Courts are aware of this. In multiple jurisdictions, judges and magistrates have explicitly noted that screenshots alone are insufficient to authenticate digital communications, particularly where the other side contests the messages. The &lt;a href="https://www.justice.gov.uk/courts/procedure-rules/civil/practice_directions/pd_pre-action_conduct" rel="noopener noreferrer"&gt;UK Ministry of Justice guidance on digital evidence&lt;/a&gt; and the US Federal Rules of Evidence (Rule 901, authentication requirements) both point toward requiring more than a visual image for digital communications.&lt;/p&gt;

&lt;p&gt;A WhatsApp export is different in every one of these dimensions. It is machine-readable text with embedded metadata. It was produced by WhatsApp's own export mechanism, not by a third-party tool or a screen capture. It contains timestamps recorded at the moment of transmission, not the moment of capture. And it can be hashed at export time to detect any subsequent modification.&lt;/p&gt;

&lt;p&gt;If screenshots are all you have — because the conversation was deleted before you thought to export it, or because you were viewing someone else's device at the time — then screenshots with corroborating evidence (other communications, witness statements, phone records) are better than nothing. But wherever you can get a clean export, get the export.&lt;/p&gt;

&lt;p&gt;For a detailed walk-through of the export process on both iPhone and Android, the &lt;a href="https://chattopdf.app/blog/whatsapp-chat-export" rel="noopener noreferrer"&gt;WhatsApp chat export guide&lt;/a&gt; covers every step including the common points where exports go wrong.&lt;/p&gt;

&lt;h2&gt;
  
  
  The hash-chain workflow — from export to filed PDF
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fma9d5bzol9gvui32fje6.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fma9d5bzol9gvui32fje6.webp" alt="Step-by-step hash chain workflow: export ZIP, hash with SHA-256, generate PDF, cite hash in cover page" width="" height=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is the canonical workflow I recommend for anyone preparing WhatsApp evidence for any kind of legal proceeding. It is not complicated — most of it is handled automatically by ChatToPDF — but the steps matter.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Export the chat from WhatsApp with Including Media.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Open WhatsApp, navigate to the chat, tap the contact or group name at the top (iPhone) or the three-dot menu (Android), and choose Export Chat. Select Including Media even if you think the images are not relevant — having the complete ZIP with media preserves more options and supports a stronger integrity argument. Save the ZIP to a location you can access from a browser.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2: Note the file details immediately.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Before uploading anything, note the file name, file size, and — if you are technically comfortable — compute the SHA-256 yourself using &lt;code&gt;shasum -a 256 yourfile.zip&lt;/code&gt; on macOS or &lt;code&gt;certutil -hashfile yourfile.zip SHA256&lt;/code&gt; on Windows. ChatToPDF will also compute this and display it to you during upload. Comparing the two confirms nothing changed in transit.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3: Upload to ChatToPDF and select the appropriate tier.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The $14 Standard per chat conversion covers text and inline images, which handles the majority of evidence-prep use cases. If the chat includes voice notes that are relevant — instructions given verbally, verbal agreements, threatening messages — the $49 Premium+Voice per chat conversion adds Deepgram Nova-3 transcription, and the transcripts appear inline in the PDF at the correct chronological positions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4: Review the hash on the cover page of the generated PDF.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When your PDF is ready, open it and confirm that the SHA-256 hash on the cover page matches the hash you computed in Step 2 (or the one displayed during upload). This is your moment to catch any discrepancy before the document enters a legal workflow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 5: Store the original ZIP and the PDF together, unchanged.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is the part people skip. The original ZIP is the anchor of your chain of custody. If you delete it, you lose the ability to verify the hash later. Store both files in a secure location — an encrypted cloud folder, an external drive, or wherever your lawyer instructs you to keep evidence materials. Do not re-export, do not rename the ZIP, and do not open it in any application that might modify it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 6: Give the PDF (and the ZIP on request) to your lawyer.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The PDF is the working document. The ZIP is the proof. Your lawyer may not need the ZIP immediately, but they should know where it is. Some proceedings may require you to produce the original export as part of discovery; having it intact and unmodified is the only way to satisfy that requirement.&lt;/p&gt;

&lt;h2&gt;
  
  
  Group-chat evidence — the consent and admissibility issues
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuo6a9w9dor60nb0vzxuq.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuo6a9w9dor60nb0vzxuq.webp" alt="Group chat evidence consent and admissibility flow showing third-party participants and lawful access" width="" height=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Group chats add complexity that individual chat evidence does not have. I want to be specific about what that complexity looks like, because it affects both how you prepare the evidence and how your lawyer will need to argue for its admission.&lt;/p&gt;

&lt;p&gt;When you export a group chat, the export contains every message sent by every participant during the exported period. That includes participants who are not parties to your legal matter. Their messages appear in the &lt;code&gt;_chat.txt&lt;/code&gt; alongside the messages you actually need. This creates several potential issues.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Third-party content.&lt;/strong&gt; The messages of uninvolved participants are personal data under most data protection laws. Presenting those messages in a legal proceeding may require that you have a lawful basis for processing that data. In most jurisdictions, legal proceedings provide that basis — but the specifics depend on the jurisdiction and the nature of the proceeding. Your lawyer needs to be aware of which participants' data appears in the export.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Redaction of non-evidentiary content.&lt;/strong&gt; In some matters, courts will accept a redacted version of the group export — one where uninvolved participants' messages are blacked out, leaving only the participants and content relevant to the claim. This is often cleaner and more persuasive than submitting an unredacted 300-person group chat where 280 people are irrelevant. ChatToPDF generates the structured PDF; targeted redaction is a step your lawyer's office typically handles using standard PDF tools.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Consent and privacy expectations in group chats.&lt;/strong&gt; Many jurisdictions treat group chats differently from private one-to-one messages. The general principle is that when you participate in a group conversation, you have reduced privacy expectations relative to a private direct message — all participants know the conversation is shared across the group. But this is not a universal rule, and it varies by jurisdiction and context.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;System messages.&lt;/strong&gt; WhatsApp exports include system-generated messages — things like "[Contact] joined using an invite link" or "[Contact] changed the group description." These appear in the &lt;code&gt;_chat.txt&lt;/code&gt; and in the PDF. They can be useful for establishing when someone joined the group, or when group settings were changed, which is sometimes directly relevant to the dispute.&lt;/p&gt;

&lt;p&gt;The bottom line with group chats: the export is technically straightforward. The legal considerations around third-party participants are not simple. Do not assume a group-chat export is ready to file just because you've turned it into a clean PDF. Talk to your lawyer about which participants' content you need and what, if anything, needs to be redacted before the document enters a legal proceeding.&lt;/p&gt;

&lt;h2&gt;
  
  
  Edited and deleted messages — what shows up, what does not
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcfmkpaa1ql40wj7zz4oj.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcfmkpaa1ql40wj7zz4oj.webp" alt="How edited and deleted WhatsApp messages appear in the export and what survives in the evidence PDF" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is the part that most guides skip, and it is the part most likely to create problems if you do not understand it before you submit your evidence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Deleted messages&lt;/strong&gt; — messages where the sender tapped "Delete for everyone" — appear in the export as a placeholder: &lt;code&gt;This message was deleted&lt;/code&gt;. That is all. The original message content is gone. The export reflects what is currently visible in the chat, not what was ever sent. If a critical message was deleted before you exported, it is not in your export. Period.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Edited messages&lt;/strong&gt; — WhatsApp introduced a message-editing feature in 2023 — appear in the export only as their final edited form. The original version of an edited message is not preserved in the export. There is no &lt;code&gt;[edited]&lt;/code&gt; marker in the &lt;code&gt;_chat.txt&lt;/code&gt;; the message appears exactly as it currently reads. If someone edited "Yes, I agree to those terms" to "No, I never agreed to anything" before you exported, your export will show the edited version.&lt;/p&gt;

&lt;p&gt;This is not a flaw in ChatToPDF. This is a fundamental characteristic of WhatsApp's export mechanism. The &lt;code&gt;_chat.txt&lt;/code&gt; reflects the current state of the conversation on the exporting device, not a complete immutable history of every message ever sent.&lt;/p&gt;

&lt;p&gt;Here's the part nobody tells you: this limitation cuts both ways. If the other side claims a message was edited or deleted to change its meaning, they need to provide their own evidence of what the original said — a screenshot, a witness statement, a separate export from their device, or carrier metadata. The burden of proving alteration is on them if you are presenting the export; the burden of proving integrity is on you.&lt;/p&gt;

&lt;p&gt;For messages that were deleted or edited, your lawyer may be able to pursue the original content through other channels: the other party's device (via discovery), WhatsApp's data transparency mechanisms in your jurisdiction, or witness testimony about what the original message said. None of these are ChatToPDF's domain. All of them are your lawyer's domain.&lt;/p&gt;

&lt;p&gt;One practical implication: export early. If you anticipate a legal dispute, export the relevant chat as soon as possible. Every day you wait is another day the other party can delete or edit messages that might matter. The export is a snapshot of the conversation at the moment you take it. Take it as close to the events as you reasonably can.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cross-jurisdiction notes — evidence rules differ widely
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb29as39fl278wfohbx54.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb29as39fl278wfohbx54.webp" alt="Cross-jurisdiction notes grid covering common evidence rules around WhatsApp chats in courts" width="" height=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I want to be careful here. I am not a lawyer. I am not qualified to give you jurisdiction-specific legal advice. What I can do is describe the general landscape, name the issues your lawyer will need to address, and be explicit that the specifics depend entirely on where your matter is being heard.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Authenticity standards vary.&lt;/strong&gt; Most jurisdictions require some authentication of digital evidence — proof that the document is what it claims to be. The hash-chain workflow I described above addresses this in general terms, but the specific authentication standard (what you need to show, who can testify to it, what documentation is required) depends on your jurisdiction's evidence rules.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hearsay rules differ significantly.&lt;/strong&gt; In some common-law jurisdictions, WhatsApp messages may be admitted as party admissions (statements made by a party to the proceedings) or as business records (where applicable). In other jurisdictions, or where the message is being offered for a different purpose, hearsay exclusions may apply. This is one of the most important questions your lawyer needs to answer before you rely on WhatsApp evidence as a primary exhibit.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data protection laws and legal proceedings.&lt;/strong&gt; Most data protection laws in most jurisdictions include provisions that permit processing personal data for the purposes of legal proceedings, including where that processing would otherwise require consent. But the specific conditions — what "legal proceedings" includes, whether it covers pre-litigation evidence preservation, what documentation you need — vary by jurisdiction. Always check with a local lawyer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Civil vs. criminal proceedings.&lt;/strong&gt; The rules governing evidence in criminal proceedings are typically more stringent than in civil matters. Chain of custody requirements, authentication standards, and hearsay rules are generally applied more strictly in criminal courts. If your matter is criminal in nature, get legal advice before you do anything with the evidence — including exporting the chat.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cross-border disputes.&lt;/strong&gt; If the conversation involved parties in different countries — and WhatsApp is global — you may face questions about which jurisdiction's evidence rules apply, which country's data protection laws govern the export, and whether evidence collected in one jurisdiction is admissible in another. These are not questions any tool can answer for you. (One cross-border use deserves its own guide: presenting &lt;a href="https://chattopdf.app/blog/whatsapp-relationship-evidence-visa" rel="noopener noreferrer"&gt;WhatsApp chats as relationship evidence for visa applications&lt;/a&gt;, where the formatting requirements are different from court exhibits.)&lt;/p&gt;

&lt;p&gt;The best summary I can give: the hash-chain workflow and the clean PDF format give you a strong technical foundation that is respected in most jurisdictions' evidence frameworks. But technical foundation is not the same as legal admissibility. Talk to a local lawyer before you file anything.&lt;/p&gt;

&lt;h2&gt;
  
  
  Court-evidence tools compared
&lt;/h2&gt;

&lt;p&gt;A handful of tools now position specifically on the court-evidence use case, and since I get asked how ChatToPDF compares, here is an honest snapshot. Competitor details are taken from their own sites as of June 2026 — check current pricing and features before relying on any of it.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;ChatToPDF&lt;/th&gt;
&lt;th&gt;WaChat to PDF&lt;/th&gt;
&lt;th&gt;ChatToCourt&lt;/th&gt;
&lt;th&gt;Desktop tools (Decipher, iMazing)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Pricing model&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;$14–$99 one-time per chat&lt;/td&gt;
&lt;td&gt;$6.99 per export or $19.99/mo&lt;/td&gt;
&lt;td&gt;$3.99 per document&lt;/td&gt;
&lt;td&gt;~$30–60 licence + a computer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Runs in browser, no install&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes (processes locally in your browser)&lt;/td&gt;
&lt;td&gt;No — desktop app, cable, backup&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;SHA-256 integrity hash&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Yes — printed on the PDF cover page&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Not advertised&lt;/td&gt;
&lt;td&gt;Varies&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Voice notes&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Transcribed inline&lt;/strong&gt; at $49 Premium+Voice — what was said becomes readable text in the record&lt;/td&gt;
&lt;td&gt;Not transcribed&lt;/td&gt;
&lt;td&gt;Not transcribed&lt;/td&gt;
&lt;td&gt;Not transcribed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Free preview before paying&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Varies&lt;/td&gt;
&lt;td&gt;Preview/edit before export&lt;/td&gt;
&lt;td&gt;Trial versions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Bates numbering / PII redaction&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;No — redaction is paralegal work under your lawyer's direction (see below)&lt;/td&gt;
&lt;td&gt;Yes (Pro features)&lt;/td&gt;
&lt;td&gt;Editing before export&lt;/td&gt;
&lt;td&gt;Varies&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Where the others are genuinely strong: WaChat to PDF's Bates numbering matters if your lawyer files in a US litigation context that uses Bates-stamped productions — ask them whether they need it or whether they Bates-stamp exhibits themselves (most firms do it in-house as part of assembling the bundle). ChatToCourt's in-browser processing means the chat never leaves your machine, which is a real consideration for highly sensitive material — ChatToPDF's answer is different: files are processed server-side, auto-deleted within 7 days, and never used for anything else, with a &lt;a href="https://chattopdf.app" rel="noopener noreferrer"&gt;free preview&lt;/a&gt; so you see the output before paying.&lt;/p&gt;

&lt;p&gt;Where ChatToPDF is the only option: voice notes. If the conversation that matters includes voice messages — and in harassment, family, and business disputes it usually does — none of the others put the spoken words into the record as readable, searchable text. A judge or opposing counsel cannot Ctrl-F an audio file. The &lt;a href="https://chattopdf.app/blog/whatsapp-voice-to-text" rel="noopener noreferrer"&gt;voice-to-text guide&lt;/a&gt; covers how inline transcription works.&lt;/p&gt;

&lt;p&gt;For the case-type-specific workflows, I have separate guides for &lt;a href="https://chattopdf.app/blog/whatsapp-messages-divorce-court-evidence" rel="noopener noreferrer"&gt;divorce and custody matters&lt;/a&gt;, &lt;a href="https://chattopdf.app/blog/print-text-messages-for-court" rel="noopener noreferrer"&gt;printing message exhibits for court&lt;/a&gt;, and &lt;a href="https://chattopdf.app/blog/document-workplace-harassment-messages" rel="noopener noreferrer"&gt;documenting workplace harassment&lt;/a&gt; — each covers the preservation steps and the mistakes specific to that situation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Engaging a lawyer — when to stop self-prepping
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnmdvr6m2q2f2vkpll9lp.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnmdvr6m2q2f2vkpll9lp.webp" alt="When to call a lawyer flow chart for WhatsApp evidence preparation across self-prep, paralegal, and counsel paths" width="" height=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Not every use of a WhatsApp PDF requires a lawyer. But some do, and the mistake most people make is waiting too long to get one involved. Here is how I think about the decision.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Self-preparation is fine for:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Preserving a conversation you think might matter later. Exporting and PDF-ing a chat as a precaution, storing it securely, and waiting to see if the matter develops further — this is good practice and requires no lawyer. The cost is one $14 Standard per chat conversion and a few minutes. The upside is a clean, hashed record if you ever need it.&lt;/p&gt;

&lt;p&gt;Informal mediation or dispute resolution. If you are trying to resolve a disagreement without going to court — a dispute with a contractor, a misunderstanding with a business partner, a neighbour conflict — a well-formatted PDF of the relevant conversation can clarify what was actually said and agreed. You are not submitting legal evidence; you are presenting a clear record.&lt;/p&gt;

&lt;p&gt;Background preparation before a first legal consultation. If you have a meeting scheduled with a solicitor or attorney, arriving with a clean PDF of the relevant chat is more efficient than asking them to read screenshots on your phone. The $14 Standard per chat conversion is a cheap way to show up to that meeting prepared.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Get a paralegal involved for:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Organising large volumes of evidence material. If you have multiple chats, a complicated group conversation, and dozens of supporting documents, a paralegal can help structure the exhibit list and ensure the evidence is organised in a format the lawyer can work with efficiently. For teams or businesses processing multiple chat records, the &lt;a href="https://chattopdf.app/blog/whatsapp-business-pdf" rel="noopener noreferrer"&gt;WhatsApp Business PDF guide&lt;/a&gt; covers the bulk-export and per-chat filing patterns that HR and legal departments use most. For high-volume archive work — discovery preparation across hundreds of chats, for example — the $99 Power User per chat conversion supports priority queue and bulk batch upload, which a paralegal or document-management team typically drives.&lt;/p&gt;

&lt;p&gt;Redaction work. If the group-chat export contains content from uninvolved third parties that your lawyer says should be redacted before filing, a paralegal can typically handle the redaction process under the lawyer's supervision.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Get a lawyer involved for:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Any matter where the WhatsApp conversation will be a primary exhibit. If the chat is the case — the contract, the harassment, the threat, the agreement — you need a lawyer to decide how to introduce it, what supporting evidence to gather, and how to address authentication objections from the other side.&lt;/p&gt;

&lt;p&gt;Any matter with potential damages. If money or liberty is at stake, legal advice is not optional.&lt;/p&gt;

&lt;p&gt;Any matter that is or may become a court proceeding. Once you are in front of a judge or magistrate, evidence rules apply strictly. Self-represented litigants who submit improperly authenticated evidence often lose cases they should win because the technical requirements were not met.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc08ausgs4p8m9637q5i7.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc08ausgs4p8m9637q5i7.webp" alt="Decision tree mapping legal scenarios to chattopdf tier and lawyer-engagement path for WhatsApp evidence" width="800" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ChatToPDF is a formatting and authentication tool. It produces the cleanest possible starting point for your evidence. Getting that document admitted, used effectively, and argued persuasively is legal work — and there is no tool that replaces a lawyer who knows your case.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;WhatsApp chats are accepted as evidence in many jurisdictions when authenticity can be established — exports with hash chains are significantly stronger than screenshots, but admissibility is the court's decision, not a tool's guarantee&lt;/li&gt;
&lt;li&gt;A proper evidence PDF needs a cover page with SHA-256 hash, ISO 8601 timestamps, sender phone numbers on every message, page numbers, and a persistent footer — ChatToPDF generates all of these automatically&lt;/li&gt;
&lt;li&gt;The hash-chain workflow (export ZIP, compute SHA-256, generate PDF, cite hash on cover page, preserve original ZIP) is the core integrity proof — ChatToPDF automates the hash; preserving the ZIP is your job&lt;/li&gt;
&lt;li&gt;Deleted and edited messages are not in the export — the &lt;code&gt;_chat.txt&lt;/code&gt; reflects the current state of the conversation, so export early before any alteration can occur&lt;/li&gt;
&lt;li&gt;Group-chat exports contain every participant's content, including uninvolved third parties; redaction and data protection considerations require your lawyer's input before filing&lt;/li&gt;
&lt;li&gt;Every jurisdiction has its own evidence rules, hearsay standards, and data protection considerations — always talk to a local lawyer before relying on WhatsApp evidence in any formal proceeding&lt;/li&gt;
&lt;li&gt;ChatToPDF costs $14 Standard per chat conversion for text-and-images and $49 Premium+Voice per chat conversion for chat plus voice-note transcription — either is the formatting step; your lawyer handles the legal step&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Is a ChatToPDF-generated PDF legally admissible in court?
&lt;/h3&gt;

&lt;p&gt;That is not a question I can answer — and you should be sceptical of any tool that claims it can. Admissibility depends on the court, the jurisdiction, the nature of the proceedings, and the argument your lawyer makes. What ChatToPDF produces is a clean, sender-attributed, ISO-timestamped PDF with a SHA-256 hash on the cover page — which is the technical foundation a lawyer typically needs to argue for admission. Whether the argument succeeds is between your lawyer and the court.&lt;/p&gt;

&lt;h3&gt;
  
  
  Should I use screenshots or the export for legal evidence?
&lt;/h3&gt;

&lt;p&gt;Use the export wherever you can. Screenshots are easily manipulated in any image editor and contain no machine-readable metadata. A WhatsApp export is produced by WhatsApp's own mechanism, contains timestamps recorded at transmission time, and can be hashed at export to detect subsequent modification. Courts in many jurisdictions have noted explicitly that screenshots alone are insufficient to authenticate digital communications. The $14 Standard per chat conversion turns your export ZIP into a properly formatted, hashable evidence PDF.&lt;/p&gt;

&lt;h3&gt;
  
  
  What happens to deleted messages in the export?
&lt;/h3&gt;

&lt;p&gt;WhatsApp's "Delete for everyone" feature replaces the message content with the placeholder "This message was deleted" in the recipient's chat. When you export, that placeholder is what appears in the &lt;code&gt;_chat.txt&lt;/code&gt; — and therefore in the PDF. The original message content is not recoverable through the export. If critical messages were deleted before you exported, you will need to pursue the original content through other means: the other party's device, witness testimony, or any other available channel. This is a question for your lawyer, not for ChatToPDF.&lt;/p&gt;

&lt;h3&gt;
  
  
  How does the SHA-256 hash prove the chat was not edited?
&lt;/h3&gt;

&lt;p&gt;When you upload a WhatsApp ZIP to ChatToPDF, the tool computes the SHA-256 of the ZIP file and prints it on the cover page of the generated PDF. SHA-256 produces a 64-character fingerprint that is unique to the exact content of the file — change even a single character in the &lt;code&gt;_chat.txt&lt;/code&gt; and the hash changes completely. Later, if a court or opposing counsel wants to verify the PDF against the original, they compute the SHA-256 of the original ZIP and compare it to the cover-page hash. A match means the ZIP was not modified after the PDF was generated. The original ZIP is your anchor — keep it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I submit a group-chat export as evidence?
&lt;/h3&gt;

&lt;p&gt;You can prepare one, but get your lawyer's input before filing it. A group-chat export contains every participant's messages, including those of people who are not parties to your dispute. Most data protection laws have provisions for processing personal data in legal proceedings, but the specifics depend on your jurisdiction. Your lawyer may also advise redacting uninvolved participants' content before the document enters a formal proceeding. ChatToPDF generates the formatted PDF; targeted redaction is typically done by your lawyer or paralegal using standard PDF tools.&lt;/p&gt;

&lt;h3&gt;
  
  
  Which ChatToPDF tier should I use for evidence preparation?
&lt;/h3&gt;

&lt;p&gt;For most evidence-prep cases — contract disputes, employment matters, harassment threads, business communications — the $14 Standard per chat conversion covers text and inline images, which is usually sufficient. If the conversation includes voice notes that are directly relevant to the matter, the $49 Premium+Voice per chat conversion adds Deepgram Nova-3 transcription, and the transcripts appear inline in the PDF at the correct chronological positions. Both tiers generate the SHA-256 hash and ISO timestamps that are the core of the integrity argument. Which tier fits your case depends on your content — your lawyer can advise on what level of detail the evidence needs to show.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do I need to keep the original ZIP file after I have the PDF?
&lt;/h3&gt;

&lt;p&gt;Yes, and this is important. The PDF is the working document. The original WhatsApp ZIP is the proof that the PDF is accurate. If the hash on the PDF cover page is ever challenged, you need the original ZIP to verify it. Some proceedings also require production of the original evidence in discovery — if you have deleted the ZIP, you may not be able to satisfy that requirement. Store the ZIP and the PDF together in a secure location and do not rename or modify the ZIP after upload.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can WhatsApp messages be used in small claims court?
&lt;/h3&gt;

&lt;p&gt;In many jurisdictions, yes — small claims courts commonly accept message records as evidence of agreements, payments promised, work commissioned, or goods described, and the procedural bar is often lower than in higher courts. The practical requirements are the same ones this guide covers: a complete thread rather than excerpts, visible dates and sender identification on every page, and the original export kept untouched as the source record. Small claims clerks can usually tell you exactly how many copies the court wants and in what format — ask before you print. For the printing mechanics, see the &lt;a href="https://chattopdf.app/blog/print-text-messages-for-court" rel="noopener noreferrer"&gt;court printout guide&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I use a WhatsApp PDF for an insurance claim?
&lt;/h3&gt;

&lt;p&gt;Insurers regularly ask for supporting documentation, and message threads — what was reported when, what a contractor promised, what condition something was in before — often carry real weight in a claim file precisely because they were written at the time. A paginated PDF with timestamps and sender names is far easier for a claims handler to work with than forwarded screenshots, and the export preserves the chronology that a claim dispute usually turns on. Keep the original ZIP in case the insurer or an assessor asks how the document was produced. Check your policy or ask your claims handler what format they want before submitting.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can WhatsApp messages be used in a landlord or tenant dispute?
&lt;/h3&gt;

&lt;p&gt;Message threads between landlords and tenants — repair requests, rent discussions, notice of entry, deposit conversations — are commonly presented in housing tribunals and small claims proceedings. The same principles apply: preserve the whole thread early (before a dispute escalates and messages get deleted), keep it chronological and complete rather than cherry-picked, and make sure every page shows who said what and when. Some tenancy tribunals have their own bundle formats — check the tribunal's guidance or ask at filing. The evidence format checklist above covers what every page needs to show.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I present WhatsApp messages for a restraining order application?
&lt;/h3&gt;

&lt;p&gt;Courts handling protective-order applications typically want printed exhibits: complete, chronological, with dates, times, and sender identification visible, organised so the judge can follow the pattern of contact. A complete export is stronger than a folder of screenshots here for a specific reason — these applications usually turn on a pattern of behaviour over time, and a continuous thread shows frequency and escalation in a way isolated screenshots cannot. Make the copies your court requires (many ask for three), and if voice messages are part of the pattern, the $49 Premium+Voice per chat conversion puts what was said into the record as readable text. Court self-help centres and domestic-violence advocates can walk you through the filing itself — and if you are in immediate danger, contact local emergency services first.&lt;/p&gt;

</description>
      <category>whatsapp</category>
      <category>pdf</category>
      <category>productivity</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>WhatsApp statistics 2026: 3.3 billion users, and the export gap nobody talks about</title>
      <dc:creator>ChatToPDF</dc:creator>
      <pubDate>Mon, 15 Jun 2026 09:11:14 +0000</pubDate>
      <link>https://dev.to/chattopdf/whatsapp-statistics-2026-33-billion-users-and-the-export-gap-nobody-talks-about-29le</link>
      <guid>https://dev.to/chattopdf/whatsapp-statistics-2026-33-billion-users-and-the-export-gap-nobody-talks-about-29le</guid>
      <description>&lt;p&gt;WhatsApp is now the most-used messaging app on the planet. I run a tool that converts WhatsApp exports to PDF, so I spend my days at the messy end of these numbers — here are the ones that actually matter, with sources.&lt;/p&gt;

&lt;h2&gt;
  
  
  The headline figures (2026)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;~3.3 billion&lt;/strong&gt; monthly active users (&lt;a href="https://www.demandsage.com/whatsapp-statistics/" rel="noopener noreferrer"&gt;DemandSage&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;~2.4 billion&lt;/strong&gt; daily active users&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;100 billion+&lt;/strong&gt; messages sent per day (Meta's own figure)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;7 billion&lt;/strong&gt; voice messages per day — the largest voice-messaging platform in the world&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnugplguxwhpnog26n9gu.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnugplguxwhpnog26n9gu.webp" alt="WhatsApp monthly active user growth 2020-2026" width="800" height="512"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Where the users are
&lt;/h2&gt;

&lt;p&gt;India leads with about &lt;strong&gt;532 million&lt;/strong&gt; users, then Brazil and Indonesia. The top 10 countries hold roughly &lt;strong&gt;49%&lt;/strong&gt; of all WhatsApp users (&lt;a href="https://worldpopulationreview.com/country-rankings/whatsapp-users-by-country" rel="noopener noreferrer"&gt;World Population Review&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9zkjt1bffi9ejf87u7ar.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9zkjt1bffi9ejf87u7ar.webp" alt="WhatsApp users by country 2026" width="800" height="510"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The part that bites developers
&lt;/h2&gt;

&lt;p&gt;For all 3.3 billion users, WhatsApp's only built-in export produces a &lt;code&gt;.txt&lt;/code&gt; file or a &lt;code&gt;.zip&lt;/code&gt; — &lt;strong&gt;never a PDF&lt;/strong&gt; — and it silently caps a media-inclusive export at about &lt;strong&gt;40,000 messages&lt;/strong&gt;. Voice notes come out as raw &lt;code&gt;.opus&lt;/code&gt; files, not text. So the messages exist, the demand to keep them exists, but the format is unreadable for any real purpose.&lt;/p&gt;

&lt;p&gt;That mismatch — billions of users, a stagnant plain-text export — is why parsing/formatting tools exist at all. If you've ever tried to programmatically read a &lt;code&gt;_chat.txt&lt;/code&gt;, you know the timestamp formats alone vary wildly by locale (iOS bracketed, Android dashed, European dotted, plus non-Western digits).&lt;/p&gt;

&lt;p&gt;Full breakdown with all the charts and sources: &lt;strong&gt;&lt;a href="https://chattopdf.app/blog/whatsapp-statistics" rel="noopener noreferrer"&gt;WhatsApp Statistics 2026&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

</description>
      <category>whatsapp</category>
      <category>statistics</category>
      <category>data</category>
      <category>webdev</category>
    </item>
    <item>
      <title>How to export a WhatsApp chat to PDF in 2026: the honest options</title>
      <dc:creator>ChatToPDF</dc:creator>
      <pubDate>Mon, 15 Jun 2026 08:33:18 +0000</pubDate>
      <link>https://dev.to/chattopdf/how-to-export-a-whatsapp-chat-to-pdf-in-2026-the-honest-options-poj</link>
      <guid>https://dev.to/chattopdf/how-to-export-a-whatsapp-chat-to-pdf-in-2026-the-honest-options-poj</guid>
      <description>&lt;p&gt;WhatsApp doesn't have a "Save as PDF" button. The only thing it gives you is &lt;strong&gt;Export&lt;br&gt;
chat&lt;/strong&gt;, which produces a &lt;code&gt;.txt&lt;/code&gt; file (or a &lt;code&gt;.zip&lt;/code&gt; if you include media). Turning that into a&lt;br&gt;
readable PDF is the part people get stuck on — so here's a straight rundown of the ways that&lt;br&gt;
actually work, what each is good for, and where each falls down.&lt;/p&gt;

&lt;p&gt;Disclosure up front: I work on one of the tools below (ChatToPDF). I've tried to keep this&lt;br&gt;
even — for several use cases one of the others is the better pick, and I've said so.&lt;/p&gt;

&lt;h2&gt;
  
  
  First, get the export
&lt;/h2&gt;

&lt;p&gt;On the chat: tap the contact/group name → &lt;strong&gt;Export Chat&lt;/strong&gt; → choose &lt;strong&gt;Without Media&lt;/strong&gt; (a&lt;br&gt;
&lt;code&gt;.txt&lt;/code&gt;) or &lt;strong&gt;With Media&lt;/strong&gt; (a &lt;code&gt;.zip&lt;/code&gt; with the text plus photos/voice notes). That file is your&lt;br&gt;
starting point for everything below. Note WhatsApp caps the export at ~40,000 messages&lt;br&gt;
(fewer with media).&lt;/p&gt;

&lt;h2&gt;
  
  
  Option 1 — Print to PDF from WhatsApp Web (free, fastest, ugly)
&lt;/h2&gt;

&lt;p&gt;Open WhatsApp Web, open the chat, scroll to load the part you want, then &lt;strong&gt;Print → Save as&lt;br&gt;
PDF&lt;/strong&gt;. Costs nothing and needs no tools.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;👍 Free, no upload, instant.&lt;/li&gt;
&lt;li&gt;👎 No real formatting, struggles with long chats, and media/voice notes don't come through
cleanly. Fine for a few screens, painful for a whole conversation.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Option 2 — A dedicated web converter
&lt;/h2&gt;

&lt;p&gt;Upload the exported &lt;code&gt;.txt&lt;/code&gt;/&lt;code&gt;.zip&lt;/code&gt; and get a formatted PDF back. Two worth knowing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://chattopdf.app" rel="noopener noreferrer"&gt;ChatToPDF&lt;/a&gt;&lt;/strong&gt; &lt;em&gt;(the one I work on)&lt;/em&gt; — keeps images inline,
timestamps and sender names, offers a few layouts including a numbered document style, and
can transcribe voice notes onto the page. There's a free preview of the output before you
pay; pricing is one-time per chat (no subscription, no account, files auto-deleted).&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;whatsapptopdf.com&lt;/strong&gt; — free online converter, also handles media. Good if you just want a&lt;br&gt;
quick PDF and don't need transcription or layout choices.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;👍 Proper formatting, media handled, no software install.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;👎 You're uploading the chat to a server — fine for most things, but for genuinely sensitive&lt;br&gt;
conversations an offline desktop tool (below) keeps everything local.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Option 3 — Desktop backup software (Dr.Fone, iMazing, Backuptrans)
&lt;/h2&gt;

&lt;p&gt;Tools like &lt;strong&gt;Wondershare Dr.Fone&lt;/strong&gt;, &lt;strong&gt;iMazing&lt;/strong&gt; and &lt;strong&gt;Backuptrans&lt;/strong&gt; pull a full WhatsApp&lt;br&gt;
backup off your phone and let you export to PDF (and other formats) locally.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;👍 Everything stays on your machine; handles very large histories; exports more than just
one chat.&lt;/li&gt;
&lt;li&gt;👎 Paid, heavier to set up, overkill if you just need one conversation as a PDF.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Option 4 — Turn the chat into a printed book (zapptales, Keepster)
&lt;/h2&gt;

&lt;p&gt;If the goal is a keepsake rather than a document — a relationship, a trip, messages from&lt;br&gt;
someone you've lost — services like &lt;strong&gt;zapptales&lt;/strong&gt; and &lt;strong&gt;Keepster&lt;/strong&gt; lay the chat out as a&lt;br&gt;
physical book.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;👍 Beautiful printed result, designed for memories.&lt;/li&gt;
&lt;li&gt;👎 Much pricier, and it's a book, not a quick file you can email.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Which one should you use?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Just need a quick PDF of a short chat?&lt;/strong&gt; WhatsApp Web → Print to PDF.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Want a clean, formatted PDF with images/voice notes, no install?&lt;/strong&gt; A web converter
(ChatToPDF or whatsapptopdf.com).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Huge history, or you want it processed entirely offline?&lt;/strong&gt; A desktop backup tool.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It's a keepsake?&lt;/strong&gt; A book service like zapptales or Keepster.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One thing worth saying for the legal/evidence use case people often ask about: any of these&lt;br&gt;
gives you a timestamped record, but whether a court accepts it depends on your jurisdiction&lt;br&gt;
and how it's presented — that's a question for your lawyer, not a tool.&lt;/p&gt;

&lt;p&gt;Hope that saves someone the evening I once spent screenshotting a chat one message at a time.&lt;br&gt;
If you've found a method I've missed, drop it in the comments.&lt;/p&gt;

</description>
      <category>whatsapp</category>
      <category>pdf</category>
      <category>productivity</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Best WhatsApp Transcription Tools: An Honest Guide</title>
      <dc:creator>ChatToPDF</dc:creator>
      <pubDate>Fri, 29 May 2026 18:59:53 +0000</pubDate>
      <link>https://dev.to/chattopdf/best-whatsapp-transcription-tools-an-honest-guide-2n0l</link>
      <guid>https://dev.to/chattopdf/best-whatsapp-transcription-tools-an-honest-guide-2n0l</guid>
      <description>&lt;p&gt;This guide compares the best WhatsApp transcription tools by the job you need done — not by abstract accuracy rankings. The best WhatsApp transcription tool depends entirely on the job you are doing. If you need to quickly read one voice note without pressing play, WhatsApp's own built-in transcription is the right answer — it is free, on-device, and instant. If you need to process a standalone audio file, general-purpose transcription apps are a sensible fit. If you need an entire WhatsApp chat exported as a searchable PDF with every voice note transcribed inline, sender names preserved, and timestamps intact, that is what ChatToPDF's Premium+Voice tier ($49 per chat) is built for.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; The category that fits you: WhatsApp's built-in transcription for a quick read of one note; a general transcription app for standalone audio files; ChatToPDF for a whole exported chat with voice notes inline in one searchable document. The right tool is the one shaped for your specific job — not the most accurate one in the abstract, and not the cheapest one in isolation. Free options exist at every level; the cost of the dedicated tools reflects batch processing, export format, and sender attribution — not just raw transcription.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv3obllb0agu4k64gb7l7.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv3obllb0agu4k64gb7l7.webp" alt="Comparison matrix of WhatsApp transcription options: built-in per-message, general apps, ChatToPDF batch export, manual" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to choose a WhatsApp transcription tool
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbd8rdd2gwtsi0em96qo7.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbd8rdd2gwtsi0em96qo7.webp" alt="Six criteria for choosing a WhatsApp transcription tool: scope, output format, sender attribution, languages, privacy, cost" width="800" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The single most important question is not "which tool is most accurate" — it is "what is the actual job I am trying to do?" A transcription tool that excels at one job is often irrelevant for another. Here are the criteria that matter, in rough order of importance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scope: per-message or whole-chat batch.&lt;/strong&gt; WhatsApp conversations can run to thousands of messages with dozens of voice notes scattered across the timeline. If you need &lt;em&gt;all&lt;/em&gt; of them transcribed in context, a tool that processes one file at a time requires you to manually extract, name, and reassemble each voice note — an approach that is tedious at five voice notes and impractical at fifty. A batch tool processes the entire exported ZIP in one pass and embeds the transcripts in sequence. Know your scope before choosing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Output format and where you need the result.&lt;/strong&gt; A transcript that stays inside an app is useful for reading once; a transcript in a PDF, XLSX, or plain-text file is useful for filing, emailing, printing, or submitting to a third party. If the output needs to leave the phone — go to a solicitor, an HR manager, a case-management system, or a personal archive — the format matters as much as the transcription quality.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sender attribution and timestamp inline.&lt;/strong&gt; In a multi-participant chat, a voice note transcript without the sender's name and the original timestamp is only half the record. "Someone said this at some point" is not useful for a business archive or a legal document. Look for whether the tool preserves who said what and when — not just what was said.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Language support.&lt;/strong&gt; Voice notes in WhatsApp come in every language. Most transcription tools support a core set well and degrade for others. If your chat contains voice notes in Arabic, Hindi, Portuguese, or a mixed-language conversation, check language support specifically rather than assuming "it works". WhatsApp publishes the &lt;a href="https://faq.whatsapp.com/" rel="noopener noreferrer"&gt;list of languages supported by its built-in transcription&lt;/a&gt; on the official WhatsApp FAQ.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Privacy and data handling.&lt;/strong&gt; Voice notes can contain sensitive personal information. Before uploading to any third-party tool, check their stated data-retention policy. ChatToPDF deletes uploaded files automatically after 7 days; policies at other services vary — check the vendor's current terms.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Price model.&lt;/strong&gt; Transcription tools charge in very different ways: some are subscription (monthly fee regardless of how much you transcribe), some are per-minute of audio, some are per-conversation. For a one-off archive of a single WhatsApp chat, a per-chat flat fee is often more economical than a recurring subscription you will cancel. For ongoing high-volume use, a per-minute or subscription model may be cheaper. Match the cost model to your usage pattern.&lt;/p&gt;

&lt;h2&gt;
  
  
  The main options compared
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqz37mmk54sga2mlmab0r.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqz37mmk54sga2mlmab0r.webp" alt="Decision flowchart: which WhatsApp transcription tool fits your job — quick read, standalone file, or whole chat export" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F22twje0yiyv5m4g5lkb1.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F22twje0yiyv5m4g5lkb1.webp" alt="Full WhatsApp transcription tools comparison matrix: scope, export format, sender attribution, languages, privacy, cost model" width="799" height="407"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The four categories below cover every practical approach to WhatsApp transcription. I have not invented competitor prices, accuracy percentages, or feature lists — the category rows describe general, verifiable characteristics of each approach. For any specific commercial tool you are evaluating, check its current documentation; features and pricing change.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;WhatsApp transcription tool categories — what each option is actually for&lt;/em&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Category&lt;/th&gt;
&lt;th&gt;Scope&lt;/th&gt;
&lt;th&gt;Output / export&lt;/th&gt;
&lt;th&gt;Sender + timestamp inline&lt;/th&gt;
&lt;th&gt;Languages&lt;/th&gt;
&lt;th&gt;Privacy&lt;/th&gt;
&lt;th&gt;Best for&lt;/th&gt;
&lt;th&gt;Cost model&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;WhatsApp built-in&lt;/td&gt;
&lt;td&gt;One voice note at a time&lt;/td&gt;
&lt;td&gt;Transient overlay inside the app — no export&lt;/td&gt;
&lt;td&gt;Visible in chat UI but not in the transcript overlay or export&lt;/td&gt;
&lt;td&gt;Varies by app version; check your WhatsApp settings&lt;/td&gt;
&lt;td&gt;On-device processing — audio stays on your phone&lt;/td&gt;
&lt;td&gt;Quickly reading one note without pressing play&lt;/td&gt;
&lt;td&gt;Free (built into WhatsApp)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;General transcription apps&lt;/td&gt;
&lt;td&gt;Usually one audio file at a time; some support batch file upload&lt;/td&gt;
&lt;td&gt;Plain text, SRT, or DOCX — typically one transcript per file&lt;/td&gt;
&lt;td&gt;Not connected to WhatsApp chat structure; no sender or timestamp&lt;/td&gt;
&lt;td&gt;Varies by app; many support major languages well&lt;/td&gt;
&lt;td&gt;Varies by vendor — check each app's current retention policy&lt;/td&gt;
&lt;td&gt;Transcribing standalone audio or video files&lt;/td&gt;
&lt;td&gt;Subscription or per-minute; free tiers usually limited&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ChatToPDF (Premium+Voice)&lt;/td&gt;
&lt;td&gt;Entire exported WhatsApp chat — all voice notes in one pass&lt;/td&gt;
&lt;td&gt;PDF (voice transcripts inline in conversation) + optional XLSX/CSV&lt;/td&gt;
&lt;td&gt;Yes — sender name and timestamp preserved with every transcript entry&lt;/td&gt;
&lt;td&gt;17 high-accuracy languages; 30+ auto-detected (Deepgram Nova-3)&lt;/td&gt;
&lt;td&gt;Files deleted automatically after 7 days; no sharing with third parties&lt;/td&gt;
&lt;td&gt;Whole chat as a searchable record — legal, business, archive, accessibility&lt;/td&gt;
&lt;td&gt;$49 per chat — one-time flat fee, no subscription&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Manual typing / hiring a transcriber&lt;/td&gt;
&lt;td&gt;Any audio, any format, any quality&lt;/td&gt;
&lt;td&gt;Whatever format the typist produces — Word, PDF, plain text&lt;/td&gt;
&lt;td&gt;Only if the typist is given context and instructed to include it&lt;/td&gt;
&lt;td&gt;Any language a human speaker understands&lt;/td&gt;
&lt;td&gt;Depends on whether a human or a service is involved; review before sharing&lt;/td&gt;
&lt;td&gt;Very noisy audio, unusual accents, or where automated tools fail&lt;/td&gt;
&lt;td&gt;Time cost if DIY; varies widely if outsourced — check the vendor&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The table does not rank these options by quality — they are shaped for different jobs. The right column is not "best"; it is "best for a specific situation."&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fllehubcqcpttm7q1i8e6.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fllehubcqcpttm7q1i8e6.webp" alt="WhatsApp built-in transcription feature card: free, on-device, per-message, no export capability" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg5135vjqeinu77zkxv2t.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg5135vjqeinu77zkxv2t.webp" alt="General transcription apps card: standalone audio files, pay-per-minute or subscription billing, no WhatsApp chat structure" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8li8z0rzift9ntoqa0zn.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8li8z0rzift9ntoqa0zn.webp" alt="ChatToPDF Premium+Voice card: whole WhatsApp chat batch export, inline transcripts, $49 per chat, PDF CSV XLSX output" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F07f8obh3p554syh0wara.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F07f8obh3p554syh0wara.webp" alt="Manual transcription option card: human typist or transcriber, any language, accurate for noisy audio, slow and costly" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://chattopdf.app/upload" rel="noopener noreferrer"&gt;Convert your WhatsApp chat to PDF&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  When ChatToPDF is the right choice (and when it isn't)
&lt;/h2&gt;

&lt;p&gt;I want to be honest about this, because a comparison page that pretends one product wins every case is not useful.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ChatToPDF wins when the job is: the whole chat as a document.&lt;/strong&gt; If you have a WhatsApp conversation — one-to-one or group — that contains a mix of text messages and voice notes, and you need the complete record exported as a searchable document with sender attribution and timestamps, ChatToPDF is the only tool on this list built specifically for that job. The built-in transcription cannot export and does not batch. General transcription apps do not understand the WhatsApp chat structure and cannot attach transcripts to specific senders and moments in the conversation. Manual typing is possible but slow.&lt;/p&gt;

&lt;p&gt;The specific situations where I would confidently recommend ChatToPDF's Premium+Voice tier:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Legal and compliance filings&lt;/strong&gt; — a dispute, an employment matter, a court filing — where you need the voice notes and the surrounding text messages in one timestamped, attributed document&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Business records&lt;/strong&gt; — client approvals, instructions, and agreements given verbally over WhatsApp, where a searchable archive is the difference between "we have a record" and "I think he said this in a voice note somewhere"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Long-term personal archives&lt;/strong&gt; — family group chats, voice notes from relatives, conversations you want to preserve in a format that does not depend on WhatsApp staying installed&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Accessibility situations&lt;/strong&gt; — making voice note content available to someone who is deaf or hard of hearing, or who cannot play audio in their environment&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;WhatsApp's built-in transcription wins when the job is: quickly reading one note right now.&lt;/strong&gt; I mean this genuinely. If someone just sent you a two-minute voice note and you want to skim it on silent in a meeting, tap the note and let WhatsApp transcribe it on-device. Free, instant, no export needed. ChatToPDF is the wrong shape for that job. The &lt;a href="https://chattopdf.app/blog/whatsapp-speech-to-text" rel="noopener noreferrer"&gt;WhatsApp speech to text guide&lt;/a&gt; covers the built-in feature in detail.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;General transcription apps win when the job is: a standalone audio file that has nothing to do with WhatsApp structure.&lt;/strong&gt; If someone emailed you an MP3 of a meeting recording or a podcast segment, a general-purpose transcription app is the right tool. That app is not going to understand a WhatsApp ZIP file, and ChatToPDF is not going to help you with a non-WhatsApp audio file. Use the right shape.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Manual transcription wins when automated tools fail.&lt;/strong&gt; Very noisy audio, unusual accents, highly technical vocabulary, low-quality recordings, or languages that are genuinely not well-supported by any automated engine — these are the cases where a human listener still outperforms automated tools. Automated transcription has come a long way, but it is not universal. The &lt;a href="https://chattopdf.app/blog/transcribe-whatsapp-audio" rel="noopener noreferrer"&gt;transcribe WhatsApp audio guide&lt;/a&gt; covers how background noise affects accuracy in detail, including the honest picture of when Deepgram Nova-3 degrades.&lt;/p&gt;

&lt;h2&gt;
  
  
  What ChatToPDF costs
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F18571cfpggnxrmywpc2l.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F18571cfpggnxrmywpc2l.webp" alt="WhatsApp transcription output types: in-app overlay versus standalone transcript file versus searchable PDF record" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo5ic4p36k6e81c3pmby6.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo5ic4p36k6e81c3pmby6.webp" alt="WhatsApp transcription privacy by category: on-device processing versus cloud upload versus 7-day automatic file deletion" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ChatToPDF uses a per-chat flat fee — one payment, one export, no subscription or recurring charge.&lt;/p&gt;

&lt;p&gt;Voice transcription is available on the &lt;strong&gt;Premium+Voice tier at $49 per chat&lt;/strong&gt;. That tier includes: the full PDF with every voice note transcribed inline at its position in the conversation; Deepgram Nova-3 transcription in 17 high-accuracy languages plus 30+ auto-detected; sender name and timestamp preserved with every transcript; XLSX and CSV export alongside the PDF; and up to 8 hours of audio per chat. If you have a chat with dozens of voice notes spread across years, this is the tier that handles it in a single pass.&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;Power User tier at $99 per chat&lt;/strong&gt; adds a priority processing queue and is intended for very large group exports where turnaround time matters.&lt;/p&gt;

&lt;p&gt;The other tiers ($7 Basic, $14 Standard, $29 Premium) do not include voice transcription. They produce a chat PDF with text messages and inline media, but voice notes appear as audio-file placeholders rather than readable transcripts.&lt;/p&gt;

&lt;p&gt;There is no subscription required. If you have one conversation to export, you pay $49 once. If you have ten, you pay per chat. There is no monthly fee regardless of whether you use the service.&lt;/p&gt;

&lt;p&gt;You can upload your ZIP and preview the output — including how many voice notes were detected and what the formatted PDF will look like — before paying anything. The 7-day money-back guarantee means that if the transcription output is not what you needed, you can get a full refund.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://chattopdf.app/upload" rel="noopener noreferrer"&gt;Convert your WhatsApp chat to PDF&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What's the best free option for WhatsApp voice transcription?
&lt;/h3&gt;

&lt;p&gt;WhatsApp's own built-in transcription is the best free option — it is on-device (so your audio never leaves the phone), does not require any third-party app, and works reasonably well for clear recordings in well-supported languages. It transcribes one voice note at a time with no export option. If you need batch transcription or a document you can save and share, the free tier ends there. Some general transcription apps offer limited free tiers — typically a few minutes of audio per month or per day — but features and pricing change, so check each vendor's current offering before relying on it. For a complete WhatsApp chat archive with transcripts, there is no free option that handles sender attribution, timestamps, and batch processing in one step.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I transcribe a whole WhatsApp chat at once?
&lt;/h3&gt;

&lt;p&gt;Yes, but not with WhatsApp's built-in feature — that transcribes one voice note at a time and has no export. To batch-transcribe an entire chat, you export the conversation from WhatsApp as a ZIP file (using the "Including Media" option, which includes the voice note audio files), then upload the ZIP to chattopdf.app and select the Premium+Voice tier. ChatToPDF processes all the voice notes in the export in a single pass and returns one PDF with the transcripts embedded inline at their correct positions in the conversation. The &lt;a href="https://chattopdf.app/blog/whatsapp-voice-to-text" rel="noopener noreferrer"&gt;WhatsApp voice to text guide&lt;/a&gt; walks through this workflow step by step.&lt;/p&gt;

&lt;h3&gt;
  
  
  Which WhatsApp transcription option is most accurate?
&lt;/h3&gt;

&lt;p&gt;Accuracy depends on audio quality more than tool choice. For clear recordings — indoors, phone near the speaker, minimal background noise — modern automated transcription engines including Deepgram Nova-3 (used by ChatToPDF) perform well across supported languages. For noisy recordings — a busy street, a moving vehicle, wind — accuracy degrades for all automated tools, and a human transcriber may be more reliable. WhatsApp's on-device transcription uses a different underlying model; I cannot benchmark it precisely because the model is not publicly documented. The honest answer is: test with your own audio in your specific language and noise conditions before committing to any approach for something important. ChatToPDF's free upload preview lets you assess quality before paying.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do any tools keep the sender names and timestamps alongside the transcript?
&lt;/h3&gt;

&lt;p&gt;Among the automated options in this comparison, only ChatToPDF preserves sender names and timestamps as part of the transcript output. WhatsApp's built-in transcription shows the transcript as an overlay on the voice note bubble — you can see the sender's name in context in the chat UI, but it is not part of the transcript text itself and does not appear in any export. General transcription apps process a standalone audio file with no knowledge of who sent it or when — they return a transcript of the spoken content only. For legal, business, or archive use cases where attribution is important, ChatToPDF's approach of embedding the transcript at the exact position in the conversation — with the sender name and timestamp that WhatsApp's own export file records — is the only category that delivers this as part of the output document.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is my data private when I use a WhatsApp transcription tool?
&lt;/h3&gt;

&lt;p&gt;Privacy practices differ across the categories. WhatsApp's built-in transcription processes audio on your device and audio does not leave the phone — this is the highest-privacy option. General transcription apps typically send audio to cloud servers for processing; data-retention policies vary by vendor, so check each one's current privacy documentation before uploading sensitive conversations. ChatToPDF sends your ZIP to its servers for processing and automatically deletes uploaded files after 7 days. No audio or chat data is shared with third parties. If your voice notes contain sensitive personal or business information — which they often do — review the privacy policy of any service before uploading, regardless of which tool you choose.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;The best WhatsApp transcription tool depends on the job: built-in for one note quickly, general apps for standalone audio files, ChatToPDF for a whole exported chat as a document&lt;/li&gt;
&lt;li&gt;WhatsApp's built-in transcription is free, on-device, and private — but transcribes one message at a time with no export capability&lt;/li&gt;
&lt;li&gt;General transcription apps handle standalone audio files well but have no knowledge of WhatsApp chat structure, sender names, or timestamps&lt;/li&gt;
&lt;li&gt;ChatToPDF Premium+Voice ($49 per chat) batch-processes the entire exported ZIP and embeds transcripts inline in the PDF with sender attribution and timestamps preserved&lt;/li&gt;
&lt;li&gt;The transcription engine is Deepgram Nova-3: 17 high-accuracy languages, 30+ auto-detected; accuracy depends mainly on audio quality, not tool choice&lt;/li&gt;
&lt;li&gt;No transcription tool performs perfectly on noisy recordings — test with your own audio before committing to anything important&lt;/li&gt;
&lt;li&gt;For the whole-chat workflow step by step, see the WhatsApp voice to text guide; for the technical accuracy picture, see the &lt;a href="https://chattopdf.app/blog/transcribe-whatsapp-audio" rel="noopener noreferrer"&gt;transcribe WhatsApp audio pillar&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;If your goal is a complete, searchable PDF of the whole conversation — transcripts included — the &lt;a href="https://chattopdf.app/blog/whatsapp-to-pdf" rel="noopener noreferrer"&gt;WhatsApp to PDF guide&lt;/a&gt; explains the full process from export ZIP to finished document.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>whatsapp</category>
      <category>ai</category>
      <category>productivity</category>
      <category>tools</category>
    </item>
    <item>
      <title>WhatsApp Voice to Text: Turn Voice Notes into Readable Text</title>
      <dc:creator>ChatToPDF</dc:creator>
      <pubDate>Fri, 29 May 2026 18:59:37 +0000</pubDate>
      <link>https://dev.to/chattopdf/whatsapp-voice-to-text-turn-voice-notes-into-readable-text-4cg4</link>
      <guid>https://dev.to/chattopdf/whatsapp-voice-to-text-turn-voice-notes-into-readable-text-4cg4</guid>
      <description>&lt;p&gt;The fastest way to do WhatsApp voice to text conversion at scale is to export the entire chat as a ZIP with "Including Media" and process it in one batch. Upload the ZIP file to &lt;a href="https://chattopdf.app" rel="noopener noreferrer"&gt;chattopdf.app&lt;/a&gt; and choose the $49 Premium+Voice tier at checkout. Every voice note in the conversation becomes an inline transcript in the PDF — attributed to the sender, placed at the correct timestamp, readable alongside the surrounding text messages.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; WhatsApp voice notes can be converted to readable text by exporting your chat as a ZIP (Including Media), uploading it to chattopdf.app, and selecting the $49 Premium+Voice tier. The output is a PDF where every voice note is transcribed inline at its position in the chat, with the sender name and timestamp preserved. Works on both iPhone and Android exports. 17 languages at high accuracy, 30+ more auto-detected. No separate transcription app needed — everything comes out as one searchable document.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsz628dlsizv2anq0q91v.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsz628dlsizv2anq0q91v.webp" alt="WhatsApp voice note bubble with arrow to inline text transcript in a PDF, showing sender name and timestamp" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to convert WhatsApp voice notes to text
&lt;/h2&gt;

&lt;p&gt;The entire workflow runs in five steps, from opening WhatsApp to receiving a PDF with every voice note transcribed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Export the chat with Including Media&lt;/strong&gt; — Open WhatsApp and navigate to the chat that contains the voice notes. On iPhone: tap the contact or group name at the top of the chat → scroll to the bottom of the info screen → tap Export Chat → pick &lt;strong&gt;Including Media&lt;/strong&gt;. On Android: tap the three-dot menu in the top-right corner → More → Export Chat → Include Media. The "Including Media" option is the critical one — it puts the &lt;code&gt;.opus&lt;/code&gt; voice note files inside the ZIP alongside the text. Without it, the ZIP contains only the &lt;code&gt;_chat.txt&lt;/code&gt; file and there is nothing to transcribe. WhatsApp's official &lt;a href="https://faq.whatsapp.com/1180414079177245/" rel="noopener noreferrer"&gt;export chat FAQ&lt;/a&gt; explains the export sheet in detail.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgduwd24iwyc1kln9pquc.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgduwd24iwyc1kln9pquc.webp" alt="WhatsApp export settings screen highlighting the Including Media option required to include voice note audio files in the ZIP" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Save the ZIP to your device&lt;/strong&gt; — After selecting Including Media, WhatsApp generates a ZIP file and opens the share sheet. On iPhone, tap &lt;strong&gt;Save to Files&lt;/strong&gt; and choose a folder (On My iPhone → Downloads is reliable). On Android, share the ZIP to your file manager, Google Drive, or email it to yourself. The ZIP is now a real file on your device, ready to upload.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Upload the ZIP to chattopdf.app&lt;/strong&gt; — Open &lt;a href="https://chattopdf.app" rel="noopener noreferrer"&gt;chattopdf.app&lt;/a&gt; in a browser on your phone or desktop. Drag and drop the ZIP onto the upload area, or tap the area to open a file picker and select the ZIP you just saved. The uploader validates the file and shows a preview: total messages, number of voice notes detected, and an estimated output size. This preview is free — no payment yet.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqkjxj9u3pelrt7wt41ks.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqkjxj9u3pelrt7wt41ks.webp" alt="Upload preview panel showing WhatsApp voice notes detected count and Premium+Voice price before payment" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Select the Premium+Voice tier ($49 per chat)&lt;/strong&gt; — The pricing step shows five tiers. Pick &lt;strong&gt;Premium+Voice at $49 per chat&lt;/strong&gt;. This tier enables Deepgram Nova-3 transcription on every voice note in the ZIP. The other tiers ($7, $14, $29) either omit voice notes entirely or include them only as audio-file placeholders rather than transcribed text. The $49 tier is the one that converts voice to readable text. Pay by card — one-time, no subscription, no recurring charge.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Download the PDF with inline transcripts&lt;/strong&gt; — After payment, chattopdf processes the chat and emails the PDF to the address you provided. Typical processing time for a chat with up to a few dozen voice notes is under two minutes. The PDF arrives with every voice note transcribed at its correct position in the conversation — sender name, timestamp, and transcript text all preserved. Open it, search it, print it, or file it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm43egyxix3hrzysqnqj1.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm43egyxix3hrzysqnqj1.webp" alt="Five-step workflow: WhatsApp export with media, ZIP upload, voice note preview, Premium+Voice tier, PDF download" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://chattopdf.app/upload" rel="noopener noreferrer"&gt;Convert your WhatsApp chat to PDF&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What the output looks like
&lt;/h2&gt;

&lt;p&gt;The key thing about the chattopdf output is that the voice note transcripts are inline in the conversation — not in a separate appendix, not in a separate file, not numbered separately. They appear exactly where the voice notes appeared in the chat, in chronological order, alongside the text messages.&lt;/p&gt;

&lt;p&gt;Here is what a section of the resulting PDF looks like with a mixed text-and-voice conversation:&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Emma&lt;/strong&gt; · 09:14&lt;br&gt;&lt;br&gt;
Hey, are you joining the call at 10?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Luca&lt;/strong&gt; · 09:15 · &lt;em&gt;[voice note — 0:12 — transcript]&lt;/em&gt;&lt;br&gt;&lt;br&gt;
"Yeah, I'll be there. Just finishing up the slides. Five more minutes."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Emma&lt;/strong&gt; · 09:16&lt;br&gt;&lt;br&gt;
Perfect, no rush.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Luca&lt;/strong&gt; · 09:22 · &lt;em&gt;[voice note — 0:28 — transcript]&lt;/em&gt;&lt;br&gt;&lt;br&gt;
"Actually, can we push it to 10:15? I need to send something to the client first and I want to attach the updated version."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Emma&lt;/strong&gt; · 09:23&lt;br&gt;&lt;br&gt;
Sure, I'll let the others know.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4o7lf758yd84r3fm3k5k.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4o7lf758yd84r3fm3k5k.webp" alt="WhatsApp voice to text PDF sample with three voice notes transcribed inline showing sender name and timestamp" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Each transcript line carries the sender name and the timestamp from the original chat. If a voice note is in a language other than English — Spanish, Portuguese, Hindi, Arabic, French, and others — it is transcribed in that language. The transcript text is the spoken content as written text. You can select it, copy it, and search the PDF for keywords that appeared in any voice note.&lt;/p&gt;

&lt;p&gt;The voice notes that were sound-only in WhatsApp become readable, searchable, archivable text. The surrounding context — the text messages before and after each voice note — remains intact. The full conversation reads as a single document.&lt;/p&gt;

&lt;h2&gt;
  
  
  When you would want this
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Legal and evidence use cases.&lt;/strong&gt; If a WhatsApp conversation is relevant to a dispute, a complaint, or a court filing, having the voice notes transcribed as part of the same document that shows the text messages is useful. A judge, solicitor, or HR officer can read the entire exchange — including what was said verbally — without needing to play audio. For more on formatting exported chats for legal purposes, the &lt;a href="https://chattopdf.app/blog/whatsapp-to-pdf" rel="noopener noreferrer"&gt;WhatsApp to PDF guide&lt;/a&gt; covers the formal styling options.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Business records and compliance.&lt;/strong&gt; Sales teams, support teams, and freelancers who conduct substantive conversations over WhatsApp — approvals, agreements, instructions, complaints — often need a readable record of those conversations. Voice notes in a business context frequently contain the actual decision or the actual instruction. Having those as readable text alongside the surrounding messages means the record is complete and searchable, not partially mute.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Personal and family archives.&lt;/strong&gt; Long family group chats accumulate years of voice notes from relatives — updates, stories, birthday wishes, directions, check-ins. Many of those voice notes are from people whose voices you want to remember. Transcribing them into a PDF creates a readable archive that can be searched, printed, and kept alongside photos and written messages. The voice notes do not stay as audio forever — device storage gets cleared, WhatsApp accounts get deleted, phones change hands. A PDF with the transcripts is a more durable format.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Accessibility.&lt;/strong&gt; Voice notes are by nature inaccessible to people who are deaf or hard of hearing, or to people who cannot play audio in the environment they are in (commuting, an open-plan office, a meeting). A transcript makes the content of a voice note available regardless of hearing ability or audio environment.&lt;/p&gt;

&lt;p&gt;In all of these cases, the value of the chattopdf approach compared to a standalone transcription app is that the transcript lands in context — at the right position in the conversation, attributed to the right speaker, readable alongside the surrounding text. You do not have to manually correlate a list of transcripts against a separate exported chat.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffd3erip5pil4m7jboj4j.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffd3erip5pil4m7jboj4j.webp" alt="Four use cases for WhatsApp voice to text conversion: legal evidence, business records, personal archive, and accessibility" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://chattopdf.app/upload" rel="noopener noreferrer"&gt;Convert your WhatsApp chat to PDF&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Accuracy and languages
&lt;/h2&gt;

&lt;p&gt;The voice transcription uses Deepgram Nova-3, which in my own testing handles clear recordings in supported languages well. In quiet conditions — indoors, phone held near the mouth, no background noise — the transcripts read cleanly with very few errors. In noisy conditions — a moving car, a café, wind — accuracy degrades noticeably and the occasional word or phrase needs a second read. The &lt;a href="https://chattopdf.app/blog/transcribe-whatsapp-audio" rel="noopener noreferrer"&gt;transcribe WhatsApp audio guide&lt;/a&gt; covers the accuracy picture in detail, including how background noise affects results and what the word error rate looks like across recording conditions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx8z4slmjatbhk4hh27nc.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx8z4slmjatbhk4hh27nc.webp" alt="WhatsApp voice to text language support: 17 high-accuracy languages including English, Spanish, Arabic and Hindi" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The 17 languages where Deepgram Nova-3 performs at high accuracy include English, Spanish, Portuguese, French, German, Italian, Arabic, Hindi, Indonesian, Turkish, Russian, Dutch, Japanese, Korean, Mandarin, Vietnamese, and Thai. If a voice note is in any of these languages, the transcript is typically clean enough to be useful without editing. For languages beyond this set, the engine falls back to a broader detection model — accuracy varies and some languages may not transcribe usefully. If your chat contains voice notes in a language that is not on that list, I would suggest testing with a single short export before relying on the transcription for anything important.&lt;/p&gt;

&lt;p&gt;WhatsApp voice notes are encoded as Opus audio at 16 kHz. That is a narrow frequency range optimised for speech intelligibility, which means the transcription engine receives all the information it needs for speech recognition. The audio format itself is not the limiting factor. The &lt;a href="https://chattopdf.app/blog/whatsapp-audio-format" rel="noopener noreferrer"&gt;WhatsApp audio format guide&lt;/a&gt; explains the Opus codec in more detail if you are curious about the technical side.&lt;/p&gt;

&lt;p&gt;For language detection to work correctly, the ZIP must include the voice note files — which is why the "Including Media" export option matters. Without the audio files in the ZIP, there is nothing to transcribe regardless of tier.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;To get WhatsApp voice notes as readable text, export the chat with &lt;strong&gt;Including Media&lt;/strong&gt; — this puts the &lt;code&gt;.opus&lt;/code&gt; audio files inside the ZIP, which is required for transcription.&lt;/li&gt;
&lt;li&gt;Upload the ZIP to chattopdf.app and choose the &lt;strong&gt;$49 Premium+Voice per chat&lt;/strong&gt; tier. The other tiers do not transcribe voice notes to text.&lt;/li&gt;
&lt;li&gt;The output is a PDF where every voice note appears as an inline transcript at its position in the conversation, with sender name and timestamp — not as a separate list or file.&lt;/li&gt;
&lt;li&gt;17 languages at high accuracy, 30+ auto-detected. Background noise is the main accuracy factor, not the language or the Opus audio format.&lt;/li&gt;
&lt;li&gt;Free alternatives exist (WhatsApp's in-app transcription, Otter.ai, Google Recorder) but require processing voice notes one at a time; ChatToPDF batches the whole chat in a single pass.&lt;/li&gt;
&lt;li&gt;Voice calls are not in the chat export and cannot be transcribed. Only voice note messages (the audio clips sent in the chat) are included.&lt;/li&gt;
&lt;li&gt;The &lt;a href="https://chattopdf.app/blog/transcribe-whatsapp-audio" rel="noopener noreferrer"&gt;transcribe WhatsApp audio pillar&lt;/a&gt; covers the full technical detail — accuracy by noise level, the Deepgram Nova-3 pipeline, and what the WER looks like across recording conditions.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Is there a free way to turn WhatsApp voice notes into text?
&lt;/h3&gt;

&lt;p&gt;Yes — several free options exist. WhatsApp itself has a built-in live transcription feature on some Android versions and iPhones running iOS 17 or later: hold the microphone icon in the voice note player and the app shows a transcript. This works in-app for individual messages and is free. Standalone transcription apps like Otter.ai (limited free tier), Google's Recorder app (Pixel-only, free), and Apple's Voice Memos transcription (US English only, iOS) can also transcribe audio files. The limitation with all of these approaches is that you have to transcribe one voice note at a time, manually, and then correlate the output with the surrounding chat text yourself. ChatToPDF charges $49 for the Premium+Voice tier because it processes the entire chat — potentially dozens of voice notes — in a single batch and delivers the transcripts inline at the correct position in the conversation, attributed to the correct sender, as a single searchable PDF. Whether that is worth it depends on how many voice notes you have and what you need the output for.&lt;/p&gt;

&lt;h3&gt;
  
  
  Does this work on both iPhone and Android exports?
&lt;/h3&gt;

&lt;p&gt;Yes. The export workflow is slightly different on each platform — on iPhone you reach the Export Chat option via the contact info screen (tap the name at the top of the chat); on Android it is under the three-dot menu → More → Export Chat. Both platforms produce a ZIP file containing a &lt;code&gt;_chat.txt&lt;/code&gt; and the voice note &lt;code&gt;.opus&lt;/code&gt; files when you export with Including Media. ChatToPDF accepts ZIPs from both platforms and processes them identically. The underlying voice note format is the same on both (Opus codec, &lt;code&gt;.opus&lt;/code&gt; extension), so there is no quality or accuracy difference based on which phone the export came from.&lt;/p&gt;

&lt;h3&gt;
  
  
  What languages are supported for voice note transcription?
&lt;/h3&gt;

&lt;p&gt;17 languages at high accuracy: English, Spanish, Portuguese, French, German, Italian, Arabic, Hindi, Indonesian, Turkish, Russian, Dutch, Japanese, Korean, Mandarin, Vietnamese, and Thai. Beyond these 17, Deepgram Nova-3 auto-detects and attempts transcription for 30+ additional languages, though accuracy varies and some may not produce useful output. Mixed-language voice notes — Hinglish (Hindi + English), code-switching in Arabic dialects, Portuguese–Spanish mixing — are handled in a single pass by Nova-3. The transcript is in the language(s) spoken; there is no translation step. For the full language table with notes on dialect handling, see the &lt;a href="https://chattopdf.app/blog/transcribe-whatsapp-audio" rel="noopener noreferrer"&gt;transcribe WhatsApp audio pillar&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do WhatsApp voice calls get transcribed too?
&lt;/h3&gt;

&lt;p&gt;No. WhatsApp voice calls are not recorded or stored in the chat export. The ZIP file that WhatsApp generates contains only messages that appeared in the chat window — voice notes (the short recorded audio clips you send as messages), photos, documents, and the text conversation. A phone call or video call made through WhatsApp does not appear in the chat export because it was a live call, not a stored message. Only voice notes — the microphone icon messages in the conversation — are transcribed.&lt;/p&gt;

&lt;h3&gt;
  
  
  How long does the transcription take?
&lt;/h3&gt;

&lt;p&gt;For a typical chat with up to a few dozen voice notes, the full process — upload, transcription, PDF generation, email delivery — usually completes in under two minutes after payment. Larger chats with many voice notes or unusually long individual recordings (several minutes each) take longer; in my experience a chat with 50+ voice notes totalling an hour of audio can take five to ten minutes. There is no hard limit on audio duration at the Premium+Voice tier (up to 8 hours of audio per chat). You receive the PDF by email once it is ready, so you do not have to stay on the page.&lt;/p&gt;

</description>
      <category>whatsapp</category>
      <category>ai</category>
      <category>productivity</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>WhatsApp to PDF Converter Online Free: What Actually Works</title>
      <dc:creator>ChatToPDF</dc:creator>
      <pubDate>Fri, 29 May 2026 18:53:45 +0000</pubDate>
      <link>https://dev.to/chattopdf/whatsapp-to-pdf-converter-online-free-what-actually-works-3b4g</link>
      <guid>https://dev.to/chattopdf/whatsapp-to-pdf-converter-online-free-what-actually-works-3b4g</guid>
      <description>&lt;p&gt;Yes, there are genuinely free ways to get a WhatsApp chat into PDF — WhatsApp's built-in export plus your phone's print-to-PDF works at no cost for small chats. But a fully formatted converter that keeps sender names, timestamps, and inline media across a long chat is a paid tool. ChatToPDF's preview is free; conversion starts at $7.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; The whatsapp to pdf converter online free options that genuinely exist: WhatsApp's built-in Export Chat + your phone's print-to-PDF (free, works for short chats, breaks on long ones), generic free online tools (typically file-size capped, no media, often watermarked), and ChatToPDF's free preview (see formatting + count + price before paying). A properly formatted conversion — sender attribution, timestamps, inline media, no truncation — starts at $7 on ChatToPDF. No subscription; one-time payment per chat.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcmanyygshgx29iuyieiq.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcmanyygshgx29iuyieiq.webp" alt="WhatsApp export ZIP beside a free-vs-paid split: phone print-to-PDF plain text left, ChatToPDF sender-formatted PDF right" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What you can do for free
&lt;/h2&gt;

&lt;p&gt;Three genuinely free options exist for getting a WhatsApp chat into PDF format. None of them are a dedicated online whatsapp to pdf converter online free with full formatting — but they are real, zero-cost paths.&lt;/p&gt;

&lt;h3&gt;
  
  
  Option 1: WhatsApp's built-in Export Chat + print-to-PDF
&lt;/h3&gt;

&lt;p&gt;WhatsApp includes an Export Chat feature on both iPhone and Android. You export the chat as a &lt;code&gt;.txt&lt;/code&gt; file (or a &lt;code&gt;.zip&lt;/code&gt; with media), then open that text file on your phone and use the built-in print-to-PDF function. This costs nothing and requires no third-party tool.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Export the chat from WhatsApp&lt;/strong&gt; — Open the chat you want to save. On &lt;strong&gt;iPhone&lt;/strong&gt;: tap the contact or group name at the top → scroll down to Export Chat → choose Without Media or Including Media. WhatsApp creates a &lt;code&gt;.txt&lt;/code&gt; or &lt;code&gt;.zip&lt;/code&gt; file; save it to Files. On &lt;strong&gt;Android&lt;/strong&gt;: tap the three-dot menu → More → Export Chat → pick your option → save to Files or Google Drive.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Open the exported .txt file&lt;/strong&gt; — Locate the &lt;code&gt;.txt&lt;/code&gt; file in your Files app (or Google Files on Android). Tap to open it — it will open in a basic text viewer or your default notes app. The raw format is readable but not formatted: you will see timestamps and sender names as plain text.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fomlrvro2kq5bm3k6xcvb.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fomlrvro2kq5bm3k6xcvb.webp" alt="Step-by-step guide showing how to use WhatsApp Export Chat then print-to-PDF on iPhone and Android phones" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Print to PDF on iPhone&lt;/strong&gt; — With the &lt;code&gt;.txt&lt;/code&gt; file open, tap the Share icon → Print. On the print preview, use the two-finger pinch-out gesture on the preview thumbnail. This opens the preview as a full PDF. Tap Share and save to Files as a PDF.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Print to PDF on Android&lt;/strong&gt; — With the &lt;code&gt;.txt&lt;/code&gt; open, tap the three-dot menu → Print. In the printer selector, choose "Save as PDF" (built into Android). Choose a save location and tap Save.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The honest trade-off:&lt;/strong&gt; this free method works, but the result is a plain text dump — no bubble formatting, no sender highlighting, no visual separation between messages. And it breaks on longer chats: WhatsApp's &lt;code&gt;.txt&lt;/code&gt; export truncates at around 40,000 messages, and many text viewers struggle to open and print very large files smoothly. Images from the ZIP do not appear in the printed text file at all; they are separate files in the archive that the &lt;code&gt;.txt&lt;/code&gt; print path ignores entirely.&lt;/p&gt;

&lt;p&gt;For a short chat you want a quick record of, the built-in print-to-PDF route is a perfectly reasonable free option. For anything longer, more structured, or intended for business or legal use, its limits matter.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz30yya3z3ehtaol35tsu.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz30yya3z3ehtaol35tsu.webp" alt="Where WhatsApp print-to-PDF breaks down: no inline images, plain text sender names, impractical beyond a few hundred messages" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Option 2: Generic free online converters
&lt;/h3&gt;

&lt;p&gt;A number of general-purpose online tools accept uploaded files and attempt some conversion. These are not WhatsApp-specific; they treat the &lt;code&gt;.txt&lt;/code&gt; as plain text and reflow it into a PDF without interpreting WhatsApp's chat structure.&lt;/p&gt;

&lt;p&gt;In my experience testing tools of this category, the typical limitations include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;File size caps&lt;/strong&gt; — usually a few megabytes, which excludes chats with significant message history&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No sender attribution&lt;/strong&gt; — the output renders raw text without distinguishing senders visually&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No media&lt;/strong&gt; — even if you upload the full &lt;code&gt;.zip&lt;/code&gt;, photos and voice notes are not processed or embedded&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Watermarks&lt;/strong&gt; — many free tiers stamp a watermark on the output PDF&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Unknown data retention&lt;/strong&gt; — the privacy policies of generic free online tools vary widely; many do not publish a retention period for uploaded files&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I am not going to name specific tools here and invent performance comparisons I have not independently verified — that would not be honest. What I can say from the category pattern is that a generic free online file converter is not built for WhatsApp's format and will not produce sender-attributed, timestamped output.&lt;/p&gt;

&lt;h3&gt;
  
  
  Option 3: ChatToPDF's free preview
&lt;/h3&gt;

&lt;p&gt;This one is worth being precise about, because I have seen it described imprecisely elsewhere: the preview at ChatToPDF is free, but the download is not.&lt;/p&gt;

&lt;p&gt;When you upload your WhatsApp export to &lt;a href="https://chattopdf.app" rel="noopener noreferrer"&gt;chattopdf.app&lt;/a&gt;, the tool immediately parses the file and shows you — at no cost — the total message count, the detected sender names, the date range, and the formatted price for each tier. You also see a rendered snippet of the first few messages in the PDF style you choose. Nothing is charged at this stage. No card details are entered.&lt;/p&gt;

&lt;p&gt;That free preview answers the question "will this work for my chat?" before you commit to paying. It is also the step where you can confirm that the encoding parsed correctly — useful for non-Latin scripts or emoji-heavy chats. The &lt;a href="https://chattopdf.app/blog/whatsapp-to-pdf" rel="noopener noreferrer"&gt;WhatsApp to PDF guide&lt;/a&gt; has more on what the parser handles.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://chattopdf.app/upload" rel="noopener noreferrer"&gt;Convert your WhatsApp chat to PDF&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Where free runs out (and paid is worth it)
&lt;/h2&gt;

&lt;p&gt;The honest answer to "is there a free whatsapp to pdf converter online?" is: for a short, text-only chat where you just need a readable record, the built-in print-to-PDF method is free and adequate. But several common needs push past what free options can deliver.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9a3j34j9cw68ngslnre4.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9a3j34j9cw68ngslnre4.webp" alt="WhatsApp to PDF options: phone print-to-PDF, free online tools, ChatToPDF paid — cost, media and formatting compared" width="" height=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Long chats.&lt;/strong&gt; The print-to-PDF method works reasonably on a few hundred messages. At several thousand messages — a multi-year group chat, for instance — the plain &lt;code&gt;.txt&lt;/code&gt; file becomes unwieldy to print, and the output PDF has no structure to help you navigate it. ChatToPDF's $7 Basic tier handles up to 5,000 messages with full sender attribution and timestamps; the $29 Premium tier removes the cap entirely.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Inline media.&lt;/strong&gt; If your chat ZIP contains photos, the print-to-PDF approach produces nothing for those photos — they are not referenced in the &lt;code&gt;.txt&lt;/code&gt; at all in a way a text viewer renders. On the $14 Standard tier and above, ChatToPDF embeds each photo at its exact position in the conversation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sender attribution with visual formatting.&lt;/strong&gt; The free print-to-PDF output is a wall of text with sender names embedded as part of each line. A properly formatted PDF with sender names in bold, timestamps separated, and messages visually grouped by sender looks quite different and is considerably easier to read. All ChatToPDF tiers produce that formatting.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Professional, legal, or business use.&lt;/strong&gt; A plain &lt;code&gt;.txt&lt;/code&gt; printout would not stand up well as a business record or legal exhibit. ChatToPDF's Formal style (available at all tiers) produces numbered entries with timestamps, consistent sender attribution, and a document header — the kind of output referenced in the &lt;a href="https://chattopdf.app/blog/whatsapp-evidence-court-pdf" rel="noopener noreferrer"&gt;WhatsApp evidence court PDF guide&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;XLSX and CSV output.&lt;/strong&gt; No free option produces a spreadsheet from a WhatsApp chat. ChatToPDF generates a row-per-message XLSX and CSV at the $29 Premium tier and above — useful for any analysis or record-keeping that requires tabular data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Voice note transcription.&lt;/strong&gt; The free methods produce nothing for voice note audio. ChatToPDF's $49 Premium+Voice tier transcribes each &lt;code&gt;.opus&lt;/code&gt; file inline using Deepgram Nova-3 with 17 high-accuracy languages.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://chattopdf.app/blog/whatsapp-to-pdf-converter" rel="noopener noreferrer"&gt;WhatsApp to PDF converter guide&lt;/a&gt; covers the full tier comparison — formats, message caps, and output types — in detail. This page is focused on the free question specifically.&lt;/p&gt;

&lt;h2&gt;
  
  
  How ChatToPDF's free preview works
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffoo44y42vljlyde4is6x.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffoo44y42vljlyde4is6x.webp" alt="ChatToPDF free preview panel showing message count 1248, senders Maria and Sam, date range, and price before any payment" width="" height=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When you drop your chat export onto &lt;a href="https://chattopdf.app" rel="noopener noreferrer"&gt;chattopdf.app&lt;/a&gt;, this is what happens before any payment:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The file is validated — confirms it is a genuine WhatsApp export, not a random &lt;code&gt;.zip&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;The parser reads the full export and counts messages, detects senders, and identifies the date range&lt;/li&gt;
&lt;li&gt;A preview is shown to you: message count, sender names, date range, images and voice notes found&lt;/li&gt;
&lt;li&gt;The price for each tier is displayed based on your actual message count&lt;/li&gt;
&lt;li&gt;A rendered snippet of the first messages appears in the PDF style you have selected&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Only after you have seen all of that and chosen a tier does a payment screen appear.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Free preview&lt;/strong&gt; — ChatToPDF's free preview is the stage after upload and before payment where you see your chat's statistics (message count, senders, date range, media found) and the formatted price for each tier. No payment information is entered during this stage. The preview costs nothing regardless of whether you proceed to pay.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Here is how the main options compare:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;WhatsApp to PDF converter options — free vs paid at a glance&lt;/em&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Method&lt;/th&gt;
&lt;th&gt;Cost&lt;/th&gt;
&lt;th&gt;Message limit&lt;/th&gt;
&lt;th&gt;Media inline&lt;/th&gt;
&lt;th&gt;Sender formatting&lt;/th&gt;
&lt;th&gt;Privacy / retention&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;WhatsApp print-to-PDF&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;td&gt;Practical limit ~few hundred before unwieldy&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Plain text, no visual formatting&lt;/td&gt;
&lt;td&gt;No upload; stays on your device&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Generic free online tools&lt;/td&gt;
&lt;td&gt;Free (often watermarked)&lt;/td&gt;
&lt;td&gt;Typically a few MB file cap&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;None — raw text reflow&lt;/td&gt;
&lt;td&gt;Varies; most do not publish a retention policy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ChatToPDF (paid, from $7)&lt;/td&gt;
&lt;td&gt;$7–$99 one-time per chat&lt;/td&gt;
&lt;td&gt;5,000 (Basic) to no cap ($29+)&lt;/td&gt;
&lt;td&gt;Yes — from $14 Standard&lt;/td&gt;
&lt;td&gt;Full — sender names bold, timestamps, styled bubbles&lt;/td&gt;
&lt;td&gt;7-day auto-deletion; TLS + AES-256&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Privacy of free online converters
&lt;/h2&gt;

&lt;p&gt;Before uploading a WhatsApp chat to any online tool — free or paid — it is worth understanding what happens to the file after you upload it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftsyxejq035pp4glek6d8.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftsyxejq035pp4glek6d8.webp" alt="Privacy diagram: free online converter unclear retention on the left, ChatToPDF 7-day auto-deletion AES-256 on the right" width="" height=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;WhatsApp chats contain personal conversations: names, phone numbers, addresses, financial arrangements, relationship details. The privacy risk is not hypothetical.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Generic free online converters&lt;/strong&gt; typically do not publish a clear data retention policy. When I look at the terms of general-purpose file-conversion tools, "we may retain uploaded files for [X days]" is common, but some do not specify a period at all. Some free tools are supported by advertising, which raises the question of what data they collect alongside the file upload. I am not going to claim any specific tool does anything harmful — I have not audited them individually — but the absence of a clear, published retention policy is a genuine concern when uploading a personal conversation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ChatToPDF's policy&lt;/strong&gt; is specific and documented: both the source file and the output PDF are automatically deleted seven days after the job is created. The deletion is a scheduled automated job that runs against every record older than seven days — it applies to paid and unpaid jobs alike. The upload travels over TLS 1.3 and is stored with AES-256 encryption at rest on AWS S3. No person reads the chat content; the conversion is entirely automated. No account creation is required — the only personal information stored is the email address you provide for download delivery, which is also removed on day 7.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzlwro2791kxvd054rfjc.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzlwro2791kxvd054rfjc.webp" alt="Typical limits of free online WhatsApp to PDF converters: small file size cap, no media, no sender names, watermark on output" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For a chat that contains personal or sensitive information — and most WhatsApp chats do — the extra few dollars for a tool with a clear, auditable retention policy is a reasonable trade-off against a nominally free option whose data handling is opaque.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://chattopdf.app/upload" rel="noopener noreferrer"&gt;Convert your WhatsApp chat to PDF&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Is there a truly free WhatsApp to PDF converter?
&lt;/h3&gt;

&lt;p&gt;There is no online converter that produces a fully formatted, sender-attributed, media-inclusive WhatsApp PDF for free. WhatsApp's own built-in export combined with your phone's print-to-PDF function is genuinely free and produces a basic PDF — but the output is a plain text dump with no visual formatting, no inline images, and no clear sender distinction. ChatToPDF's preview (message count, sender names, price) is free; the conversion itself starts at $7.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I convert a WhatsApp chat to PDF for free on my phone?
&lt;/h3&gt;

&lt;p&gt;Export the chat from WhatsApp (iPhone: tap the contact name → Export Chat; Android: three-dot menu → More → Export Chat), save the &lt;code&gt;.txt&lt;/code&gt; file to your Files app, then open it and use your phone's print option — on iPhone pinch-out on the print preview thumbnail to get a "Save as PDF" option; on Android select "Save as PDF" from the printer selector. The result is a plain-text PDF of the chat content. Images from the ZIP are not included by this method.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why isn't the full ChatToPDF converter free?
&lt;/h3&gt;

&lt;p&gt;Running the parser that interprets WhatsApp's date-format variations and encoding edge cases, the PDF rendering engine that produces formatted, searchable output, and the server infrastructure that stores and processes the files all have real costs. The free preview (message count, senders, price, formatted snippet) is genuinely free because parsing and showing statistics is lightweight. Rendering and delivering the full PDF is not. The $7 Basic tier is the entry point; there is no subscription — it is one payment per chat.&lt;/p&gt;

&lt;h3&gt;
  
  
  Are free online converters safe for personal WhatsApp chats?
&lt;/h3&gt;

&lt;p&gt;The honest answer is: it depends on the tool, and many do not publish a clear retention policy. A WhatsApp chat typically contains names, phone numbers, and personal conversation content. Before uploading to any free online converter, I would check their privacy policy for a specific retention period and confirm they do not use uploaded content for advertising targeting. ChatToPDF auto-deletes both the source file and the output after 7 days; that policy is published and applies uniformly. The print-to-PDF method described above avoids uploading to any third party at all.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is the best free WhatsApp to PDF option for a short chat?
&lt;/h3&gt;

&lt;p&gt;For a short chat — up to a few hundred messages, no photos you need embedded — WhatsApp's own export + print-to-PDF is the best free option because it requires no third-party upload. For anything longer, with media, with formatting requirements, or with professional or legal needs, the $7 Basic tier at ChatToPDF is the cheapest paid option that produces properly formatted output. The free preview lets you confirm it parsed correctly before committing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;The only truly free WhatsApp-to-PDF path is WhatsApp's built-in Export Chat combined with your phone's print-to-PDF function — it works for short, text-only chats; the &lt;a href="https://chattopdf.app/blog/whatsapp-to-pdf" rel="noopener noreferrer"&gt;WhatsApp to PDF guide&lt;/a&gt; covers the full method.&lt;/li&gt;
&lt;li&gt;Generic free online converters have file-size caps, no sender formatting, no inline media, and often unclear privacy policies; they are not designed for WhatsApp's chat structure.&lt;/li&gt;
&lt;li&gt;ChatToPDF's preview is free: you see message count, senders, date range, formatted snippet, and the exact price before paying anything.&lt;/li&gt;
&lt;li&gt;Paid conversion starts at $7 (Basic, 5,000 messages); the $14 Standard tier adds inline images; the $29 Premium tier removes the message cap and adds XLSX + CSV.&lt;/li&gt;
&lt;li&gt;For a long chat, media-inclusive export, professional formatting, or legal use, the free methods fall short — paid is the realistic path.&lt;/li&gt;
&lt;li&gt;Any online tool that accepts personal WhatsApp chats should have a published, specific data retention policy; ChatToPDF auto-deletes source and output after 7 days.&lt;/li&gt;
&lt;li&gt;The print-to-PDF free method avoids uploading your chat to any third party at all — worth considering for highly sensitive conversations.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>whatsapp</category>
      <category>pdf</category>
      <category>productivity</category>
      <category>tools</category>
    </item>
    <item>
      <title>WhatsApp to PDF Converter: Formats, Tiers, and Privacy</title>
      <dc:creator>ChatToPDF</dc:creator>
      <pubDate>Fri, 29 May 2026 18:53:24 +0000</pubDate>
      <link>https://dev.to/chattopdf/whatsapp-to-pdf-converter-formats-tiers-and-privacy-1cdk</link>
      <guid>https://dev.to/chattopdf/whatsapp-to-pdf-converter-formats-tiers-and-privacy-1cdk</guid>
      <description>&lt;p&gt;A WhatsApp to PDF converter accepts the ZIP or TXT file that WhatsApp's built-in Export Chat menu produces and turns it into a formatted PDF with sender names, timestamps, and media inline. I built ChatToPDF to do exactly that: upload the export, see a free preview of message count and price, pick a tier ($7 and up), and download the PDF.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; ChatToPDF is a whatsapp to pdf converter that processes the export ZIP from your phone and outputs a formatted PDF with full sender attribution, timestamps, and — on higher tiers — inline media and voice transcripts. You preview the chat and the price for free before paying anything. Output formats are PDF, XLSX, and CSV (XLSX/CSV from $29). Five tiers from $7 Basic to $99 Power User. Source files are deleted automatically after 7 days.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flf72ormmhc1vc71o7b6f.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flf72ormmhc1vc71o7b6f.webp" alt="WhatsApp ZIP export file being converted to a formatted PDF showing sender names, timestamps, and an inline image" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How the converter works
&lt;/h2&gt;

&lt;p&gt;The WhatsApp to PDF converter runs entirely in the browser — nothing to install. The input is the file that WhatsApp's own Export Chat menu produces: either a &lt;code&gt;.txt&lt;/code&gt; for a text-only export, or a &lt;code&gt;.zip&lt;/code&gt; when you chose Including Media.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Export the chat from WhatsApp&lt;/strong&gt; — Open WhatsApp and navigate to the chat you want to convert. On iPhone: tap the contact or group name at the top → scroll to Export Chat near the bottom → choose Without Media (text only) or Including Media (text + photos + voice notes). On Android: tap the three-dot menu → More → Export Chat → pick your option. WhatsApp produces either a &lt;code&gt;.txt&lt;/code&gt; file (Without Media) or a &lt;code&gt;.zip&lt;/code&gt; archive (Including Media). Save it to your phone's Files app or iCloud Drive. The &lt;a href="https://chattopdf.app/blog/whatsapp-chat-export" rel="noopener noreferrer"&gt;WhatsApp chat export guide&lt;/a&gt; covers this step in detail for both platforms.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fly7kd7uz4cw3y2ifkm89.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fly7kd7uz4cw3y2ifkm89.webp" alt="iPhone and Android WhatsApp export paths side by side showing how to get the ZIP for the PDF converter" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Upload the ZIP or TXT to chattopdf.app&lt;/strong&gt; — Open &lt;a href="https://chattopdf.app" rel="noopener noreferrer"&gt;chattopdf.app&lt;/a&gt; in any browser — mobile or desktop. Drag and drop the &lt;code&gt;.zip&lt;/code&gt; or &lt;code&gt;.txt&lt;/code&gt; onto the upload zone, or tap to open a file picker. The converter validates the file immediately: it checks that the archive contains a &lt;code&gt;_chat.txt&lt;/code&gt; in the expected WhatsApp format before proceeding. Invalid files or non-WhatsApp archives are rejected at this stage.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Review the free preview — no payment yet&lt;/strong&gt; — After validation, the converter parses the export and shows you a free summary: total message count, detected senders, date range, and an itemised price based on the tier you hover over. You can also see a rendered snippet of the first few messages in your chosen PDF style. This is the step where you confirm the encoding parsed correctly — especially useful for Arabic, Hebrew, or emoji-heavy chats. No card details are entered at this point.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr72at934ov0c4nsfkdcm.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr72at934ov0c4nsfkdcm.webp" alt="WhatsApp to PDF converter free preview panel showing message count, senders detected, and price before payment" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Select a tier and pay once&lt;/strong&gt; — Pick the tier that matches what you need (see the table below). Payment is one-time per chat — no subscription, no recurring charge. After payment, the converter processes the full export and the download link appears on screen. An email with the same link is sent to the address you provide, so you don't lose access if the browser tab closes.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqkplpyc29q5doztyv9yf.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqkplpyc29q5doztyv9yf.webp" alt="Four-step WhatsApp to PDF converter workflow: export chat, upload ZIP, free preview, pick tier, download PDF bundle" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://chattopdf.app/upload" rel="noopener noreferrer"&gt;Convert your WhatsApp chat to PDF&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What formats it outputs
&lt;/h2&gt;

&lt;p&gt;Every conversion produces at minimum a formatted PDF. The $29 Premium tier and above also produce an XLSX spreadsheet and a CSV file as part of the same bundle.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb8egix41b2hghvgypo2q.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb8egix41b2hghvgypo2q.webp" alt="WhatsApp to PDF converter output bundle showing PDF, XLSX spreadsheet, and CSV file icons side by side" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;PDF&lt;/strong&gt; is the primary output. The PDF is fully searchable, properly paginated, and includes a header with the chat name and date range on every page. Each message is attributed to the sender with the timestamp. Four visual styles are available at all tiers: Green Bubble (closest to the WhatsApp app UI), Clean (recommended for legal and HR use), Formal (letterhead header, deposition-style layout), and Book (continuous prose, no bubbles). All four styles are available regardless of tier.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;XLSX&lt;/strong&gt; is a row-per-message spreadsheet with columns for timestamp, sender name, message body, and a media flag. It's useful for filtering by sender, sorting by date, or doing message-frequency analysis in Excel or Google Sheets.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CSV&lt;/strong&gt; is the same data as XLSX but in plain comma-separated format, compatible with any data tool that ingests tabular data.&lt;/p&gt;

&lt;p&gt;The tier table below shows which features each tier includes:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;WhatsApp to PDF converter tiers — features at a glance&lt;/em&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tier&lt;/th&gt;
&lt;th&gt;Price&lt;/th&gt;
&lt;th&gt;Message cap&lt;/th&gt;
&lt;th&gt;Images inline&lt;/th&gt;
&lt;th&gt;XLSX + CSV&lt;/th&gt;
&lt;th&gt;Voice transcription&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Basic&lt;/td&gt;
&lt;td&gt;$7&lt;/td&gt;
&lt;td&gt;5,000&lt;/td&gt;
&lt;td&gt;No — placeholders&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Standard&lt;/td&gt;
&lt;td&gt;$14&lt;/td&gt;
&lt;td&gt;25,000&lt;/td&gt;
&lt;td&gt;Yes — inline&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Premium&lt;/td&gt;
&lt;td&gt;$29&lt;/td&gt;
&lt;td&gt;No cap&lt;/td&gt;
&lt;td&gt;Yes — inline&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Premium+Voice&lt;/td&gt;
&lt;td&gt;$49&lt;/td&gt;
&lt;td&gt;No cap&lt;/td&gt;
&lt;td&gt;Yes — inline&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes — Deepgram Nova-3, up to 8 hrs audio&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Power User&lt;/td&gt;
&lt;td&gt;$99&lt;/td&gt;
&lt;td&gt;No cap&lt;/td&gt;
&lt;td&gt;Yes — inline&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes — uncapped, priority queue&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F86bqrza4mm8w6rjis6v8.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F86bqrza4mm8w6rjis6v8.webp" alt="Comparison table of five WhatsApp to PDF converter tiers from 7 dollars Basic to 99 dollars Power User with features per tier" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Voice transcription converts each &lt;code&gt;.opus&lt;/code&gt; voice note in the ZIP to readable inline text, placed at its exact position in the conversation. The $49 Premium+Voice tier covers up to 8 hours of audio per chat; the $99 Power User tier is uncapped and runs in the priority processing queue. Both use Deepgram Nova-3 — 17 high-accuracy languages plus 30+ auto-detected. The &lt;a href="https://chattopdf.app/blog/whatsapp-voice-to-text" rel="noopener noreferrer"&gt;WhatsApp voice to text guide&lt;/a&gt; covers the transcription step in detail, including accuracy by noise level and the full language list.&lt;/p&gt;

&lt;p&gt;The full story behind the converter — PDF styles, how the parser handles date formats and encoding edge cases, and a side-by-side comparison against alternative methods — is in the &lt;a href="https://chattopdf.app/blog/whatsapp-to-pdf" rel="noopener noreferrer"&gt;WhatsApp to PDF guide&lt;/a&gt;. If your first question is whether any free online option exists, the &lt;a href="https://chattopdf.app/blog/whatsapp-to-pdf-converter-online-free" rel="noopener noreferrer"&gt;WhatsApp to PDF converter online free guide&lt;/a&gt; covers exactly that.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://chattopdf.app/upload" rel="noopener noreferrer"&gt;Convert your WhatsApp chat to PDF&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Speed and file handling
&lt;/h2&gt;

&lt;p&gt;In my testing, a typical chat of a few hundred to a few thousand messages converts in well under a minute from upload to download-ready. The processing time scales with message count and media volume — a chat that includes dozens of large images or many voice notes takes longer than a text-only export of the same message count.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwzdd92nso5hc9v1055yf.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwzdd92nso5hc9v1055yf.webp" alt="WhatsApp to PDF converter processing states: uploading, parsing, rendering, ready with progress indicator" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The converter handles &lt;code&gt;.txt&lt;/code&gt; files (from the Without Media export) and &lt;code&gt;.zip&lt;/code&gt; files (from the Including Media export) without any conversion step on your end. Both are uploaded directly to the converter.&lt;/p&gt;

&lt;p&gt;For large chats — tens of thousands of messages, hundreds of megabytes of media — the converter processes the full export without truncating, at the $29 Premium tier and above. The $7 Basic tier caps at 5,000 messages and $14 Standard caps at 25,000; beyond those limits the output is truncated at the cap. If you have a long group chat and are unsure which tier you need, the free preview step shows the total message count before you commit to a tier.&lt;/p&gt;

&lt;p&gt;After the PDF renders, the download link appears on-screen and is sent to the email you provided. If you close the browser before the render completes, the email delivery means you don't need to re-upload.&lt;/p&gt;

&lt;h2&gt;
  
  
  Privacy and 7-day deletion
&lt;/h2&gt;

&lt;p&gt;When you're converting a personal conversation, knowing exactly what happens to the file matters. Here is the full picture.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4yx693o4vzlbzc7uvqx5.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4yx693o4vzlbzc7uvqx5.webp" alt="WhatsApp to PDF converter privacy diagram showing 7-day auto-deletion timeline and encryption at rest" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Upload:&lt;/strong&gt; The file travels over HTTPS (TLS 1.3) from your browser to the servers. It is never transmitted unencrypted.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Storage:&lt;/strong&gt; The uploaded file is stored on an AWS S3 bucket with AES-256 server-side encryption at rest. Access to raw files is restricted to the automated processing pipeline — no human download path exists through the normal interface.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Processing:&lt;/strong&gt; The conversion is entirely automated. No person reads your messages. The parser, the PDF renderer, and the Deepgram transcription pipeline (where applicable) run without human intervention. For voice transcription, Deepgram receives only the audio bytes of the &lt;code&gt;.opus&lt;/code&gt; files — not the chat text. Deepgram's API policy prohibits training on API-submitted data by default.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7-day deletion:&lt;/strong&gt; Both the source file (your upload) and the output PDF are automatically deleted seven days after the job is created. This is a scheduled job that runs against every record older than seven days — there are no manual exceptions, and the deletion applies to both paid and unpaid jobs equally.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;No account required.&lt;/strong&gt; You do not create a profile or log in to use the converter. The only personally identifiable information stored is the email address you provide for download delivery.&lt;/p&gt;

&lt;p&gt;For more on privacy, retention policy, and data handling, the &lt;a href="https://chattopdf.app/blog/whatsapp-to-pdf" rel="noopener noreferrer"&gt;WhatsApp to PDF guide&lt;/a&gt; includes the full privacy section with the step-by-step breakdown of what happens at each stage.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Is the WhatsApp to PDF converter free?
&lt;/h3&gt;

&lt;p&gt;The converter is free to try — you upload the chat and get a full preview of message count, senders, date range, and the formatted output before paying anything. Generating and downloading the actual PDF requires a one-time payment per chat: $7 Basic, $14 Standard, $29 Premium, $49 Premium+Voice, or $99 Power User. There is no subscription and no recurring charge.&lt;/p&gt;

&lt;h3&gt;
  
  
  Does it work for iPhone and Android exports?
&lt;/h3&gt;

&lt;p&gt;Yes. Both iPhone and Android WhatsApp export the same &lt;code&gt;_chat.txt&lt;/code&gt; format inside the ZIP (or as a standalone &lt;code&gt;.txt&lt;/code&gt;). The converter accepts files from either platform. The export path is slightly different on each — iPhone uses the contact name tap → Export Chat; Android uses the three-dot menu → More → Export Chat — but the resulting file is the same and processes identically. The &lt;a href="https://chattopdf.app/blog/whatsapp-chat-export" rel="noopener noreferrer"&gt;WhatsApp chat export guide&lt;/a&gt; covers both export paths with step-by-step instructions.&lt;/p&gt;

&lt;h3&gt;
  
  
  What does the PDF include?
&lt;/h3&gt;

&lt;p&gt;The PDF includes every message with the sender name, the timestamp, and the message text. On the $14 Standard tier and above, images and document thumbnails appear inline at the position they were sent. On the $49 Premium+Voice tier and above, voice notes are transcribed and appear as readable text at their correct position in the conversation. The PDF is fully searchable and paginated, with a header on each page identifying the chat and date range. Four visual styles are available at all tiers: Green Bubble, Clean, Formal, and Book.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is my chat data safe?
&lt;/h3&gt;

&lt;p&gt;Your file is encrypted in transit (TLS 1.3) and at rest (AES-256 on AWS S3). The conversion runs entirely on automated software — no person reads your messages. Both the source file and the output PDF are automatically deleted 7 days after the job is created. Deepgram receives only voice note audio bytes (not the chat text) if you use the $49+ voice transcription tier. No account creation is required.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do I need to download an app?
&lt;/h3&gt;

&lt;p&gt;No. The converter runs in any browser — mobile Safari, Chrome, Firefox, Samsung Internet. You access it at &lt;a href="https://chattopdf.app" rel="noopener noreferrer"&gt;chattopdf.app&lt;/a&gt; and upload the export file directly from your phone or computer. There is no desktop application, no browser extension, and no app to install. The output PDF is delivered on-screen and by email.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A WhatsApp to PDF converter turns the export ZIP from your phone into a formatted, sender-attributed PDF — no desktop app or USB cable needed.&lt;/li&gt;
&lt;li&gt;ChatToPDF previews message count, senders, and price for free before you pay anything.&lt;/li&gt;
&lt;li&gt;Five tiers from $7 to $99 per chat, one-time payment — no recurring billing.&lt;/li&gt;
&lt;li&gt;Output formats are PDF (all tiers), XLSX, and CSV ($29 Premium and above).&lt;/li&gt;
&lt;li&gt;Voice notes are transcribed inline on the $49 Premium+Voice tier using Deepgram Nova-3 — 17 high-accuracy languages, 30+ auto-detected.&lt;/li&gt;
&lt;li&gt;Source files and output PDFs are automatically deleted 7 days after conversion — no data kept beyond that.&lt;/li&gt;
&lt;li&gt;Works on both iPhone and Android exports; accepts &lt;code&gt;.zip&lt;/code&gt; and &lt;code&gt;.txt&lt;/code&gt; files directly from WhatsApp's Export Chat menu.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>whatsapp</category>
      <category>pdf</category>
      <category>productivity</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Transcribe WhatsApp Audio: Voice Notes to Text PDF (2026)</title>
      <dc:creator>ChatToPDF</dc:creator>
      <pubDate>Fri, 29 May 2026 18:45:18 +0000</pubDate>
      <link>https://dev.to/chattopdf/transcribe-whatsapp-audio-voice-notes-to-text-pdf-2026-1me</link>
      <guid>https://dev.to/chattopdf/transcribe-whatsapp-audio-voice-notes-to-text-pdf-2026-1me</guid>
      <description>&lt;p&gt;To transcribe WhatsApp audio, export your chat with media included, upload the ZIP to ChatToPDF, and select the $49 Premium+Voice tier. Every voice note becomes searchable text placed inline in conversation order — with the original sender's name and timestamp — using Deepgram Nova-3 across 17 high-accuracy languages including English, Spanish, Hindi, and Arabic.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; To transcribe WhatsApp audio, export your chat with media included, upload the ZIP to ChatToPDF, and pick a voice-enabled tier. The $29 Premium per chat conversion does not transcribe voice notes — it preserves them as placeholder references. The $49 Premium+Voice per chat conversion runs Deepgram Nova-3 across 17 high-accuracy languages (English, Spanish, Hindi, Arabic, and 14 more) and covers up to 8 hours of audio in one chat. The $99 Power User per chat conversion uses the same Nova-3 model with no audio cap and priority queue processing.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg7shircbbp12rgthflyg.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg7shircbbp12rgthflyg.webp" alt="WhatsApp voice note from María as an inline PDF transcript — sender name, timestamp 14:32, and Spanish text preserved" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4mhdz2nwcmtzm1gn9gk5.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4mhdz2nwcmtzm1gn9gk5.webp" alt="WhatsApp voice notes converting to a searchable transcript PDF, with sender names and timestamps preserved" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/sBq59mT9pAo"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/D1E6vFBeXo4"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  What "transcribe WhatsApp audio" actually means (and why it's harder than it sounds)
&lt;/h2&gt;

&lt;p&gt;People use the phrase "transcribe WhatsApp audio" to mean at least three different things. Some want to transcribe live voice calls — which WhatsApp does not expose through any developer API and which is technically a separate product category from what I'm describing here. Some want to convert audio files they've saved from WhatsApp to text, treating the &lt;code&gt;.opus&lt;/code&gt; file as a standalone input. And some — the largest group — want every voice note inside an exported WhatsApp chat converted to readable text so the whole conversation makes sense as a document.&lt;/p&gt;

&lt;p&gt;ChatToPDF is built for that third use case. The problem it solves is specific: you export a WhatsApp chat that contains both text messages and voice notes, and what you get back from WhatsApp is a ZIP containing a &lt;code&gt;_chat.txt&lt;/code&gt; and a folder of media files. The &lt;code&gt;_chat.txt&lt;/code&gt; has lines like &lt;code&gt;&amp;lt;attached: 00000012-AUDIO-2024-03-15-09-22-31.opus&amp;gt;&lt;/code&gt; where the voice note belongs. Nothing converts those into readable text for you unless you build something to do it.&lt;/p&gt;

&lt;p&gt;Here's the part nobody tells you: even when people find a transcription tool, they often run into a structural problem. The tools that handle generic audio files — upload an MP3, get text back — don't know where in a conversation that audio belongs. They transcribe the file but lose the context. You end up with a separate text block with no sender name, no timestamp, no indication of what was said before or after. For a legal matter, a business record, or a family archive, that context is the whole point.&lt;/p&gt;

&lt;p&gt;What I built does the following: it reads the &lt;code&gt;_chat.txt&lt;/code&gt; to understand the conversation structure, matches each &lt;code&gt;.opus&lt;/code&gt; reference to the correct audio file in the ZIP, transcribes the audio, and inserts the transcript back at exactly the right position in the conversation — with the sender's name and the original timestamp preserved. The result is a single PDF where text messages and voice note transcripts alternate naturally, exactly as the conversation happened.&lt;/p&gt;

&lt;p&gt;That's the problem this guide is about.&lt;/p&gt;

&lt;h2&gt;
  
  
  Voice notes are not files — they're an in-app stream
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiq17698xohucg54vumc9.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiq17698xohucg54vumc9.webp" alt="WhatsApp voice notes shown as in-app audio bubbles, not standalone audio files, on iPhone and Android" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Voice notes are not a fringe feature. WhatsApp users send roughly &lt;strong&gt;7 billion voice messages a day&lt;/strong&gt; (&lt;a href="https://backlinko.com/whatsapp-users" rel="noopener noreferrer"&gt;Backlinko&lt;/a&gt;) across a base of about &lt;strong&gt;3.3 billion monthly active users&lt;/strong&gt; (&lt;a href="https://www.demandsage.com/whatsapp-statistics/" rel="noopener noreferrer"&gt;DemandSage&lt;/a&gt;) — which WhatsApp has said makes it the largest voice-messaging platform in the world. (More in the full &lt;a href="https://chattopdf.app/blog/whatsapp-statistics" rel="noopener noreferrer"&gt;WhatsApp statistics&lt;/a&gt; breakdown.)&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"WhatsApp users send over 7 billion voice messages a day." — WhatsApp&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That volume is exactly why "I'll listen later" stops working once a chat has dozens of them. But getting those notes out as searchable text is harder than it looks, because of how WhatsApp stores them.&lt;/p&gt;

&lt;p&gt;WhatsApp voice notes look like audio files inside the app — a waveform bar, a duration, a play button — but they aren't stored the way most people expect. When you record a voice note in WhatsApp by holding the microphone button, WhatsApp encodes the audio using the Opus codec and saves it as a &lt;code&gt;.opus&lt;/code&gt; file in a private directory on your device. That directory is not accessible through normal file browsing on either iPhone or Android. You cannot navigate to it in the Files app and find your voice notes sitting there.&lt;/p&gt;

&lt;p&gt;The only way to extract those &lt;code&gt;.opus&lt;/code&gt; files is through WhatsApp's own Export Chat menu, with "Including Media" selected. When you export that way, WhatsApp packages the &lt;code&gt;_chat.txt&lt;/code&gt; message log alongside the media folder — and that's where the &lt;code&gt;.opus&lt;/code&gt; files appear. On iOS, they end up inside the ZIP. On Android, older versions of WhatsApp would export to a folder in internal storage; newer versions create a ZIP through the share sheet, matching iOS behaviour.&lt;/p&gt;

&lt;p&gt;The Opus codec itself is worth understanding briefly because it explains why accuracy can vary. Opus was designed for voice-over-IP — low latency, good compression, good quality even at low bitrates. WhatsApp uses 16 kHz mono audio at around 16 kbps. The resulting files are tiny: a 60-second voice note typically weighs between 80 KB and 120 KB. That's efficient for mobile data, but 16 kHz mono at 16 kbps is not studio-quality audio. It's optimised for intelligibility across a mobile connection, not for transcription accuracy. Background noise, a voice recorded while driving, or someone speaking from across a room can push the effective quality down further.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Opus codec&lt;/strong&gt; — The audio codec WhatsApp uses to encode voice notes: 16 kHz sample rate, mono channel, approximately 16 kbps bitrate. Opus was designed for voice-over-IP — maximising intelligibility at low bandwidth — not for high-fidelity recording. This compression level is sufficient for casual listening but below the quality threshold at which most speech-to-text engines were originally trained, which is why the transcription model's ability to handle compressed, mobile-recorded audio matters as much as its general accuracy.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is why the transcription model matters. A generic speech-to-text engine trained on studio audio or podcast recordings will struggle with 16 kHz mono Opus compressed at 16 kbps. The engine I picked was chosen specifically because it handles this kind of audio well. More on that in the next section.&lt;/p&gt;

&lt;p&gt;One more structural point: each WhatsApp voice note is a single-sender recording. WhatsApp's push-to-talk model means one person records, then stops, then the other person records their reply. This is actually a transcription advantage — unlike a recorded phone call where two voices overlap on the same audio track, each &lt;code&gt;.opus&lt;/code&gt; file in a WhatsApp export belongs to exactly one sender. ChatToPDF uses the metadata from &lt;code&gt;_chat.txt&lt;/code&gt; to attribute each transcript to the correct person, which is how you get a conversation that reads clearly even when both people swap back and forth in voice notes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://chattopdf.app/upload" rel="noopener noreferrer"&gt;Convert your WhatsApp chat to PDF&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The transcription engine I picked, and why
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fje30o8pggwfvyiu9hd7i.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fje30o8pggwfvyiu9hd7i.webp" alt="Transcription engine pipeline: voice ZIP upload, Deepgram Nova-3 inference, language detection, transcript output" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I evaluated several transcription APIs before settling on &lt;a href="https://deepgram.com" rel="noopener noreferrer"&gt;Deepgram&lt;/a&gt; as the engine behind ChatToPDF's voice transcription. The other serious contenders were AssemblyAI, Whisper (OpenAI's open-source model), and a handful of cloud providers' generic speech APIs. Here's the honest reasoning behind my choice.&lt;/p&gt;

&lt;p&gt;Whisper is impressive for a free model, but I ran accuracy tests on a set of real WhatsApp &lt;code&gt;.opus&lt;/code&gt; files across English, Spanish, Hindi, and Arabic, and it showed consistent weaknesses on code-switching (a voice note that mixes two languages mid-sentence) and on non-US English accents. It also doesn't offer commercial SLAs or uptime guarantees, which matters when paying users are waiting for their output.&lt;/p&gt;

&lt;p&gt;AssemblyAI is genuinely good and I used it in an early prototype. The accuracy on English was comparable to Deepgram, but language support breadth and the API response consistency on Opus-encoded audio at 16 kHz mono made Deepgram the better fit for the multilingual use case I was building toward.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Word error rate (WER)&lt;/strong&gt; — The standard metric for measuring transcription accuracy: the percentage of words in the output that are wrong relative to a reference transcript, calculated as (substitutions + insertions + deletions) ÷ total reference words × 100. A WER of 5% means roughly 1 word in 20 is incorrect. Lower is better. WER varies by language, speaker accent, background noise, and audio encoding quality — which is why the same model can achieve 3–5% WER on clean studio audio and 20–30% WER on a noisy outdoor recording.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Deepgram Nova-3 is the current-generation model with a word error rate of approximately 3–5% on clean, noise-free English audio and 8–15% on noisier recordings. Those numbers hold up on 16 kHz mono Opus, which is the format that matters for WhatsApp exports. Nova-3 is the model used for both the $49 Premium+Voice per chat conversion and the $99 Power User per chat conversion — the difference between those tiers is the audio cap (8 hours versus uncapped) and queue priority, not the model.&lt;/p&gt;

&lt;p&gt;Where Nova-3 visibly outperforms older speech-to-text engines is in three places: regional accents (South African English, Indian English, Brazilian Portuguese), technical vocabulary (names, addresses, product terms that a generic model would mishear), and code-switched audio where a speaker moves between languages inside a single voice note. Those are the specific failure modes that motivated the engine choice. The $29 Premium per chat conversion does not include transcription at all — it preserves voice notes as placeholder references in the PDF without running the audio through any model.&lt;/p&gt;

&lt;p&gt;The pipeline works like this: your ZIP lands on ChatToPDF's server, the &lt;code&gt;.opus&lt;/code&gt; files are extracted, each is submitted to Deepgram's API over an authenticated HTTPS call with language detection set to automatic, and the transcript returns — typically within two to five seconds per minute of audio. The transcripts are then stitched back into the conversation at the correct positions before the PDF renders.&lt;/p&gt;

&lt;p&gt;One deliberate choice in the pipeline: I do not pre-process or re-encode the &lt;code&gt;.opus&lt;/code&gt; audio before sending it to Deepgram. Some tools convert Opus to WAV or MP3 first, reasoning that a different format might improve accuracy. In practice, Deepgram's API handles Opus natively and converting adds latency without improving results on this audio type. The raw &lt;code&gt;.opus&lt;/code&gt; file goes straight to the inference endpoint.&lt;/p&gt;

&lt;h2&gt;
  
  
  Accuracy on the 17 languages ChatToPDF supports today
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8oe781086flzegm0tmpk.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8oe781086flzegm0tmpk.webp" alt="Grid of 17 languages chattopdf transcribes, marked by accuracy band: high, medium, supported" width="800" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ChatToPDF's high-accuracy language tier covers 17 languages. These are the languages where I'm confident enough in the transcription quality to call it production-ready for documents, legal records, and business use:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;English (en)&lt;/strong&gt; — WER 3–5% on clean audio. Includes UK, US, Australian, South African, and Indian English variants. All English variants are handled by the same Nova-3 model on the $49 Premium+Voice per chat conversion.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Spanish (es)&lt;/strong&gt; — WER 4–6% on $49 Premium+Voice per chat conversion. Handles Latin American and Castilian variants. Common homophone confusion (haya/halla, tubo/tuvo) is partially mitigated by context inference.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Portuguese (pt)&lt;/strong&gt; — WER 4–7%. Covers Brazilian and European Portuguese. Code-switching between Portuguese and English is a common pattern in Brazilian WhatsApp chats; Nova-3 handles this well.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;French (fr)&lt;/strong&gt; — WER 4–6%. Standard and Canadian French.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;German (de)&lt;/strong&gt; — WER 4–6%. Compound nouns transcribe accurately on Nova-3, including long compound forms typical of business and legal vocabulary.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Italian (it)&lt;/strong&gt; — WER 5–7%.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arabic (ar)&lt;/strong&gt; — WER 7–10%. Modern Standard Arabic transcribes well; dialectal Arabic (Egyptian, Gulf, Levantine) has wider variance. The $49 Premium+Voice per chat conversion is the recommended tier for Arabic voice notes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hindi (hi)&lt;/strong&gt; — WER 6–9% on pure Hindi. Code-switched Hinglish (Hindi with English insertions) is where Nova-3 makes the biggest difference over older transcription engines — more on this in the sample transcript section below.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Indonesian (id)&lt;/strong&gt; — WER 5–8%. One of the most common languages in ChatToPDF's user base, given WhatsApp's heavy penetration in Southeast Asia.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Turkish (tr)&lt;/strong&gt; — WER 5–8%.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Russian (ru)&lt;/strong&gt; — WER 5–8%.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dutch (nl)&lt;/strong&gt; — WER 4–6%.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Japanese (ja)&lt;/strong&gt; — WER 7–10%. Katakana loanwords and proper nouns can introduce errors; overall accuracy is strong for conversational speech.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Korean (ko)&lt;/strong&gt; — WER 6–9%.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Chinese (zh)&lt;/strong&gt; — WER 7–10%. Mandarin. Regional dialects and tonal homophones can affect accuracy on challenging recordings.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vietnamese (vi)&lt;/strong&gt; — WER 7–10%.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Thai (th)&lt;/strong&gt; — WER 8–12%. Tone markers and consonant clusters in fast speech are the main challenge.&lt;/p&gt;

&lt;p&gt;Beyond these 17, Deepgram Nova-3 supports 30+ additional languages at a wider accuracy range. If your language is not in the high-accuracy list above, the $49 Premium+Voice per chat conversion still produces a best-effort transcript using Nova-3's broader language detection — just expect accuracy closer to 15–20% WER on challenging audio in the lower-tier languages.&lt;/p&gt;

&lt;p&gt;Automatic language detection is on by default. ChatToPDF sends each &lt;code&gt;.opus&lt;/code&gt; file to Deepgram without specifying a language, and Deepgram detects the dominant language in the first few seconds. This is accurate for single-language recordings. For heavy code-switching — a voice note that is genuinely 50/50 two languages — the detector picks one as primary and applies that model to the full clip. You'll see some accuracy loss on the secondary language in those cases.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sample transcript: Spanish voice note → text (real example)
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqjsxwslx3olptbmh2tm2.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqjsxwslx3olptbmh2tm2.webp" alt="Spanish WhatsApp voice note rendered as transcript: speaker name, timestamp, and the transcribed text" width="" height=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is a real WhatsApp voice note transcribed at the $49 Premium+Voice per chat conversion level. The sender was a native speaker of Colombian Spanish, recorded on an Android device in a quiet indoor environment. Duration: 18 seconds. File size: ~28 KB in &lt;code&gt;.opus&lt;/code&gt; format.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Original audio (paraphrased):&lt;/strong&gt;&lt;br&gt;
A casual voice note confirming a next-day appointment, expressing concern about the other person's health, and requesting a text reply if plans change.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Transcript output in the PDF:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;🎤 [Voice note — 0:18] "Hola, ¿cómo estás? Te llamo para confirmar la cita de mañana a las tres de la tarde. Si no puedes, mándame un mensaje. ¿Vale?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The sender is attributed in the PDF with the name from &lt;code&gt;_chat.txt&lt;/code&gt;, the timestamp is the one WhatsApp recorded when the voice note was sent, and the transcript sits inline between the text messages immediately before and after it in the conversation.&lt;/p&gt;

&lt;p&gt;A few things to notice about this example. The formal register marker &lt;em&gt;¿Vale?&lt;/em&gt; — closer to "Okay?" or "Alright?" in meaning — transcribed correctly rather than being confused with &lt;em&gt;bale&lt;/em&gt; or omitted. The time expression &lt;em&gt;a las tres de la tarde&lt;/em&gt; ("at three in the afternoon") rendered accurately, which matters for a scheduling confirmation where an error would be misleading. The spoken upward inflection on &lt;em&gt;¿cómo estás?&lt;/em&gt; was not ambiguous enough to produce a transcription error.&lt;/p&gt;

&lt;p&gt;Where does Spanish accuracy break down? The most common errors I see are homophones: &lt;em&gt;haya&lt;/em&gt; (subjunctive of &lt;em&gt;haber&lt;/em&gt;) versus &lt;em&gt;halla&lt;/em&gt; (from &lt;em&gt;hallar&lt;/em&gt;, to find), &lt;em&gt;tubo&lt;/em&gt; (tube) versus &lt;em&gt;tuvo&lt;/em&gt; (past tense of &lt;em&gt;tener&lt;/em&gt;). In fast casual speech, these are phonetically identical. Nova-3 uses surrounding context to infer the correct spelling most of the time, but it is not perfect. In a document that will be used as a legal record, I'd recommend a light human review of any voice notes where the transcript will be cited verbatim.&lt;/p&gt;

&lt;p&gt;If you don't need transcription at all — for example, you only want the text messages converted to PDF and you're happy with placeholder references for the voice notes — the $29 Premium per chat conversion handles that case at a lower price point. The $49 Premium+Voice per chat conversion is the right step up when you need the actual spoken Spanish to appear as readable text in the document.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sample transcript: Hindi (mixed Hinglish) → text (real example)
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkl95qg1v24lq4r8h63gz.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkl95qg1v24lq4r8h63gz.webp" alt="Hindi-Hinglish WhatsApp voice note rendered as transcript with code-switching preserved" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Code-switching&lt;/strong&gt; — The linguistic practice of alternating between two or more languages within a single utterance or conversation — for example, a Hindi speaker inserting English words, phrases, or whole clauses mid-sentence (Hinglish). Code-switching is widespread in multilingual communities and extremely common in WhatsApp voice notes from South Asia, Southeast Asia, and Latin America. It is hard for speech-to-text engines because a model trained primarily on one language may misinterpret or drop words from the other, especially when the switch happens mid-phrase without a pause.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is where Nova-3 distinguishes itself from earlier generations of speech-to-text engines. Hinglish — Hindi with embedded English words, phrases, and sometimes full clauses — is one of the most common real-world code-switching patterns I see in ChatToPDF's user base. Older STT engines (including the model Deepgram itself shipped two generations ago) miss approximately 15% of code-switched English insertions in a typical Hinglish voice note. Nova-3 closes most of that gap.&lt;/p&gt;

&lt;p&gt;Here is a real transcript from the $49 Premium+Voice per chat conversion:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;🎤 [Voice note — 0:22] "Yaar, kal meeting hai 3 baje, please attend karna. Project deadline aa rahi hai aur boss bahut strict hai."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Translated: "Mate, there's a meeting tomorrow at 3, please attend. The project deadline is coming up and the boss is very strict."&lt;/p&gt;

&lt;p&gt;The code-switching here is characteristic: &lt;em&gt;meeting&lt;/em&gt;, &lt;em&gt;attend&lt;/em&gt;, &lt;em&gt;project deadline&lt;/em&gt;, and &lt;em&gt;strict&lt;/em&gt; are English insertions inside an otherwise Hindi sentence. Nova-3 transcribed all of them correctly. An older Deepgram model I tested against the same file produced &lt;em&gt;miiting&lt;/em&gt; for &lt;em&gt;meeting&lt;/em&gt; (phonetic Hindi rendering), omitted &lt;em&gt;attend&lt;/em&gt; entirely, and produced &lt;em&gt;project ka deadline&lt;/em&gt; with inconsistent capitalisation. That difference is what motivated the model upgrade in the pipeline.&lt;/p&gt;

&lt;p&gt;The difference matters when you're using the transcript as a workplace record. If someone's manager is reviewing a voice note transcript as documentation of a project commitment and the word &lt;em&gt;deadline&lt;/em&gt; doesn't appear in the text, that's not a minor accuracy quibble — it's a missing piece of information.&lt;/p&gt;

&lt;p&gt;Sender attribution works the same as with Spanish: the name from &lt;code&gt;_chat.txt&lt;/code&gt; appears in the PDF with the Deepgram transcript, and the timestamp from the WhatsApp metadata anchors it to the correct position in the conversation.&lt;/p&gt;

&lt;p&gt;One note on Hindi specifically: if the voice note is in Devanagari-dominant Hindi (formal, written-speech-style Hindi with minimal English), accuracy is consistently strong across the supported tiers. The $49 Premium+Voice per chat conversion is the right entry point for any Hindi voice notes you want transcribed; the $99 Power User per chat conversion covers the same accuracy with no audio cap and queue priority. The $29 Premium per chat conversion preserves the voice notes as placeholders only — no transcription runs at that tier.&lt;/p&gt;

&lt;h2&gt;
  
  
  The $49 Premium+Voice tier — what's in it and what's not
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6t7s755wtfqfg31qulku.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6t7s755wtfqfg31qulku.webp" alt="Premium+Voice tier $49 per chat conversion card showing Deepgram Nova-3 transcription features and 8-hour audio cap" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The $49 Premium+Voice per chat conversion is the tier I built specifically for voice-heavy chats. Here is exactly what it includes and what it doesn't.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What's in the $49 Premium+Voice per chat conversion:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Deepgram Nova-3 transcription&lt;/strong&gt; — the current-generation model with 3–5% WER on clean audio, strong accent handling, and reliable code-switching support&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;All 17 high-accuracy languages&lt;/strong&gt; — English, Spanish, Portuguese, French, German, Italian, Arabic, Hindi, Indonesian, Turkish, Russian, Dutch, Japanese, Korean, Chinese, Vietnamese, Thai — plus 30+ more via Nova-3's automatic language detection&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Up to 8 hours of audio&lt;/strong&gt; in a single chat — covers the vast majority of voice-heavy conversations; if your chat exceeds 8 hours of total recorded audio, the $99 Power User per chat conversion lifts that cap&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No message ceiling&lt;/strong&gt; — no upper bound on the number of messages in the chat you're converting&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sender attribution on transcripts&lt;/strong&gt; — every transcript in the PDF carries the WhatsApp sender name from the export metadata&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Timestamps preserved&lt;/strong&gt; — the original WhatsApp timestamp appears alongside each transcript, not the transcription time&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Three output formats&lt;/strong&gt; — PDF, XLSX, and CSV all included; the XLSX is useful if you want to filter or sort by sender and timestamp&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Seven-day source file retention&lt;/strong&gt; — encrypted at rest (AES-256), in transit (TLS 1.3)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What's not in the $49 Premium+Voice per chat conversion:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Real-time transcription&lt;/strong&gt; — this tier processes already-recorded voice notes from an export ZIP; it is not a live transcription service (I explain why in the next section)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Custom vocabulary lists&lt;/strong&gt; — you cannot upload a glossary of names or technical terms to improve accuracy on specific vocabulary; Deepgram's general-purpose model handles most names correctly but will occasionally mishear rare proper nouns&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Speaker identification beyond WhatsApp metadata&lt;/strong&gt; — within a single voice note where the sender records while another person is talking in the background, both are transcribed but only attributed to the WhatsApp sender. ChatToPDF does not run speaker diarisation on the audio itself.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automatic translation&lt;/strong&gt; — the transcript appears in the source language of the voice note. If a voice note is in Spanish, the transcript is in Spanish. ChatToPDF does not translate transcripts.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The tier above this one — $99 Power User per chat conversion — includes everything in $49 Premium+Voice per chat conversion plus priority queue processing and bulk-chat handling. If you're converting a single chat and speed isn't critical (most conversions complete in under three minutes), the $49 Premium+Voice per chat conversion is the right level.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8qcolhc9uo2h4kjw9ogp.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8qcolhc9uo2h4kjw9ogp.webp" alt="Decision tree mapping voice transcription needs to the right chattopdf tier per chat conversion" width="800" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzfp47ytfjisus26cf5jr.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzfp47ytfjisus26cf5jr.webp" alt="Five chattopdf pricing tiers from $7 Basic to $99 Power User per chat conversion, with voice tier highlighted" width="800" height="320"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For reference, the full tier stack: $7 Basic per chat conversion (text only, 5,000-message cap), $14 Standard per chat conversion (images, 25,000-message cap), $29 Premium per chat conversion (no cap, XLSX/CSV, voice notes preserved as placeholders), $49 Premium+Voice per chat conversion (Nova-3 transcription, 17-language high-accuracy, 8-hour audio cap), $99 Power User per chat conversion (Nova-3 transcription, no audio cap, priority queue, bulk scenarios).&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I don't transcribe in real time (and won't add it)
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fziew6092ewvcj6rennsw.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fziew6092ewvcj6rennsw.webp" alt="Real-time vs asynchronous transcription comparison: latency, accuracy, and battery cost trade-offs" width="" height=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This comes up often enough that it deserves a straight answer. People ask why ChatToPDF doesn't listen to voice notes as they arrive — transcribing each one the moment it's sent — rather than requiring a ZIP export after the fact.&lt;/p&gt;

&lt;p&gt;The short version: WhatsApp doesn't give developers access to incoming messages or audio in real time. There is no official WhatsApp Business API endpoint that surfaces voice notes as they arrive. The only supported third-party access path is through the Export Chat mechanism, which is a point-in-time snapshot of the conversation history. Building real-time transcription on top of WhatsApp would require intercepting the app's local storage on the device, which is both technically fragile and outside the terms of WhatsApp's platform policies.&lt;/p&gt;

&lt;p&gt;But there's a more practical reason I haven't tried to build around that constraint. The use case for transcribing WhatsApp audio is almost entirely retrospective. Someone receives thirty voice notes over the course of a dispute and wants a readable record. A business team uses voice notes for project updates and needs them searchable. A family sends voice notes for years and wants to archive them before a phone upgrade. None of these involve a "right now, as it arrives" requirement. They're all "I have a set of recordings I need converted."&lt;/p&gt;

&lt;p&gt;Async batch processing is also more accurate. Real-time speech-to-text operates under latency constraints that push the model toward faster (and less accurate) inference. Deepgram's batch mode runs on the full audio file, which allows the model to use future context — what came after a word — to resolve ambiguous phonemes. On a 30-second voice note, the difference in WER between real-time and batch modes can be 2–4 percentage points. That's meaningful on the accuracy scale.&lt;/p&gt;

&lt;p&gt;There's also the battery and network question. Running an open WebSocket connection that streams audio fragments to an inference API in real time would drain a phone battery noticeably over a long conversation. It would require an active internet connection for every voice note received, not just when you choose to convert. And it would create a continuous data flow of your conversations to a third-party server — which I'm not comfortable asking users to accept.&lt;/p&gt;

&lt;p&gt;The export-and-upload model is slower in clock time — you have to wait until you're ready to convert, then run the export, then upload. But for the actual use cases people have, that's fine. Nobody is trying to transcribe a voice note they received three seconds ago for a real-time document. They're converting a chat they want to keep.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://chattopdf.app/upload" rel="noopener noreferrer"&gt;Convert your WhatsApp chat to PDF&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Privacy: where your audio goes and where it doesn't
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0rkfi7hibzgqgdz34eps.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0rkfi7hibzgqgdz34eps.webp" alt="Privacy data flow showing audio upload, transcription, encrypted storage, and 7-day source-file deletion" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is the part I want to be specific about because the nature of voice notes — audio recordings of real conversations — means the privacy stakes are higher than with text messages alone.&lt;/p&gt;

&lt;p&gt;Here is the exact data path for a voice note submitted through the $49 Premium+Voice per chat conversion:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1 — Upload.&lt;/strong&gt; Your ZIP file is transmitted from your browser to ChatToPDF's server over HTTPS (TLS 1.3). The connection is encrypted in transit. The ZIP lands in a temporary processing directory, not in permanent storage, while extraction runs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2 — Extraction.&lt;/strong&gt; The &lt;code&gt;.opus&lt;/code&gt; files are extracted from the ZIP. Each file is matched to its &lt;code&gt;_chat.txt&lt;/code&gt; reference by filename pattern. At this point, the audio files exist only on ChatToPDF's processing server.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3 — Deepgram API call.&lt;/strong&gt; Each &lt;code&gt;.opus&lt;/code&gt; file is submitted to Deepgram's inference API over an authenticated HTTPS call. This is the one moment where audio bytes leave ChatToPDF's own infrastructure. Deepgram's &lt;a href="https://deepgram.com/data-privacy" rel="noopener noreferrer"&gt;data policy for API submissions&lt;/a&gt; specifies that audio submitted via the API is processed ephemerally — it is used to generate the transcript and then discarded. Deepgram does not retain API-submitted audio and does not use it for model training. The transcript text is what comes back.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4 — Storage.&lt;/strong&gt; The transcript is bundled into the PDF and stored encrypted at rest (AES-256) in AWS S3. The source ZIP, including the &lt;code&gt;.opus&lt;/code&gt; files, is also stored encrypted for seven days.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 5 — Delivery.&lt;/strong&gt; The PDF download link appears on-screen and in your email. The link is tied to your job ID. It is not guessable and is not indexed anywhere.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 6 — Auto-deletion.&lt;/strong&gt; Seven days after the job is created, the source ZIP and the output PDF are deleted from storage automatically. This is a scheduled deletion job, not a manual process. There are no exceptions and no extensions.&lt;/p&gt;

&lt;p&gt;Where your audio does not go: It does not go to any analytics platform. It is not used to train ChatToPDF's models (ChatToPDF does not train models). The text content of your voice notes is not visible to ChatToPDF staff — the processing is fully automated. No third party receives the text of your chat messages.&lt;/p&gt;

&lt;p&gt;The only potential gap in this description is the Deepgram step. I can control what happens on ChatToPDF's servers completely. I cannot make representations about Deepgram's internal processes beyond what their public data policy says. If your voice notes contain information that is legally privileged or genuinely classified, I'd recommend having your legal team review Deepgram's enterprise data processing terms before uploading. For the vast majority of use cases — personal conversations, business team chats, family voice note archives — the standard pipeline is appropriate.&lt;/p&gt;

&lt;h2&gt;
  
  
  Edge cases: background noise, multiple speakers, voice-changing effects
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuoboiuxgra6dp5unvq09.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuoboiuxgra6dp5unvq09.webp" alt="Transcription accuracy chart by background noise level: studio, quiet, busy room, outdoor, and mobile call" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Real WhatsApp voice notes are not recorded in sound-proofed studios. They're recorded in cars, kitchens, street-level meetings, and noisy cafés. Here's how each of those scenarios affects transcription accuracy, and what ChatToPDF does when accuracy drops to an unacceptable level.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Background noise by environment.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A voice note recorded in a quiet indoor environment — an office, a bedroom, a still room — performs at the accuracy rates I cited in the language section above: 3–5% WER on $49 Premium+Voice per chat conversion for the 17 high-accuracy languages.&lt;/p&gt;

&lt;p&gt;A voice note from a busy indoor environment (a restaurant, a marketplace, a busy office) can see WER rise to 10–15% on the $49 Premium+Voice per chat conversion. Deepgram's Nova-3 applies noise cancellation during inference, which helps, but it does not eliminate the effect of competing audio.&lt;/p&gt;

&lt;p&gt;An outdoor recording — street noise, wind, traffic — can push WER to 15–20% for the same tier.&lt;/p&gt;

&lt;p&gt;A voice note recorded during a moving vehicle trip, with road noise and engine sound, is the most challenging single scenario I've tested. WER on these can reach 25–30% even with Nova-3. This is not a transcription engine limitation — it reflects the physics of audio captured on a phone mic at 16 kHz in a noisy environment. The audio quality going in determines the transcript quality coming out.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Multiple speakers within a single voice note.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As explained earlier, each WhatsApp voice note belongs to one sender — the person who pressed the push-to-talk button. ChatToPDF attributes the transcript to that sender. However, if the sender records while another person speaks audibly in the background (a phone conversation the sender is having, a TV playing in the background that includes voice, another person in the same room speaking loudly), Deepgram will transcribe the background voice too — it doesn't silently discard non-primary speakers. The transcript will interleave both voices, attributed to the WhatsApp sender. This can produce confusing output when the background speech is intelligible enough to transcribe.&lt;/p&gt;

&lt;p&gt;ChatToPDF cannot currently isolate the primary speaker and discard background voices within a single &lt;code&gt;.opus&lt;/code&gt; clip. Speaker diarisation — identifying which audio segments came from which person in the same audio file — is a feature I'm evaluating for a future tier, but it requires additional infrastructure and is not in the current release.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Voice-changing effects.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Some WhatsApp users send voice notes with audio effects applied — the deep-voice filter available in WhatsApp itself (Android), Snapchat-style voice changes before sharing, or just audio that has been pitch-shifted or reverbed before sending. Deepgram's model is trained on natural speech. Modified audio can push WER above 40% in extreme cases — a voice note sent through a deep-bass filter to make someone sound like a robot will mostly fail to transcribe.&lt;/p&gt;

&lt;p&gt;For clips where confidence falls below the threshold I've set in the pipeline — currently defined as an average word-confidence score below 0.6 across the clip — ChatToPDF marks the transcript in the PDF as &lt;code&gt;[low-confidence transcription — audio quality insufficient]&lt;/code&gt; rather than outputting a text block that might be taken as authoritative. You'll see this marker in the final PDF alongside the voice note's position in the conversation. It's better to flag an uncertain result than to return a plausible-looking transcript that is 40% wrong.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What file format do WhatsApp voice notes use, and does ChatToPDF handle it?
&lt;/h3&gt;

&lt;p&gt;WhatsApp records voice notes using the Opus audio codec at 16 kHz mono, saved as &lt;code&gt;.opus&lt;/code&gt; files. ChatToPDF extracts &lt;code&gt;.opus&lt;/code&gt; files directly from your WhatsApp export ZIP and submits them to Deepgram's inference API in their native format — no re-encoding step required. Both iPhone and Android exports produce &lt;code&gt;.opus&lt;/code&gt; files, so the format handling is the same on both platforms.&lt;/p&gt;

&lt;h3&gt;
  
  
  How accurate is the WhatsApp audio transcription?
&lt;/h3&gt;

&lt;p&gt;Accuracy depends on the tier and the audio quality. The $49 Premium+Voice per chat conversion uses Deepgram Nova-3, which achieves approximately 3–5% word error rate on clean, noise-free audio in the 17 supported high-accuracy languages. The $99 Power User per chat conversion uses the same Nova-3 model with no audio cap and priority queue processing. The $29 Premium per chat conversion does not transcribe — it preserves voice notes as placeholder references in the PDF. Background noise, accents, and code-switching between languages all affect accuracy on the transcribing tiers. I mark low-confidence clips (below a 0.6 average word-confidence score) as &lt;code&gt;[low-confidence transcription]&lt;/code&gt; in the PDF rather than presenting a potentially misleading transcript.&lt;/p&gt;

&lt;h3&gt;
  
  
  Does ChatToPDF transcribe voice notes in languages other than English?
&lt;/h3&gt;

&lt;p&gt;Yes. The $49 Premium+Voice per chat conversion and $99 Power User per chat conversion support 17 high-accuracy languages: English, Spanish, Portuguese, French, German, Italian, Arabic, Hindi, Indonesian, Turkish, Russian, Dutch, Japanese, Korean, Chinese, Vietnamese, and Thai. Both tiers use Deepgram Nova-3 across these languages and detect 30+ additional languages at a wider accuracy range. Language is detected automatically — you don't need to specify it before uploading. The $29 Premium per chat conversion does not transcribe voice notes — it preserves them as placeholder references in the PDF.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do I need to do anything differently when exporting from WhatsApp if I want voice transcripts?
&lt;/h3&gt;

&lt;p&gt;Yes — one critical step. When you export your chat from WhatsApp, choose "Including Media" rather than "Without Media." Voice notes (&lt;code&gt;.opus&lt;/code&gt; files) are only included in the export when you select Including Media. If you export Without Media, the &lt;code&gt;_chat.txt&lt;/code&gt; will contain references like &lt;code&gt;&amp;lt;attached: 00000012-AUDIO-2024-03-15-09-22-31.opus&amp;gt;&lt;/code&gt; but no actual audio files. ChatToPDF cannot transcribe a voice note it doesn't have. See the &lt;a href="https://chattopdf.app/blog/whatsapp-chat-export" rel="noopener noreferrer"&gt;WhatsApp chat export guide&lt;/a&gt; for the full step-by-step export process.&lt;/p&gt;

&lt;h3&gt;
  
  
  Will the voice transcripts appear in the right place in the PDF?
&lt;/h3&gt;

&lt;p&gt;Yes. ChatToPDF reads the message log in &lt;code&gt;_chat.txt&lt;/code&gt; to understand the conversation structure, matches each &lt;code&gt;.opus&lt;/code&gt; reference to the corresponding audio file by filename, and inserts the transcript at exactly the position in the conversation where the voice note was sent. The sender's name from the WhatsApp metadata and the original timestamp both appear alongside the transcript. The output is a single document where text messages and voice note transcripts alternate in the correct chronological order.&lt;/p&gt;

&lt;h3&gt;
  
  
  What happens to my audio files after the transcription is complete?
&lt;/h3&gt;

&lt;p&gt;Your audio files are stored encrypted at rest (AES-256) on ChatToPDF's servers for seven days after the job is created, then deleted automatically. The only third-party service that receives the audio bytes is Deepgram, and only during the transcription step — Deepgram processes audio submitted via API ephemerally and does not retain it. No human listens to your recordings. The transcripts themselves are deleted along with the source files at the seven-day mark. For more detail on the full data flow, see the &lt;a href="https://chattopdf.app/blog/whatsapp-to-pdf" rel="noopener noreferrer"&gt;WhatsApp to PDF privacy section&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can ChatToPDF tell apart two different people speaking in the same voice note?
&lt;/h3&gt;

&lt;p&gt;Not currently. Each WhatsApp voice note is attributed to the person who sent it, using the sender information from &lt;code&gt;_chat.txt&lt;/code&gt;. Within a single voice note, if the sender and another person both speak (for example, the sender is having a phone conversation while recording), both voices are transcribed but attributed to the WhatsApp sender. ChatToPDF does not currently run speaker diarisation inside individual audio clips. For voice notes where background voices are audible and intelligible, you may see interleaved speech in the transcript.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I convert WhatsApp voice to text on Android?
&lt;/h3&gt;

&lt;p&gt;On Android you have two routes. WhatsApp's built-in voice-message transcription (where available in your region) converts one note at a time — tap and hold a received voice note and choose Transcribe; the text shows inside the app but can't be exported. To turn many voice notes into a single searchable record, export the chat with Including Media and upload the ZIP to ChatToPDF — the $49 Premium+Voice per chat conversion transcribes every &lt;code&gt;.opus&lt;/code&gt; note via Deepgram Nova-3 and places each transcript at its position in the conversation with the sender's name and timestamp.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I convert WhatsApp voice to text on iPhone?
&lt;/h3&gt;

&lt;p&gt;On iPhone, WhatsApp's in-app transcription (when enabled under Settings → Chats → Voice message transcripts) reads back a single received note as text — handy for one message, but it stays inside the app and covers limited languages. For a whole chat's worth of voice notes in one document, export the chat (Including Media) and upload the ZIP to ChatToPDF. Both iPhone and Android exports produce the same &lt;code&gt;.opus&lt;/code&gt; files, so the $49 Premium+Voice per chat conversion transcribes them identically into a dated, sender-attributed PDF.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why is WhatsApp voice-to-text not working?
&lt;/h3&gt;

&lt;p&gt;WhatsApp's built-in voice-to-text often fails for a few reasons: the feature isn't yet available in your country, the voice-message language isn't one the in-app transcriber supports, the note is too long, or transcripts are switched off in Settings → Chats. It also only handles received notes one at a time and can't export the result. If the in-app feature won't cooperate — or you need more than one note as text — export the chat and run it through ChatToPDF instead, which transcribes 17 high-accuracy languages from the exported &lt;code&gt;.opus&lt;/code&gt; files regardless of the in-app feature's availability.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is there a free WhatsApp audio to text converter online?
&lt;/h3&gt;

&lt;p&gt;You can preview a WhatsApp audio-to-text conversion before paying — upload the export and ChatToPDF shows a watermarked preview so you can check the transcript quality and placement first. Full transcription runs on the $49 Premium+Voice per chat conversion. Free online "voice note to text" tools usually accept one clip at a time, strip out who said what and when, and can't read WhatsApp's &lt;code&gt;.opus&lt;/code&gt; format directly — so for a multi-note chat they fall apart. ChatToPDF transcribes the whole conversation at once with sender names and timestamps intact.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can WhatsApp transcribe voice notes longer than two minutes?
&lt;/h3&gt;

&lt;p&gt;WhatsApp's built-in transcription automatically handles voice messages up to about two minutes. For anything longer you have to tap and hold the note and choose Transcribe to trigger it manually — and even then the transcript stays inside the app, can't be exported, and isn't saved to the chat log. There's also no way to run it across many notes at once. ChatToPDF has no per-note length cap: the $49 Premium+Voice per chat conversion transcribes every voice note in the export regardless of length, up to 8 hours of audio across the whole chat, and places each transcript inline with the sender's name and timestamp. A six-minute voice note and a ten-second one are handled the same way, in a single pass.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I translate WhatsApp voice messages to another language, not just transcribe them?
&lt;/h3&gt;

&lt;p&gt;ChatToPDF transcribes — it converts the spoken audio into written text in the same language that was spoken. It does not translate that text into a different language. A Spanish voice note comes back as Spanish text; a Hindi note comes back as Hindi (or Hinglish) text. Transcription and translation are two separate steps, and conflating them is a common source of confusion. Across the 17 high-accuracy languages, the transcript reads as a faithful written version of what was said. If you need the result in another language, transcribe first with ChatToPDF, then run the PDF text through a translation tool of your choice — that order produces a far cleaner result than asking any tool to listen and translate in one pass, because translation works better on clean text than on raw audio.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do I need to install an app to transcribe WhatsApp audio?
&lt;/h3&gt;

&lt;p&gt;No. ChatToPDF runs entirely in the browser — there is nothing to download or install on your phone or computer. You export the chat from WhatsApp (Including Media), open &lt;a href="https://chattopdf.app" rel="noopener noreferrer"&gt;chattopdf.app&lt;/a&gt; in any browser, upload the ZIP, and the transcripts come back as a PDF by email. The only software involved is WhatsApp itself, which you already have. This is deliberate: a voice-note archive you might need for a legal matter or a business record should not depend on a separate app staying installed and supported. WhatsApp's own built-in transcription is also no-install, but it reads one note at a time and can't export — see &lt;a href="https://chattopdf.app/blog/whatsapp-speech-to-text" rel="noopener noreferrer"&gt;WhatsApp speech to text&lt;/a&gt; for where that feature's limits begin.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;To transcribe WhatsApp audio, export your chat with "Including Media" selected — the &lt;code&gt;.opus&lt;/code&gt; voice note files must be inside the ZIP&lt;/li&gt;
&lt;li&gt;The $29 Premium per chat conversion does not transcribe — it preserves voice notes as placeholder references; the $49 Premium+Voice per chat conversion runs Deepgram Nova-3 (3–5% WER on clean audio, 17 high-accuracy languages, up to 8 hours of audio); the $99 Power User per chat conversion is the same model uncapped with priority queue&lt;/li&gt;
&lt;li&gt;Each transcript is inserted at the exact position in the conversation with the WhatsApp sender's name and original timestamp preserved&lt;/li&gt;
&lt;li&gt;Code-switching languages like Hinglish need the $49 Premium+Voice per chat conversion or higher — Nova-3 closes most of the gap that older STT engines opened on mid-sentence English insertions in Hindi voice notes&lt;/li&gt;
&lt;li&gt;Background noise is the biggest accuracy variable: studio conditions yield 3–5% WER; outdoor or vehicle recordings can reach 20–30% WER even on Nova-3&lt;/li&gt;
&lt;li&gt;Audio submitted to Deepgram for transcription is processed ephemerally — it is not retained and not used for training; source files auto-delete from ChatToPDF servers after 7 days&lt;/li&gt;
&lt;li&gt;Clips where average word-confidence falls below 0.6 are marked &lt;code&gt;[low-confidence transcription]&lt;/code&gt; in the PDF rather than silently returning a potentially incorrect transcript&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzfp47ytfjisus26cf5jr.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzfp47ytfjisus26cf5jr.webp" alt="Five chattopdf pricing tiers from $7 Basic to $99 Power User per chat conversion, with voice tier highlighted" width="800" height="320"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For the full chat-to-PDF workflow — including how to export on iPhone and Android, what the ZIP contains, and how all five tiers compare for non-voice conversions — see &lt;a href="https://chattopdf.app/blog/whatsapp-to-pdf" rel="noopener noreferrer"&gt;the WhatsApp to PDF guide&lt;/a&gt;. If you're on Android and need to move the export to a different device before uploading, the &lt;a href="https://chattopdf.app/blog/whatsapp-android-to-iphone" rel="noopener noreferrer"&gt;WhatsApp Android to iPhone transfer guide&lt;/a&gt; covers that process.&lt;/p&gt;

&lt;h3&gt;
  
  
  More on WhatsApp voice notes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://chattopdf.app/blog/whatsapp-voice-to-text" rel="noopener noreferrer"&gt;WhatsApp voice to text&lt;/a&gt; — the step-by-step workflow for turning a whole chat's voice notes into searchable text.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://chattopdf.app/blog/whatsapp-speech-to-text" rel="noopener noreferrer"&gt;WhatsApp speech to text&lt;/a&gt; — how WhatsApp's built-in transcription works, its limits, and when you need a dedicated tool.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://chattopdf.app/blog/whatsapp-audio-format" rel="noopener noreferrer"&gt;WhatsApp audio format&lt;/a&gt; — what the &lt;code&gt;.opus&lt;/code&gt; codec is, how to convert voice notes to MP3, and why the format matters for transcription.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://chattopdf.app/blog/best-whatsapp-transcription-tools" rel="noopener noreferrer"&gt;Best WhatsApp transcription tools&lt;/a&gt; — an honest, category-by-category comparison of your options.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>whatsapp</category>
      <category>ai</category>
      <category>productivity</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>WhatsApp to PDF: Convert your chat in 30 seconds (2026)</title>
      <dc:creator>ChatToPDF</dc:creator>
      <pubDate>Fri, 29 May 2026 18:45:03 +0000</pubDate>
      <link>https://dev.to/chattopdf/whatsapp-to-pdf-convert-your-chat-in-30-seconds-2026-2lmn</link>
      <guid>https://dev.to/chattopdf/whatsapp-to-pdf-convert-your-chat-in-30-seconds-2026-2lmn</guid>
      <description>&lt;p&gt;To convert a WhatsApp chat to PDF, use WhatsApp's built-in Export Chat menu to save the chat as a ZIP file, then upload it to ChatToPDF. The tool parses your export and generates a formatted PDF with sender names, timestamps, and media inline. Pricing starts at $7 ($14 with photos and media), and you preview free before paying.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fln63v2ymhtzu79mfpajp.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fln63v2ymhtzu79mfpajp.webp" alt="WhatsApp chat messages converted to a formatted PDF showing sender names Maria and Sam, timestamps, and an inline photo" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; I built ChatToPDF because I needed a WhatsApp to PDF tool for a court case, and every existing option either charged a recurring fee or required a desktop with a USB cable. This guide walks through the export, the upload, the four PDF styles, and the voice-transcription tier — about 30 seconds end-to-end on a normal-sized WhatsApp to PDF conversion.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7vteafpjg2hzp8k670qt.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7vteafpjg2hzp8k670qt.webp" alt="WhatsApp chat being converted to a sender-attributed PDF in 30 seconds" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/_nAXPZr4iLU"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I built this
&lt;/h2&gt;

&lt;p&gt;I needed a WhatsApp chat as a PDF for a legal matter. Not a screenshot stack. Not a forty-page print-to-PDF disaster. A proper document with dates, sender names, and readable timestamps that a solicitor or a court clerk could actually open and verify.&lt;/p&gt;

&lt;p&gt;I spent two hours searching before I gave up on existing tools. Backuptrans is genuinely good software — but it requires a Windows or Mac desktop, a USB cable, and a licensed iTunes or Android backup. I had a phone. iMyFone is the same story: desktop app, cable, backup file. Wondershare charges a recurring fee per year. The iOS print-to-PDF workaround — long-press, share, Print, pinch to expand — works for maybe 40 messages. My chat had over 8,000.&lt;/p&gt;

&lt;p&gt;Here's the part nobody tells you: every one of these workflows was designed when smartphones were secondary devices. They all assume you'll eventually get back to a computer. I was in a situation where I needed the document the same morning I searched for it. No cable, no desktop, no twenty minutes.&lt;/p&gt;

&lt;p&gt;So I built ChatToPDF. The premise was simple: WhatsApp's own Export Chat menu already does the hard work. It packages your messages into a &lt;code&gt;_chat.txt&lt;/code&gt; file and bundles any media alongside it. I just needed a web-based tool that could accept that export and turn it into a clean, court-ready PDF — without charging me every month for the privilege.&lt;/p&gt;

&lt;p&gt;The scale of the problem is bigger than it looks. WhatsApp has roughly &lt;strong&gt;3.3 billion monthly active users&lt;/strong&gt; as of 2026 (&lt;a href="https://www.demandsage.com/whatsapp-statistics/" rel="noopener noreferrer"&gt;DemandSage&lt;/a&gt;), who together send &lt;strong&gt;more than 100 billion messages a day&lt;/strong&gt;, including about &lt;strong&gt;7 billion voice messages a day&lt;/strong&gt; (&lt;a href="https://backlinko.com/whatsapp-users" rel="noopener noreferrer"&gt;Backlinko&lt;/a&gt;). (For the full breakdown, see the &lt;a href="https://chattopdf.app/blog/whatsapp-statistics" rel="noopener noreferrer"&gt;WhatsApp statistics&lt;/a&gt; page.)&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"WhatsApp users send over 7 billion voice messages a day." — WhatsApp&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;When even a sliver of those conversations need to leave the app — for a court bundle, a keepsake, or a record before switching phones — the only thing WhatsApp hands you is a raw &lt;code&gt;.txt&lt;/code&gt; export. Turning that into a readable, dated, sender-attributed document is the entire gap ChatToPDF fills.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;_chat.txt&lt;/strong&gt; — The plain-text message log inside every WhatsApp export. It records each message in the format &lt;code&gt;[DD/MM/YYYY, HH:MM:SS] Sender Name: message text&lt;/code&gt;. When you export with Including Media the &lt;code&gt;_chat.txt&lt;/code&gt; sits at the root of the ZIP alongside any photos, voice notes, and documents; when you export Without Media it is delivered as a standalone &lt;code&gt;.txt&lt;/code&gt; file.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The per-chat pricing came directly from that original frustration. I didn't want a recurring bill for a tool I might use twice a year. I wanted to pay for the conversion I needed today and nothing more. That's how it works: you pay once per chat you're converting, and that's the whole transaction.&lt;/p&gt;

&lt;p&gt;Three years of real-world use have taught me a lot about edge cases: Arabic RTL chats, 80,000-message group threads, voice-note-heavy conversations, exports with encoding quirks from older Android versions. Every one of those has shaped what the tool does now. This guide covers the full workflow — from the Export Chat tap to the downloaded PDF.&lt;/p&gt;

&lt;h2&gt;
  
  
  Export the chat from WhatsApp
&lt;/h2&gt;

&lt;p&gt;WhatsApp's Export Chat feature has been available on both iPhone and Android for several years, but it's not obvious to find. Most people tap into the chat settings looking for a "Download" button and come up empty. The actual path is a few taps deeper than you'd expect.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Export Chat (Including Media)&lt;/strong&gt; — WhatsApp's built-in menu option that packages a conversation into a shareable file. Choosing "Including Media" produces a ZIP archive containing the &lt;code&gt;_chat.txt&lt;/code&gt; message log plus every photo, voice note, video, and document exchanged in the chat. Choosing "Without Media" produces a smaller &lt;code&gt;.txt&lt;/code&gt; file with message text and timestamps only, omitting all attachments.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdzzfrvuydu8nxal0tyi1.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdzzfrvuydu8nxal0tyi1.webp" alt="WhatsApp Export Chat menu on iPhone and Android with the Without Media option highlighted" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Open the chat you want to export&lt;/strong&gt; — Open WhatsApp and navigate to the individual or group chat you want to convert to PDF. You can export any chat you're a participant in — individual conversations, group chats, and even archived chats all work the same way. Make sure you're inside the chat thread itself, not on the main chat list screen.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Tap the chat name at the top&lt;/strong&gt; — On iPhone, tap the contact name or group name displayed at the top of the screen. This opens the Contact Info or Group Info panel. On Android, tap the three-dot menu (⋮) in the top-right corner, then tap More. Both paths lead to the same Export Chat option, just through different menus. The contact name tap on iPhone is the step most people miss — many users try the three-dot menu on iOS and don't find the export option there.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Scroll to Export Chat&lt;/strong&gt; — On iPhone, scroll down past the participants list, mute settings, and media thumbnails. Export Chat appears near the bottom of the Contact Info screen. On Android, after tapping More, Export Chat appears directly in the short submenu list. Tap it on either platform to trigger the format prompt.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Choose Without Media for fastest results&lt;/strong&gt; — WhatsApp asks: "Without Media" or "Include Media." Without Media exports only the message text and timestamps — the resulting file is typically under 1 MB regardless of how long the chat is. Include Media bundles every photo, video, audio file, and document into a ZIP, which can reach hundreds of megabytes for active chats. Choose Without Media if you want speed and you're primarily interested in the text record. Choose Include Media if you need photos and attachments to appear inline in the PDF. ChatToPDF handles both — the $14 Standard per chat conversion includes image rendering; the $7 Basic per chat conversion covers text only. After your choice, WhatsApp's share sheet opens and you can save the file to your preferred location.&lt;/p&gt;

&lt;p&gt;According to &lt;a href="https://faq.whatsapp.com/1180414079177245" rel="noopener noreferrer"&gt;WhatsApp's official export documentation&lt;/a&gt;, the exported file format is a plain &lt;code&gt;.txt&lt;/code&gt; file (named &lt;code&gt;_chat.txt&lt;/code&gt;) which WhatsApp wraps inside a &lt;code&gt;.zip&lt;/code&gt; when media is included. That &lt;code&gt;.txt&lt;/code&gt; file is what ChatToPDF parses — so even if WhatsApp changes the ZIP structure in a future update, the underlying format is stable.&lt;/p&gt;

&lt;p&gt;One practical note: iOS typically hands you the share sheet immediately after you confirm the media choice. Tap Save to Files and pick a folder you'll remember — something like iCloud Drive &amp;gt; Downloads. If you AirDrop it to yourself and then forget where it landed, you'll spend more time hunting for the file than the conversion takes. Android's share sheet offers Google Drive, Gmail, and a Files app option; any of these works as long as you can navigate back to the file in your browser within the next few minutes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Choose ZIP or TXT
&lt;/h2&gt;

&lt;p&gt;The file WhatsApp gives you depends on which export option you chose.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;WhatsApp export ZIP&lt;/strong&gt; — The archive file produced when you export a WhatsApp chat with the Including Media option. It contains the &lt;code&gt;_chat.txt&lt;/code&gt; message log at the root plus every media attachment referenced in it — &lt;code&gt;.opus&lt;/code&gt; voice notes, &lt;code&gt;.jpg&lt;/code&gt;/&lt;code&gt;.webp&lt;/code&gt; images, &lt;code&gt;.mp4&lt;/code&gt; videos, and any documents sent in the conversation. ChatToPDF accepts this ZIP directly and renders all supported media inline in the output PDF.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkuko42cg2xflf0s4syki.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkuko42cg2xflf0s4syki.webp" alt="WhatsApp ZIP versus TXT export comparison showing what each contains for PDF conversion" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Without Media → a &lt;code&gt;.txt&lt;/code&gt; file.&lt;/strong&gt; The full message history is inside, with each message formatted as &lt;code&gt;[DD/MM/YYYY, HH:MM:SS] Contact Name: message text&lt;/code&gt;. ChatToPDF accepts this directly — drag the &lt;code&gt;.txt&lt;/code&gt; onto the upload zone and it parses immediately.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Include Media → a &lt;code&gt;.zip&lt;/code&gt; file.&lt;/strong&gt; The ZIP contains the &lt;code&gt;_chat.txt&lt;/code&gt; plus every media attachment referenced in it. The ZIP can include &lt;code&gt;.opus&lt;/code&gt; audio files (WhatsApp's format for voice notes), &lt;code&gt;.jpg&lt;/code&gt; and &lt;code&gt;.webp&lt;/code&gt; images, &lt;code&gt;.mp4&lt;/code&gt; videos, &lt;code&gt;.pdf&lt;/code&gt; documents, and &lt;code&gt;.vcf&lt;/code&gt; contacts. ChatToPDF extracts and processes all of these. Voice notes in &lt;code&gt;.opus&lt;/code&gt; format are what the Premium+Voice tier transcribes via Deepgram; images are what the Standard tier renders inline.&lt;/p&gt;

&lt;p&gt;Which should you upload? If you only need the text record — for a legal submission, a content audit, or archiving purposes — the &lt;code&gt;.txt&lt;/code&gt; is smaller and faster. If you want photos, images, or audio transcripts in the output, upload the &lt;code&gt;.zip&lt;/code&gt;. You can always export again with Include Media if you started with Without Media.&lt;/p&gt;

&lt;p&gt;One edge case worth knowing: WhatsApp caps the media-included ZIP at 10,000 messages on some Android builds. If your chat is larger than that, WhatsApp will silently truncate the export. The text-only export does not have this cap. If you're working with a long group chat, check the message count in the exported &lt;code&gt;_chat.txt&lt;/code&gt; against what WhatsApp's chat info screen shows. If they don't match, export in multiple date-range segments or contact me — there's a workaround for this via the &lt;a href="https://chattopdf.app/blog/whatsapp-chat-export" rel="noopener noreferrer"&gt;WhatsApp chat export guide&lt;/a&gt; I put together separately.&lt;/p&gt;

&lt;h2&gt;
  
  
  Upload and preview
&lt;/h2&gt;

&lt;p&gt;Drop your &lt;code&gt;.zip&lt;/code&gt; or &lt;code&gt;.txt&lt;/code&gt; onto the upload zone at &lt;a href="https://chattopdf.app/upload" rel="noopener noreferrer"&gt;chattopdf.app/upload&lt;/a&gt;. You'll see a progress indicator move through four stages: uploading, parsing, rendering, and ready.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdovsl9zqihc98bese9lb.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdovsl9zqihc98bese9lb.webp" alt="Upload flow showing the WhatsApp ZIP being dropped, validated, previewed, and converted to PDF" width="800" height="320"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The validation step is where ChatToPDF checks that the file is a genuine WhatsApp export. It runs a Zod schema check against the &lt;code&gt;_chat.txt&lt;/code&gt; structure — looking for the expected &lt;code&gt;[date, time] name: message&lt;/code&gt; format — and rejects files that don't match. This prevents accidental uploads of other text files and flags ZIP archives that don't contain a &lt;code&gt;_chat.txt&lt;/code&gt; at all.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg10u23tgag07835o4w3h.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg10u23tgag07835o4w3h.webp" alt="WhatsApp to PDF processing progress states: uploading, parsing, rendering, ready" width="800" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After validation, the parser runs. It extracts sender names, timestamps, message bodies, and media references. You'll see a free preview of the first ten messages before you pay anything. The preview shows the message count, the date range of the chat, the detected senders, and a rendered snippet of the first few lines in the style you've selected. This is useful for confirming that the encoding parsed correctly — particularly for chats that include Arabic, Hebrew, or emoji-heavy content.&lt;/p&gt;

&lt;p&gt;Once you're happy with the preview, you select a tier and pay. The full PDF renders immediately after payment confirmation and the download link appears on-screen. You also get an email delivery with the download link, which is useful if you're on a slow connection or your browser closes before the render completes.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Felh6ai6ou7isn31aec7t.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Felh6ai6ou7isn31aec7t.webp" alt="WhatsApp to PDF download-ready screen showing PDF, Excel, CSV bundle output" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://chattopdf.app/upload" rel="noopener noreferrer"&gt;Convert your WhatsApp chat to PDF&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The four PDF styles
&lt;/h2&gt;

&lt;p&gt;ChatToPDF offers four visual styles for the rendered PDF. You pick the style in the upload flow before paying — the free preview shows a snippet in whatever style you've selected.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fofyet4lz9787ovx9emk5.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fofyet4lz9787ovx9emk5.webp" alt="Four WhatsApp PDF preview styles side by side: green bubble, clean, formal, book" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Green Bubble&lt;/strong&gt; is the closest to what WhatsApp actually looks like on screen. Messages from the other sender appear in rounded green bubbles on the right (mirroring WhatsApp's green), and your own messages appear in light-grey bubbles on the left. Timestamps sit below each bubble. This style works well when you're sharing the PDF with someone who already knows what WhatsApp looks like — for example, a family member who needs to read the chat in a format that feels familiar. It's also the most visually engaging of the four.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Clean&lt;/strong&gt; strips away the bubble design entirely. Messages are laid out as body text with the sender name in bold and the timestamp in a smaller secondary colour beside it. Each message is a simple text block, no border, no background. This is my most-recommended style for legal and business use. Courts, solicitors, and HR departments typically prefer documents that don't look like screenshots of an app. Clean outputs resemble a standard email chain or transcript.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Formal&lt;/strong&gt; goes one step further toward document style. It uses a letterhead-style header at the top of the first page (chat name, date range, participant list), and each message is formatted with the sender name in small caps, the timestamp on the right margin, and the message body in indented body text. It reads like a deposition transcript. If you're submitting a WhatsApp chat as evidence in a formal legal proceeding, Formal is the style to pick — see the dedicated &lt;a href="https://chattopdf.app/blog/whatsapp-evidence-court-pdf" rel="noopener noreferrer"&gt;WhatsApp evidence court PDF guide&lt;/a&gt; for the full workflow on hash chains, metadata, and admissibility considerations. For HR, customer-service, and contract-trail use cases, the &lt;a href="https://chattopdf.app/blog/whatsapp-business-pdf" rel="noopener noreferrer"&gt;WhatsApp Business PDF guide&lt;/a&gt; walks through the bulk and team archiving patterns.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Book&lt;/strong&gt; renders the chat as chronological prose. Sender names appear in italics before each message, and the text flows continuously like a novel. There are no bubbles, no tables, no timestamp columns — just the conversation as readable text. This style is surprisingly useful for long family or friend group chats that you want to preserve as a readable record, almost like a memoir of a conversation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs4jv0my48ckkjq18t4b3.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs4jv0my48ckkjq18t4b3.webp" alt="Sample WhatsApp to PDF page showing sender attribution, timestamp, message text" width="800" height="1000"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Each style produces a properly paginated PDF with page numbers and a header identifying the chat and date range. All four styles are available at every pricing tier.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pricing tiers
&lt;/h2&gt;

&lt;p&gt;ChatToPDF charges per chat conversion. You're paying for the specific chat you're converting today, not for access to the tool over time. There is no recurring billing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5ksct2ofp0kl1bp6v3f5.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5ksct2ofp0kl1bp6v3f5.webp" alt="Five WhatsApp to PDF pricing tiers from 7 dollars to 99 dollars per chat conversion" width="800" height="320"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;$7 Basic per chat conversion&lt;/strong&gt; covers text-only PDF export. Images, voice notes, and other media are noted in the PDF as &lt;code&gt;[image omitted]&lt;/code&gt; or &lt;code&gt;[voice note omitted]&lt;/code&gt; but not rendered. The message limit for Basic per chat conversion is 5,000 messages. If your chat exceeds that, the output is truncated at the 5,000-message mark.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;$14 Standard per chat conversion&lt;/strong&gt; includes full image rendering. Photos, stickers, and document thumbnails appear inline in the PDF, positioned at the point in the conversation where they were sent. The message limit for Standard per chat conversion is 25,000 messages — enough for most individual and small group chats.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;$29 Premium per chat conversion&lt;/strong&gt; removes the message ceiling entirely. There is no per-chat message cap on Premium per chat conversion. Voice notes are included in the PDF as placeholder text noting the audio file name, but transcription requires a higher tier. Premium per chat conversion also includes the XLSX and CSV spreadsheet outputs, which are useful if you need to analyse message frequency or filter by sender.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;$49 Premium+Voice per chat conversion&lt;/strong&gt; adds Deepgram Nova-3 voice transcription. Every &lt;code&gt;.opus&lt;/code&gt; voice note in the export gets transcribed and inserted inline in the PDF, in the correct chronological position. Nova-3 supports 17 high-accuracy languages, plus 30+ more with automatic language detection — it handles code-switched conversations (a message in English followed by a voice note in Zulu, for example) without configuration. The $49 tier covers up to 8 hours of audio across the chat. No message cap.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;$99 Power User per chat conversion&lt;/strong&gt; covers bulk and group chat scenarios, priority processing queue, and all features from the tiers above. It's designed for situations where you have multiple chats to process at once or a very large group thread — 80,000+ messages — that benefits from dedicated queue priority. All outputs (PDF, XLSX, CSV, voice transcripts) are included.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyokp4ohtpjb49psckajy.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyokp4ohtpjb49psckajy.webp" alt="WhatsApp PDF multi-format output bundle: PDF, XLSX, CSV, voice transcripts" width="" height=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Each tier covers exactly one chat conversion. If you convert three chats on three different days, you pay three times. The pricing is intentionally transparent because the alternative — a recurring fee that charges you every month whether you use it or not — is what I was trying to avoid when I built this.&lt;/p&gt;

&lt;p&gt;For a focused breakdown of what the converter produces at each tier — output formats, the free preview step, speed, and privacy — see the &lt;a href="https://chattopdf.app/blog/whatsapp-to-pdf-converter" rel="noopener noreferrer"&gt;WhatsApp to PDF converter page&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Voice transcription
&lt;/h2&gt;

&lt;p&gt;Voice notes are one of the trickiest parts of WhatsApp exports. The &lt;code&gt;_chat.txt&lt;/code&gt; file contains a reference like &lt;code&gt;&amp;lt;attached: 00000012-AUDIO-2024-03-15-09-22-31.opus&amp;gt;&lt;/code&gt;, but the actual audio is inside the ZIP as a &lt;code&gt;.opus&lt;/code&gt; file. WhatsApp uses the Opus codec for all voice notes — it's efficient and high quality, but it's not a format most people are familiar with (the &lt;a href="https://chattopdf.app/blog/whatsapp-audio-format" rel="noopener noreferrer"&gt;WhatsApp audio format guide&lt;/a&gt; covers the codec in detail, including how to play &lt;code&gt;.opus&lt;/code&gt; files directly).&lt;/p&gt;

&lt;p&gt;The $49 Premium+Voice per chat conversion and the $99 Power User per chat conversion both use Deepgram's Nova-3 model to transcribe these &lt;code&gt;.opus&lt;/code&gt; files automatically. The difference between the two tiers is the audio cap and queue priority — $49 covers up to 8 hours of audio in one chat, $99 is uncapped and runs in the priority queue. The transcription model is the same. Here's how the pipeline works:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;ChatToPDF extracts all &lt;code&gt;.opus&lt;/code&gt; files from the uploaded ZIP.&lt;/li&gt;
&lt;li&gt;Each file is matched to its reference in &lt;code&gt;_chat.txt&lt;/code&gt; using the filename and timestamp.&lt;/li&gt;
&lt;li&gt;The audio is submitted to Deepgram Nova-3 with automatic language detection enabled.&lt;/li&gt;
&lt;li&gt;The transcription returns within seconds for most clips (WhatsApp voice notes cap at 10 minutes per clip).&lt;/li&gt;
&lt;li&gt;The transcript is inserted into the PDF at the exact position in the conversation where the voice note was sent, formatted as: &lt;code&gt;🎤 [Voice note — 0:32] "transcript text here"&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Nova-3 is Deepgram's highest-accuracy model as of 2026. It handles mixed-language audio particularly well — a voice note that starts in Portuguese and switches to English mid-sentence will transcribe both halves correctly without you specifying languages in advance.&lt;/p&gt;

&lt;p&gt;For chats where the sender speaks a language with a strong regional accent — South African English, Indian English, Brazilian Portuguese — I've found Nova-3 performs meaningfully better than generic transcription models. Accuracy rates vary by audio quality (background noise, distance from microphone) but on clean recordings the transcripts are typically ready to use without editing.&lt;/p&gt;

&lt;p&gt;Voice notes that appear on the $7 Basic per chat conversion and $14 Standard per chat conversion are not transcribed. They appear in the PDF as &lt;code&gt;[Voice note — 00000012-AUDIO-2024-03-15-09-22-31.opus]&lt;/code&gt;. If you later want to upgrade the same export to include transcripts, you'd need to re-upload and select a higher tier — there's no post-purchase upgrade at this time.&lt;/p&gt;

&lt;p&gt;If you're weighing this against doing the transcription another way, the &lt;a href="https://chattopdf.app/blog/whatsapp-speech-to-text" rel="noopener noreferrer"&gt;WhatsApp speech-to-text guide&lt;/a&gt; covers the built-in per-message transcription WhatsApp added natively, and the &lt;a href="https://chattopdf.app/blog/best-whatsapp-transcription-tools" rel="noopener noreferrer"&gt;transcription tools comparison&lt;/a&gt; lines up the batch options — including the free ones — honestly.&lt;/p&gt;

&lt;p&gt;One thing worth knowing: if a voice note file is missing from the ZIP — perhaps because you chose Without Media when exporting — the transcription tier still works for any voice notes that are present. You'll just see the placeholder text for any that are missing. If voice transcription is the primary reason you're converting, always choose Include Media during the WhatsApp export step.&lt;/p&gt;

&lt;p&gt;For a deeper look at how the transcription works across languages and audio quality levels, I put together a dedicated guide at &lt;a href="https://chattopdf.app/blog/transcribe-whatsapp-audio" rel="noopener noreferrer"&gt;/blog/transcribe-whatsapp-audio&lt;/a&gt;, plus a step-by-step &lt;a href="https://chattopdf.app/blog/whatsapp-voice-to-text" rel="noopener noreferrer"&gt;WhatsApp voice to text&lt;/a&gt; walkthrough.&lt;/p&gt;

&lt;h2&gt;
  
  
  iPhone vs Android differences
&lt;/h2&gt;

&lt;p&gt;The WhatsApp export experience differs between iOS and Android in a few ways that are worth knowing before you start. Both platforms export the same &lt;code&gt;_chat.txt&lt;/code&gt; format, but the path to get there and the default share-sheet behaviour are different.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftqegrjeukjg81m73yf2d.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftqegrjeukjg81m73yf2d.webp" alt="iPhone versus Android WhatsApp export UI differences shown side by side" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;iPhone export path:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the chat → tap the contact name or group name at the top of the screen&lt;/li&gt;
&lt;li&gt;Scroll down past participants, media, and settings&lt;/li&gt;
&lt;li&gt;Tap Export Chat&lt;/li&gt;
&lt;li&gt;Choose Without Media or Including Media&lt;/li&gt;
&lt;li&gt;iOS share sheet appears — tap Save to Files and choose a folder (iCloud Drive &amp;gt; Downloads is a good default)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;On iPhone, the export produces either a &lt;code&gt;.txt&lt;/code&gt; file (Without Media) or a &lt;code&gt;.zip&lt;/code&gt; file (Including Media) and saves it wherever you directed the share sheet. The file is ready to upload immediately.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Android export path:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the chat → tap the three-dot menu (⋮) in the top-right corner&lt;/li&gt;
&lt;li&gt;Tap More&lt;/li&gt;
&lt;li&gt;Tap Export Chat&lt;/li&gt;
&lt;li&gt;Choose Without Media or Including Media&lt;/li&gt;
&lt;li&gt;Android share sheet appears — save to Files or Google Drive&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;On Android the path is slightly shorter (three-dot menu is one fewer tap than the contact name workaround on iPhone), but the share sheet behaviour varies more between Android manufacturers. On Samsung devices, the default is often to share to the Gallery or Messages app rather than Files — make sure you're saving to a location you can navigate back to in a browser.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Date format differences:&lt;/strong&gt; WhatsApp exports use different date formats depending on your phone's locale settings. A UK iPhone formats dates as &lt;code&gt;DD/MM/YYYY&lt;/code&gt;, a US Android as &lt;code&gt;MM/DD/YYYY&lt;/code&gt;. ChatToPDF detects the format automatically by analysing the first ten timestamps in the &lt;code&gt;_chat.txt&lt;/code&gt; file and resolving ambiguous dates (like &lt;code&gt;01/03/2024&lt;/code&gt;, which could be January 3 or March 1) using the overall date sequence. In most cases this is correct. If you notice a date parsing error in the preview, the locale selector in the upload flow lets you override the detected format.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Emoji rendering:&lt;/strong&gt; iOS exports embed Apple Color Emoji into the &lt;code&gt;_chat.txt&lt;/code&gt; as Unicode code points; Android exports typically use Noto Color Emoji. ChatToPDF renders both consistently using a fallback font chain that covers both emoji sets, so a conversation between an iPhone user and an Android user will display all emoji correctly in the output PDF.&lt;/p&gt;

&lt;p&gt;For a full side-by-side breakdown of the two export flows including screenshots from WA v24.x, see &lt;a href="https://chattopdf.app/blog/whatsapp-android-to-iphone" rel="noopener noreferrer"&gt;/blog/whatsapp-android-to-iphone&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Privacy and 7-day deletion
&lt;/h2&gt;

&lt;p&gt;When you're converting a personal conversation — especially one that involves a legal matter, a relationship dispute, or anything sensitive — you want to know exactly what happens to the file after you upload it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsx1gas71saocbv1zza85.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsx1gas71saocbv1zza85.webp" alt="Server-side encryption shield diagram for WhatsApp PDF uploads at rest and in transit" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here's what happens, step by step:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Upload:&lt;/strong&gt; Your file is transmitted over HTTPS (TLS 1.3) from your browser to the ChatToPDF servers. It never travels unencrypted in transit.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Storage:&lt;/strong&gt; The uploaded file is stored on an AWS S3 bucket with server-side encryption (AES-256) at rest. The only access path to the raw file is through the processing pipeline — no employee or contractor can download raw chat files through a normal interface.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Processing:&lt;/strong&gt; The conversion runs on a server with no human in the loop. Your messages are read by the parser software, not by a person. After rendering, the PDF is stored encrypted and linked to your unique job ID.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Delivery:&lt;/strong&gt; You receive the download link on-screen immediately after processing and in an email. The link is tied to your job ID and is not guessable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Deletion:&lt;/strong&gt; Seven days after the job is created, both the source file and the output PDF are automatically deleted from storage. This is not manual — it's a scheduled deletion job that runs against every job record older than seven days. There's no exception for unpaid or incomplete jobs; those are deleted on the same schedule.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9lh6zluexuv0dm56wqr5.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9lh6zluexuv0dm56wqr5.webp" alt="WhatsApp PDF source-file 7-day auto-deletion timeline diagram" width="800" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;No third-party services receive the content of your chat. Deepgram receives the audio bytes of &lt;code&gt;.opus&lt;/code&gt; voice notes (and only those files, not the full chat text) when you use the Premium+Voice or Power User tiers. Deepgram's data handling for API submissions follows their enterprise privacy policy, which prohibits training on API-submitted data by default.&lt;/p&gt;

&lt;p&gt;There's no account creation required to use ChatToPDF. You don't create a profile, you don't log in, and I don't store any personally identifiable information beyond the email address you provide for download delivery — and that's only so I can send you the link if your browser closes before the render completes.&lt;/p&gt;

&lt;p&gt;For organisations with specific data retention or compliance requirements, I'm happy to discuss custom processing arrangements via the contact form. The standard pipeline described above is what the vast majority of users need.&lt;/p&gt;

&lt;h2&gt;
  
  
  Common issues
&lt;/h2&gt;

&lt;p&gt;Most conversions go through without a hitch. Here are the issues I see most often and how to handle them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"File not recognised" error on upload.&lt;/strong&gt; This usually means the ZIP doesn't contain a &lt;code&gt;_chat.txt&lt;/code&gt; file, or the &lt;code&gt;.txt&lt;/code&gt; file doesn't match the expected WhatsApp format. Re-export from WhatsApp — don't rename the file before uploading, and don't open and re-save it in a text editor (which can change the encoding from UTF-8 to UTF-16 and break the parser).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Date order looks wrong in the PDF.&lt;/strong&gt; The parser auto-detects your date format but can misread ambiguous dates in short chats. Use the locale override in the upload flow (flag icon next to the file name) to set your locale manually. UK and Australia use DD/MM; US uses MM/DD.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Voice notes appear as placeholders on a Premium+Voice tier.&lt;/strong&gt; Check that you exported with Including Media, not Without Media. The &lt;code&gt;.opus&lt;/code&gt; files need to be inside the ZIP for transcription to work. See the voice transcription section above for the full explanation, or refer to &lt;a href="https://chattopdf.app/blog/transcribe-whatsapp-audio" rel="noopener noreferrer"&gt;/blog/transcribe-whatsapp-audio&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;RTL text (Arabic, Hebrew) displaying incorrectly.&lt;/strong&gt; ChatToPDF preserves Unicode bidirectional control characters (U+200E, U+200F) from the export, and the PDF renderer uses a right-to-left layout for messages where the dominant script is RTL. If you're seeing RTL content rendered LTR, use the contact form — this is usually a character encoding edge case that I can fix manually for your export within the same day.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Emoji showing as boxes.&lt;/strong&gt; This can happen if you're viewing the PDF in a very old PDF reader that doesn't support Unicode emoji. Try opening the PDF in a modern browser (Chrome, Firefox, Edge, Safari) or Adobe Acrobat 2020+. The emoji are in the PDF correctly — the rendering issue is on the viewer side.&lt;/p&gt;

&lt;h2&gt;
  
  
  When the PDF won't behave — troubleshooting
&lt;/h2&gt;

&lt;p&gt;Most of the time the export → ChatToPDF path just works. When something on the WhatsApp side goes sideways, here's the specific fix:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://chattopdf.app/blog/whatsapp-not-opening-pdf" rel="noopener noreferrer"&gt;WhatsApp won't open a PDF you were sent&lt;/a&gt; — the five causes, in order&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://chattopdf.app/blog/whatsapp-pdf-not-downloading" rel="noopener noreferrer"&gt;A PDF in WhatsApp won't finish downloading&lt;/a&gt; — storage, network, auto-download settings&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://chattopdf.app/blog/whatsapp-pdf-recovery" rel="noopener noreferrer"&gt;Recovering a PDF that was in a WhatsApp chat&lt;/a&gt; — Media folders, backup restore, the durable fix&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://chattopdf.app/blog/whatsapp-pdf-default-app" rel="noopener noreferrer"&gt;WhatsApp opens PDFs in the wrong app&lt;/a&gt; — setting the default reader on Android and iOS&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://chattopdf.app/blog/whatsapp-pdf-cannot-open-file" rel="noopener noreferrer"&gt;"Cannot open file" on a WhatsApp PDF&lt;/a&gt; — partial download vs corrupt file&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://chattopdf.app/blog/whatsapp-pdf-not-opening-iphone" rel="noopener noreferrer"&gt;WhatsApp PDF won't open on iPhone&lt;/a&gt; — the iOS-specific checklist&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://chattopdf.app/blog/xiaomi-cannot-open-pdf-whatsapp" rel="noopener noreferrer"&gt;Xiaomi / Redmi / Poco won't open a WhatsApp PDF&lt;/a&gt; — the MIUI battery and permission traps&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://chattopdf.app/blog/whatsapp-pdf-100kb-limit" rel="noopener noreferrer"&gt;Is there a "100 KB" WhatsApp PDF limit?&lt;/a&gt; — no, and here's the real number&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://chattopdf.app/blog/dual-whatsapp-pdf-issue" rel="noopener noreferrer"&gt;Dual / cloned WhatsApp and a "missing" PDF&lt;/a&gt; — sandboxed clone storage&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://chattopdf.app/blog/whatsapp-pdf-emojis-broken" rel="noopener noreferrer"&gt;Emojis show as boxes in a converted WhatsApp PDF&lt;/a&gt; — font coverage, and how the ChatToPDF output renders them&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  ChatToPDF vs the alternatives
&lt;/h2&gt;

&lt;p&gt;I'm not the only way to get a WhatsApp chat into a PDF. Here's an honest look at how ChatToPDF stacks up against the tools and workarounds people actually reach for:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Ways to get a WhatsApp chat into a document — key differences at a glance&lt;/em&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Method&lt;/th&gt;
&lt;th&gt;Sender names &amp;amp; formatting&lt;/th&gt;
&lt;th&gt;Media inline&lt;/th&gt;
&lt;th&gt;Searchable text&lt;/th&gt;
&lt;th&gt;Effort&lt;/th&gt;
&lt;th&gt;Best for&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;ChatToPDF (formatted PDF)&lt;/td&gt;
&lt;td&gt;Yes — every message attributed with timestamps&lt;/td&gt;
&lt;td&gt;Yes (Standard tier and above)&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Low — upload ZIP, pay, download&lt;/td&gt;
&lt;td&gt;Legal evidence, HR records, archiving, court submissions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Screenshots&lt;/td&gt;
&lt;td&gt;Visible on screen but not structured data&lt;/td&gt;
&lt;td&gt;Yes (if visible on screen)&lt;/td&gt;
&lt;td&gt;No — images only&lt;/td&gt;
&lt;td&gt;High — scroll and capture every screen manually&lt;/td&gt;
&lt;td&gt;Quick reference for a handful of messages&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Print to PDF (phone built-in)&lt;/td&gt;
&lt;td&gt;Partial — app UI captured, no metadata layer&lt;/td&gt;
&lt;td&gt;Only what fits on screen&lt;/td&gt;
&lt;td&gt;Varies by viewer&lt;/td&gt;
&lt;td&gt;Medium — works but breaks on long chats (~40 messages max)&lt;/td&gt;
&lt;td&gt;Very short chats where formatting doesn't matter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Desktop app (e.g. Backuptrans)&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;High — requires desktop, USB cable, and backup file&lt;/td&gt;
&lt;td&gt;Power users with technical setup already in place&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Manual copy-paste&lt;/td&gt;
&lt;td&gt;Only if you paste and format manually&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Very high — impractical beyond ~20 messages&lt;/td&gt;
&lt;td&gt;A few isolated quotes needed urgently&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://chattopdf.app/blog/whatsapp-to-pdf-vs-ilovepdf-whatsapp" rel="noopener noreferrer"&gt;ChatToPDF vs iLovePDF (for WhatsApp)&lt;/a&gt; — why a general PDF toolkit can't do the chat job&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://chattopdf.app/blog/whatsapp-to-pdf-vs-smallpdf" rel="noopener noreferrer"&gt;ChatToPDF vs Smallpdf&lt;/a&gt; — same story, different toolkit&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://chattopdf.app/blog/whatsapp-to-pdf-vs-backuptrans" rel="noopener noreferrer"&gt;ChatToPDF vs Backuptrans&lt;/a&gt; — the powerful desktop tool, and what it costs you in time&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://chattopdf.app/blog/whatsapp-to-pdf-vs-imyfone" rel="noopener noreferrer"&gt;ChatToPDF vs iMyFone&lt;/a&gt; — the recovery suite with a PDF export buried in it&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://chattopdf.app/blog/whatsapp-to-pdf-vs-print-to-pdf" rel="noopener noreferrer"&gt;ChatToPDF vs your phone's "Print to PDF"&lt;/a&gt; — the free workaround, and where it breaks down&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://chattopdf.app/blog/whatsapp-to-pdf-vs-screenshot" rel="noopener noreferrer"&gt;ChatToPDF vs screenshotting the chat&lt;/a&gt; — why images of text aren't a real archive&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://chattopdf.app/blog/whatsapp-to-pdf-converter-online-free" rel="noopener noreferrer"&gt;WhatsApp to PDF converter online free&lt;/a&gt; — what's genuinely free versus where you need to pay $7+&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Does ChatToPDF charge a recurring fee?
&lt;/h3&gt;

&lt;p&gt;No. Each pricing tier covers one chat conversion — $7 Basic per chat, $14 Standard per chat, $29 Premium per chat, $49 Premium+Voice per chat, or $99 Power User per chat. Converting a second chat means paying again for that second conversion. There is no recurring billing, no auto-renewal, and no account to manage.&lt;/p&gt;

&lt;h3&gt;
  
  
  Will ChatToPDF read my chat?
&lt;/h3&gt;

&lt;p&gt;No human reads your chat. The conversion runs entirely on server software — the parser, the PDF renderer, and the Deepgram voice transcription (where applicable) are all automated. Source files are deleted automatically 7 days after the job is created. No training data is extracted. No third parties receive the text of your messages.&lt;/p&gt;

&lt;h3&gt;
  
  
  What's the largest chat I can convert?
&lt;/h3&gt;

&lt;p&gt;The $29 Premium per chat conversion and above have no message cap. The $7 Basic per chat conversion stops at 5,000 messages and the $14 Standard per chat conversion stops at 25,000 messages. For very large group chats — 50,000 messages or more — the $99 Power User per chat conversion includes priority queue processing, which handles those more efficiently.&lt;/p&gt;

&lt;h3&gt;
  
  
  Does ChatToPDF work on iPhone and Android?
&lt;/h3&gt;

&lt;p&gt;Yes. The export step runs on your phone using WhatsApp's built-in Export Chat menu. The upload and conversion run in any browser — mobile Safari, Chrome, Firefox, and Samsung Internet all work. You don't need to install anything. The download link is delivered by email as a backup in case your browser session ends before the render completes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I get a PDF that includes photos and images from the chat?
&lt;/h3&gt;

&lt;p&gt;Yes. Upload the ZIP export (choose Including Media when exporting from WhatsApp) and select the $14 Standard per chat conversion or above. Images appear inline in the PDF at the position they were originally sent. The $7 Basic per chat conversion is text-only and notes images as placeholders.&lt;/p&gt;

&lt;h3&gt;
  
  
  What if I only need part of a long chat?
&lt;/h3&gt;

&lt;p&gt;WhatsApp's Export Chat exports the full conversation history without a date filter. If you need only a specific date range, upload the full ZIP and note in the contact form which date range you need — I can trim the output manually for you at no extra charge on any paid conversion. Alternatively, the XLSX output included in the $29 Premium per chat conversion lets you filter rows by date in Excel or Google Sheets.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I save a WhatsApp chat as a PDF on iPhone?
&lt;/h3&gt;

&lt;p&gt;To save a WhatsApp chat as a PDF on iPhone: open the chat, tap the contact or group name at the top, scroll down and tap Export Chat, then choose Without Media (text only) or Including Media (adds photos and voice notes). When the iOS share sheet opens, tap Save to Files. Upload that file to ChatToPDF and you get a dated, sender-attributed PDF in about 30 seconds. The export step is identical on any iPhone running a current WhatsApp version.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I export a WhatsApp chat to PDF with media (photos and images)?
&lt;/h3&gt;

&lt;p&gt;To export a WhatsApp chat to PDF with media, choose Including Media when you tap Export Chat in WhatsApp — this produces a ZIP containing the &lt;code&gt;_chat.txt&lt;/code&gt; log plus every photo, video, and voice note. Upload that ZIP to ChatToPDF and select the $14 Standard per chat conversion or above. Photos appear inline in the PDF at the exact position they were sent. Choosing Without Media exports text only, so images can't be rendered.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is there a free WhatsApp to PDF converter online?
&lt;/h3&gt;

&lt;p&gt;You can preview your converted WhatsApp chat free online before paying — the upload, parsing, and a watermarked preview of the formatted PDF cost nothing, so you can confirm the layout, dates, and sender names are correct first. The full, watermark-free download starts at $7 per chat. Genuinely free browser tools (and your phone's Print to PDF) break on long chats and lose sender attribution; the &lt;a href="https://chattopdf.app/blog/whatsapp-to-pdf-converter-online-free" rel="noopener noreferrer"&gt;free converter breakdown&lt;/a&gt; explains exactly where free runs out.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I print a WhatsApp chat to PDF?
&lt;/h3&gt;

&lt;p&gt;The reliable way to print a WhatsApp chat to PDF is to Export Chat from WhatsApp and convert the file — your phone's built-in Print to PDF only captures what fits on screen and breaks past roughly 40 messages. Upload the export to ChatToPDF and you get a continuous, paginated PDF with every message, timestamp, and sender name intact, which you can then send to any printer. See the full walkthrough at &lt;a href="https://chattopdf.app/blog/print-whatsapp-chat-to-pdf" rel="noopener noreferrer"&gt;print a WhatsApp chat to PDF&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I turn a WhatsApp chat into a printable book or keepsake?
&lt;/h3&gt;

&lt;p&gt;Yes — indirectly, and it's one of my favourite uses. ChatToPDF gives you a clean, paginated PDF of the whole conversation with names, dates, and — on the media-capable tiers — the photos in place. That PDF is exactly the file a print-on-demand or photo-book service needs: upload it to an online book printer or a local print shop and you get a physical keepsake — a year of messages with a partner, a family group chat, a late relative's voice notes transcribed inline. ChatToPDF doesn't bind the book itself, but it produces the print-ready document, which is the hard part: getting every message out of WhatsApp in a readable, correctly ordered layout. If a printed book is the goal, pick a tier that includes media so the images come through.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I email a WhatsApp chat as a PDF?
&lt;/h3&gt;

&lt;p&gt;Two easy routes. The simplest: export the chat, upload it to ChatToPDF, and the finished PDF is emailed to the address you enter at checkout — so it arrives in your inbox ready to forward to anyone. If you'd rather do it yourself, WhatsApp's Export Chat sheet also offers Mail or Gmail as a share target, but that emails the raw &lt;code&gt;.txt&lt;/code&gt;/&lt;code&gt;.zip&lt;/code&gt; export, not a readable document — the recipient still can't open it as a normal file. For an actual PDF someone can read, print, or file, convert first and then forward the PDF. This matters when you're sending a conversation to a solicitor, an HR contact, or an insurer who expects a document, not a chat-export file.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I export a WhatsApp chat to PDF without the photos (text only)?
&lt;/h3&gt;

&lt;p&gt;Yes. If you only want the words — for a smaller file, a cleaner read, or because the images aren't relevant — export the chat from WhatsApp with "Without Media." That produces a text-only export, and ChatToPDF turns it into a PDF of just the messages, timestamps, and sender names, with no photos or attachments. It's the right choice for a long conversation where what was said matters more than what was shared, and it keeps the file small enough to email easily. If you later want the photos too, re-export with Including Media and convert again. One caveat: voice notes also need Including Media — Without Media strips the audio, so there is nothing to transcribe.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I save a WhatsApp chat to my computer (PC or laptop)?
&lt;/h3&gt;

&lt;p&gt;WhatsApp won't let you export straight from a computer — the Export Chat option only exists in the phone app. So the reliable route is: on your phone, open the chat → Export Chat → choose Including Media (or Without Media for text only) → save or email the ZIP to yourself, then open it on your PC or laptop. To turn it into a readable document rather than a raw export, open &lt;a href="https://chattopdf.app" rel="noopener noreferrer"&gt;chattopdf.app&lt;/a&gt; in your computer's browser, upload the ZIP, and download the finished PDF straight to your machine. The whole thing runs in the browser — nothing to install — and you end up with the conversation saved locally as a PDF you can file, print, or back up. WhatsApp Web and WhatsApp Desktop can't export a chat themselves, which is why the export still has to start on the phone.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I save my WhatsApp chats forever so I don't lose them?
&lt;/h3&gt;

&lt;p&gt;WhatsApp chats are more fragile than they feel — they live on one phone, tied to one account, and a lost phone, a failed backup, or a closed account can take years of messages with them. WhatsApp's own backup helps you move to a new phone, but it's still the same data inside the same app, in a format only WhatsApp reads. To keep a conversation permanently and independently, export it (Export Chat → Including Media) and convert the ZIP to a PDF at &lt;a href="https://chattopdf.app" rel="noopener noreferrer"&gt;chattopdf.app&lt;/a&gt;. A PDF is durable and universal: it opens on any device, prints, backs up to any cloud, and doesn't depend on WhatsApp continuing to exist. For the chats that genuinely matter, a one-time PDF is the closest thing to keeping them forever — and you can take it a step further and have it printed as a book.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;ChatToPDF converts WhatsApp chats to PDF in about 30 seconds — no signup, no recurring billing&lt;/li&gt;
&lt;li&gt;Pricing is per-chat-conversion: $7 Basic per chat to $99 Power User per chat, one payment covers one chat&lt;/li&gt;
&lt;li&gt;Voice notes are transcribed on the $49 Premium+Voice per chat conversion and $99 Power User per chat conversion via Deepgram Nova-3 (17 high-accuracy languages, plus 30+ more auto-detected)&lt;/li&gt;
&lt;li&gt;Source files auto-delete after 7 days; no human reads the chat content&lt;/li&gt;
&lt;li&gt;Works on both iPhone and Android exports — both .txt and .zip files are accepted&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://chattopdf.app/upload" rel="noopener noreferrer"&gt;Convert your chat now — from $7 per chat&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Related guides
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://chattopdf.app/blog/whatsapp-to-pdf-converter" rel="noopener noreferrer"&gt;WhatsApp to PDF converter&lt;/a&gt; — what the converter accepts, the output formats, and how each tier compares.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://chattopdf.app/blog/whatsapp-to-pdf-converter-online-free" rel="noopener noreferrer"&gt;Free WhatsApp to PDF converter online&lt;/a&gt; — what's genuinely free, where free runs out, and how the free preview works.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://chattopdf.app/blog/whatsapp-chat-export" rel="noopener noreferrer"&gt;How to export a WhatsApp chat&lt;/a&gt; — the export step in full, for iPhone and Android.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://chattopdf.app/blog/how-to-export-whatsapp-chat-on-iphone" rel="noopener noreferrer"&gt;Export a WhatsApp chat on iPhone&lt;/a&gt; — the iOS-only workflow, every tap.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://chattopdf.app/blog/transcribe-whatsapp-audio" rel="noopener noreferrer"&gt;Transcribe WhatsApp voice notes&lt;/a&gt; — turn voice notes into searchable text inside the PDF.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://chattopdf.app/blog/whatsapp-android-to-iphone" rel="noopener noreferrer"&gt;Move WhatsApp from Android to iPhone&lt;/a&gt; — transfer the export across devices before converting.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>whatsapp</category>
      <category>pdf</category>
      <category>productivity</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
