Note
As of January 2026, YNAB doesn't support linking a Yonder account. Yonder seems to support Open Banking via tell.money, but YNAB doesn't work with it. This solution is a hack that will hopefully become obsolete in the near future.
Import Yonder transactions into YNAB. Runs on Cloudflare Workers.
Two ways to use this:
- Telegram Bot - Send CSV files via Telegram
- iOS Shortcuts Webhook - POST CSV data directly from iOS Shortcuts
Both methods do the same thing - parse Yonder CSV exports and import them to your YNAB budget. Use whichever fits your workflow.
Get your YNAB credentials:
- API Key:
- Go to https://app.ynab.com/settings/developer
- Create a "Personal Access Token"
- Save this token
- Budget ID and Account ID:
- Open the YNAB account you want to import to
- URL format:
https://app.ynab.com/{budget-id}/accounts/{account-id} - Copy the budget and account UUIDs from the URL
# Clone the repository
git clone https://github.com/shekhirin/yonder-ynab
cd yonder-ynab
# Install Wrangler CLI (if not already installed)
npm install -g wrangler
# Authenticate with Cloudflare
wrangler loginSet these secrets in Cloudflare Workers:
# Enter your YNAB Personal Access Token
wrangler secret put YNAB_API_KEY
# Enter your budget ID (or "last-used")
wrangler secret put YNAB_BUDGET_ID
# Enter your account UUID
wrangler secret put YNAB_ACCOUNT_IDFor Telegram method:
# Enter your Telegram bot token from BotFather
wrangler secret put API_KEYFor iOS Shortcuts method:
# Enter a secure random string (generate with: openssl rand -hex 32)
wrangler secret put WEBHOOK_API_KEYwrangler deployAfter deployment, note your worker URL: https://<worker-name>.<your-subdomain>.workers.dev
-
Create a Telegram bot:
- Open Telegram and message @BotFather
- Send
/newbotand follow the prompts - Save the bot token (looks like
123456789:ABCdefGHIjklMNOpqrsTUVwxyz)
-
Set the bot token as
API_KEYsecret (see step 3 above) -
Set the webhook URL:
curl -X POST "https://api.telegram.org/bot<YOUR_BOT_TOKEN>/setWebhook?url=https://<worker-name>.<your-subdomain>.workers.dev"
- Open Yonder app
- Go to current month balance at the top
- Breakdown
- Download CSV
- Share on Telegarm
- Choose the chat with your Bot
- Send the file
- Set
WEBHOOK_API_KEYsecret (see step 3 above) - Get your worker URL:
https://<worker-name>.<your-subdomain>.workers.dev
- Open the shortcut link from your iPhone: https://www.icloud.com/shortcuts/57b9b3c3c8ac4f98992027bc106ce47f
- Replace the worker domain and API key with what you generated in the Setup phase
- Click on "Information" icon at the bottom
- Enable "Show in Share Sheet"
- Open Yonder app
- Go to current month balance at the top
- Breakdown
- Download CSV
- Share with "Yonder YNAB"
- Optionally jump to YNAB app by clicking "OK"
The service expects CSV files exported from the Yonder app with this format:
"Date/Time of transaction","Description","Amount (GBP)","Amount (in Charged Currency)","Currency","Category","Debit or Credit","Country"
"2026-01-01T10:34:50.211697","TFL - Transport for London","3.00","3.00","GBP","Transport","Debit","GBR"See yonder.csv in this repository for a sample file.
| Variable | Required For | Description |
|---|---|---|
YNAB_API_KEY |
Both | YNAB Personal Access Token |
YNAB_BUDGET_ID |
Both | Target budget UUID (or "last-used") |
YNAB_ACCOUNT_ID |
Both | Target account UUID |
API_KEY |
Telegram only | Telegram bot token from BotFather |
WEBHOOK_API_KEY |
Webhook only | Secret key for iOS Shortcuts authentication |