Eine YNAB-kompatible API
Dieselben Endpunkte, dasselbe JSON, dieselben Fehler. Spricht dein Code mit der YNAB-API, spricht er auch mit INMB – du änderst nur Basis-URL und Token.
Basis-URL
Alle Endpunkte liegen unter https://budget.netcope.ch/v1 und entsprechen https://api.ynab.com/v1 Pfad für Pfad. Budget-Ressourcen sind unter /v1/plans/{plan_id}/… und unter den alten Pfaden /v1/budgets/{budget_id}/… erreichbar. Wo eine Budget-ID erwartet wird, kannst du auch last-used oder default verwenden.
Antworten nutzen dieselbe {"data": …}-Hülle, dieselben Feldnamen und dieselben *_formatted- / *_currency-Felder wie YNAB. Beträge sind in Milliunits angegeben (12.50 = 12500).
Persönliche Zugriffstoken
Für deine eigenen Skripte: Öffne in INMB Settings → Developer Settings und erstelle einen Token. Er wird nur einmal angezeigt – bewahre ihn auf wie ein Passwort. Sende ihn als Bearer-Token.
OAuth 2.0
Du baust eine App für andere INMB-Nutzerinnen und -Nutzer? Registriere eine OAuth-Anwendung unter Settings → Developer Settings. INMB unterstützt dieselben Abläufe wie YNAB: Authorization Code (mit Refresh-Tokens) und Implicit Grant, dazu den Scope read-only. Access-Tokens gelten 2 Stunden; Refresh-Tokens werden bei jeder Verwendung erneuert.
Beispiel: Buchung erfassen
Empfänger werden über den Namen gefunden oder neu angelegt, Überträge erzeugen die Gegenbuchung im anderen Konto, und doppelte import_id werden übersprungen – genau wie bei YNAB.
Delta-Abfragen
Mit last_knowledge_of_server erhältst du nur, was sich geändert hat. Von YNAB übernommene Budgets machen beim server_knowledge-Stand von YNAB weiter – ein Client, der von api.ynab.com wechselt, synchronisiert also ohne kompletten Neuabruf weiter.
Bestehende Integration umstellen
Ändere Basis-URL und Token – sonst nichts. Bei den meisten YNAB-Clients lässt sich die Basis-URL einstellen; das offizielle JavaScript-SDK zum Beispiel nimmt sie als zweites Konstruktor-Argument.
Limits und Fehler
200 Anfragen pro rollender Stunde und Token, wie bei YNAB. Jede Antwort enthält einen X-Rate-Limit-Header (verbraucht/Limit); über dem Limit erhältst du HTTP 429. Fehler verwenden das Format und die IDs von YNAB.
Anfragen, die ein ganzes Budget laden – der vollständige Export (GET /plans/{plan_id} ohne last_knowledge_of_server) und Buchungslisten mit einem since_date mehr als 400 Tage zurück –, werden in eine Warteschlange gestellt, wenn mehrere gleichzeitig eintreffen. Ist die Warteschlange voll oder wartet eine Anfrage länger als 30 Sekunden, antwortet INMB mit HTTP 503 (service_unavailable) und einem Retry-After-Header: Warte so viele Sekunden und versuche es erneut. Delta-Abfragen landen nie in der Warteschlange.
Ist der Test oder das Abo des Benutzerkontos abgelaufen, antworten alle API-Endpunkte (auch /v1/user) mit 403 und den IDs von YNAB: 403.2 trial_expired oder 403.1 subscription_lapsed.
Referenz und Unterschiede
Weil die Endpunkte übereinstimmen, ist die API-Dokumentation von YNAB unter https://api.ynab.com die Referenz für alle Endpunkte, Parameter und Felder. Bei Endpunkten und Nutzdaten sind keine Unterschiede bekannt. Einzige INMB-spezifische Eigenheit ist die oben beschriebene Warteschlange für Anfragen auf ganze Budgets (HTTP 503 mit Retry-After). Findest du trotzdem einen Unterschied, ist das ein Fehler – bitte melde ihn uns (Kontaktangaben im Impressum).
INMB steht in keiner Verbindung zu YNAB LLC. YNAB ist eine Marke von YNAB LLC.
INMB ist ein unabhängiges Produkt. Es ist weder mit YNAB LLC verbunden noch von YNAB LLC unterstützt oder gesponsert. YNAB ist eine Marke von YNAB LLC.