Übersicht
Base URL: https://api.ckonto.de
Version: v1 (alle Endpunkte beginnen mit /v1/)
Format: JSON (Content-Type: application/json)
Discovery: /service | OpenAPI 3.0 Schema
Authentifizierung
Alle Endpunkte (außer /service und /service/openapi.json) erfordern einen gültigen API-Schlüssel als Bearer-Token:
Authorization: Bearer IHR_API_SCHLUESSEL
Alternativ via Header X-API-Key: IHR_API_SCHLUESSEL.
API-Schlüssel erhalten Sie über ckonto.de/bestellung.htm.
Endpunkte
Kontonummer / BLZ prüfen
Prüft eine deutsche Kontonummer und Bankleitzahl. Optional mit IBAN-Generierung (sepa=1).
Beispiel GET
curl -H "Authorization: Bearer SCHLUESSEL" \
"https://api.ckonto.de/v1/kto/8032021/20041111"
Beispiel POST
curl -H "Authorization: Bearer SCHLUESSEL" \
-H "Content-Type: application/json" \
-d '{"kontonummer":"8032021","bankleitzahl":"20041111"}' \
"https://api.ckonto.de/v1/kto"
Antwort
{
"status": 1,
"message": "Die Bankverbindung ist gültig",
"data": {
"zip": "20095",
"location": "Hamburg",
"bank": "Hamburger Sparkasse",
"kto": "8032021",
"blz": "20041111",
"iban": null,
"bic": null,
"country": ""
}
}
Mit sepa=1 (GET: Query-Parameter, POST: im JSON-Body) werden iban und bic zusätzlich zurückgegeben.
country enthält den ISO-3166-1-alpha-2-Ländercode der Bank (z. B. DE), sofern verfügbar.
IBAN prüfen
Prüft eine IBAN (international, Schwerpunkt DE/AT/CH/EU). Optional mit BIC-Validierung. Per POST auch als Batch bis 500 IBANs.
Beispiel GET
curl -H "Authorization: Bearer SCHLUESSEL" \
"https://api.ckonto.de/v1/iban/DE07100500006603032331"
Antwort (Einzelprüfung)
{
"status": 1,
"message": "Die IBAN ist gültig",
"data": {
"zip": "DE-10050",
"location": "Berlin",
"bank": "Berliner Sparkasse",
"kto": "",
"blz": "",
"iban": "DE07100500006603032331",
"bic": "BELADEBEXXX",
"country": "DE",
"sepa_methods": {
"sct": 1,
"sdd": 1,
"b2b": 1,
"scc": 0
}
}
}
sepa_methods zeigt, welche SEPA-Zahlungsverfahren die Bank unterstützt: sct (Überweisung), sdd (Lastschrift), b2b (Firmenlastschrift), scc (Cards Clearing). Wert 1 = unterstützt, 0 = nicht unterstützt.
country enthält den ISO-3166-1-alpha-2-Ländercode der Bank (z. B. DE, AT, CH).
Beispiel POST – Einzelprüfung mit BIC
curl -H "Authorization: Bearer SCHLUESSEL" \
-H "Content-Type: application/json" \
-d '{"iban":"DE07100500006603032331","bic":"BELADEBEXXX"}' \
"https://api.ckonto.de/v1/iban"
Beispiel POST – Batch (bis 500 IBANs)
curl -H "Authorization: Bearer SCHLUESSEL" \
-H "Content-Type: application/json" \
-d '{"ibans":["DE07100500006603032331","AT611904300234573201"]}' \
"https://api.ckonto.de/v1/iban"
Batch-Antwort
{
"status": 1,
"message": "Batch-Verarbeitung abgeschlossen",
"batch": {
"total": 2,
"results": [
{ "iban": "DE07100500006603032331", "valid": true, "status": 1, "data": { "country": "DE", "sepa_methods": { "sct": 1, "sdd": 1, "b2b": 1, "scc": 0 }, ... } },
{ "iban": "AT611904300234573201", "valid": false, "status": 4, "data": { ... } }
]
}
}
Banksuche
Sucht Banken nach Name, Ort, PLZ oder BLZ. Mindestens ein Suchfeld muss belegt sein. Maximal 50 Treffer.
Beispiel GET
curl -H "Authorization: Bearer SCHLUESSEL" \
"https://api.ckonto.de/v1/search?name=Sparkasse&location=Berlin&max=5"
Antwort
{
"status": 1,
"message": "Die Suche war erfolgreich",
"results": {
"count": 3,
"items": [
{ "zip": "10889", "location": "Berlin", "bank": "Berliner Sparkasse", "blz": "10050000", "bic": "BELADEBEXXX" },
...
]
}
}
Healthcheck
Prüft ob der Service erreichbar ist. Benötigt gültigen Bearer-Token. /v1/test zeigt zusätzlich Testmode an.
{ "status": 1, "message": "Pong" }
Fehler
Fehler werden immer als JSON-Objekt mit dem Schlüssel error zurückgegeben. Eine vollständige Liste aller Fehlercodes mit Beschreibungen und Beispielen findet sich unter /api/docs/errors.
{
"error": {
"http_status": 401,
"code": "invalid_key",
"message": "Der Zugriffsschlüssel ist nicht gültig"
}
}
Business Status-Codes
Das Feld status in der Erfolgs-Antwort enthält den fachlichen Prüfstatus von cKonto:
| Code | Bedeutung |
|---|---|
0 | Kontonummer/IBAN nicht gültig |
1 | Bankverbindung gültig |
2 | BLZ muss 8-stellig sein / Eingabefehler PLZ |
3 | Eingabefehler Kontonummer / Eingabefehler Ort |
4 | Fehler in Kontonummer und BLZ / Eingabefehler IBAN / Eingabefehler Name |
7 | BLZ existiert nicht / Eingabefehler Max |
8 | Demo-Modus / Eingabefehler BLZ |
9 | Bankverbindung nicht prüfbar / Ausgabe-Begrenzung erreicht |
Response-Header
| Header | Beschreibung |
|---|---|
X-Request-ID | Eindeutige ID für den Request – vom Client sendbar, wird gespiegelt; sonst serverseitig generiert. Für Log-Korrelation und Debugging. |
X-RateLimit-Limit | Maximale Anfragen pro Zeitfenster |
X-RateLimit-Window | Fenstergröße in Sekunden |
X-RateLimit-Policy | Rate-Limit-Policy als Klartext |
X-Idempotency-Key | Wird gespiegelt, wenn vom Client gesendet |
X-Request-ID-Header (z. B. eine UUID), um Ihre Anfragen in Logs eindeutig nachverfolgen zu können.