Integrations

Connect ReceiptCSV to your favorite tools via webhooks. Available on the Pro plan.

Z

Zapier

Forward every extracted receipt to Zapier in real-time. Combine with thousands of apps — Google Sheets, Slack, Notion, Airtable, QuickBooks, and more.

Setup

  1. Create a Zap — Go to Zapier and create a new Zap. Select Webhooks by Zapier as the trigger app and Catch Hook as the trigger event.
  2. Copy your webhook URL — After configuring the trigger, Zapier generates a unique URL like https://hooks.zapier.com/hooks/catch/12345/abc123/. Copy it.
  3. Save it in ReceiptCSV — Go to Account settings and paste your webhook URL into the Zapier integration section. Click Save.
  4. Test it — Upload a receipt to your dashboard. The extracted data will be sent to your Zap instantly. In Zapier, click Test trigger to pull in the live data.
  5. Add an action — Choose the app you want to send data to (e.g., Google Sheets, Slack, Notion). Map the fields from the webhook payload to the action fields.
  6. Turn on your Zap — Once tested, publish your Zap. Every future receipt will flow through automatically.

Webhook payload

Each time a receipt is saved, ReceiptCSV sends a POST request with the following JSON payload:

{
  "event": "receipt.created",
  "created_at": "2026-06-23T05:42:31.174Z",
  "data": {
    "id": "uuid-of-the-receipt",
    "store_name": "Berghotel Grosse Scheidegg",
    "purchase_date": "2007-07-30",
    "purchase_time": "13:29",
    "total_amount": 54.5,
    "currency": "CHF",
    "doc_type": "receipt",
    "line_items": [
      { "name": "Latte Macchiato", "qty": 2, "price": 4.5 },
      { "name": "Schweinschnitzel", "qty": 1, "price": 22 }
    ],
    "extracted_data": null,
    "tags": null,
    "image_url": "https://..."
  }
}

Field notes

  • doc_type can be receipt, invoice, business_card, label, or bank_statement.
  • line_items is only present for receipts and invoices.
  • For bank statements, each transaction is sent as a separate webhook event.
  • extracted_data contains doc-type-specific fields (e.g., SKU and weight for labels, transaction arrays for bank statements).
  • id may be empty for receipts saved via the batch upload flow (the webhook fires client-side). All other fields are populated.

Example: Google Sheets

Add a Google Sheets action step in Zapier. Create a new row with:

Sheet columnZapier field
Datepurchase_date
Timepurchase_time
Storestore_name
Amounttotal_amount
Currencycurrency
Typedoc_type
Imageimage_url

Example: Slack

Add a Slack action step. Send a message to a channel with:

New receipt saved!
*Store:* {{store_name}}
*Date:* {{purchase_date}} {{purchase_time}}
*Amount:* {{total_amount}} {{currency}}
*Type:* {{doc_type}}

@

Email-to-receipt

Forward receipt photos from your phone to your private email address. ReceiptCSV processes the images and saves the extracted data to your account — no app needed.

Setup

  1. Get your address — Go to Account settings and click Create email address in the Email-to-receipt section. You will get an address like rcsv-abc123@inbound.receiptcsv.site.
  2. Save as a contact — Add your receipt email address to your phone's contacts so it's easy to find when forwarding.
  3. Forward receipts — When you receive a receipt by email (e.g., from an online purchase), forward it to your receipt address. You can also take a photo and email it as an attachment.
  4. Done — The receipt is processed and appears in your dashboard within a few seconds. Only image attachments (.jpg, .png, .webp) are processed.

Requirements

  • Only image attachments are processed. PDF attachments are not supported via email.
  • Each email can include multiple images — all will be processed.
  • Your upload limit still applies. Each image counts as one upload.
  • Keep your email address private — anyone who knows it can send receipts to your account.

Provider setup (server-side)

The email-to-receipt feature works with any provider that POSTs inbound emails as form data. Below is the SendGrid Inbound Parse configuration:

  1. Vercel DNS — Add an MX record for your inbound subdomain:
    Type: MX Name: inbound Value: mx.sendgrid.net Priority: 10
  2. SendGrid Dashboard — Go to Settings → Inbound Parse → Add Host & URL:
    • Hostname: inbound.receiptcsv.site
    • URL: https://receiptcsv.site/api/integrations/email/inbound
    • Spam check: unchecked
  3. Environment variable — In your hosting dashboard, set:
    INBOUND_EMAIL_DOMAIN=inbound.receiptcsv.site

G

Google Sheets (direct sync)

Sync receipts directly to Google Sheets without going through Zapier. Each saved receipt is appended as a new row in your spreadsheet automatically.

Setup

  1. Connect your Google account — Go to Account settings and click Connect Google Sheets.
  2. Authorize — You will be redirected to Google. Sign in and grant ReceiptCSV permission to create and update spreadsheets.
  3. Automatic setup — A new spreadsheet called ReceiptCSV Expenses is created with columns: Date, Store, Amount, Currency, Category, Type. Every future receipt is appended automatically.

Spreadsheet columns

ColumnDescription
DatePurchase date (YYYY-MM-DD)
StoreStore or merchant name
AmountTotal amount (numeric)
CurrencyCurrency symbol or code
CategoryAuto-classified category
TypeDocument type (receipt, invoice, etc.)

Q

QuickBooks Online

Push receipt data directly to QuickBooks Online as bill expenses. Vendor records are created automatically based on store names.

Setup

  1. Connect QuickBooks — Go to Account settings and click Connect QuickBooks.
  2. Authorize — Sign in to your Intuit account and grant access. Choose the company you want to send expenses to.
  3. Done — Every saved receipt creates a Bill in QuickBooks. The store name becomes the vendor (created if new), the amount is the bill total, and line items are included in the description.

What gets created

  • A Bill transaction in QuickBooks with the receipt date and total.
  • A Vendor record matching the store name (or reused if it already exists).
  • The expense is categorized under Office Expenses by default.
  • Line item names from the receipt are included in the bill description.

Environment variables

QuickBooks integration requires the following environment variables to be set:

QUICKBOOKS_CLIENT_ID=your_client_id
QUICKBOOKS_CLIENT_SECRET=your_client_secret
QUICKBOOKS_SANDBOX=false  # Set to true for testing

To get these keys, create an app in the Intuit Developer portal and enable QuickBooks Online API. Use sandbox mode for testing.


API access

Every receipt is available via the Supabase API directly. You can connect your own applications using API tokens generated from Account settings.

The browser extension sends receipts from any webpage to your account. Download the extension ZIP from Account settings and follow the setup guide there.


CSV export

No integration needed — your dashboard includes a built-in CSV download button. Filter by date range or document type, then export. The CSV includes all extracted columns and bank-statement-specific fields when applicable.