you want to speak with your bank?

with smart ebics client you can!

EBICS 3.0 PHP Client

EBICS 3.0 (H005) & 2.5 (H004)

SEPA Lastschrift & Überweisung

Umsatzabruf · CAMT · MT940

Verteilte Elektronische Unterschrift

Im Abo

Ab 10,00 € / Monat netto

Rolling Updates inklusive

Monatlich kündbar

getestet mit PHP 5.6 – 8.4

REST-API

EBICS ohne eigene Installation

HTTPS/TLS gesichert

nutzungsbasiert je API-Call

OpenAPI dokumentiert

Your subscription – ready to go

All editions with EBICS 3.0, rolling updates and flexible terms. Prices net, plus VAT.

Client-Abo

20,00 €
/ month net
  • ✓ 1 bank, 1 user
  • ✓ EBICS 3.0 (H005)
  • ✓ ionCube binary + license token
  • ✓ Rolling updates included
  • ✓ Cancel monthly
Subscribe »

API-Abo

10,00 €
/ month net + € 0.08 / API call
  • ✓ EBICS 3.0 via REST API
  • ✓ No own installation needed
  • ✓ API token, HTTPS/TLS
  • ✓ Usage-based: € 0.08 / call
  • ✓ Cancel monthly
Subscribe »

Integrator

2.500,00 €
/ year net
  • ✓ Unlimited banks & users
  • ✓ Full source code
  • ✓ Git access, rolling updates
  • ✓ EBICS 3.0 (H005)
  • ✓ Annual term
Subscribe »

Software

PHP class, easy to integrate


SEPA debitnote/transfer


Bankstatements / CAMT / MT940


EDS (electronic distributed signature)



Lizenzen

Limited max. 1 Bank and User


unlimited developer Version


API Limited max. 1 Bank and User


API unlimited Version


Support

Ticket System


Live Chat


E-Mail Support





What is the Smart EBICS Client?

The Smart EBICS Client is a mature PHP class that lets your application communicate directly and securely with your bank via the EBICS protocol (Electronic Banking Internet Communication Standard) – without expensive middleware or proprietary banking software. Integrate the class into your own PHP project and automate your payment processing.

What can the Smart EBICS Client do?

  • Create and submit SEPA direct debit (CDD) and SEPA credit transfer (CCT)
  • Retrieve bank statements in CAMT.052/053/054, MT940 and STA/PTK format
  • Distributed Electronic Signature (VEU) for multi-level approval workflows
  • Full key management (INI, HIA, HPB) including the INI/HIA letter
  • Tested with Sparkasse, Volks- & Raiffeisenbanken, Commerzbank, Postbank, Deutsche Bank, UBS Switzerland, ProCredit and many more

EBICS 2.5 and EBICS 3.0

The Smart EBICS Client 2.0 supports both EBICS 2.5 (H004) and EBICS 3.0 (H005) with A006 signatures and X.509 certificates. Existing order types (C53, CCT, CDD …) are automatically mapped to the EBICS 3.0 format (BTF) – simply set ebics_version = 'H005' and your code stays unchanged.

Subscription model

Get the client as a flexible subscription: as a client subscription with ionCube binary (€20/month, one bank/user), as a REST API subscription without your own installation (€10/month + €0.08 per API call) or as an integrator subscription with full source code and git access (€2,500/year). Rolling updates included, tested on PHP 5.6 to 8.4, cancellable monthly or at the end of the term.

Subscribe now »   Watch free video tutorials »

Include Class:

	
$data_path = getcwd(). "/.ebics_client_data/";
$work_dir = getcwd();


error_reporting(E_ALL);
ini_set('display_errors', 1);
set_include_path(get_include_path().PATH_SEPARATOR .$work_dir."/phpseclib");

include_once("Crypt/RSA.php");
include_once('Crypt/Rijndael.php');
include_once('mt940/autoload.php');		
		

define('CLASSES_ROOT',$work_dir);

include("ebics_client.class.php");
include("sepa.class.php");
	
	
Examples - EBICS Initialization:

	
1. What this software does

This software is intended to be used as a class for programming EBICS clients written in
PHP. With this software you can upload or download data from EBICS servers (normally hosted
at a datacenter owned or managed by a bank).

2. Requirements

- PHP 5.6 or greater

- php5-curl php5-gmp php5-mcrypt openssl php5-xmlrpc php-pear

- run in isolated vm and connect your app via vpn tunnel


3. Tested bank institutes

This client has been tested with.

- Sparkasse 

- Volks + Raiffeisenbank

- Commerzbank

- Postbank

- Deutsche Bank

- UBS Schweiz

- procredit Bank

- Banken mit ebics.multivia-suite.de
 
- St. Galler Kantonalbank sgkb.ch !!! crippled EBICS implementation 
  -> https://www.sgkb.ch/download/online/EBICS_Verbindungsparameter.pdf

3. Setup a user

How EBICS Initialization works:

1. The customer (you) requests an EBICS account from your bank and receive User ID, Partner ID, EBICS Host ID,
EBICS URL and the fingerprints of the public keys of the bank.

2. with this code you create your encryption keys and submit them to the bank:


$ebics = new ebics_client($user_id,$partner_id,$host_id,$host_url,$data_dir);
$ebics->initUser(); // creates a005,x002 and e002 keys...
$ebics->loadUser();

$request = $ebics->INI_request();
$result = $ebics->send_request($request);

$request = $ebics->HIA_request();
$result = $ebics->send_request($request);

$letter = $ebics->getINIHIA_letter();

echo $letter;

3. INI + HIA Letter must be printed and signed and sent back to the bank to activate the EBICS account. After the
bank has activated the account continue with step 4.

4. Get the banks public keys with this call:

$ebics = new ebics_client($user_id,$partner_id,$host_id,$host_url,$data_dir);
$ebics->loadUser();

$result = $ebics->HPB_request();
$result = $ebics->send_request($result);
$parsed = $ebics->parse_response($result,"HPB");


5. EBICS successfully initialized.


	
	
SEPA Lastschrift:

	
$creditor = array("initiator_name" => "Smart Weblications GmbH",
					"id" => "DE52ZZZ00000012516",
					"bic" => "BYLADEM1HOF",
					"iban" => "DE44780500000220626666",
);

$debitor = array("debitor_name" => "Florian Wiessner",
				"id" => "00001337",
				"bic" => "BYLADEM1HOF",
				"iban" => "DE95780500000220696666",
				"verwendungszweck" => "Test SEPA Lastschrift",
				"refnum" => date("YmdHis"),
				"amount" => 23.42,
				"mandate_date_of_sig" => "2011-10-01",
				"payment_id" => "00001337"

);



$sepa = new sepa;
$sepa->loadXML("debitnote");
$sepa->add_debitnote($debitor, $creditor,true);
$sepa_cdd = $sepa->getXML("debitnote",$creditor);


$dom = new DOMDocument('1.0','UTF-8');
$dom->loadXML($sepa_cdd);
$sepa_cdd = preg_replace("/\r|\n/"," ",$dom->C14N());
$sepa_cdd = preg_replace("/\s+/", " ", $sepa_cdd);


$result = $ebics->Upload_init_request("CDD",$sepa_cdd);

print $result;

	
	
SEPA Transfer:

	
$from = array("initiator_name" => "Smart Weblications GmbH",
					"id" => "DE52ZZZ00000012516",
					"bic" => "BYLADEM1HOF",
					"iban" => "DE44780500000220626666",
);

$to = array("name" => "Max Mustermann",
				"bic" => "BYLADEM1HOF",
				"iban" => "DE26244444334444833333",
				"verwendungszweck" => "SEPA Ueberweisung",
				"ref-nummer" => date("YmdHis"),
				"amount" => "23.42"

);

$sepa = new sepa;
$sepa->loadXML("transfer");
$sepa->addPosition($to);
$sepa_transfer = $sepa->getXML("transfer",$from);



$dom = new DOMDocument('1.0','UTF-8');
$dom->loadXML($sepa_transfer);
$sepa_transfer = preg_replace("/\r\n/"," ",$dom->C14N());
$sepa_transfer = preg_replace("/\s+/", " ", $sepa_transfer);


$result = $ebics->Upload_init_request("CCT",$sepa_transfer);

print $result;

	
	
Bankstatements / Balance:

	
$Auftrag = "STA"; // STA, PTK, C53, C54
if (isset($_GET["start"])) { $start = $_GET["start"]; } else { $start = date("Y-m-d",mktime(0,0,0,date("m"),date("d")-7,date("Y"))); } 
if (isset($_GET["end"])) { $end = $_GET["end"]; } else { $end = date("Y-m-d"); } 

$result = $ebics->ebics_request($Auftrag, $start, $end );
$result = $ebics->send_request($result);
$result = $ebics->parse_response($result,$Auftrag);
print $result;

	
	
Copyright © 2013 - 2026 smart-weblications.de | Impressum