# Introduction (/docs) --- title: Introduction description: Automate invoice collection from web portals and emails with Invoice Radar. --- ## What is Invoice Radar? Invoice Radar automates invoice collection from web portals and emails, saving you hours of manual work. Whether you're managing personal finances or business accounting, Invoice Radar streamlines the entire process of gathering and organizing your financial documents. [Request Access to Invoice Radar](https://invoiceradar.com/) ยท [Browse Community Plugins](https://github.com/invoiceradar/plugins/tree/main/plugins) ## Key Features - **๐Ÿ”’ Privacy & Security First** - All processing happens locally on your computer. Your credentials never leave your device. - **๐Ÿค– Automated Collection** - Downloads invoices from web portals and scans email inboxes with intelligent document recognition. - **๐Ÿ”Œ Extensible Platform** - Support for 100+ services out of the box, with a plugin system for any web portal. ## Documentation ### Core Features - **[Invoices from Web Portals](/docs/invoices-from-web-portals)** - Automated invoice collection from web portals - **[Invoices from Emails](/docs/invoices-from-emails)** - Collect invoices from your email accounts - **[Security & Privacy](/docs/security-privacy)** - How Invoice Radar protects your data ### Plugin Development - **[Creating Your First Plugin](/docs/plugins)** - Get started with plugin development - **[Plugin Reference](/docs/plugin-reference)** - Complete plugin structure and configuration - **[Steps Reference](/docs/steps-reference)** - All available plugin actions - **[Useful Patterns](/docs/patterns)** - Common solutions and best practices ## Contributing Invoice Radar thrives on community contributions. Create plugins for new services, report issues, or suggest improvements on [GitHub](https://github.com/invoiceradar/plugins). --- Ready to get started? Check out the documentation sections above to find what you're looking for. # Invoices from Emails (/docs/invoices-from-emails) --- title: Invoices from Emails description: Automatically collect invoices from your email accounts with secure SMTP and Gmail integration --- ## How it works Invoice Radar scans your email attachments to find invoices. When you approve an invoice from a sender for the first time, it will automatically collect future invoices from that same sender. You stay in control of which companies you trust. ## Connecting your email #### SMTP connection SMTP connection works with any email provider (Gmail, Outlook, Yahoo, or your business email). It connects directly to your email server just like any email app on your phone or computer. Your emails stay private and are processed entirely on your device. #### Login with Google You can use the Gmail login to connect to your email. You'll authenticate directly with Google, and you can revoke access anytime from your Google account settings. The authentication happens directly between the app and Google with no server in between, ensuring there's no way for us to read your email.
Note: The Gmail integration hasn't been reviewed by Google yet, so you might see a warning during OAuth. This is normal for applications in development.
#### Login with Microsoft You can connect your Microsoft Outlook account with secure OAuth authentication. The connection is made directly between the app and Microsoft, ensuring your email data never passes through our servers. ## Your email stays private All email scanning happens locally on your computer. Invoice Radar only saves the invoice attachments you approve - your actual emails are never stored or transmitted anywhere. Connections to your email provider use TLS/SSL encryption, just like any secure email client. When using OAuth for Gmail or Microsoft, the authentication happens directly between the app and the email provider, meaning no data passes through our servers. For more details about how Invoice Radar protects your data, see our [Security & Privacy](/docs/security-privacy) guide. ## Automatic downloads from payment providers Some companies like **Paddle** and **SumUp** send you email notifications with download links instead of attaching the actual invoice PDF. Invoice Radar handles this automatically. When you receive a Paddle invoice notification, Invoice Radar will detect it, visit the Paddle portal using the link in your email, and download the actual PDF for you. SumUp receipts work the same way. More payment providers will be supported in the future. ## Configuration Options You can customize how Invoice Radar scans your email: - **Folder Selection** - Scan specific folders like "Inbox" or "Receipts" instead of all folders - **Email Address Filtering** - Filter by recipient address when multiple emails forward to the same inbox (e.g., billing@company.com) # Invoices from Web Portals (/docs/invoices-from-web-portals) --- title: Invoices from Web Portals description: Automatically collect invoices from web portals using Invoice Radar --- ## Overview Invoice Radar automates invoice collection from web portals by acting as your personal browser assistant. It navigates to your service providers, logs in, finds your invoices, and downloads them automatically - all running locally on your computer, just like a regular browser would. ## How It Works Getting started with Invoice Radar is simple: 1. **Choose a Service** - Select from over 100 pre-built plugins for popular services like Amazon, ChatGPT, AWS, and more 2. **Press Start** - Invoice Radar will navigate to the service, log in, and collect your invoices automatically 3. **Optional: Add Credentials** - For convenience, you can securely store your login details to enable automatic authentication That's it! Invoice Radar handles all the complex web automation behind the scenes. You can also create [your own plugins](/docs/plugins) to support any service you use. ## Control over your credentials You have complete control over how Invoice Radar handles your credentials: ### Manual Login (Maximum Security) Log in manually each time you collect invoices. Invoice Radar never touches your credentials - it's exactly like using a regular browser. ### Stored Credentials (Balanced) Let Invoice Radar securely store and autofill your credentials. All data is encrypted and stored locally in the safe storage on your device. ### Full Automation (Maximum Convenience) Optionally store your two-factor authentication (OTP) secrets for completely hands-free operation. ## Supported Services Invoice Radar supports a wide range of services including: - Cloud providers (AWS, Google Cloud, Azure) - Payment processors (Stripe, PayPal) - SaaS platforms (Shopify, GitHub) - Utility providers - And many more... Browse our [community plugins](https://github.com/invoiceradar/plugins/tree/main/plugins) or learn how to [create your own](/docs/plugins). ## Security & Privacy All automation happens locally on your computer. Invoice Radar never sends your credentials or financial data to external servers - it's as secure as using your regular browser. For detailed security information, see our [Security & Privacy](/docs/security-privacy) guide. ## Getting Started [Request access to Invoice Radar](https://invoiceradar.com/) to start automating your invoice collection from web portals. Check out our [Plugin Development](/docs/plugins) guide to extend Invoice Radar with custom integrations. # Security & Privacy (/docs/security-privacy) --- title: Security & Privacy description: How Invoice Radar protects your data through local processing and end-to-end encryption --- ## Core Security Principles Invoice Radar is built with a privacy-first architecture. Unlike cloud solutions, all collection happens locally on your computer - similar to how your web browser works. Your sensitive data stays fully private with our end-to-end encrypted synchronization. ## Runs locally on your computer When you collect invoices with Invoice Radar, it does not depend on any external services. It runs locally on your computer, ensuring your data stays private. **Key security benefits:** - Your login credentials never leave your computer - No need to share passwords or emails with external services - Full control over your sensitive financial data ## Secure Syncing To allow you to access your data from multiple devices and collaborate with team members, Invoice Radar synchronizes your data using end-to-end encryption. All your data is encrypted on your device using a memorable passphrase that serves as your account login, ensuring that your data remains unreadable to anyone without your passphrase. Passwords and login sessions stay on each device only. Even if our servers get hacked, your data stays safe without your passphrase. ## AI Data Extraction Invoice Radar offers optional AI-powered data extraction to automatically identify key information from your invoices, such as vendor details, amounts, and dates. This feature is completely opt-in and designed with privacy in mind. When used, your invoice documents are sent to our AI service for processing, then immediately returned to your device. No data is stored on our servers. # Useful Patterns (/docs/patterns) --- title: Useful Patterns description: Common patterns and best practices for Invoice Radar plugin development --- ## Authentication Patterns ### Common patterns for authentication checks (`checkAuth`) #### Pattern 1: Go to Dashboard and Check URL Many services automatically redirect to the login page if the user is not authenticated. We can use this behavior to check if the user is authenticated. ```json { "action": "navigate", "url": "https://example.com/login" }, { "action": "checkURL", "url": "https://example.com/account" } ``` Depending on the service, they may redirect you from the dashboard to the login page if you are not authenticated. In this case, you can use the `checkURL` step to check if the URL still matches after visiting the dashboard. ```json { "action": "navigate", "url": "https://example.com/dashboard" }, { "action": "checkURL", "url": "https://example.com/dashboard" } ``` Note that you can use glob patterns to match dynamic URLs: `https://example.com/dashboard/**`. #### Pattern 2: Check for Logout Button You can use a selector that is unique to the authenticated state to check if the user is authenticated, e.g. a logout button or profile link. ```json { "action": "navigate", "url": "https://example.com/home" }, { "action": "waitForElement", "selector": "#logout-button" } ``` #### Tip: Make sure the website is fully loaded In some cases, the website has not fully loaded when the `checkElementExists` step is executed. To avoid this, you can use the `waitForNetworkIdle` attribute to wait for the page to be fully loaded. ```json { "action": "navigate", "url": "https://example.com/home", "waitForNetworkIdle": true }, { "action": "checkElementExists", "selector": "#logout-button" } ``` ### Common patterns for start authentication (`startAuth`) #### Pattern 1: Go to Login Page and wait for logged in state Most authentication processes start by navigating to the login page and waiting for a specific element to appear after a successful login. Remember that the browser will be visible during the authentication process, allowing the user to interact with the login form. The authentication flow itself can be automated, but isn't required. ```json { "action": "navigate", "url": "https://example.com/login" }, { "action": "waitForElement", "selector": "#logout-button", "timeout": 120000 } ``` To give the user enough time to log in, it's recommended to provide a long timeout to the wait step, with a default of 120 seconds. ## Advanced Patterns ### Running a fetch request Sometimes, you might need to run a fetch request inside a step to fetch data from an API. To do this, you can use the `extractAll` action. ```json { "action": "extractAll", "variable": "invoice", "script": "fetch('https://example.com/api/invoices').then(res => res.json())", "forEach": [ { "action": "downloadPdf", "url": "{{invoice.url}}", "document": { "id": "{{invoice.id}}", "date": "{{invoice.date}}", "total": "{{invoice.total}}" } } ] } ``` This will run the fetch request and return the result as a JavaScript object. ### Run steps inside an `