Billing Dispute Drafter
Free to download on every platform. Comes pre-installed on BotFone, BotPad and BotFlip — with extra free apps included.
About this app
WHAT IT DOES
AI-powered billing dispute drafter that creates professional, clear dispute messages for incorrect charges. The script reads billing or invoice details from the current page—charges, dates, amounts, merchant name, and account information—and generates a draft dispute letter or message for the merchant, bank, or billing department. The AI produces a professional dispute message that identifies the incorrect charge, explains why it is incorrect, and requests a resolution (credit, correction, or refund). You can customize the tone (professional, firm, or polite), message length, and toggle inclusion of account details, charge date, and amount. You also describe the reason for the dispute, and the AI incorporates it into the drafted message. The user reviews the output before copying or using it.
WHERE IT RUNS
Works on all billing and invoice pages (match pattern *://*/*), including bank statements, credit card billing pages, merchant invoices, subscription billing pages, utility bills, and any page containing charge or invoice details.
HOW TO USE
Install the script and the Billing Dispute Drafter appears in the panel. Configure your preferred tone, message length, and toggle inclusion of account details, charge date, and amount using the settings controls. Enter a description of why the charge is incorrect (e.g., "I was double-charged", "I returned the item but was not refunded"). Click "Draft Dispute" to analyze the current page. The AI extracts billing details and generates a professional dispute message. Review the output in the panel. Click "Copy to Clipboard" to copy the message for use in email, contact forms, or letter format. Adjust the settings, reason description, and regenerate if needed.
REAL MECHANISM: DOM CONTENT EXTRACTION WITH AI DISPUTE DRAFTING AND REVIEW GATE
This script uses a hybrid extraction approach that prioritizes structured content when available. First, it checks for WebMCP (navigator.modelContext), a W3C proposal that exposes structured tools on the page. If available, it calls getContent() to obtain structured billing data. If WebMCP is not present—the common case today—it falls back to DOM scraping using targeted selectors for billing sections (invoice-details, billing-details, charge-details, transaction-details, invoice-table, billing-summary, and charge-list). It also scans table structures for currency symbols ($, €, £) and billing keywords (charge, amount, date, invoice, bill, payment, total, due, transaction, merchant, account, statement) to capture billing data. The extracted text, along with the user's dispute reason, is sent to an AI backend via GM_xmlhttpRequest, which processes it with a system prompt that includes the user's tone preference, message length, and inclusion preferences. The AI returns a professional dispute message (120-200 words depending on the selected length) identifying the incorrect charge, explaining why it is incorrect, and requesting a resolution. The response is displayed in a bordered container for review before copying. Copy-to-clipboard uses GM_setClipboard. All settings (tone, messageLength, includeAccount, includeDate, includeAmount) are persisted via GM_setValue. The script enforces a review-before-use pattern: the user must read and approve the AI output before copying it.
THE PANEL
Drag the panel anywhere on screen by clicking and holding the header. It snaps to screen edges when released. Collapse it to a small bubble by clicking the minimize button, and expand it back by clicking the bubble. Resize the panel from any corner. Press Escape to close the configuration panel. Your position and size preferences are saved automatically per site.
PLEASE NOTE
This script requires the free BotGentz browser extension and an active AI subscription for the drafting service. AI-generated dispute messages should be reviewed for accuracy before sending—the AI may misinterpret billing details or suggest a tone that doesn't match your situation. The script reads the current page content and sends it to the AI backend for processing; no data is stored or logged. Websites change frequently; if the script stops detecting billing content, check for updates to the extraction selectors.