Files
certain/ios/Tests/Fixtures/antworten.json
T
GuidoandClaude Opus 5 bab5cc5060 test: Die Pruefdatei deckt auch die Nebenraeume ab
Erkennungswoerter einer Kategorie, markierte Woerter, der Stand des zweiten
Faktors und die Bankverbindungen kommen jetzt mit in
ios/Tests/Fixtures/antworten.json. Das Skript gibt die IDs aus der Saat
zurueck, damit ein Pfad wie /categories/{id}/keywords ueberhaupt gebaut
werden kann.

Zwei davon bleiben leer, und das steht auch dort: Eine Markierung entsteht
erst nach fuenf Anwendungen mit Korrekturen, eine Bankanbindung ohne echten
Anbieter gar nicht. Die Felder von BankConnectionOut deckt der Test also
NICHT ab - wer sie aendert, prueft von Hand.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-10-21 22:03:28 +02:00

1419 lines
30 KiB
JSON

{
"version": {
"name": "Certain Finance",
"version": "0.1.0",
"git_sha": null
},
"ichSelbst": {
"id": 1,
"username": "admin",
"role": "admin",
"display_name": null,
"is_active": true,
"must_change_password": false,
"must_change_password_reason": null,
"totp_enabled": false,
"created_at": "2026-10-21T19:57:08.443998",
"mfa_setup_required": false
},
"einstellungen": [
{
"key": "base_currency",
"value": "EUR"
},
{
"key": "budget_start_day",
"value": "1"
},
{
"key": "locale",
"value": "de"
},
{
"key": "theme",
"value": "system"
},
{
"key": "date_format",
"value": "de"
},
{
"key": "active_currencies",
"value": "EUR,CHF,USD"
}
],
"konten": [
{
"id": 1,
"name": "Girokonto",
"type": "girokonto",
"currency": "EUR",
"icon": "wallet",
"color": "#3f51b5",
"opening_balance_cents": 120000,
"opening_date": null,
"credit_limit_cents": null,
"is_locked": false,
"is_archived": false,
"position": 0,
"savings_category_id": null,
"identifiers": [],
"balance_cents": 419874,
"balance_base_cents": 419874,
"bank_balance_cents": null,
"bank_balance_at": null,
"bank_balance_vergleichbar": false
},
{
"id": 2,
"name": "Sparen",
"type": "sparkonto",
"currency": "CHF",
"icon": "wallet",
"color": "#3f51b5",
"opening_balance_cents": 500000,
"opening_date": null,
"credit_limit_cents": null,
"is_locked": true,
"is_archived": false,
"position": 1,
"savings_category_id": null,
"identifiers": [],
"balance_cents": 535000,
"balance_base_cents": 535000,
"bank_balance_cents": null,
"bank_balance_at": null,
"bank_balance_vergleichbar": false
},
{
"id": 3,
"name": "Zweitkonto",
"type": "girokonto",
"currency": "EUR",
"icon": "wallet",
"color": "#3f51b5",
"opening_balance_cents": 0,
"opening_date": null,
"credit_limit_cents": null,
"is_locked": false,
"is_archived": false,
"position": 2,
"savings_category_id": null,
"identifiers": [],
"balance_cents": 7500,
"balance_base_cents": 7500,
"bank_balance_cents": null,
"bank_balance_at": null,
"bank_balance_vergleichbar": false
}
],
"kategoriegruppen": [
{
"id": 1,
"name": "Fixkosten",
"kind": "expense",
"icon": "landmark",
"color": "#3f51b5",
"position": 0,
"is_builtin": true,
"categories": [
{
"id": 1,
"group_id": 1,
"name": "Wohnen",
"type": "expense",
"icon": "home",
"color": "#3f51b5",
"position": 0,
"is_builtin": true,
"is_archived": false,
"excluded_from_stats": false,
"spending_is_good": false,
"keyword_count": 1
},
{
"id": 2,
"group_id": 1,
"name": "Versicherungen",
"type": "expense",
"icon": "shield",
"color": "#3f51b5",
"position": 1,
"is_builtin": true,
"is_archived": false,
"excluded_from_stats": false,
"spending_is_good": false,
"keyword_count": 0
},
{
"id": 3,
"group_id": 1,
"name": "Telefon & Internet",
"type": "expense",
"icon": "wifi",
"color": "#3f51b5",
"position": 2,
"is_builtin": true,
"is_archived": false,
"excluded_from_stats": false,
"spending_is_good": false,
"keyword_count": 0
},
{
"id": 4,
"group_id": 1,
"name": "Abos & Streaming",
"type": "expense",
"icon": "refresh-ccw",
"color": "#3f51b5",
"position": 3,
"is_builtin": true,
"is_archived": false,
"excluded_from_stats": false,
"spending_is_good": false,
"keyword_count": 0
}
]
},
{
"id": 2,
"name": "Lebenshaltung",
"kind": "expense",
"icon": "shopping-cart",
"color": "#2e7d55",
"position": 1,
"is_builtin": true,
"categories": [
{
"id": 5,
"group_id": 2,
"name": "Lebensmittel",
"type": "expense",
"icon": "shopping-cart",
"color": "#2e7d55",
"position": 0,
"is_builtin": true,
"is_archived": false,
"excluded_from_stats": false,
"spending_is_good": false,
"keyword_count": 0
},
{
"id": 6,
"group_id": 2,
"name": "Restaurant",
"type": "expense",
"icon": "utensils",
"color": "#2e7d55",
"position": 1,
"is_builtin": true,
"is_archived": false,
"excluded_from_stats": false,
"spending_is_good": false,
"keyword_count": 0
},
{
"id": 7,
"group_id": 2,
"name": "Mobilität",
"type": "expense",
"icon": "car",
"color": "#2e7d55",
"position": 2,
"is_builtin": true,
"is_archived": false,
"excluded_from_stats": false,
"spending_is_good": false,
"keyword_count": 0
},
{
"id": 8,
"group_id": 2,
"name": "Gesundheit",
"type": "expense",
"icon": "heart-pulse",
"color": "#2e7d55",
"position": 3,
"is_builtin": true,
"is_archived": false,
"excluded_from_stats": false,
"spending_is_good": false,
"keyword_count": 0
},
{
"id": 9,
"group_id": 2,
"name": "Kleidung",
"type": "expense",
"icon": "shirt",
"color": "#2e7d55",
"position": 4,
"is_builtin": true,
"is_archived": false,
"excluded_from_stats": false,
"spending_is_good": false,
"keyword_count": 0
}
]
},
{
"id": 3,
"name": "Freizeit & Persönliches",
"kind": "expense",
"icon": "film",
"color": "#b06f14",
"position": 2,
"is_builtin": true,
"categories": [
{
"id": 10,
"group_id": 3,
"name": "Freizeit",
"type": "expense",
"icon": "film",
"color": "#b06f14",
"position": 0,
"is_builtin": true,
"is_archived": false,
"excluded_from_stats": false,
"spending_is_good": false,
"keyword_count": 0
},
{
"id": 11,
"group_id": 3,
"name": "Reisen",
"type": "expense",
"icon": "plane",
"color": "#b06f14",
"position": 1,
"is_builtin": true,
"is_archived": false,
"excluded_from_stats": false,
"spending_is_good": false,
"keyword_count": 0
},
{
"id": 12,
"group_id": 3,
"name": "Sport & Fitness",
"type": "expense",
"icon": "dumbbell",
"color": "#b06f14",
"position": 2,
"is_builtin": true,
"is_archived": false,
"excluded_from_stats": false,
"spending_is_good": false,
"keyword_count": 0
},
{
"id": 13,
"group_id": 3,
"name": "Bildung",
"type": "expense",
"icon": "graduation-cap",
"color": "#b06f14",
"position": 3,
"is_builtin": true,
"is_archived": false,
"excluded_from_stats": false,
"spending_is_good": false,
"keyword_count": 0
},
{
"id": 14,
"group_id": 3,
"name": "Haustiere",
"type": "expense",
"icon": "paw-print",
"color": "#b06f14",
"position": 4,
"is_builtin": true,
"is_archived": false,
"excluded_from_stats": false,
"spending_is_good": false,
"keyword_count": 0
},
{
"id": 15,
"group_id": 3,
"name": "Geschenke & Spenden",
"type": "expense",
"icon": "gift",
"color": "#b06f14",
"position": 5,
"is_builtin": true,
"is_archived": false,
"excluded_from_stats": false,
"spending_is_good": false,
"keyword_count": 0
}
]
},
{
"id": 4,
"name": "Finanzen",
"kind": "expense",
"icon": "piggy-bank",
"color": "#2a78d6",
"position": 3,
"is_builtin": true,
"categories": [
{
"id": 16,
"group_id": 4,
"name": "Sparen & Investments",
"type": "expense",
"icon": "piggy-bank",
"color": "#2a78d6",
"position": 0,
"is_builtin": true,
"is_archived": false,
"excluded_from_stats": false,
"spending_is_good": false,
"keyword_count": 0
},
{
"id": 17,
"group_id": 4,
"name": "Steuern & Gebühren",
"type": "expense",
"icon": "percent",
"color": "#2a78d6",
"position": 1,
"is_builtin": true,
"is_archived": false,
"excluded_from_stats": false,
"spending_is_good": false,
"keyword_count": 0
}
]
},
{
"id": 5,
"name": "Sonstiges",
"kind": "expense",
"icon": "more-horizontal",
"color": "#6b7480",
"position": 4,
"is_builtin": true,
"categories": [
{
"id": 18,
"group_id": 5,
"name": "Sonstiges",
"type": "expense",
"icon": "more-horizontal",
"color": "#6b7480",
"position": 0,
"is_builtin": true,
"is_archived": false,
"excluded_from_stats": false,
"spending_is_good": false,
"keyword_count": 0
}
]
},
{
"id": 6,
"name": "Einnahmen",
"kind": "income",
"icon": "coins",
"color": "#2e7d55",
"position": 5,
"is_builtin": true,
"categories": [
{
"id": 19,
"group_id": 6,
"name": "Gehalt",
"type": "income",
"icon": "banknote",
"color": "#2e7d55",
"position": 0,
"is_builtin": true,
"is_archived": false,
"excluded_from_stats": false,
"spending_is_good": false,
"keyword_count": 0
},
{
"id": 20,
"group_id": 6,
"name": "Nebeneinkünfte",
"type": "income",
"icon": "coins",
"color": "#2e7d55",
"position": 1,
"is_builtin": true,
"is_archived": false,
"excluded_from_stats": false,
"spending_is_good": false,
"keyword_count": 0
},
{
"id": 21,
"group_id": 6,
"name": "Erstattungen",
"type": "income",
"icon": "receipt",
"color": "#2e7d55",
"position": 2,
"is_builtin": true,
"is_archived": false,
"excluded_from_stats": false,
"spending_is_good": false,
"keyword_count": 0
}
]
}
],
"schlagwoerter": [
{
"id": 1,
"name": "Urlaub",
"color": "#2a78d6"
}
],
"buchungen": [
{
"id": 10,
"type": "income",
"date": "2026-10-21",
"time": null,
"account_id": 3,
"to_account_id": null,
"account_currency": "EUR",
"amount_cents": 7500,
"to_amount_cents": null,
"fx_rate": null,
"amount_eur_cents": 7500,
"amount_base_cents": 7500,
"category_id": null,
"budget_treatment": null,
"budget_category_id": null,
"subscription_id": null,
"budget_period": "2026-10",
"budget_period_manuell": false,
"import_batch_id": null,
"herkunft": "manuell",
"payee": "Dauerauftrag",
"description": null,
"notes": null,
"tag_ids": []
},
{
"id": 9,
"type": "expense",
"date": "2026-10-21",
"time": null,
"account_id": 1,
"to_account_id": null,
"account_currency": "EUR",
"amount_cents": 7500,
"to_amount_cents": null,
"fx_rate": null,
"amount_eur_cents": 7500,
"amount_base_cents": 7500,
"category_id": null,
"budget_treatment": null,
"budget_category_id": null,
"subscription_id": null,
"budget_period": "2026-10",
"budget_period_manuell": false,
"import_batch_id": null,
"herkunft": "manuell",
"payee": "Dauerauftrag",
"description": null,
"notes": null,
"tag_ids": []
},
{
"id": 8,
"type": "expense",
"date": "2026-10-21",
"time": null,
"account_id": 1,
"to_account_id": null,
"account_currency": "EUR",
"amount_cents": 1043,
"to_amount_cents": null,
"fx_rate": null,
"amount_eur_cents": 1043,
"amount_base_cents": 1043,
"category_id": 1,
"budget_treatment": null,
"budget_category_id": null,
"subscription_id": null,
"budget_period": "2026-10",
"budget_period_manuell": false,
"import_batch_id": null,
"herkunft": "manuell",
"payee": "Kiosk",
"description": null,
"notes": null,
"tag_ids": []
},
{
"id": 7,
"type": "expense",
"date": "2026-10-21",
"time": null,
"account_id": 1,
"to_account_id": null,
"account_currency": "EUR",
"amount_cents": 1043,
"to_amount_cents": null,
"fx_rate": null,
"amount_eur_cents": 1043,
"amount_base_cents": 1043,
"category_id": 1,
"budget_treatment": null,
"budget_category_id": null,
"subscription_id": null,
"budget_period": "2026-10",
"budget_period_manuell": false,
"import_batch_id": null,
"herkunft": "manuell",
"payee": "Kiosk",
"description": null,
"notes": null,
"tag_ids": []
},
{
"id": 6,
"type": "expense",
"date": "2026-10-21",
"time": null,
"account_id": 1,
"to_account_id": null,
"account_currency": "EUR",
"amount_cents": 1290,
"to_amount_cents": null,
"fx_rate": null,
"amount_eur_cents": 1290,
"amount_base_cents": 1290,
"category_id": null,
"budget_treatment": null,
"budget_category_id": null,
"subscription_id": null,
"budget_period": "2026-10",
"budget_period_manuell": false,
"import_batch_id": null,
"herkunft": "shortcut",
"payee": "Baeckerei",
"description": null,
"notes": null,
"tag_ids": []
},
{
"id": 5,
"type": "income",
"date": "2026-10-21",
"time": null,
"account_id": 2,
"to_account_id": null,
"account_currency": "CHF",
"amount_cents": 15000,
"to_amount_cents": null,
"fx_rate": null,
"amount_eur_cents": 15000,
"amount_base_cents": 15000,
"category_id": null,
"budget_treatment": null,
"budget_category_id": null,
"subscription_id": null,
"budget_period": "2026-10",
"budget_period_manuell": false,
"import_batch_id": null,
"herkunft": "manuell",
"payee": "Gutschrift",
"description": null,
"notes": null,
"tag_ids": []
},
{
"id": 4,
"type": "expense",
"date": "2026-10-21",
"time": null,
"account_id": 1,
"to_account_id": null,
"account_currency": "EUR",
"amount_cents": 15000,
"to_amount_cents": null,
"fx_rate": null,
"amount_eur_cents": 15000,
"amount_base_cents": 15000,
"category_id": null,
"budget_treatment": null,
"budget_category_id": null,
"subscription_id": null,
"budget_period": "2026-10",
"budget_period_manuell": false,
"import_batch_id": null,
"herkunft": "manuell",
"payee": "Ueberweisung",
"description": null,
"notes": null,
"tag_ids": []
},
{
"id": 3,
"type": "transfer",
"date": "2026-10-21",
"time": null,
"account_id": 1,
"to_account_id": 2,
"account_currency": "EUR",
"amount_cents": 20000,
"to_amount_cents": 20000,
"fx_rate": null,
"amount_eur_cents": 20000,
"amount_base_cents": 20000,
"category_id": null,
"budget_treatment": null,
"budget_category_id": null,
"subscription_id": null,
"budget_period": "2026-10",
"budget_period_manuell": false,
"import_batch_id": null,
"herkunft": "manuell",
"payee": null,
"description": null,
"notes": null,
"tag_ids": []
},
{
"id": 2,
"type": "income",
"date": "2026-10-21",
"time": null,
"account_id": 1,
"to_account_id": null,
"account_currency": "EUR",
"amount_cents": 350000,
"to_amount_cents": null,
"fx_rate": null,
"amount_eur_cents": 350000,
"amount_base_cents": 350000,
"category_id": 19,
"budget_treatment": null,
"budget_category_id": null,
"subscription_id": null,
"budget_period": "2026-10",
"budget_period_manuell": false,
"import_batch_id": null,
"herkunft": "manuell",
"payee": "Arbeitgeber",
"description": null,
"notes": null,
"tag_ids": []
},
{
"id": 1,
"type": "expense",
"date": "2026-10-21",
"time": null,
"account_id": 1,
"to_account_id": null,
"account_currency": "EUR",
"amount_cents": 4250,
"to_amount_cents": null,
"fx_rate": null,
"amount_eur_cents": 4250,
"amount_base_cents": 4250,
"category_id": 1,
"budget_treatment": null,
"budget_category_id": null,
"subscription_id": 1,
"budget_period": "2026-10",
"budget_period_manuell": false,
"import_batch_id": null,
"herkunft": "manuell",
"payee": "Supermarkt",
"description": "Wocheneinkauf",
"notes": "mit Pfand",
"tag_ids": [
1
]
}
],
"uebertragsverknuepfungen": {
"4": {
"link_id": 1,
"other_id": 5,
"richtung": "raus",
"other_account_id": 2,
"automatisch": false
},
"5": {
"link_id": 1,
"other_id": 4,
"richtung": "rein",
"other_account_id": 1,
"automatisch": false
}
},
"budget": {
"label": "2026-10",
"start": "2026-10-01",
"end": "2026-10-31",
"customized": false,
"base_currency": "EUR",
"prev": "2026-09",
"next": "2026-11",
"groups": [
{
"id": 1,
"name": "Fixkosten",
"icon": "landmark",
"color": "#3f51b5",
"planned_cents": 50000,
"actual_cents": 6336,
"over": false,
"good": false,
"aus_vertraegen_cents": 108,
"categories": [
{
"category_id": 1,
"name": "Wohnen",
"icon": "home",
"color": "#3f51b5",
"planned_cents": 50000,
"actual_cents": 6336,
"delta_cents": 43664,
"over": false,
"modus": "fest",
"zuschlag_cents": 0,
"aus_vertraegen_cents": 108,
"vertraege_anzahl": 1,
"good": false
},
{
"category_id": 2,
"name": "Versicherungen",
"icon": "shield",
"color": "#3f51b5",
"planned_cents": 0,
"actual_cents": 0,
"delta_cents": 0,
"over": false,
"modus": "fest",
"zuschlag_cents": 0,
"aus_vertraegen_cents": 0,
"vertraege_anzahl": 0,
"good": false
},
{
"category_id": 3,
"name": "Telefon & Internet",
"icon": "wifi",
"color": "#3f51b5",
"planned_cents": 0,
"actual_cents": 0,
"delta_cents": 0,
"over": false,
"modus": "fest",
"zuschlag_cents": 0,
"aus_vertraegen_cents": 0,
"vertraege_anzahl": 0,
"good": false
},
{
"category_id": 4,
"name": "Abos & Streaming",
"icon": "refresh-ccw",
"color": "#3f51b5",
"planned_cents": 0,
"actual_cents": 0,
"delta_cents": 0,
"over": false,
"modus": "fest",
"zuschlag_cents": 0,
"aus_vertraegen_cents": 0,
"vertraege_anzahl": 0,
"good": false
}
]
},
{
"id": 2,
"name": "Lebenshaltung",
"icon": "shopping-cart",
"color": "#2e7d55",
"planned_cents": 0,
"actual_cents": 0,
"over": false,
"good": false,
"aus_vertraegen_cents": 0,
"categories": [
{
"category_id": 5,
"name": "Lebensmittel",
"icon": "shopping-cart",
"color": "#2e7d55",
"planned_cents": 0,
"actual_cents": 0,
"delta_cents": 0,
"over": false,
"modus": "fest",
"zuschlag_cents": 0,
"aus_vertraegen_cents": 0,
"vertraege_anzahl": 0,
"good": false
},
{
"category_id": 6,
"name": "Restaurant",
"icon": "utensils",
"color": "#2e7d55",
"planned_cents": 0,
"actual_cents": 0,
"delta_cents": 0,
"over": false,
"modus": "fest",
"zuschlag_cents": 0,
"aus_vertraegen_cents": 0,
"vertraege_anzahl": 0,
"good": false
},
{
"category_id": 7,
"name": "Mobilität",
"icon": "car",
"color": "#2e7d55",
"planned_cents": 0,
"actual_cents": 0,
"delta_cents": 0,
"over": false,
"modus": "fest",
"zuschlag_cents": 0,
"aus_vertraegen_cents": 0,
"vertraege_anzahl": 0,
"good": false
},
{
"category_id": 8,
"name": "Gesundheit",
"icon": "heart-pulse",
"color": "#2e7d55",
"planned_cents": 0,
"actual_cents": 0,
"delta_cents": 0,
"over": false,
"modus": "fest",
"zuschlag_cents": 0,
"aus_vertraegen_cents": 0,
"vertraege_anzahl": 0,
"good": false
},
{
"category_id": 9,
"name": "Kleidung",
"icon": "shirt",
"color": "#2e7d55",
"planned_cents": 0,
"actual_cents": 0,
"delta_cents": 0,
"over": false,
"modus": "fest",
"zuschlag_cents": 0,
"aus_vertraegen_cents": 0,
"vertraege_anzahl": 0,
"good": false
}
]
},
{
"id": 3,
"name": "Freizeit & Persönliches",
"icon": "film",
"color": "#b06f14",
"planned_cents": 0,
"actual_cents": 0,
"over": false,
"good": false,
"aus_vertraegen_cents": 0,
"categories": [
{
"category_id": 10,
"name": "Freizeit",
"icon": "film",
"color": "#b06f14",
"planned_cents": 0,
"actual_cents": 0,
"delta_cents": 0,
"over": false,
"modus": "fest",
"zuschlag_cents": 0,
"aus_vertraegen_cents": 0,
"vertraege_anzahl": 0,
"good": false
},
{
"category_id": 11,
"name": "Reisen",
"icon": "plane",
"color": "#b06f14",
"planned_cents": 0,
"actual_cents": 0,
"delta_cents": 0,
"over": false,
"modus": "fest",
"zuschlag_cents": 0,
"aus_vertraegen_cents": 0,
"vertraege_anzahl": 0,
"good": false
},
{
"category_id": 12,
"name": "Sport & Fitness",
"icon": "dumbbell",
"color": "#b06f14",
"planned_cents": 0,
"actual_cents": 0,
"delta_cents": 0,
"over": false,
"modus": "fest",
"zuschlag_cents": 0,
"aus_vertraegen_cents": 0,
"vertraege_anzahl": 0,
"good": false
},
{
"category_id": 13,
"name": "Bildung",
"icon": "graduation-cap",
"color": "#b06f14",
"planned_cents": 0,
"actual_cents": 0,
"delta_cents": 0,
"over": false,
"modus": "fest",
"zuschlag_cents": 0,
"aus_vertraegen_cents": 0,
"vertraege_anzahl": 0,
"good": false
},
{
"category_id": 14,
"name": "Haustiere",
"icon": "paw-print",
"color": "#b06f14",
"planned_cents": 0,
"actual_cents": 0,
"delta_cents": 0,
"over": false,
"modus": "fest",
"zuschlag_cents": 0,
"aus_vertraegen_cents": 0,
"vertraege_anzahl": 0,
"good": false
},
{
"category_id": 15,
"name": "Geschenke & Spenden",
"icon": "gift",
"color": "#b06f14",
"planned_cents": 0,
"actual_cents": 0,
"delta_cents": 0,
"over": false,
"modus": "fest",
"zuschlag_cents": 0,
"aus_vertraegen_cents": 0,
"vertraege_anzahl": 0,
"good": false
}
]
},
{
"id": 4,
"name": "Finanzen",
"icon": "piggy-bank",
"color": "#2a78d6",
"planned_cents": 0,
"actual_cents": 0,
"over": false,
"good": false,
"aus_vertraegen_cents": 0,
"categories": [
{
"category_id": 16,
"name": "Sparen & Investments",
"icon": "piggy-bank",
"color": "#2a78d6",
"planned_cents": 0,
"actual_cents": 0,
"delta_cents": 0,
"over": false,
"modus": "fest",
"zuschlag_cents": 0,
"aus_vertraegen_cents": 0,
"vertraege_anzahl": 0,
"good": false
},
{
"category_id": 17,
"name": "Steuern & Gebühren",
"icon": "percent",
"color": "#2a78d6",
"planned_cents": 0,
"actual_cents": 0,
"delta_cents": 0,
"over": false,
"modus": "fest",
"zuschlag_cents": 0,
"aus_vertraegen_cents": 0,
"vertraege_anzahl": 0,
"good": false
}
]
},
{
"id": 5,
"name": "Sonstiges",
"icon": "more-horizontal",
"color": "#6b7480",
"planned_cents": 0,
"actual_cents": 0,
"over": false,
"good": false,
"aus_vertraegen_cents": 0,
"categories": [
{
"category_id": 18,
"name": "Sonstiges",
"icon": "more-horizontal",
"color": "#6b7480",
"planned_cents": 0,
"actual_cents": 0,
"delta_cents": 0,
"over": false,
"modus": "fest",
"zuschlag_cents": 0,
"aus_vertraegen_cents": 0,
"vertraege_anzahl": 0,
"good": false
}
]
}
],
"income": [],
"vertraege": {
"ohne_kategorie_cents": 0,
"ohne_kategorie_anzahl": 0,
"ohne_kurs": []
},
"totals": {
"planned_expense": 50000,
"actual_expense": 6336,
"planned_income": 0,
"received_income": 0
}
},
"budgetvorlage": {
"lines": [
{
"category_id": 1,
"planned_cents": 50000,
"modus": "fest",
"zuschlag_cents": 0
}
],
"income": []
},
"abos": {
"subscriptions": [
{
"id": 1,
"name": "Streaming",
"icon": "refresh-ccw",
"color": "#6b7480",
"amount_cents": 1299,
"currency": "EUR",
"interval_months": 12,
"account_id": null,
"category_id": 1,
"next_due": "2027-10-21",
"payee_pattern": "Supermarkt",
"savings_account_id": null,
"is_active": true,
"cancelled_at": null,
"notes": null,
"position": 0,
"monatlich_cents": 108,
"monatlich_base_cents": 108,
"tage_bis_faellig": 365,
"has_logo": false,
"logo_version": null
}
],
"summary": {
"currency": "EUR",
"monatlich_cents": 108,
"jaehrlich_cents": 1296,
"anzahl_aktiv": 1,
"ohne_kurs": []
}
},
"kontostaende": {
"accounts": [
{
"id": 1,
"name": "Girokonto",
"icon": "wallet",
"color": "#3f51b5",
"currency": "EUR",
"balance_cents": 419874,
"balance_base_cents": 419874,
"archived": false,
"locked": false
},
{
"id": 2,
"name": "Sparen",
"icon": "wallet",
"color": "#3f51b5",
"currency": "CHF",
"balance_cents": 535000,
"balance_base_cents": 535000,
"archived": false,
"locked": true
},
{
"id": 3,
"name": "Zweitkonto",
"icon": "wallet",
"color": "#3f51b5",
"currency": "EUR",
"balance_cents": 7500,
"balance_base_cents": 7500,
"archived": false,
"locked": false
}
],
"total": 427374,
"gebunden": 535000,
"currency": "EUR"
},
"budgetfortschritt": {
"rows": [
{
"name": "Fixkosten",
"color": "#3f51b5",
"planned": 50000,
"actual": 6336,
"over": false,
"good": false
}
],
"currency": "EUR",
"label": "2026-10",
"group_by": "group"
},
"einnahmenAusgaben": {
"income": 357500,
"expense": 6336,
"net": 351164,
"currency": "EUR",
"label": "2026-10"
},
"letzteBuchungen": {
"transactions": [
{
"id": 10,
"date": "2026-10-21",
"type": "income",
"title": "Dauerauftrag",
"icon": "more-horizontal",
"color": "#6b7480",
"sign": "pos",
"amount_cents": 7500,
"currency": "EUR",
"amount_base_cents": 7500
},
{
"id": 9,
"date": "2026-10-21",
"type": "expense",
"title": "Dauerauftrag",
"icon": "more-horizontal",
"color": "#6b7480",
"sign": "neg",
"amount_cents": 7500,
"currency": "EUR",
"amount_base_cents": 7500
},
{
"id": 8,
"date": "2026-10-21",
"type": "expense",
"title": "Wohnen",
"icon": "home",
"color": "#3f51b5",
"sign": "neg",
"amount_cents": 1043,
"currency": "EUR",
"amount_base_cents": 1043
},
{
"id": 7,
"date": "2026-10-21",
"type": "expense",
"title": "Wohnen",
"icon": "home",
"color": "#3f51b5",
"sign": "neg",
"amount_cents": 1043,
"currency": "EUR",
"amount_base_cents": 1043
},
{
"id": 6,
"date": "2026-10-21",
"type": "expense",
"title": "Baeckerei",
"icon": "more-horizontal",
"color": "#6b7480",
"sign": "neg",
"amount_cents": 1290,
"currency": "EUR",
"amount_base_cents": 1290
},
{
"id": 5,
"date": "2026-10-21",
"type": "income",
"title": "Gutschrift",
"icon": "more-horizontal",
"color": "#6b7480",
"sign": "pos",
"amount_cents": 15000,
"currency": "CHF",
"amount_base_cents": 15000
},
{
"id": 4,
"date": "2026-10-21",
"type": "expense",
"title": "Ueberweisung",
"icon": "more-horizontal",
"color": "#6b7480",
"sign": "neg",
"amount_cents": 15000,
"currency": "EUR",
"amount_base_cents": 15000
},
{
"id": 3,
"date": "2026-10-21",
"type": "transfer",
"title": "Girokonto → Sparen",
"icon": "arrow-left-right",
"color": "#6b7480",
"sign": null,
"amount_cents": 20000,
"currency": "EUR",
"amount_base_cents": 20000
}
],
"currency": "EUR"
},
"eingang": [
{
"id": 1,
"source": "shortcut",
"status": "booked",
"account_id": 1,
"date": "2026-10-21",
"amount_cents": -1290,
"currency": "EUR",
"payee": "Baeckerei",
"note": null,
"category_id": null,
"transaction_id": 6,
"transfer_account_id": null,
"fx_rate": null,
"counter_amount_cents": null,
"counter_currency": null,
"created_at": "2026-10-21T19:57:08.586391"
}
],
"dubletten": {
"gruppen": [
{
"account_id": 1,
"datum": "2026-10-21",
"amount_cents": 1043,
"typ": "expense",
"zeilen": [
{
"id": 7,
"payee": "Kiosk",
"description": null,
"category_id": 1,
"herkunft": "manuell",
"kennung": null
},
{
"id": 8,
"payee": "Kiosk",
"description": null,
"category_id": 1,
"herkunft": "manuell",
"kennung": null
}
]
}
]
},
"uebertragsvorschlaege": {
"verknuepft": 0,
"vorschlaege": [
{
"a": {
"id": 9,
"date": "2026-10-21",
"type": "expense",
"amount_cents": 7500,
"currency": "EUR",
"account_id": 1,
"account_name": "Girokonto",
"payee": "Dauerauftrag",
"description": null,
"category_id": null
},
"b": {
"id": 10,
"date": "2026-10-21",
"type": "income",
"amount_cents": 7500,
"currency": "EUR",
"account_id": 3,
"account_name": "Zweitkonto",
"payee": "Dauerauftrag",
"description": null,
"category_id": null
}
}
]
},
"schlagwoerter_der_kategorie": [
{
"id": 1,
"category_id": 1,
"word": "supermarkt",
"amount_cents": null
}
],
"markierteSchlagwoerter": [],
"zweiterFaktor": {
"enabled": false,
"recovery_codes_left": 0
},
"bankverbindungen": []
}