Expensify logo Expensify automation · runs daily

Create Expensify expenses from receipts

After a trip or a busy week you have a pile of receipt photos and PDFs, and each one needs its own expense with the right workspace, category and the image attached before the report can go out.

Cotlet does it in your own Expensify account with get_workspace, create_expense and attach_receipt, called by your AI agent, an n8n workflow or a script.

Hosted · nothing to install or maintain

Can Expensify do this on its own?

Expensify does read receipts itself with SmartScan, and the Integration Server has an expense creator job (checked 14 Oct 2026). That job takes values you already extracted, and the API reference describes no job that attaches a receipt image to an expense. Expensify's MCP server is read-only, so it cannot create anything.

How you do it in Expensify today

  1. In Expensify, click Create, choose Create Expense, then Manual, enter the amount and currency, and click Next.
  2. Choose a workspace or an individual, then add the description, category, tags and tax, and set whether the expense is reimbursable or billable.
  3. Click Create expense, then open it and click the green + on the receipt icon to add the receipt file.
  4. The Scan icon in the left navigation tabs takes a receipt through drag and drop or Choose files, and you can also forward it to receipts@expensify.com.
  5. Each receipt repeats the same screens, and the category and tags are easy to leave blank when the pile is long.

How to create Expensify expenses from receipts

Prompt

Read the receipts in my Receipts folder. For each one, create an expense in the Acme Studio workspace with the merchant, date, amount and a category, attach the receipt image, and list anything you could not read.
  1. 01

    Learn the workspace rules first

    Your agent reads the workspace once with get_workspace and keeps its category and tag names, so it only picks values the workspace already has. A receipt that fits no category is listed for you instead of getting an invented one.

  2. 02

    Read each receipt

    The agent reads the merchant, date, total and currency off the image or PDF. If the total is unclear, or two amounts compete (subtotal and total with tip), it skips the file and says which.

  3. 03

    Create the expense

    create_expense runs once per receipt with the workspace, merchant, date, amount, currency, category and a short description. Each call waits for your OK by default, so you see the amount before it lands in your account.

  4. 04

    Attach the image

    attach_receipt adds the original file to the expense it just created, so approvers see the receipt next to the amount. If the call fails, the agent keeps the expense and reports which receipt is missing.

  5. 05

    Report the batch

    The agent returns what it created, the total per currency and the receipts it skipped, so nothing sits half done in your account.

What you get back

Example data

Receipts read: 6
Created 5 expenses in Acme Studio
- Blue Bottle Coffee, 12 Oct, USD 42.50, Meals
- Uber, 12 Oct, USD 31.20, Travel
- Delta Air Lines, 13 Oct, USD 286.40, Travel
Receipt attached to all 5
Skipped 1: taxi-night.jpg (total not readable)

Other ways to ask

  • Create expenses from the PDFs in this folder, all as non-reimbursable and billable to the client "Northwind".
  • Every evening, read new receipts from my Downloads folder and create expenses in Acme Studio, then show me the list.
  • Read this one receipt and ask me for the category before creating the expense.
  • Create expenses for these three emailed invoices, but attach nothing and leave the category blank.

What Expensify allows, and what to know first

  • Expensify creates a manual expense with an amount and currency, then a workspace or individual, then description, category, tags and tax, and a reimbursable or billable setting.
  • Attaching a receipt to an existing expense is the green + on the receipt icon, and replacing one is Replace on the receipt image.
  • On an Approved report only a Workspace Admin can attach or replace a receipt without unapproving the report first.
  • Attaching or replacing a receipt posts an "added a receipt" system message on the expense showing who made the change.
  • Workspace Merchant Rules can apply categories, tags and descriptions based on the merchant name, so some fields may be filled by Expensify after the expense exists.

create_expense asks for your OK by default. To run it daily without you, switch confirmation off for that tool in your dashboard.

Sources: Expensify Help: Create an expense · Expensify Help: Attach and edit receipts on expenses · Expensify Integration Server: API reference

Call create_expense from a script

curl

curl -X POST https://cotlet.dev/api/v1/expensify/expenses \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"workspace":"Acme Studio","amount":42.5,"currency":"USD","merchant":"Blue Bottle Coffee","date":"2026-10-12","category":"Meals","description":"Coffee with client before the Northwind kickoff"}'

Example response

{
  "expense_id": "T7f3a9c",
  "workspace": "Acme Studio",
  "merchant": "Blue Bottle Coffee",
  "date": "2026-10-12",
  "amount": 42.5,
  "currency": "USD",
  "category": "Meals",
  "description": "Coffee with client before the Northwind kickoff",
  "reimbursable": true,
  "has_receipt": false,
  "report_id": null,
  "created_at": "2026-10-14T09:31:00+02:00"
}

MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is expensify_write → create_expense. Example data.

Schedule it in n8n, Make, Zapier or cron

Expensify tools this automation uses

Cotlet Expensify tools used to create Expensify expenses from receipts
Tool Parameters
get_workspace workspace
create_expense workspace, amount, currency, merchant, date, category, tags, description, reimbursable, billable
attach_receipt expense_id, receipt_url, replace
All 14 Expensify tools with descriptions

Frequently asked questions

Does it replace Expensify SmartScan?

No. SmartScan is a feature inside Expensify that reads a receipt you scan or forward. Your agent reads the receipt on your side and creates the expense with the values you approve, which suits receipts in a folder, an inbox or a script.

Is it safe to connect Expensify to Cotlet?

Yes. You sign in to Expensify yourself, in your own Cloud Browser in the EU, and we never save your password. Your agents only get Expensify once you enable it, every background request is listed, and the browser profile is stored encrypted with AES-256-GCM, the cipher 1Password uses for its vaults. The AI model never sees a login, posts and messages wait for your OK, and Disable for agents cuts access in one click. Independent scanners grade cotlet.dev A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory; live results are on https://cotlet.dev/security.

Give your agent access to Expensify.

Free 7-day trial with 2,000 credits, no card needed. Cotlet is independent and not affiliated with Expensify.