Swiss DTA payment record generator library
Project description
Generator library for Swiss DTA (“Datenträgeraustauschverfahren”) electronic payment records.
Features
Support for transaction types 826, 827, 836 and 890
Implements various integrity checks according to record description manual
Supports decimal and date input values
Getting started
Generate a DTA file containing one transaction of type 826:
from datetime import date from decimal import Decimal from dta import DTA from dta.records import DTAHeader, DTARecord826, DTARecord890 dta = DTA() header = DTAHeader() header.sequence_nr = 1 header.sender_id = 'ABCDE' header.client_clearing_nr = '248' header.creation_date = date(2013, 4, 23) header.processing_date = date(2013, 5, 10) record = DTARecord826(header) record.reference = '002013-0058' record.liability_account = '248 110079.01Z' record.currency = 'CHF' record.amount = Decimal('114.35') record.client_address1 = 'LEUCHTER OPEN SOURCE SOLUTIONS' record.client_address3 = 'WINKELRIEDSTRASSE 45' record.client_address4 = '6003 LUZERN' record.recipient_account = '010723327' record.recipient_address1 = 'TESTLIEFERANT' record.recipient_address3 = 'TESTSTRASSE 10' record.recipient_address4 = '6005 LUZERN' record.esr_reference = '182171015574297' dta.records.append(record) header = DTAHeader() header.sequence_nr = 2 header.sender_id = 'ABCDE' header.client_clearing_nr = '248' header.creation_date = date(2013, 4, 23) record = DTARecord890(header) record.amount = Decimal('114.35') dta.records.append(record) with open('demo.leu', 'w') as f: f.write(dta.generate())