Postfinance XML file format changes - upgrade of the xml2doc script
Postfinance XML file format changes - upgrade of the xml2doc script
Changes in the XML format of postfinance statements
The definition of the XML flow
The new XML format with samples
User manuals and downloading xml2doc
References to the message formats
References to other developers
This tool permits conversion of XML files of Postfinance statements into MS-Word DOC files with the images of red payment slips alongside with electronic data.
New version of postfinance xml2doc script is available since 2009-11-05. All further versions will be released in the code depository:
Refer to the original page for usage manual:
The format change of postfinance XML files occurred on 2009-10-12. In the new format the SG6 element can contain additional two sub-elements (PF:TGT and PF:EPC).
$ grep -i "element sg6" *.txt
091008-acc_200.dtd.txt:<!ELEMENT SG6 (RFF*, DTM*, MOA, FTX*)>
091009-acc_200.dtd.txt:<!ELEMENT SG6 (RFF*, DTM*, MOA, FTX*)>
091012-acc_200.dtd.txt:<!ELEMENT SG6 (PF:TGT*, RFF*, DTM*, MOA, PF:EPC*, FTX*)>
091013-acc_200.dtd.txt:<!ELEMENT SG6 (PF:TGT*, RFF*, DTM*, MOA, PF:EPC*, FTX*)>
091014-acc_200.dtd.txt:<!ELEMENT SG6 (PF:TGT*, RFF*, DTM*, MOA, PF:EPC*, FTX*)>
091031-acc_200.dtd.txt:<!ELEMENT SG6 (PF:TGT*, RFF*, DTM*, MOA, PF:EPC*, FTX*)>
The Document Type Definition (DTD) files of 8th, 9th, 12th, 13th, 14th, and 31st October are provided for a reference. You can check also the output of diff on these files.
These changes are maybe related to the intention of Postfinance to seize the text available in red payment slips. This communication appeared on 2009-06-01.
Informations sur un bulletin de versement rouge qui seront saisies à l’avenir [more] [cache]
The full code of the first version of the Perl script is published in details [090302 ii]. In this section we present only pattern definitions of XML elements. Only this part is modified in the new release. You can consult also the difference between the two releases.
The XML elements are recognized in the flow with Perl regular expressions. The regex patterns of complex elements are created incrementally by defining first patterns of simple elements and using them further for forming more complex patterns.
Code |
Description |
$s="\\s*"; |
Definition of a zero or more space separation pattern |
$bra="(?:>|\\s+[^>]*>)"; |
Closing angle bracket of an opening XML tag represents also optional parameters within the opening tag |
$ins="[^<]*"; |
Pattern inside an XML element, between opening and closing tags, without other embedded XML elements |
$tag="<[^>]*>$ins</[^>]*>"; |
Any XML element without embedded sub element with opening and closing tags |
$sign="<PF:D_5003$bra([+-])</PF:D_5003>"; |
The element PF:D_5003 is used for storing the sign (“+” or “-") of monetary values. The sign value is stored in the Perl pattern memory variable. |
$lin="<LIN>$s<PF:D_0805\\s[^>]*Value=\"(\\w+)\">$s</PF:D_0805>$s</LIN>"; |
This is a pattern of the first sub element of the statement entry element SG4. The value seized by this pattern permits us to recognize the type of the entry.
If the value is equal to “LST” then the entry represents an opening balance.
If the value is equal to “LNE” then the entry is a credit, red payment slip credit, or a debit.
If the value is equal to “LNS” then this is a direct debit.
If the value of this tag is equal to “LTI” then we are dealing with a entry displaying the totals (credits and debits) of the statement document.
If the value is equal to “LEN” then it is a closing balance entry. |
$moa="<MOA>$s<C516>$s<D_5025 Value=\"(\\d+)\"></D_5025>$s<D_5004>([\\d\\.]+)</D_5004>$s</C516>$s$sign$s</MOA>"; |
MOA element stores monetary amounts with a type attribute and the sign. Therefore, three values are seized.
The same MOA element is used both in SG5 element (for the current balance) and in SG6 element (for the transaction/movement amount).
If D_5025 value is equal to “315” then we are dealing with the opening balance (MOA element is in SG5).
If D_5025 value is equal to “210” then we are dealing with a credited amount of an entry for an electronic credit, red slip credit or for totals. If its value is “211” then it is a debit (simple or direct) or a sum of debits in the entry for totals. In these cases MOA is in SG6 element.
The value of D_5025 is equal to “15” for all balance updates in movement/transaction entries (credit, red slip credit, debit, and direct debit). The MOA is in SG5 (balance) element of the entry (and not in SG6).
The value of D_5025 for a closing balance amount is equal to “343”.
|
$dtm="<DTM>$s<C507>$s$tag$s<D_2380>(\\d+)</D_2380>$s</C507>$s</DTM>"; |
The DTM element stores the date and accompanies the both types of monetary amounts, the one representing the balance (in SG5) and the one representing a transaction (in SG6). |
$ftx="<FTX>$s$tag$s$tag$s<C108>$s((?:<D_4440>$ins</D_4440>$s)+)</C108>$s</FTX>"; |
With the pattern for FTX element we seize the free texts (i.e. payment reasons) accompanying transactions. |
$rff="<RFF>$s<C506>$s<D_1153 Value=\"(\\w+)\"></D_1153>$s<D_1154>(\\d+)</D_1154>$s</C506>$s</RFF>"; |
RFF element appears in SG6 element and helps us to identify the red payment slips and seize the image reference of the scanned red payment slip. |
#<!ELEMENT SG5 (MOA?, DTM?)> $sg5="<SG5>$s$moa$s$dtm$s</SG5>"; |
Constructing the pattern of SG5 element (balance dates and monetary values) |
# On 2009-10-12 Postfinance changed the format of SG6 element by adding two sub-elements PF:TGT and PF:EPC # OLD <!ELEMENT SG6 (RFF*, DTM*, MOA, FTX*)> # NEW <!ELEMENT SG6 (PF:TGT*, RFF*, DTM*, MOA, PF:EPC*, FTX*)> # NEW <!ELEMENT PF:TGT (PF:D_4752, PF:D_4753, PF:D_4754?)> # NEW <!ELEMENT PF:EPC (PF:D_4752, PF:D_4753, PF:D_4754?)>
$pfins="(?:<PF:D_4752$bra$ins</PF:D_4752>)$s(?:<PF:D_4753$bra$ins</PF:D_4753>)$s(?:<PF:D_4754$bra$ins</PF:D_4754>)?"; $pftgt="<PF:TGT$bra$s$pfins$s</PF:TGT>"; $pfepc="<PF:EPC$bra$s$pfins$s</PF:EPC>"; |
Here we define the patterns of new elements PF:TGT and PF:EPC used in the SG6 element according to the new format of postfinance. |
# OLD <!ELEMENT SG6 (RFF*, DTM*, MOA, FTX*)> # OLD $sg6="$s(?:$rff$s)*(?:$dtm$s)?$moa$s(?:$ftx$s)?</SG6>";
#<!ELEMENT SG6 (PF:TGT*, RFF*, DTM*, MOA, PF:EPC*, FTX*)> $sg6="$s(?:$pftgt$s)?(?:$rff$s)*(?:$dtm$s)?$moa$s(?:$pfepc$s)?(?:$ftx$s)?</SG6>"; |
Constructing the pattern of the SG6 element. The opening tag “<SG6>” is missing in the patter, because we use this construct as a separator when splitting a flow of consecutive SG6 elements into an array. |
#<!ELEMENT SG4 (LIN, FTX*, SG5?, SG6*)> $sg4="$s$lin$s(?:$ftx$s)?(?:$sg5$s)?(?:<SG6>$sg6$s)*</SG4>"; |
Defining the most complex pattern used in the script, that of the SG4 element (representing all statement entries). The opening tag “<SG4>” is missing (similarly to the pattern of SG6 element) because this construct is used as a split separator. |
The examples below are samples of different types of frequently used entries within an XML file of Postfinance statements. Statement entries are represented by SG4 elements. All samples are taken from an individual daily XML file with an exception of two debit samples taken and inserted from a monthly XML file. In the samples all sensible items (e.g. customer related data) are replaced by sequences of “X” signs. The following seven samples are presented:
On 2009-10-12 postfinance introduced two new elements PF:TGT and PF:EPC. These elements are used in SG6 sub-element of SG4 entries. The SG6 element is responsible for representing transaction/movement related data, i.e. amounts, signs, types (credit or debit), dates of movements, but not the balances (represented by SG5 sub-element). Each transactional entry has an SG6 element describing the movement and an SG5 element describing the balance after the movement. In the samples below the new elements introduced by Postfinance are highlighted in yellow.
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE IC SYSTEM "acc_200.dtd">
<?xml-stylesheet type="text/xsl" href="acc_200.xsl"?>
<IC xmlns:PF="http://www.post.ch/xml">
<IC_HEADER>
<ICHDR>17-133617-0 Extrait de compte 14.10.2009</ICHDR>
<ICPFORM>H</ICPFORM>
<ICVVNR>2.12.0.2</ICVVNR>
<ICVVTXT>http://www.postfinance.ch/download</ICVVTXT>
</IC_HEADER>
<KONAUS>
<BGM>
<PF:D_0037 xmlns:PF="http://www.post.ch/xml">1</PF:D_0037>
</BGM>
<DTM>
<C507>
<D_2005 Value="202"></D_2005>
<D_2380 Desc="Date">
20091014
</D_2380>
</C507>
</DTM>
<DTM>
<C507>
<D_2005 Value="194"></D_2005>
<D_2380 Desc="Extrait de compte">
20091014
</D_2380>
</C507>
</DTM>
<SG2>
<FII>
<C078>
<D_3194 Desc="Numéro de compte">171336170</D_3194>
<D_3192 Desc="IBAN">CH39 0900 0000 1713 3617 0</D_3192>
<D_3193 Desc="BIC">POFICHBEXXX</D_3193>
<D_6345 Value="CHF"></D_6345>
</C078>
<PF:D_5388 xmlns:PF="http://www.post.ch/xml">
Compte commercial
</PF:D_5388>
</FII>
</SG2>
<SG3>
<NAD>
<D_3035 Value="HN"></D_3035>
<C058>
<D_3124 Desc="PostFinance Operations Center">Operations Center</D_3124>
<D_3124>1631 Bulle</D_3124>
<D_3124 Desc="Vous êtes conseillé par">Olivier Perret et team</D_3124>
</C058>
</NAD>
<COM>
<C076>
<D_3148 Desc="Téléphone">021 886 76 93</D_3148>
<D_3155 Value="TE"></D_3155>
</C076>
</COM>
<COM>
<C076>
<D_3148 Desc="Fax">058 667 66 08</D_3148>
<D_3155 Value="FX"></D_3155>
</C076>
</COM>
<COM>
<C076>
<D_3148 Desc="Saldophone">0848 221 221 (tarif normal)</D_3148>
<D_3155 Value="SA"></D_3155>
</C076>
</COM>
<COM>
<C076>
<D_3148 Desc="Internet">www.postfinance.ch</D_3148>
<D_3155 Value="IN"></D_3155>
</C076>
</COM>
</SG3>
<SG3>
<NAD>
<D_3035 Value="HQ"></D_3035>
<C058>
<D_3124>SWITZERNET Sàrl</D_3124>
<D_3124>Ecublens VD</D_3124>
</C058>
</NAD>
</SG3>
<SG3>
<NAD>
<D_3035 Value="HL"></D_3035>
<C058>
<D_3124>SWITZERNET Sàrl</D_3124>
<D_3124>PSE Bâtiment A EPFL</D_3124>
<D_3124>1015 Lausanne</D_3124>
</C058>
</NAD>
</SG3>
<PF:FTX xmlns:PF="http://www.post.ch/xml">
<D_4451 Value="AAI"></D_4451>
<D_4453 Value="0"></D_4453>
<C108>
<D_4440>
PostFinance, un partenaire compétent pour les paiements à l'étranger. Avec le</D_4440><D_4440>bon produit même quand c'est urgent: Giro international urgent ou Western Union.
</D_4440>
</C108>
</PF:FTX>
<PF:FTX xmlns:PF="http://www.post.ch/xml">
<D_4451 Value="T26"></D_4451>
<D_4453 Value="0"></D_4453>
<C108>
<D_4440>Date</D_4440>
</C108>
</PF:FTX>
<PF:FTX xmlns:PF="http://www.post.ch/xml">
<D_4451 Value="T27"></D_4451>
<D_4453 Value="0"></D_4453>
<C108>
<D_4440>Texte</D_4440>
</C108>
</PF:FTX>
<PF:FTX xmlns:PF="http://www.post.ch/xml">
<D_4451 Value="T28"></D_4451>
<D_4453 Value="0"></D_4453>
<C108>
<D_4440>Crédit</D_4440>
</C108>
</PF:FTX>
<PF:FTX xmlns:PF="http://www.post.ch/xml">
<D_4451 Value="T29"></D_4451>
<D_4453 Value="0"></D_4453>
<C108>
<D_4440>Débit</D_4440>
</C108>
</PF:FTX>
<PF:FTX xmlns:PF="http://www.post.ch/xml">
<D_4451 Value="T30"></D_4451>
<D_4453 Value="0"></D_4453>
<C108>
<D_4440>Valeur</D_4440>
</C108>
</PF:FTX>
<PF:FTX xmlns:PF="http://www.post.ch/xml">
<D_4451 Value="T31"></D_4451>
<D_4453 Value="0"></D_4453>
<C108>
<D_4440>Solde</D_4440>
</C108>
</PF:FTX>
<SG4>
<LIN>
<PF:D_0805 xmlns:PF="http://www.post.ch/xml" Value="LST">
</PF:D_0805>
</LIN>
<FTX>
<D_4451 Value="ABN"></D_4451>
<D_4453 Value="0"></D_4453>
<C108>
<D_4440>ÉTAT DE COMPTE</D_4440>
</C108>
</FTX>
<SG5>
<MOA>
<C516>
<D_5025 Value="315"></D_5025>
<D_5004>15680.04</D_5004>
</C516>
<PF:D_5003 xmlns:PF="http://www.post.ch/xml">
+
</PF:D_5003>
</MOA>
<DTM>
<C507>
<D_2005 Value="202"></D_2005>
<D_2380>20091013</D_2380>
</C507>
</DTM>
</SG5>
</SG4>
<SG4>
<LIN>
<PF:D_0805 xmlns:PF="http://www.post.ch/xml" Value="LNE">
</PF:D_0805>
</LIN>
<SG5>
<MOA>
<C516>
<D_5025 Value="15"></D_5025>
<D_5004>15700.04</D_5004>
</C516>
<PF:D_5003 xmlns:PF="http://www.post.ch/xml">+</PF:D_5003>
</MOA>
<DTM>
<C507>
<D_2005 Value="202"></D_2005>
<D_2380>20091013</D_2380>
</C507>
</DTM>
</SG5>
<SG6>
<PF:TGT xmlns:PF="http://www.post.ch/xml">
<PF:D_4752 xmlns:PF="http://www.post.ch/xml" Value="TGT"></PF:D_4752>
<PF:D_4753 xmlns:PF="http://www.post.ch/xml">61</PF:D_4753>
<PF:D_4754 xmlns:PF="http://www.post.ch/xml">20091013004004398880003000062412</PF:D_4754>
</PF:TGT>
<RFF>
<C506>
<D_1153 Value="ACD"></D_1153>
<D_1154>02</D_1154>
</C506>
</RFF>
<DTM>
<C507>
<D_2005 Value="209"></D_2005>
<D_2380>20091013</D_2380>
</C507>
</DTM>
<MOA>
<C516>
<D_5025 Value="210"></D_5025>
<D_5004>20.00</D_5004>
</C516>
<PF:D_5003 xmlns:PF="http://www.post.ch/xml">
+
</PF:D_5003>
</MOA>
<PF:EPC xmlns:PF="http://www.post.ch/xml">
<PF:D_4752 xmlns:PF="http://www.post.ch/xml" Value="EPC"></PF:D_4752>
<PF:D_4753 xmlns:PF="http://www.post.ch/xml">1017</PF:D_4753>
</PF:EPC>
<FTX>
<D_4451 Value="ABN"></D_4451>
<D_4453 Value="0"></D_4453>
<C108>
<D_4440>VIREMENT DU COMPTE 80-533-6</D_4440>
<D_4440>MIGROS BANK AG</D_4440>
<D_4440>SEIDENGASSE 12</D_4440>
<D_4440>8001 ZÜRICH</D_4440>
<D_4440>EXPÉDITEUR:</D_4440>
<D_4440>XXXXXXXXXX XXXXXX</D_4440>
<D_4440>RUE DU GRAND BAY 3</D_4440>
<D_4440>1220 LES AVANCHETS</D_4440>
<D_4440>COMMUNICATIONS:</D_4440>
<D_4440>021550XXXX</D_4440>
</C108>
</FTX>
</SG6>
</SG4>
<SG4>
<LIN>
<PF:D_0805 xmlns:PF="http://www.post.ch/xml" Value="LNE">
</PF:D_0805>
</LIN>
<SG5>
<MOA>
<C516>
<D_5025 Value="15"></D_5025>
<D_5004>16293.17</D_5004>
</C516>
<PF:D_5003 xmlns:PF="http://www.post.ch/xml">
+
</PF:D_5003>
</MOA>
<DTM>
<C507>
<D_2005 Value="202"></D_2005>
<D_2380>20091014</D_2380>
</C507>
</DTM>
</SG5>
<SG6>
<PF:TGT xmlns:PF="http://www.post.ch/xml">
<PF:D_4752 xmlns:PF="http://www.post.ch/xml" Value="TGT"></PF:D_4752>
<PF:D_4753 xmlns:PF="http://www.post.ch/xml">61</PF:D_4753>
<PF:D_4754 xmlns:PF="http://www.post.ch/xml">20091012111604000300006000000012</PF:D_4754>
</PF:TGT>
<RFF>
<C506>
<D_1153 Value="ACD"></D_1153>
<D_1154>01</D_1154>
</C506>
</RFF>
<RFF>
<C506>
<D_1153 Value="ZZZ"></D_1153>
<D_1154>20091012111604000300006</D_1154>
</C506>
</RFF>
<DTM>
<C507>
<D_2005 Value="209"></D_2005>
<D_2380>20091014</D_2380>
</C507>
</DTM>
<MOA>
<C516>
<D_5025 Value="210"></D_5025>
<D_5004>11.05</D_5004>
</C516>
<PF:D_5003 xmlns:PF="http://www.post.ch/xml">
+
</PF:D_5003>
</MOA>
<PF:EPC xmlns:PF="http://www.post.ch/xml">
<PF:D_4752 xmlns:PF="http://www.post.ch/xml" Value="EPC"></PF:D_4752>
<PF:D_4753 xmlns:PF="http://www.post.ch/xml">6019</PF:D_4753>
</PF:EPC>
<FTX>
<D_4451 Value="ABN"></D_4451>
<D_4453 Value="0"></D_4453>
<C108>
<D_4440>BULLETIN DE VERSEMENT</D_4440>
</C108>
</FTX>
</SG6>
</SG4>
<SG4>
<LIN>
<PF:D_0805 xmlns:PF="http://www.post.ch/xml" Value="LNE">
</PF:D_0805>
</LIN>
<SG5>
<MOA>
<C516>
<D_5025 Value="15"></D_5025>
<D_5004>1455.29</D_5004>
</C516>
<PF:D_5003 xmlns:PF="http://www.post.ch/xml">
+
</PF:D_5003>
</MOA>
<DTM>
<C507>
<D_2005 Value="202"></D_2005>
<D_2380>20091009</D_2380>
</C507>
</DTM>
</SG5>
<SG6>
<PF:TGT xmlns:PF="http://www.post.ch/xml">
<PF:D_4752 xmlns:PF="http://www.post.ch/xml" Value="TGT"></PF:D_4752>
<PF:D_4753 xmlns:PF="http://www.post.ch/xml">61</PF:D_4753>
<PF:D_4754 xmlns:PF="http://www.post.ch/xml">20091008000800142375237000000103</PF:D_4754>
</PF:TGT>
<RFF>
<C506>
<D_1153 Value="ACD"></D_1153>
<D_1154>00</D_1154>
</C506>
</RFF>
<DTM>
<C507>
<D_2005 Value="209"></D_2005>
<D_2380>20091009</D_2380>
</C507>
</DTM>
<MOA>
<C516>
<D_5025 Value="211"></D_5025>
<D_5004>65000.00</D_5004>
</C516>
<PF:D_5003 xmlns:PF="http://www.post.ch/xml">
+
</PF:D_5003>
</MOA>
<PF:EPC xmlns:PF="http://www.post.ch/xml">
<PF:D_4752 xmlns:PF="http://www.post.ch/xml" Value="EPC"></PF:D_4752>
<PF:D_4753 xmlns:PF="http://www.post.ch/xml">8999</PF:D_4753>
</PF:EPC>
<FTX>
<D_4451 Value="ABN"></D_4451>
<D_4453 Value="0"></D_4453>
<C108>
<D_4440>E-FINANCE 80-2-2</D_4440>
<D_4440>UBS AG</D_4440>
<D_4440>CH900024324326249801D</D_4440>
<D_4440>SWITZERNET (UBS ACC)</D_4440>
<D_4440>ACC. 243-262498.01D</D_4440>
<D_4440>1015 LAUSANNE</D_4440>
</C108>
</FTX>
</SG6>
</SG4>
<SG4>
<LIN>
<PF:D_0805 xmlns:PF="http://www.post.ch/xml" Value="LNS">
</PF:D_0805>
</LIN>
<FTX>
<D_4451 Value="ABN"></D_4451>
<D_4453 Value="5"></D_4453>
<C108>
<D_4440>PRIX</D_4440>
</C108>
</FTX>
<SG5>
<MOA>
<C516>
<D_5025 Value="15"></D_5025>
<D_5004>48908.60</D_5004>
</C516>
<PF:D_5003 xmlns:PF="http://www.post.ch/xml">
+
</PF:D_5003>
</MOA>
<DTM>
<C507>
<D_2005 Value="202"></D_2005>
<D_2380>20091031</D_2380>
</C507>
</DTM>
</SG5>
<SG6>
<PF:TGT xmlns:PF="http://www.post.ch/xml">
<PF:D_4752 xmlns:PF="http://www.post.ch/xml" Value="TGT"></PF:D_4752>
<PF:D_4753 xmlns:PF="http://www.post.ch/xml">61</PF:D_4753>
<PF:D_4754 xmlns:PF="http://www.post.ch/xml">20091031001001017133617000901107</PF:D_4754>
</PF:TGT>
<RFF>
<C506>
<D_1153 Value="ACD"></D_1153>
<D_1154>06</D_1154>
</C506>
</RFF>
<DTM>
<C507>
<D_2005 Value="209"></D_2005>
<D_2380>20091031</D_2380>
</C507>
</DTM>
<MOA>
<C516>
<D_5025 Value="211"></D_5025>
<D_5004>1466.40</D_5004>
</C516>
<PF:D_5003 xmlns:PF="http://www.post.ch/xml">
+
</PF:D_5003>
</MOA>
<PF:EPC xmlns:PF="http://www.post.ch/xml">
<PF:D_4752 xmlns:PF="http://www.post.ch/xml" Value="EPC"></PF:D_4752>
<PF:D_4753 xmlns:PF="http://www.post.ch/xml">7200</PF:D_4753>
</PF:EPC>
<FTX>
<D_4451 Value="ABN"></D_4451>
<D_4453 Value="0"></D_4453>
<C108>
<D_4440>POUR VERSEMENTS EN NUMÉRAIRE BV</D_4440>
</C108>
</FTX>
</SG6>
</SG4>
<SG4>
<LIN>
<PF:D_0805 xmlns:PF="http://www.post.ch/xml" Value="LTI">
</PF:D_0805>
</LIN>
<FTX>
<D_4451 Value="ABN"></D_4451>
<D_4453 Value="0"></D_4453>
<C108>
<D_4440>Total</D_4440>
</C108>
</FTX>
<SG6>
<MOA>
<C516>
<D_5025 Value="210"></D_5025>
<D_5004>4115.24</D_5004>
</C516>
<PF:D_5003 xmlns:PF="http://www.post.ch/xml">
+
</PF:D_5003>
</MOA>
</SG6>
<SG6>
<MOA>
<C516>
<D_5025 Value="211"></D_5025>
<D_5004>0.00</D_5004>
</C516>
<PF:D_5003 xmlns:PF="http://www.post.ch/xml">
+
</PF:D_5003>
</MOA>
</SG6>
</SG4>
<SG4>
<LIN>
<PF:D_0805 xmlns:PF="http://www.post.ch/xml" Value="LEN">
</PF:D_0805>
</LIN>
<FTX>
<D_4451 Value="ABN"></D_4451>
<D_4453 Value="0"></D_4453>
<C108>
<D_4440>ÉTAT DE COMPTE</D_4440>
</C108>
</FTX>
<SG5>
<MOA>
<C516>
<D_5025 Value="343"></D_5025>
<D_5004>19795.28</D_5004>
</C516>
<PF:D_5003 xmlns:PF="http://www.post.ch/xml">
+
</PF:D_5003>
</MOA>
<DTM>
<C507>
<D_2005 Value="202"></D_2005>
<D_2380>20091014</D_2380>
</C507>
</DTM>
</SG5>
</SG4>
</KONAUS>
<IC_TRAILER>
<ICINFO>
Veuillez contrôler l'extrait de compte. Sauf avis contraire de votre part dans les 30 jours à venir, il sera considéré comme accepté.
</ICINFO>
<ICGRUSS>
Avec nos meilleures salutations</ICGRUSS><ICGRUSS></ICGRUSS><ICGRUSS>La Poste Suisse
</ICGRUSS>
<ICGRUSS>
PostFinance
</ICGRUSS>
</IC_TRAILER>
</IC>
Postfinance XML file format changes, upgrade of the xml2doc script (this document)
http://switzernet.com/public/091105-postfinance-xml2doc/
http://unappel.ch/public/091105-postfinance-xml2doc/
[doc] [mht] [htm] [ms.htm] [pdf]
Previous version of the tool and user manuals
http://switzernet.com/public/080302-postfinance-xml2doc/
http://unappel.ch/public/080302-postfinance-xml2doc/
Sur demande, les écritures des documents de compte électroniques peuvent vous être fournies par Postfinance au format XML, ce qui vous permet de les traiter ultérieurement à l'aide d'un logiciel d’e-finance ou de comptabilité apte à le lire
Document formats:
http://www.postfinance.ch/help/content/fr/help/edoc.html
Document FAQ:
http://www.postfinance.ch/help/content/fr/help/edoc/faq.html
Document specifications:
https://www.postfinance.ch/pf/content/fr/seg/biz/product/eserv/spec/edoc.html
The “Document manager” is software which can convert the XML files of postfinance account into a CSV format. However, it cannot retrieve the images and merge them into a single document (e.g. an MS Word file).
Downloads:
http://www.postfinance.ch/pf/content/fr/seg/priv/customer/download/sw.html
2009-06-01 Informations sur un bulletin de versement rouge qui seront saisies à l’avenir
The tag names of XML files of postfinance are based on the names of message segments specifications of UN/CEFACT TBG5, a standardization organization responsible for financial services under the United Nations Centre for Trade facilitation and Electronic Business (UN/CEFACT) and under the United Nations Economic Commission for Europe (UNECE). In 2004 SWIFT and UN/CEFACT TBG5 signed a convergence support agreement [080302 ii].
United Nations Directories for Electronic Data Interchange for Administration, Commerce and Transport
http://www.unece.org/trade/untdid/welcome.htm
http://www.unece.org/trade/untdid/d00a/trmd/stlrpt_c.htm
FINPAY, Message Implementation Guideline, Recommendation of UN/CEFACT (TBG5 Working Groups) Finance Domain
http://www.unece.org/trade/untdid/mig/finpay/tbg5_finpay_2002_2-0-0.pdf
Message Implementation Guides (MIGs) published by TBG Working Groups
http://www.unece.org/trade/untdid/mig/migs.htm
FINSTA D.96A, Financial statement of an account message, Recommendation for the domain of Finances for the use of the UN/EDIFACT-Messages
http://www.unece.org/trade/untdid/mig/finsta/finsta_v1-3-2.pdf
Financial statement of an account message, Recommendation of Swiss Financial Institutions for the use of the UN/EDIFACT-Messages
http://www.telekurs.com/dl_tkicch_finsta131.pdf
Direct debit message, Recommendation of Swiss Financial Institutions for the use of the UN/EDIFACT Message
http://www.telekurs.com/dirdeb_lsv_v10.pdf
Banking status message, Recommendation of Swiss Financial Institutions for the use of the UN/EDIFACT-Message as Message acknowledgment and/or status information
http://www.telekurs.com/dl_tkicch_bansta13.pdf
Swiss Interbank Clearing, the hub for payment traffic, operates the payment systems SIC and Euro SIC in Switzerland and across its borders
ISO/TC 154-UN/CEFACT, Joint Syntax Working Group (JSWG), Database EDIFACT Syntax
http://www.gefeg.com/jswg/v41/data/v41.html
UN/EDIFACT, United Nations Standard Message (UNSM), Balance of payment customer transaction report message
http://www.stylusstudio.com/edifact/d04b/BOPCUS.htm
Go |
Description |
Attribute |
|
Beginning of message |
|
Control total |
|
Communication contact |
|
Contact information |
|
Currencies |
|
Date/time/period |
|
Financial institution information |
|
Free text |
|
Related identification numbers |
|
Line item |
|
Place/location identification |
|
Monetary amount |
|
Name and address |
|
Price details |
|
Quantity |
|
Requirements and conditions |
|
Reference |
EAN International
http://www.gs1.nl/hb_eancom/cremul/sc1.htm
EAN International, Direct debit message
http://www.gs1.se/eancom_2002/ean02s4/user/part2/dirdeb/041.htm
EDIFACT D6 Finance Working Group Meeting, Stockholm (June 19th-20th, 2000) “In Switzerland there are currently 2 projects in XML (a) Postfinance want to develop a statement of account based on FINSTA (the customer doesn’t know what syntax is behind the browser), including image references; (b) Swiss banks are also developing an XML message based on CREMUL (this is an interim solution and will move to an international standard as soon as there is one)”
http://crg.tbg5-finance.org/minutes/mn000619.doc
C516 values of opening and closing balance entries. FINSTA D.96A, Financial statement of an account message, Recommendation of D6 EWG sub-working group Finance for the use of the UN/EDIFACT-Message, Version 1.3.1 from February 16th, 2001
http://www.tbg5-finance.org/unece/mig/finsta/finsta_v1-3-1.pdf
Request to explain the format of postfinance XML files
http://www.developpez.net/forums/archive/index.php/t-251418.html
Perl regular expressions quick start and tutorial
http://perldoc.perl.org/perlrequick.html
http://perldoc.perl.org/perlretut.html
You need to install Cygwin (preferably completely including Perl) and Imagemagick.
Cygwin is a Linux-like environment for Windows [http://cygwin.com/]
ImageMagick is a software suite to create, edit, and compose bitmap images [http://www.imagemagick.org]
* * *
Copyright © 2009, Switzernet