api.ckonto.de  |  Zur Hauptseite

Ü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

GET /v1/kto/{kontonummer}/{bankleitzahl}
POST /v1/kto

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

GET /v1/iban/{iban}
GET /v1/iban/{iban}/{bic}
POST /v1/iban

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

GET /v1/search?name=&location=&zip=&bankleitzahl=&max=
POST /v1/search

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

GET /v1/ping
GET /v1/test

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:

CodeBedeutung
0Kontonummer/IBAN nicht gültig
1Bankverbindung gültig
2BLZ muss 8-stellig sein / Eingabefehler PLZ
3Eingabefehler Kontonummer / Eingabefehler Ort
4Fehler in Kontonummer und BLZ / Eingabefehler IBAN / Eingabefehler Name
7BLZ existiert nicht / Eingabefehler Max
8Demo-Modus / Eingabefehler BLZ
9Bankverbindung nicht prüfbar / Ausgabe-Begrenzung erreicht

Response-Header

HeaderBeschreibung
X-Request-IDEindeutige ID für den Request – vom Client sendbar, wird gespiegelt; sonst serverseitig generiert. Für Log-Korrelation und Debugging.
X-RateLimit-LimitMaximale Anfragen pro Zeitfenster
X-RateLimit-WindowFenstergröße in Sekunden
X-RateLimit-PolicyRate-Limit-Policy als Klartext
X-Idempotency-KeyWird gespiegelt, wenn vom Client gesendet
Tipp: Senden Sie im Request einen eigenen X-Request-ID-Header (z. B. eine UUID), um Ihre Anfragen in Logs eindeutig nachverfolgen zu können.