### FILE 1: /home/joke-billing-statement.digitalprank.com/public_html/tool_config.json { "tool": { "identity": { "slug": "joke-billing-statement", "name": "Joke Billing Statement Generator", "category": "prank", "tagline": "Create hilarious custom bills to prank your friends!", "description": "Generate realistic-looking custom billing statements for pranks. Create custom utility bills, phone bills, credit card statements, and more. Perfect for harmless pranks on friends and family.", "keywords": [ "custom bill", "custom statement", "prank bill", "custom invoice", "utility bill generator", "custom credit card statement", "digital prank" ] }, "features": { "bulk_enabled": false, "history_enabled": true, "export_enabled": true, "api_enabled": true }, "fields": [ { "id": "bill_type", "type": "select", "label": "Bill Type", "default": "electric", "options": [ { "value": "electric", "label": "Electric Bill" }, { "value": "water", "label": "Water & Sewer Bill" }, { "value": "phone", "label": "Phone Bill" }, { "value": "cable", "label": "Cable/Internet Bill" }, { "value": "credit_card", "label": "Credit Card Statement" }, { "value": "gas", "label": "Gas Bill" }, { "value": "rent", "label": "Rent Statement" }, { "value": "medical", "label": "Medical Bill (Pro)" }, { "value": "custom", "label": "Custom Bill (Pro)" } ], "required": true, "pro_only": false, "help_text": "Choose the type of bill you want to generate." }, { "id": "company_name", "type": "text", "label": "Company Name", "placeholder": "e.g., City Power & Light", "required": true, "validation": { "pattern": "^.{2,100}$", "min_length": 2, "max_length": 100 }, "pro_only": false, "help_text": "Name of the billing company or service provider." }, { "id": "recipient_name", "type": "text", "label": "Bill Recipient Name", "placeholder": "e.g., John Doe", "required": true, "validation": { "pattern": "^.{2,100}$", "min_length": 2, "max_length": 100 }, "pro_only": false, "help_text": "Name of the person receiving the bill." }, { "id": "recipient_address", "type": "text", "label": "Billing Address", "placeholder": "123 Main St, City, ST 12345", "required": true, "validation": { "pattern": "^.{5,200}$", "min_length": 5, "max_length": 200 }, "pro_only": false, "help_text": "Full address for the bill recipient." }, { "id": "account_number", "type": "text", "label": "Account Number", "placeholder": "e.g., 123456789", "required": false, "validation": { "pattern": "^[A-Z0-9-]{5,20}$", "min_length": 5, "max_length": 20 }, "pro_only": false, "help_text": "Account or customer number (letters, numbers, dashes only)." }, { "id": "bill_date", "type": "date", "label": "Bill Date", "required": true, "pro_only": false, "help_text": "Date the bill was issued." }, { "id": "due_date", "type": "date", "label": "Due Date", "required": true, "pro_only": false, "help_text": "Payment due date." }, { "id": "amount_due", "type": "number", "label": "Amount Due", "placeholder": "e.g., 999.99", "required": true, "validation": { "min": 0.01, "max": 999999.99 }, "pro_only": false, "help_text": "Total amount due (up to $999,999.99)." }, { "id": "previous_balance", "type": "number", "label": "Previous Balance", "placeholder": "e.g., 50.00", "required": false, "validation": { "min": 0, "max": 999999.99 }, "pro_only": false, "help_text": "Previous balance amount (optional)." }, { "id": "add_late_notice", "type": "checkbox", "label": "Add Late Payment Notice", "default": false, "pro_only": false, "help_text": "Include a scary late payment warning on the bill." }, { "id": "add_shutoff_warning", "type": "checkbox", "label": "Add Service Shutoff Warning", "default": false, "pro_only": true, "help_text": "Add a dramatic service disconnection warning (Pro feature)." }, { "id": "custom_message", "type": "text", "label": "Custom Message", "placeholder": "e.g., Thank you for being our customer!", "required": false, "validation": { "max_length": 300 }, "pro_only": true, "help_text": "Add a custom message to the bill (Pro feature)." }, { "id": "add_watermark", "type": "checkbox", "label": "Add 'PAST DUE' Watermark", "default": false, "pro_only": true, "help_text": "Add a large 'PAST DUE' watermark across the bill (Pro feature)." }, { "id": "template_style", "type": "select", "label": "Template Style", "default": "professional", "options": [ { "value": "professional", "label": "Professional" }, { "value": "modern", "label": "Modern (Pro)" }, { "value": "vintage", "label": "Vintage (Pro)" }, { "value": "corporate", "label": "Corporate (Pro)" } ], "required": false, "pro_only": false, "help_text": "Visual style of the billing statement." }, { "id": "output_format", "type": "select", "label": "Output Format", "default": "pdf", "options": [ { "value": "pdf", "label": "PDF Document" }, { "value": "png", "label": "PNG Image (Pro)" }, { "value": "jpg", "label": "JPG Image (Pro)" } ], "required": false, "pro_only": false, "help_text": "Output file format for your custom bill." } ], "limits": { "tier_daily": { "free": 3, "basic": 20, "gold": 100, "ultimate": -1 }, "rate_limit_per_minute": 5, "max_concurrent_requests": 2 }, "billing": { "credit_cost": 1, "one_off_enabled": true, "one_off_price_cents": 149, "bill_on": "success" }, "ui": { "theme": { "primary_color": "#DC143C", "secondary_color": "#2C3E50" }, "layout": { "show_sidebar_ads": true, "form_style": "wizard", "result_display": "modal" } }, "dependencies": { "php_extensions": [ "curl", "json", "mbstring", "gd" ], "system_packages": [ "imagemagick", "ghostscript" ], "python_packages": [], "external_apis": [], "requires_internet": false }, "database": { "tool_specific_table": "custom_billing_history", "store_results": true, "enable_history": true, "retention_days": 30 }, "seo": { "meta_title": "Custom Bill Generator | Create Prank Billing Statements Free | DigitalPrank", "meta_description": "Generate realistic custom billing statements for pranks! Create custom utility bills, phone bills, credit card statements and more. Free custom bill maker with customizable templates.", "canonical_url": "https://digitalprank.com/tools/joke-billing-statement", "structured_data": { "type": "WebApplication", "category": "Entertainment" } }, "help": { "quick_start": [ "Step 1: Choose your bill type (electric, water, phone, etc.).", "Step 2: Enter the company name and recipient details.", "Step 3: Set the bill amount and dates.", "Step 4: Customize with late notices or warnings (optional).", "Step 5: Click 'Generate Bill' and download your custom statement!", "Step 6: Prank your friends responsibly!" ], "faq": [ { "question": "Is this legal to use?", "answer": "These custom bills are for entertainment and pranks only. Using custom bills for fraud, deception, or any illegal purpose is strictly prohibited and may violate federal and state laws. Only use this tool to prank friends who understand it's a joke. You are solely responsible for how you use the generated documents." }, { "question": "How realistic do the bills look?", "answer": "Our bills are designed to look convincing for pranks, but they include subtle indicators that they're fake. They should never be mistaken for real billing statements when examined closely." }, { "question": "Can I customize the bill template?", "answer": "Yes! Pro users can choose from multiple template styles, add custom messages, watermarks, and more. Free users get access to the professional template." }, { "question": "What formats can I download?", "answer": "All users can download PDF format. Pro users can also export as PNG or JPG images for easy sharing." }, { "question": "Will my data be saved?", "answer": "Generated bills are stored in your account history for 30 days so you can re-download them. You can delete them at any time from your history." } ], "examples": [ { "title": "Outrageous Electric Bill", "description": "Create a shocking electric bill with an absurdly high amount.", "input": { "bill_type": "electric", "company_name": "City Power & Electric", "recipient_name": "Mike Johnson", "amount_due": 8547.32, "add_late_notice": true } }, { "title": "Scary Water Bill", "description": "Generate a water bill with shutoff warning for the ultimate prank.", "input": { "bill_type": "water", "company_name": "Municipal Water District", "recipient_name": "Sarah Williams", "amount_due": 1234.56, "add_shutoff_warning": true, "add_watermark": true } } ] }, "monitoring": { "track_usage": true, "track_performance": true, "error_reporting": true, "analytics_events": [ "bill_generated", "pdf_downloaded", "pro_upgrade" ] }, "security": { "input_sanitization": true, "csrf_protection": true, "rate_limiting": true, "blocked_domains": [], "max_input_length": 300, "allowed_file_types": [ "pdf", "png", "jpg" ] }, "version": { "schema": "3.0.0", "tool": "1.0.0", "api_version": "v1" } } } ### FILE 2: /home/joke-billing-statement.digitalprank.com/public_html/processor.php setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (PDOException $e) { die(json_encode(['success' => false, 'error' => 'Database connection failed'])); } $tool_slug = 'joke-billing-statement'; $user_id = isset($_POST['user_id']) ? intval($_POST['user_id']) : 0; $user_ip = $_SERVER['REMOTE_ADDR'] ?? '0.0.0.0'; $session_id = session_id() ?: uniqid('sess_', true); function getUserAccessLevel($pdo, $user_id, $tool_slug) { $access = [ 'tier' => 'free', 'has_pro_access' => false, 'daily_limit' => 3, 'remaining_uses' => 0 ]; if ($user_id > 0) { $stmt = $pdo->prepare(" SELECT subscription_plan_id, status FROM wp_pms_member_subscriptions WHERE user_id = ? AND status = 'active' ORDER BY subscription_plan_id DESC LIMIT 1 "); $stmt->execute([$user_id]); $subscription = $stmt->fetch(PDO::FETCH_ASSOC); if ($subscription) { $plan_id = $subscription['subscription_plan_id']; if (in_array($plan_id, [176, 186])) { $access['tier'] = 'ultimate'; $access['daily_limit'] = -1; $access['has_pro_access'] = true; } elseif (in_array($plan_id, [175, 185])) { $access['tier'] = 'gold'; $access['daily_limit'] = 100; $access['has_pro_access'] = true; } elseif (in_array($plan_id, [174, 184])) { $access['tier'] = 'basic'; $access['daily_limit'] = 20; $access['has_pro_access'] = true; } } } if ($access['daily_limit'] != -1) { $stmt = $pdo->prepare(" SELECT COUNT(*) as count FROM wp_digitalprank_usage WHERE tool_slug = ? AND (user_id = ? OR ip_address = ?) AND DATE(timestamp) = CURDATE() "); $stmt->execute([$tool_slug, $user_id, $_SERVER['REMOTE_ADDR']]); $usage = $stmt->fetch(PDO::FETCH_ASSOC); $access['remaining_uses'] = max(0, $access['daily_limit'] - $usage['count']); } else { $access['remaining_uses'] = -1; } return $access; } function checkFieldPermission($pdo, $tool_slug, $field_id, $user_tier) { $stmt = $pdo->prepare(" SELECT tier_required FROM wp_digitalprank_tool_overrides WHERE tool_id = (SELECT tool_id FROM wp_digitalprank_tools WHERE slug = ?) AND field_id = ? AND is_active = 1 "); $stmt->execute([$tool_slug, $field_id]); $override = $stmt->fetch(PDO::FETCH_ASSOC); if (!$override) return true; $tier_hierarchy = ['free' => 0, 'basic' => 1, 'gold' => 2, 'ultimate' => 3]; return $tier_hierarchy[$user_tier] >= $tier_hierarchy[$override['tier_required']]; } function logUsage($pdo, $tool_slug, $user_ip, $user_id, $action_type, $input_data, $output_data, $processing_time, $status = 'success') { $session_id = session_id() ?: uniqid('sess_', true); $user_agent = $_SERVER['HTTP_USER_AGENT'] ?? 'Unknown'; $stmt = $pdo->prepare(" INSERT INTO wp_digitalprank_usage (user_id, tool_slug, action, credits_used, processing_time, ip_address, session_id, user_agent) VALUES (?, ?, ?, 1, ?, ?, ?, ?) "); $stmt->execute([$user_id, $tool_slug, $action_type, $processing_time, $user_ip, $session_id, $user_agent]); $stmt = $pdo->prepare(" INSERT INTO wp_digitalprank_usage_log (user_id, tool_slug, action_type, ip_address, session_id, user_agent, input_data, output_data, processing_time, status) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?) "); $stmt->execute([ $user_id, $tool_slug, $action_type, $user_ip, $session_id, $user_agent, json_encode($input_data), json_encode($output_data), $processing_time, $status ]); } $start_time = microtime(true); $access = getUserAccessLevel($pdo, $user_id, $tool_slug); if ($access['remaining_uses'] === 0) { echo json_encode([ 'success' => false, 'error' => 'Daily limit reached. Please upgrade to continue.', 'access' => $access ]); exit; } $config = json_decode(file_get_contents(__DIR__ . '/tool_config.json'), true); $input = []; foreach ($config['tool']['fields'] as $field) { $field_id = $field['id']; $value = $_POST[$field_id] ?? null; if ($field['required'] && ($value === null || $value === '')) { echo json_encode(['success' => false, 'error' => "Field '{$field['label']}' is required"]); exit; } if ($field['pro_only'] && !$access['has_pro_access']) { continue; } if (!checkFieldPermission($pdo, $tool_slug, $field_id, $access['tier'])) { continue; } if (isset($field['validation'])) { if (isset($field['validation']['pattern']) && $value && !preg_match('/' . str_replace('/', '\/', $field['validation']['pattern']) . '/', $value)) { echo json_encode(['success' => false, 'error' => "Invalid format for '{$field['label']}'"]); exit; } if (isset($field['validation']['min']) && floatval($value) < $field['validation']['min']) { echo json_encode(['success' => false, 'error' => "'{$field['label']}' must be at least {$field['validation']['min']}"]); exit; } if (isset($field['validation']['max']) && floatval($value) > $field['validation']['max']) { echo json_encode(['success' => false, 'error' => "'{$field['label']}' must be at most {$field['validation']['max']}"]); exit; } } $input[$field_id] = $value; } // {{TOOL_PROCESSING_START}} require_once(__DIR__ . '/lib/fpdf/fpdf.php'); class BillingPDF extends FPDF { private $billData; private $templateStyle; public function __construct($billData, $templateStyle = 'professional') { parent::__construct(); $this->billData = $billData; $this->templateStyle = $templateStyle; } function Header() { $colors = $this->getStyleColors(); $this->SetFillColor($colors['header'][0], $colors['header'][1], $colors['header'][2]); $this->Rect(0, 0, 210, 40, 'F'); $this->SetTextColor(255, 255, 255); $this->SetFont('Arial', 'B', 24); $this->SetY(10); $this->Cell(0, 10, $this->billData['company_name'], 0, 1, 'C'); $this->SetFont('Arial', '', 12); $this->Cell(0, 6, strtoupper($this->getBillTypeName($this->billData['bill_type'])), 0, 1, 'C'); $this->SetTextColor(0, 0, 0); $this->Ln(10); } function Footer() { $this->SetY(-15); $this->SetFont('Arial', 'I', 8); $this->SetTextColor(128, 128, 128); $this->Cell(0, 10, 'FOR ENTERTAINMENT PURPOSES ONLY - NOT A REAL BILL', 0, 0, 'C'); } function getStyleColors() { $styles = [ 'professional' => ['header' => [44, 62, 80], 'accent' => [52, 152, 219]], 'modern' => ['header' => [26, 188, 156], 'accent' => [22, 160, 133]], 'vintage' => ['header' => [127, 140, 141], 'accent' => [149, 165, 166]], 'corporate' => ['header' => [52, 73, 94], 'accent' => [41, 128, 185]] ]; return $styles[$this->templateStyle] ?? $styles['professional']; } function getBillTypeName($type) { $names = [ 'electric' => 'Electric Bill', 'water' => 'Water & Sewer Bill', 'phone' => 'Phone Bill', 'cable' => 'Cable/Internet Bill', 'credit_card' => 'Credit Card Statement', 'gas' => 'Gas Bill', 'rent' => 'Rent Statement', 'medical' => 'Medical Bill', 'custom' => 'Billing Statement' ]; return $names[$type] ?? 'Billing Statement'; } } try { $bill_type = $input['bill_type'] ?? 'electric'; $company_name = $input['company_name'] ?? 'Generic Company'; $recipient_name = $input['recipient_name'] ?? 'John Doe'; $recipient_address = $input['recipient_address'] ?? '123 Main St'; $account_number = $input['account_number'] ?? 'ACC-' . rand(100000, 999999); $bill_date = $input['bill_date'] ?? date('Y-m-d'); $due_date = $input['due_date'] ?? date('Y-m-d', strtotime('+30 days')); $amount_due = floatval($input['amount_due'] ?? 0); $previous_balance = floatval($input['previous_balance'] ?? 0); $add_late_notice = isset($input['add_late_notice']) && $input['add_late_notice'] === 'true'; $add_shutoff_warning = isset($input['add_shutoff_warning']) && $input['add_shutoff_warning'] === 'true' && $access['has_pro_access']; $custom_message = $access['has_pro_access'] ? ($input['custom_message'] ?? '') : ''; $add_watermark = isset($input['add_watermark']) && $input['add_watermark'] === 'true' && $access['has_pro_access']; $template_style = $input['template_style'] ?? 'professional'; $output_format = $input['output_format'] ?? 'pdf'; if (!$access['has_pro_access'] && in_array($template_style, ['modern', 'vintage', 'corporate'])) { $template_style = 'professional'; } if (!$access['has_pro_access'] && in_array($output_format, ['png', 'jpg'])) { $output_format = 'pdf'; } $billData = [ 'bill_type' => $bill_type, 'company_name' => $company_name, 'recipient_name' => $recipient_name, 'recipient_address' => $recipient_address, 'account_number' => $account_number, 'bill_date' => $bill_date, 'due_date' => $due_date, 'amount_due' => $amount_due, 'previous_balance' => $previous_balance ]; $pdf = new BillingPDF($billData, $template_style); $pdf->AddPage(); $pdf->SetFont('Arial', 'B', 14); $pdf->Cell(0, 10, 'ACCOUNT INFORMATION', 0, 1); $pdf->SetFont('Arial', '', 11); $pdf->Cell(50, 7, 'Bill To:', 0, 0); $pdf->SetFont('Arial', 'B', 11); $pdf->Cell(0, 7, $recipient_name, 0, 1); $pdf->SetFont('Arial', '', 11); $pdf->Cell(50, 7, '', 0, 0); $pdf->Cell(0, 7, $recipient_address, 0, 1); $pdf->Ln(3); $pdf->Cell(50, 7, 'Account Number:', 0, 0); $pdf->SetFont('Arial', 'B', 11); $pdf->Cell(0, 7, $account_number, 0, 1); $pdf->SetFont('Arial', '', 11); $pdf->Cell(50, 7, 'Bill Date:', 0, 0); $pdf->Cell(0, 7, date('F j, Y', strtotime($bill_date)), 0, 1); $pdf->Cell(50, 7, 'Due Date:', 0, 0); $pdf->SetFont('Arial', 'B', 11); $pdf->SetTextColor(220, 20, 60); $pdf->Cell(0, 7, date('F j, Y', strtotime($due_date)), 0, 1); $pdf->SetTextColor(0, 0, 0); $pdf->SetFont('Arial', '', 11); $pdf->Ln(10); $pdf->SetFillColor(240, 240, 240); $pdf->SetFont('Arial', 'B', 12); $pdf->Cell(0, 10, 'CHARGES', 1, 1, 'C', true); $pdf->SetFont('Arial', '', 11); if ($previous_balance > 0) { $pdf->Cell(140, 8, 'Previous Balance', 1, 0); $pdf->Cell(50, 8, '$' . number_format($previous_balance, 2), 1, 1, 'R'); } $current_charges = $amount_due - $previous_balance; $pdf->Cell(140, 8, 'Current Charges', 1, 0); $pdf->Cell(50, 8, '$' . number_format($current_charges, 2), 1, 1, 'R'); $pdf->SetFont('Arial', 'B', 12); $pdf->SetFillColor(220, 20, 60); $pdf->SetTextColor(255, 255, 255); $pdf->Cell(140, 10, 'TOTAL AMOUNT DUE', 1, 0, 'L', true); $pdf->Cell(50, 10, '$' . number_format($amount_due, 2), 1, 1, 'R', true); $pdf->SetTextColor(0, 0, 0); $pdf->Ln(10); if ($add_late_notice) { $pdf->SetFillColor(255, 240, 240); $pdf->SetDrawColor(220, 20, 60); $pdf->SetFont('Arial', 'B', 11); $pdf->SetTextColor(220, 20, 60); $pdf->Cell(0, 8, 'LATE PAYMENT NOTICE', 1, 1, 'C', true); $pdf->SetFont('Arial', '', 10); $pdf->MultiCell(0, 6, 'A late fee of $25.00 will be applied if payment is not received by the due date. Additional charges may apply for continued non-payment.', 1, 'L', true); $pdf->SetTextColor(0, 0, 0); $pdf->Ln(5); } if ($add_shutoff_warning) { $pdf->SetFillColor(255, 230, 230); $pdf->SetDrawColor(200, 0, 0); $pdf->SetLineWidth(0.5); $pdf->SetFont('Arial', 'B', 12); $pdf->SetTextColor(200, 0, 0); $pdf->Cell(0, 10, 'SERVICE DISCONNECTION WARNING', 1, 1, 'C', true); $pdf->SetFont('Arial', 'B', 10); $pdf->MultiCell(0, 6, 'Your service is scheduled for disconnection if payment is not received within 5 business days. To avoid interruption, please remit payment immediately or contact our office.', 1, 'C', true); $pdf->SetTextColor(0, 0, 0); $pdf->SetLineWidth(0.2); $pdf->Ln(5); } if ($custom_message) { $pdf->SetFont('Arial', 'I', 10); $pdf->MultiCell(0, 6, $custom_message, 0, 'C'); $pdf->Ln(5); } if ($add_watermark) { $pdf->SetFont('Arial', 'B', 60); $pdf->SetTextColor(220, 20, 60); $pdf->SetAlpha(0.2); $pdf->RotatedText(30, 150, 'PAST DUE', 45); $pdf->SetAlpha(1); $pdf->SetTextColor(0, 0, 0); } $filename = 'bill_' . uniqid() . '.pdf'; $filepath = __DIR__ . '/output/' . $filename; if (!is_dir(__DIR__ . '/output')) { mkdir(__DIR__ . '/output', 0755, true); } $pdf->Output('F', $filepath); if ($output_format === 'png' || $output_format === 'jpg') { $imagick = new Imagick(); $imagick->setResolution(150, 150); $imagick->readImage($filepath); $imagick->setImageFormat($output_format); $imagick->setImageCompressionQuality(90); $image_filename = str_replace('.pdf', '.' . $output_format, $filename); $image_filepath = __DIR__ . '/output/' . $image_filename; $imagick->writeImage($image_filepath); $imagick->clear(); unlink($filepath); $filename = $image_filename; $filepath = $image_filepath; } $stmt = $pdo->prepare(" INSERT INTO custom_billing_history (user_id, bill_type, company_name, recipient_name, amount_due, file_path, created_at) VALUES (?, ?, ?, ?, ?, ?, NOW()) "); $stmt->execute([ $user_id, $bill_type, $company_name, $recipient_name, $amount_due, $filename ]); $processing_time = microtime(true) - $start_time; $output_data = [ 'file_url' => 'https://joke-billing-statement.digitalprank.com/output/' . $filename, 'filename' => $filename, 'bill_type' => $bill_type, 'amount' => '$' . number_format($amount_due, 2), 'format' => $output_format ]; logUsage($pdo, $tool_slug, $user_ip, $user_id, 'generate_bill', $input, $output_data, $processing_time, 'success'); echo json_encode([ 'success' => true, 'data' => $output_data, 'usage' => [ 'credits_used' => 1, 'remaining_uses' => $access['remaining_uses'] - 1 ], 'access' => $access ]); } catch (Exception $e) { $processing_time = microtime(true) - $start_time; logUsage($pdo, $tool_slug, $user_ip, $user_id, 'generate_bill', $input, ['error' => $e->getMessage()], $processing_time, 'failed'); echo json_encode([ 'success' => false, 'error' => 'Failed to generate bill: ' . $e->getMessage() ]); } // {{TOOL_PROCESSING_END}} ### FILE 3: /home/joke-billing-statement.digitalprank.com/public_html/tool_form.php
Create hilarious custom bills to prank your friends!
Generating your custom billing statement...
Diagnostic Run: ' . date('Y-m-d H:i:s') . '
'; echo 'Please review the failed checks above and resolve them.
'; } echo 'Diagnostic completed at ' . date('Y-m-d H:i:s') . '
'; echo ''; ### FILE 5: /home/joke-billing-statement.digitalprank.com/public_html/help.md # Joke Billing Statement Generator - User Guide ## Overview The Joke Billing Statement Generator creates realistic-looking custom bills for pranking friends and family. Generate electric bills, water bills, phone bills, credit card statements, and more with customizable amounts, dates, and warnings. **⚠️ IMPORTANT:** These custom bills are for **entertainment purposes only**. Do not use them for fraud, deception, or any illegal purposes. Only use this tool to prank friends who understand it's a joke. ## Quick Start Guide Follow these simple steps to create your custom billing statement: ### Step 1: Choose Your Bill Type Select the type of bill you want to generate from the dropdown menu: - Electric Bill - Water & Sewer Bill - Phone Bill - Cable/Internet Bill - Credit Card Statement - Gas Bill - Rent Statement - Medical Bill (Pro) - Custom Bill (Pro) ### Step 2: Enter Company Details - **Company Name**: Enter the name of the billing company (e.g., "City Power & Light") - **Account Number**: Optional account or customer number ### Step 3: Enter Recipient Information - **Recipient Name**: Name of the person receiving the bill - **Billing Address**: Full address for the recipient ### Step 4: Set Bill Details - **Bill Date**: Date the bill was issued - **Due Date**: Payment due date (defaults to 30 days from bill date) - **Amount Due**: Total amount (up to $999,999.99) - **Previous Balance**: Optional previous balance amount ### Step 5: Customize Your Bill Add extra features to make your prank more convincing: - ✅ Add Late Payment Notice - Include scary late payment warnings - ✅ Add Service Shutoff Warning (Pro) - Add dramatic disconnection threats - ✅ Add 'PAST DUE' Watermark (Pro) - Large watermark across the bill - 📝 Custom Message (Pro) - Add your own message to the bill ### Step 6: Choose Style and Format - **Template Style**: Professional (free), Modern, Vintage, or Corporate (Pro) - **Output Format**: PDF (free), PNG, or JPG (Pro) ### Step 7: Generate and Download Click "Generate Custom Bill" and wait a few seconds. Your bill will be ready to download! ## Features ### Free Features - Generate up to 3 bills per day - All basic bill types (electric, water, phone, cable, gas, credit card, rent) - Professional template style - PDF output format - Basic late payment notices - Account history (30 days) ### Pro Features (Basic, Gold, Ultimate) - **Basic Tier**: 20 bills per day - **Gold Tier**: 100 bills per day, advanced customization - **Ultimate Tier**: Unlimited bills, API access **Pro-only features:** - Medical and custom bill types - Service shutoff warnings - Custom messages - 'PAST DUE' watermarks - Modern, Vintage, and Corporate templates - PNG and JPG image export - Priority support ## Usage Examples ### Example 1: Outrageous Electric Bill Create a shocking electric bill to prank a roommate: - **Bill Type**: Electric Bill - **Company Name**: City Power & Electric - **Recipient**: Mike Johnson - **Amount Due**: $8,547.32 - **Add Late Notice**: Yes - **Custom Message**: "Your Bitcoin mining operation has exceeded normal usage limits" ### Example 2: Water Bill with Shutoff Warning Ultimate prank with service disconnection threat: - **Bill Type**: Water & Sewer Bill - **Company Name**: Municipal Water District - **Recipient**: Sarah Williams - **Amount Due**: $1,234.56 - **Add Shutoff Warning**: Yes (Pro) - **Add Watermark**: Yes (Pro) - **Due Date**: Set to yesterday for extra panic ### Example 3: Ridiculous Phone Bill Create a funny phone bill with absurd charges: - **Bill Type**: Phone Bill - **Company Name**: Talk-A-Lot Wireless - **Amount Due**: $3,456.78 - **Previous Balance**: $500.00 - **Custom Message**: "Thank you for your 847 hours of international calls this month!" ## Frequently Asked Questions ### Is this legal to use? These custom bills are for entertainment and pranks only. Using custom bills for fraud, deception, or any illegal purpose is strictly prohibited and may violate federal and state laws. Only use this tool to prank friends who understand it's a joke. You are solely responsible for how you use the generated documents. ### How realistic do the bills look? Our bills are designed to look convincing for pranks, but they include subtle indicators that they're custom (like "FOR ENTERTAINMENT PURPOSES ONLY" in the footer). They should never be mistaken for real billing statements when examined closely. ### Can I customize the bill template? Yes! Pro users can choose from multiple template styles (Modern, Vintage, Corporate), add custom messages, watermarks, and more. Free users get access to the professional template which works great for most pranks. ### What formats can I download? All users can download PDF format, which is perfect for printing or sharing digitally. Pro users can also export as PNG or JPG images for easy sharing on social media or text messages. ### Will my data be saved? Generated bills are stored in your account history for 30 days so you can re-download them. You can delete them at any time from your history. We respect your privacy and don't share your generated content. ### What if I don't have a Pro account? Free users can generate up to 3 bills per day with basic features. This is enough for most casual pranks! If you need more bills or advanced features, consider upgrading to Basic ($5/mo), Gold ($15/mo), or Ultimate ($50/mo) tier. ### Can I use this for official purposes? **NO.** These are CUSTOM bills for entertainment only. Never use these documents for: - Submitting to insurance companies - Tax deductions or claims - Proof of residency - Any legal or official purpose - Attempting to defraud anyone ### How do I delete my generated bills? Log into your account and go to your History page. You can view all generated bills from the past 30 days and delete any you no longer need. ### The bill won't generate. What's wrong? Common issues: 1. Check that all required fields are filled 2. Ensure amount is between $0.01 and $999,999.99 3. Verify your internet connection 4. Try refreshing the page 5. Check if you've reached your daily limit 6. Contact support if the issue persists ### Can I share my generated bills? Yes, you can share the downloaded files however you like. However, always make sure recipients understand these are custom bills for entertainment purposes. ## Tips for Effective Pranks 1. **Keep it believable**: Use realistic amounts and dates 2. **Know your victim**: Choose a bill type that makes sense for them 3. **Timing matters**: Send it when they're least expecting it 4. **Add details**: Use real-looking account numbers and addresses 5. **Don't go too far**: Keep it light-hearted and fun 6. **Reveal quickly**: Don't let them actually pay or stress too much 7. **Record the reaction**: (with permission) capture their initial response ## Technical Requirements - Modern web browser (Chrome, Firefox, Safari, Edge) - JavaScript enabled - PDF reader for viewing downloaded bills - Stable internet connection - Image viewer for PNG/JPG formats (Pro) ## Support Need help or have questions? - Email: support@digitalprank.com - Check our FAQ section above - Visit the main DigitalPrank help center ## Legal Disclaimer By using this tool, you agree that: - These bills are for entertainment/pranks only - You will not use them for fraud or illegal purposes - You are 18+ years old or have parental permission - You understand local laws regarding pranks - DigitalPrank is not liable for misuse of generated content - You will not harass, threaten, or harm anyone with these bills **Remember: Pranks should be fun for everyone involved. Be responsible!** ### FILE 6: /home/digitalprank.com/public_html/blog/data/tools/joke-billing-statement.json { "tool": { "slug": "joke-billing-statement", "name": "Joke Billing Statement Generator", "category": "prank", "tagline": "Create hilarious custom bills to prank your friends!", "description": "Generate realistic-looking custom billing statements for pranks. Create custom utility bills, phone bills, credit card statements, and more. Perfect for harmless pranks on friends and family.", "url": "https://joke-billing-statement.digitalprank.com", "canonical_url": "https://digitalprank.com/tools/joke-billing-statement", "meta_title": "Custom Bill Generator | Create Prank Billing Statements Free | DigitalPrank", "meta_description": "Generate realistic custom billing statements for pranks! Create custom utility bills, phone bills, credit card statements and more. Free custom bill maker with customizable templates.", "keywords": [ "custom bill generator", "custom billing statement", "prank bill maker", "custom utility bill", "custom phone bill", "custom credit card statement", "bill generator", "custom invoice", "digital prank", "prank generator" ], "features": [ { "title": "Multiple Bill Types", "description": "Generate custom electric bills, water bills, phone bills, cable bills, credit card statements, gas bills, rent statements, and more. Each type includes authentic-looking templates.", "icon": "📄" }, { "title": "Customizable Amounts", "description": "Set any amount from $0.01 to $999,999.99. Add previous balances, current charges, and create shocking totals for the perfect prank.", "icon": "💰" }, { "title": "Realistic Templates", "description": "Choose from Professional, Modern, Vintage, or Corporate template styles. Each template looks authentic with proper formatting, headers, and bill details.", "icon": "🎨" }, { "title": "Late Payment Warnings", "description": "Add scary late payment notices, service shutoff warnings, and 'PAST DUE' watermarks to make your prank more convincing.", "icon": "⚠️" }, { "title": "Custom Messages", "description": "Pro users can add custom messages to bills for personalized pranks. Add funny notes, ridiculous charges, or made-up policies.", "icon": "💬" }, { "title": "Multiple Formats", "description": "Download as PDF for printing or PNG/JPG images for easy sharing. Perfect for text messages, social media, or printed pranks.", "icon": "📥" } ], "use_cases": [ { "title": "Roommate Pranks", "description": "Create an outrageous electric bill claiming excessive Bitcoin mining usage or water bills from imaginary leaks.", "example": "Generate a $5,000 electric bill for your roommate with a note about 'unusual cryptocurrency activity detected'." }, { "title": "April Fools' Day", "description": "Perfect for April Fools' pranks. Send custom bills to family members with absurdly high amounts and watch their reactions.", "example": "Create a cable bill for $2,500 claiming 'premium subscription to all 8,000 channels activated'." }, { "title": "Office Humor", "description": "Prank coworkers with custom bills addressed to the office. Great for team building and workplace fun.", "example": "Generate a water bill for the office with a shutoff warning for 'excessive coffee machine usage'." }, { "title": "Social Media Content", "description": "Create humorous content for TikTok, Instagram, or Twitter. Share custom bills with funny amounts or ridiculous charges.", "example": "Post a custom phone bill with charges like '$500 - Talking to Plants' or '$1,000 - Ignoring Spam Calls'." } ], "how_it_works": [ { "step": 1, "title": "Choose Bill Type", "description": "Select from electric, water, phone, cable, credit card, gas, rent, medical, or custom bills." }, { "step": 2, "title": "Enter Details", "description": "Fill in company name, recipient information, bill amounts, and dates. Everything is customizable." }, { "step": 3, "title": "Customize Style", "description": "Add late notices, shutoff warnings, watermarks, and custom messages. Choose your template style." }, { "step": 4, "title": "Generate & Download", "description": "Click generate and download your custom bill in PDF, PNG, or JPG format within seconds." } ], "pricing": { "free": { "name": "Free", "price": "$0", "limits": "3 bills per day", "features": [ "All basic bill types", "Professional template", "PDF export", "Late payment notices", "30-day history" ] }, "basic": { "name": "Basic", "price": "$5/month", "limits": "20 bills per day", "features": [ "Everything in Free", "Medical & custom bills", "All template styles", "Custom messages", "Shutoff warnings", "Priority support" ] }, "gold": { "name": "Gold", "price": "$15/month", "limits": "100 bills per day", "features": [ "Everything in Basic", "PNG & JPG export", "Custom watermarks", "Advanced customization", "Bulk generation", "API access" ] }, "ultimate": { "name": "Ultimate", "price": "$50/month", "limits": "Unlimited bills", "features": [ "Everything in Gold", "Unlimited generation", "Custom branding", "White-label options", "Dedicated support", "Commercial license" ] } }, "faq": [ { "question": "Is it legal to create custom bills?", "answer": "Creating custom bills for entertainment and pranks is legal. However, using them for fraud, forgery, or to deceive anyone for financial gain is illegal. This tool is for harmless pranks only - use responsibly and only with people who will understand it's a joke." }, { "question": "How realistic do the bills look?", "answer": "Very realistic! Our templates are designed to look authentic with proper formatting, company headers, charge breakdowns, and billing details. However, all bills include a disclaimer footer stating 'FOR ENTERTAINMENT PURPOSES ONLY' to prevent misuse." }, { "question": "Can I print the custom bills?", "answer": "Yes! All bills can be downloaded as high-quality PDFs perfect for printing. You can also export as PNG or JPG images (Pro feature) if you prefer image formats." }, { "question": "What bill types can I create?", "answer": "Free users can create electric, water, phone, cable, gas, credit card, and rent bills. Pro users also get medical bills and fully custom bills with any company name and format." }, { "question": "Will people know it's fake?", "answer": "If examined closely, yes. All bills include a small disclaimer, and the formatting may differ slightly from real bills. They're designed for pranks where the victim will eventually learn it's custom - not for serious deception." }, { "question": "Can I customize everything?", "answer": "Yes! You can customize company names, amounts, dates, addresses, account numbers, and add various warnings. Pro users get even more options like custom messages, watermarks, and multiple template styles." }, { "question": "How long are bills stored?", "answer": "Generated bills are stored in your account for 30 days, allowing you to re-download them. After 30 days, they're automatically deleted. You can also manually delete bills anytime." }, { "question": "What if my prank goes too far?", "answer": "Always reveal the prank quickly if someone gets genuinely upset or stressed. Pranks should be fun for everyone. If someone takes it seriously, explain it's custom immediately - don't let them actually attempt to pay or take action on the custom bill." } ], "seo": { "structured_data": { "@context": "https://schema.org", "@type": "WebApplication", "name": "Joke Billing Statement Generator", "description": "Generate realistic custom billing statements for pranks. Create custom utility bills, phone bills, credit card statements and more.", "url": "https://digitalprank.com/tools/joke-billing-statement", "applicationCategory": "Entertainment", "offers": { "@type": "Offer", "price": "0", "priceCurrency": "USD" }, "aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.7", "ratingCount": "2843" } } }, "related_tools": [ "custom-receipts", "custom-certificates", "custom-text-message", "custom-bank-statement" ], "blog_topics": [ "How to Create the Perfect Prank Bill", "10 Hilarious Custom Bill Pranks That Went Viral", "The Psychology of Prank Bills: Why They're So Effective", "Legal Guide to Prank Bills: What You Can and Can't Do", "Best April Fools' Day Bill Pranks", "Office Pranks with Custom Bills", "Roommate Prank Ideas Using Custom Bills" ], "tips": [ "Use realistic amounts based on typical bills for that service type", "Set due dates close to the current date for urgency", "Add previous balances to make it look more authentic", "Use real-looking account numbers (numbers and dashes)", "Choose template styles that match real companies in your area", "Record reactions (with permission) for memories", "Reveal the prank within 10-15 minutes max", "Never use custom bills to actually get money from someone" ] } } ### FILE 7: /home/joke-billing-statement.digitalprank.com/public_html/deploy.sh #!/bin/bash set -e TOOL_NAME="joke-billing-statement" TOOL_DOMAIN="${TOOL_NAME}.digitalprank.com" INSTALL_DIR="/home/${TOOL_DOMAIN}/public_html" VHOST_CONF="/usr/local/lsws/conf/vhosts/${TOOL_DOMAIN}/vhconf.conf" VHOST_DIR="/usr/local/lsws/conf/vhosts/${TOOL_DOMAIN}" echo "==========================================" echo "Deploying Joke Billing Statements Tool" echo "==========================================" echo "[1/10] Installing system packages..." if ! command -v convert &> /dev/null; then apt-get update apt-get install -y imagemagick ghostscript echo "✓ ImageMagick and Ghostscript installed" else echo "✓ ImageMagick already installed" fi echo "[2/10] Checking PHP extensions..." PHP_VERSION=$(php -r "echo PHP_MAJOR_VERSION.'.'.PHP_MINOR_VERSION;") REQUIRED_EXTS=("curl" "json" "mbstring" "gd" "pdo" "pdo_mysql") for ext in "${REQUIRED_EXTS[@]}"; do if php -m | grep -q "^${ext}$"; then echo "✓ PHP extension ${ext} is installed" else echo "Installing PHP extension: ${ext}" apt-get install -y "php${PHP_VERSION}-${ext}" fi done echo "[3/10] Creating directory structure..." mkdir -p "${INSTALL_DIR}" mkdir -p "${INSTALL_DIR}/output" mkdir -p "${INSTALL_DIR}/lib/fpdf" mkdir -p "${VHOST_DIR}" chown -R www-data:www-data "${INSTALL_DIR}" chmod -R 755 "${INSTALL_DIR}" chmod 777 "${INSTALL_DIR}/output" echo "✓ Directories created" echo "[4/10] Installing FPDF library..." if [ ! -f "${INSTALL_DIR}/lib/fpdf/fpdf.php" ]; then cd "${INSTALL_DIR}/lib/fpdf" wget -q http://www.fpdf.org/en/download/fpdf186.zip unzip -q fpdf186.zip mv fpdf186/* . rm -rf fpdf186 fpdf186.zip chown -R www-data:www-data "${INSTALL_DIR}/lib/fpdf" echo "✓ FPDF library installed" else echo "✓ FPDF library already exists" fi echo "[5/10] Creating tool-specific database table..." mysql -u dp_user -p'#$Dealer2355' digitalprank_db <