taocomp/php-sdicoop-server

A PHP package for implementing web services required by the Italian Exchange System

v0.1.2 2018-12-27 14:57 UTC

This package is auto-updated.

Last update: 2024-04-17 17:30:38 UTC


README

A PHP package for implementing web services required by the Italian Exchange System (aka “SdI”).

(Pacchetto PHP per l’implementazione dei webservices TrasmissioneFatture e RicezioneFatture richiesti dal SdI).

Please refer to

See Forum Italia - Fatturazione Elettronica for server configuration, interoperability tests, etc. In particular:

Apache configuration
Accreditamento SDICoop: configurazione SSL su Apache - Fatturazione Elettroni…
Interoperability tests
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');

Getting started

Dependencies

  • PHP 5.5+
  • php-soap

Install

Composer

composer require taocomp/php-sdicoop-server

Manually

  • Clone/download the repository
  • require_once('/path/to/php-sdicoop-server/vendor/autoload.php');

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”

  • Copy examples/TrasmissioneFattureHandler.php somewhere in your project and add logic for saving invoices and notices on filesystem and/or database
  • Copy then content of examples/trasmissione-fatture.php in your endpoint file
  • Modify paths accordingly

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 Forum Italia - Fatturazione Elettronica who have shared their snippets and any available info.

License

GPLv3.