REST-API v1
Base-URL: https://arvekram.com/api/v1
Authentifizierung
Bearer-Token im Authorization-Header. Token erzeugst du im Dashboard unter Einstellungen → API-Tokens.
Authorization: Bearer 42|YourPlainTextTokenHere
Antwort-Format
Alle Endpoints liefern JSON. Listen kommen paginiert in einem data-Array mit Metadata:
{
"data": [...],
"links": { "first": "...", "last": "...", "next": "...", "prev": null },
"meta": { "current_page": 1, "per_page": 25, "total": 142 }
}
Rate Limits
60 Requests pro Minute pro Token. Bei Überschreitung kommt HTTP 429 mit Retry-After-Header.
Endpoints
Auth & Profile
/me User + Tenant + Token-InfoKunden / Lieferanten
/customers?type=customer&q=acme/customers/customers/{id}/customers/{id}/customers/{id}POST /api/v1/customers
{
"type": "customer",
"company_name": "Acme GmbH",
"email": "max@acme.example",
"address_line1": "Hauptstr. 5",
"postal_code": "10115",
"city": "Berlin",
"country": "DE",
"vat_id": "DE123456789"
}
Rechnungen
/invoices?status=issued&customer_id=.../invoices/invoices/{id}/invoices/{id} nur DraftsPOST /api/v1/invoices
{
"customer_id": "uuid",
"invoice_date": "2026-05-15",
"due_date": "2026-05-29",
"subject": "Mai-Beratung",
"currency": "EUR",
"status": "issued",
"items": [
{"title": "Consulting", "quantity": 8, "unit": "h", "unit_price_net": 120, "vat_rate": 24},
{"title": "Travel costs", "quantity": 1, "unit": "tk", "unit_price_net": 85, "vat_rate": 24}
]
}
Die Umsatzsteuer wird gegen das Dokumentdatum geprüft. Historische estnische Regelsätze wie 22 % (01.01.2024–30.06.2025) sind für passende Altbelege zulässig, werden aber nicht als aktuelle Standards angeboten. Steuerliche Übergangsausnahmen müssen gesondert geprüft werden.
Belege
/receipts?status=draft/receipts/receipts/{id}/receipts/{id}Projekte
/projects?status=active/projects/projects/{id}/projects/{id}/projects/{id}Zeit-Einträge
/time-entries?from=2026-05-01&to=2026-05-31/time-entries/time-entries/{id}/time-entries/{id}Bank
/bank-transactions/import MT940, CSV oder camt.053/bank-transactions?match_status=unmatched/bank-transactions/{id}/bank-transactions/{id}/allocations Rechnung/Beleg zuordnen/bank-transactions/{id}/allocations/{allocation_id}curl -X POST https://arvekram.com/api/v1/bank-transactions/import \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Accept: application/json" \
-F "file=@statement.csv"
{
"data": {"statements": 1, "transactions": 24, "matched": 7},
"message": "Bank statement imported."
}
Benötigte Token-Berechtigung: bank-transactions:write. Unterstützt werden Dateien bis 10 MB in MT940 (.sta, .mt940, .txt), Bank-CSV (.csv) und camt.053 (.xml). Wiederholte Imports werden dedupliziert.
POST /api/v1/bank-transactions/{id}/allocations
{
"document_type": "receipt",
"document_id": "receipt-uuid",
"amount": 50.00
}
amount ist optional; ohne Betrag wird höchstens der kleinere offene Betrag von Bankbewegung und Dokument zugeordnet. Positive Zahlungseingänge können Rechnungen, negative Zahlungsausgänge Belegen zugeordnet werden. Die Antwort enthält die aktualisierte Bankbewegung und allocation_id für ein späteres Rückgängigmachen.
Buchhaltung vollständig zurücksetzen
/accounting-reset/preview Zählung + 10-Minuten-Challenge/accounting-reset unwiderruflichHierfür ist ein eigens ausgestellter Owner-Token erforderlich, der ausschließlich accounting:reset enthält. Er gilt 15 Minuten und wird nach erfolgreicher Ausführung widerrufen. Wildcard-Tokens (*) sind ausdrücklich ausgeschlossen. Hole zuerst die Vorschau und sende anschließend deren challenge und confirmation_phrase unverändert zurück:
POST /api/v1/accounting-reset
{
"challenge": "preview-challenge",
"confirmation": "RESET ACCOUNTING tenant-uuid",
"acknowledge_irreversible": true
}
Gelöscht werden sämtliche operativen Buchhaltungsdaten einschließlich Rechnungen, Belege, Bankimporte und Zuordnungen, Journal, Nummernkreise, Lohn, Projekte, Anlagen, AI-Drafts sowie Import- und Integrationsereignisse. Firma, Benutzer, Tarif, API-Sicherheitsprotokoll, Support-Tickets, Webhook-Konfiguration, Plugin-Zugangsdaten und Steuerberaterzugang bleiben erhalten. Webhooks werden deaktiviert, damit wartende Alt-Ereignisse nicht mehr versendet werden; nach der Kontrolle können sie wieder aktiviert werden. Aktive Import-Jobs sowie wartende, laufende oder wiederholbare Plugin-Ereignisse blockieren den Reset.
Fehler-Codes
401— kein/ungültiger Token403— Token ohne Tenant-Bindung404— Ressource gehört nicht zu deinem Tenant oder existiert nicht422— Validierungsfehler, sieheerrors-Objekt429— Rate Limit erreicht500— wir haben was kaputt gemacht, bitte Ticket öffnen