Integrations
Notion
Build an auto-populated expense tracker in Notion. Every receipt you scan creates a new row in your database — with vendor, amount, date, category, and line items.
Step 1 — Set up your Notion database
Create a new database in Notion with these properties:
| Property name | Type | Maps to |
|---|---|---|
| Vendor | Title | data.vendor |
| Amount | Number | data.total |
| Date | Date | data.date |
| Currency | Select | data.currency |
| Category | Select | data.category |
| Payment Method | Rich Text | data.payment_method |
| Tax | Number | data.taxes[0].amount |
| Tip | Number | data.tip |
Option A — Make (no-code)
1
Trigger — Google Drive or email
Watch a /Receipts folder in Google Drive, or a Gmail label for receipt emails.
2
HTTP – POST to ReceiptConverter
URL: https://receiptconverter.com/api/v1/convert Headers: Authorization: Bearer sk_live_your_key Body: multipart/form-data, field: file
3
Notion – Create a database item
Vendor: {{2.data.vendor}}
Amount: {{2.data.total}}
Date: {{2.data.date}}
Category: {{2.data.category}}Option B — Direct API (Node.js)
For programmatic use, combine ReceiptConverter with the Notion API:
import { readFileSync } from "node:fs";
import { Client as NotionClient } from "@notionhq/client";
const RC_KEY = process.env.RECEIPTCONVERTER_API_KEY;
const notion = new NotionClient({ auth: process.env.NOTION_TOKEN });
const DB_ID = process.env.NOTION_DATABASE_ID;
async function parseAndSave(filePath) {
// 1. Parse receipt
const file = new File([readFileSync(filePath)], "receipt.jpg");
const form = new FormData();
form.append("file", file);
const rcRes = await fetch("https://receiptconverter.com/api/v1/convert", {
method: "POST",
headers: { Authorization: `Bearer ${RC_KEY}` },
body: form,
});
if (!rcRes.ok) throw new Error("Receipt parse failed");
const { data } = await rcRes.json();
// 2. Add to Notion
await notion.pages.create({
parent: { database_id: DB_ID },
properties: {
Vendor: { title: [{ text: { content: data.vendor ?? "Unknown" } }] },
Amount: { number: data.total },
Date: { date: { start: data.date ?? new Date().toISOString().slice(0, 10) } },
Currency: { select: { name: data.currency ?? "USD" } },
Category: { select: { name: data.category ?? "Other" } },
"Payment Method":{ rich_text: [{ text: { content: data.payment_method ?? "" } }] },
},
});
console.log(`Saved ${data.vendor} ($${data.total}) to Notion`);
}
await parseAndSave("./lunch.jpg");npm install @notionhq/clientNext steps: QuickBooks guide · Batch all your receipts · Full API reference