Webhook
Send invoice data to any HTTP endpoint for custom integrations
Overview
The Webhook integration sends your invoice data to any HTTP endpoint. This is perfect for custom integrations, automation workflows, or connecting to services not directly supported by Invoice Radar.
Requirements
- An HTTP endpoint that accepts POST requests
- The endpoint must be publicly accessible (or accessible from your device)
Setup
Configuring in Invoice Radar
- Open Invoice Radar and go to Settings → Export
- Click Add destination and select Webhook
- Enter your configuration:
- Webhook URL - Your HTTP endpoint (must be HTTPS)
- Custom Headers (optional) - Authentication headers, API keys, etc.
- Choose a start date:
- All invoices - Export everything in your collection
- From specific date - Only export invoices after the selected date
- Click Test Webhook to validate your endpoint
- Enable the destination
Request format
Invoice Radar sends a POST request to your webhook URL for each invoice:
Headers
Content-Type: application/jsonPlus any custom headers you configure (e.g., Authorization, X-API-Key).
Body
{
"type": "invoice",
"amount": 1499.99,
"currency": "EUR",
"id": "INV-2025-001",
"vendor": "Example Vendor",
"date": "2025-11-12",
"pdfBase64": "JVBERi0xLjQK..."
}| Field | Type | Description |
|---|---|---|
type | string | Document type (invoice, refund, etc.) |
amount | number | Invoice amount |
currency | string | Currency code (e.g., EUR, USD) |
id | string | Invoice identifier |
vendor | string | Vendor/company name |
date | string | Invoice date (YYYY-MM-DD format) |
pdfBase64 | string | PDF file as base64-encoded string |
Response handling
Your endpoint should respond with an HTTP status code:
| Status | Meaning |
|---|---|
| 200-299 | Success - invoice marked as exported |
| 4xx | Client error - invoice marked as failed |
| 5xx | Server error - invoice marked as failed, will retry |
| Timeout | After 30 seconds - invoice marked as failed, will retry |
Failed invoices are automatically retried during future exports.
Use cases
Automation platforms
Connect to automation tools like:
- Zapier - Use Webhooks by Zapier trigger
- n8n - Use the Webhook node
- Make (formerly Integromat) - Use Custom Webhook trigger
- Pipedream - Use HTTP trigger
Custom business logic
- Store invoices in your own database
- Trigger internal workflows
- Send to unsupported accounting systems
- Custom data processing and enrichment
Internal systems
- Forward to internal APIs
- Integration with ERP systems
- Custom document management
Example implementations
n8n workflow
- Create a new workflow with a Webhook node
- Copy the webhook URL to Invoice Radar
- Add processing nodes (e.g., decode base64, save file, update database)
- Activate the workflow
Simple Node.js server
const express = require('express');
const app = express();
app.use(express.json({ limit: '50mb' }));
app.post('/invoice-webhook', (req, res) => {
const { vendor, id, amount, currency, date, pdfBase64 } = req.body;
console.log(`Received invoice ${id} from ${vendor}`);
console.log(`Amount: ${amount} ${currency}, Date: ${date}`);
// Decode and save PDF
const pdfBuffer = Buffer.from(pdfBase64, 'base64');
// ... save to disk or process further
res.status(200).json({ received: true });
});
app.listen(3000);Exporting invoices
Bulk export
Click Export Now in the Export settings to sync all unsynced invoices. Progress is shown in real-time.
Individual export
Open any invoice in the document details panel to see its export status and manually trigger an export.
Troubleshooting
"Test failed" error
- Verify your webhook URL is correct and publicly accessible
- Check that your endpoint accepts POST requests
- Verify any authentication headers are correct
Connection timeout
- Ensure your endpoint responds within 30 seconds
- Check that your server is running and accessible
- Verify no firewall is blocking the connection
Authentication errors
- Double-check custom header names and values
- Ensure API keys or tokens haven't expired
Large invoices failing
- The request body can be large due to base64-encoded PDFs
- Ensure your server accepts payloads up to 50MB
- Check your server's request size limits
Webhook returning 4xx/5xx errors
- Check your server logs for the incoming request
- Verify your endpoint logic is correct
- Ensure your endpoint returns a 2xx status code on success
Security
- Your webhook URL and headers are encrypted and stored only on your device
- Requests are sent directly from your device to your endpoint
- All connections use HTTPS/TLS encryption
- Consider using authentication headers (API keys, tokens) to secure your endpoint
Need help? Check the Automatic Export overview or our Security & Privacy guide.