A PHP package for implementing web services required by the [[https://www.fatturapa.gov.it/export/fatturazione/en/sdi.htm?l=en][Italian Exchange System (aka "SdI")]].
/(Pacchetto PHP per l'implementazione dei webservices TrasmissioneFatture e RicezioneFatture richiesti dal SdI)./
Please refer to
See [[https://forum.italia.it/c/fattura-pa][Forum Italia - Fatturazione Elettronica]] for server configuration, interoperability tests, etc. In particular:
Apache configuration :: [[https://forum.italia.it/t/accreditamento-sdicoop-configurazione-ssl-su-apache/3314][Accreditamento SDICoop: configurazione SSL su Apache - Fatturazione Elettroni...]]
Interoperability tests :: [[https://forum.italia.it/t/test-interoperabilita-soluzioni/4370][Test Interoperabilità Soluzioni - Fatturazione Elettronica - Forum Italia]]
Quickstart ** Web Service "TrasmissioneFatture" Just include ~examples/tramissione-fatture.php~ in your endpoint. For example, if your test endpoint is
https://test.example.com/trasmissione/index.php
put the following code in your ~index.php~:
<?php require_once('/path/to/php-sdicoop-server/examples/trasmissione-fatture.php');
** Web Service "RicezioneFatture" Just include ~examples/ricezione-fatture.php~ in your endpoint. For example, if your test endpoint is
https://test.example.com/ricezione/index.php
put the following code in your ~index.php~:
<?php require_once('/path/to/php-sdicoop-server/examples/ricezione-fatture.php');
** Install *** Composer
composer require taocomp/php-sdicoop-server
*** Manually
*** Namespaces Please note namespace is changed (v0.1.1), it is now ~Taocomp\Einvoicing\SdicoopServer~.
So to use e.g. ~WebService~ class:
use \Taocomp\Einvoicing\SdicoopServer\WebService;
** Setup *** Web service "TrasmissioneFatture"
For example, if your handler class is:
class MyTrasmissioneFattureHandler { //... }
saved in ~/path/to/MyTrasmissioneFattureHandler.php~, then the code in your endpoint will be:
ini_set("soap.wsdl_cache_enabled", 0); ini_set('soap.wsdl_cache_ttl', 0);
use \Taocomp\Einvoicing\SdicoopServer\WebService;
try { require_once('/path/to/php-sdicoop-server/vendor/autoload.php'); require_once('/path/to/MyTrasmissioneFattureHandler.php');
$wsdl = '/path/to/php-sdicoop-server/assets/wsdl/TrasmissioneFatture_v1.1.wsdl';
$ws = new WebService($wsdl);
$ws->setClass('\MyTrasmissioneFattureHandler');
$ws->handle();
} catch (\Exception $e) { WebService::log($e->getMessage(), LOG_ERR); }
*** Web service "RicezioneFatture" Follow the same instructions as in "TrasmissioneFatture".
** Logs Both web services write on system log.
For example, when you receive a notice "RicevutaConsegna":
Dec 14 23:52:32 web Taocomp\Einvoicing\SdicoopServer\WebService: RicevutaConsegna IdentificativoSdI:7045996 NomeFile:ITXXXXXXXXXXX_00001_RC_002.xml
Credits We want to thank all contributors of [[https://forum.italia.it/c/fattura-pa][Forum Italia - Fatturazione Elettronica]] who have shared their snippets and any available info.
License GPLv3.