soapi.io ist ein Projekt von open3A GmbH.

Die Zur Verfügung gestellten Schnittstellen werden auch
in der Anwendungen open3A verwendet.

Bitte beachten Sie, dass derzeit keine Authentifizierung für die Nutzung notwendig ist.
Ich bitte darum, die Schnittstellen nur in angemessenem Maße zu nutzen.

Wenn Sie einen oder mehrere der hier angebotenen Dienste in größerem Umfang nutzen möchten,
stelle ich Ihnen gerne die verwendeten Bibliotheken zur Verfügung.
Bitte nehmen Sie dazu Kontakt mit mir auf.

Rechnung-API

toObject($file);
/**
 * Verarbeitet die übergebene PDF-Rechnung und gibt ein Objekt mit interessanten Werten zurück.
 * Darunter Rechnungsbetrag, Belegnummer, Aussteller, Belegdatum
 * Derzeit werden nur Rechnungen unterstützt, die bereits Text enthalten.
 * OCR findet im Moment nicht statt.
 * 
 * Wenn für $anonymize ein Objekt übergeben wird, dann wird der 
 * Beleg anonymisiert für die Verbesserung des Dienstes gespeichert.
 * Das Objekt hat folgenden Aufbau:
 * {
 *   "company": "Maxine Mustermann GmbH"
 *   "firstname" : "Maxine"
 *   "lastname" : "Mustermann"
 *   "street" : "Musterstraße"
 *   "nr" : "123"
 *   "zip" : "12345"
 *   "city" : "Musterhausen"
 *   "additional" : ["Max Mustermann", "Carla Mustermann"]
 * }
 * Alle Angaben sind optional
 * 
 * @param string base64_encode($file)
 * @param stdClass $anonymize
 * @return stdClass
 */
$uri = "https://soapi.io/soap/invoice";
$S = new SoapClient(null, array("location" => $uri,"uri" => $uri));
var_dump($S->toObject(base64_encode(file_get_contents('demo.pdf'))));
object(stdClass)#57 (4) {
  ["status"]=>
  string(5) "error"
  ["code"]=>
  int(201)
  ["desc"]=>
  string(22) "No template for issuer"
  ["content"]=>
  string(36) "RXJyb3IgZHVyaW5nIHByb2Nlc3NpbmcuCg=="
}

Verwendet nemiah/invoice2data

Bank-API

requestBank($bankleitzahl, $kontonummer);
/**
 * Gibt den Namen der Bank zu einer Bankleitzahl zurück und prüft, ob es die Bank gibt.
 * Wenn eine Kontonummer angegeben wird, wird ebenfalls geprüft, ob die Kontonummer gültig ist.
 * 
 * @param int $bankleitzahl
 * @param int $kontonummer
 * @return array
 */
$uri = "https://soapi.io/soap/blz";
$S = new SoapClient(null, array("location" => $uri,"uri" => $uri));
var_dump($S->requestBank("72070024"));
array(2) {
  ["bankname"]=>
  string(13) "Deutsche Bank"
  ["isValidBank"]=>
  bool(true)
}

Verwendet das Projekt BAV von Markus Malkusch

requestBIC($bankleitzahl);
/**
 * Gibt den BIC zu einer Bankleitzahl zurück.
 * 
 * @param int $bankleitzahl
 * @return array
 */
$uri = "https://soapi.io/soap/blz";
$S = new SoapClient(null, array("location" => $uri,"uri" => $uri));
var_dump($S->requestBIC("72070024"));
array(3) {
  ["bankname"]=>
  string(13) "Deutsche Bank"
  ["BIC"]=>
  string(11) "DEUTDEDB720"
  ["isValidBank"]=>
  bool(true)
}

Verwendet das Projekt BAV von Markus Malkusch

requestBICByIBAN($IBAN);
/**
 * Prüft die IBAN auf Gültigkeit und
 * gibt anschließend den passenden BIC zurück.
 * 
 * @param string IBAN
 * @return array
 */
$uri = "https://soapi.io/soap/blz";
$S = new SoapClient(null, array("location" => $uri,"uri" => $uri));
var_dump($S->requestBICByIBAN("DE92 7207 0024 0505 4432 00"));
array(3) {
  ["bankname"]=>
  string(13) "Deutsche Bank"
  ["BIC"]=>
  string(11) "DEUTDEDB720"
  ["isValidBank"]=>
  bool(true)
}

Verwendet das Projekt BAV von Markus Malkusch sowie php-iban

checkIBAN($IBAN);
/**
 * Prüft eine IBAN auf Gültigkeit
 * 
 * @param string $IBAN
 * @return boolean
 */
$uri = "https://soapi.io/soap/blz";
$S = new SoapClient(null, array("location" => $uri,"uri" => $uri));
var_dump($S->checkIBAN("DE92 7207 0024 0505 4432 00"));
bool(true)

Verwendet das Projekt php-iban

Postleitzahl-API

requestOrtByPLZ($postleitzahl);
/**
 * Gibt den Ort zu einer Postleitzahl zurück
 * 
 * @param int $postleitzahl
 * @return array
 */
$uri = "https://soapi.io/soap/plz";
$S = new SoapClient(null, array("location" => $uri,"uri" => $uri));
var_dump($S->requestOrtByPLZ("86682"));
array(1) {
  [0]=>
  array(2) {
    ["plz"]=>
    int(86682)
    ["ort"]=>
    string(12) "Genderkingen"
  }
}

Verwendet die Daten von OpenGeoDB

Geschlecht-API

requestGender($vorname);
/**
 * Findet zu einem Vornamen das Geschlecht
 * 
 * Mögliche Rückgabewerte: 
 * unisex name
 * mostly male
 * mostly female
 * female
 * male
 * name not found
 * 
 * @param mixed $vorname
 * @return array
 */
$uri = "https://soapi.io/soap/gender";
$S = new SoapClient(null, array("location" => $uri,"uri" => $uri));
var_dump($S->requestGender("Nena"));
array(1) {
  ["Nena"]=>
  string(6) "female"
}

Basiert auf der Anwendung von Jörg Michael

Ferien-API

requestFerien($bundeslandID, $jahr, $land);
/**
 * Gibt die Ferienzeiten zurück.
 * 
 * Die bundeslandIDs sind wie folgt:
 * 1: Baden-Württemberg
 * 2: Bayern
 * 3: Berlin
 * 4: Brandenburg
 * 5: Bremen
 * 6: Hamburg
 * 7: Hessen
 * 8: Mecklenburg-Vorpommern
 * 9: Niedersachsen
 * 10: Nordrhein-Westfalen
 * 11: Rheinland-Pfalz
 * 12: Saarland
 * 13: Sachsen
 * 14: Sachsen-Anhalt
 * 15: Schleswig-Holstein
 * 16: Thüringen
 * 
 * 1: Burgenland
 * 2: Kärnten
 * 3: Niederösterreich
 * 4: Oberösterreich
 * 5: Salzburg
 * 6: Steiermark
 * 7: Tirol
 * 8: Vorarlberg
 * 9: Wien
 * 
 * @param int $bundeslandID
 * @param int $jahr
 * @param string $land DE oder AT
 * @return array
 */
$uri = "https://soapi.io/soap/holiday";
$S = new SoapClient(null, array("location" => $uri,"uri" => $uri));
var_dump($S->requestFerien("2", "2024", "DE"));
array(2) {
  [0]=>
  array(3) {
    ["name"]=>
    string(12) "Winterferien"
    ["start"]=>
    int(1707692400)
    ["ende"]=>
    int(1708124340)
  }
  [1]=>
  string(3) "…"
}
requestFeiertage($bundeslandID, $jahr, $land);
/**
 * Gibt die Feiertage zurück.
 * 
 * Die bundeslandIDs sind die gleichen wie bei requestFerien()
 * 
 * @param int $bundeslandID
 * @param int $jahr
 * @param string $land DE oder AT
 * @return array
 */
$uri = "https://soapi.io/soap/holiday";
$S = new SoapClient(null, array("location" => $uri,"uri" => $uri));
var_dump($S->requestFeiertage("2", "2024", "DE"));
array(2) {
  [0]=>
  array(2) {
    ["name"]=>
    string(7) "Neujahr"
    ["start"]=>
    int(1704063600)
  }
  [1]=>
  string(3) "…"
}

PDF/A-API

toPDFA($pdfData);
/**
 * Erzeugt aus einer PDF-Datei eine PDF/A-Datei
 * 
 * @param string $pdfDatei
 * @return string base64_encoded PDF/A-Datei
 */
$uri = "https://soapi.io/soap/pdfa";
$S = new SoapClient(null, array("location" => $uri,"uri" => $uri));
var_dump($S->toPDFA(base64_encode(file_get_contents("Test.pdf"))));
string(52) "JVBERi0xLjcKJcfsj6IKNSAwIG9iago8PC9MZW5ndGggNiAwI…"