Wallet Data Export/Import Format
This documentation covers Wallet Export (ZIP/CSV) for backup, data transfer, and migration. For personal data export under GDPR, see GDPR Data Export.
Export Types
Wallet Export (ZIP Archive)
Complete backup of a single wallet's data. Use this for backup, data transfer between devices, or migration.
- Location: Data Management > Export
- Format: ZIP archive containing CSV files
- Contents: Transactions, categories, budget plans, and metadata
GDPR Export (JSON)
Personal data export for GDPR compliance. Contains all your user data across all wallets.
View GDPR Export Documentation →ZIP Archive Format
The wallet export creates a ZIP archive named CrispBudget_Export_{timestamp}.zip containing the following files:
-
transactions.csv— All transaction records -
categories.csv— Custom category definitions (optional) -
budget_plans.csv— Budget plan history (optional) -
metadata.json— Export metadata including currency and version
Categories and budget plans files are only included if the wallet has custom categories or budget plans.
Import Methods
CrispBudget automatically detects the file format based on the file extension:
ZIP Import
Import a complete wallet backup including transactions, categories, and budget plans. The app extracts and validates all files automatically.
.zip CSV Import
Import transactions from a single CSV file. Perfect for manual editing in spreadsheet apps or importing from other tools.
.csv or .txt File Structure
The ZIP archive contains the following files:
-
transactions.csv— Transaction data -
categories.csv— Category settings -
budget_plans.csv— Budget plans -
metadata.json— Metadata (currency, version info, etc.)
Transactions (transactions.csv)
Column Definitions
| Column | Type | Required | Description |
|---|---|---|---|
Date | String | Yes | Date (ISO 8601 format: YYYY-MM-DD) |
Amount | String | Yes | Amount (decimal format: e.g., "10.50") |
Category | String | Yes | Category name |
Merchant | String | No | Merchant name (max 200 characters) |
Note | String | No | Note/memo (max 500 characters) |
Duration | String | No | Split duration in days (1-365) |
IsPrivate | String | No | Private flag ("true" or "false") |
Items | String | No | Item breakdown (JSON array format, see details below) |
Example
Date,Amount,Category,Merchant,Note,Duration,IsPrivate,Items
2025-01-13,15.00,Food,Starbucks,Morning coffee,,,
2025-01-12,85.00,Groceries,Whole Foods,Weekly groceries,7,,
2025-01-10,45.99,Shopping,Target,Household supplies,,false, Categories (categories.csv)
| Column | Type | Required | Description |
|---|---|---|---|
Name | String | Yes | Category name (max 50 characters, unique within wallet) |
Icon | String | Yes | SF Symbols icon name (e.g., "cart.fill") |
Color | String | Yes | Hex color code (e.g., "22C55E") |
SortOrder | String | Yes | Display order (starting from 0) |
Example
Name,Icon,Color,SortOrder
Food,fork.knife,F97316,0
Groceries,cart.fill,22C55E,1
Transport,car.fill,0EA5E9,2 Budget Plans (budget_plans.csv)
| Column | Type | Required | Description |
|---|---|---|---|
StartDate | String | Yes | Start date (ISO 8601 format: YYYY-MM-DD) |
DailyAmount | String | Yes | Daily budget amount (decimal format) |
Example
StartDate,DailyAmount
2025-01-01,30.00
2025-02-01,25.00 Metadata (metadata.json)
Export files include a JSON file with the following information:
{
"currencyCode": "USD",
"walletName": "Personal",
"exportDate": "2025-01-13T12:00:00Z",
"formatVersion": "1.0",
"totalTransactions": 150
} Import Requirements
- Currency code must match the target wallet
- Date, Amount, and Category are required fields
- Amounts must be in decimal format (e.g., 10.50)
- Dates must be in ISO 8601 format (YYYY-MM-DD)
- Non-existent category names will be created automatically
- Use UTF-8 encoding (BOM recommended)
- CSV quoting and escaping follows RFC 4180
Character Encoding
CSV files are exported in UTF-8 encoding. A BOM (Byte Order Mark) is included at the beginning for Excel compatibility.
Items Column Details
For transactions with multiple items (e.g., grocery receipts), you can store item details in the Items column as a JSON array.
Field Definitions
| Field | Type | Required | Description |
|---|---|---|---|
name | String | Yes | Item name |
amount | String | Yes | Amount (decimal format: e.g., "5.00") |
quantity | Number | No | Quantity (default: 1) |
category | String | No | Category name (uses parent transaction's category if omitted) |
duration | Number | No | Split duration in days (1-365) |
amountType | String | No | Amount type: "unit" (unit price) or "total" (total price), default: "unit" |
Example
[
{
"name": "Milk",
"amount": "4.99",
"quantity": 2,
"category": "Groceries",
"amountType": "unit"
},
{
"name": "Weekly groceries",
"amount": "70.00",
"quantity": 1,
"category": "Food",
"duration": 7,
"amountType": "total"
}
] Note: Quotes must be escaped in CSV format (" → "")