Authentifizierung
Erstelle einen Token im Portal unter Einstellungen, Bereich API-Tokens. Er wird genau einmal angezeigt, beginnt mit md_live_ und gehört zu deinem Konto, nicht zu einer einzelnen Firma. Schicke ihn als Bearer-Token im Authorization-Header.
Authorization: Bearer md_live_4f8a1c…Behandle den Token wie ein Passwort: Er darf Steuerdaten lesen und Exporte ziehen. Ist einer abhandengekommen, lösch ihn im Portal, damit sind sofort alle Anfragen damit tot.
/api/v1/meToken prüfen
Sagt dir, zu welchem Konto der Token gehört, ob das Abo läuft und wie viele Exporte in der Testphase noch offen sind. Ruf das einmal beim Start deiner Integration auf, dann scheitert sie laut statt später beim Export.
curl "https://usemeridian.de/api/v1/me" \
-H "Authorization: Bearer $MERIDIAN_TOKEN"{
"account": { "email": "[email protected]", "name": "Nordwind Digital" },
"subscription": { "status": "active", "active": true, "trial_ends_at": null },
"exports": { "used": 3, "remaining": null },
"companies": 2
}/api/v1/companiesFirmen auflisten
Deine verbundenen Firmen samt Zahlungsanzahl. Die id brauchst du für fast jeden anderen Endpoint.
curl "https://usemeridian.de/api/v1/companies" \
-H "Authorization: Bearer $MERIDIAN_TOKEN"{
"companies": [
{ "id": "b21b6f7bfa964c31", "name": "Nordwind Digital", "payments": 2219, "synced": true }
]
}/api/v1/syncAktualität prüfen
Wie frisch die zwischengespeicherten Daten je Verbindung sind. Frag das in einem nächtlichen Job ab, bevor du exportierst: eine Firma, die noch importiert, liefert einen unvollständigen Zeitraum.
curl "https://usemeridian.de/api/v1/sync" \
-H "Authorization: Bearer $MERIDIAN_TOKEN"{
"ready": true,
"companies": [
{
"id": "b21b6f7bfa964c31",
"name": "Nordwind Digital",
"ready": true,
"connections": [
{
"provider": "mollie",
"status": "ok",
"backfill_done": true,
"payments": 2219,
"last_sync_at": "2026-07-25T02:14:09.000Z",
"exports_ready": true,
"last_error": null
}
]
}
]
}/api/v1/paymentsZahlungen lesen
Jede zwischengespeicherte Zahlung. Beträge sind ganzzahlige Cent, damit unterwegs nichts an Fließkomma verloren geht, und booking_date ist der deutsche Kalendertag, unter dem die Zahlung gebucht wird.
companyoptionalFirmen-ID. Ohne Angabe alle Firmen.fromoptionalErster Tag, YYYY-MM-DD, deutsche Zeit.tooptionalLetzter Tag, inklusive.limitoptional1 bis 500, Standard 100.failedoptionalfailed=1 nimmt fehlgeschlagene Zahlungen mit auf.curl "https://usemeridian.de/api/v1/payments?company=b21b6f7bfa964c31&from=2026-06-01&to=2026-06-30" \
-H "Authorization: Bearer $MERIDIAN_TOKEN"{
"count": 1,
"payments": [
{
"id": "tr_7UhSN1zuXS",
"company_id": "b21b6f7bfa964c31",
"company": "Nordwind Digital",
"status": "paid",
"amount_cents": 1229,
"refunded_cents": 0,
"net_cents": 1229,
"currency": "EUR",
"method": "creditcard",
"customer": "M. Sørensen",
"description": "Pro plan",
"created_at": "2026-06-14T21:47:03+00:00",
"booking_date": "2026-06-14"
}
]
}/api/v1/payoutsAuszahlungen lesen
Was Mollie tatsächlich auf dein Bankkonto überweist, plus die angekündigte nächste Auszahlung. Zusammen mit /payments kannst du damit eine Kontozeile gegen die dahinterliegenden Zahlungen abgleichen.
fromoptionalErster Auszahlungstag, YYYY-MM-DD.tooptionalLetzter Auszahlungstag, inklusive.curl "https://usemeridian.de/api/v1/payouts" \
-H "Authorization: Bearer $MERIDIAN_TOKEN"{
"payouts": [
{
"id": "stl_jDk30akdN",
"company_id": "b21b6f7bfa964c31",
"company": "Nordwind Digital",
"status": "paidout",
"amount": 4182.55,
"currency": "EUR",
"reference": "1234567.2026.06",
"settled_at": "2026-06-16T04:12:00+00:00",
"settled_date": "2026-06-16"
}
],
"upcoming": [
{
"company_id": "b21b6f7bfa964c31",
"company": "Nordwind Digital",
"available": 812.4,
"pending": 96.2,
"currency": "EUR",
"expected_at": "2026-07-28",
"schedule": "täglich"
}
]
}Braucht ein Mollie-Token mit settlements.read und balances.read, sonst antwortet der Endpoint mit 409.
/api/v1/tax/summarySteuer-Split für die Kanzlei
Genau die Zahlen, die für eine Umsatzsteuer-Voranmeldung gebraucht werden, ohne dass jemand ein ZIP herunterladen muss: brutto, netto und Steuer, aufgeteilt in Inland, OSS und Drittland, dazu Gebühren, Erstattungen und die Zahl der Zahlungen, die mangels Kartenland als Inland gebucht wurden.
companyPflichtFirmen-ID.fromPflichtErster Tag des Zeitraums, YYYY-MM-DD.toPflichtLetzter Tag, inklusive.curl "https://usemeridian.de/api/v1/tax/summary?company=b21b6f7bfa964c31&from=2026-06-01&to=2026-06-30" \
-H "Authorization: Bearer $MERIDIAN_TOKEN"{
"company_id": "b21b6f7bfa964c31",
"period": { "from": "2026-06-01", "to": "2026-06-30", "timezone": "Europe/Berlin" },
"bookings": 1495,
"gross": 17209.67,
"net": 15793.27,
"vat": 1416.4,
"fee": 627.62,
"split": { "domestic": 1029.24, "oss": 6852.02, "non_eu": 9328.41 },
"oss_by_country": [
{ "country": "FR", "rate": 0.2, "gross": 921.48, "vat": 153.58, "bookings": 74 }
],
"refunds": { "count": 1, "gross": 9.99, "vat": 1.6 },
"without_card_country": 3
}/api/v1/tax/ossOSS-Meldung je Quartal
Die OSS-Zahlen eines Quartals je Bestimmungsland, in der Form, die die Meldung verlangt. Quartale sind deutsche Kalenderquartale, denn das ist der Meldezeitraum.
companyPflichtFirmen-ID.yearPflichtVierstelliges Jahr, z. B. 2026.quarterPflicht1 bis 4.curl "https://usemeridian.de/api/v1/tax/oss?company=b21b6f7bfa964c31&year=2026&quarter=2" \
-H "Authorization: Bearer $MERIDIAN_TOKEN"{
"company_id": "b21b6f7bfa964c31",
"period": { "year": 2026, "quarter": 2, "from": "2026-04-01", "to": "2026-06-30", "timezone": "Europe/Berlin" },
"countries": [
{ "country": "FR", "rate": 0.2, "net": 767.9, "vat": 153.58, "gross": 921.48, "bookings": 74 },
{ "country": "PL", "rate": 0.23, "net": 702.93, "vat": 161.67, "gross": 864.6, "bookings": 61 }
],
"totals": { "net": 1470.83, "vat": 315.25, "gross": 1786.08, "countries": 2 }
}/api/v1/evidenceKunden-IP als Nachweis
Übermittle pro Mollie-Zahlung die IP-Adresse deines Kunden aus deinem eigenen Checkout. Nach Art. 24b MwSt-DVO ist sie ein zusätzlicher Nachweis für den Leistungsort bei OSS-Umsätzen. Meridian druckt die IP als Ortsnachweis auf die jeweilige Rechnung und legt jedem DATEV-Paket eine Sammel-CSV bei.
payment_idPflichtDie Mollie-Zahlungs-ID (tr_…) aus deinem Checkout.customer_ipoptionalIPv4 oder IPv6 des Kunden zum Zahlungszeitpunkt.countryoptionalISO-3166-alpha-2, falls du das Land selbst bestimmt hast.metadataoptionalEigene Daten, maximal 4 KB, etwa Bestell-ID oder User-Agent.curl -X POST "https://usemeridian.de/api/v1/evidence" \
-H "Authorization: Bearer $MERIDIAN_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"payment_id": "tr_7UhSN1zuXS",
"customer_ip": "203.0.113.54",
"metadata": {
"order": "R-2026-C7XN"
}
}'{ "ok": true, "stored": 1, "results": [ { "payment_id": "tr_7UhSN1zuXS", "ok": true } ] }Schicke ein Array mit bis zu 100 Objekten für einen Batch; der Status ist dann 207, wenn einzelne Einträge scheitern. Ein erneuter Push für dieselbe payment_id überschreibt den Nachweis.
/api/v1/evidenceNachweise lesen
Liest die gespeicherten Nachweise, wahlweise gefiltert auf eine einzelne Zahlung.
payment_idoptionalAuf eine Zahlung einschränken.curl "https://usemeridian.de/api/v1/evidence?payment_id=tr_7UhSN1zuXS" \
-H "Authorization: Bearer $MERIDIAN_TOKEN"{
"evidence": [
{
"payment_id": "tr_7UhSN1zuXS",
"customer_ip": "203.0.113.54",
"country": "DK",
"metadata": { "order": "R-2026-C7XN" },
"created_at": "2026-06-14T21:47:11.320Z"
}
]
}/api/v1/invoiceRechnung als PDF
Die §14-Rechnung zu einer einzelnen Zahlung, identisch mit der Kopie im Monatspaket. Praktisch, um einer Bestellbestätigung den Beleg beizulegen, ohne das ganze ZIP zu ziehen.
companyPflichtFirmen-ID.paymentPflichtZahlungs-ID (tr_…).# invoice.pdf
curl "https://usemeridian.de/api/v1/invoice?company=b21b6f7bfa964c31&payment=tr_7UhSN1zuXS" \
-H "Authorization: Bearer $MERIDIAN_TOKEN"application/pdf — der Dateiname trägt die Rechnungsnummer, etwa ND-2026-7UHSN1ZUXS.pdf/api/v1/exportDATEV-Paket laden
Das komplette Paket als ZIP: drei EXTF-Stapel, Rechnungs-PDFs mit GUID-Beleglink, document.xml und, falls vorhanden, deine IP-Nachweise. In der Testphase ist ein Export enthalten, danach unbegrenzt.
companyPflichtFirmen-ID.fromPflichtErster Tag des Zeitraums.toPflichtLetzter Tag, inklusive.belegeoptionalbelege=0 lässt die PDF-Belege weg, liefert nur die Stapel.# DATEV_2026-06.zip
curl "https://usemeridian.de/api/v1/export?company=b21b6f7bfa964c31&from=2026-06-01&to=2026-06-30" \
-H "Authorization: Bearer $MERIDIAN_TOKEN"application/zip — DATEV_2026-06.zipFehlercodes
401 invalid_tokenToken fehlt, ist ungültig oder wurde gelöscht.402 subscription_inactiveAbo gekündigt oder Zahlung offen.402 trial_limitDer inklusive Test-Export ist verbraucht.404 not_foundDie Firma gehört nicht zu diesem Konto.409 tax_not_readyFür diese Firma fehlen noch Steuereinstellungen.409 settlements_unavailableDem Mollie-Token fehlen settlements.read und balances.read.400 …Validierungsfehler, Details stehen im Feld error.207 Multi-StatusBatch teilweise fehlgeschlagen, siehe results[].