The ISF file is structured as a set of events typical of e-commerce - orders and returns. ISF 2.0 consists of two files - an event and a manifest, through which the carrier communicates its customized services.
Each shipment contains the information necessary to generate a label (depending on the type of shipment) and space for feedback (if the courier supports it and the shipment requires it):
The following standards are used in the file:
ISF can be implemented in two ways, depending on your technological resources. The more advanced solution is a webservice - the sender's and carrier's systems communicate with each other automatically, exchanging information about events. However, if for some reason it is not possible to create such a mechanism, communication between the store and the carrier can be done manually. Both parties can generate XML files and exchange them through other communication channels.
The request to the webservice is made in JSON file format with four parameters: 'user', 'isf', 'time' and 'hash'. The parameters are passed via the HTTP POST method.
$isfHash = hash('sha256', $isf); $time = time(); $requestHash = hash('sha256', $user . $isfHash . $key . $time); $contents = array( 'user' => $user, 'isf' => $isf, 'time' => $time, 'hash' => $requestHash );
The ISF format as of version 2.0 allows you to upload your own custom nodes that can be used by the courier to generate the label. Developer-defined variables in the manifest.xml file can be used to populate them.
The manifest.xml file contains information about the endpoint where the ISF is to be sent, the structure of the additionalParams node in the ISF, and the configuration of individual variables. In ISF 2.0, it is a key element for correct integration.
The ISF format as of version 2.1 allows you to upload data required for customs clearance. This data includes information about the goods in the package (e.g., goods descriptions, CN/Taric code, country of origin), who pays customs duty and tax, and VAT invoice information (invoice number, date of issue, and the invoice file itself encoded in base64).
recipient PL 85016120 2.2 5 5 2 Product 1 Towar 2 FVVV/11/PL/2109 2021-09-13 SWRvU2VsbCBJU0YgMi4xIGV4YW1wbGUgcmVxdWVzdA==
The main difference between ISF 2.1 and 2.0 is the addition of the <custom_declaration> node, which contains all the information required by the courier API for customs clearance.
Download and review sample shipping orders in ISF format. The following examples show shipping for personal pickup at point (indicated by the shipment/pickup/self_pickup value set to 'yes' and the pickup point data in receiver/pickup_point)'.
Below you can download the latest version of the ISF technical specification.