XML Schema Browser - generalInvoiceRequest Version 430

Documentation - Rev. 2
generalInvoiceRequest V430

produced by Forum Datenaustausch

Permission to use, and distribute this schema and its accompanying documentation for any purpose and without fee is hereby granted in perpetuity, provided that the above copyright notice and this paragraph appear in all copies and the schema file is not altered.

The copyright holders make no representation about the suitability of the schema for any purpose.

It is provided "as is" without expressed or implied warranty.
The Forum Datenaustausch has endorsed this schema
as standard in the plenary meeting on 26 August 2010.

The standard becomes productive on 1st January 2011.

Copyright (©) by Forum Datenaustausch, 27.08.2010 - all rights reserved


Revision history of the documentation

Documentation of generalInvoiceRequest_430.xsd - Rev. 2

Copyright (©) by Forum Datenaustausch, 27.08.2010
All rights reserved

Revision history of the documentation

The following reversed chronological list shows the revision history of this documentation.

The revision history defines the time evolution of the documentation in the sense of a more precise phrasing and/or added parts.
However, the underlying generalInvoiceRequest_430.xsd schema is not changed due to such an entry.
  • Revision 2 from 15.11.2011
  • Revision 1 from 27.08.2010


Revision history: Documentation revision 1

Documentation of generalInvoiceRequest_430.xsd - Rev. 2

Copyright (©) by Forum Datenaustausch, 27.08.2010
All rights reserved

Documentation revision 1

Rev. 1/27.08.2010: the following subparts of the documentation have been refined and/or added:
  • Initial documentation of the generalInvoiceRequest_430.xsd schema


Revision history: Documentation revision 2

Documentation of generalInvoiceRequest_430.xsd - Rev. 2

Copyright (©) by Forum Datenaustausch, 27.08.2010
All rights reserved

Documentation revision 2

Rev. 2/15.11.2011: the following subparts of the documentation have been refined and/or added:
  • Specification for the "Sequence of Sign & Crypt" added
  • Recommendation about the <KeyName> element in the encryption part added
  • Redefinition of the content of the 2D Datamatrix security element on printed invoices.
    Note, that the documentation of the print templates is supplied as annotated PDF and downloadable on the Forum Datenaustausch website.
  • Preciser wording about the significant digits of the quantity, TPV, and TP values of a service record on printed invoices.
    Note, that the documentation of the print templates is supplied as annotated PDF and downloadable on the Forum Datenaustausch website.


Preface

Documentation of generalInvoiceRequest_430.xsd - Rev. 2

Copyright (©) by Forum Datenaustausch, 27.08.2010
All rights reserved

Preface

Audience of this documentation
The target audience of this documentation are primarily software developers of the Swiss healthcare sector.
An understanding of Swiss healthcare concepts (e.g. Tiers garant vs. Tiers payant and the like) as well as at least a basic knowledge about XSD schemas is presumed to be known.
How to use this documentation
There are two different views of this documentation.
  • the Hierarchical list view starts from the topmost object. By selecting a shown element one can explore the whole schema space in a recursive descent approach.
  • the Alphabetical list view is for those who are already familiar with the overall structure and concepts. As the name implies one can select from an alphabetical list of elements.

Comments and questions
Please address comments and questions concerning this documentation via either the website Forum Datenaustausch or the email address info@forum-datenaustausch.ch


Forum Datenaustausch

Documentation of generalInvoiceRequest_430.xsd - Rev. 2

Copyright (©) by Forum Datenaustausch, 27.08.2010
All rights reserved

Forum Datenaustausch

Im "Forum Datenaustausch" haben sich verschiedene Akteure des Schweizer Gesundheitswesens zusammengeschlossen. Das Forum verfolgt u.a. das Ziel, einheitliche, gemeinsam entwickelte Standards für den elektronischen Datenaustausch festzusetzen.

Forumsmitglieder sind die Verbände der Leistungserbringer FMH, H+ und der Schweizerische Apothekerverband (SAV), auf Seiten der Kostenträger sind es santésuisse, der Schweizerische Versicherungsverband (SVV) sowie die Suva, die Militärversicherung und die Invalidenversicherung (IV).

Die vom Forum verabschiedeten Standards, wie die XML-Nachrichten zum elektronischen Datenaustausch, werden hier publiziert. Dazu gehört auch die elektronische, XML basierende Leistungsabrechnung für Ärzte und Spitäler.

Die Gesellschaft bezweckt die Vereinheitlichung der Standards des elektronischen Datenaustausches im Schweizer Gesundheitswesen zwischen Leistungserbringern und Kostenträgern. Ziel ist die Festlegung von Grundsätzen mit Bezug auf die Übermittlungsstandards, die Referenzstammdaten sowie mit Bezug auf die Kriterien betreffend die Datensicherheit. Damit soll den Gesellschaftern der Aufbau von Kooperationsbeziehungen im Bereich des elektronischen Datenaustausches erleichtert werden.
Différents acteurs du domaine de la santé publique suisse se sont joints au "Forum Datenaustausch". L'objectif du forum consiste, entre autres, à établir des standards uniformes élaborés en commun pour l'échange électronique de données.

Les membres du forum sont les associations de prestataires FMH, H+ et la Société Suisse des Pharmaciens (SSPh) ainsi que, du côté des assureurs, santésuisse, l'Association Suisse d'Assurances (ASA), la Suva, l'assurance militaire et l'assurance invalidité (AI).

Les standards établis par le forum, tels les messages XML pour l'échange électronique de données, seront publiés ici. Ils englobent également le décompte électronique de prestations basé sur XML pour les médecins et les hôpitaux.

La société a pour but d'uniformiser les standards relatifs au transfert électronique de données dans la domaine de la santé suisse entre fournisseurs de prestations et assureurs. L'objectif consiste à déterminer des principes liés aux standards de transmission, aux données de base de référence ainsi qu'aux critères concernant la sécurité des données. Pour les membres de la société, cela devrait faciliter l'établissement de relations de coopération dans le domaine du transfert électronique de données.


Copyright (©) notice

Documentation of generalInvoiceRequest_430.xsd - Rev. 2

Copyright (©) by Forum Datenaustausch, 27.08.2010
All rights reserved

Copyright (©) notice

This is a normative standard for the Swiss Public Health Service

Permission to use, and distribute this schema and its accompanying documentation for any purpose and without fee is hereby granted in perpetuity, provided that the above copyright notice and this paragraph appear in all copies and this schema file is not altered. The copyright holders make no representation about the suitability of the schema for any purpose.

It is provided "as is" without expressed or implied warranty.


Purpose of the schema file

Documentation of generalInvoiceRequest_430.xsd - Rev. 2

Copyright (©) by Forum Datenaustausch, 27.08.2010
All rights reserved

Purpose of the schema file

This is the schema definition for a "General Invoice Request" process encoded in XML. The content is either an invoice or a reminder generated by a health care provider. The request is sent via 1 or more intermediates to the final recipient. The subchapter Purpose/Anatomy of a request provides a broad overview about the building blocks of a request.

Each individual request is defined by a unique triple of data denoted as object reference.
A "General Invoice Request" can hold a maximum of 3 object references, namely

  • an optional credit object reference from the "General Credit Request" process
  • a mandatory invoice object reference from the initial "General Invoice Request" process
  • an optional reminder object reference given if the process encodes a reminder
This set of object references by itself defines an ordered object reference chain (credit -> invoice -> reminder) with the topmost object reference as unique identification of the XML request. The subchapter Purpose/Object reference provides an in-depth description of the concepts of "object reference", "object reference chain", and "topmost object reference".

Besides the topmost object reference the XML request is further specified by a set of process attributes, namely

  • the optional copy attribute defining the XML request as an identical copy of an initial request.
  • the optional storno attribute canceling the XML request defined by the topmost object reference.
The copy and storno attributes can be combined to form a total of 4 different combinations. The subchapter Purpose/Process attributes provides an in-depth description of these attributes.

Upon receiving the XML request the recipient can respond by [0,n] "General Invoice Response" messages, whereas the content per definition defines an answer to the topmost object reference - and only to that object!

This XML project is normative for the electronic invoice/reminder process in Switzerland.


Conventions, terms, and definitions used

Documentation of generalInvoiceRequest_430.xsd - Rev. 2

Copyright (©) by Forum Datenaustausch, 27.08.2010
All rights reserved

Conventions, terms, and definitions used

This paragraph describes the conventions, terms, and definitions used in the documentation of the XSD schema files. It is assumed that the reader has at least a basic understanding of XSD schemas. Therefore, if there is an ambiguous description or insufficient documentation regarding the XSD schemas itself, you need to look up the official XSD schema definitions at W3C at http://www.w3c.org, this is especially true when using the signature and encryption mechanism.

Character entities

Since some characters in a XML infoset are forbidden these characters must be encoded via character entities. The table shows these special characters and their character entity counterparts.
& => &amp;
' => &apos;
> => &gt;
< => &lt;
" => &quot;
Basic XSD data types used
boolean | boolean has the value space required to support the mathematical concept of binary-valued logic: {true, false}. An instance of a data type that is defined as boolean can have the following legal literal value {true, false, 1, 0}.
double | The double data type corresponds to IEEE double-precision 64-bit floating point type [IEEE 754-1985]. The basic value space of double consists of the values m x 2^e, where m is an integer whose absolute value is less than 2^53, and e is an integer between -1075 and 970, inclusive.
enumeration | enumeration constrains the value space to a specified set of values.
int | int is derived from a 32bit integer by setting the value of maxInclusive and minInclusive to be 2147483647 and -2147483648.
NMTOKEN | NMTOKEN represents a token concept. The value space of NMTOKEN is the set of tokens (strings) that match the production.
pattern | pattern is a constraint on the value space of a data type, which is achieved by constraining the lexical space to literals, which match a specific pattern. The value of pattern must be a regular expression.
string | The string data type represents character strings. The value space of string is the set of finite-length sequences of characters. A character is an atomic unit of communication.


Anatomy of a request

Documentation of generalInvoiceRequest_430.xsd - Rev. 2

Copyright (©) by Forum Datenaustausch, 27.08.2010
All rights reserved

Anatomy of a request

The following figure shows the various building blocks, their meanings and dependencies on each other, that eventually form a request.
The building block processing is a container for processing instructions e.g. transport routing.
The building block payload is the container that holds the explicit data.
The building block for reference objects
The building block body is the data container. If encryption is used the container body is the target and will be replaced by the encrypted data xenc:EncryptedData
The building block ds:Signature holds the Signature data, whereas the container payload defines the signed part
Please note, that from a principle point of view these building blocks apart from processing are once generated unchangeable. Since the intermediate must include routing information or external institutions must validate the data, the processing block is outside the signature and encryption area and thus changeable.


Object reference,...

Documentation of generalInvoiceRequest_430.xsd - Rev. 2

Copyright (©) by Forum Datenaustausch, 27.08.2010
All rights reserved

Object reference, ...

The following paragraphs define the concepts of object reference, object reference chain, and topmost object reference. These concepts are of high importance within the XML request/response system.

object reference

An object reference is an identification of an individual XML request defined by a unique triple of data, namely
  • timestamp (UNIX time) defined at the moment of generation
  • date of the object defined by the provider
  • id of the object defined by the provider
Each and every XML request of version 4.3 is defined by such an object reference. All XML responses must copy the object reference from the request, thus the object reference is a clustered primary key!

object reference chain

As a consequence of the schema coded business logic most XML request schemas define more than just 1 object reference, e.g. a "General Invoice Request" can hold a maximum of 3 object references, namely
  • an optional credit object reference from the "General Credit Request" process
  • a mandatory invoice object reference from the initial "General Invoice Request" process
  • an optional reminder object reference given if the process encodes a reminder
whereas a "Hospital MCD Request" needs 2 object references
  • a mandatory invoice object reference from the "General Invoice Request" process
  • a mandatory mcd object reference from the " Hospital MCD Request" process
This set of object references by itself defines an ordered object reference chain (e.g. credit -> invoice -> reminder or invoice -> mcd) with the topmost object reference as unique identification of the XML request. Therefore the object reference chain defines -on business logic point of view- dependencies among different XML requests.

topmost object reference

The end node of an object reference chain is defined as topmost object reference, that is by definition the object reference of the XML request itself. Each request/response communication is always done for this topmost object reference – and only for that.

For example: a reminder XML request does reference an optional credit XML request (if the object reference was given in the initial invoice XML request). However, the reference of the initial invoice XML request for which a reminder process is started, is mandatory. The topmost object reference is then the object reference of the generated reminder process. Each XML response then references the topmost object reference for which it is a response. Such a response is never targeted for the corresponding invoice but only for the reminder!


Process attributes

Documentation of generalInvoiceRequest_430.xsd - Rev. 2

Copyright (©) by Forum Datenaustausch, 27.08.2010
All rights reserved

Process attributes

An XML request is primarily defined by its topmost object reference (see Purpose::Object reference). However, the XML request is further characterized by a state that is formed by a set of Boolean process attributes, namely

copy attribute

The copy attribute defines the XML request as an identical copy of an initial request.
The absence of the copy attribute in reverse defines the XML request as "normal" (initial) request.

It is considered an error to send a XML request with turned on copy attribute without having prior sent a "normal" request.

storno attribute

The storno attribute cancels the XML request defined by the topmost reference object.
The absence of the storno attribute in reverse defines the XML request as "normal" request.

It is considered an error to send a XML request with turned on storno attribute without having prior sent a "normal" request.

The copy and storno attributes can be combined to form a total of 4 different combinations.


What is...

Documentation of generalInvoiceRequest_430.xsd - Rev. 2

Copyright (©) by Forum Datenaustausch, 27.08.2010
All rights reserved

What is the difference between...

It is assumed that an original (new) invoice was produced which is denoted as infoset infoset1. The following list gives the difference between this invoice and all possible semantically different types regarding the produced infosets.
...invoice and a copy of an invoice
infoset1 is changed insofar as the copy attribute is set (request/payload@copy attribute)
...invoice and a storno of an invoice
infoset1 is changed insofar as the storno attribute is set (request/payload@storno attribute)
...invoice and a copy of a storno of an invoice
infoset1 is changed insofar as the copy and storno attributes are set (request/payload@copy,request/payload@storno attributes)
While this is semantically a legal infoset it is meaningless in terms of the processing. If an invoice is canceled then all its copies are canceled as well.
...invoice and a credit advice
These two infosets are semantically identical! If the amount (request/payload/body/balance@amount attribute) is <0 is per definition a credit advice otherwise it is an invoice.
However, in terms of the processing they are quite different as the payment flow is reversed for the latter.
...invoice and a reminder
infoset1 is augmented by a reminder request object (request/payload/reminder element) to form infoset2
The reminder request object defines the reminder level, charge, and text.
...invoice and a copy of a reminder
infoset1 is augmented by a reminder request object (request/payload/reminder element) and changed insofar as the copy attribute is set (request/payload@copy attribute).
The same result is achieved if infoset2 is changed insofar as the copy attribute is set (request/payload@copy attribute).
...invoice and a storno of a reminder
infoset1 is augmented by a reminder request object (request/payload/reminder element) and changed insofar as the storno attribute is set (request/payload@storno attribute).
The same result is achieved if infoset2 is changed insofar as the storno attribute is set (request/payload@storno attribute).
...invoice and a copy of a storno of a reminder
infoset1 is augmented by a reminder request object (request/payload/reminder element) and changed insofar as the copy and storno attributes are set (request/payload@copy,request/payload@storno attributes).
infoset2 is changed insofar as the copy and storno attributes are set (request/payload@copy,request/payload@storno attributes)
While this is semantically a legal infoset it is meaningless in terms of the processing. If an reminder is canceled then all its copies are canceled as well.


Notes about the signature

Documentation of generalInvoiceRequest_430.xsd - Rev. 2

Copyright (©) by Forum Datenaustausch, 27.08.2010
All rights reserved

Notes about the signature

XML signatures are digital signatures designed for use in XML transactions. The W3C standard defines a schema for capturing the result of a digital signature operation applied to an infoset. XML signatures add authentication, data integrity, and support for non-repudiation to the data that they sign.
However, it is beyond the scope of this documentation to explain all details of a signature or the signing process. Detailed information about all aspects of signatures can be found at W3C.

Boundary conditions and critical aspects
  • the signature is optional!
  • if an infoset is signed then the private certificate of the sender must be used and this certificate is applied to the payload element. This inherently qualifies for a detached signature.
    sender is used here in terms of the communication and therefore is defined as the EAN entity given in the transport@from attribute.
  • the URI attribute of the reference element must use a XPointer syntax of the payload element, e.g. <ds:Reference URI="#xpointer(/invoice:request/invoice:payload)">
  • The signature algorithm is fixed to PKCS1 (RSA-SHA1) (RFC 2437: RSA Cryptography Specifications)
  • The digest algorithm is fixed to SHA-1
  • the used canonicalization algorithm must be http://www.w3.org/2001/10/xml-exc-c14n#, the exclusive XML Canonicalization
  • it is recommended to add the public key via the X509Data element such that a key store can be built at the recipient's site.

As an example the Signature element looks like
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">>
 <SignedInfo>
  <CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
  <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
  <Reference URI="#xpointer(/invoice:request/invoice:payload)">
   <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
   <DigestValue>...</DigestValue>
  </Reference>
 </SignedInfo>
 <SignatureValue>...</SignatureValue>
 <KeyInfo>
  <X509Data>
  <X509Certificate>...</X509Certificate>
  </X509Data>
 </KeyInfo>
</Signature>


Notes about the encryption

Documentation of generalInvoiceRequest_430.xsd - Rev. 2

Copyright (©) by Forum Datenaustausch, 27.08.2010
All rights reserved

Notes about the encryption

XML Encryption is a specification, governed by a W3C recommendation, that defines how to encrypt the contents of an XML element. Although XML Encryption can be used to encrypt any kind of data, it is nonetheless known as "XML Encryption" because an XML element (either an EncryptedData or EncryptedKey element) contains or refers to the cipher text, keying information, and algorithms.
XML Encryption uses the KeyInfo element, which appears as the child of a EncryptedData element and provides information to a recipient about what keying material to use in decrypting encrypted data.

However, it is beyond the scope of this documentation to explain all details of a encryption or the encryption process. Detailed information about all aspects of encryption can be found at W3C.

Boundary conditions and critical aspects
  • The encryption is optional!
  • if an infoset is encrypted then the public certificate of the recipient must be used and this certificate is applied to the body element.
    recipient is used here in terms of the communication and therefore is defined as the EAN entity given in the transport@to attribute
  • The used X509 certificate for encryption must be the one with the highest serial number received by the counterpart XML so far.
    This allows for a seamless transfer to new certificates.
  • W3C's namespace http://www.w3.org/2001/04/xmlenc must be used- cf. XML Encryption Syntax and Processing
  • The encryption algorithm is fixed to PKCS1 (RSA-SHA1) (RFC 2437: RSA Cryptography Specifications)
  • The block encryption algorithm is fixed to Triple DES
  • It is highly recommended to supply a comma separated serialization of the issuer (in X509 canonical form) and serial number of the public certificate in the <KeyName> element. This allows the recipient to identify the used public certificate prior the decryption process.
    This information becomes essential as soon as the validity of one certificate is running out and a new one is propagated.

As an example the EncryptedData element looks like
<EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" Type="http://www.w3.org/2001/04/xmlenc#Element">
 <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
 <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
  <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
   <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5"/>
   <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
    <KeyName>C=CH, S=ZH, L=Zurich, O=Health Insurance Company, OU=HI Manager App, serial=4E55FF58</KeyName>
   </KeyInfo>
   <CipherData>
    <CipherValue>...</CipherValue>
   </CipherData>
  </EncryptedKey>
 </KeyInfo>
 <CipherData>
  <CipherValue>...</CipherValue>
 </CipherData>
</EncryptedData>


Sequence of Sign & Crypt...

Documentation of generalInvoiceRequest_430.xsd - Rev. 2

Copyright (©) by Forum Datenaustausch, 27.08.2010
All rights reserved

Sequence of Sign & Crypt...

The signature and encryption boundary conditions are in detail documented in the subchapters «Purpose::Signature» and «Purpose::Encryption».
However, if both the signature and encryption processes are applied to a XML infoset it is of uttermost importance to apply the correct sequence of operation.

Sequence of operation
  1. the signature process is applied to the raw XML infoset
  2. the encryption process is applied to the signed XML infoset
Of course, the sequence of operation is reversed when a signed and encrypted XML infoset is loaded.
This sequence is required and must be obeyed otherwise the
decryption and the check of the signature validity is at risk!


Preamble of schema file

Documentation of generalInvoiceRequest_430.xsd - Rev. 2

Copyright (©) by Forum Datenaustausch, 27.08.2010
All rights reserved

Preamble of schema file

The preamble of the schema file is defined as follows:
<schema targetNamespace="http://www.forum-datenaustausch.ch/invoice"
        xmlns="http://www.w3.org/2001/XMLSchema"
        xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
        xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
        xmlns:invoice="http://www.forum-datenaustausch.ch/invoice"
        elementFormDefault="qualified" attributeFormDefault="unqualified">
From this definition it is evident that all elements must be qualified that is defined with the namespace tag invoice followed by the element name. Furthermore, the target namespace and the specific namespace invoice maps to http://www.forum-datenaustausch.ch/invoice.
The xenc and ds namespaces are used by the encryption and signature elements which can optionally be used in an infoset.

Therefore, to define a correct XML infoset the elements must be defined like the following XML code snippet (for german as data language):
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<invoice:request xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
        xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
        xmlns:invoice="http://www.forum-datenaustausch.ch/invoice"
        xmlns="http://www.forum-datenaustausch.ch/invoice"
        xsi:schemaLocation="http://www.forum-datenaustausch.ch/invoice generalInvoiceRequest_430.xsd"
        language="de" modus="production" validation_status="0" >
XML elements go here...

 </invoice:request>


Defined service attributes

Documentation of generalInvoiceRequest_430.xsd - Rev. 2

Copyright (©) by Forum Datenaustausch, 27.08.2010
All rights reserved

Defined service attributes

The definition of each service record includes an attribute "service_attributes". Each bit of that 32-bit value has a special meaning which is defined below.
The bit positions can be ANDed together to form the overall refinement/enhancement of a given service.

Defined bit positions as of Aug. 2010
Bit Meaning
Bit 1 (0x000001) Applies to drug services only!
If set it means "Code 207" aka "Drug must not be substituted due to medical reasons" for the given drug


Defined regulation attributes

Documentation of generalInvoiceRequest_430.xsd - Rev. 2

Copyright (©) by Forum Datenaustausch, 27.08.2010
All rights reserved

Defined regulation attributes

If role=enRolePharmacist then addional data must be supplied for each drug service record. One part of this additional data is "regulation_attributes" defined as 32-bit integer. Each bit position has a special meaning defined below. The bit positions can be ANDed together to form the overall refinement/enhancement of the regulation codeing.

Defined bit positions as of Aug. 2010
Bit Code Meaning
Bit 1 (0x000001) code 100 "Nicht-SL Produkt ist vom Vertrauensarzt bewilligt worden"
"Produit non LS a été autorisé par le médecin-conseil"
Bit 2 (0x000002) code 101 "Notfall: Abgabe eines anderen Produktes als auf dem Rezept"
"Cas d'urgende: remise d'un autre produit que celui figurant sur l'ordonnance"
Bit 3 (0x000004) code 102 "Abgabe eines anderen Produktes als auf dem Rezept in Rücksprache mit dem Arzt"
"Remise d'un autre produit, après consultation du médecin, que celui figurant sur l'ordonnance"
Bit 4 (0x000008) code 103 "Abgabe einer grösseren Packung (nicht-SL) anstelle von mehreren kleineren Packungen (SL)"
"Remise d'un emballage plus grand (non LS) en lieu et place de plusieurs emballages plus petits (LS)"
Bit 5 (0x000010) code 104 "Abgabe einer kleineren Anzahl Packungen als verschrieben"
"Remise d'un nombre moins élevé d'emballages que le nombre prescrit"
Bit 6 (0x000020) code 105 "Abgabe einer kleineren Packung als verschrieben"
"Remise d'un plus petit emballage que la grandeur prescrite"
Bit 7 (0x000040) code 106 "SL-Limitation vom Vertrauensarzt aufgehoben"
"Limitation LS supprimée par le médecin-conseil"


Rules for the rounding procedure

Documentation of generalInvoiceRequest_430.xsd - Rev. 2

Copyright (©) by Forum Datenaustausch, 27.08.2010
All rights reserved

Rules for the rounding procedure

The Forum Datenaustausch defines a couple of axiomatic rounding rules that apply to amounts.

These rounding rules are:

  • the amount of a service is calculated by the formula
    «amount = external_factor * quantity * TP * TPV * scale_factor»
    in full precision and the result is rounded to 2 significant decimal places.
  • for Tarmed services this is done for the medical and technical part independently and the amount is formed as
    amount = amount_mt + amount_tt
  • the total amount (balance@amount) is the sum over all 2-digit precision service amounts. Therefore, the amount implicitly has a 2-digit precision as well.
  • balance@amount_prepaid and balance@amount_reminder are rounded to 2 significant decimal places.
  • balance@amount_due is calculated by the formula
    «amount_due = amount - amount_prepaid + amount_reminder»
    and the result is rounded half up.
Please note, that the rounding error dx made in rounding a given number x to 2 significant decimal places is dependent on the magnitude of x. As a consequence this rounding error is not linear. It is in general not true that
n*dx(i) == dx(tot) for n>1
where dx(i) is the individual error and dx(tot) is the rounding error of total x(tot) = n*x(i) .

For instance for n=2 and x=1.0025 this results in
1.0025 -> 1.00 and 2*1.00 = 2.00
and
2*1.0025 = 2.005 -> 2.01


Hierarchical list of used XSD definitions

Documentation of generalInvoiceRequest_430.xsd - Rev. 2

Copyright (©) by Forum Datenaustausch, 27.08.2010
All rights reserved

Hierarchical list of used XSD definitions

The following subchapters list all XSD definitions of the schema in hierarchical order going from the topmost element request down as the appropriate definition is encountered .


 element request
Annotation The request element is the root of the generalInvoiceRequest process.
The request is divided into 2 parts
  • the processing element supplies the necessary data for the transport and for actions done at the intermediate's site (e.g. printing a patient copy)
  • the payload element supplies the invoice/reminder data which will not be altered by intermediates
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:requestType
properties
content complex
children | invoice:processing invoice:payload ds:Signature
attributes parameters
Name | Type | Use | Default | Fixed
language | derived by: NMTOKEN | required |  |
modus | derived by: NMTOKEN |  | production |
validation_status | long |  |  |
attributes annotations
Name | Notes
language | language defines the used data language (name of the services etc.) encoded by a terminal set of ISO language specifiers. All responses will be encoded in the same language.
modus | modus defines the operating modus encoded by a terminal set of tokens
validation_status | validation_status defines the validity status of XML infoset after the infoset is generated and validated by a DOM. 0 or absence of the attribute means OK. It is possible to knowingly encode an XML infoset that is not well formed or invalid regarding its content. validation_status then signals an error condition to the recipient.
attributes enumerations
Name | Extension | Base | Value | Annotations
language |  | NMTOKEN | de | the data language is german
language |  | NMTOKEN | fr | the data language is french
language |  | NMTOKEN | it | the data language is italian
modus |  | NMTOKEN | production | the modus production (default value) is for normal processing
modus |  | NMTOKEN | test | the modus test is for software developers to test the processing. By definition there must not be any money flow!
source | <element name="request" type="invoice:requestType"/>


 element requestType/processing
Annotation | The processing element is a container for processing instructions at an intermediate's site (e.g. printing a patient copy, transport routing etc.) as well as processing and validations at external sites.
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:processingType
properties
isRef | 0
content | complex
children | invoice:transport invoice:validations invoice:demand
attributes parameters
Name | Type | Use | Default | Fixed
print_at_intermediate | boolean |  | false |
print_patient_copy | boolean |  | false |
attributes annotations
Name | Notes
print_at_intermediate | print_at_intermediate is a processing instruction for the last intermediate if the current infoset must be printed and sent to the receiver.
print_patient_copy | print_patient_copy is a processing instruction for the last intermediate if the current infoset must be printed as a patient copy and sent to the patient.
source | <element name="processing" type="invoice:processingType"/>


 element processingType/transport
Annotation | The transport element defines the routing of the infoset going from a sender party over any number of intermediates to a receiver party. All the involved parties are defined by EAN numbers as defined by www.medwin.ch
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:transportType
properties
isRef | 0
content | complex
children | invoice:via
attributes parameters
Name | Type | Use | Default | Fixed
from | invoice:eanPartyType | required |  |
to | invoice:eanPartyType | required |  |
attributes annotations
Name | Notes
from | from is the EAN party that initially sent the infoset to the first intermediate Note, that the private certificate of this EAN party is used for the optional signature as outlined in the subchapter Purpose/Signature.
to | to is the EAN party that eventually receives the infoset from the last intermediate. Note, that the public certificate of this EAN party is used for the optional encryption as outlined in the subchapter Purpose/Encryption.
source | <element name="transport" type="invoice:transportType"/>


 element transportType/via
Annotation The via element defines one intermediate hop through which the infoset was routed.
It is in the responsibility of an intermediate to correctly add a further via element if this intermediate has to route the infoset to another intermediate instead of delivery to the recipient.
diagram
namespace http://www.forum-datenaustausch.ch/invoice
properties
isRef | 0
minOcc | 1
maxOcc | unbounded
content | complex
attributes parameters
Name | Type | Use | Default | Fixed
via | invoice:eanPartyType | required |  |
sequence_id | unsignedShort | required |  |
attributes annotations
Name | Notes
via | via is the EAN of an intermediate
sequence_id | sequence_id is a sequence number starting with 1 that defines a certain intermediate hop. In each new via element the sequence number is increased by 1 thus forming a chain of intermediate hops
source <element name="via" maxOccurs="unbounded">
<complexType>
<attribute name="via" type="invoice:eanPartyType" use="required"/>
<attribute name="sequence_id" type="unsignedShort" use="required"/>
</complexType>
</element>


 element processingType/validations
Annotation | The validations element is a container for any number of external validations that take place on behalf of the final recipient.
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:validationsType
properties
isRef | 0
minOcc | 0
maxOcc | 1
content | complex
children | invoice:validation
source | <element name="validations" type="invoice:validationsType" minOccurs="0"/>


 element validationsType/validation
Annotation | The validation element defines a validation of the infoset content by an external validator party on behalf of an insurance.
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:validationType
properties
isRef | 0
minOcc | 1
maxOcc | unbounded
content | complex
children | invoice:validation_result
attributes parameters
Name | Type | Use | Default | Fixed
originator | invoice:stringType1_100 | required |  |
remark | invoice:stringType1_350 | required |  |
status | unsignedShort | required |  |
attributes annotations
Name | Notes
originator | originator is the validator party that performed the validation
remark | remark is a textual remark/comment that qualifies the overall validation
status | status is the overall integer status where status=0 means OK and status <> 0 means an error. The meaning of that error code is known only by the validator party and the insurance
source | <element name="validation" type="invoice:validationType" maxOccurs="unbounded"/>


 element validationType/validation_result
Annotation | The validation_result element defines one single validation result. The overall validation status is then coded into the attributes below.
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:validationResultType
properties
isRef | 0
minOcc | 0
maxOcc | unbounded
content | complex
attributes parameters
Name | Type | Use | Default | Fixed
remark | invoice:stringType1_350 |  |  |
record_id | derived by: int |  |  |
cost_unit | invoice:stringType1_35 |  |  |
status | unsignedShort | required |  |
attributes annotations
Name | Notes
remark | remark is a textual remark/comment that qualifies the validation result
record_id | record_id is a reference to a service record (cf. record sequence numbering there) for which the current validation result applies. Of course, if the validation is not over a service but a more a global aspect, then record_id is absent
cost_unit | cost_unit qualifies the validation result as belonging to a certain cost unit. The meaning of that cost unit is known only by the validator party and the insurance
status | status is a integer status where status=0 means OK and status <> 0 means an error. The meaning of that error code is known only by the validator party and the insurance
source | <element name="validation_result" type="invoice:validationResultType" minOccurs="0" maxOccurs="unbounded"/>


 element processingType/demand
Annotation | The demand element is a container for defining the parameters of a Trust Center. The concept of Trust Centers is mostly used for role=physician and place=practice.
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
properties
isRef | 0
minOcc | 0
maxOcc | 1
content | complex
attributes parameters
Name | Type | Use | Default | Fixed
tc_demand_id | long | required |  |
tc_token | invoice:stringType1_100 | required |  |
insurance_demand_date | dateTime | required |  |
insurance_demand_id | invoice:stringType1_35 |  |  |
attributes annotations
Name | Notes
tc_demand_id | tc_demand_id is an identification set and used by the Trust Center.
tc_token | tc_token is an integer number defining the used Trust Center.
insurance_demand_date | insurance_demand_date is a date set and used by the Trust Center.
insurance_demand_id | insurance_demand_id is an identification set and used by the Trust Center.
source <element name="demand" minOccurs="0">
<complexType>
<attribute name="tc_demand_id" type="long" use="required"/>
<attribute name="tc_token" type="invoice:stringType1_100" use="required"/>
<attribute name="insurance_demand_date" type="dateTime" use="required"/>
<attribute name="insurance_demand_id" type="invoice:stringType1_35"/>
</complexType>
</element>


 element requestType/payload
Annotation | The payload element supplies the invoice/reminder data and will not be altered in the transport process. The payload can optionally be signed by at W3C signing process.
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:payloadType
properties
isRef | 0
content | complex
children | invoice:credit invoice:invoice invoice:reminder invoice:body xenc:EncryptedData
attributes parameters
Name | Type | Use | Default | Fixed
type | derived by: NMTOKEN |  | invoice |
storno | boolean |  | false |
copy | boolean |  | false |
credit_advice | boolean |  | false |
attributes annotations
Name | Notes
type | type defines the type of request (invoice or reminder) encoded by a terminal set of tokens
storno storno augments the topmost object reference by a storno command.
Note, that a storno of an invoice/reminder is the same as the original request, but
  • each service quantity is multiplied by -1
  • amount_prepaid and amount_reminder are multiplied by -1
This mechanism automatically produces negative amounts and vats. In such a case corrective measures must be undertaken for the coding line of the ESR part (cf. request/payload/body/esrX@codingline)
copy | copy augments the topmost object reference by a copy command that is the topmost object reference is an identical clone (except for the copy attribute) of a prior sent request.
credit_advice credit_advice is a courtesy attribute being composed of the Boolean conditions
"attribute storno=false AND attribute amount < 0" (a credit advice)
or
"attribute storno=true AND attribute amount > 0" (a storno of a credit advice)
In fact the credit advice is semantically an invoice but with a negative amount!
attributes enumerations
Name | Extension | Base | Value | Annotations
type |  | NMTOKEN | invoice | the request is of type invoice
type |  | NMTOKEN | reminder | the request is of type reminder
source | <element name="payload" type="invoice:payloadType"/>


 element payloadType/credit
Annotation | The credit element defines the credit object reference that is copied from a prior sent "General Credit Request". Of course, there is no credit element if none was defined and sent before.
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:creditType
properties
isRef | 0
minOcc | 0
maxOcc | 1
content | complex
attributes parameters
Name | Type | Use | Default | Fixed
request_timestamp | unsignedLong | required |  |
request_date | dateTime | required |  |
request_id | invoice:stringType1_35 | required |  |
attributes annotations
Name | Notes
request_timestamp | request_timestamp is a UNIX timestamp defined at the moment of the credit's infoset generation This is one of 3 identifiers that form the credit object reference. request_timestamp will be generated once for a certain credit object reference and thereafter always referenced!
request_date | request_date is the main software's date of the credit request ("KoGu Falldatum") This is one of 3 identifiers that form the credit object reference. request_date must be identical for the same credit object reference!
request_id | request_id is the main software's ID of the credit request ("KoGu Fallnummer") This is one of 3 identifiers that form the credit object reference. request_id must be identical for the same credit object reference!
source | <element name="credit" type="invoice:creditType" minOccurs="0"/>


 element payloadType/invoice
Annotation The invoice element defines the unique invoice object reference.
This object is firstly produced when generating the original invoice. Any further processing (sending a copy or canceling the invoice) as well as generating a reminder to the invoice references this same object unaltered!
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:invoiceType
properties
isRef | 0
content | complex
attributes parameters
Name | Type | Use | Default | Fixed
request_timestamp | unsignedLong | required |  |
request_date | dateTime | required |  |
request_id | invoice:stringType1_35 | required |  |
request_patient_id | invoice:stringType1_35 |  |  |
attributes annotations
Name | Notes
request_timestamp | request_timestamp is a UNIX timestamp defined at the moment of the invoice's infoset generation This is one of 3 identifiers that form the invoice object reference. request_timestamp will be generated once for a certain invoice object reference and thereafter always referenced!
request_date | request_date is the main software's date of the invoice request ("Rechnungsdatum") This is one of 3 identifiers that form the invoice object reference. request_date must be identical for the same invoice object reference!
request_id | request_id is the main software's ID of the invoice request ("Rechnungsnummer") This is one of 3 identifiers that form the invoice object reference. request_id must be identical for the same invoice object reference!
request_patient_id | request_patient_id is the main software's ID of the patient referenced in the invoice request ("Patientennummer")
source | <element name="invoice" type="invoice:invoiceType"/>


 element payloadType/reminder
Annotation The reminder element defines the unique reminder object. The corresponding invoice must be specified in the invoice object reference. Of course, there is no reminder element if the infoset defines an invoice.
This object is firstly produced when generating the first reminder (reminder level 1). Any further processing (increasing the reminder level, sending a copy or canceling the reminder) uses this same object unaltered!
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:reminderType
properties
isRef | 0
minOcc | 0
maxOcc | 1
content | complex
attributes parameters
Name | Type | Use | Default | Fixed
request_timestamp | unsignedLong | required |  |
request_date | dateTime | required |  |
request_id | invoice:stringType1_35 | required |  |
reminder_level | derived by: NMTOKEN |  | 1 |
reminder_text | invoice:stringType1_700 |  |  |
attributes annotations
Name | Notes
request_timestamp | request_timestamp is a UNIX timestamp defined at the moment of the reminder's infoset generation This is one of 3 identifiers that form the reminder object reference. request_timestamp will be generated once for a certain reminder object reference and thereafter always referenced!
request_date | request_date is the main software's date of the reminder request ("Mahndatum") This is one of 3 identifiers that form the reminder object reference. request_date must be identical for the same reminder object reference!
request_id | request_id is the main software's ID of the reminder request ("Mahnnummer") This is one of 3 identifiers that form the reminder object reference. request_id must be identical for the same reminder object reference!
reminder_level | reminder_level is the level of the reminder starting with 1 and ending with 3 encoded by a terminal set of tokens
reminder_text | reminder_text is a the reminder text formed as an RTF (Rich Text Format) string to allow for minimal style enhancements
attributes enumerations
Name | Extension | Base | Value | Annotations
reminder_level |  | NMTOKEN | 1 | the level of the reminder is 1 (default)
reminder_level |  | NMTOKEN | 2 | the level of the reminder is 2
reminder_level |  | NMTOKEN | 3 | the level of the reminder is 3
source | <element name="reminder" type="invoice:reminderType" minOccurs="0"/>


 element payloadType/body
Annotation | The body element contains all the invoice/reminder data including the highly sensitive patient data (data privacy relevant). Therefore the body element can be replaced by the encrypted counterpart xenc:EncryptedData
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:bodyType
properties
isRef | 0
content | complex
children | invoice:prolog invoice:remark invoice:balance invoice:esr5 invoice:esr9 invoice:esrRed invoice:tiers_garant invoice:tiers_payant invoice:kvg invoice:vvg invoice:uvg invoice:ivg invoice:mvg invoice:org invoice:treatment invoice:services invoice:documents
attributes parameters
Name | Type | Use | Default | Fixed
role_title | invoice:stringType1_35 |  |  |
role | derived by: NMTOKEN | required |  |
place | derived by: NMTOKEN | required |  |
attributes annotations
Name | Notes
role | role defines the principal role of the main provider ("what is the main provider") encoded by a terminal set of tokens
role_title | role_title optionally further defines the role. role_title is mandatory if the role=other is set!
place | place defines the principal place of the main provider ("where is the main provider") encoded by a terminal set of tokens
attributes enumerations
Name | Extension | Base | Value | Annotations
place |  | NMTOKEN | practice | the main place of the service provision is at a practice
place |  | NMTOKEN | hospital | the main place of the service provision is at a hospital
place |  | NMTOKEN | lab | the main place of the service provision is at a lab
place |  | NMTOKEN | association | the main place of the service provision is at a association (e.g. Spitex)
place |  | NMTOKEN | company | the main place of the service provision is by a company (e.g. transports)
role |  | NMTOKEN | physician | the principal role of the service provider is physician
role |  | NMTOKEN | physiotherapist | the principal role of the service provider is physiotherapist including therapeutic masseurs
role |  | NMTOKEN | chiropractor | the principal role of the service provider is chiropractor
role |  | NMTOKEN | ergotherapist | the principal role of the service provider is ergotherapist
role |  | NMTOKEN | nutritionist | the principal role of the service provider is nutritionist including diet advisors, diabetic advisors
role |  | NMTOKEN | midwife | the principal role of the service provider is midwife
role |  | NMTOKEN | logotherapist | the principal role of the service provider is logotherapist
role |  | NMTOKEN | hospital | the principal role of the service provider is hospital
role |  | NMTOKEN | pharmacist | the principal role of the service provider is pharmacist
role |  | NMTOKEN | dentist | the principal role of the service provider is dentist including dental hygienists
role |  | NMTOKEN | labtechnician | the principal role of the service provider is labtechnician
role |  | NMTOKEN | dentaltechnician | the principal role of the service provider is dentaltechnician
role |  | NMTOKEN | othertechnician | the principal role of the service provider is othertechnician including shoemakers
role |  | NMTOKEN | psychologist | the principal role of the service provider is psychologist
role |  | NMTOKEN | wholesaler | the principal role of the service provider is wholesaler
role |  | NMTOKEN | nursingstaff | the principal role of the service provider is nursing staff including nursing auxiliaries
role |  | NMTOKEN | transport | the principal role of the service provider is transport including ambulances
role |  | NMTOKEN | druggist | the principal role of the service provider is druggist
role |  | NMTOKEN | naturopathicdoctor | the principal role of the service provider is naturopathic doctor (as per definition this is a doctor of none-conventional Western medicine/none-biomedicine)
role |  | NMTOKEN | naturopathictherapist | the principal role of the service provider is naturopathic therapist (as per definition this is therapist none-conventional Western medicine/none-biomedicine) including wellness therapists
role |  | NMTOKEN | other | the principal role of the service provider is other if none of the above applies
source | <element name="body" type="invoice:bodyType"/>


 element bodyType/prolog
Annotation | The prolog element is a container that holds information about all involved software that eventually generated the infoset (XML generator, tariff validators, and main software).
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:prologType
properties
isRef | 0
content | complex
children | invoice:package invoice:generator
source | <element name="prolog" type="invoice:prologType"/>


 element prologType/package
Annotation | The package element defines the main software that supplies all data for the infoset
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:softwareType
properties
isRef | 0
minOcc | 0
maxOcc | 1
content | complex
children | invoice:depends_on
attributes parameters
Name | Type | Use | Default | Fixed
name | invoice:stringType1_50 | required |  |
copyright | invoice:stringType1_50 |  |  |
description | invoice:stringType1_50 |  |  |
version | unsignedInt |  |  |
id | unsignedInt |  | 0 |
attributes annotations
Name | Notes
name | name defines the name of the software/module
copyright | copyright defines the copyright notice of the software/module
description | description supplies a short description of the software/module
version | version defines the version of the software/module. Since this is an integer coding use 100*main version + minor version as the version
id | id defines an unique id for the software/module (should such an id exist)
source | <element name="package" type="invoice:softwareType" minOccurs="0"/>


 element softwareType/depends_on
Annotation The depends_on element defines a dependence upon a further software/module.
The dependence chain allows the definition of all involved software/modules that participated in the generation process.
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:dependsOnType
properties
isRef | 0
minOcc | 0
maxOcc | unbounded
content | complex
attributes parameters
Name | Type | Use | Default | Fixed
name | invoice:stringType1_50 | required |  |
copyright | invoice:stringType1_50 |  |  |
description | invoice:stringType1_50 |  |  |
version | unsignedInt |  |  |
id | unsignedInt |  | 0 |
attributes annotations
Name | Notes
name | name defines the name of the dependent software/module
copyright | copyright defines the copyright notice of the dependent software/module
description | description supplies a short description of the dependent software/module
version | version defines the version of the dependent software/module. Since this is an integer coding use 100*main version + minor version as the version
id | id defines an unique id for the dependent software/module (should such an id exist)
source | <element name="depends_on" type="invoice:dependsOnType" minOccurs="0" maxOccurs="unbounded"/>


 element prologType/generator
Annotation The generator element defines the infoset generator.
It is assumed that there is an architectural distinction between package (main software) and generator like in a Sumex1 environment. If this is not the case then just define the same data here as in the package element.
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:softwareType
properties
isRef | 0
content | complex
children | invoice:depends_on
attributes parameters
Name | Type | Use | Default | Fixed
name | invoice:stringType1_50 | required |  |
copyright | invoice:stringType1_50 |  |  |
description | invoice:stringType1_50 |  |  |
version | unsignedInt |  |  |
id | unsignedInt |  | 0 |
attributes annotations
Name | Notes
name | name defines the name of the software/module
copyright | copyright defines the copyright notice of the software/module
description | description supplies a short description of the software/module
version | version defines the version of the software/module. Since this is an integer coding use 100*main version + minor version as the version
id | id defines an unique id for the software/module (should such an id exist)
source | <element name="generator" type="invoice:softwareType"/>


 element bodyType/remark
Annotation | The remark element supplies an optional remark for the invoice/reminder
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:stringType1_350
properties
isRef | 0
minOcc | 0
maxOcc | 1
content | simple
facets
minLength | 1
maxLength | 350
source | <element name="remark" type="invoice:stringType1_350" minOccurs="0"/>


 element bodyType/balance
Annotation | The balance element supplies all money and vat relevant information
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:balanceType
properties
isRef | 0
content | complex
children | invoice:vat
attributes parameters
Name | Type | Use | Default | Fixed
currency | string |  |  | CHF
amount | double | required |  |
amount_reminder | double |  | 0 |
amount_prepaid | double |  | 0 |
amount_due | double | required |  |
amount_obligations | double |  | 0 |
attributes annotations
Name | Notes
currency | currency is the currency used for the whole invoice/reminder. The currency is fixed by the XSD schema to "CHF" - Swiss Francs!
amount | amount is the total amount for the invoice/reminder accumulated over all 2-digit precision service amounts. Therefore, the amount implicitly has a 2-digit precision as well.
amount_reminder | amount_reminder is an optional reminder charge rounded to 2 significant decimal places. Of course, if the request is an invoice amount_reminder must be 0.00.
amount_prepaid | amount_prepaid is the advanced payment for the invoice/reminder rounded to 2 significant decimal places.
amount_due | amount_due is the amount due for the invoice/reminder (and coded into the ESR payment transaction) calculated as «amount + amount_reminder - amount_prepaid» where the used summands are 2-digit precision amounts and the result is finally rounded half up ("Kaufmännisches Runden")
amount_obligations | amount_obligations is the total amount for the invoice/reminder accumulated over all 2-digit precision service amounts for which the obligation flag is set. Since amount_obligations is summed over 2-digit precision values it has a 2-digit precision as well.
source | <element name="balance" type="invoice:balanceType"/>


 element balanceType/vat
Annotation | The vat element defines all vat related data as requested by the "Swiss Federal Tax Administration"
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:vatType
properties
isRef | 0
content | complex
children | invoice:vat_rate
attributes parameters
Name | Type | Use | Default | Fixed
vat_number | invoice:stringType1_15 |  |  |
vat | double | required |  |
attributes annotations
Name | Notes
vat_number vat_number is the individual vat number of the biller as given by the "Swiss Federal Tax Administration". Both forms the old 6-digit number as well as the new UID dependent number is allowed. However, the electronic layout of the number must be supplied as suggested by the federal administration. In the electronic layout all punctuation characters ('-' and '.') as well as the language dependent attribute in the new form ('MWST','IVA', 'TVA') are striped.
Consequently, the vat number must be expanded appropriately prior to be printed, e.g.
  • Old vat number: electronic layout 799000 is printed as 799.000
  • New vat number: electronic: CHE123456789 is printed as CHE-123.456.789 MWST (for german language!)

Of course, if the biller has not been assigned such a vat number leave the field empty.
vat | vat is the overall vat portion for the invoice/reminder accumulated over 2-digit precision individual vats.
source | <element name="vat" type="invoice:vatType"/>


 element vatType/vat_rate
Annotation The vat_rate element defines the calculated vat for a given amount and a specific vat rate.
The "Swiss Federal Tax Administration" requests that the vat portion of all used vat rates must be given even vat rate 0%!
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:vatRateType
properties
isRef | 0
minOcc | 1
maxOcc | unbounded
content | complex
attributes parameters
Name | Type | Use | Default | Fixed
vat_rate | derived by: double | required |  |
amount | double | required |  |
vat | double | required |  |
attributes annotations
Name | Notes
vat_rate | vat_rate is the applicable vat rate given as a percentage factor Note, that the vat rate 0% is a valid vat rate as well.
amount | amount is the sum over 2-digit precision service amounts for which the given vat rate is applicable. Note, that all amounts in this scheme are amounts that include the vat! Therefore
vat | vat is the calculated vat portion of the given amount using the vat rate as «(amount * vat_rate) / (100 + vat_rate)» where the used amount is in 2-digit precision and the result is rounded to 2 significant decimal places.
source | <element name="vat_rate" type="invoice:vatRateType" maxOccurs="unbounded"/>


 element bodyType/esr5
Annotation The esr5 element supplies payment information for an ESR with 5-digit participant number

Note, that the biller is the creditor of the transaction whereas the guarantor (TG)/insurance (TP) is the debitor

diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:esr5Type
properties
isRef | 0
content | complex
children | invoice:bank
attributes parameters
Name | Type | Use | Default | Fixed
type | derived by: NMTOKEN |  | 15 |
participant_number | derived by: string | required |  |
reference_number | derived by: string | required |  |
coding_line | derived by: string | required |  |
attributes annotations
Name | Notes
type | type is the type of ESR-5 encoded by a terminal set of tokens
participant_number | participant_number is the 5-digit participant number outside the coding line.
reference_number | reference_number is the 15-digit reference number outside the coding line. Pursuant to the guidelines the reference number should be divided up in blocks of 5 separated by blanks
coding_line | coding_line is the complete coding line of a ESR-5 payment transaction (cf. the patterns in use) Note, that the due amount is negative for a storno (or a credit advice). In such a case the amount coded into the coding line must be set zero, since negative amounts are not allowed in a coding line!
attributes enumerations
Name | Extension | Base | Value | Annotations
type |  | NMTOKEN | 15plus | 15plus is an ESR-5 with the 15-digit reference number without coded amount
type |  | NMTOKEN | 15 | 15 is an ESR-5 with the 15-digit reference number and coded amount
source | <element name="esr5" type="invoice:esr5Type"/>


 element esr5Type/bank
Annotation | The bank element defines the optional bank address if it is a BESR transaction. If the bank address is absent then it must be a VESR transaction.
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:esrAddressType
properties
isRef | 0
minOcc | 0
maxOcc | 1
content | complex
children | invoice:company invoice:person
source | <element name="bank" type="invoice:esrAddressType" minOccurs="0"/>


 element esrAddressType/company
Annotation | The given address used in an ESR is of type company given by the company element
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:companyType
properties
isRef | 0
content | complex
children | invoice:companyname invoice:department invoice:subaddressing invoice:postal invoice:telecom invoice:online
source | <element name="company" type="invoice:companyType"/>


 element companyType/companyname
Annotation | The companyname element supplies the name of a company
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:stringType1_35
properties
isRef | 0
content | simple
facets
minLength | 1
maxLength | 35
source | <element name="companyname" type="invoice:stringType1_35"/>


 element companyType/department
Annotation | The department element supplies the name of a the involved department of a company
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:stringType1_35
properties
isRef | 0
minOcc | 0
maxOcc | 1
content | simple
facets
minLength | 1
maxLength | 35
source | <element name="department" type="invoice:stringType1_35" minOccurs="0"/>


 element companyType/subaddressing
Annotation | The subaddressing element supplies further special information of a full address (e.g. c/o information and the like)
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:stringType1_35
properties
isRef | 0
minOcc | 0
maxOcc | 1
content | simple
facets
minLength | 1
maxLength | 35
source | <element name="subaddressing" type="invoice:stringType1_35" minOccurs="0"/>


 element companyType/postal
Annotation | The postal element depicts the postal part of a full address
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:postalAddressType
properties
isRef | 0
content | complex
children | invoice:pobox invoice:street invoice:zip invoice:city
source | <element name="postal" type="invoice:postalAddressType"/>


 element postalAddressType/pobox
Annotation | The pobox element supplies the post office box part of the postal address
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:stringType1_35
properties
isRef | 0
minOcc | 0
maxOcc | 1
content | simple
facets
minLength | 1
maxLength | 35
source | <element name="pobox" type="invoice:stringType1_35" minOccurs="0"/>


 element postalAddressType/street
Annotation | The street element supplies the street part of the postal address
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:stringType1_35
properties
isRef | 0
minOcc | 0
maxOcc | 1
content | simple
facets
minLength | 1
maxLength | 35
source | <element name="street" type="invoice:stringType1_35" minOccurs="0"/>


 element postalAddressType/zip
Annotation | The zip element supplies the zip part of the postal address
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:zipType
properties
isRef | 0
content | complex
facets
minLength | 1
maxLength | 9
attributes parameters
Name | Type | Use | Default | Fixed
statecode | invoice:stringType1_9 |  |  |
countrycode | invoice:stringType1_3 |  | CH |
attributes annotations
Name | Notes
statecode | statecode is an optional code for a state (e.g. the canton designator in Switzerland or the state in USA)
countrycode | countrycode is the ISO designator of the country ("CH" is the default value)
source | <element name="zip" type="invoice:zipType"/>


 element postalAddressType/city
Annotation | The city element supplies the city part of the postal address
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:stringType1_35
properties
isRef | 0
content | simple
facets
minLength | 1
maxLength | 35
source | <element name="city" type="invoice:stringType1_35"/>


 element companyType/telecom
Annotation | The telecom element depicts the telecom related part of a full address
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:telecomAddressType
properties
isRef | 0
minOcc | 0
maxOcc | 1
content | complex
children | invoice:phone invoice:fax
source | <element name="telecom" type="invoice:telecomAddressType" minOccurs="0"/>


 element telecomAddressType/phone
Annotation | The phone element supplies a telephone number (either landline or mobile)
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:stringType1_25
properties
isRef | 0
minOcc | 1
maxOcc | 3
content | simple
facets
minLength | 1
maxLength | 25
source | <element name="phone" type="invoice:stringType1_25" maxOccurs="3"/>


 element telecomAddressType/fax
Annotation | The fax element supplies a telefax number
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:stringType1_25
properties
isRef | 0
minOcc | 0
maxOcc | 3
content | simple
facets
minLength | 1
maxLength | 25
source | <element name="fax" type="invoice:stringType1_25" minOccurs="0" maxOccurs="3"/>


 element companyType/online
Annotation | The online element depicts the online related part of a full address
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:onlineAddressType
properties
isRef | 0
minOcc | 0
maxOcc | 1
content | complex
children | invoice:email invoice:url
source | <element name="online" type="invoice:onlineAddressType" minOccurs="0"/>


 element onlineAddressType/email
Annotation | The email element supplies an email address
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | restriction of invoice:stringType1_70
properties
isRef | 0
minOcc | 1
maxOcc | 3
content | simple
facets
minLength | 1
maxLength | 70
pattern | .+@.+
source <element name="email" maxOccurs="3">
<simpleType>
<restriction base="invoice:stringType1_70">
<pattern value=".+@.+"/>
</restriction>
</simpleType>
</element>


 element onlineAddressType/url
Annotation | The url element supplies any URI defined address (e.g. a homepage, facebook or twitter account etc.)
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | restriction of anyURI
properties
isRef | 0
minOcc | 0
maxOcc | 3
content | simple
facets
minLength | 1
maxLength | 100
source <element name="url" minOccurs="0" maxOccurs="3">
<simpleType>
<restriction base="anyURI">
<minLength value="1"/>
<maxLength value="100"/>
</restriction>
</simpleType>
</element>


 element esrAddressType/person
Annotation | The given address used in an ESR is of type person given by the person element
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:personType
properties
isRef | 0
content | complex
children | invoice:familyname invoice:givenname invoice:subaddressing invoice:postal invoice:telecom invoice:online
attributes parameters
Name | Type | Use | Default | Fixed
salutation | invoice:stringType1_35 |  |  |
title | invoice:stringType1_35 |  |  |
attributes annotations
Name | Notes
salutation | salutation is the optional salutation of the person
title | title is optional title of the person
source | <element name="person" type="invoice:personType"/>


 element personType/familyname
Annotation | The familyname element supplies the family name (or last name) of a person
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:stringType1_35
properties
isRef | 0
content | simple
facets
minLength | 1
maxLength | 35
source | <element name="familyname" type="invoice:stringType1_35"/>


 element personType/givenname
Annotation | The givenname element supplies the forename or first name of a person
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:stringType1_35
properties
isRef | 0
content | simple
facets
minLength | 1
maxLength | 35
source | <element name="givenname" type="invoice:stringType1_35"/>


 element personType/subaddressing
Annotation | The subaddressing element supplies further special information of a full address (e.g. c/o information and the like)
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:stringType1_35
properties
isRef | 0
minOcc | 0
maxOcc | 1
content | simple
facets
minLength | 1
maxLength | 35
source | <element name="subaddressing" type="invoice:stringType1_35" minOccurs="0"/>


 element personType/postal
Annotation | The postal element depicts the postal part of a full address
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:postalAddressType
properties
isRef | 0
content | complex
children | invoice:pobox invoice:street invoice:zip invoice:city
source | <element name="postal" type="invoice:postalAddressType"/>


 element personType/telecom
Annotation | The telecom element depicts the telecom related part of a full address
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:telecomAddressType
properties
isRef | 0
minOcc | 0
maxOcc | 1
content | complex
children | invoice:phone invoice:fax
source | <element name="telecom" type="invoice:telecomAddressType" minOccurs="0"/>


 element personType/online
Annotation | The online element depicts the online related part of a full address
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:onlineAddressType
properties
isRef | 0
minOcc | 0
maxOcc | 1
content | complex
children | invoice:email invoice:url
source | <element name="online" type="invoice:onlineAddressType" minOccurs="0"/>


 element bodyType/esr9
Annotation The esr9 element supplies payment information for an ESR with 9-digit participant number

Note, that the biller is the creditor of the transaction whereas the guarantor (TG)/insurance (TP) is the debitor

diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:esr9Type
properties
isRef | 0
content | complex
children | invoice:bank
attributes parameters
Name | Type | Use | Default | Fixed
type | derived by: NMTOKEN |  | 16or27 |
participant_number | derived by: string | required |  |
reference_number | derived by: string | required |  |
coding_line | derived by: string | required |  |
attributes annotations
Name | Notes
type | type is the type of ESR-9 encoded by a terminal set of tokens
participant_number | participant_number is the 9-digit participant number outside the coding line. Pursuant to the guidelines the participant number should be displayed as VV-XXXXX-P, where VV=01, XXXXX=account without leading 0, P=check digit
reference_number | reference_number is a 16-digit or 27-digit reference number outside the coding line. Pursuant to the guidelines the reference number should be divided up from the right in blocks of 5 separated by blanks
coding_line | coding_line is the coding line of an ESR-9 payment transaction Note, that the due amount is negative for a storno (or a credit advice). In such a case the amount coded into the coding line must be set zero, since negative amounts are not allowed in a coding line!
attributes enumerations
Name | Extension | Base | Value | Annotations
type |  | NMTOKEN | 16or27plus | 16or27plus is an ESR-9 with a 16-digit or 27-digit reference number without coded amount
type |  | NMTOKEN | 16or27 | 15 is an ESR-9 with a 16-digit or 27-digit reference number and coded amount
source | <element name="esr9" type="invoice:esr9Type"/>


 element esr9Type/bank
Annotation | The bank element defines the optional bank address if it is a BESR transaction If the bank address is absent then it must be a VESR transaction.
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:esrAddressType
properties
isRef | 0
minOcc | 0
maxOcc | 1
content | complex
children | invoice:company invoice:person
source | <element name="bank" type="invoice:esrAddressType" minOccurs="0"/>


 element bodyType/esrRed
Annotation The esrRed element supplies payment information for an ESR Red ("Roter Einzahlungsschein")

Note, that the biller is the creditor of the transaction whereas the guarantor (TG)/insurance (TP) is the debitor

diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:esrRedType
properties
isRef | 0
content | complex
children | invoice:bank invoice:payment_reason
attributes parameters
Name | Type | Use | Default | Fixed
payment_to | derived by: NMTOKEN | required |  |
esr_attributes | unsignedInt |  | 0 |
post_account | derived by: string | required |  |
iban | derived by: string |  |  |
reference_number | derived by: string |  |  |
coding_line1 | derived by: string | required |  |
coding_line2 | derived by: string | required |  |
attributes annotations
Name | Notes
payment_to | payment_to is the payment target encoded by a terminal set of tokens
esr_attributes esr_attributes is a 32-bit integer whose bits control the printed ESR-Red layout.
The bit can be ORed together to form the overall command.
Bit |  | Meaning
Bit 1 | (0x000001) | Do not print an ESR Red at all
Bit 2 | (0x000002) | Do not print creditor address (biller) and bank address if defined
Bit 3 | (0x000004) | Do not print debitor address (payer)
Bit 4 | (0x000008) | Do not print the accounting data
Bit 5 | (0x000010) | Do not print the ESR coding lines
Bit 6 | (0x000020) | Do not print the amount
Bit 7 | (0x000040) | Do not print the payment reason
Bit 8 | (0x000080) | Do not print the "in favor of" title (bank_account only)
post_account post_account is the postal account outside the coding lines
Pursuant to the guidelines the postal account should be displayed as VV-XXXX-P, where VV=pre-digits, XXXXX=account without leading 0, P=check digit
iban iban is the Swiss IBAN (21 digits) outside the coding lines (IBAN is mostly empty for postal_account transactions)
Pursuant to the guidelines the IBAN should be divided up from the left in blocks of 4 separated by blanks
reference_number | reference_number is the reference number for the invoice/reminder (digits only) that is coded into the coding line 1 if payment_to=bank_account. In the case of a payment_to=postal_account the reference number should be coded into the payment_reason.
coding_line1 | coding_line1 is the first coding line of an ESR-Red payment transaction coded as defined by the guideline of the Swiss Post (cf. www.postfinance.ch/pf/content/de/seg/biz/customer/download/doc.html
coding_line2 | coding_line2 is the second coding line of an ESR-Red payment transaction coded as defined by the guideline of the Swiss Post (cf. www.postfinance.ch/pf/content/de/seg/biz/customer/download/doc.html
attributes enumerations
Name | Extension | Base | Value | Annotations
payment_to |  | NMTOKEN | postal_account | the payment target is a postal_account (the bank address must be absent)
payment_to |  | NMTOKEN | bank_account | the payment target is a bank_account (the bank address must be present)
source | <element name="esrRed" type="invoice:esrRedType"/>


 element esrRedType/bank
Annotation | The bank element defines the optional bank address if the payment_to=bank_account
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:esrAddressType
properties
isRef | 0
minOcc | 0
maxOcc | 1
content | complex
children | invoice:company invoice:person
source | <element name="bank" type="invoice:esrAddressType" minOccurs="0"/>


 element esrRedType/payment_reason
Annotation | The payment_reason element is are 4 optional elements (35 characters each) giving the reason for the payment
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:stringType1_35
properties
isRef | 0
minOcc | 0
maxOcc | 4
content | simple
facets
minLength | 1
maxLength | 35
source | <element name="payment_reason" type="invoice:stringType1_35" minOccurs="0" maxOccurs="4"/>


 element bodyType/tiers_garant
Annotation | The tiers_garant element defines the invoice/reminder running under Tiers Garant (TG)
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:garantType
properties
isRef | 0
content | complex
children | invoice:biller invoice:provider invoice:insurance invoice:patient invoice:guarantor invoice:referrer invoice:employer
attributes parameters
Name | Type | Use | Default | Fixed
payment_period | duration |  |  |
attributes annotations
Name | Notes
payment_period | payment_period is the payment period in which the invoice/reminder should be paid
source | <element name="tiers_garant" type="invoice:garantType"/>


 element garantType/biller
Annotation The biller element defines the biller of this invoice/reminder
Note, that the biller is implicitly the creditor of the payment transaction in the ESR/ESRRed definition
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:billerAddressType
properties
isRef | 0
content | complex
children | invoice:company invoice:person
attributes parameters
Name | Type | Use | Default | Fixed
ean_party | invoice:eanPartyType | required |  |
zsr | invoice:zsrPartyType |  |  |
specialty | invoice:stringType1_350 |  |  |
attributes annotations
Name | Notes
ean_party | ean_party is the biller's EAN number as defined by www.medwin.ch
zsr | zsr is the biller's ZSR (KSK) as defined by Santésuisse
specialty | specialty is the biller's specialty (branch of medical science a medical person practices)
source | <element name="biller" type="invoice:billerAddressType"/>


 element billerAddressType/company
Annotation | The biller is a company given by the company element
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:companyType
properties
isRef | 0
content | complex
children | invoice:companyname invoice:department invoice:subaddressing invoice:postal invoice:telecom invoice:online
source | <element name="company" type="invoice:companyType"/>


 element billerAddressType/person
Annotation | The biller is a person given by the person element
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:personType
properties
isRef | 0
content | complex
children | invoice:familyname invoice:givenname invoice:subaddressing invoice:postal invoice:telecom invoice:online
attributes parameters
Name | Type | Use | Default | Fixed
salutation | invoice:stringType1_35 |  |  |
title | invoice:stringType1_35 |  |  |
attributes annotations
Name | Notes
salutation | salutation is the optional salutation of the person
title | title is optional title of the person
source | <element name="person" type="invoice:personType"/>


 element garantType/provider
Annotation The provider element is the main service provider
Furthermore, it is this provider to whom the services are assigned to in the Santésuisse statistics
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:providerAddressType
properties
isRef | 0
content | complex
children | invoice:company invoice:person
attributes parameters
Name | Type | Use | Default | Fixed
ean_party | invoice:eanPartyType | required |  |
zsr | invoice:zsrPartyType | required |  |
specialty | invoice:stringType1_350 |  |  |
attributes annotations
Name | Notes
ean_party | ean_party is the provider's EAN number as defined by www.medwin.ch
zsr | zsr is the provider's ZSR (KSK) as defined by Santésuisse
specialty | specialty is the provider's specialty (branch of medical science a doctor practices)
source | <element name="provider" type="invoice:providerAddressType"/>


 element providerAddressType/company
Annotation | The provider is a company given by the company element
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:companyType
properties
isRef | 0
content | complex
children | invoice:companyname invoice:department invoice:subaddressing invoice:postal invoice:telecom invoice:online
source | <element name="company" type="invoice:companyType"/>


 element providerAddressType/person
Annotation | The provider is a person given by the person element
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:personType
properties
isRef | 0
content | complex
children | invoice:familyname invoice:givenname invoice:subaddressing invoice:postal invoice:telecom invoice:online
attributes parameters
Name | Type | Use | Default | Fixed
salutation | invoice:stringType1_35 |  |  |
title | invoice:stringType1_35 |  |  |
attributes annotations
Name | Notes
salutation | salutation is the optional salutation of the person
title | title is optional title of the person
source | <element name="person" type="invoice:personType"/>


 element garantType/insurance
Annotation | The insurance element is the insurance that is the final recipient of the request
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:insuranceAddressType
properties
isRef | 0
minOcc | 0
maxOcc | 1
content | complex
children | invoice:company invoice:person
attributes parameters
Name | Type | Use | Default | Fixed
ean_party | invoice:eanPartyType | required |  |
attributes annotations
Name | Notes
ean_party | ean_party is the insurance's EAN number as defined by www.medwin.ch
source | <element name="insurance" type="invoice:insuranceAddressType" minOccurs="0"/>


 element insuranceAddressType/company
Annotation | The insurance is a company given by the company element
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:companyType
properties
isRef | 0
content | complex
children | invoice:companyname invoice:department invoice:subaddressing invoice:postal invoice:telecom invoice:online
source | <element name="company" type="invoice:companyType"/>


 element insuranceAddressType/person
Annotation | The insurance is a person given by the person element
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:personType
properties
isRef | 0
content | complex
children | invoice:familyname invoice:givenname invoice:subaddressing invoice:postal invoice:telecom invoice:online
attributes parameters
Name | Type | Use | Default | Fixed
salutation | invoice:stringType1_35 |  |  |
title | invoice:stringType1_35 |  |  |
attributes annotations
Name | Notes
salutation | salutation is the optional salutation of the person
title | title is optional title of the person
source | <element name="person" type="invoice:personType"/>


 element garantType/patient
Annotation | The patient element defines the patient with all relevant data
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:patientAddressType
properties
isRef | 0
content | complex
children | invoice:person invoice:card
attributes parameters
Name | Type | Use | Default | Fixed
gender | derived by: NMTOKEN | required |  |
birthdate | dateTime | required |  |
ssn | invoice:ssnPartyType |  |  |
attributes annotations
Name | Notes
gender | gender defines the gender encoded by a terminal set of tokens
birthdate | birthdate defines the birthdate of the patient
ssn ssn defines the social security number of the patient whereupon 3 distinguished styles are allowed:
  • the old 11 digit Swiss SSN ("AHV-Nummer") as defined by Federal Social Insurance Office
  • the new 13 digit Swiss SSN ("SV-Nummer") beginning with 756 as defined by Federal Social Insurance Office
  • the new 4-10 digit SSN of Liechtenstein ("AHV-Nummer") as defined by Liechtensteinische AHV-IV-FAK
Note, that the SSN is stored in the electronic flavor (digits only) whereas on any printed form it must be in its formatted print flavor as requested by the federal authorities.
attributes enumerations
Name | Extension | Base | Value | Annotations
gender |  | NMTOKEN | male | the gender is male
gender |  | NMTOKEN | female | the gender is female
source | <element name="patient" type="invoice:patientAddressType"/>


 element patientAddressType/person
Annotation | The patient's address given by the person element
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:personType
properties
isRef | 0
content | complex
children | invoice:familyname invoice:givenname invoice:subaddressing invoice:postal invoice:telecom invoice:online
attributes parameters
Name | Type | Use | Default | Fixed
salutation | invoice:stringType1_35 |  |  |
title | invoice:stringType1_35 |  |  |
attributes annotations
Name | Notes
salutation | salutation is the optional salutation of the person
title | title is optional title of the person
source | <element name="person" type="invoice:personType"/>


 element patientAddressType/card
Annotation | The card element is a container for information about the patient's insurance card (might be the patient card later on)
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
properties
isRef | 0
minOcc | 0
maxOcc | 1
content | complex
attributes parameters
Name | Type | Use | Default | Fixed
card_id | invoice:stringType1_35 | required |  |
expiry_date | dateTime | required |  |
validation_date | dateTime |  |  |
validation_id | invoice:stringType1_35 |  |  |
validation_server | invoice:stringType1_35 |  |  |
attributes annotations
Name | Notes
card_id | card_id is the unique 20 digits card identifier
expiry_date | expiry_date is the expiry date of the card
validation_date | validation_date is the date of the last validation of the card's data
validation_id | validation_id is the replied id of the last validation of the card's data
validation_server | validation_server is the used server for the last validation process
source <element name="card" minOccurs="0">
<complexType>
<attribute name="card_id" type="invoice:stringType1_35" use="required"/>
<attribute name="expiry_date" type="dateTime" use="required"/>
<attribute name="validation_date" type="dateTime"/>
<attribute name="validation_id" type="invoice:stringType1_35"/>
<attribute name="validation_server" type="invoice:stringType1_35"/>
</complexType>
</element>


 element garantType/guarantor
Annotation The guarantor element is the guarantor of the invoice/reminder (mostly the patient)
Note, that there is a difference between the meaning of guarantor in TG (debitor of invoice/reminder) and TP (legal representative and debitor of the premiums)!
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:guarantorAddressType
properties
isRef | 0
content | complex
children | invoice:company invoice:person
source | <element name="guarantor" type="invoice:guarantorAddressType"/>


 element guarantorAddressType/company
Annotation | The guarantor is a company given by the company element
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:companyType
properties
isRef | 0
content | complex
children | invoice:companyname invoice:department invoice:subaddressing invoice:postal invoice:telecom invoice:online
source | <element name="company" type="invoice:companyType"/>


 element guarantorAddressType/person
Annotation | The guarantor is a person given by the person element
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:personType
properties
isRef | 0
content | complex
children | invoice:familyname invoice:givenname invoice:subaddressing invoice:postal invoice:telecom invoice:online
attributes parameters
Name | Type | Use | Default | Fixed
salutation | invoice:stringType1_35 |  |  |
title | invoice:stringType1_35 |  |  |
attributes annotations
Name | Notes
salutation | salutation is the optional salutation of the person
title | title is optional title of the person
source | <element name="person" type="invoice:personType"/>


 element garantType/referrer
Annotation | The referrer element defines an optional referrer who has referred the patient to the main provider.
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:referrerAddressType
properties
isRef | 0
minOcc | 0
maxOcc | 1
content | complex
children | invoice:company invoice:person
attributes parameters
Name | Type | Use | Default | Fixed
ean_party | invoice:eanPartyType |  |  |
zsr | invoice:zsrPartyType |  |  |
specialty | invoice:stringType1_350 |  |  |
attributes annotations
Name | Notes
ean_party | ean_party is the referrer's EAN number as defined by www.medwin.ch
zsr | zsr is the referrer's ZSR (KSK) as defined by Santésuisse
specialty | specialty is the referrer's specialty (branch of medical science a doctor practices)
source | <element name="referrer" type="invoice:referrerAddressType" minOccurs="0"/>


 element referrerAddressType/company
Annotation | The referrer is a company given by the company element
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:companyType
properties
isRef | 0
content | complex
children | invoice:companyname invoice:department invoice:subaddressing invoice:postal invoice:telecom invoice:online
source | <element name="company" type="invoice:companyType"/>


 element referrerAddressType/person
Annotation | The referrer is a person given by the person element
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:personType
properties
isRef | 0
content | complex
children | invoice:familyname invoice:givenname invoice:subaddressing invoice:postal invoice:telecom invoice:online
attributes parameters
Name | Type | Use | Default | Fixed
salutation | invoice:stringType1_35 |  |  |
title | invoice:stringType1_35 |  |  |
attributes annotations
Name | Notes
salutation | salutation is the optional salutation of the person
title | title is optional title of the person
source | <element name="person" type="invoice:personType"/>


 element garantType/employer
Annotation | The employer element defines the employer of the patient (the employer might be important in an UVG case)
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:employerAddressType
properties
isRef | 0
minOcc | 0
maxOcc | 1
content | complex
children | invoice:company invoice:person
attributes parameters
Name | Type | Use | Default | Fixed
ean_party | invoice:eanPartyType |  |  |
reg_number | invoice:stringType1_35 |  |  |
attributes annotations
Name | Notes
ean_party | ean_party is the employer's EAN number as defined by www.medwin.ch
reg_number | reg_number is the employer's national BER number as defined by Swiss Federal Statistical Office
source | <element name="employer" type="invoice:employerAddressType" minOccurs="0"/>


 element employerAddressType/company
Annotation | The employer is a company given by the company element
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:companyType
properties
isRef | 0
content | complex
children | invoice:companyname invoice:department invoice:subaddressing invoice:postal invoice:telecom invoice:online
source | <element name="company" type="invoice:companyType"/>


 element employerAddressType/person
Annotation | The employer is a person given by the person element
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:personType
properties
isRef | 0
content | complex
children | invoice:familyname invoice:givenname invoice:subaddressing invoice:postal invoice:telecom invoice:online
attributes parameters
Name | Type | Use | Default | Fixed
salutation | invoice:stringType1_35 |  |  |
title | invoice:stringType1_35 |  |  |
attributes annotations
Name | Notes
salutation | salutation is the optional salutation of the person
title | title is optional title of the person
source | <element name="person" type="invoice:personType"/>


 element bodyType/tiers_payant
Annotation | The tiers_payant element defines the invoice/reminder running under Tiers Payant (TP)
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:payantType
properties
isRef | 0
content | complex
children | invoice:biller invoice:provider invoice:insurance invoice:patient invoice:guarantor invoice:referrer invoice:employer
attributes parameters
Name | Type | Use | Default | Fixed
payment_period | duration |  |  |
attributes annotations
Name | Notes
payment_period | payment_period is the payment period in which the invoice/reminder should be paid
source | <element name="tiers_payant" type="invoice:payantType"/>


 element payantType/biller
Annotation The biller element defines the biller of this invoice/reminder
Note, that the biller is implicitly the creditor of the payment transaction in the ESR/ESRRed definition
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:billerAddressType
properties
isRef | 0
content | complex
children | invoice:company invoice:person
attributes parameters
Name | Type | Use | Default | Fixed
ean_party | invoice:eanPartyType | required |  |
zsr | invoice:zsrPartyType |  |  |
specialty | invoice:stringType1_350 |  |  |
attributes annotations
Name | Notes
ean_party | ean_party is the biller's EAN number as defined by www.medwin.ch
zsr | zsr is the biller's ZSR (KSK) as defined by Santésuisse
specialty | specialty is the biller's specialty (branch of medical science a medical person practices)
source | <element name="biller" type="invoice:billerAddressType"/>


 element payantType/provider
Annotation The provider element is the main service provider
Furthermore, it is this provider to whom the services are assigned to in the Santésuisse statistics
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:providerAddressType
properties
isRef | 0
content | complex
children | invoice:company invoice:person
attributes parameters
Name | Type | Use | Default | Fixed
ean_party | invoice:eanPartyType | required |  |
zsr | invoice:zsrPartyType | required |  |
specialty | invoice:stringType1_350 |  |  |
attributes annotations
Name | Notes
ean_party | ean_party is the provider's EAN number as defined by www.medwin.ch
zsr | zsr is the provider's ZSR (KSK) as defined by Santésuisse
specialty | specialty is the provider's specialty (branch of medical science a doctor practices)
source | <element name="provider" type="invoice:providerAddressType"/>


 element payantType/insurance
Annotation The insurance element is the insurance who eventually pay the invoice/reminder
Note, that the insurance is implicitly the debitor of the payment transaction in the ESR/ESRRed definition
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:insuranceAddressType
properties
isRef | 0
content | complex
children | invoice:company invoice:person
attributes parameters
Name | Type | Use | Default | Fixed
ean_party | invoice:eanPartyType | required |  |
attributes annotations
Name | Notes
ean_party | ean_party is the insurance's EAN number as defined by www.medwin.ch
source | <element name="insurance" type="invoice:insuranceAddressType"/>


 element payantType/patient
Annotation | The patient element defines the patient with all relevant data
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:patientAddressType
properties
isRef | 0
content | complex
children | invoice:person invoice:card
attributes parameters
Name | Type | Use | Default | Fixed
gender | derived by: NMTOKEN | required |  |
birthdate | dateTime | required |  |
ssn | invoice:ssnPartyType |  |  |
attributes annotations
Name | Notes
gender | gender defines the gender encoded by a terminal set of tokens
birthdate | birthdate defines the birthdate of the patient
ssn ssn defines the social security number of the patient whereupon 3 distinguished styles are allowed:
  • the old 11 digit Swiss SSN ("AHV-Nummer") as defined by Federal Social Insurance Office
  • the new 13 digit Swiss SSN ("SV-Nummer") beginning with 756 as defined by Federal Social Insurance Office
  • the new 4-10 digit SSN of Liechtenstein ("AHV-Nummer") as defined by Liechtensteinische AHV-IV-FAK
Note, that the SSN is stored in the electronic flavor (digits only) whereas on any printed form it must be in its formatted print flavor as requested by the federal authorities.
attributes enumerations
Name | Extension | Base | Value | Annotations
gender |  | NMTOKEN | male | the gender is male
gender |  | NMTOKEN | female | the gender is female
source | <element name="patient" type="invoice:patientAddressType"/>


 element payantType/guarantor
Annotation The guarantor element is the patient himself or his legal representative
Note, that there is a difference between the meaning of guarantor in TG (debitor of invoice/reminder) and TP (legal representative and debitor of the premiums)!
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:guarantorAddressType
properties
isRef | 0
content | complex
children | invoice:company invoice:person
source | <element name="guarantor" type="invoice:guarantorAddressType"/>


 element payantType/referrer
Annotation | The referrer element defines an optional referrer who has referred the patient to the main provider.
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:referrerAddressType
properties
isRef | 0
minOcc | 0
maxOcc | 1
content | complex
children | invoice:company invoice:person
attributes parameters
Name | Type | Use | Default | Fixed
ean_party | invoice:eanPartyType |  |  |
zsr | invoice:zsrPartyType |  |  |
specialty | invoice:stringType1_350 |  |  |
attributes annotations
Name | Notes
ean_party | ean_party is the referrer's EAN number as defined by www.medwin.ch
zsr | zsr is the referrer's ZSR (KSK) as defined by Santésuisse
specialty | specialty is the referrer's specialty (branch of medical science a doctor practices)
source | <element name="referrer" type="invoice:referrerAddressType" minOccurs="0"/>


 element payantType/employer
Annotation | The employer element defines the employer of the patient (the employer might be important in an UVG case)
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:employerAddressType
properties
isRef | 0
minOcc | 0
maxOcc | 1
content | complex
children | invoice:company invoice:person
attributes parameters
Name | Type | Use | Default | Fixed
ean_party | invoice:eanPartyType |  |  |
reg_number | invoice:stringType1_35 |  |  |
attributes annotations
Name | Notes
ean_party | ean_party is the employer's EAN number as defined by www.medwin.ch
reg_number | reg_number is the employer's national BER number as defined by Swiss Federal Statistical Office
source | <element name="employer" type="invoice:employerAddressType" minOccurs="0"/>


 element bodyType/kvg
Annotation | The kvg element defines the applicable law as KVG ("Krankenversicherungsgesetz")
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:kvgLawType
properties
isRef | 0
content | complex
attributes parameters
Name | Type | Use | Default | Fixed
insured_id | invoice:stringType1_35 |  |  |
case_id | invoice:stringType1_35 |  |  |
case_date | dateTime |  |  |
contract_number | invoice:stringType1_35 |  |  |
attributes annotations
Name | Notes
insured_id | insured_id is the patient's identification number at the insurance (policy number),
case_id | case_id is the treatment/case identification given by the insurance
case_date | case_date is the treatment/case date given by the insurance
contract_number | contract_number is an individual contract number negotiated between provider and insurance regarding the accounting of medical services ("Einzelvertragsnummer nach KVG").
source | <element name="kvg" type="invoice:kvgLawType"/>


 element bodyType/vvg
Annotation | The vvg element defines the applicable law as VVG ("Versicherungsvertragsgesetz")
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:vvgLawType
properties
isRef | 0
content | complex
attributes parameters
Name | Type | Use | Default | Fixed
insured_id | invoice:stringType1_35 |  |  |
case_id | invoice:stringType1_35 |  |  |
case_date | dateTime |  |  |
contract_number | invoice:stringType1_35 |  |  |
attributes annotations
Name | Notes
insured_id | insured_id is the patient's identification number at the insurance (policy number),
case_id | case_id is the treatment/case identification given by the insurance
case_date | case_date is the treatment/case date given by the insurance
contract_number | contract_number is an individual contract number negotiated between provider and insurance regarding the accounting of medical services ("Einzelvertragsnummer nach VVG").
source | <element name="vvg" type="invoice:vvgLawType"/>


 element bodyType/uvg
Annotation | The uvg element defines the applicable law as UVG ("Unfallversicherungsgesetz")
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:uvgLawType
properties
isRef | 0
content | complex
attributes parameters
Name | Type | Use | Default | Fixed
insured_id | invoice:stringType1_35 |  |  |
case_id | invoice:stringType1_35 |  |  |
case_date | dateTime |  |  |
contract_number | invoice:stringType1_35 |  |  |
ssn | invoice:ssnPartyType |  |  |
attributes annotations
Name | Notes
insured_id | insured_id is the patient's identification number at the insurance (policy number),
case_id | case_id is the treatment/case identification given by the insurance (accident number)
case_date | case_date is the treatment/case date given by the insurance (accident date)
contract_number | contract_number is an individual contract number negotiated between provider and insurance regarding the accounting of medical services.
ssn ssn defines the social security number of the patient whereupon 3 distinguished styles are allowed:
  • the old 11 digit Swiss SSN ("AHV-Nummer") as defined by Federal Social Insurance Office
  • the new 13 digit Swiss SSN ("SV-Nummer") beginning with 756 as defined by Federal Social Insurance Office
  • the new 4-10 digit SSN of Liechtenstein ("AHV-Nummer") as defined by Liechtensteinische AHV-IV-FAK
Note, that the SSN is stored in the electronic flavor (digits only) whereas on any printed form it must be in its formatted print flavor as requested by the federal authorities.
source | <element name="uvg" type="invoice:uvgLawType"/>


 element bodyType/ivg
Annotation | The ivg element defines the applicable law as IVG ("Invalidenversicherungsgesetz")
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:ivgLawType
properties
isRef | 0
content | complex
attributes parameters
Name | Type | Use | Default | Fixed
case_id | derived by: string | required |  |
case_date | dateTime |  |  |
contract_number | invoice:stringType1_35 |  |  |
ssn | invoice:ssnPartyType | required |  |
nif | invoice:nifPartyType |  |  |
attributes annotations
Name | Notes
case_id | case_id is the treatment/case identification given by the insurance (accident number)
case_date | case_date is the treatment/case date given by the insurance (accident date)
contract_number | contract_number is an individual contract number negotiated between provider and insurance regarding the accounting of medical services.
ssn ssn defines the social security number of the patient whereupon 3 distinguished styles are allowed:
  • the old 11 digit Swiss SSN ("AHV-Nummer") as defined by Federal Social Insurance Office
  • the new 13 digit Swiss SSN ("SV-Nummer") beginning with 756 as defined by Federal Social Insurance Office
  • the new 4-10 digit SSN of Liechtenstein ("AHV-Nummer") as defined by Liechtensteinische AHV-IV-FAK
Note, that the SSN is stored in the electronic flavor (digits only) whereas on any printed form it must be in its formatted print flavor as requested by the federal authorities.
nif | nif is the IV specific identification number for the provider.
source | <element name="ivg" type="invoice:ivgLawType"/>


 element bodyType/mvg
Annotation | The mvg element defines the applicable law as MVG ("Militäversicherungsgesetz")
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:mvgLawType
properties
isRef | 0
content | complex
attributes parameters
Name | Type | Use | Default | Fixed
insured_id | invoice:stringType1_35 |  |  |
case_id | invoice:stringType1_35 |  |  |
case_date | dateTime |  |  |
contract_number | invoice:stringType1_35 |  |  |
ssn | invoice:ssnPartyType | required |  |
attributes annotations
Name | Notes
insured_id | insured_id is the patient's identification number at the insurance (policy number),
case_id | case_id is the treatment/case identification given by the insurance (accident number)
case_date | case_date is the treatment/case date given by the insurance (accident date)
contract_number | contract_number is an individual contract number negotiated between provider and insurance regarding the accounting of medical services.
ssn ssn defines the social security number of the patient whereupon 3 distinguished styles are allowed:
  • the old 11 digit Swiss SSN ("AHV-Nummer") as defined by Federal Social Insurance Office
  • the new 13 digit Swiss SSN ("SV-Nummer") beginning with 756 as defined by Federal Social Insurance Office
  • the new 4-10 digit SSN of Liechtenstein ("AHV-Nummer") as defined by Liechtensteinische AHV-IV-FAK
Note, that the SSN is stored in the electronic flavor (digits only) whereas on any printed form it must be in its formatted print flavor as requested by the federal authorities.
source | <element name="mvg" type="invoice:mvgLawType"/>


 element bodyType/org
Annotation | The org element defines the applicable law as ORG ("Obligationenrecht")
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:orgLawType
properties
isRef | 0
content | complex
attributes parameters
Name | Type | Use | Default | Fixed
insured_id | invoice:stringType1_35 |  |  |
case_id | invoice:stringType1_35 |  |  |
case_date | dateTime |  |  |
contract_number | invoice:stringType1_35 |  |  |
attributes annotations
Name | Notes
insured_id | insured_id is the patient's identification number at the insurance (policy number),
case_id | case_id is the treatment/case identification given by the insurance (accident number)
case_date | case_date is the treatment/case date given by the insurance (accident date)
contract_number | contract_number is an individual contract number negotiated between provider and insurance regarding the accounting of medical services.
source | <element name="org" type="invoice:orgLawType"/>


 element bodyType/treatment
Annotation | The treatment element defines the treatment parameters possibly augmented by extra parameters in case of a hospital invoice/reminder (place=hospital)
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:treatmentType
properties
isRef | 0
content | complex
children | invoice:diagnosis invoice:xtra_hospital
attributes parameters
Name | Type | Use | Default | Fixed
date_begin | dateTime | required |  |
date_end | dateTime | required |  |
canton | derived by: NMTOKEN | required |  |
reason | derived by: NMTOKEN | required |  |
attributes annotations
Name | Notes
date_begin | date_begin is the start of the treatment Note, that the date of every service must be greater or equal date_begin otherwise it is a content error
date_end | date_end is the end of the treatment Note, that the date of every service must be less or equal date_end otherwise it is a content error
canton | canton is Swiss canton or a country close to the border in which the treatment took place encoded by a terminal set of tokens. Please note that the countries except for Liechtenstein are code by a 1-character abbreviation due to name collisions with the canton abbreviations. Liechtenstein is coded by "LI" as in the prior standards.
reason | reason is the primary reason the treatment took place encoded by a terminal set of tokens
attributes enumerations
Name | Extension | Base | Value | Annotations
canton |  | NMTOKEN | AG | the canton is AG - Aargau
canton |  | NMTOKEN | AI | the canton is AI - Appenzell Innerrhoden
canton |  | NMTOKEN | AR | the canton is AR - Appenzell Ausserrhoden
canton |  | NMTOKEN | BE | the canton is BE - Bern
canton |  | NMTOKEN | BL | the canton is BL - Baselland
canton |  | NMTOKEN | BS | the canton is BS - Basel
canton |  | NMTOKEN | FR | the canton is FR - Fribourg
canton |  | NMTOKEN | GE | the canton is GE - Geneva
canton |  | NMTOKEN | GL | the canton is GL - Glarus
canton |  | NMTOKEN | GR | the canton is GR - Graubünden
canton |  | NMTOKEN | JU | the canton is JU - Jura
canton |  | NMTOKEN | LU | the canton is LU - Lucerne
canton |  | NMTOKEN | NE | the canton is NE - Neuchâtel
canton |  | NMTOKEN | NW | the canton is NW - Nidwalden
canton |  | NMTOKEN | OW | the canton is OW - Obwalden
canton |  | NMTOKEN | SG | the canton is SG - St. Gallen
canton |  | NMTOKEN | SH | the canton is SH - Schaffhausen
canton |  | NMTOKEN | SO | the canton is SO - Solothurn
canton |  | NMTOKEN | SZ | the canton is SZ - Schwyz
canton |  | NMTOKEN | TI | the canton is TI - Ticino
canton |  | NMTOKEN | TG | the canton is TG - Thurgau
canton |  | NMTOKEN | UR | the canton is UR - Uri
canton |  | NMTOKEN | VD | the canton is VD - Vaud
canton |  | NMTOKEN | VS | the canton is VS - Valais
canton |  | NMTOKEN | ZG | the canton is ZG - Zug
canton |  | NMTOKEN | ZH | the canton is ZH - Zürich
canton |  | NMTOKEN | LI | the country is LI - Liechtenstein
canton |  | NMTOKEN | A | the country is A - Austria
canton |  | NMTOKEN | D | the country is D - Germany
canton |  | NMTOKEN | F | the country is F - France
canton |  | NMTOKEN | I | the country is I - Italy
reason |  | NMTOKEN | disease | the reason of treatment is a disease
reason |  | NMTOKEN | accident | the reason of treatment is an accident
reason |  | NMTOKEN | maternity | the reason of treatment is a maternity
reason |  | NMTOKEN | prevention | the reason of treatment is prevention
reason |  | NMTOKEN | birthdefect | the reason of treatment a birthdefect
reason |  | NMTOKEN | unknown | the reason of treatment is unknown (or something not mentioned above)
source | <element name="treatment" type="invoice:treatmentType"/>


 element treatmentType/diagnosis
Annotation | The diagnosis element defines diagnoses for the treatment
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:diagnosisType
properties
isRef | 0
minOcc | 0
maxOcc | unbounded
content | complex
facets
maxLength 350
attributes parameters
Name | Type | Use | Default | Fixed
type | derived by: NMTOKEN |  | by_contract |
code | invoice:stringType1_12 |  |  |
attributes annotations
Name | Notes
type | type is the type of diagnosis catalog used encoded by a terminal set of tokens
code | code is the used code of the designated diagnosis catalog
attributes enumerations
Name | Extension | Base | Value | Annotations
type | stringType0_350 | NMTOKEN | ICD | the diagnosis catalog is ICD (e.g. ICD-10)
type | stringType0_350 | NMTOKEN | cantonal | the diagnosis catalog is the cantonal TI catalog
type | stringType0_350 | NMTOKEN | DRG | the diagnosis catalog is DRG (a DRG service position)
type | stringType0_350 | NMTOKEN | by_contract | the diagnosis is as defined by an individual contract (between provider and insurance)
type | stringType0_350 | NMTOKEN | freetext | the diagnosis is given as freetext
type | stringType0_350 | NMTOKEN | birthdefect | the diagnosis is a birthdefect coded from the "Geburtsgebrechenliste"
type | stringType0_350 | NMTOKEN | ICPC | the diagnosis catalog is ICPC (e.g. ICPC-2)
source | <element name="diagnosis" type="invoice:diagnosisType" minOccurs="0" maxOccurs="unbounded"/>


 element treatmentType/xtra_hospital
Annotation | The xtra_hospital element defines further additional data for the treatment if the given place=hospital
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:xtraHospitalType
properties
isRef | 0
minOcc | 0
maxOcc | 1
content | complex
children | invoice:ambulatory invoice:stationary
source | <element name="xtra_hospital" type="invoice:xtraHospitalType" minOccurs="0"/>


 element xtraHospitalType/ambulatory
Annotation | The ambulatory element defines additional data for an ambulatory treatment if place=hospital
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:xtraAmbulatoryType
properties
isRef | 0
content | complex
attributes parameters
Name | Type | Use | Default | Fixed
hospitalization_type | derived by: NMTOKEN |  |  |
hospitalization_mode | derived by: NMTOKEN |  |  |
class | derived by: NMTOKEN |  |  |
section_major | invoice:stringType1_6 |  |  |
attributes annotations
Name | Notes
hospitalization_type | hospitalization_type is the type of hospitalization encoded by a terminal set of tokens
hospitalization_mode | hospitalization_mode is the mode of hospitalization encoded by a terminal set of tokens
class | hospitalization class is the class of insurance that covers the patient's stay encoded by a terminal set of tokens
section_major | section_major is the main section code (BfS section code) of the treatment as defined by Swiss Federal Statistical Office
attributes enumerations
Name | Extension | Base | Value | Annotations
class |  | NMTOKEN | private | the class of insurance is private (1st class insurance coverage)
class |  | NMTOKEN | semi_private | the class of insurance is semi_private (2nd class insurance coverage)
class |  | NMTOKEN | general | the class of insurance is general (3rd class insurance coverage)
class |  | NMTOKEN | hospital_comfort | the class of insurance is hospital_comfort ()
class |  | NMTOKEN | md_free_choice | the class of insurance is md_free_choice ("Freie Arztwahl")
hospitalization_mode |  | NMTOKEN | cantonal | the mode of hospitalization is cantonal - patient's domicile is in the treatment canton)
hospitalization_mode |  | NMTOKEN | noncantonal_indicated | the mode of hospitalization is noncantonal_indicated - patient's domicile is not in the treatment canton, but treatment is indicated
hospitalization_mode |  | NMTOKEN | noncantonal_nonindicated | the mode of hospitalization is noncantonal_nonindicated - patient's domicile is not in the treatment canton and treatment is not indicated
hospitalization_type |  | NMTOKEN | regular | the type of hospitalization is regular ("a normal and planned hospitalization")
hospitalization_type |  | NMTOKEN | emergency | the type of hospitalization is emergency ("hospitalization due to an emergency")
hospitalization_type |  | NMTOKEN | welfare | the type of hospitalization is welfare ("Fürsorglicher Freiheitsentzug")
source | <element name="ambulatory" type="invoice:xtraAmbulatoryType"/>


 element xtraHospitalType/stationary
Annotation | The stationary element defines additional data for a stationary treatment if place=hospital
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:xtraStationaryType
properties
isRef | 0
content | complex
attributes parameters
Name | Type | Use | Default | Fixed
hospitalization_date | dateTime | required |  |
treatment_days | duration | required |  |
hospitalization_type | derived by: NMTOKEN |  | regular |
hospitalization_mode | derived by: NMTOKEN |  | cantonal |
class | derived by: NMTOKEN |  | general |
section_major | invoice:stringType1_6 |  |  |
has_expense_loading | boolean |  | true |
admission_type | derived by: NMTOKEN | required |  |
discharge_type | derived by: NMTOKEN | required |  |
attributes annotations
Name | Notes
hospitalization_date hospitalization_date is the date and time of the hospitalization.
Note, that this date must be less or equal the begin date of the treatment period
treatment_days treatment_days is the number of treatment days within the given treatment period.
The calculation of these treatment days is dependent on whether SwissDRG is used nor not!
The treatment days are calculated as
  • None-SwissDRG: «(treatment@date_end - treatment@date_begin + 1 - vacation_days)»
  • SwissDRG: «(treatment@date_end - treatment@date_begin - vacation_days)»
where vacation_days is the number of vacation days (the leave days when the patient was not in the hospital for treatment).

Note, that treatment_days is identical to the "length of stay" notion of a DRG service position (either APDRG or SwissDRG)

hospitalization_type | hospitalization_type is the type of hospitalization encoded by a terminal set of tokens
hospitalization_mode | hospitalization_mode is the mode of hospitalization encoded by a terminal set of tokens
class | hospitalization class is the class of insurance that covers the patient's stay encoded by a terminal set of tokens
section_major | section_major is the main section code (BfS section code) of the treatment as defined by Swiss Federal Statistical Office
has_expense_loading | has_expense_loading is a Boolean value if there is an expense loading by the patient ("Spitalkostenbeitrag")
admission_type | admission_type is the reason for the patient's admission encoded by a terminal set of tokens as defined in the DRG grouper.
discharge_type | discharge_type is the reason for the patient's discharge encoded by a terminal set of tokens as defined in the DRG grouper.
attributes enumerations
Name | Extension | Base | Value | Annotations
admission_type |  | NMTOKEN | normal | the admission type is normal - the patient's admission is normal
admission_type |  | NMTOKEN | relocated | the admission type is relocated - the patient was relocated from another clinic/hospital
admission_type |  | NMTOKEN | unknown | the admission type is unknown - the reason for the admission is not known
class |  | NMTOKEN | private | the class of insurance is private (1st class insurance coverage)
class |  | NMTOKEN | semi_private | the class of insurance is semi_private (2nd class insurance coverage)
class |  | NMTOKEN | general | the class of insurance is general (3rd class insurance coverage)
class |  | NMTOKEN | hospital_comfort | the class of insurance is hospital_comfort ()
class |  | NMTOKEN | md_free_choice | the class of insurance is md_free_choice ("Freie Arztwahl")
discharge_type |  | NMTOKEN | normal | the discharge type is normal - the patient was discharged normally
discharge_type |  | NMTOKEN | relocated | the discharge type is relocated - the patient was discharged to another clinic/hospital
discharge_type |  | NMTOKEN | deceased | the discharge type is deceased - the patient passed away
discharge_type |  | NMTOKEN | aborted | the discharge type is aborted - the discharge was by the patient's own decision and against medical advice
discharge_type |  | NMTOKEN | unknown | the unknown type is unknown - the reason for the discharge is not known
hospitalization_mode |  | NMTOKEN | cantonal | the mode of hospitalization is cantonal - patient's domicile is in the treatment canton)
hospitalization_mode |  | NMTOKEN | noncantonal_indicated | the mode of hospitalization is noncantonal_indicated - patient's domicile is not in the treatment canton, but treatment is indicated
hospitalization_mode |  | NMTOKEN | noncantonal_nonindicated | the mode of hospitalization is noncantonal_nonindicated - patient's domicile is not in the treatment canton and treatment is not indicated
hospitalization_type |  | NMTOKEN | regular | the type of hospitalization is regular ("a normal and planned hospitalization")
hospitalization_type |  | NMTOKEN | emergency | the type of hospitalization is emergency ("hospitalization due to an emergency")
hospitalization_type |  | NMTOKEN | welfare | the type of hospitalization is welfare ("Fürsorglicher Freiheitsentzug")
source | <element name="stationary" type="invoice:xtraStationaryType"/>


 element bodyType/services
Annotation | The services element is a container for all services applied within the given treatment period
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:servicesType
properties
isRef | 0
content | complex
children | invoice:record_tarmed invoice:record_drg invoice:record_lab invoice:record_migel invoice:record_paramed invoice:record_drug invoice:record_other
source | <element name="services" type="invoice:servicesType"/>


 element servicesType/record_tarmed
Annotation | The record_tarmed element supplies the data of a Tarmed service record
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:recordTarmedType
properties
isRef | 0
content | complex
attributes parameters
Name | Type | Use | Default | Fixed
record_id | derived by: int | required |  |
tariff_type | derived by: string | required |  |
code | invoice:stringType1_30 | required |  |
ref_code | invoice:stringType1_30 |  |  |
name | invoice:stringType1_350 | required |  |
session | derived by: int |  | 1 |
quantity | double | required |  |
date_begin | dateTime | required |  |
date_end | dateTime |  |  |
provider_id | invoice:unionPartyType | required |  |
responsible_id | invoice:unionPartyType | required |  |
billing_role | derived by: NMTOKEN |  | both |
medical_role | derived by: NMTOKEN |  | self_employed |
body_location | derived by: NMTOKEN |  | none |
treatment | derived by: NMTOKEN |  | ambulatory |
unit_mt | derived by: double | required |  |
unit_factor_mt | derived by: double | required |  |
scale_factor_mt | double |  | 1.0 |
external_factor_mt | derived by: double |  | 1.0 |
amount_mt | double |  | 0.0 |
unit_tt | derived by: double | required |  |
unit_factor_tt | derived by: double | required |  |
scale_factor_tt | double |  | 1.0 |
external_factor_tt | derived by: double |  | 1.0 |
amount_tt | double |  | 0.0 |
amount | double | required |  |
vat_rate | derived by: double |  | 0.0 |
validate | boolean |  | false |
obligation | boolean |  | true |
section_code | invoice:stringType1_6 |  |  |
remark | invoice:stringType1_350 |  |  |
service_attributes | unsignedInt |  | 0 |
attributes annotations
Name | Notes
record_id record_id is a record sequence number (starting with 1 and incremented by 1 for each further record) uniquely identifying the record
Note, that the sequence numbering is over all types of services!
tariff_type tariff_type is the official 3-character designator of the used tariff as given by Forum Datenaustausch
The default tariff type is "001" for Tarmed
code | code is the code of the service record as given by the used tariff catalog
ref_code ref_code is a back-reference code ("parent code") to a previously given service
Of course, ref_code is empty if the current service does not need such a back-reference
name | name is the official service name as given by the used tariff catalog
session | session is the session number (default value is 1) in which the current service is part of
quantity quantity is the used quantity of the current service
Note, that the quantity is defined as double spanning negative, zero and positive fractional values!
  • negative quantities are used for service records in a storno (or credit advice) (cf. attribute request/payload@storno)
  • a zero quantity is used for "pro memoria" services
  • positive quantities are used for "normal" services
  • fractional values are used whenever a part of the "full" service is used (e.g. quantity=0.25 for 02.0050 with a group of 4)
quantity must not be rounded but given in full precision.
date_begin | date_begin is the date when the service was (first) applied
date_end date_end is the date when the service was last applied.
Note that date_end is only neccessary if a service was applied over a period of more than 1 day.
provider_id | provider_id is the provider's identification (EAN or ZSR) that physically applied the service
responsible_id | responsible_id is the responsible person's identification (EAN or ZSR) who has medical responsibility for the applied service
billing_role | billing_role is the Tarmed defined billing role encoded by a terminal set of tokens.
medical_role | medical_role is the Tarmed defined medical role encoded by a terminal set of tokens.
body_location | body_location is the Tarmed defined side location encoded by a terminal set of tokens.
treatment | treatment is the treatment type under which the service was applied encoded by a terminal set of tokens.
unit_mt unit_mt is the tax point of the medical part (TP(mt)) of the applied service
unit_mt is defined as double and must not be rounded but given in full precision.
unit_factor_mt unit_factor_mt is the tax point value of the medical part (TPV(mt)) of the applied service
unit_factor_mt is defined as double and must not be rounded but given in full precision.
scale_factor_mt scale_factor_mt is an internal Tarmed defined scale factor of the medical part of the applied service
scale_factor_mt is defined as double and must not be rounded but given in full precision.
external_factor_mt external_factor_mt is a external scale factor (given by the main software) for the medical part of the applied service
external_factor_mt is used as a measure for giving discounts and can even be zero to supply a charge free service.
amount_mt amount_mt is the charged amount of the medical part of the applied service
Note, that amount_mt must fulfill the equation
«external_factor_mt * quantity * TP(mt) * TPV(mt) * scale_factor_mt»

calculated in full precision and the result rounded to 2 significant decimal places. This procedure is the reason for storing the multipliers in full precision.
unit_tt unit_tt is the tax point of the technical part (TP(tt)) of the applied service
unit_tt is defined as double and must not be rounded but given in full precision.
unit_factor_tt unit_factor_tt is the tax point value of the technical part (TPV(tt)) of the applied service
unit_factor_tt is defined as double and must not be rounded but given in full precision.
scale_factor_tt scale_factor_tt is an internal Tarmed defined scale factor of the technical part of the applied service
scale_factor_tt is defined as double and must not be rounded but given in full precision.
external_factor_tt external_factor_tt is a external scale factor (given by the main software) for the technical part of the applied service
external_factor_tt is used as a measure for giving discounts and can even be zero to supply a charge free service.
amount_tt amount_tt is the charged amount of the technical part of the applied service
Note, that amount_tt must fulfill the equation
«external_factor_tt * quantity * TP(tt) * TPV(tt) * scale_factor_tt»

calculated in full precision and the result rounded to 2 significant decimal places. This procedure is the reason for storing the multipliers in full precision.
amount | amount is the charged amount of the applied service consisting of (amount_mt + amount_tt)
vat_rate | vat_rate is the applicable vat rate for the applied service given as a percentage factor
validate validate is a Boolean value if the applied service was validated with a validator
If validate is true, then the validator is referenced as a dependent software/module inside the request/payload/body/prolog/generator element
obligation | obligation is a Boolean value if the applied service is a standard insurance benefit under the given law
section_code | section_code is a section code (BfS section code) where the service was applied as defined by Swiss Federal Statistical Office - this code is only given for role=hospital!
remark | remark is an optional remark for the applied service
service_attributes service_attributes is a 32 bit integer where each bit defines a certain refinement/enhancement to the already supplied data.
The currently defined values are given in the purpose chapter ("Service attributes")
attributes enumerations
Name | Extension | Base | Value | Annotations
billing_role |  | NMTOKEN | mt | the billing role is mt (medical part only) - set unit_mt=0 in this case!
billing_role |  | NMTOKEN | tt | the billing role is tt (technical part only) - set unit_tt=0 in this case!
billing_role |  | NMTOKEN | both | the billing role is both (medical+technical part, this is the default)
billing_role |  | NMTOKEN | none | the billing role is none (neither medical nor technical part is billed) - set unit_mt=0 and unit_tt=0 in this case!
body_location |  | NMTOKEN | none | the location is none (default) - no side specific location
body_location |  | NMTOKEN | left | the location is left - the service was applied on the left body side
body_location |  | NMTOKEN | right | the location is right - the service was applied on the right body side
medical_role |  | NMTOKEN | self_employed | the medical role is self_employed (default)
medical_role |  | NMTOKEN | employee | the billing role is employee (technical part only)
treatment |  | NMTOKEN | ambulatory | the treatment type is ambulatory (default)
treatment |  | NMTOKEN | stationary | the treatment type is stationary
source | <element name="record_tarmed" type="invoice:recordTarmedType"/>


 element servicesType/record_drg
Annotation | The record_drg element supplies the data of a DRG service record (either Swiss DRG or APDRG)
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:recordDRGType
properties
isRef | 0
content | complex
attributes parameters
Name | Type | Use | Default | Fixed
record_id | derived by: int | required |  |
code | invoice:stringType1_30 | required |  |
ref_code | invoice:stringType1_30 |  |  |
name | invoice:stringType1_350 | required |  |
session | derived by: int |  | 1 |
quantity | double | required |  |
date_begin | dateTime | required |  |
date_end | dateTime |  |  |
provider_id | invoice:unionPartyType | required |  |
responsible_id | invoice:unionPartyType | required |  |
unit | derived by: double | required |  |
unit_factor | derived by: double |  | 1.0 |
external_factor | derived by: double |  | 1.0 |
amount | double | required |  |
vat_rate | derived by: double |  | 0 |
validate | boolean |  | false |
obligation | boolean |  | true |
section_code | invoice:stringType1_6 |  |  |
remark | invoice:stringType1_350 |  |  |
service_attributes | unsignedInt |  | 0 |
tariff_type | derived by: string | required |  |
attributes annotations
Name | Notes
tariff_type | tariff_type is the official 3-character designator of the used DRG tariff as given by Forum Datenaustausch
record_id record_id is a record sequence number (starting with 1 and incremented by 1 for each further record) uniquely identifying the record
Note, that the sequence numbering is over all types of services!
code | code is the code of the service record as given by the used tariff catalog
ref_code ref_code is a back-reference code ("parent code") to a previously given service
Of course, ref_code is empty if no back-reference concept is used for the current tariff catalog or if the current service does not need such a back-reference
name | name is the official service name as given by the used tariff catalog
session session is the session number (default value is 1) in which the current service is part of
Of course, session is empty if there is no session concept used for the current tariff catalog
quantity quantity is the used quantity of the current service
Note, that the quantity is defined as double spanning negative, zero and positive fractional values!
  • negative quantities are used for service records in a storno (or credit advice) (cf. attribute request/payload@storno)
  • a zero quantity is used for "pro memoria" services
  • positive quantities are used for "normal" services
  • fractional values are used whenever a part of the "full" service is used (e.g. quantity=0.5 for 500ml of a 1000ml infusion solution)
quantity must not be rounded but given in full precision.
date_begin | date_begin is the date when the service was (first) applied
date_end date_end is the date when the service was last applied.
Note that date_end is only neccessary if the same service was applied each day over a period of more than 1 day.
provider_id | provider_id is the provider's identification (EAN or ZSR) that physically applied the service
responsible_id | responsible_id is the responsible person's identification (EAN or ZSR) who has medical responsibility for the applied service
unit unit is the tax point (TP) of the applied service
unit is defined as double and must not be rounded but given in full precision.
unit_factor unit_factor is the tax point value (TPV) of the applied service
unit_factor is defined as double and must not be rounded but given in full precision.
external_factor external_factor is a external scale factor (given by the main software) for the applied service
external_factor is used as a measure for giving discounts and can even be zero to supply a charge free service.
amount amount is the charged amount of the applied service
Note, that amount must fulfill the equation
«external_factor * quantity * TP * TPV * scale_factor»

calculated in full precision and the result rounded to 2 significant decimal places. This procedure is the reason for storing the multipliers in full precision.
vat_rate | vat_rate is the applicable vat rate for the applied service given as a percentage factor
validate validate is a Boolean value if the applied service was validated with a validator
If validate is true, then the validator is referenced as a dependent software/module inside the request/payload/body/prolog/generator element
obligation | obligation is a Boolean value if the applied service is a standard insurance benefit under the given law
section_code | section_code is a section code (BfS section code) where the service was applied as defined by Swiss Federal Statistical Office - this code is only given for role=hospital!
remark | remark is an optional remark for the applied service
service_attributes service_attributes is a 32 bit integer where each bit defines a certain refinement/enhancement to the already supplied data.
The currently defined values are given in the purpose chapter ("Service attributes")
source | <element name="record_drg" type="invoice:recordDRGType"/>


 element servicesType/record_lab
Annotation | The record_lab element supplies the data of a service record covered by a Lab Tariff
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:recordLabType
properties
isRef | 0
content | complex
attributes parameters
Name | Type | Use | Default | Fixed
record_id | derived by: int | required |  |
code | invoice:stringType1_30 | required |  |
ref_code | invoice:stringType1_30 |  |  |
name | invoice:stringType1_350 | required |  |
session | derived by: int |  | 1 |
quantity | double | required |  |
date_begin | dateTime | required |  |
date_end | dateTime |  |  |
provider_id | invoice:unionPartyType | required |  |
responsible_id | invoice:unionPartyType | required |  |
unit | derived by: double | required |  |
unit_factor | derived by: double |  | 1.0 |
external_factor | derived by: double |  | 1.0 |
amount | double | required |  |
vat_rate | derived by: double |  | 0 |
validate | boolean |  | false |
obligation | boolean |  | true |
section_code | invoice:stringType1_6 |  |  |
remark | invoice:stringType1_350 |  |  |
service_attributes | unsignedInt |  | 0 |
tariff_type | derived by: string | required |  |
attributes annotations
Name | Notes
tariff_type | tariff_type is the official 3-character designator of the used lab tariff as given by Forum Datenaustausch
record_id record_id is a record sequence number (starting with 1 and incremented by 1 for each further record) uniquely identifying the record
Note, that the sequence numbering is over all types of services!
code | code is the code of the service record as given by the used tariff catalog
ref_code ref_code is a back-reference code ("parent code") to a previously given service
Of course, ref_code is empty if no back-reference concept is used for the current tariff catalog or if the current service does not need such a back-reference
name | name is the official service name as given by the used tariff catalog
session session is the session number (default value is 1) in which the current service is part of
Of course, session is empty if there is no session concept used for the current tariff catalog
quantity quantity is the used quantity of the current service
Note, that the quantity is defined as double spanning negative, zero and positive fractional values!
  • negative quantities are used for service records in a storno (or credit advice) (cf. attribute request/payload@storno)
  • a zero quantity is used for "pro memoria" services
  • positive quantities are used for "normal" services
  • fractional values are used whenever a part of the "full" service is used (e.g. quantity=0.5 for 500ml of a 1000ml infusion solution)
quantity must not be rounded but given in full precision.
date_begin | date_begin is the date when the service was (first) applied
date_end date_end is the date when the service was last applied.
Note that date_end is only neccessary if the same service was applied each day over a period of more than 1 day.
provider_id | provider_id is the provider's identification (EAN or ZSR) that physically applied the service
responsible_id | responsible_id is the responsible person's identification (EAN or ZSR) who has medical responsibility for the applied service
unit unit is the tax point (TP) of the applied service
unit is defined as double and must not be rounded but given in full precision.
unit_factor unit_factor is the tax point value (TPV) of the applied service
unit_factor is defined as double and must not be rounded but given in full precision.
external_factor external_factor is a external scale factor (given by the main software) for the applied service
external_factor is used as a measure for giving discounts and can even be zero to supply a charge free service.
amount amount is the charged amount of the applied service
Note, that amount must fulfill the equation
«external_factor * quantity * TP * TPV * scale_factor»

calculated in full precision and the result rounded to 2 significant decimal places. This procedure is the reason for storing the multipliers in full precision.
vat_rate | vat_rate is the applicable vat rate for the applied service given as a percentage factor
validate validate is a Boolean value if the applied service was validated with a validator
If validate is true, then the validator is referenced as a dependent software/module inside the request/payload/body/prolog/generator element
obligation | obligation is a Boolean value if the applied service is a standard insurance benefit under the given law
section_code | section_code is a section code (BfS section code) where the service was applied as defined by Swiss Federal Statistical Office - this code is only given for role=hospital!
remark | remark is an optional remark for the applied service
service_attributes service_attributes is a 32 bit integer where each bit defines a certain refinement/enhancement to the already supplied data.
The currently defined values are given in the purpose chapter ("Service attributes")
source | <element name="record_lab" type="invoice:recordLabType"/>


 element servicesType/record_migel
Annotation | The record_migel element supplies the data of a service record covered by a MiGel Tariff
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:recordMigelType
properties
isRef | 0
content | complex
attributes parameters
Name | Type | Use | Default | Fixed
record_id | derived by: int | required |  |
code | invoice:stringType1_30 | required |  |
ref_code | invoice:stringType1_30 |  |  |
name | invoice:stringType1_350 | required |  |
session | derived by: int |  | 1 |
quantity | double | required |  |
date_begin | dateTime | required |  |
date_end | dateTime |  |  |
provider_id | invoice:unionPartyType | required |  |
responsible_id | invoice:unionPartyType | required |  |
unit | derived by: double | required |  |
unit_factor | derived by: double |  | 1.0 |
external_factor | derived by: double |  | 1.0 |
amount | double | required |  |
vat_rate | derived by: double |  | 0 |
validate | boolean |  | false |
obligation | boolean |  | true |
section_code | invoice:stringType1_6 |  |  |
remark | invoice:stringType1_350 |  |  |
service_attributes | unsignedInt |  | 0 |
tariff_type | derived by: string | required |  |
attributes annotations
Name | Notes
tariff_type | tariff_type is the official 3-character designator of the used MiGel tariff as given by Forum Datenaustausch
record_id record_id is a record sequence number (starting with 1 and incremented by 1 for each further record) uniquely identifying the record
Note, that the sequence numbering is over all types of services!
code | code is the code of the service record as given by the used tariff catalog
ref_code ref_code is a back-reference code ("parent code") to a previously given service
Of course, ref_code is empty if no back-reference concept is used for the current tariff catalog or if the current service does not need such a back-reference
name | name is the official service name as given by the used tariff catalog
session session is the session number (default value is 1) in which the current service is part of
Of course, session is empty if there is no session concept used for the current tariff catalog
quantity quantity is the used quantity of the current service
Note, that the quantity is defined as double spanning negative, zero and positive fractional values!
  • negative quantities are used for service records in a storno (or credit advice) (cf. attribute request/payload@storno)
  • a zero quantity is used for "pro memoria" services
  • positive quantities are used for "normal" services
  • fractional values are used whenever a part of the "full" service is used (e.g. quantity=0.5 for 500ml of a 1000ml infusion solution)
quantity must not be rounded but given in full precision.
date_begin | date_begin is the date when the service was (first) applied
date_end date_end is the date when the service was last applied.
Note that date_end is only neccessary if the same service was applied each day over a period of more than 1 day.
provider_id | provider_id is the provider's identification (EAN or ZSR) that physically applied the service
responsible_id | responsible_id is the responsible person's identification (EAN or ZSR) who has medical responsibility for the applied service
unit unit is the tax point (TP) of the applied service
unit is defined as double and must not be rounded but given in full precision.
unit_factor unit_factor is the tax point value (TPV) of the applied service
unit_factor is defined as double and must not be rounded but given in full precision.
external_factor external_factor is a external scale factor (given by the main software) for the applied service
external_factor is used as a measure for giving discounts and can even be zero to supply a charge free service.
amount amount is the charged amount of the applied service
Note, that amount must fulfill the equation
«external_factor * quantity * TP * TPV * scale_factor»

calculated in full precision and the result rounded to 2 significant decimal places. This procedure is the reason for storing the multipliers in full precision.
vat_rate | vat_rate is the applicable vat rate for the applied service given as a percentage factor
validate validate is a Boolean value if the applied service was validated with a validator
If validate is true, then the validator is referenced as a dependent software/module inside the request/payload/body/prolog/generator element
obligation | obligation is a Boolean value if the applied service is a standard insurance benefit under the given law
section_code | section_code is a section code (BfS section code) where the service was applied as defined by Swiss Federal Statistical Office - this code is only given for role=hospital!
remark | remark is an optional remark for the applied service
service_attributes service_attributes is a 32 bit integer where each bit defines a certain refinement/enhancement to the already supplied data.
The currently defined values are given in the purpose chapter ("Service attributes")
source | <element name="record_migel" type="invoice:recordMigelType"/>


 element servicesType/record_paramed
Annotation | The record_paramed element supplies the data of a service record covered by a Paramedical Tariff
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:recordParamedType
properties
isRef | 0
content | complex
attributes parameters
Name | Type | Use | Default | Fixed
record_id | derived by: int | required |  |
code | invoice:stringType1_30 | required |  |
ref_code | invoice:stringType1_30 |  |  |
name | invoice:stringType1_350 | required |  |
session | derived by: int |  | 1 |
quantity | double | required |  |
date_begin | dateTime | required |  |
date_end | dateTime |  |  |
provider_id | invoice:unionPartyType | required |  |
responsible_id | invoice:unionPartyType | required |  |
unit | derived by: double | required |  |
unit_factor | derived by: double |  | 1.0 |
external_factor | derived by: double |  | 1.0 |
amount | double | required |  |
vat_rate | derived by: double |  | 0 |
validate | boolean |  | false |
obligation | boolean |  | true |
section_code | invoice:stringType1_6 |  |  |
remark | invoice:stringType1_350 |  |  |
service_attributes | unsignedInt |  | 0 |
tariff_type | derived by: string | required |  |
attributes annotations
Name | Notes
tariff_type | tariff_type is the official 3-character designator of the used paramedical tariff as given by Forum Datenaustausch
record_id record_id is a record sequence number (starting with 1 and incremented by 1 for each further record) uniquely identifying the record
Note, that the sequence numbering is over all types of services!
code | code is the code of the service record as given by the used tariff catalog
ref_code ref_code is a back-reference code ("parent code") to a previously given service
Of course, ref_code is empty if no back-reference concept is used for the current tariff catalog or if the current service does not need such a back-reference
name | name is the official service name as given by the used tariff catalog
session session is the session number (default value is 1) in which the current service is part of
Of course, session is empty if there is no session concept used for the current tariff catalog
quantity quantity is the used quantity of the current service
Note, that the quantity is defined as double spanning negative, zero and positive fractional values!
  • negative quantities are used for service records in a storno (or credit advice) (cf. attribute request/payload@storno)
  • a zero quantity is used for "pro memoria" services
  • positive quantities are used for "normal" services
  • fractional values are used whenever a part of the "full" service is used (e.g. quantity=0.5 for 500ml of a 1000ml infusion solution)
quantity must not be rounded but given in full precision.
date_begin | date_begin is the date when the service was (first) applied
date_end date_end is the date when the service was last applied.
Note that date_end is only neccessary if the same service was applied each day over a period of more than 1 day.
provider_id | provider_id is the provider's identification (EAN or ZSR) that physically applied the service
responsible_id | responsible_id is the responsible person's identification (EAN or ZSR) who has medical responsibility for the applied service
unit unit is the tax point (TP) of the applied service
unit is defined as double and must not be rounded but given in full precision.
unit_factor unit_factor is the tax point value (TPV) of the applied service
unit_factor is defined as double and must not be rounded but given in full precision.
external_factor external_factor is a external scale factor (given by the main software) for the applied service
external_factor is used as a measure for giving discounts and can even be zero to supply a charge free service.
amount amount is the charged amount of the applied service
Note, that amount must fulfill the equation
«external_factor * quantity * TP * TPV * scale_factor»

calculated in full precision and the result rounded to 2 significant decimal places. This procedure is the reason for storing the multipliers in full precision.
vat_rate | vat_rate is the applicable vat rate for the applied service given as a percentage factor
validate validate is a Boolean value if the applied service was validated with a validator
If validate is true, then the validator is referenced as a dependent software/module inside the request/payload/body/prolog/generator element
obligation | obligation is a Boolean value if the applied service is a standard insurance benefit under the given law
section_code | section_code is a section code (BfS section code) where the service was applied as defined by Swiss Federal Statistical Office - this code is only given for role=hospital!
remark | remark is an optional remark for the applied service
service_attributes service_attributes is a 32 bit integer where each bit defines a certain refinement/enhancement to the already supplied data.
The currently defined values are given in the purpose chapter ("Service attributes")
source | <element name="record_paramed" type="invoice:recordParamedType"/>


 element servicesType/record_drug
Annotation | The record_drug element supplies the data of a service record covered by a Drug Tariff
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:recordDrugType
properties
isRef | 0
content | complex
children | invoice:xtra_drug
attributes parameters
Name | Type | Use | Default | Fixed
record_id | derived by: int | required |  |
code | invoice:stringType1_30 | required |  |
ref_code | invoice:stringType1_30 |  |  |
name | invoice:stringType1_350 | required |  |
session | derived by: int |  | 1 |
quantity | double | required |  |
date_begin | dateTime | required |  |
date_end | dateTime |  |  |
provider_id | invoice:unionPartyType | required |  |
responsible_id | invoice:unionPartyType | required |  |
unit | derived by: double | required |  |
unit_factor | derived by: double |  | 1.0 |
external_factor | derived by: double |  | 1.0 |
amount | double | required |  |
vat_rate | derived by: double |  | 0 |
validate | boolean |  | false |
obligation | boolean |  | true |
section_code | invoice:stringType1_6 |  |  |
remark | invoice:stringType1_350 |  |  |
service_attributes | unsignedInt |  | 0 |
tariff_type | derived by: string | required |  |
attributes annotations
Name | Notes
tariff_type | tariff_type is the official 3-character designator of the used drug tariff as given by Forum Datenaustausch
record_id record_id is a record sequence number (starting with 1 and incremented by 1 for each further record) uniquely identifying the record
Note, that the sequence numbering is over all types of services!
code | code is the code of the service record as given by the used tariff catalog
ref_code ref_code is a back-reference code ("parent code") to a previously given service
Of course, ref_code is empty if no back-reference concept is used for the current tariff catalog or if the current service does not need such a back-reference
name | name is the official service name as given by the used tariff catalog
session session is the session number (default value is 1) in which the current service is part of
Of course, session is empty if there is no session concept used for the current tariff catalog
quantity quantity is the used quantity of the current service
Note, that the quantity is defined as double spanning negative, zero and positive fractional values!
  • negative quantities are used for service records in a storno (or credit advice) (cf. attribute request/payload@storno)
  • a zero quantity is used for "pro memoria" services
  • positive quantities are used for "normal" services
  • fractional values are used whenever a part of the "full" service is used (e.g. quantity=0.5 for 500ml of a 1000ml infusion solution)
quantity must not be rounded but given in full precision.
date_begin | date_begin is the date when the service was (first) applied
date_end date_end is the date when the service was last applied.
Note that date_end is only neccessary if the same service was applied each day over a period of more than 1 day.
provider_id | provider_id is the provider's identification (EAN or ZSR) that physically applied the service
responsible_id | responsible_id is the responsible person's identification (EAN or ZSR) who has medical responsibility for the applied service
unit unit is the tax point (TP) of the applied service
unit is defined as double and must not be rounded but given in full precision.
unit_factor unit_factor is the tax point value (TPV) of the applied service
unit_factor is defined as double and must not be rounded but given in full precision.
external_factor external_factor is a external scale factor (given by the main software) for the applied service
external_factor is used as a measure for giving discounts and can even be zero to supply a charge free service.
amount amount is the charged amount of the applied service
Note, that amount must fulfill the equation
«external_factor * quantity * TP * TPV * scale_factor»

calculated in full precision and the result rounded to 2 significant decimal places. This procedure is the reason for storing the multipliers in full precision.
vat_rate | vat_rate is the applicable vat rate for the applied service given as a percentage factor
validate validate is a Boolean value if the applied service was validated with a validator
If validate is true, then the validator is referenced as a dependent software/module inside the request/payload/body/prolog/generator element
obligation | obligation is a Boolean value if the applied service is a standard insurance benefit under the given law
section_code | section_code is a section code (BfS section code) where the service was applied as defined by Swiss Federal Statistical Office - this code is only given for role=hospital!
remark | remark is an optional remark for the applied service
service_attributes service_attributes is a 32 bit integer where each bit defines a certain refinement/enhancement to the already supplied data.
The currently defined values are given in the purpose chapter ("Service attributes")
source | <element name="record_drug" type="invoice:recordDrugType"/>


 element recordDrugType/xtra_drug
Annotation | The xtra_drug element defines further additional data for the given drug if the role=pharmacist is used
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
properties
isRef | 0
minOcc | 0
maxOcc | 1
content | complex
attributes parameters
Name | Type | Use | Default | Fixed
indicated | boolean |  |  |
iocm_category | derived by: NMTOKEN |  |  |
delivery | derived by: NMTOKEN |  | first |
regulation_attributes | unsignedInt |  | 0 |
limitation | boolean |  |  |
attributes annotations
Name | Notes
indicated | indicated is a Boolean value if the drug is medically indicated
iocm_category | iocm_category is defines the official Swissmedic category of the drug encoded by a terminal set of tokens
delivery | delivery is type of delivery of the drug encoded by a terminal set of tokens
regulation_attributes | regulation_attributes is a 32 bit integer where each bit defines one specific regulation code as contracted between pharmacists and insurances The currently defined values are given in the purpose chapter ("Regulation attributes")
limitation | limitation is a Boolean value if the drug has a limitation as defined by the Federal Office of Public Health
source <element name="xtra_drug" minOccurs="0">
<complexType>
<attribute name="indicated" type="boolean"/>
<attribute name="iocm_category">
<simpleType>
<restriction base="NMTOKEN">
<enumeration value="A"/>
<enumeration value="B"/>
<enumeration value="C"/>
<enumeration value="D"/>
<enumeration value="E"/>
</restriction>
</simpleType>
</attribute>
<attribute name="delivery" default="first">
<simpleType>
<restriction base="NMTOKEN">
<enumeration value="first"/>
<enumeration value="repeated"/>
<enumeration value="permanent"/>
</restriction>
</simpleType>
</attribute>
<attribute name="regulation_attributes" type="unsignedInt" default="0"/>
<attribute name="limitation" type="boolean"/>
</complexType>
</element>


 element servicesType/record_other
Annotation | The record_other element supplies the data of a service record not enveloped by the other named service types.
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:recordOtherType
properties
isRef | 0
content | complex
attributes parameters
Name | Type | Use | Default | Fixed
record_id | derived by: int | required |  |
code | invoice:stringType1_30 | required |  |
ref_code | invoice:stringType1_30 |  |  |
name | invoice:stringType1_350 | required |  |
session | derived by: int |  | 1 |
quantity | double | required |  |
date_begin | dateTime | required |  |
date_end | dateTime |  |  |
provider_id | invoice:unionPartyType | required |  |
responsible_id | invoice:unionPartyType | required |  |
unit | derived by: double | required |  |
unit_factor | derived by: double |  | 1.0 |
external_factor | derived by: double |  | 1.0 |
amount | double | required |  |
vat_rate | derived by: double |  | 0 |
validate | boolean |  | false |
obligation | boolean |  | true |
section_code | invoice:stringType1_6 |  |  |
remark | invoice:stringType1_350 |  |  |
service_attributes | unsignedInt |  | 0 |
tariff_type | derived by: string | required |  |
attributes annotations
Name | Notes
tariff_type tariff_type is the official 3-character designator of the used tariff as given by Forum Datenaustausch
Note, that the tariff type 999 must be used if it is a non-official tariff without a 3-character designator
record_id record_id is a record sequence number (starting with 1 and incremented by 1 for each further record) uniquely identifying the record
Note, that the sequence numbering is over all types of services!
code | code is the code of the service record as given by the used tariff catalog
ref_code ref_code is a back-reference code ("parent code") to a previously given service
Of course, ref_code is empty if no back-reference concept is used for the current tariff catalog or if the current service does not need such a back-reference
name | name is the official service name as given by the used tariff catalog
session session is the session number (default value is 1) in which the current service is part of
Of course, session is empty if there is no session concept used for the current tariff catalog
quantity quantity is the used quantity of the current service
Note, that the quantity is defined as double spanning negative, zero and positive fractional values!
  • negative quantities are used for service records in a storno (or credit advice) (cf. attribute request/payload@storno)
  • a zero quantity is used for "pro memoria" services
  • positive quantities are used for "normal" services
  • fractional values are used whenever a part of the "full" service is used (e.g. quantity=0.5 for 500ml of a 1000ml infusion solution)
quantity must not be rounded but given in full precision.
date_begin | date_begin is the date when the service was (first) applied
date_end date_end is the date when the service was last applied.
Note that date_end is only neccessary if the same service was applied each day over a period of more than 1 day.
provider_id | provider_id is the provider's identification (EAN or ZSR) that physically applied the service
responsible_id | responsible_id is the responsible person's identification (EAN or ZSR) who has medical responsibility for the applied service
unit unit is the tax point (TP) of the applied service
unit is defined as double and must not be rounded but given in full precision.
unit_factor unit_factor is the tax point value (TPV) of the applied service
unit_factor is defined as double and must not be rounded but given in full precision.
external_factor external_factor is a external scale factor (given by the main software) for the applied service
external_factor is used as a measure for giving discounts and can even be zero to supply a charge free service.
amount amount is the charged amount of the applied service
Note, that amount must fulfill the equation
«external_factor * quantity * TP * TPV * scale_factor»

calculated in full precision and the result rounded to 2 significant decimal places. This procedure is the reason for storing the multipliers in full precision.
vat_rate | vat_rate is the applicable vat rate for the applied service given as a percentage factor
validate validate is a Boolean value if the applied service was validated with a validator
If validate is true, then the validator is referenced as a dependent software/module inside the request/payload/body/prolog/generator element
obligation | obligation is a Boolean value if the applied service is a standard insurance benefit under the given law
section_code | section_code is a section code (BfS section code) where the service was applied as defined by Swiss Federal Statistical Office - this code is only given for role=hospital!
remark | remark is an optional remark for the applied service
service_attributes service_attributes is a 32 bit integer where each bit defines a certain refinement/enhancement to the already supplied data.
The currently defined values are given in the purpose chapter ("Service attributes")
source | <element name="record_other" type="invoice:recordOtherType"/>


 element bodyType/documents
Annotation | The documents element is a container for including external documents, either inline (base64 coded) or offline (URL reference).
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:documentsType
properties
isRef | 0
minOcc | 0
maxOcc | 1
content | complex
children | invoice:document
attributes parameters
Name | Type | Use | Default | Fixed
number | unsignedLong | required |  |
attributes annotations
Name | Notes
number | number defines total number of documents included in the infoset
source | <element name="documents" type="invoice:documentsType" minOccurs="0"/>


 element documentsType/document
Annotation | The document element defines one external physical document that is included in the infoset either inline (base64 coded) or offline (URL reference)
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:documentType
properties
isRef | 0
minOcc | 1
maxOcc | unbounded
content | complex
children | invoice:base64 invoice:url
attributes parameters
Name | Type | Use | Default | Fixed
filename | invoice:nonEmptyStringType | required |  |
mimeType | invoice:nonEmptyStringType | required |  |
viewer | anyURI |  |  |
attributes annotations
Name | Notes
filename | filename defines the file name (without any path information) on the source system This information is an aid for saving the file at the target location as well as for MIME sniffing.
mimeType | mimeType defines Multipurpose Internet Mail Extension (MIME) type of the document. The MIME type enables applications to read the file. RFC 2046 standardizes and names the commonly used MIME types.
viewer | viewer optionally points to an URL where a viewer for the current file can be downloaded
source | <element name="document" type="invoice:documentType" maxOccurs="unbounded"/>


 element documentType/base64
Annotation | The base64 element defines the document as inline that is the document is included in the infoset as a Base64 encode octet stream representation.
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | base64Binary
properties
isRef | 0
content | simple
source | <element name="base64" type="base64Binary"/>


 element documentType/url
Annotation | The url element defines the document as offline that is the document can be fetched via the given URL.
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | anyURI
properties
isRef | 0
content | simple
source | <element name="url" type="anyURI"/>


 element xenc:EncryptedData
Annotation The optional xenc:EncryptedData (as defined by W3C) encrypts and replaces the body element by using the public certificate of the end recipient of this infoset (mostly the insurance).
See the "notes about encryption" in the introduction chapter for further guidance about the encryption.

Note, that there will be no documentation of this element or any subparts as this is done by W3C already!
diagram
namespace | http://www.w3.org/2001/04/xmlenc#
type | xenc:EncryptedDataType
properties
content complex
children | xenc:EncryptionMethod ds:KeyInfo xenc:CipherData xenc:EncryptionProperties
used by
complexType payloadType
attributes parameters
Name | Type | Use | Default | Fixed
Id | ID | optional |  |
Type | anyURI | optional |  |
MimeType | string | optional |  |
Encoding | anyURI | optional |  |
source | <element name="EncryptedData" type="xenc:EncryptedDataType"/>


 element xenc:EncryptedType/EncryptionMethod
Annotation
diagram
namespace | http://www.w3.org/2001/04/xmlenc#
type | xenc:EncryptionMethodType
properties
isRef | 0
minOcc | 0
maxOcc | 1
content | complex
mixed | true
children | xenc:KeySize xenc:OAEPparams
attributes parameters
Name | Type | Use | Default | Fixed
Algorithm | anyURI | required |  |
source | <element name="EncryptionMethod" type="xenc:EncryptionMethodType" minOccurs="0"/>


 element xenc:EncryptionMethodType/KeySize
Annotation
diagram
namespace | http://www.w3.org/2001/04/xmlenc#
type | xenc:KeySizeType
properties
isRef | 0
minOcc | 0
maxOcc | 1
content | simple
source | <element name="KeySize" type="xenc:KeySizeType" minOccurs="0"/>


 element xenc:EncryptionMethodType/OAEPparams
Annotation
diagram
namespace | http://www.w3.org/2001/04/xmlenc#
type | base64Binary
properties
isRef | 0
minOcc | 0
maxOcc | 1
content | simple
source | <element name="OAEPparams" type="base64Binary" minOccurs="0"/>


 element ds:KeyInfo
Annotation
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
type | ds:KeyInfoType
properties
content | complex
mixed | true
children | ds:KeyName ds:KeyValue ds:RetrievalMethod ds:X509Data ds:PGPData ds:SPKIData ds:MgmtData
used by
complexTypes ds:SignatureType xenc:EncryptedType
attributes parameters
Name | Type | Use | Default | Fixed
Id | ID | optional |  |
source | <element name="KeyInfo" type="ds:KeyInfoType"/>


 element ds:KeyName
Annotation
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
type | string
properties
content simple
used by
complexType ds:KeyInfoType
source | <element name="KeyName" type="string"/>


 element ds:KeyValue
Annotation
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
type | ds:KeyValueType
properties
content | complex
mixed | true
children | ds:DSAKeyValue ds:RSAKeyValue
used by
complexType ds:KeyInfoType
source | <element name="KeyValue" type="ds:KeyValueType"/>


 element ds:DSAKeyValue
Annotation
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
type | ds:DSAKeyValueType
properties
content complex
children | ds:P ds:Q ds:G ds:Y ds:J ds:Seed ds:PgenCounter
used by
complexType ds:KeyValueType
source | <element name="DSAKeyValue" type="ds:DSAKeyValueType"/>


 element ds:DSAKeyValueType/P
Annotation
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
type | ds:CryptoBinary
properties
isRef | 0
content | simple
source | <element name="P" type="ds:CryptoBinary"/>


 element ds:DSAKeyValueType/Q
Annotation
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
type | ds:CryptoBinary
properties
isRef | 0
content | simple
source | <element name="Q" type="ds:CryptoBinary"/>


 element ds:DSAKeyValueType/G
Annotation
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
type | ds:CryptoBinary
properties
isRef | 0
minOcc | 0
maxOcc | 1
content | simple
source | <element name="G" type="ds:CryptoBinary" minOccurs="0"/>


 element ds:DSAKeyValueType/Y
Annotation
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
type | ds:CryptoBinary
properties
isRef | 0
content | simple
source | <element name="Y" type="ds:CryptoBinary"/>


 element ds:DSAKeyValueType/J
Annotation
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
type | ds:CryptoBinary
properties
isRef | 0
minOcc | 0
maxOcc | 1
content | simple
source | <element name="J" type="ds:CryptoBinary" minOccurs="0"/>


 element ds:DSAKeyValueType/Seed
Annotation
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
type | ds:CryptoBinary
properties
isRef | 0
content | simple
source | <element name="Seed" type="ds:CryptoBinary"/>


 element ds:DSAKeyValueType/PgenCounter
Annotation
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
type | ds:CryptoBinary
properties
isRef | 0
content | simple
source | <element name="PgenCounter" type="ds:CryptoBinary"/>


 element ds:RSAKeyValue
Annotation
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
type | ds:RSAKeyValueType
properties
content complex
children | ds:Modulus ds:Exponent
used by
complexType ds:KeyValueType
source | <element name="RSAKeyValue" type="ds:RSAKeyValueType"/>


 element ds:RSAKeyValueType/Modulus
Annotation
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
type | ds:CryptoBinary
properties
isRef | 0
content | simple
source | <element name="Modulus" type="ds:CryptoBinary"/>


 element ds:RSAKeyValueType/Exponent
Annotation
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
type | ds:CryptoBinary
properties
isRef | 0
content | simple
source | <element name="Exponent" type="ds:CryptoBinary"/>


 element ds:RetrievalMethod
Annotation
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
type | ds:RetrievalMethodType
properties
content complex
children | ds:Transforms
used by
complexType ds:KeyInfoType
attributes parameters
Name | Type | Use | Default | Fixed
URI | anyURI |  |  |
Type | anyURI | optional |  |
source | <element name="RetrievalMethod" type="ds:RetrievalMethodType"/>


 element ds:Transforms
Annotation
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
type | ds:TransformsType
properties
content complex
children | ds:Transform
used by
complexTypes ds:ReferenceType ds:RetrievalMethodType
source | <element name="Transforms" type="ds:TransformsType"/>


 element ds:Transform
Annotation
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
type | ds:TransformType
properties
content | complex
mixed | true
children | ds:XPath
used by
complexTypes ds:TransformsType xenc:TransformsType
attributes parameters
Name | Type | Use | Default | Fixed
Algorithm | anyURI | required |  |
source | <element name="Transform" type="ds:TransformType"/>


 element ds:TransformType/XPath
Annotation
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
type | string
properties
isRef | 0
content | simple
source | <element name="XPath" type="string"/>


 element ds:X509Data
Annotation
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
type | ds:X509DataType
properties
content complex
children | ds:X509IssuerSerial ds:X509SKI ds:X509SubjectName ds:X509Certificate ds:X509CRL
used by
complexType ds:KeyInfoType
source | <element name="X509Data" type="ds:X509DataType"/>


 element ds:X509DataType/X509IssuerSerial
Annotation
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
type | ds:X509IssuerSerialType
properties
isRef | 0
content | complex
children | ds:X509IssuerName ds:X509SerialNumber
source | <element name="X509IssuerSerial" type="ds:X509IssuerSerialType"/>


 element ds:X509IssuerSerialType/X509IssuerName
Annotation
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
type | string
properties
isRef | 0
content | simple
source | <element name="X509IssuerName" type="string"/>


 element ds:X509IssuerSerialType/X509SerialNumber
Annotation
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
type | integer
properties
isRef | 0
content | simple
source | <element name="X509SerialNumber" type="integer"/>


 element ds:X509DataType/X509SKI
Annotation
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
type | base64Binary
properties
isRef | 0
content | simple
source | <element name="X509SKI" type="base64Binary"/>


 element ds:X509DataType/X509SubjectName
Annotation
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
type | string
properties
isRef | 0
content | simple
source | <element name="X509SubjectName" type="string"/>


 element ds:X509DataType/X509Certificate
Annotation
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
type | base64Binary
properties
isRef | 0
content | simple
source | <element name="X509Certificate" type="base64Binary"/>


 element ds:X509DataType/X509CRL
Annotation
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
type | base64Binary
properties
isRef | 0
content | simple
source | <element name="X509CRL" type="base64Binary"/>


 element ds:PGPData
Annotation
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
type | ds:PGPDataType
properties
content complex
children | ds:PGPKeyID ds:PGPKeyPacket ds:PGPKeyPacket
used by
complexType ds:KeyInfoType
source | <element name="PGPData" type="ds:PGPDataType"/>


 element ds:PGPDataType/PGPKeyID
Annotation
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
type | base64Binary
properties
isRef | 0
content | simple
source | <element name="PGPKeyID" type="base64Binary"/>


 element ds:PGPDataType/PGPKeyPacket
Annotation
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
type | base64Binary
properties
isRef | 0
content | simple
source | <element name="PGPKeyPacket" type="base64Binary"/>


 element ds:SPKIData
Annotation
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
type | ds:SPKIDataType
properties
content complex
children | ds:SPKISexp
used by
complexType ds:KeyInfoType
source | <element name="SPKIData" type="ds:SPKIDataType"/>


 element ds:SPKIDataType/SPKISexp
Annotation
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
type | base64Binary
properties
isRef | 0
content | simple
source | <element name="SPKISexp" type="base64Binary"/>


 element ds:MgmtData
Annotation
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
type | string
properties
content simple
used by
complexType ds:KeyInfoType
source | <element name="MgmtData" type="string"/>


 element xenc:CipherData
Annotation
diagram
namespace | http://www.w3.org/2001/04/xmlenc#
type | xenc:CipherDataType
properties
content complex
children | xenc:CipherValue xenc:CipherReference
used by
complexType xenc:EncryptedType
source | <element name="CipherData" type="xenc:CipherDataType"/>


 element xenc:CipherDataType/CipherValue
Annotation
diagram
namespace | http://www.w3.org/2001/04/xmlenc#
type | base64Binary
properties
isRef | 0
content | simple
source | <element name="CipherValue" type="base64Binary"/>


 element xenc:CipherReference
Annotation
diagram
namespace | http://www.w3.org/2001/04/xmlenc#
type | xenc:CipherReferenceType
properties
content complex
children | xenc:Transforms
used by
complexType xenc:CipherDataType
attributes parameters
Name | Type | Use | Default | Fixed
URI | anyURI | required |  |
source | <element name="CipherReference" type="xenc:CipherReferenceType"/>


 element xenc:CipherReferenceType/Transforms
Annotation
diagram
namespace | http://www.w3.org/2001/04/xmlenc#
type | xenc:TransformsType
properties
isRef | 0
minOcc | 0
maxOcc | 1
content | complex
children | ds:Transform
source | <element name="Transforms" type="xenc:TransformsType" minOccurs="0"/>


 element xenc:EncryptionProperties
Annotation
diagram
namespace | http://www.w3.org/2001/04/xmlenc#
type | xenc:EncryptionPropertiesType
properties
content complex
children | xenc:EncryptionProperty
used by
complexType xenc:EncryptedType
attributes parameters
Name | Type | Use | Default | Fixed
Id | ID | optional |  |
source | <element name="EncryptionProperties" type="xenc:EncryptionPropertiesType"/>


 element xenc:EncryptionProperty
Annotation
diagram
namespace | http://www.w3.org/2001/04/xmlenc#
type | xenc:EncryptionPropertyType
properties
content | complex
mixed | true
used by
complexType xenc:EncryptionPropertiesType
attributes parameters
Name | Type | Use | Default | Fixed
Target | anyURI | optional |  |
Id | ID | optional |  |
source | <element name="EncryptionProperty" type="xenc:EncryptionPropertyType"/>


 element ds:Signature
Annotation The optional ds:Signature (as defined by W3C) signs the payload element by using the private certificate of the sending party represented by the transport@to EAN.
See the "notes about signature" in the introduction chapter for further guidance about the signature.

Note, that there will be no documentation of this element or any subparts as this is done by W3C already!
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
type | ds:SignatureType
properties
content complex
children | ds:SignedInfo ds:SignatureValue ds:KeyInfo ds:Object
used by
complexType requestType
attributes parameters
Name | Type | Use | Default | Fixed
Id | ID | optional |  |
source | <element name="Signature" type="ds:SignatureType"/>


 element ds:SignedInfo
Annotation
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
type | ds:SignedInfoType
properties
content complex
children | ds:CanonicalizationMethod ds:SignatureMethod ds:Reference
used by
complexType ds:SignatureType
attributes parameters
Name | Type | Use | Default | Fixed
Id | ID | optional |  |
source | <element name="SignedInfo" type="ds:SignedInfoType"/>


 element ds:CanonicalizationMethod
Annotation
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
type | ds:CanonicalizationMethodType
properties
content | complex
mixed | true
used by
complexType ds:SignedInfoType
attributes parameters
Name | Type | Use | Default | Fixed
Algorithm | anyURI | required |  |
source | <element name="CanonicalizationMethod" type="ds:CanonicalizationMethodType"/>


 element ds:SignatureMethod
Annotation
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
type | ds:SignatureMethodType
properties
content | complex
mixed | true
children | ds:HMACOutputLength
used by
complexType ds:SignedInfoType
attributes parameters
Name | Type | Use | Default | Fixed
Algorithm | anyURI | required |  |
source | <element name="SignatureMethod" type="ds:SignatureMethodType"/>


 element ds:SignatureMethodType/HMACOutputLength
Annotation
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
type | ds:HMACOutputLengthType
properties
isRef | 0
minOcc | 0
maxOcc | 1
content | simple
source | <element name="HMACOutputLength" type="ds:HMACOutputLengthType" minOccurs="0"/>


 element ds:Reference
Annotation
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
type | ds:ReferenceType
properties
content complex
children | ds:Transforms ds:DigestMethod ds:DigestValue
used by
complexTypes ds:ManifestType ds:SignedInfoType
attributes parameters
Name | Type | Use | Default | Fixed
Id | ID | optional |  |
URI | anyURI | optional |  |
Type | anyURI | optional |  |
source | <element name="Reference" type="ds:ReferenceType"/>


 element ds:DigestMethod
Annotation
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
type | ds:DigestMethodType
properties
content | complex
mixed | true
used by
complexType ds:ReferenceType
attributes parameters
Name | Type | Use | Default | Fixed
Algorithm | anyURI | required |  |
source | <element name="DigestMethod" type="ds:DigestMethodType"/>


 element ds:DigestValue
Annotation
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
type | ds:DigestValueType
properties
content simple
used by
complexType ds:ReferenceType
source | <element name="DigestValue" type="ds:DigestValueType"/>


 element ds:SignatureValue
Annotation
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
type | ds:SignatureValueType
properties
content complex
used by
complexType ds:SignatureType
attributes parameters
Name | Type | Use | Default | Fixed
Id | ID | optional |  |
source | <element name="SignatureValue" type="ds:SignatureValueType"/>


 element ds:Object
Annotation
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
type | ds:ObjectType
properties
content | complex
mixed | true
used by
complexType ds:SignatureType
attributes parameters
Name | Type | Use | Default | Fixed
Id | ID | optional |  |
MimeType | string | optional |  |
Encoding | anyURI | optional |  |
source | <element name="Object" type="ds:ObjectType"/>


Alphabetical list of used XSD definitions

Documentation of generalInvoiceRequest_430.xsd - Rev. 2

Copyright (©) by Forum Datenaustausch, 27.08.2010
All rights reserved

Alphabetical list of used XSD definitions

The following subchapters list all XSD definitions (simpleType, complexType etc.) used in the schema in alphabetical order.


 complexType balanceType
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:vat
used by
element bodyType/balance
attributes parameters
Name | Type | Use | Default | Fixed
currency | string |  |  | CHF
amount | double | required |  |
amount_reminder | double |  | 0 |
amount_prepaid | double |  | 0 |
amount_due | double | required |  |
amount_obligations | double |  | 0 |
attributes annotations
Name | Notes
currency | currency is the currency used for the whole invoice/reminder. The currency is fixed by the XSD schema to "CHF" - Swiss Francs!
amount | amount is the total amount for the invoice/reminder accumulated over all 2-digit precision service amounts. Therefore, the amount implicitly has a 2-digit precision as well.
amount_reminder | amount_reminder is an optional reminder charge rounded to 2 significant decimal places. Of course, if the request is an invoice amount_reminder must be 0.00.
amount_prepaid | amount_prepaid is the advanced payment for the invoice/reminder rounded to 2 significant decimal places.
amount_due | amount_due is the amount due for the invoice/reminder (and coded into the ESR payment transaction) calculated as «amount + amount_reminder - amount_prepaid» where the used summands are 2-digit precision amounts and the result is finally rounded half up ("Kaufmännisches Runden")
amount_obligations | amount_obligations is the total amount for the invoice/reminder accumulated over all 2-digit precision service amounts for which the obligation flag is set. Since amount_obligations is summed over 2-digit precision values it has a 2-digit precision as well.
source <complexType name="balanceType">
<sequence>
<element name="vat" type="invoice:vatType"/>
</sequence>
<attribute name="currency" type="string" fixed="CHF"/>
<attribute name="amount" type="double" use="required"/>
<attribute name="amount_reminder" type="double" default="0"/>
<attribute name="amount_prepaid" type="double" default="0"/>
<attribute name="amount_due" type="double" use="required"/>
<attribute name="amount_obligations" type="double" default="0"/>
</complexType>


 complexType billerAddressType
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:company invoice:person
used by
elements garantType/biller payantType/biller
attributes parameters
Name | Type | Use | Default | Fixed
ean_party | invoice:eanPartyType | required |  |
zsr | invoice:zsrPartyType |  |  |
specialty | invoice:stringType1_350 |  |  |
attributes annotations
Name | Notes
ean_party | ean_party is the biller's EAN number as defined by www.medwin.ch
zsr | zsr is the biller's ZSR (KSK) as defined by Santésuisse
specialty | specialty is the biller's specialty (branch of medical science a medical person practices)
source <complexType name="billerAddressType">
<choice>
<element name="company" type="invoice:companyType"/>
<element name="person" type="invoice:personType"/>
</choice>
<attribute name="ean_party" type="invoice:eanPartyType" use="required"/>
<attribute name="zsr" type="invoice:zsrPartyType"/>
<attribute name="specialty" type="invoice:stringType1_350"/>
</complexType>


 complexType bodyType
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:prolog invoice:remark invoice:balance invoice:esr5 invoice:esr9 invoice:esrRed invoice:tiers_garant invoice:tiers_payant invoice:kvg invoice:vvg invoice:uvg invoice:ivg invoice:mvg invoice:org invoice:treatment invoice:services invoice:documents
used by
element payloadType/body
attributes parameters
Name | Type | Use | Default | Fixed
role_title | invoice:stringType1_35 |  |  |
role | derived by: NMTOKEN | required |  |
place | derived by: NMTOKEN | required |  |
attributes annotations
Name | Notes
role | role defines the principal role of the main provider ("what is the main provider") encoded by a terminal set of tokens
role_title | role_title optionally further defines the role. role_title is mandatory if the role=other is set!
place | place defines the principal place of the main provider ("where is the main provider") encoded by a terminal set of tokens
attributes enumerations
Name | Extension | Base | Value | Annotations
place |  | NMTOKEN | practice | the main place of the service provision is at a practice
place |  | NMTOKEN | hospital | the main place of the service provision is at a hospital
place |  | NMTOKEN | lab | the main place of the service provision is at a lab
place |  | NMTOKEN | association | the main place of the service provision is at a association (e.g. Spitex)
place |  | NMTOKEN | company | the main place of the service provision is by a company (e.g. transports)
role |  | NMTOKEN | physician | the principal role of the service provider is physician
role |  | NMTOKEN | physiotherapist | the principal role of the service provider is physiotherapist including therapeutic masseurs
role |  | NMTOKEN | chiropractor | the principal role of the service provider is chiropractor
role |  | NMTOKEN | ergotherapist | the principal role of the service provider is ergotherapist
role |  | NMTOKEN | nutritionist | the principal role of the service provider is nutritionist including diet advisors, diabetic advisors
role |  | NMTOKEN | midwife | the principal role of the service provider is midwife
role |  | NMTOKEN | logotherapist | the principal role of the service provider is logotherapist
role |  | NMTOKEN | hospital | the principal role of the service provider is hospital
role |  | NMTOKEN | pharmacist | the principal role of the service provider is pharmacist
role |  | NMTOKEN | dentist | the principal role of the service provider is dentist including dental hygienists
role |  | NMTOKEN | labtechnician | the principal role of the service provider is labtechnician
role |  | NMTOKEN | dentaltechnician | the principal role of the service provider is dentaltechnician
role |  | NMTOKEN | othertechnician | the principal role of the service provider is othertechnician including shoemakers
role |  | NMTOKEN | psychologist | the principal role of the service provider is psychologist
role |  | NMTOKEN | wholesaler | the principal role of the service provider is wholesaler
role |  | NMTOKEN | nursingstaff | the principal role of the service provider is nursing staff including nursing auxiliaries
role |  | NMTOKEN | transport | the principal role of the service provider is transport including ambulances
role |  | NMTOKEN | druggist | the principal role of the service provider is druggist
role |  | NMTOKEN | naturopathicdoctor | the principal role of the service provider is naturopathic doctor (as per definition this is a doctor of none-conventional Western medicine/none-biomedicine)
role |  | NMTOKEN | naturopathictherapist | the principal role of the service provider is naturopathic therapist (as per definition this is therapist none-conventional Western medicine/none-biomedicine) including wellness therapists
role |  | NMTOKEN | other | the principal role of the service provider is other if none of the above applies
source <complexType name="bodyType">
<sequence>
<element name="prolog" type="invoice:prologType"/>
<element name="remark" type="invoice:stringType1_350" minOccurs="0"/>
<element name="balance" type="invoice:balanceType"/>
<choice>
<element name="esr5" type="invoice:esr5Type"/>
<element name="esr9" type="invoice:esr9Type"/>
<element name="esrRed" type="invoice:esrRedType"/>
</choice>
<choice>
<element name="tiers_garant" type="invoice:garantType"/>
<element name="tiers_payant" type="invoice:payantType"/>
</choice>
<choice>
<element name="kvg" type="invoice:kvgLawType"/>
<element name="vvg" type="invoice:vvgLawType"/>
<element name="uvg" type="invoice:uvgLawType"/>
<element name="ivg" type="invoice:ivgLawType"/>
<element name="mvg" type="invoice:mvgLawType"/>
<element name="org" type="invoice:orgLawType"/>
</choice>
<element name="treatment" type="invoice:treatmentType"/>
<element name="services" type="invoice:servicesType"/>
<element name="documents" type="invoice:documentsType" minOccurs="0"/>
</sequence>
<attribute name="role_title" type="invoice:stringType1_35"/>
<attribute name="role" use="required">
<simpleType>
<restriction base="NMTOKEN">
<enumeration value="physician"/>
<enumeration value="physiotherapist"/>
<enumeration value="chiropractor"/>
<enumeration value="ergotherapist"/>
<enumeration value="nutritionist"/>
<enumeration value="midwife"/>
<enumeration value="logotherapist"/>
<enumeration value="hospital"/>
<enumeration value="pharmacist"/>
<enumeration value="dentist"/>
<enumeration value="labtechnician"/>
<enumeration value="dentaltechnician"/>
<enumeration value="othertechnician"/>
<enumeration value="psychologist"/>
<enumeration value="wholesaler"/>
<enumeration value="nursingstaff"/>
<enumeration value="transport"/>
<enumeration value="druggist"/>
<enumeration value="naturopathicdoctor"/>
<enumeration value="naturopathictherapist"/>
<enumeration value="other"/>
</restriction>
</simpleType>
</attribute>
<attribute name="place" use="required">
<simpleType>
<restriction base="NMTOKEN">
<enumeration value="practice"/>
<enumeration value="hospital"/>
<enumeration value="lab"/>
<enumeration value="association"/>
<enumeration value="company"/>
</restriction>
</simpleType>
</attribute>
</complexType>


 complexType companyType
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:companyname invoice:department invoice:subaddressing invoice:postal invoice:telecom invoice:online
used by
elements billerAddressType/company providerAddressType/company insuranceAddressType/company guarantorAddressType/company referrerAddressType/company employerAddressType/company esrAddressType/company
source <complexType name="companyType">
<sequence>
<element name="companyname" type="invoice:stringType1_35"/>
<element name="department" type="invoice:stringType1_35" minOccurs="0"/>
<element name="subaddressing" type="invoice:stringType1_35" minOccurs="0"/>
<element name="postal" type="invoice:postalAddressType"/>
<element name="telecom" type="invoice:telecomAddressType" minOccurs="0"/>
<element name="online" type="invoice:onlineAddressType" minOccurs="0"/>
</sequence>
</complexType>


 complexType creditType
diagram
namespace http://www.forum-datenaustausch.ch/invoice
used by
element payloadType/credit
attributes parameters
Name | Type | Use | Default | Fixed
request_timestamp | unsignedLong | required |  |
request_date | dateTime | required |  |
request_id | invoice:stringType1_35 | required |  |
attributes annotations
Name | Notes
request_timestamp | request_timestamp is a UNIX timestamp defined at the moment of the credit's infoset generation This is one of 3 identifiers that form the credit object reference. request_timestamp will be generated once for a certain credit object reference and thereafter always referenced!
request_date | request_date is the main software's date of the credit request ("KoGu Falldatum") This is one of 3 identifiers that form the credit object reference. request_date must be identical for the same credit object reference!
request_id | request_id is the main software's ID of the credit request ("KoGu Fallnummer") This is one of 3 identifiers that form the credit object reference. request_id must be identical for the same credit object reference!
source <complexType name="creditType">
<attribute name="request_timestamp" type="unsignedLong" use="required"/>
<attribute name="request_date" type="dateTime" use="required"/>
<attribute name="request_id" type="invoice:stringType1_35" use="required"/>
</complexType>


 complexType dependsOnType
diagram
namespace http://www.forum-datenaustausch.ch/invoice
used by
element softwareType/depends_on
attributes parameters
Name | Type | Use | Default | Fixed
name | invoice:stringType1_50 | required |  |
copyright | invoice:stringType1_50 |  |  |
description | invoice:stringType1_50 |  |  |
version | unsignedInt |  |  |
id | unsignedInt |  | 0 |
attributes annotations
Name | Notes
name | name defines the name of the dependent software/module
copyright | copyright defines the copyright notice of the dependent software/module
description | description supplies a short description of the dependent software/module
version | version defines the version of the dependent software/module. Since this is an integer coding use 100*main version + minor version as the version
id | id defines an unique id for the dependent software/module (should such an id exist)
source <complexType name="dependsOnType">
<attribute name="name" type="invoice:stringType1_50" use="required"/>
<attribute name="copyright" type="invoice:stringType1_50"/>
<attribute name="description" type="invoice:stringType1_50"/>
<attribute name="version" type="unsignedInt"/>
<attribute name="id" type="unsignedInt" default="0"/>
</complexType>


 complexType diagnosisType
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | extension of invoice:stringType0_350
properties
base invoice:stringType0_350
used by
element treatmentType/diagnosis
facets
maxLength 350
attributes parameters
Name | Type | Use | Default | Fixed
type | derived by: NMTOKEN |  | by_contract |
code | invoice:stringType1_12 |  |  |
attributes annotations
Name | Notes
type | type is the type of diagnosis catalog used encoded by a terminal set of tokens
code | code is the used code of the designated diagnosis catalog
attributes enumerations
Name | Extension | Base | Value | Annotations
type | stringType0_350 | NMTOKEN | ICD | the diagnosis catalog is ICD (e.g. ICD-10)
type | stringType0_350 | NMTOKEN | cantonal | the diagnosis catalog is the cantonal TI catalog
type | stringType0_350 | NMTOKEN | DRG | the diagnosis catalog is DRG (a DRG service position)
type | stringType0_350 | NMTOKEN | by_contract | the diagnosis is as defined by an individual contract (between provider and insurance)
type | stringType0_350 | NMTOKEN | freetext | the diagnosis is given as freetext
type | stringType0_350 | NMTOKEN | birthdefect | the diagnosis is a birthdefect coded from the "Geburtsgebrechenliste"
type | stringType0_350 | NMTOKEN | ICPC | the diagnosis catalog is ICPC (e.g. ICPC-2)
Extensions
Annotation | Base
Definition for the diagnosis container | invoice:stringType0_350
source <complexType name="diagnosisType">
<simpleContent>
<extension base="invoice:stringType0_350">
<attribute name="type" default="by_contract">
<simpleType>
<restriction base="NMTOKEN">
<enumeration value="ICD"/>
<enumeration value="cantonal"/>
<enumeration value="DRG"/>
<enumeration value="by_contract"/>
<enumeration value="freetext"/>
<enumeration value="birthdefect"/>
<enumeration value="ICPC"/>
</restriction>
</simpleType>
</attribute>
<attribute name="code" type="invoice:stringType1_12"/>
</extension>
</simpleContent>
</complexType>


 complexType documentsType
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:document
used by
element bodyType/documents
attributes parameters
Name | Type | Use | Default | Fixed
number | unsignedLong | required |  |
attributes annotations
Name | Notes
number | number defines total number of documents included in the infoset
source <complexType name="documentsType">
<sequence>
<element name="document" type="invoice:documentType" maxOccurs="unbounded"/>
</sequence>
<attribute name="number" type="unsignedLong" use="required"/>
</complexType>


 complexType documentType
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:base64 invoice:url
used by
element documentsType/document
attributes parameters
Name | Type | Use | Default | Fixed
filename | invoice:nonEmptyStringType | required |  |
mimeType | invoice:nonEmptyStringType | required |  |
viewer | anyURI |  |  |
attributes annotations
Name | Notes
filename | filename defines the file name (without any path information) on the source system This information is an aid for saving the file at the target location as well as for MIME sniffing.
mimeType | mimeType defines Multipurpose Internet Mail Extension (MIME) type of the document. The MIME type enables applications to read the file. RFC 2046 standardizes and names the commonly used MIME types.
viewer | viewer optionally points to an URL where a viewer for the current file can be downloaded
source <complexType name="documentType">
<choice>
<element name="base64" type="base64Binary"/>
<element name="url" type="anyURI"/>
</choice>
<attribute name="filename" type="invoice:nonEmptyStringType" use="required"/>
<attribute name="mimeType" type="invoice:nonEmptyStringType" use="required"/>
<attribute name="viewer" type="anyURI"/>
</complexType>


 complexType ds:CanonicalizationMethodType
diagram
namespace http://www.w3.org/2000/09/xmldsig#
properties
mixed true
used by
element ds:CanonicalizationMethod
attributes parameters
Name | Type | Use | Default | Fixed
Algorithm | anyURI | required |  |
source <complexType name="CanonicalizationMethodType" mixed="true">
<sequence>
<any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
<!-- (0,unbounded) elements from (1,1) namespace -->
</sequence>
<attribute name="Algorithm" type="anyURI" use="required"/>
</complexType>


 complexType ds:DigestMethodType
diagram
namespace http://www.w3.org/2000/09/xmldsig#
properties
mixed true
used by
element ds:DigestMethod
attributes parameters
Name | Type | Use | Default | Fixed
Algorithm | anyURI | required |  |
source <complexType name="DigestMethodType" mixed="true">
<sequence>
<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<attribute name="Algorithm" type="anyURI" use="required"/>
</complexType>


 complexType ds:DSAKeyValueType
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
children | ds:P ds:Q ds:G ds:Y ds:J ds:Seed ds:PgenCounter
used by
element ds:DSAKeyValue
source <complexType name="DSAKeyValueType">
<sequence>
<sequence minOccurs="0">
<element name="P" type="ds:CryptoBinary"/>
<element name="Q" type="ds:CryptoBinary"/>
</sequence>
<element name="G" type="ds:CryptoBinary" minOccurs="0"/>
<element name="Y" type="ds:CryptoBinary"/>
<element name="J" type="ds:CryptoBinary" minOccurs="0"/>
<sequence minOccurs="0">
<element name="Seed" type="ds:CryptoBinary"/>
<element name="PgenCounter" type="ds:CryptoBinary"/>
</sequence>
</sequence>
</complexType>


 complexType ds:KeyInfoType
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
properties
mixed true
children | ds:KeyName ds:KeyValue ds:RetrievalMethod ds:X509Data ds:PGPData ds:SPKIData ds:MgmtData
used by
elements ds:KeyInfo xenc:AgreementMethodType/OriginatorKeyInfo xenc:AgreementMethodType/RecipientKeyInfo
attributes parameters
Name | Type | Use | Default | Fixed
Id | ID | optional |  |
source <complexType name="KeyInfoType" mixed="true">
<choice maxOccurs="unbounded">
<element ref="ds:KeyName"/>
<element ref="ds:KeyValue"/>
<element ref="ds:RetrievalMethod"/>
<element ref="ds:X509Data"/>
<element ref="ds:PGPData"/>
<element ref="ds:SPKIData"/>
<element ref="ds:MgmtData"/>
<any namespace="##other" processContents="lax"/>
<!-- (1,1) elements from (0,unbounded) namespaces -->
</choice>
<attribute name="Id" type="ID" use="optional"/>
</complexType>


 complexType ds:KeyValueType
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
properties
mixed true
children | ds:DSAKeyValue ds:RSAKeyValue
used by
element ds:KeyValue
source <complexType name="KeyValueType" mixed="true">
<choice>
<element ref="ds:DSAKeyValue"/>
<element ref="ds:RSAKeyValue"/>
<any namespace="##other" processContents="lax"/>
</choice>
</complexType>


 complexType ds:ManifestType
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
children | ds:Reference
used by
element ds:Manifest
attributes parameters
Name | Type | Use | Default | Fixed
Id | ID | optional |  |
source <complexType name="ManifestType">
<sequence>
<element ref="ds:Reference" maxOccurs="unbounded"/>
</sequence>
<attribute name="Id" type="ID" use="optional"/>
</complexType>


 complexType ds:ObjectType
diagram
namespace http://www.w3.org/2000/09/xmldsig#
properties
mixed true
used by
element ds:Object
attributes parameters
Name | Type | Use | Default | Fixed
Id | ID | optional |  |
MimeType | string | optional |  |
Encoding | anyURI | optional |  |
source <complexType name="ObjectType" mixed="true">
<sequence minOccurs="0" maxOccurs="unbounded">
<any namespace="##any" processContents="lax"/>
</sequence>
<attribute name="Id" type="ID" use="optional"/>
<attribute name="MimeType" type="string" use="optional"/>
<attribute name="Encoding" type="anyURI" use="optional"/>
<!-- add a grep facet -->
</complexType>


 complexType ds:PGPDataType
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
children | ds:PGPKeyID ds:PGPKeyPacket ds:PGPKeyPacket
used by
element ds:PGPData
source <complexType name="PGPDataType">
<choice>
<sequence>
<element name="PGPKeyID" type="base64Binary"/>
<element name="PGPKeyPacket" type="base64Binary" minOccurs="0"/>
<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<sequence>
<element name="PGPKeyPacket" type="base64Binary"/>
<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</choice>
</complexType>


 complexType ds:ReferenceType
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
children | ds:Transforms ds:DigestMethod ds:DigestValue
used by
element ds:Reference
attributes parameters
Name | Type | Use | Default | Fixed
Id | ID | optional |  |
URI | anyURI | optional |  |
Type | anyURI | optional |  |
source <complexType name="ReferenceType">
<sequence>
<element ref="ds:Transforms" minOccurs="0"/>
<element ref="ds:DigestMethod"/>
<element ref="ds:DigestValue"/>
</sequence>
<attribute name="Id" type="ID" use="optional"/>
<attribute name="URI" type="anyURI" use="optional"/>
<attribute name="Type" type="anyURI" use="optional"/>
</complexType>


 complexType ds:RetrievalMethodType
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
children | ds:Transforms
used by
element ds:RetrievalMethod
attributes parameters
Name | Type | Use | Default | Fixed
URI | anyURI |  |  |
Type | anyURI | optional |  |
source <complexType name="RetrievalMethodType">
<sequence>
<element ref="ds:Transforms" minOccurs="0"/>
</sequence>
<attribute name="URI" type="anyURI"/>
<attribute name="Type" type="anyURI" use="optional"/>
</complexType>


 complexType ds:RSAKeyValueType
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
children | ds:Modulus ds:Exponent
used by
element ds:RSAKeyValue
source <complexType name="RSAKeyValueType">
<sequence>
<element name="Modulus" type="ds:CryptoBinary"/>
<element name="Exponent" type="ds:CryptoBinary"/>
</sequence>
</complexType>


 complexType ds:SignatureMethodType
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
properties
mixed true
children | ds:HMACOutputLength
used by
element ds:SignatureMethod
attributes parameters
Name | Type | Use | Default | Fixed
Algorithm | anyURI | required |  |
source <complexType name="SignatureMethodType" mixed="true">
<sequence>
<element name="HMACOutputLength" type="ds:HMACOutputLengthType" minOccurs="0"/>
<any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
<!-- (0,unbounded) elements from (1,1) external namespace -->
</sequence>
<attribute name="Algorithm" type="anyURI" use="required"/>
</complexType>


 complexType ds:SignaturePropertiesType
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
children | ds:SignatureProperty
used by
element ds:SignatureProperties
attributes parameters
Name | Type | Use | Default | Fixed
Id | ID | optional |  |
source <complexType name="SignaturePropertiesType">
<sequence>
<element ref="ds:SignatureProperty" maxOccurs="unbounded"/>
</sequence>
<attribute name="Id" type="ID" use="optional"/>
</complexType>


 element ds:SignatureProperty
Annotation
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
type | ds:SignaturePropertyType
properties
content | complex
mixed | true
used by
complexType ds:SignaturePropertiesType
attributes parameters
Name | Type | Use | Default | Fixed
Target | anyURI | required |  |
Id | ID | optional |  |
source | <element name="SignatureProperty" type="ds:SignaturePropertyType"/>


 complexType ds:SignaturePropertyType
diagram
namespace http://www.w3.org/2000/09/xmldsig#
properties
mixed true
used by
element ds:SignatureProperty
attributes parameters
Name | Type | Use | Default | Fixed
Target | anyURI | required |  |
Id | ID | optional |  |
source <complexType name="SignaturePropertyType" mixed="true">
<choice maxOccurs="unbounded">
<any namespace="##other" processContents="lax"/>
<!-- (1,1) elements from (1,unbounded) namespaces -->
</choice>
<attribute name="Target" type="anyURI" use="required"/>
<attribute name="Id" type="ID" use="optional"/>
</complexType>


 complexType ds:SignatureType
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
children | ds:SignedInfo ds:SignatureValue ds:KeyInfo ds:Object
used by
element ds:Signature
attributes parameters
Name | Type | Use | Default | Fixed
Id | ID | optional |  |
source <complexType name="SignatureType">
<sequence>
<element ref="ds:SignedInfo"/>
<element ref="ds:SignatureValue"/>
<element ref="ds:KeyInfo" minOccurs="0"/>
<element ref="ds:Object" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<attribute name="Id" type="ID" use="optional"/>
</complexType>


 complexType ds:SignatureValueType
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
type | extension of base64Binary
properties
base base64Binary
used by
element ds:SignatureValue
attributes parameters
Name | Type | Use | Default | Fixed
Id | ID | optional |  |
source <complexType name="SignatureValueType">
<simpleContent>
<extension base="base64Binary">
<attribute name="Id" type="ID" use="optional"/>
</extension>
</simpleContent>
</complexType>


 complexType ds:SignedInfoType
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
children | ds:CanonicalizationMethod ds:SignatureMethod ds:Reference
used by
element ds:SignedInfo
attributes parameters
Name | Type | Use | Default | Fixed
Id | ID | optional |  |
source <complexType name="SignedInfoType">
<sequence>
<element ref="ds:CanonicalizationMethod"/>
<element ref="ds:SignatureMethod"/>
<element ref="ds:Reference" maxOccurs="unbounded"/>
</sequence>
<attribute name="Id" type="ID" use="optional"/>
</complexType>


 complexType ds:SPKIDataType
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
children | ds:SPKISexp
used by
element ds:SPKIData
source <complexType name="SPKIDataType">
<sequence maxOccurs="unbounded">
<element name="SPKISexp" type="base64Binary"/>
<any namespace="##other" processContents="lax" minOccurs="0"/>
</sequence>
</complexType>


 complexType ds:TransformsType
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
children | ds:Transform
used by
element ds:Transforms
source <complexType name="TransformsType">
<sequence>
<element ref="ds:Transform" maxOccurs="unbounded"/>
</sequence>
</complexType>


 complexType ds:TransformType
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
properties
mixed true
children | ds:XPath
used by
element ds:Transform
attributes parameters
Name | Type | Use | Default | Fixed
Algorithm | anyURI | required |  |
source <complexType name="TransformType" mixed="true">
<choice minOccurs="0" maxOccurs="unbounded">
<any namespace="##other" processContents="lax"/>
<!-- (1,1) elements from (0,unbounded) namespaces -->
<element name="XPath" type="string"/>
</choice>
<attribute name="Algorithm" type="anyURI" use="required"/>
</complexType>


 complexType ds:X509DataType
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
children | ds:X509IssuerSerial ds:X509SKI ds:X509SubjectName ds:X509Certificate ds:X509CRL
used by
element ds:X509Data
source <complexType name="X509DataType">
<sequence maxOccurs="unbounded">
<choice>
<element name="X509IssuerSerial" type="ds:X509IssuerSerialType"/>
<element name="X509SKI" type="base64Binary"/>
<element name="X509SubjectName" type="string"/>
<element name="X509Certificate" type="base64Binary"/>
<element name="X509CRL" type="base64Binary"/>
<any namespace="##other" processContents="lax"/>
</choice>
</sequence>
</complexType>


 complexType ds:X509IssuerSerialType
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
children | ds:X509IssuerName ds:X509SerialNumber
used by
element ds:X509DataType/X509IssuerSerial
source <complexType name="X509IssuerSerialType">
<sequence>
<element name="X509IssuerName" type="string"/>
<element name="X509SerialNumber" type="integer"/>
</sequence>
</complexType>


 complexType employerAddressType
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:company invoice:person
used by
elements garantType/employer payantType/employer
attributes parameters
Name | Type | Use | Default | Fixed
ean_party | invoice:eanPartyType |  |  |
reg_number | invoice:stringType1_35 |  |  |
attributes annotations
Name | Notes
ean_party | ean_party is the employer's EAN number as defined by www.medwin.ch
reg_number | reg_number is the employer's national BER number as defined by Swiss Federal Statistical Office
source <complexType name="employerAddressType">
<choice>
<element name="company" type="invoice:companyType"/>
<element name="person" type="invoice:personType"/>
</choice>
<attribute name="ean_party" type="invoice:eanPartyType"/>
<attribute name="reg_number" type="invoice:stringType1_35"/>
</complexType>


 complexType esr5Type
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:bank
used by
element bodyType/esr5
attributes parameters
Name | Type | Use | Default | Fixed
type | derived by: NMTOKEN |  | 15 |
participant_number | derived by: string | required |  |
reference_number | derived by: string | required |  |
coding_line | derived by: string | required |  |
attributes annotations
Name | Notes
type | type is the type of ESR-5 encoded by a terminal set of tokens
participant_number | participant_number is the 5-digit participant number outside the coding line.
reference_number | reference_number is the 15-digit reference number outside the coding line. Pursuant to the guidelines the reference number should be divided up in blocks of 5 separated by blanks
coding_line | coding_line is the complete coding line of a ESR-5 payment transaction (cf. the patterns in use) Note, that the due amount is negative for a storno (or a credit advice). In such a case the amount coded into the coding line must be set zero, since negative amounts are not allowed in a coding line!
attributes enumerations
Name | Extension | Base | Value | Annotations
type |  | NMTOKEN | 15plus | 15plus is an ESR-5 with the 15-digit reference number without coded amount
type |  | NMTOKEN | 15 | 15 is an ESR-5 with the 15-digit reference number and coded amount
source <complexType name="esr5Type">
<sequence>
<element name="bank" type="invoice:esrAddressType" minOccurs="0"/>
</sequence>
<attribute name="type" default="15">
<simpleType>
<restriction base="NMTOKEN">
<enumeration value="15plus"/>
<enumeration value="15"/>
</restriction>
</simpleType>
</attribute>
<attribute name="participant_number" use="required">
<simpleType>
<restriction base="string">
<pattern value="[0-9]{5}"/>
</restriction>
</simpleType>
</attribute>
<attribute name="reference_number" use="required">
<simpleType>
<restriction base="string">
<pattern value="[0-9]{5} [0-9]{5} [0-9]{5}"/>
</restriction>
</simpleType>
</attribute>
<attribute name="coding_line" use="required">
<simpleType>
<restriction base="string">
<pattern value="(&lt;[0-9]{2}0001[0-9]{9}&gt; [0-9]{15}\+ [0-9]{5}&gt;|[0-9]{15}\+ [0-9]{5}&gt;)"/>
</restriction>
</simpleType>
</attribute>
</complexType>


 complexType esr9Type
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:bank
used by
element bodyType/esr9
attributes parameters
Name | Type | Use | Default | Fixed
type | derived by: NMTOKEN |  | 16or27 |
participant_number | derived by: string | required |  |
reference_number | derived by: string | required |  |
coding_line | derived by: string | required |  |
attributes annotations
Name | Notes
type | type is the type of ESR-9 encoded by a terminal set of tokens
participant_number | participant_number is the 9-digit participant number outside the coding line. Pursuant to the guidelines the participant number should be displayed as VV-XXXXX-P, where VV=01, XXXXX=account without leading 0, P=check digit
reference_number | reference_number is a 16-digit or 27-digit reference number outside the coding line. Pursuant to the guidelines the reference number should be divided up from the right in blocks of 5 separated by blanks
coding_line | coding_line is the coding line of an ESR-9 payment transaction Note, that the due amount is negative for a storno (or a credit advice). In such a case the amount coded into the coding line must be set zero, since negative amounts are not allowed in a coding line!
attributes enumerations
Name | Extension | Base | Value | Annotations
type |  | NMTOKEN | 16or27plus | 16or27plus is an ESR-9 with a 16-digit or 27-digit reference number without coded amount
type |  | NMTOKEN | 16or27 | 15 is an ESR-9 with a 16-digit or 27-digit reference number and coded amount
source <complexType name="esr9Type">
<sequence>
<element name="bank" type="invoice:esrAddressType" minOccurs="0"/>
</sequence>
<attribute name="type" default="16or27">
<simpleType>
<restriction base="NMTOKEN">
<enumeration value="16or27plus"/>
<enumeration value="16or27"/>
</restriction>
</simpleType>
</attribute>
<attribute name="participant_number" use="required">
<simpleType>
<restriction base="string">
<pattern value="01-[1-9][0-9]{0,5}-[0-9]"/>
</restriction>
</simpleType>
</attribute>
<attribute name="reference_number" use="required">
<simpleType>
<restriction base="string">
<pattern value="([0-9] [0-9]{5} [0-9]{5} [0-9]{5}|[0-9]{2} [0-9]{5} [0-9]{5} [0-9]{5} [0-9]{5} [0-9]{5})"/>
</restriction>
</simpleType>
</attribute>
<attribute name="coding_line" use="required">
<simpleType>
<restriction base="string">
<pattern value="(01[0-9]{11}&gt;[0-9]{16}\+ [0-9]{9}&gt;|042&gt;[0-9]{16}\+ [0-9]{9}&gt;|01[0-9]{11}&gt;[0-9]{27}\+ [0-9]{9}&gt;|042&gt;[0-9]{27}\+ [0-9]{9}&gt;)"/>
</restriction>
</simpleType>
</attribute>
</complexType>


 complexType esrAddressType
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:company invoice:person
used by
elements esr5Type/bank esr9Type/bank esrRedType/bank
source <complexType name="esrAddressType">
<choice>
<element name="company" type="invoice:companyType"/>
<element name="person" type="invoice:personType"/>
</choice>
</complexType>


 complexType esrRedType
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:bank invoice:payment_reason
used by
element bodyType/esrRed
attributes parameters
Name | Type | Use | Default | Fixed
payment_to | derived by: NMTOKEN | required |  |
esr_attributes | unsignedInt |  | 0 |
post_account | derived by: string | required |  |
iban | derived by: string |  |  |
reference_number | derived by: string |  |  |
coding_line1 | derived by: string | required |  |
coding_line2 | derived by: string | required |  |
attributes annotations
Name | Notes
payment_to | payment_to is the payment target encoded by a terminal set of tokens
esr_attributes esr_attributes is a 32-bit integer whose bits control the printed ESR-Red layout.
The bit can be ORed together to form the overall command.
Bit |  | Meaning
Bit 1 | (0x000001) | Do not print an ESR Red at all
Bit 2 | (0x000002) | Do not print creditor address (biller) and bank address if defined
Bit 3 | (0x000004) | Do not print debitor address (payer)
Bit 4 | (0x000008) | Do not print the accounting data
Bit 5 | (0x000010) | Do not print the ESR coding lines
Bit 6 | (0x000020) | Do not print the amount
Bit 7 | (0x000040) | Do not print the payment reason
Bit 8 | (0x000080) | Do not print the "in favor of" title (bank_account only)
post_account post_account is the postal account outside the coding lines
Pursuant to the guidelines the postal account should be displayed as VV-XXXX-P, where VV=pre-digits, XXXXX=account without leading 0, P=check digit
iban iban is the Swiss IBAN (21 digits) outside the coding lines (IBAN is mostly empty for postal_account transactions)
Pursuant to the guidelines the IBAN should be divided up from the left in blocks of 4 separated by blanks
reference_number | reference_number is the reference number for the invoice/reminder (digits only) that is coded into the coding line 1 if payment_to=bank_account. In the case of a payment_to=postal_account the reference number should be coded into the payment_reason.
coding_line1 | coding_line1 is the first coding line of an ESR-Red payment transaction coded as defined by the guideline of the Swiss Post (cf. www.postfinance.ch/pf/content/de/seg/biz/customer/download/doc.html
coding_line2 | coding_line2 is the second coding line of an ESR-Red payment transaction coded as defined by the guideline of the Swiss Post (cf. www.postfinance.ch/pf/content/de/seg/biz/customer/download/doc.html
attributes enumerations
Name | Extension | Base | Value | Annotations
payment_to |  | NMTOKEN | postal_account | the payment target is a postal_account (the bank address must be absent)
payment_to |  | NMTOKEN | bank_account | the payment target is a bank_account (the bank address must be present)
source <complexType name="esrRedType">
<sequence>
<element name="bank" type="invoice:esrAddressType" minOccurs="0"/>
<element name="payment_reason" type="invoice:stringType1_35" minOccurs="0" maxOccurs="4"/>
</sequence>
<attribute name="payment_to" use="required">
<simpleType>
<restriction base="NMTOKEN">
<enumeration value="postal_account"/>
<enumeration value="bank_account"/>
</restriction>
</simpleType>
</attribute>
<attribute name="esr_attributes" type="unsignedInt" default="0"/>
<attribute name="post_account" use="required">
<simpleType>
<restriction base="string">
<pattern value="[0-9]{2}-[0-9]{1,4}-[0-9]"/>
</restriction>
</simpleType>
</attribute>
<attribute name="iban">
<simpleType>
<restriction base="string">
<pattern value="CH[0-9]{19}"/>
</restriction>
</simpleType>
</attribute>
<attribute name="reference_number">
<simpleType>
<restriction base="string">
<pattern value="[0-9]{10}"/>
</restriction>
</simpleType>
</attribute>
<attribute name="coding_line1" use="required">
<simpleType>
<restriction base="string">
<pattern value="([0-9]{27}\+ 07[0-9]{7}&gt;|[0-9]{9}&gt;)"/>
</restriction>
</simpleType>
</attribute>
<attribute name="coding_line2" use="required">
<simpleType>
<restriction base="string">
<pattern value="[0-9]{9}&gt;"/>
</restriction>
</simpleType>
</attribute>
</complexType>


 complexType garantType
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:biller invoice:provider invoice:insurance invoice:patient invoice:guarantor invoice:referrer invoice:employer
used by
element bodyType/tiers_garant
attributes parameters
Name | Type | Use | Default | Fixed
payment_period | duration |  |  |
attributes annotations
Name | Notes
payment_period | payment_period is the payment period in which the invoice/reminder should be paid
source <complexType name="garantType">
<sequence>
<element name="biller" type="invoice:billerAddressType"/>
<element name="provider" type="invoice:providerAddressType"/>
<element name="insurance" type="invoice:insuranceAddressType" minOccurs="0"/>
<element name="patient" type="invoice:patientAddressType"/>
<element name="guarantor" type="invoice:guarantorAddressType"/>
<element name="referrer" type="invoice:referrerAddressType" minOccurs="0"/>
<element name="employer" type="invoice:employerAddressType" minOccurs="0"/>
</sequence>
<attribute name="payment_period" type="duration"/>
</complexType>


 complexType guarantorAddressType
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:company invoice:person
used by
elements garantType/guarantor payantType/guarantor
source <complexType name="guarantorAddressType">
<choice>
<element name="company" type="invoice:companyType"/>
<element name="person" type="invoice:personType"/>
</choice>
</complexType>


 complexType insuranceAddressType
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:company invoice:person
used by
elements garantType/insurance payantType/insurance
attributes parameters
Name | Type | Use | Default | Fixed
ean_party | invoice:eanPartyType | required |  |
attributes annotations
Name | Notes
ean_party | ean_party is the insurance's EAN number as defined by www.medwin.ch
source <complexType name="insuranceAddressType">
<choice>
<element name="company" type="invoice:companyType"/>
<element name="person" type="invoice:personType"/>
</choice>
<attribute name="ean_party" type="invoice:eanPartyType" use="required"/>
</complexType>


 complexType invoiceType
diagram
namespace http://www.forum-datenaustausch.ch/invoice
used by
element payloadType/invoice
attributes parameters
Name | Type | Use | Default | Fixed
request_timestamp | unsignedLong | required |  |
request_date | dateTime | required |  |
request_id | invoice:stringType1_35 | required |  |
request_patient_id | invoice:stringType1_35 |  |  |
attributes annotations
Name | Notes
request_timestamp | request_timestamp is a UNIX timestamp defined at the moment of the invoice's infoset generation This is one of 3 identifiers that form the invoice object reference. request_timestamp will be generated once for a certain invoice object reference and thereafter always referenced!
request_date | request_date is the main software's date of the invoice request ("Rechnungsdatum") This is one of 3 identifiers that form the invoice object reference. request_date must be identical for the same invoice object reference!
request_id | request_id is the main software's ID of the invoice request ("Rechnungsnummer") This is one of 3 identifiers that form the invoice object reference. request_id must be identical for the same invoice object reference!
request_patient_id | request_patient_id is the main software's ID of the patient referenced in the invoice request ("Patientennummer")
source <complexType name="invoiceType">
<attribute name="request_timestamp" type="unsignedLong" use="required"/>
<attribute name="request_date" type="dateTime" use="required"/>
<attribute name="request_id" type="invoice:stringType1_35" use="required"/>
<attribute name="request_patient_id" type="invoice:stringType1_35"/>
</complexType>


 complexType ivgLawType
diagram
namespace http://www.forum-datenaustausch.ch/invoice
used by
element bodyType/ivg
attributes parameters
Name | Type | Use | Default | Fixed
case_id | derived by: string | required |  |
case_date | dateTime |  |  |
contract_number | invoice:stringType1_35 |  |  |
ssn | invoice:ssnPartyType | required |  |
nif | invoice:nifPartyType |  |  |
attributes annotations
Name | Notes
case_id | case_id is the treatment/case identification given by the insurance (accident number)
case_date | case_date is the treatment/case date given by the insurance (accident date)
contract_number | contract_number is an individual contract number negotiated between provider and insurance regarding the accounting of medical services.
ssn ssn defines the social security number of the patient whereupon 3 distinguished styles are allowed:
  • the old 11 digit Swiss SSN ("AHV-Nummer") as defined by Federal Social Insurance Office
  • the new 13 digit Swiss SSN ("SV-Nummer") beginning with 756 as defined by Federal Social Insurance Office
  • the new 4-10 digit SSN of Liechtenstein ("AHV-Nummer") as defined by Liechtensteinische AHV-IV-FAK
Note, that the SSN is stored in the electronic flavor (digits only) whereas on any printed form it must be in its formatted print flavor as requested by the federal authorities.
nif | nif is the IV specific identification number for the provider.
source <complexType name="ivgLawType">
<attribute name="case_id" use="required">
<simpleType>
<restriction base="string">
<pattern value="([0-9]{14}|[0-9]{10}|[0-9]{9}|[0-9]{6})"/>
</restriction>
</simpleType>
</attribute>
<attribute name="case_date" type="dateTime"/>
<attribute name="contract_number" type="invoice:stringType1_35"/>
<attribute name="ssn" type="invoice:ssnPartyType" use="required"/>
<attribute name="nif" type="invoice:nifPartyType"/>
</complexType>


 complexType kvgLawType
diagram
namespace http://www.forum-datenaustausch.ch/invoice
used by
element bodyType/kvg
attributes parameters
Name | Type | Use | Default | Fixed
insured_id | invoice:stringType1_35 |  |  |
case_id | invoice:stringType1_35 |  |  |
case_date | dateTime |  |  |
contract_number | invoice:stringType1_35 |  |  |
attributes annotations
Name | Notes
insured_id | insured_id is the patient's identification number at the insurance (policy number),
case_id | case_id is the treatment/case identification given by the insurance
case_date | case_date is the treatment/case date given by the insurance
contract_number | contract_number is an individual contract number negotiated between provider and insurance regarding the accounting of medical services ("Einzelvertragsnummer nach KVG").
source <complexType name="kvgLawType">
<attribute name="insured_id" type="invoice:stringType1_35"/>
<attribute name="case_id" type="invoice:stringType1_35"/>
<attribute name="case_date" type="dateTime"/>
<attribute name="contract_number" type="invoice:stringType1_35"/>
</complexType>


 complexType mvgLawType
diagram
namespace http://www.forum-datenaustausch.ch/invoice
used by
element bodyType/mvg
attributes parameters
Name | Type | Use | Default | Fixed
insured_id | invoice:stringType1_35 |  |  |
case_id | invoice:stringType1_35 |  |  |
case_date | dateTime |  |  |
contract_number | invoice:stringType1_35 |  |  |
ssn | invoice:ssnPartyType | required |  |
attributes annotations
Name | Notes
insured_id | insured_id is the patient's identification number at the insurance (policy number),
case_id | case_id is the treatment/case identification given by the insurance (accident number)
case_date | case_date is the treatment/case date given by the insurance (accident date)
contract_number | contract_number is an individual contract number negotiated between provider and insurance regarding the accounting of medical services.
ssn ssn defines the social security number of the patient whereupon 3 distinguished styles are allowed:
  • the old 11 digit Swiss SSN ("AHV-Nummer") as defined by Federal Social Insurance Office
  • the new 13 digit Swiss SSN ("SV-Nummer") beginning with 756 as defined by Federal Social Insurance Office
  • the new 4-10 digit SSN of Liechtenstein ("AHV-Nummer") as defined by Liechtensteinische AHV-IV-FAK
Note, that the SSN is stored in the electronic flavor (digits only) whereas on any printed form it must be in its formatted print flavor as requested by the federal authorities.
source <complexType name="mvgLawType">
<attribute name="insured_id" type="invoice:stringType1_35"/>
<attribute name="case_id" type="invoice:stringType1_35"/>
<attribute name="case_date" type="dateTime"/>
<attribute name="contract_number" type="invoice:stringType1_35"/>
<attribute name="ssn" type="invoice:ssnPartyType" use="required"/>
</complexType>


 complexType onlineAddressType
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:email invoice:url
used by
elements personType/online companyType/online
source <complexType name="onlineAddressType">
<sequence>
<element name="email" maxOccurs="3">
<simpleType>
<restriction base="invoice:stringType1_70">
<pattern value=".+@.+"/>
</restriction>
</simpleType>
</element>
<element name="url" minOccurs="0" maxOccurs="3">
<simpleType>
<restriction base="anyURI">
<minLength value="1"/>
<maxLength value="100"/>
</restriction>
</simpleType>
</element>
</sequence>
</complexType>


 complexType orgLawType
diagram
namespace http://www.forum-datenaustausch.ch/invoice
used by
element bodyType/org
attributes parameters
Name | Type | Use | Default | Fixed
insured_id | invoice:stringType1_35 |  |  |
case_id | invoice:stringType1_35 |  |  |
case_date | dateTime |  |  |
contract_number | invoice:stringType1_35 |  |  |
attributes annotations
Name | Notes
insured_id | insured_id is the patient's identification number at the insurance (policy number),
case_id | case_id is the treatment/case identification given by the insurance (accident number)
case_date | case_date is the treatment/case date given by the insurance (accident date)
contract_number | contract_number is an individual contract number negotiated between provider and insurance regarding the accounting of medical services.
source <complexType name="orgLawType">
<attribute name="insured_id" type="invoice:stringType1_35"/>
<attribute name="case_id" type="invoice:stringType1_35"/>
<attribute name="case_date" type="dateTime"/>
<attribute name="contract_number" type="invoice:stringType1_35"/>
</complexType>


 complexType patientAddressType
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:person invoice:card
used by
elements garantType/patient payantType/patient
attributes parameters
Name | Type | Use | Default | Fixed
gender | derived by: NMTOKEN | required |  |
birthdate | dateTime | required |  |
ssn | invoice:ssnPartyType |  |  |
attributes annotations
Name | Notes
gender | gender defines the gender encoded by a terminal set of tokens
birthdate | birthdate defines the birthdate of the patient
ssn ssn defines the social security number of the patient whereupon 3 distinguished styles are allowed:
  • the old 11 digit Swiss SSN ("AHV-Nummer") as defined by Federal Social Insurance Office
  • the new 13 digit Swiss SSN ("SV-Nummer") beginning with 756 as defined by Federal Social Insurance Office
  • the new 4-10 digit SSN of Liechtenstein ("AHV-Nummer") as defined by Liechtensteinische AHV-IV-FAK
Note, that the SSN is stored in the electronic flavor (digits only) whereas on any printed form it must be in its formatted print flavor as requested by the federal authorities.
attributes enumerations
Name | Extension | Base | Value | Annotations
gender |  | NMTOKEN | male | the gender is male
gender |  | NMTOKEN | female | the gender is female
source <complexType name="patientAddressType">
<sequence>
<element name="person" type="invoice:personType"/>
<element name="card" minOccurs="0">
<complexType>
<attribute name="card_id" type="invoice:stringType1_35" use="required"/>
<attribute name="expiry_date" type="dateTime" use="required"/>
<attribute name="validation_date" type="dateTime"/>
<attribute name="validation_id" type="invoice:stringType1_35"/>
<attribute name="validation_server" type="invoice:stringType1_35"/>
</complexType>
</element>
</sequence>
<attribute name="gender" use="required">
<simpleType>
<restriction base="NMTOKEN">
<enumeration value="male"/>
<enumeration value="female"/>
</restriction>
</simpleType>
</attribute>
<attribute name="birthdate" type="dateTime" use="required"/>
<attribute name="ssn" type="invoice:ssnPartyType"/>
</complexType>


 complexType payantType
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:biller invoice:provider invoice:insurance invoice:patient invoice:guarantor invoice:referrer invoice:employer
used by
element bodyType/tiers_payant
attributes parameters
Name | Type | Use | Default | Fixed
payment_period | duration |  |  |
attributes annotations
Name | Notes
payment_period | payment_period is the payment period in which the invoice/reminder should be paid
source <complexType name="payantType">
<sequence>
<element name="biller" type="invoice:billerAddressType"/>
<element name="provider" type="invoice:providerAddressType"/>
<element name="insurance" type="invoice:insuranceAddressType"/>
<element name="patient" type="invoice:patientAddressType"/>
<element name="guarantor" type="invoice:guarantorAddressType"/>
<element name="referrer" type="invoice:referrerAddressType" minOccurs="0"/>
<element name="employer" type="invoice:employerAddressType" minOccurs="0"/>
</sequence>
<attribute name="payment_period" type="duration"/>
</complexType>


 complexType payloadType
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:credit invoice:invoice invoice:reminder invoice:body xenc:EncryptedData
used by
element requestType/payload
attributes parameters
Name | Type | Use | Default | Fixed
type | derived by: NMTOKEN |  | invoice |
storno | boolean |  | false |
copy | boolean |  | false |
credit_advice | boolean |  | false |
attributes annotations
Name | Notes
type | type defines the type of request (invoice or reminder) encoded by a terminal set of tokens
storno storno augments the topmost object reference by a storno command.
Note, that a storno of an invoice/reminder is the same as the original request, but
  • each service quantity is multiplied by -1
  • amount_prepaid and amount_reminder are multiplied by -1
This mechanism automatically produces negative amounts and vats. In such a case corrective measures must be undertaken for the coding line of the ESR part (cf. request/payload/body/esrX@codingline)
copy | copy augments the topmost object reference by a copy command that is the topmost object reference is an identical clone (except for the copy attribute) of a prior sent request.
credit_advice credit_advice is a courtesy attribute being composed of the Boolean conditions
"attribute storno=false AND attribute amount < 0" (a credit advice)
or
"attribute storno=true AND attribute amount > 0" (a storno of a credit advice)
In fact the credit advice is semantically an invoice but with a negative amount!
attributes enumerations
Name | Extension | Base | Value | Annotations
type |  | NMTOKEN | invoice | the request is of type invoice
type |  | NMTOKEN | reminder | the request is of type reminder
source <complexType name="payloadType">
<sequence>
<element name="credit" type="invoice:creditType" minOccurs="0"/>
<element name="invoice" type="invoice:invoiceType"/>
<element name="reminder" type="invoice:reminderType" minOccurs="0"/>
<choice>
<element name="body" type="invoice:bodyType"/>
<element ref="xenc:EncryptedData"/>
</choice>
</sequence>
<attribute name="type" default="invoice">
<simpleType>
<restriction base="NMTOKEN">
<enumeration value="invoice"/>
<enumeration value="reminder"/>
</restriction>
</simpleType>
</attribute>
<attribute name="storno" type="boolean" default="false"/>
<attribute name="copy" type="boolean" default="false"/>
<attribute name="credit_advice" type="boolean" default="false"/>
</complexType>


 complexType personType
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:familyname invoice:givenname invoice:subaddressing invoice:postal invoice:telecom invoice:online
used by
elements billerAddressType/person providerAddressType/person insuranceAddressType/person patientAddressType/person guarantorAddressType/person referrerAddressType/person employerAddressType/person esrAddressType/person
attributes parameters
Name | Type | Use | Default | Fixed
salutation | invoice:stringType1_35 |  |  |
title | invoice:stringType1_35 |  |  |
attributes annotations
Name | Notes
salutation | salutation is the optional salutation of the person
title | title is optional title of the person
source <complexType name="personType">
<sequence>
<element name="familyname" type="invoice:stringType1_35"/>
<element name="givenname" type="invoice:stringType1_35"/>
<element name="subaddressing" type="invoice:stringType1_35" minOccurs="0"/>
<element name="postal" type="invoice:postalAddressType"/>
<element name="telecom" type="invoice:telecomAddressType" minOccurs="0"/>
<element name="online" type="invoice:onlineAddressType" minOccurs="0"/>
</sequence>
<attribute name="salutation" type="invoice:stringType1_35"/>
<attribute name="title" type="invoice:stringType1_35"/>
</complexType>


 complexType postalAddressType
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:pobox invoice:street invoice:zip invoice:city
used by
elements personType/postal companyType/postal
source <complexType name="postalAddressType">
<sequence>
<element name="pobox" type="invoice:stringType1_35" minOccurs="0"/>
<element name="street" type="invoice:stringType1_35" minOccurs="0"/>
<element name="zip" type="invoice:zipType"/>
<element name="city" type="invoice:stringType1_35"/>
</sequence>
</complexType>


 complexType processingType
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:transport invoice:validations invoice:demand
used by
element requestType/processing
attributes parameters
Name | Type | Use | Default | Fixed
print_at_intermediate | boolean |  | false |
print_patient_copy | boolean |  | false |
attributes annotations
Name | Notes
print_at_intermediate | print_at_intermediate is a processing instruction for the last intermediate if the current infoset must be printed and sent to the receiver.
print_patient_copy | print_patient_copy is a processing instruction for the last intermediate if the current infoset must be printed as a patient copy and sent to the patient.
source <complexType name="processingType">
<sequence>
<element name="transport" type="invoice:transportType"/>
<element name="validations" type="invoice:validationsType" minOccurs="0"/>
<element name="demand" minOccurs="0">
<complexType>
<attribute name="tc_demand_id" type="long" use="required"/>
<attribute name="tc_token" type="invoice:stringType1_100" use="required"/>
<attribute name="insurance_demand_date" type="dateTime" use="required"/>
<attribute name="insurance_demand_id" type="invoice:stringType1_35"/>
</complexType>
</element>
</sequence>
<attribute name="print_at_intermediate" type="boolean" default="false"/>
<attribute name="print_patient_copy" type="boolean" default="false"/>
</complexType>


 complexType prologType
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:package invoice:generator
used by
element bodyType/prolog
source <complexType name="prologType">
<sequence>
<element name="package" type="invoice:softwareType" minOccurs="0"/>
<element name="generator" type="invoice:softwareType"/>
</sequence>
</complexType>


 complexType providerAddressType
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:company invoice:person
used by
elements garantType/provider payantType/provider
attributes parameters
Name | Type | Use | Default | Fixed
ean_party | invoice:eanPartyType | required |  |
zsr | invoice:zsrPartyType | required |  |
specialty | invoice:stringType1_350 |  |  |
attributes annotations
Name | Notes
ean_party | ean_party is the provider's EAN number as defined by www.medwin.ch
zsr | zsr is the provider's ZSR (KSK) as defined by Santésuisse
specialty | specialty is the provider's specialty (branch of medical science a doctor practices)
source <complexType name="providerAddressType">
<choice>
<element name="company" type="invoice:companyType"/>
<element name="person" type="invoice:personType"/>
</choice>
<attribute name="ean_party" type="invoice:eanPartyType" use="required"/>
<attribute name="zsr" type="invoice:zsrPartyType" use="required"/>
<attribute name="specialty" type="invoice:stringType1_350"/>
</complexType>


 complexType recordDRGType
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | extension of invoice:recordServiceType
properties
base invoice:recordServiceType
used by
element servicesType/record_drg
attributes parameters
Name | Type | Use | Default | Fixed
record_id | derived by: int | required |  |
code | invoice:stringType1_30 | required |  |
ref_code | invoice:stringType1_30 |  |  |
name | invoice:stringType1_350 | required |  |
session | derived by: int |  | 1 |
quantity | double | required |  |
date_begin | dateTime | required |  |
date_end | dateTime |  |  |
provider_id | invoice:unionPartyType | required |  |
responsible_id | invoice:unionPartyType | required |  |
unit | derived by: double | required |  |
unit_factor | derived by: double |  | 1.0 |
external_factor | derived by: double |  | 1.0 |
amount | double | required |  |
vat_rate | derived by: double |  | 0 |
validate | boolean |  | false |
obligation | boolean |  | true |
section_code | invoice:stringType1_6 |  |  |
remark | invoice:stringType1_350 |  |  |
service_attributes | unsignedInt |  | 0 |
tariff_type | derived by: string | required |  |
attributes annotations
Name | Notes
tariff_type | tariff_type is the official 3-character designator of the used DRG tariff as given by Forum Datenaustausch
record_id record_id is a record sequence number (starting with 1 and incremented by 1 for each further record) uniquely identifying the record
Note, that the sequence numbering is over all types of services!
code | code is the code of the service record as given by the used tariff catalog
ref_code ref_code is a back-reference code ("parent code") to a previously given service
Of course, ref_code is empty if no back-reference concept is used for the current tariff catalog or if the current service does not need such a back-reference
name | name is the official service name as given by the used tariff catalog
session session is the session number (default value is 1) in which the current service is part of
Of course, session is empty if there is no session concept used for the current tariff catalog
quantity quantity is the used quantity of the current service
Note, that the quantity is defined as double spanning negative, zero and positive fractional values!
  • negative quantities are used for service records in a storno (or credit advice) (cf. attribute request/payload@storno)
  • a zero quantity is used for "pro memoria" services
  • positive quantities are used for "normal" services
  • fractional values are used whenever a part of the "full" service is used (e.g. quantity=0.5 for 500ml of a 1000ml infusion solution)
quantity must not be rounded but given in full precision.
date_begin | date_begin is the date when the service was (first) applied
date_end date_end is the date when the service was last applied.
Note that date_end is only neccessary if the same service was applied each day over a period of more than 1 day.
provider_id | provider_id is the provider's identification (EAN or ZSR) that physically applied the service
responsible_id | responsible_id is the responsible person's identification (EAN or ZSR) who has medical responsibility for the applied service
unit unit is the tax point (TP) of the applied service
unit is defined as double and must not be rounded but given in full precision.
unit_factor unit_factor is the tax point value (TPV) of the applied service
unit_factor is defined as double and must not be rounded but given in full precision.
external_factor external_factor is a external scale factor (given by the main software) for the applied service
external_factor is used as a measure for giving discounts and can even be zero to supply a charge free service.
amount amount is the charged amount of the applied service
Note, that amount must fulfill the equation
«external_factor * quantity * TP * TPV * scale_factor»

calculated in full precision and the result rounded to 2 significant decimal places. This procedure is the reason for storing the multipliers in full precision.
vat_rate | vat_rate is the applicable vat rate for the applied service given as a percentage factor
validate validate is a Boolean value if the applied service was validated with a validator
If validate is true, then the validator is referenced as a dependent software/module inside the request/payload/body/prolog/generator element
obligation | obligation is a Boolean value if the applied service is a standard insurance benefit under the given law
section_code | section_code is a section code (BfS section code) where the service was applied as defined by Swiss Federal Statistical Office - this code is only given for role=hospital!
remark | remark is an optional remark for the applied service
service_attributes service_attributes is a 32 bit integer where each bit defines a certain refinement/enhancement to the already supplied data.
The currently defined values are given in the purpose chapter ("Service attributes")
Extensions
Annotation | Base
Definition for service container of type «DRG» (Diagnosis Related Groups) | invoice:recordServiceType
source <complexType name="recordDRGType">
<complexContent>
<extension base="invoice:recordServiceType">
<attribute name="tariff_type" use="required">
<simpleType>
<restriction base="string">
<pattern value="[0-9A-Z]{3}"/>
</restriction>
</simpleType>
</attribute>
</extension>
</complexContent>
</complexType>


 complexType recordDrugType
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | extension of invoice:recordServiceType
properties
base invoice:recordServiceType
children | invoice:xtra_drug
used by
element servicesType/record_drug
attributes parameters
Name | Type | Use | Default | Fixed
record_id | derived by: int | required |  |
code | invoice:stringType1_30 | required |  |
ref_code | invoice:stringType1_30 |  |  |
name | invoice:stringType1_350 | required |  |
session | derived by: int |  | 1 |
quantity | double | required |  |
date_begin | dateTime | required |  |
date_end | dateTime |  |  |
provider_id | invoice:unionPartyType | required |  |
responsible_id | invoice:unionPartyType | required |  |
unit | derived by: double | required |  |
unit_factor | derived by: double |  | 1.0 |
external_factor | derived by: double |  | 1.0 |
amount | double | required |  |
vat_rate | derived by: double |  | 0 |
validate | boolean |  | false |
obligation | boolean |  | true |
section_code | invoice:stringType1_6 |  |  |
remark | invoice:stringType1_350 |  |  |
service_attributes | unsignedInt |  | 0 |
tariff_type | derived by: string | required |  |
attributes annotations
Name | Notes
tariff_type | tariff_type is the official 3-character designator of the used drug tariff as given by Forum Datenaustausch
record_id record_id is a record sequence number (starting with 1 and incremented by 1 for each further record) uniquely identifying the record
Note, that the sequence numbering is over all types of services!
code | code is the code of the service record as given by the used tariff catalog
ref_code ref_code is a back-reference code ("parent code") to a previously given service
Of course, ref_code is empty if no back-reference concept is used for the current tariff catalog or if the current service does not need such a back-reference
name | name is the official service name as given by the used tariff catalog
session session is the session number (default value is 1) in which the current service is part of
Of course, session is empty if there is no session concept used for the current tariff catalog
quantity quantity is the used quantity of the current service
Note, that the quantity is defined as double spanning negative, zero and positive fractional values!
  • negative quantities are used for service records in a storno (or credit advice) (cf. attribute request/payload@storno)
  • a zero quantity is used for "pro memoria" services
  • positive quantities are used for "normal" services
  • fractional values are used whenever a part of the "full" service is used (e.g. quantity=0.5 for 500ml of a 1000ml infusion solution)
quantity must not be rounded but given in full precision.
date_begin | date_begin is the date when the service was (first) applied
date_end date_end is the date when the service was last applied.
Note that date_end is only neccessary if the same service was applied each day over a period of more than 1 day.
provider_id | provider_id is the provider's identification (EAN or ZSR) that physically applied the service
responsible_id | responsible_id is the responsible person's identification (EAN or ZSR) who has medical responsibility for the applied service
unit unit is the tax point (TP) of the applied service
unit is defined as double and must not be rounded but given in full precision.
unit_factor unit_factor is the tax point value (TPV) of the applied service
unit_factor is defined as double and must not be rounded but given in full precision.
external_factor external_factor is a external scale factor (given by the main software) for the applied service
external_factor is used as a measure for giving discounts and can even be zero to supply a charge free service.
amount amount is the charged amount of the applied service
Note, that amount must fulfill the equation
«external_factor * quantity * TP * TPV * scale_factor»

calculated in full precision and the result rounded to 2 significant decimal places. This procedure is the reason for storing the multipliers in full precision.
vat_rate | vat_rate is the applicable vat rate for the applied service given as a percentage factor
validate validate is a Boolean value if the applied service was validated with a validator
If validate is true, then the validator is referenced as a dependent software/module inside the request/payload/body/prolog/generator element
obligation | obligation is a Boolean value if the applied service is a standard insurance benefit under the given law
section_code | section_code is a section code (BfS section code) where the service was applied as defined by Swiss Federal Statistical Office - this code is only given for role=hospital!
remark | remark is an optional remark for the applied service
service_attributes service_attributes is a 32 bit integer where each bit defines a certain refinement/enhancement to the already supplied data.
The currently defined values are given in the purpose chapter ("Service attributes")
Extensions
Annotation | Base
Definition for service container of type «drug» | invoice:recordServiceType
source <complexType name="recordDrugType">
<complexContent>
<extension base="invoice:recordServiceType">
<sequence>
<element name="xtra_drug" minOccurs="0">
<complexType>
<attribute name="indicated" type="boolean"/>
<attribute name="iocm_category">
<simpleType>
<restriction base="NMTOKEN">
<enumeration value="A"/>
<enumeration value="B"/>
<enumeration value="C"/>
<enumeration value="D"/>
<enumeration value="E"/>
</restriction>
</simpleType>
</attribute>
<attribute name="delivery" default="first">
<simpleType>
<restriction base="NMTOKEN">
<enumeration value="first"/>
<enumeration value="repeated"/>
<enumeration value="permanent"/>
</restriction>
</simpleType>
</attribute>
<attribute name="regulation_attributes" type="unsignedInt" default="0"/>
<attribute name="limitation" type="boolean"/>
</complexType>
</element>
</sequence>
<attribute name="tariff_type" use="required">
<simpleType>
<restriction base="string">
<pattern value="[0-9A-Z]{3}"/>
</restriction>
</simpleType>
</attribute>
</extension>
</complexContent>
</complexType>


 complexType recordLabType
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | extension of invoice:recordServiceType
properties
base invoice:recordServiceType
used by
element servicesType/record_lab
attributes parameters
Name | Type | Use | Default | Fixed
record_id | derived by: int | required |  |
code | invoice:stringType1_30 | required |  |
ref_code | invoice:stringType1_30 |  |  |
name | invoice:stringType1_350 | required |  |
session | derived by: int |  | 1 |
quantity | double | required |  |
date_begin | dateTime | required |  |
date_end | dateTime |  |  |
provider_id | invoice:unionPartyType | required |  |
responsible_id | invoice:unionPartyType | required |  |
unit | derived by: double | required |  |
unit_factor | derived by: double |  | 1.0 |
external_factor | derived by: double |  | 1.0 |
amount | double | required |  |
vat_rate | derived by: double |  | 0 |
validate | boolean |  | false |
obligation | boolean |  | true |
section_code | invoice:stringType1_6 |  |  |
remark | invoice:stringType1_350 |  |  |
service_attributes | unsignedInt |  | 0 |
tariff_type | derived by: string | required |  |
attributes annotations
Name | Notes
tariff_type | tariff_type is the official 3-character designator of the used lab tariff as given by Forum Datenaustausch
record_id record_id is a record sequence number (starting with 1 and incremented by 1 for each further record) uniquely identifying the record
Note, that the sequence numbering is over all types of services!
code | code is the code of the service record as given by the used tariff catalog
ref_code ref_code is a back-reference code ("parent code") to a previously given service
Of course, ref_code is empty if no back-reference concept is used for the current tariff catalog or if the current service does not need such a back-reference
name | name is the official service name as given by the used tariff catalog
session session is the session number (default value is 1) in which the current service is part of
Of course, session is empty if there is no session concept used for the current tariff catalog
quantity quantity is the used quantity of the current service
Note, that the quantity is defined as double spanning negative, zero and positive fractional values!
  • negative quantities are used for service records in a storno (or credit advice) (cf. attribute request/payload@storno)
  • a zero quantity is used for "pro memoria" services
  • positive quantities are used for "normal" services
  • fractional values are used whenever a part of the "full" service is used (e.g. quantity=0.5 for 500ml of a 1000ml infusion solution)
quantity must not be rounded but given in full precision.
date_begin | date_begin is the date when the service was (first) applied
date_end date_end is the date when the service was last applied.
Note that date_end is only neccessary if the same service was applied each day over a period of more than 1 day.
provider_id | provider_id is the provider's identification (EAN or ZSR) that physically applied the service
responsible_id | responsible_id is the responsible person's identification (EAN or ZSR) who has medical responsibility for the applied service
unit unit is the tax point (TP) of the applied service
unit is defined as double and must not be rounded but given in full precision.
unit_factor unit_factor is the tax point value (TPV) of the applied service
unit_factor is defined as double and must not be rounded but given in full precision.
external_factor external_factor is a external scale factor (given by the main software) for the applied service
external_factor is used as a measure for giving discounts and can even be zero to supply a charge free service.
amount amount is the charged amount of the applied service
Note, that amount must fulfill the equation
«external_factor * quantity * TP * TPV * scale_factor»

calculated in full precision and the result rounded to 2 significant decimal places. This procedure is the reason for storing the multipliers in full precision.
vat_rate | vat_rate is the applicable vat rate for the applied service given as a percentage factor
validate validate is a Boolean value if the applied service was validated with a validator
If validate is true, then the validator is referenced as a dependent software/module inside the request/payload/body/prolog/generator element
obligation | obligation is a Boolean value if the applied service is a standard insurance benefit under the given law
section_code | section_code is a section code (BfS section code) where the service was applied as defined by Swiss Federal Statistical Office - this code is only given for role=hospital!
remark | remark is an optional remark for the applied service
service_attributes service_attributes is a 32 bit integer where each bit defines a certain refinement/enhancement to the already supplied data.
The currently defined values are given in the purpose chapter ("Service attributes")
Extensions
Annotation | Base
Definition for service container of type «lab» | invoice:recordServiceType
source <complexType name="recordLabType">
<complexContent>
<extension base="invoice:recordServiceType">
<attribute name="tariff_type" use="required">
<simpleType>
<restriction base="string">
<pattern value="[0-9A-Z]{3}"/>
</restriction>
</simpleType>
</attribute>
</extension>
</complexContent>
</complexType>


 complexType recordMigelType
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | extension of invoice:recordServiceType
properties
base invoice:recordServiceType
used by
element servicesType/record_migel
attributes parameters
Name | Type | Use | Default | Fixed
record_id | derived by: int | required |  |
code | invoice:stringType1_30 | required |  |
ref_code | invoice:stringType1_30 |  |  |
name | invoice:stringType1_350 | required |  |
session | derived by: int |  | 1 |
quantity | double | required |  |
date_begin | dateTime | required |  |
date_end | dateTime |  |  |
provider_id | invoice:unionPartyType | required |  |
responsible_id | invoice:unionPartyType | required |  |
unit | derived by: double | required |  |
unit_factor | derived by: double |  | 1.0 |
external_factor | derived by: double |  | 1.0 |
amount | double | required |  |
vat_rate | derived by: double |  | 0 |
validate | boolean |  | false |
obligation | boolean |  | true |
section_code | invoice:stringType1_6 |  |  |
remark | invoice:stringType1_350 |  |  |
service_attributes | unsignedInt |  | 0 |
tariff_type | derived by: string | required |  |
attributes annotations
Name | Notes
tariff_type | tariff_type is the official 3-character designator of the used MiGel tariff as given by Forum Datenaustausch
record_id record_id is a record sequence number (starting with 1 and incremented by 1 for each further record) uniquely identifying the record
Note, that the sequence numbering is over all types of services!
code | code is the code of the service record as given by the used tariff catalog
ref_code ref_code is a back-reference code ("parent code") to a previously given service
Of course, ref_code is empty if no back-reference concept is used for the current tariff catalog or if the current service does not need such a back-reference
name | name is the official service name as given by the used tariff catalog
session session is the session number (default value is 1) in which the current service is part of
Of course, session is empty if there is no session concept used for the current tariff catalog
quantity quantity is the used quantity of the current service
Note, that the quantity is defined as double spanning negative, zero and positive fractional values!
  • negative quantities are used for service records in a storno (or credit advice) (cf. attribute request/payload@storno)
  • a zero quantity is used for "pro memoria" services
  • positive quantities are used for "normal" services
  • fractional values are used whenever a part of the "full" service is used (e.g. quantity=0.5 for 500ml of a 1000ml infusion solution)
quantity must not be rounded but given in full precision.
date_begin | date_begin is the date when the service was (first) applied
date_end date_end is the date when the service was last applied.
Note that date_end is only neccessary if the same service was applied each day over a period of more than 1 day.
provider_id | provider_id is the provider's identification (EAN or ZSR) that physically applied the service
responsible_id | responsible_id is the responsible person's identification (EAN or ZSR) who has medical responsibility for the applied service
unit unit is the tax point (TP) of the applied service
unit is defined as double and must not be rounded but given in full precision.
unit_factor unit_factor is the tax point value (TPV) of the applied service
unit_factor is defined as double and must not be rounded but given in full precision.
external_factor external_factor is a external scale factor (given by the main software) for the applied service
external_factor is used as a measure for giving discounts and can even be zero to supply a charge free service.
amount amount is the charged amount of the applied service
Note, that amount must fulfill the equation
«external_factor * quantity * TP * TPV * scale_factor»

calculated in full precision and the result rounded to 2 significant decimal places. This procedure is the reason for storing the multipliers in full precision.
vat_rate | vat_rate is the applicable vat rate for the applied service given as a percentage factor
validate validate is a Boolean value if the applied service was validated with a validator
If validate is true, then the validator is referenced as a dependent software/module inside the request/payload/body/prolog/generator element
obligation | obligation is a Boolean value if the applied service is a standard insurance benefit under the given law
section_code | section_code is a section code (BfS section code) where the service was applied as defined by Swiss Federal Statistical Office - this code is only given for role=hospital!
remark | remark is an optional remark for the applied service
service_attributes service_attributes is a 32 bit integer where each bit defines a certain refinement/enhancement to the already supplied data.
The currently defined values are given in the purpose chapter ("Service attributes")
Extensions
Annotation | Base
Definition for service container of type «MiGel» (Mittel und Gegenstände) | invoice:recordServiceType
source <complexType name="recordMigelType">
<complexContent>
<extension base="invoice:recordServiceType">
<attribute name="tariff_type" use="required">
<simpleType>
<restriction base="string">
<pattern value="[0-9A-Z]{3}"/>
</restriction>
</simpleType>
</attribute>
</extension>
</complexContent>
</complexType>


 complexType recordOtherType
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | extension of invoice:recordServiceType
properties
base invoice:recordServiceType
used by
element servicesType/record_other
attributes parameters
Name | Type | Use | Default | Fixed
record_id | derived by: int | required |  |
code | invoice:stringType1_30 | required |  |
ref_code | invoice:stringType1_30 |  |  |
name | invoice:stringType1_350 | required |  |
session | derived by: int |  | 1 |
quantity | double | required |  |
date_begin | dateTime | required |  |
date_end | dateTime |  |  |
provider_id | invoice:unionPartyType | required |  |
responsible_id | invoice:unionPartyType | required |  |
unit | derived by: double | required |  |
unit_factor | derived by: double |  | 1.0 |
external_factor | derived by: double |  | 1.0 |
amount | double | required |  |
vat_rate | derived by: double |  | 0 |
validate | boolean |  | false |
obligation | boolean |  | true |
section_code | invoice:stringType1_6 |  |  |
remark | invoice:stringType1_350 |  |  |
service_attributes | unsignedInt |  | 0 |
tariff_type | derived by: string | required |  |
attributes annotations
Name | Notes
tariff_type tariff_type is the official 3-character designator of the used tariff as given by Forum Datenaustausch
Note, that the tariff type 999 must be used if it is a non-official tariff without a 3-character designator
record_id record_id is a record sequence number (starting with 1 and incremented by 1 for each further record) uniquely identifying the record
Note, that the sequence numbering is over all types of services!
code | code is the code of the service record as given by the used tariff catalog
ref_code ref_code is a back-reference code ("parent code") to a previously given service
Of course, ref_code is empty if no back-reference concept is used for the current tariff catalog or if the current service does not need such a back-reference
name | name is the official service name as given by the used tariff catalog
session session is the session number (default value is 1) in which the current service is part of
Of course, session is empty if there is no session concept used for the current tariff catalog
quantity quantity is the used quantity of the current service
Note, that the quantity is defined as double spanning negative, zero and positive fractional values!
  • negative quantities are used for service records in a storno (or credit advice) (cf. attribute request/payload@storno)
  • a zero quantity is used for "pro memoria" services
  • positive quantities are used for "normal" services
  • fractional values are used whenever a part of the "full" service is used (e.g. quantity=0.5 for 500ml of a 1000ml infusion solution)
quantity must not be rounded but given in full precision.
date_begin | date_begin is the date when the service was (first) applied
date_end date_end is the date when the service was last applied.
Note that date_end is only neccessary if the same service was applied each day over a period of more than 1 day.
provider_id | provider_id is the provider's identification (EAN or ZSR) that physically applied the service
responsible_id | responsible_id is the responsible person's identification (EAN or ZSR) who has medical responsibility for the applied service
unit unit is the tax point (TP) of the applied service
unit is defined as double and must not be rounded but given in full precision.
unit_factor unit_factor is the tax point value (TPV) of the applied service
unit_factor is defined as double and must not be rounded but given in full precision.
external_factor external_factor is a external scale factor (given by the main software) for the applied service
external_factor is used as a measure for giving discounts and can even be zero to supply a charge free service.
amount amount is the charged amount of the applied service
Note, that amount must fulfill the equation
«external_factor * quantity * TP * TPV * scale_factor»

calculated in full precision and the result rounded to 2 significant decimal places. This procedure is the reason for storing the multipliers in full precision.
vat_rate | vat_rate is the applicable vat rate for the applied service given as a percentage factor
validate validate is a Boolean value if the applied service was validated with a validator
If validate is true, then the validator is referenced as a dependent software/module inside the request/payload/body/prolog/generator element
obligation | obligation is a Boolean value if the applied service is a standard insurance benefit under the given law
section_code | section_code is a section code (BfS section code) where the service was applied as defined by Swiss Federal Statistical Office - this code is only given for role=hospital!
remark | remark is an optional remark for the applied service
service_attributes service_attributes is a 32 bit integer where each bit defines a certain refinement/enhancement to the already supplied data.
The currently defined values are given in the purpose chapter ("Service attributes")
Extensions
Annotation | Base
Definition for service container of type «other» | invoice:recordServiceType
source <complexType name="recordOtherType">
<complexContent>
<extension base="invoice:recordServiceType">
<attribute name="tariff_type" use="required">
<simpleType>
<restriction base="string">
<pattern value="[0-9A-Z]{3}"/>
</restriction>
</simpleType>
</attribute>
</extension>
</complexContent>
</complexType>


 complexType recordParamedType
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | extension of invoice:recordServiceType
properties
base invoice:recordServiceType
used by
element servicesType/record_paramed
attributes parameters
Name | Type | Use | Default | Fixed
record_id | derived by: int | required |  |
code | invoice:stringType1_30 | required |  |
ref_code | invoice:stringType1_30 |  |  |
name | invoice:stringType1_350 | required |  |
session | derived by: int |  | 1 |
quantity | double | required |  |
date_begin | dateTime | required |  |
date_end | dateTime |  |  |
provider_id | invoice:unionPartyType | required |  |
responsible_id | invoice:unionPartyType | required |  |
unit | derived by: double | required |  |
unit_factor | derived by: double |  | 1.0 |
external_factor | derived by: double |  | 1.0 |
amount | double | required |  |
vat_rate | derived by: double |  | 0 |
validate | boolean |  | false |
obligation | boolean |  | true |
section_code | invoice:stringType1_6 |  |  |
remark | invoice:stringType1_350 |  |  |
service_attributes | unsignedInt |  | 0 |
tariff_type | derived by: string | required |  |
attributes annotations
Name | Notes
tariff_type | tariff_type is the official 3-character designator of the used paramedical tariff as given by Forum Datenaustausch
record_id record_id is a record sequence number (starting with 1 and incremented by 1 for each further record) uniquely identifying the record
Note, that the sequence numbering is over all types of services!
code | code is the code of the service record as given by the used tariff catalog
ref_code ref_code is a back-reference code ("parent code") to a previously given service
Of course, ref_code is empty if no back-reference concept is used for the current tariff catalog or if the current service does not need such a back-reference
name | name is the official service name as given by the used tariff catalog
session session is the session number (default value is 1) in which the current service is part of
Of course, session is empty if there is no session concept used for the current tariff catalog
quantity quantity is the used quantity of the current service
Note, that the quantity is defined as double spanning negative, zero and positive fractional values!
  • negative quantities are used for service records in a storno (or credit advice) (cf. attribute request/payload@storno)
  • a zero quantity is used for "pro memoria" services
  • positive quantities are used for "normal" services
  • fractional values are used whenever a part of the "full" service is used (e.g. quantity=0.5 for 500ml of a 1000ml infusion solution)
quantity must not be rounded but given in full precision.
date_begin | date_begin is the date when the service was (first) applied
date_end date_end is the date when the service was last applied.
Note that date_end is only neccessary if the same service was applied each day over a period of more than 1 day.
provider_id | provider_id is the provider's identification (EAN or ZSR) that physically applied the service
responsible_id | responsible_id is the responsible person's identification (EAN or ZSR) who has medical responsibility for the applied service
unit unit is the tax point (TP) of the applied service
unit is defined as double and must not be rounded but given in full precision.
unit_factor unit_factor is the tax point value (TPV) of the applied service
unit_factor is defined as double and must not be rounded but given in full precision.
external_factor external_factor is a external scale factor (given by the main software) for the applied service
external_factor is used as a measure for giving discounts and can even be zero to supply a charge free service.
amount amount is the charged amount of the applied service
Note, that amount must fulfill the equation
«external_factor * quantity * TP * TPV * scale_factor»

calculated in full precision and the result rounded to 2 significant decimal places. This procedure is the reason for storing the multipliers in full precision.
vat_rate | vat_rate is the applicable vat rate for the applied service given as a percentage factor
validate validate is a Boolean value if the applied service was validated with a validator
If validate is true, then the validator is referenced as a dependent software/module inside the request/payload/body/prolog/generator element
obligation | obligation is a Boolean value if the applied service is a standard insurance benefit under the given law
section_code | section_code is a section code (BfS section code) where the service was applied as defined by Swiss Federal Statistical Office - this code is only given for role=hospital!
remark | remark is an optional remark for the applied service
service_attributes service_attributes is a 32 bit integer where each bit defines a certain refinement/enhancement to the already supplied data.
The currently defined values are given in the purpose chapter ("Service attributes")
Extensions
Annotation | Base
Definition for service container of type «paramed» | invoice:recordServiceType
source <complexType name="recordParamedType">
<complexContent>
<extension base="invoice:recordServiceType">
<attribute name="tariff_type" use="required">
<simpleType>
<restriction base="string">
<pattern value="[0-9A-Z]{3}"/>
</restriction>
</simpleType>
</attribute>
</extension>
</complexContent>
</complexType>


 complexType recordServiceType
diagram
namespace http://www.forum-datenaustausch.ch/invoice
used by
complexTypes recordDRGType recordDrugType recordLabType recordMigelType recordOtherType recordParamedType
attributes parameters
Name | Type | Use | Default | Fixed
record_id | derived by: int | required |  |
code | invoice:stringType1_30 | required |  |
ref_code | invoice:stringType1_30 |  |  |
name | invoice:stringType1_350 | required |  |
session | derived by: int |  | 1 |
quantity | double | required |  |
date_begin | dateTime | required |  |
date_end | dateTime |  |  |
provider_id | invoice:unionPartyType | required |  |
responsible_id | invoice:unionPartyType | required |  |
unit | derived by: double | required |  |
unit_factor | derived by: double |  | 1.0 |
external_factor | derived by: double |  | 1.0 |
amount | double | required |  |
vat_rate | derived by: double |  | 0 |
validate | boolean |  | false |
obligation | boolean |  | true |
section_code | invoice:stringType1_6 |  |  |
remark | invoice:stringType1_350 |  |  |
service_attributes | unsignedInt |  | 0 |
attributes annotations
Name | Notes
record_id record_id is a record sequence number (starting with 1 and incremented by 1 for each further record) uniquely identifying the record
Note, that the sequence numbering is over all types of services!
code | code is the code of the service record as given by the used tariff catalog
ref_code ref_code is a back-reference code ("parent code") to a previously given service
Of course, ref_code is empty if no back-reference concept is used for the current tariff catalog or if the current service does not need such a back-reference
name | name is the official service name as given by the used tariff catalog
session session is the session number (default value is 1) in which the current service is part of
Of course, session is empty if there is no session concept used for the current tariff catalog
quantity quantity is the used quantity of the current service
Note, that the quantity is defined as double spanning negative, zero and positive fractional values!
  • negative quantities are used for service records in a storno (or credit advice) (cf. attribute request/payload@storno)
  • a zero quantity is used for "pro memoria" services
  • positive quantities are used for "normal" services
  • fractional values are used whenever a part of the "full" service is used (e.g. quantity=0.5 for 500ml of a 1000ml infusion solution)
quantity must not be rounded but given in full precision.
date_begin | date_begin is the date when the service was (first) applied
date_end date_end is the date when the service was last applied.
Note that date_end is only neccessary if the same service was applied each day over a period of more than 1 day.
provider_id | provider_id is the provider's identification (EAN or ZSR) that physically applied the service
responsible_id | responsible_id is the responsible person's identification (EAN or ZSR) who has medical responsibility for the applied service
unit unit is the tax point (TP) of the applied service
unit is defined as double and must not be rounded but given in full precision.
unit_factor unit_factor is the tax point value (TPV) of the applied service
unit_factor is defined as double and must not be rounded but given in full precision.
external_factor external_factor is a external scale factor (given by the main software) for the applied service
external_factor is used as a measure for giving discounts and can even be zero to supply a charge free service.
amount amount is the charged amount of the applied service
Note, that amount must fulfill the equation
«external_factor * quantity * TP * TPV * scale_factor»

calculated in full precision and the result rounded to 2 significant decimal places. This procedure is the reason for storing the multipliers in full precision.
vat_rate | vat_rate is the applicable vat rate for the applied service given as a percentage factor
validate validate is a Boolean value if the applied service was validated with a validator
If validate is true, then the validator is referenced as a dependent software/module inside the request/payload/body/prolog/generator element
obligation | obligation is a Boolean value if the applied service is a standard insurance benefit under the given law
section_code | section_code is a section code (BfS section code) where the service was applied as defined by Swiss Federal Statistical Office - this code is only given for role=hospital!
remark | remark is an optional remark for the applied service
service_attributes service_attributes is a 32 bit integer where each bit defines a certain refinement/enhancement to the already supplied data.
The currently defined values are given in the purpose chapter ("Service attributes")
source <complexType name="recordServiceType">
<attribute name="record_id" use="required">
<simpleType>
<restriction base="int">
<minInclusive value="1"/>
<maxInclusive value="999999999"/>
</restriction>
</simpleType>
</attribute>
<attribute name="code" type="invoice:stringType1_30" use="required"/>
<attribute name="ref_code" type="invoice:stringType1_30"/>
<attribute name="name" type="invoice:stringType1_350" use="required"/>
<attribute name="session" default="1">
<simpleType>
<restriction base="int">
<minInclusive value="1"/>
<maxInclusive value="999999"/>
</restriction>
</simpleType>
</attribute>
<attribute name="quantity" type="double" use="required"/>
<attribute name="date_begin" type="dateTime" use="required"/>
<attribute name="date_end" type="dateTime"/>
<attribute name="provider_id" type="invoice:unionPartyType" use="required"/>
<attribute name="responsible_id" type="invoice:unionPartyType" use="required"/>
<attribute name="unit" use="required">
<simpleType>
<restriction base="double">
<minInclusive value="0.0"/>
</restriction>
</simpleType>
</attribute>
<attribute name="unit_factor" default="1.0">
<simpleType>
<restriction base="double">
<minExclusive value="0.0"/>
</restriction>
</simpleType>
</attribute>
<attribute name="external_factor" default="1.0">
<simpleType>
<restriction base="double">
<minInclusive value="0.0"/>
</restriction>
</simpleType>
</attribute>
<attribute name="amount" type="double" use="required"/>
<attribute name="vat_rate" default="0">
<simpleType>
<restriction base="double">
<minInclusive value="0"/>
<maxInclusive value="100"/>
</restriction>
</simpleType>
</attribute>
<attribute name="validate" type="boolean" default="false"/>
<attribute name="obligation" type="boolean" default="true"/>
<attribute name="section_code" type="invoice:stringType1_6"/>
<attribute name="remark" type="invoice:stringType1_350"/>
<attribute name="service_attributes" type="unsignedInt" default="0"/>
</complexType>


 complexType recordTarmedType
diagram
namespace http://www.forum-datenaustausch.ch/invoice
used by
element servicesType/record_tarmed
attributes parameters
Name | Type | Use | Default | Fixed
record_id | derived by: int | required |  |
tariff_type | derived by: string | required |  |
code | invoice:stringType1_30 | required |  |
ref_code | invoice:stringType1_30 |  |  |
name | invoice:stringType1_350 | required |  |
session | derived by: int |  | 1 |
quantity | double | required |  |
date_begin | dateTime | required |  |
date_end | dateTime |  |  |
provider_id | invoice:unionPartyType | required |  |
responsible_id | invoice:unionPartyType | required |  |
billing_role | derived by: NMTOKEN |  | both |
medical_role | derived by: NMTOKEN |  | self_employed |
body_location | derived by: NMTOKEN |  | none |
treatment | derived by: NMTOKEN |  | ambulatory |
unit_mt | derived by: double | required |  |
unit_factor_mt | derived by: double | required |  |
scale_factor_mt | double |  | 1.0 |
external_factor_mt | derived by: double |  | 1.0 |
amount_mt | double |  | 0.0 |
unit_tt | derived by: double | required |  |
unit_factor_tt | derived by: double | required |  |
scale_factor_tt | double |  | 1.0 |
external_factor_tt | derived by: double |  | 1.0 |
amount_tt | double |  | 0.0 |
amount | double | required |  |
vat_rate | derived by: double |  | 0.0 |
validate | boolean |  | false |
obligation | boolean |  | true |
section_code | invoice:stringType1_6 |  |  |
remark | invoice:stringType1_350 |  |  |
service_attributes | unsignedInt |  | 0 |
attributes annotations
Name | Notes
record_id record_id is a record sequence number (starting with 1 and incremented by 1 for each further record) uniquely identifying the record
Note, that the sequence numbering is over all types of services!
tariff_type tariff_type is the official 3-character designator of the used tariff as given by Forum Datenaustausch
The default tariff type is "001" for Tarmed
code | code is the code of the service record as given by the used tariff catalog
ref_code ref_code is a back-reference code ("parent code") to a previously given service
Of course, ref_code is empty if the current service does not need such a back-reference
name | name is the official service name as given by the used tariff catalog
session | session is the session number (default value is 1) in which the current service is part of
quantity quantity is the used quantity of the current service
Note, that the quantity is defined as double spanning negative, zero and positive fractional values!
  • negative quantities are used for service records in a storno (or credit advice) (cf. attribute request/payload@storno)
  • a zero quantity is used for "pro memoria" services
  • positive quantities are used for "normal" services
  • fractional values are used whenever a part of the "full" service is used (e.g. quantity=0.25 for 02.0050 with a group of 4)
quantity must not be rounded but given in full precision.
date_begin | date_begin is the date when the service was (first) applied
date_end date_end is the date when the service was last applied.
Note that date_end is only neccessary if a service was applied over a period of more than 1 day.
provider_id | provider_id is the provider's identification (EAN or ZSR) that physically applied the service
responsible_id | responsible_id is the responsible person's identification (EAN or ZSR) who has medical responsibility for the applied service
billing_role | billing_role is the Tarmed defined billing role encoded by a terminal set of tokens.
medical_role | medical_role is the Tarmed defined medical role encoded by a terminal set of tokens.
body_location | body_location is the Tarmed defined side location encoded by a terminal set of tokens.
treatment | treatment is the treatment type under which the service was applied encoded by a terminal set of tokens.
unit_mt unit_mt is the tax point of the medical part (TP(mt)) of the applied service
unit_mt is defined as double and must not be rounded but given in full precision.
unit_factor_mt unit_factor_mt is the tax point value of the medical part (TPV(mt)) of the applied service
unit_factor_mt is defined as double and must not be rounded but given in full precision.
scale_factor_mt scale_factor_mt is an internal Tarmed defined scale factor of the medical part of the applied service
scale_factor_mt is defined as double and must not be rounded but given in full precision.
external_factor_mt external_factor_mt is a external scale factor (given by the main software) for the medical part of the applied service
external_factor_mt is used as a measure for giving discounts and can even be zero to supply a charge free service.
amount_mt amount_mt is the charged amount of the medical part of the applied service
Note, that amount_mt must fulfill the equation
«external_factor_mt * quantity * TP(mt) * TPV(mt) * scale_factor_mt»

calculated in full precision and the result rounded to 2 significant decimal places. This procedure is the reason for storing the multipliers in full precision.
unit_tt unit_tt is the tax point of the technical part (TP(tt)) of the applied service
unit_tt is defined as double and must not be rounded but given in full precision.
unit_factor_tt unit_factor_tt is the tax point value of the technical part (TPV(tt)) of the applied service
unit_factor_tt is defined as double and must not be rounded but given in full precision.
scale_factor_tt scale_factor_tt is an internal Tarmed defined scale factor of the technical part of the applied service
scale_factor_tt is defined as double and must not be rounded but given in full precision.
external_factor_tt external_factor_tt is a external scale factor (given by the main software) for the technical part of the applied service
external_factor_tt is used as a measure for giving discounts and can even be zero to supply a charge free service.
amount_tt amount_tt is the charged amount of the technical part of the applied service
Note, that amount_tt must fulfill the equation
«external_factor_tt * quantity * TP(tt) * TPV(tt) * scale_factor_tt»

calculated in full precision and the result rounded to 2 significant decimal places. This procedure is the reason for storing the multipliers in full precision.
amount | amount is the charged amount of the applied service consisting of (amount_mt + amount_tt)
vat_rate | vat_rate is the applicable vat rate for the applied service given as a percentage factor
validate validate is a Boolean value if the applied service was validated with a validator
If validate is true, then the validator is referenced as a dependent software/module inside the request/payload/body/prolog/generator element
obligation | obligation is a Boolean value if the applied service is a standard insurance benefit under the given law
section_code | section_code is a section code (BfS section code) where the service was applied as defined by Swiss Federal Statistical Office - this code is only given for role=hospital!
remark | remark is an optional remark for the applied service
service_attributes service_attributes is a 32 bit integer where each bit defines a certain refinement/enhancement to the already supplied data.
The currently defined values are given in the purpose chapter ("Service attributes")
attributes enumerations
Name | Extension | Base | Value | Annotations
billing_role |  | NMTOKEN | mt | the billing role is mt (medical part only) - set unit_mt=0 in this case!
billing_role |  | NMTOKEN | tt | the billing role is tt (technical part only) - set unit_tt=0 in this case!
billing_role |  | NMTOKEN | both | the billing role is both (medical+technical part, this is the default)
billing_role |  | NMTOKEN | none | the billing role is none (neither medical nor technical part is billed) - set unit_mt=0 and unit_tt=0 in this case!
body_location |  | NMTOKEN | none | the location is none (default) - no side specific location
body_location |  | NMTOKEN | left | the location is left - the service was applied on the left body side
body_location |  | NMTOKEN | right | the location is right - the service was applied on the right body side
medical_role |  | NMTOKEN | self_employed | the medical role is self_employed (default)
medical_role |  | NMTOKEN | employee | the billing role is employee (technical part only)
treatment |  | NMTOKEN | ambulatory | the treatment type is ambulatory (default)
treatment |  | NMTOKEN | stationary | the treatment type is stationary
source <complexType name="recordTarmedType">
<attribute name="record_id" use="required">
<simpleType>
<restriction base="int">
<minInclusive value="1"/>
<maxInclusive value="999999999"/>
</restriction>
</simpleType>
</attribute>
<attribute name="tariff_type" use="required">
<simpleType>
<restriction base="string">
<pattern value="[0-9A-Z]{3}"/>
</restriction>
</simpleType>
</attribute>
<attribute name="code" type="invoice:stringType1_30" use="required"/>
<attribute name="ref_code" type="invoice:stringType1_30"/>
<attribute name="name" type="invoice:stringType1_350" use="required"/>
<attribute name="session" default="1">
<simpleType>
<restriction base="int">
<minInclusive value="1"/>
<maxInclusive value="999999"/>
</restriction>
</simpleType>
</attribute>
<attribute name="quantity" type="double" use="required"/>
<attribute name="date_begin" type="dateTime" use="required"/>
<attribute name="date_end" type="dateTime"/>
<attribute name="provider_id" type="invoice:unionPartyType" use="required"/>
<attribute name="responsible_id" type="invoice:unionPartyType" use="required"/>
<attribute name="billing_role" default="both">
<simpleType>
<restriction base="NMTOKEN">
<enumeration value="mt"/>
<enumeration value="tt"/>
<enumeration value="both"/>
<enumeration value="none"/>
</restriction>
</simpleType>
</attribute>
<attribute name="medical_role" default="self_employed">
<simpleType>
<restriction base="NMTOKEN">
<enumeration value="self_employed"/>
<enumeration value="employee"/>
</restriction>
</simpleType>
</attribute>
<attribute name="body_location" default="none">
<simpleType>
<restriction base="NMTOKEN">
<enumeration value="none"/>
<enumeration value="left"/>
<enumeration value="right"/>
</restriction>
</simpleType>
</attribute>
<attribute name="treatment" default="ambulatory">
<simpleType>
<restriction base="NMTOKEN">
<enumeration value="ambulatory"/>
<enumeration value="stationary"/>
</restriction>
</simpleType>
</attribute>
<attribute name="unit_mt" use="required">
<simpleType>
<restriction base="double">
<minInclusive value="0.0"/>
</restriction>
</simpleType>
</attribute>
<attribute name="unit_factor_mt" use="required">
<simpleType>
<restriction base="double">
<minExclusive value="0.0"/>
</restriction>
</simpleType>
</attribute>
<attribute name="scale_factor_mt" type="double" default="1.0"/>
<attribute name="external_factor_mt" default="1.0">
<simpleType>
<restriction base="double">
<minInclusive value="0.0"/>
</restriction>
</simpleType>
</attribute>
<attribute name="amount_mt" type="double" default="0.0"/>
<attribute name="unit_tt" use="required">
<simpleType>
<restriction base="double">
<minInclusive value="0.0"/>
</restriction>
</simpleType>
</attribute>
<attribute name="unit_factor_tt" use="required">
<simpleType>
<restriction base="double">
<minExclusive value="0.0"/>
</restriction>
</simpleType>
</attribute>
<attribute name="scale_factor_tt" type="double" default="1.0"/>
<attribute name="external_factor_tt" default="1.0">
<simpleType>
<restriction base="double">
<minInclusive value="0.0"/>
</restriction>
</simpleType>
</attribute>
<attribute name="amount_tt" type="double" default="0.0"/>
<attribute name="amount" type="double" use="required"/>
<attribute name="vat_rate" default="0.0">
<simpleType>
<restriction base="double">
<minInclusive value="0"/>
<maxInclusive value="100"/>
</restriction>
</simpleType>
</attribute>
<attribute name="validate" type="boolean" default="false"/>
<attribute name="obligation" type="boolean" default="true"/>
<attribute name="section_code" type="invoice:stringType1_6"/>
<attribute name="remark" type="invoice:stringType1_350"/>
<attribute name="service_attributes" type="unsignedInt" default="0"/>
</complexType>


 complexType referrerAddressType
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:company invoice:person
used by
elements garantType/referrer payantType/referrer
attributes parameters
Name | Type | Use | Default | Fixed
ean_party | invoice:eanPartyType |  |  |
zsr | invoice:zsrPartyType |  |  |
specialty | invoice:stringType1_350 |  |  |
attributes annotations
Name | Notes
ean_party | ean_party is the referrer's EAN number as defined by www.medwin.ch
zsr | zsr is the referrer's ZSR (KSK) as defined by Santésuisse
specialty | specialty is the referrer's specialty (branch of medical science a doctor practices)
source <complexType name="referrerAddressType">
<choice>
<element name="company" type="invoice:companyType"/>
<element name="person" type="invoice:personType"/>
</choice>
<attribute name="ean_party" type="invoice:eanPartyType"/>
<attribute name="zsr" type="invoice:zsrPartyType"/>
<attribute name="specialty" type="invoice:stringType1_350"/>
</complexType>


 complexType reminderType
diagram
namespace http://www.forum-datenaustausch.ch/invoice
used by
element payloadType/reminder
attributes parameters
Name | Type | Use | Default | Fixed
request_timestamp | unsignedLong | required |  |
request_date | dateTime | required |  |
request_id | invoice:stringType1_35 | required |  |
reminder_level | derived by: NMTOKEN |  | 1 |
reminder_text | invoice:stringType1_700 |  |  |
attributes annotations
Name | Notes
request_timestamp | request_timestamp is a UNIX timestamp defined at the moment of the reminder's infoset generation This is one of 3 identifiers that form the reminder object reference. request_timestamp will be generated once for a certain reminder object reference and thereafter always referenced!
request_date | request_date is the main software's date of the reminder request ("Mahndatum") This is one of 3 identifiers that form the reminder object reference. request_date must be identical for the same reminder object reference!
request_id | request_id is the main software's ID of the reminder request ("Mahnnummer") This is one of 3 identifiers that form the reminder object reference. request_id must be identical for the same reminder object reference!
reminder_level | reminder_level is the level of the reminder starting with 1 and ending with 3 encoded by a terminal set of tokens
reminder_text | reminder_text is a the reminder text formed as an RTF (Rich Text Format) string to allow for minimal style enhancements
attributes enumerations
Name | Extension | Base | Value | Annotations
reminder_level |  | NMTOKEN | 1 | the level of the reminder is 1 (default)
reminder_level |  | NMTOKEN | 2 | the level of the reminder is 2
reminder_level |  | NMTOKEN | 3 | the level of the reminder is 3
source <complexType name="reminderType">
<attribute name="request_timestamp" type="unsignedLong" use="required"/>
<attribute name="request_date" type="dateTime" use="required"/>
<attribute name="request_id" type="invoice:stringType1_35" use="required"/>
<attribute name="reminder_level" default="1">
<simpleType>
<restriction base="NMTOKEN">
<enumeration value="1"/>
<enumeration value="2"/>
<enumeration value="3"/>
</restriction>
</simpleType>
</attribute>
<attribute name="reminder_text" type="invoice:stringType1_700"/>
</complexType>


 complexType requestType
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:processing invoice:payload ds:Signature
used by
element request
attributes parameters
Name | Type | Use | Default | Fixed
language | derived by: NMTOKEN | required |  |
modus | derived by: NMTOKEN |  | production |
validation_status | long |  |  |
attributes annotations
Name | Notes
language | language defines the used data language (name of the services etc.) encoded by a terminal set of ISO language specifiers. All responses will be encoded in the same language.
modus | modus defines the operating modus encoded by a terminal set of tokens
validation_status | validation_status defines the validity status of XML infoset after the infoset is generated and validated by a DOM. 0 or absence of the attribute means OK. It is possible to knowingly encode an XML infoset that is not well formed or invalid regarding its content. validation_status then signals an error condition to the recipient.
attributes enumerations
Name | Extension | Base | Value | Annotations
language |  | NMTOKEN | de | the data language is german
language |  | NMTOKEN | fr | the data language is french
language |  | NMTOKEN | it | the data language is italian
modus |  | NMTOKEN | production | the modus production (default value) is for normal processing
modus |  | NMTOKEN | test | the modus test is for software developers to test the processing. By definition there must not be any money flow!
source <complexType name="requestType">
<sequence>
<element name="processing" type="invoice:processingType"/>
<element name="payload" type="invoice:payloadType"/>
<element ref="ds:Signature" minOccurs="0"/>
</sequence>
<attribute name="language" use="required">
<simpleType>
<restriction base="NMTOKEN">
<enumeration value="de"/>
<enumeration value="fr"/>
<enumeration value="it"/>
</restriction>
</simpleType>
</attribute>
<attribute name="modus" default="production">
<simpleType>
<restriction base="NMTOKEN">
<enumeration value="production"/>
<enumeration value="test"/>
</restriction>
</simpleType>
</attribute>
<attribute name="validation_status" type="long"/>
</complexType>


 complexType servicesType
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:record_tarmed invoice:record_drg invoice:record_lab invoice:record_migel invoice:record_paramed invoice:record_drug invoice:record_other
used by
element bodyType/services
source <complexType name="servicesType">
<choice maxOccurs="unbounded">
<element name="record_tarmed" type="invoice:recordTarmedType"/>
<element name="record_drg" type="invoice:recordDRGType"/>
<element name="record_lab" type="invoice:recordLabType"/>
<element name="record_migel" type="invoice:recordMigelType"/>
<element name="record_paramed" type="invoice:recordParamedType"/>
<element name="record_drug" type="invoice:recordDrugType"/>
<element name="record_other" type="invoice:recordOtherType"/>
</choice>
</complexType>


 complexType softwareType
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:depends_on
used by
elements prologType/generator prologType/package
attributes parameters
Name | Type | Use | Default | Fixed
name | invoice:stringType1_50 | required |  |
copyright | invoice:stringType1_50 |  |  |
description | invoice:stringType1_50 |  |  |
version | unsignedInt |  |  |
id | unsignedInt |  | 0 |
attributes annotations
Name | Notes
name | name defines the name of the software/module
copyright | copyright defines the copyright notice of the software/module
description | description supplies a short description of the software/module
version | version defines the version of the software/module. Since this is an integer coding use 100*main version + minor version as the version
id | id defines an unique id for the software/module (should such an id exist)
source <complexType name="softwareType">
<sequence>
<element name="depends_on" type="invoice:dependsOnType" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<attribute name="name" type="invoice:stringType1_50" use="required"/>
<attribute name="copyright" type="invoice:stringType1_50"/>
<attribute name="description" type="invoice:stringType1_50"/>
<attribute name="version" type="unsignedInt"/>
<attribute name="id" type="unsignedInt" default="0"/>
</complexType>


 complexType telecomAddressType
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:phone invoice:fax
used by
elements personType/telecom companyType/telecom
source <complexType name="telecomAddressType">
<sequence>
<element name="phone" type="invoice:stringType1_25" maxOccurs="3"/>
<element name="fax" type="invoice:stringType1_25" minOccurs="0" maxOccurs="3"/>
</sequence>
</complexType>


 complexType transportType
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:via
used by
element processingType/transport
attributes parameters
Name | Type | Use | Default | Fixed
from | invoice:eanPartyType | required |  |
to | invoice:eanPartyType | required |  |
attributes annotations
Name | Notes
from | from is the EAN party that initially sent the infoset to the first intermediate Note, that the private certificate of this EAN party is used for the optional signature as outlined in the subchapter Purpose/Signature.
to | to is the EAN party that eventually receives the infoset from the last intermediate. Note, that the public certificate of this EAN party is used for the optional encryption as outlined in the subchapter Purpose/Encryption.
source <complexType name="transportType">
<sequence>
<element name="via" maxOccurs="unbounded">
<complexType>
<attribute name="via" type="invoice:eanPartyType" use="required"/>
<attribute name="sequence_id" type="unsignedShort" use="required"/>
</complexType>
</element>
</sequence>
<attribute name="from" type="invoice:eanPartyType" use="required"/>
<attribute name="to" type="invoice:eanPartyType" use="required"/>
</complexType>


 complexType treatmentType
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:diagnosis invoice:xtra_hospital
used by
element bodyType/treatment
attributes parameters
Name | Type | Use | Default | Fixed
date_begin | dateTime | required |  |
date_end | dateTime | required |  |
canton | derived by: NMTOKEN | required |  |
reason | derived by: NMTOKEN | required |  |
attributes annotations
Name | Notes
date_begin | date_begin is the start of the treatment Note, that the date of every service must be greater or equal date_begin otherwise it is a content error
date_end | date_end is the end of the treatment Note, that the date of every service must be less or equal date_end otherwise it is a content error
canton | canton is Swiss canton or a country close to the border in which the treatment took place encoded by a terminal set of tokens. Please note that the countries except for Liechtenstein are code by a 1-character abbreviation due to name collisions with the canton abbreviations. Liechtenstein is coded by "LI" as in the prior standards.
reason | reason is the primary reason the treatment took place encoded by a terminal set of tokens
attributes enumerations
Name | Extension | Base | Value | Annotations
canton |  | NMTOKEN | AG | the canton is AG - Aargau
canton |  | NMTOKEN | AI | the canton is AI - Appenzell Innerrhoden
canton |  | NMTOKEN | AR | the canton is AR - Appenzell Ausserrhoden
canton |  | NMTOKEN | BE | the canton is BE - Bern
canton |  | NMTOKEN | BL | the canton is BL - Baselland
canton |  | NMTOKEN | BS | the canton is BS - Basel
canton |  | NMTOKEN | FR | the canton is FR - Fribourg
canton |  | NMTOKEN | GE | the canton is GE - Geneva
canton |  | NMTOKEN | GL | the canton is GL - Glarus
canton |  | NMTOKEN | GR | the canton is GR - Graubünden
canton |  | NMTOKEN | JU | the canton is JU - Jura
canton |  | NMTOKEN | LU | the canton is LU - Lucerne
canton |  | NMTOKEN | NE | the canton is NE - Neuchâtel
canton |  | NMTOKEN | NW | the canton is NW - Nidwalden
canton |  | NMTOKEN | OW | the canton is OW - Obwalden
canton |  | NMTOKEN | SG | the canton is SG - St. Gallen
canton |  | NMTOKEN | SH | the canton is SH - Schaffhausen
canton |  | NMTOKEN | SO | the canton is SO - Solothurn
canton |  | NMTOKEN | SZ | the canton is SZ - Schwyz
canton |  | NMTOKEN | TI | the canton is TI - Ticino
canton |  | NMTOKEN | TG | the canton is TG - Thurgau
canton |  | NMTOKEN | UR | the canton is UR - Uri
canton |  | NMTOKEN | VD | the canton is VD - Vaud
canton |  | NMTOKEN | VS | the canton is VS - Valais
canton |  | NMTOKEN | ZG | the canton is ZG - Zug
canton |  | NMTOKEN | ZH | the canton is ZH - Zürich
canton |  | NMTOKEN | LI | the country is LI - Liechtenstein
canton |  | NMTOKEN | A | the country is A - Austria
canton |  | NMTOKEN | D | the country is D - Germany
canton |  | NMTOKEN | F | the country is F - France
canton |  | NMTOKEN | I | the country is I - Italy
reason |  | NMTOKEN | disease | the reason of treatment is a disease
reason |  | NMTOKEN | accident | the reason of treatment is an accident
reason |  | NMTOKEN | maternity | the reason of treatment is a maternity
reason |  | NMTOKEN | prevention | the reason of treatment is prevention
reason |  | NMTOKEN | birthdefect | the reason of treatment a birthdefect
reason |  | NMTOKEN | unknown | the reason of treatment is unknown (or something not mentioned above)
source <complexType name="treatmentType">
<sequence>
<element name="diagnosis" type="invoice:diagnosisType" minOccurs="0" maxOccurs="unbounded"/>
<element name="xtra_hospital" type="invoice:xtraHospitalType" minOccurs="0"/>
</sequence>
<attribute name="date_begin" type="dateTime" use="required"/>
<attribute name="date_end" type="dateTime" use="required"/>
<attribute name="canton" use="required">
<simpleType>
<restriction base="NMTOKEN">
<enumeration value="AG"/>
<enumeration value="AI"/>
<enumeration value="AR"/>
<enumeration value="BE"/>
<enumeration value="BL"/>
<enumeration value="BS"/>
<enumeration value="FR"/>
<enumeration value="GE"/>
<enumeration value="GL"/>
<enumeration value="GR"/>
<enumeration value="JU"/>
<enumeration value="LU"/>
<enumeration value="NE"/>
<enumeration value="NW"/>
<enumeration value="OW"/>
<enumeration value="SG"/>
<enumeration value="SH"/>
<enumeration value="SO"/>
<enumeration value="SZ"/>
<enumeration value="TI"/>
<enumeration value="TG"/>
<enumeration value="UR"/>
<enumeration value="VD"/>
<enumeration value="VS"/>
<enumeration value="ZG"/>
<enumeration value="ZH"/>
<enumeration value="LI"/>
<enumeration value="A"/>
<enumeration value="D"/>
<enumeration value="F"/>
<enumeration value="I"/>
</restriction>
</simpleType>
</attribute>
<attribute name="reason" use="required">
<simpleType>
<restriction base="NMTOKEN">
<enumeration value="disease"/>
<enumeration value="accident"/>
<enumeration value="maternity"/>
<enumeration value="prevention"/>
<enumeration value="birthdefect"/>
<enumeration value="unknown"/>
</restriction>
</simpleType>
</attribute>
</complexType>


 complexType uvgLawType
diagram
namespace http://www.forum-datenaustausch.ch/invoice
used by
element bodyType/uvg
attributes parameters
Name | Type | Use | Default | Fixed
insured_id | invoice:stringType1_35 |  |  |
case_id | invoice:stringType1_35 |  |  |
case_date | dateTime |  |  |
contract_number | invoice:stringType1_35 |  |  |
ssn | invoice:ssnPartyType |  |  |
attributes annotations
Name | Notes
insured_id | insured_id is the patient's identification number at the insurance (policy number),
case_id | case_id is the treatment/case identification given by the insurance (accident number)
case_date | case_date is the treatment/case date given by the insurance (accident date)
contract_number | contract_number is an individual contract number negotiated between provider and insurance regarding the accounting of medical services.
ssn ssn defines the social security number of the patient whereupon 3 distinguished styles are allowed:
  • the old 11 digit Swiss SSN ("AHV-Nummer") as defined by Federal Social Insurance Office
  • the new 13 digit Swiss SSN ("SV-Nummer") beginning with 756 as defined by Federal Social Insurance Office
  • the new 4-10 digit SSN of Liechtenstein ("AHV-Nummer") as defined by Liechtensteinische AHV-IV-FAK
Note, that the SSN is stored in the electronic flavor (digits only) whereas on any printed form it must be in its formatted print flavor as requested by the federal authorities.
source <complexType name="uvgLawType">
<attribute name="insured_id" type="invoice:stringType1_35"/>
<attribute name="case_id" type="invoice:stringType1_35"/>
<attribute name="case_date" type="dateTime"/>
<attribute name="contract_number" type="invoice:stringType1_35"/>
<attribute name="ssn" type="invoice:ssnPartyType"/>
</complexType>


 complexType validationResultType
diagram
namespace http://www.forum-datenaustausch.ch/invoice
used by
element validationType/validation_result
attributes parameters
Name | Type | Use | Default | Fixed
remark | invoice:stringType1_350 |  |  |
record_id | derived by: int |  |  |
cost_unit | invoice:stringType1_35 |  |  |
status | unsignedShort | required |  |
attributes annotations
Name | Notes
remark | remark is a textual remark/comment that qualifies the validation result
record_id | record_id is a reference to a service record (cf. record sequence numbering there) for which the current validation result applies. Of course, if the validation is not over a service but a more a global aspect, then record_id is absent
cost_unit | cost_unit qualifies the validation result as belonging to a certain cost unit. The meaning of that cost unit is known only by the validator party and the insurance
status | status is a integer status where status=0 means OK and status <> 0 means an error. The meaning of that error code is known only by the validator party and the insurance
source <complexType name="validationResultType">
<attribute name="remark" type="invoice:stringType1_350"/>
<attribute name="record_id">
<simpleType>
<restriction base="int">
<minInclusive value="1"/>
<maxInclusive value="999999999"/>
</restriction>
</simpleType>
</attribute>
<attribute name="cost_unit" type="invoice:stringType1_35"/>
<attribute name="status" type="unsignedShort" use="required"/>
</complexType>


 complexType validationsType
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:validation
used by
element processingType/validations
source <complexType name="validationsType">
<sequence>
<element name="validation" type="invoice:validationType" maxOccurs="unbounded"/>
</sequence>
</complexType>


 complexType validationType
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:validation_result
used by
element validationsType/validation
attributes parameters
Name | Type | Use | Default | Fixed
originator | invoice:stringType1_100 | required |  |
remark | invoice:stringType1_350 | required |  |
status | unsignedShort | required |  |
attributes annotations
Name | Notes
originator | originator is the validator party that performed the validation
remark | remark is a textual remark/comment that qualifies the overall validation
status | status is the overall integer status where status=0 means OK and status <> 0 means an error. The meaning of that error code is known only by the validator party and the insurance
source <complexType name="validationType">
<sequence>
<element name="validation_result" type="invoice:validationResultType" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<attribute name="originator" type="invoice:stringType1_100" use="required"/>
<attribute name="remark" type="invoice:stringType1_350" use="required"/>
<attribute name="status" type="unsignedShort" use="required"/>
</complexType>


 complexType vatRateType
diagram
namespace http://www.forum-datenaustausch.ch/invoice
used by
element vatType/vat_rate
attributes parameters
Name | Type | Use | Default | Fixed
vat_rate | derived by: double | required |  |
amount | double | required |  |
vat | double | required |  |
attributes annotations
Name | Notes
vat_rate | vat_rate is the applicable vat rate given as a percentage factor Note, that the vat rate 0% is a valid vat rate as well.
amount | amount is the sum over 2-digit precision service amounts for which the given vat rate is applicable. Note, that all amounts in this scheme are amounts that include the vat! Therefore
vat | vat is the calculated vat portion of the given amount using the vat rate as «(amount * vat_rate) / (100 + vat_rate)» where the used amount is in 2-digit precision and the result is rounded to 2 significant decimal places.
source <complexType name="vatRateType">
<attribute name="vat_rate" use="required">
<simpleType>
<restriction base="double">
<minInclusive value="0"/>
<maxInclusive value="100"/>
</restriction>
</simpleType>
</attribute>
<attribute name="amount" type="double" use="required"/>
<attribute name="vat" type="double" use="required"/>
</complexType>


 complexType vatType
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:vat_rate
used by
element balanceType/vat
attributes parameters
Name | Type | Use | Default | Fixed
vat_number | invoice:stringType1_15 |  |  |
vat | double | required |  |
attributes annotations
Name | Notes
vat_number vat_number is the individual vat number of the biller as given by the "Swiss Federal Tax Administration". Both forms the old 6-digit number as well as the new UID dependent number is allowed. However, the electronic layout of the number must be supplied as suggested by the federal administration. In the electronic layout all punctuation characters ('-' and '.') as well as the language dependent attribute in the new form ('MWST','IVA', 'TVA') are striped.
Consequently, the vat number must be expanded appropriately prior to be printed, e.g.
  • Old vat number: electronic layout 799000 is printed as 799.000
  • New vat number: electronic: CHE123456789 is printed as CHE-123.456.789 MWST (for german language!)

Of course, if the biller has not been assigned such a vat number leave the field empty.
vat | vat is the overall vat portion for the invoice/reminder accumulated over 2-digit precision individual vats.
source <complexType name="vatType">
<sequence>
<element name="vat_rate" type="invoice:vatRateType" maxOccurs="unbounded"/>
</sequence>
<attribute name="vat_number" type="invoice:stringType1_15"/>
<attribute name="vat" type="double" use="required"/>
</complexType>


 complexType vvgLawType
diagram
namespace http://www.forum-datenaustausch.ch/invoice
used by
element bodyType/vvg
attributes parameters
Name | Type | Use | Default | Fixed
insured_id | invoice:stringType1_35 |  |  |
case_id | invoice:stringType1_35 |  |  |
case_date | dateTime |  |  |
contract_number | invoice:stringType1_35 |  |  |
attributes annotations
Name | Notes
insured_id | insured_id is the patient's identification number at the insurance (policy number),
case_id | case_id is the treatment/case identification given by the insurance
case_date | case_date is the treatment/case date given by the insurance
contract_number | contract_number is an individual contract number negotiated between provider and insurance regarding the accounting of medical services ("Einzelvertragsnummer nach VVG").
source <complexType name="vvgLawType">
<attribute name="insured_id" type="invoice:stringType1_35"/>
<attribute name="case_id" type="invoice:stringType1_35"/>
<attribute name="case_date" type="dateTime"/>
<attribute name="contract_number" type="invoice:stringType1_35"/>
</complexType>


 complexType xenc:AgreementMethodType
diagram
namespace | http://www.w3.org/2001/04/xmlenc#
properties
mixed true
children | xenc:KA-Nonce xenc:OriginatorKeyInfo xenc:RecipientKeyInfo
used by
element xenc:AgreementMethod
attributes parameters
Name | Type | Use | Default | Fixed
Algorithm | anyURI | required |  |
source <complexType name="AgreementMethodType" mixed="true">
<sequence>
<element name="KA-Nonce" type="base64Binary" minOccurs="0"/>
<!-- <element ref="ds:DigestMethod" minOccurs="0"/> -->
<any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
<element name="OriginatorKeyInfo" type="ds:KeyInfoType" minOccurs="0"/>
<element name="RecipientKeyInfo" type="ds:KeyInfoType" minOccurs="0"/>
</sequence>
<attribute name="Algorithm" type="anyURI" use="required"/>
</complexType>


 element xenc:AgreementMethodType/KA-Nonce
Annotation
diagram
namespace | http://www.w3.org/2001/04/xmlenc#
type | base64Binary
properties
isRef | 0
minOcc | 0
maxOcc | 1
content | simple
source | <element name="KA-Nonce" type="base64Binary" minOccurs="0"/>


 element xenc:AgreementMethodType/OriginatorKeyInfo
Annotation
diagram
namespace | http://www.w3.org/2001/04/xmlenc#
type | ds:KeyInfoType
properties
isRef | 0
minOcc | 0
maxOcc | 1
content | complex
mixed | true
children | ds:KeyName ds:KeyValue ds:RetrievalMethod ds:X509Data ds:PGPData ds:SPKIData ds:MgmtData
attributes parameters
Name | Type | Use | Default | Fixed
Id | ID | optional |  |
source | <element name="OriginatorKeyInfo" type="ds:KeyInfoType" minOccurs="0"/>


 element xenc:AgreementMethodType/RecipientKeyInfo
Annotation
diagram
namespace | http://www.w3.org/2001/04/xmlenc#
type | ds:KeyInfoType
properties
isRef | 0
minOcc | 0
maxOcc | 1
content | complex
mixed | true
children | ds:KeyName ds:KeyValue ds:RetrievalMethod ds:X509Data ds:PGPData ds:SPKIData ds:MgmtData
attributes parameters
Name | Type | Use | Default | Fixed
Id | ID | optional |  |
source | <element name="RecipientKeyInfo" type="ds:KeyInfoType" minOccurs="0"/>


 complexType xenc:CipherDataType
diagram
namespace | http://www.w3.org/2001/04/xmlenc#
children | xenc:CipherValue xenc:CipherReference
used by
element xenc:CipherData
source <complexType name="CipherDataType">
<choice>
<element name="CipherValue" type="base64Binary"/>
<element ref="xenc:CipherReference"/>
</choice>
</complexType>


 complexType xenc:CipherReferenceType
diagram
namespace | http://www.w3.org/2001/04/xmlenc#
children | xenc:Transforms
used by
element xenc:CipherReference
attributes parameters
Name | Type | Use | Default | Fixed
URI | anyURI | required |  |
source <complexType name="CipherReferenceType">
<choice>
<element name="Transforms" type="xenc:TransformsType" minOccurs="0"/>
</choice>
<attribute name="URI" type="anyURI" use="required"/>
</complexType>


 complexType xenc:EncryptedDataType
diagram
namespace | http://www.w3.org/2001/04/xmlenc#
type | extension of xenc:EncryptedType
properties
base xenc:EncryptedType
children | xenc:EncryptionMethod ds:KeyInfo xenc:CipherData xenc:EncryptionProperties
used by
element xenc:EncryptedData
attributes parameters
Name | Type | Use | Default | Fixed
Id | ID | optional |  |
Type | anyURI | optional |  |
MimeType | string | optional |  |
Encoding | anyURI | optional |  |
source <complexType name="EncryptedDataType">
<complexContent>
<extension base="xenc:EncryptedType"/>
</complexContent>
</complexType>


 complexType xenc:EncryptedKeyType
diagram
namespace | http://www.w3.org/2001/04/xmlenc#
type | extension of xenc:EncryptedType
properties
base xenc:EncryptedType
children | xenc:EncryptionMethod ds:KeyInfo xenc:CipherData xenc:EncryptionProperties xenc:ReferenceList xenc:CarriedKeyName
used by
element xenc:EncryptedKey
attributes parameters
Name | Type | Use | Default | Fixed
Id | ID | optional |  |
Type | anyURI | optional |  |
MimeType | string | optional |  |
Encoding | anyURI | optional |  |
Recipient | string | optional |  |
source <complexType name="EncryptedKeyType">
<complexContent>
<extension base="xenc:EncryptedType">
<sequence>
<element ref="xenc:ReferenceList" minOccurs="0"/>
<element name="CarriedKeyName" type="string" minOccurs="0"/>
</sequence>
<attribute name="Recipient" type="string" use="optional"/>
</extension>
</complexContent>
</complexType>


 element xenc:ReferenceList
Annotation
diagram
namespace | http://www.w3.org/2001/04/xmlenc#
properties
content complex
children | xenc:DataReference xenc:KeyReference
used by
complexType xenc:EncryptedKeyType
source <element name="ReferenceList">
<complexType>
<choice maxOccurs="unbounded">
<element name="DataReference" type="xenc:ReferenceType"/>
<element name="KeyReference" type="xenc:ReferenceType"/>
</choice>
</complexType>
</element>


 element xenc:EncryptedKeyType/CarriedKeyName
Annotation
diagram
namespace | http://www.w3.org/2001/04/xmlenc#
type | string
properties
isRef | 0
minOcc | 0
maxOcc | 1
content | simple
source | <element name="CarriedKeyName" type="string" minOccurs="0"/>


 complexType xenc:EncryptedType
diagram
namespace | http://www.w3.org/2001/04/xmlenc#
properties
abstract true
children | xenc:EncryptionMethod ds:KeyInfo xenc:CipherData xenc:EncryptionProperties
used by
complexTypes xenc:EncryptedDataType xenc:EncryptedKeyType
attributes parameters
Name | Type | Use | Default | Fixed
Id | ID | optional |  |
Type | anyURI | optional |  |
MimeType | string | optional |  |
Encoding | anyURI | optional |  |
source <complexType name="EncryptedType" abstract="true">
<sequence>
<element name="EncryptionMethod" type="xenc:EncryptionMethodType" minOccurs="0"/>
<element ref="ds:KeyInfo" minOccurs="0"/>
<element ref="xenc:CipherData"/>
<element ref="xenc:EncryptionProperties" minOccurs="0"/>
</sequence>
<attribute name="Id" type="ID" use="optional"/>
<attribute name="Type" type="anyURI" use="optional"/>
<attribute name="MimeType" type="string" use="optional"/>
<attribute name="Encoding" type="anyURI" use="optional"/>
</complexType>


 complexType xenc:EncryptionMethodType
diagram
namespace | http://www.w3.org/2001/04/xmlenc#
properties
mixed true
children | xenc:KeySize xenc:OAEPparams
used by
element xenc:EncryptedType/EncryptionMethod
attributes parameters
Name | Type | Use | Default | Fixed
Algorithm | anyURI | required |  |
source <complexType name="EncryptionMethodType" mixed="true">
<sequence>
<element name="KeySize" type="xenc:KeySizeType" minOccurs="0"/>
<element name="OAEPparams" type="base64Binary" minOccurs="0"/>
<any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<attribute name="Algorithm" type="anyURI" use="required"/>
</complexType>


 complexType xenc:EncryptionPropertiesType
diagram
namespace | http://www.w3.org/2001/04/xmlenc#
children | xenc:EncryptionProperty
used by
element xenc:EncryptionProperties
attributes parameters
Name | Type | Use | Default | Fixed
Id | ID | optional |  |
source <complexType name="EncryptionPropertiesType">
<sequence>
<element ref="xenc:EncryptionProperty" maxOccurs="unbounded"/>
</sequence>
<attribute name="Id" type="ID" use="optional"/>
</complexType>


 complexType xenc:EncryptionPropertyType
diagram
namespace http://www.w3.org/2001/04/xmlenc#
properties
mixed true
used by
element xenc:EncryptionProperty
attributes parameters
Name | Type | Use | Default | Fixed
Target | anyURI | optional |  |
Id | ID | optional |  |
source <complexType name="EncryptionPropertyType" mixed="true">
<choice maxOccurs="unbounded">
<any namespace="##other" processContents="lax"/>
</choice>
<attribute name="Target" type="anyURI" use="optional"/>
<attribute name="Id" type="ID" use="optional"/>
<anyAttribute namespace="http://www.w3.org/XML/1998/namespace"/>
</complexType>


 complexType xenc:ReferenceType
diagram
namespace http://www.w3.org/2001/04/xmlenc#
used by
elements xenc:ReferenceList/DataReference xenc:ReferenceList/KeyReference
attributes parameters
Name | Type | Use | Default | Fixed
URI | anyURI | required |  |
source <complexType name="ReferenceType">
<sequence>
<any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<attribute name="URI" type="anyURI" use="required"/>
</complexType>


 complexType xenc:TransformsType
diagram
namespace | http://www.w3.org/2001/04/xmlenc#
children | ds:Transform
used by
element xenc:CipherReferenceType/Transforms
source <complexType name="TransformsType">
<sequence>
<element ref="ds:Transform" maxOccurs="unbounded"/>
</sequence>
</complexType>


 complexType xtraAmbulatoryType
diagram
namespace http://www.forum-datenaustausch.ch/invoice
used by
element xtraHospitalType/ambulatory
attributes parameters
Name | Type | Use | Default | Fixed
hospitalization_type | derived by: NMTOKEN |  |  |
hospitalization_mode | derived by: NMTOKEN |  |  |
class | derived by: NMTOKEN |  |  |
section_major | invoice:stringType1_6 |  |  |
attributes annotations
Name | Notes
hospitalization_type | hospitalization_type is the type of hospitalization encoded by a terminal set of tokens
hospitalization_mode | hospitalization_mode is the mode of hospitalization encoded by a terminal set of tokens
class | hospitalization class is the class of insurance that covers the patient's stay encoded by a terminal set of tokens
section_major | section_major is the main section code (BfS section code) of the treatment as defined by Swiss Federal Statistical Office
attributes enumerations
Name | Extension | Base | Value | Annotations
class |  | NMTOKEN | private | the class of insurance is private (1st class insurance coverage)
class |  | NMTOKEN | semi_private | the class of insurance is semi_private (2nd class insurance coverage)
class |  | NMTOKEN | general | the class of insurance is general (3rd class insurance coverage)
class |  | NMTOKEN | hospital_comfort | the class of insurance is hospital_comfort ()
class |  | NMTOKEN | md_free_choice | the class of insurance is md_free_choice ("Freie Arztwahl")
hospitalization_mode |  | NMTOKEN | cantonal | the mode of hospitalization is cantonal - patient's domicile is in the treatment canton)
hospitalization_mode |  | NMTOKEN | noncantonal_indicated | the mode of hospitalization is noncantonal_indicated - patient's domicile is not in the treatment canton, but treatment is indicated
hospitalization_mode |  | NMTOKEN | noncantonal_nonindicated | the mode of hospitalization is noncantonal_nonindicated - patient's domicile is not in the treatment canton and treatment is not indicated
hospitalization_type |  | NMTOKEN | regular | the type of hospitalization is regular ("a normal and planned hospitalization")
hospitalization_type |  | NMTOKEN | emergency | the type of hospitalization is emergency ("hospitalization due to an emergency")
hospitalization_type |  | NMTOKEN | welfare | the type of hospitalization is welfare ("Fürsorglicher Freiheitsentzug")
source <complexType name="xtraAmbulatoryType">
<attribute name="hospitalization_type">
<simpleType>
<restriction base="NMTOKEN">
<enumeration value="regular"/>
<enumeration value="emergency"/>
<enumeration value="welfare"/>
</restriction>
</simpleType>
</attribute>
<attribute name="hospitalization_mode">
<simpleType>
<restriction base="NMTOKEN">
<enumeration value="cantonal"/>
<enumeration value="noncantonal_indicated"/>
<enumeration value="noncantonal_nonindicated"/>
</restriction>
</simpleType>
</attribute>
<attribute name="class">
<simpleType>
<restriction base="NMTOKEN">
<enumeration value="private"/>
<enumeration value="semi_private"/>
<enumeration value="general"/>
<enumeration value="hospital_comfort"/>
<enumeration value="md_free_choice"/>
</restriction>
</simpleType>
</attribute>
<attribute name="section_major" type="invoice:stringType1_6"/>
</complexType>


 complexType xtraHospitalType
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:ambulatory invoice:stationary
used by
element treatmentType/xtra_hospital
source <complexType name="xtraHospitalType">
<choice>
<element name="ambulatory" type="invoice:xtraAmbulatoryType"/>
<element name="stationary" type="invoice:xtraStationaryType"/>
</choice>
</complexType>


 complexType xtraStationaryType
diagram
namespace http://www.forum-datenaustausch.ch/invoice
used by
element xtraHospitalType/stationary
attributes parameters
Name | Type | Use | Default | Fixed
hospitalization_date | dateTime | required |  |
treatment_days | duration | required |  |
hospitalization_type | derived by: NMTOKEN |  | regular |
hospitalization_mode | derived by: NMTOKEN |  | cantonal |
class | derived by: NMTOKEN |  | general |
section_major | invoice:stringType1_6 |  |  |
has_expense_loading | boolean |  | true |
admission_type | derived by: NMTOKEN | required |  |
discharge_type | derived by: NMTOKEN | required |  |
attributes annotations
Name | Notes
hospitalization_date hospitalization_date is the date and time of the hospitalization.
Note, that this date must be less or equal the begin date of the treatment period
treatment_days treatment_days is the number of treatment days within the given treatment period.
The calculation of these treatment days is dependent on whether SwissDRG is used nor not!
The treatment days are calculated as
  • None-SwissDRG: «(treatment@date_end - treatment@date_begin + 1 - vacation_days)»
  • SwissDRG: «(treatment@date_end - treatment@date_begin - vacation_days)»
where vacation_days is the number of vacation days (the leave days when the patient was not in the hospital for treatment).

Note, that treatment_days is identical to the "length of stay" notion of a DRG service position (either APDRG or SwissDRG)

hospitalization_type | hospitalization_type is the type of hospitalization encoded by a terminal set of tokens
hospitalization_mode | hospitalization_mode is the mode of hospitalization encoded by a terminal set of tokens
class | hospitalization class is the class of insurance that covers the patient's stay encoded by a terminal set of tokens
section_major | section_major is the main section code (BfS section code) of the treatment as defined by Swiss Federal Statistical Office
has_expense_loading | has_expense_loading is a Boolean value if there is an expense loading by the patient ("Spitalkostenbeitrag")
admission_type | admission_type is the reason for the patient's admission encoded by a terminal set of tokens as defined in the DRG grouper.
discharge_type | discharge_type is the reason for the patient's discharge encoded by a terminal set of tokens as defined in the DRG grouper.
attributes enumerations
Name | Extension | Base | Value | Annotations
admission_type |  | NMTOKEN | normal | the admission type is normal - the patient's admission is normal
admission_type |  | NMTOKEN | relocated | the admission type is relocated - the patient was relocated from another clinic/hospital
admission_type |  | NMTOKEN | unknown | the admission type is unknown - the reason for the admission is not known
class |  | NMTOKEN | private | the class of insurance is private (1st class insurance coverage)
class |  | NMTOKEN | semi_private | the class of insurance is semi_private (2nd class insurance coverage)
class |  | NMTOKEN | general | the class of insurance is general (3rd class insurance coverage)
class |  | NMTOKEN | hospital_comfort | the class of insurance is hospital_comfort ()
class |  | NMTOKEN | md_free_choice | the class of insurance is md_free_choice ("Freie Arztwahl")
discharge_type |  | NMTOKEN | normal | the discharge type is normal - the patient was discharged normally
discharge_type |  | NMTOKEN | relocated | the discharge type is relocated - the patient was discharged to another clinic/hospital
discharge_type |  | NMTOKEN | deceased | the discharge type is deceased - the patient passed away
discharge_type |  | NMTOKEN | aborted | the discharge type is aborted - the discharge was by the patient's own decision and against medical advice
discharge_type |  | NMTOKEN | unknown | the unknown type is unknown - the reason for the discharge is not known
hospitalization_mode |  | NMTOKEN | cantonal | the mode of hospitalization is cantonal - patient's domicile is in the treatment canton)
hospitalization_mode |  | NMTOKEN | noncantonal_indicated | the mode of hospitalization is noncantonal_indicated - patient's domicile is not in the treatment canton, but treatment is indicated
hospitalization_mode |  | NMTOKEN | noncantonal_nonindicated | the mode of hospitalization is noncantonal_nonindicated - patient's domicile is not in the treatment canton and treatment is not indicated
hospitalization_type |  | NMTOKEN | regular | the type of hospitalization is regular ("a normal and planned hospitalization")
hospitalization_type |  | NMTOKEN | emergency | the type of hospitalization is emergency ("hospitalization due to an emergency")
hospitalization_type |  | NMTOKEN | welfare | the type of hospitalization is welfare ("Fürsorglicher Freiheitsentzug")
source <complexType name="xtraStationaryType">
<attribute name="hospitalization_date" type="dateTime" use="required"/>
<attribute name="treatment_days" type="duration" use="required"/>
<attribute name="hospitalization_type" default="regular">
<simpleType>
<restriction base="NMTOKEN">
<enumeration value="regular"/>
<enumeration value="emergency"/>
<enumeration value="welfare"/>
</restriction>
</simpleType>
</attribute>
<attribute name="hospitalization_mode" default="cantonal">
<simpleType>
<restriction base="NMTOKEN">
<enumeration value="cantonal"/>
<enumeration value="noncantonal_indicated"/>
<enumeration value="noncantonal_nonindicated"/>
</restriction>
</simpleType>
</attribute>
<attribute name="class" default="general">
<simpleType>
<restriction base="NMTOKEN">
<enumeration value="private"/>
<enumeration value="semi_private"/>
<enumeration value="general"/>
<enumeration value="hospital_comfort"/>
<enumeration value="md_free_choice"/>
</restriction>
</simpleType>
</attribute>
<attribute name="section_major" type="invoice:stringType1_6"/>
<attribute name="has_expense_loading" type="boolean" default="true"/>
<attribute name="admission_type" use="required">
<simpleType>
<restriction base="NMTOKEN">
<enumeration value="normal"/>
<enumeration value="relocated"/>
<enumeration value="unknown"/>
</restriction>
</simpleType>
</attribute>
<attribute name="discharge_type" use="required">
<simpleType>
<restriction base="NMTOKEN">
<enumeration value="normal"/>
<enumeration value="relocated"/>
<enumeration value="deceased"/>
<enumeration value="aborted"/>
<enumeration value="unknown"/>
</restriction>
</simpleType>
</attribute>
</complexType>


 complexType zipType
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | extension of invoice:stringType1_9
properties
base invoice:stringType1_9
used by
element postalAddressType/zip
facets
minLength | 1
maxLength | 9
attributes parameters
Name | Type | Use | Default | Fixed
statecode | invoice:stringType1_9 |  |  |
countrycode | invoice:stringType1_3 |  | CH |
attributes annotations
Name | Notes
statecode | statecode is an optional code for a state (e.g. the canton designator in Switzerland or the state in USA)
countrycode | countrycode is the ISO designator of the country ("CH" is the default value)
Extensions
Annotation | Base
Definition for the zip container (a subcontainer of an address definition) giving the zip code | invoice:stringType1_9
source <complexType name="zipType">
<simpleContent>
<extension base="invoice:stringType1_9">
<attribute name="statecode" type="invoice:stringType1_9"/>
<attribute name="countrycode" type="invoice:stringType1_3" default="CH"/>
</extension>
</simpleContent>
</complexType>


 element ds:Manifest
Annotation
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
type | ds:ManifestType
properties
content complex
children | ds:Reference
attributes parameters
Name | Type | Use | Default | Fixed
Id | ID | optional |  |
source | <element name="Manifest" type="ds:ManifestType"/>


 element ds:SignatureProperties
Annotation
diagram
namespace | http://www.w3.org/2000/09/xmldsig#
type | ds:SignaturePropertiesType
properties
content complex
children | ds:SignatureProperty
attributes parameters
Name | Type | Use | Default | Fixed
Id | ID | optional |  |
source | <element name="SignatureProperties" type="ds:SignaturePropertiesType"/>


 element xenc:AgreementMethod
Annotation
diagram
namespace | http://www.w3.org/2001/04/xmlenc#
type | xenc:AgreementMethodType
properties
content | complex
mixed | true
children | xenc:KA-Nonce xenc:OriginatorKeyInfo xenc:RecipientKeyInfo
attributes parameters
Name | Type | Use | Default | Fixed
Algorithm | anyURI | required |  |
source | <element name="AgreementMethod" type="xenc:AgreementMethodType"/>


 element xenc:EncryptedKey
Annotation
diagram
namespace | http://www.w3.org/2001/04/xmlenc#
type | xenc:EncryptedKeyType
properties
content complex
children | xenc:EncryptionMethod ds:KeyInfo xenc:CipherData xenc:EncryptionProperties xenc:ReferenceList xenc:CarriedKeyName
attributes parameters
Name | Type | Use | Default | Fixed
Id | ID | optional |  |
Type | anyURI | optional |  |
MimeType | string | optional |  |
Encoding | anyURI | optional |  |
Recipient | string | optional |  |
source | <element name="EncryptedKey" type="xenc:EncryptedKeyType"/>


 element xenc:ReferenceList/DataReference
Annotation
diagram
namespace | http://www.w3.org/2001/04/xmlenc#
type | xenc:ReferenceType
properties
isRef | 0
content | complex
attributes parameters
Name | Type | Use | Default | Fixed
URI | anyURI | required |  |
source | <element name="DataReference" type="xenc:ReferenceType"/>


 element xenc:ReferenceList/KeyReference
Annotation
diagram
namespace | http://www.w3.org/2001/04/xmlenc#
type | xenc:ReferenceType
properties
isRef | 0
content | complex
attributes parameters
Name | Type | Use | Default | Fixed
URI | anyURI | required |  |
source | <element name="KeyReference" type="xenc:ReferenceType"/>


 simpleType ds:CryptoBinary
namespace | http://www.w3.org/2000/09/xmldsig#
type | base64Binary
used by
elements ds:RSAKeyValueType/Exponent ds:DSAKeyValueType/G ds:DSAKeyValueType/J ds:RSAKeyValueType/Modulus ds:DSAKeyValueType/P ds:DSAKeyValueType/PgenCounter ds:DSAKeyValueType/Q ds:DSAKeyValueType/Seed ds:DSAKeyValueType/Y
source <simpleType name="CryptoBinary">
<restriction base="base64Binary"/>
</simpleType>


 simpleType ds:DigestValueType
namespace | http://www.w3.org/2000/09/xmldsig#
type | base64Binary
used by
element ds:DigestValue
source <simpleType name="DigestValueType">
<restriction base="base64Binary"/>
</simpleType>


 simpleType ds:HMACOutputLengthType
namespace | http://www.w3.org/2000/09/xmldsig#
type | integer
used by
element ds:SignatureMethodType/HMACOutputLength
source <simpleType name="HMACOutputLengthType">
<restriction base="integer"/>
</simpleType>


 simpleType eanPartyType
namespace | http://www.forum-datenaustausch.ch/invoice
type | restriction of string
used by
simpleType | unionPartyType
attributes | billerAddressType/@ean_party providerAddressType/@ean_party insuranceAddressType/@ean_party referrerAddressType/@ean_party employerAddressType/@ean_party transportType/@from transportType/@to transportType/via/@via
facets
pattern ([0-9]{13})
source <simpleType name="eanPartyType">
<restriction base="string">
<pattern value="([0-9]{13})"/>
</restriction>
</simpleType>


 simpleType nifPartyType
namespace | http://www.forum-datenaustausch.ch/invoice
type | restriction of string
used by
attribute ivgLawType/@nif
facets
pattern [0-9]{1,7}
source <simpleType name="nifPartyType">
<restriction base="string">
<pattern value="[0-9]{1,7}"/>
</restriction>
</simpleType>


 simpleType nonEmptyStringType
namespace | http://www.forum-datenaustausch.ch/invoice
type | restriction of string
used by
attributes documentType/@filename documentType/@mimeType
facets
minLength 1
source <simpleType name="nonEmptyStringType">
<restriction base="string">
<minLength value="1"/>
</restriction>
</simpleType>


 simpleType ssnPartyType
namespace | http://www.forum-datenaustausch.ch/invoice
type | restriction of string
used by
attributes patientAddressType/@ssn uvgLawType/@ssn ivgLawType/@ssn mvgLawType/@ssn
facets
pattern [0-9]{4,10}|[1-9][0-9]{10}|756[0-9]{10}
source <simpleType name="ssnPartyType">
<restriction base="string">
<pattern value="[0-9]{4,10}|[1-9][0-9]{10}|756[0-9]{10}"/>
</restriction>
</simpleType>


 simpleType stringType0_350
namespace | http://www.forum-datenaustausch.ch/invoice
type | restriction of string
used by
complexType diagnosisType
facets
maxLength 350
source <simpleType name="stringType0_350">
<restriction base="string">
<maxLength value="350"/>
</restriction>
</simpleType>


 simpleType stringType1_10
namespace | http://www.forum-datenaustausch.ch/invoice
type | restriction of string
facets
minLength | 1
maxLength | 10
source <simpleType name="stringType1_10">
<restriction base="string">
<minLength value="1"/>
<maxLength value="10"/>
</restriction>
</simpleType>


 simpleType stringType1_100
namespace | http://www.forum-datenaustausch.ch/invoice
type | restriction of string
used by
attributes validationType/@originator processingType/demand/@tc_token
facets
minLength | 1
maxLength | 100
source <simpleType name="stringType1_100">
<restriction base="string">
<minLength value="1"/>
<maxLength value="100"/>
</restriction>
</simpleType>


 simpleType stringType1_12
namespace | http://www.forum-datenaustausch.ch/invoice
type | restriction of string
used by
attribute diagnosisType/@code
facets
minLength | 1
maxLength | 12
source <simpleType name="stringType1_12">
<restriction base="string">
<minLength value="1"/>
<maxLength value="12"/>
</restriction>
</simpleType>


 simpleType stringType1_15
namespace | http://www.forum-datenaustausch.ch/invoice
type | restriction of string
used by
attribute vatType/@vat_number
facets
minLength | 1
maxLength | 15
source <simpleType name="stringType1_15">
<restriction base="string">
<minLength value="1"/>
<maxLength value="15"/>
</restriction>
</simpleType>


 simpleType stringType1_25
namespace | http://www.forum-datenaustausch.ch/invoice
type | restriction of string
used by
elements telecomAddressType/fax telecomAddressType/phone
facets
minLength | 1
maxLength | 25
source <simpleType name="stringType1_25">
<restriction base="string">
<minLength value="1"/>
<maxLength value="25"/>
</restriction>
</simpleType>


 simpleType stringType1_3
namespace | http://www.forum-datenaustausch.ch/invoice
type | restriction of string
used by
attribute zipType/@countrycode
facets
minLength | 1
maxLength | 3
source <simpleType name="stringType1_3">
<restriction base="string">
<minLength value="1"/>
<maxLength value="3"/>
</restriction>
</simpleType>


 simpleType stringType1_30
namespace | http://www.forum-datenaustausch.ch/invoice
type | restriction of string
used by
attributes recordTarmedType/@code recordServiceType/@code recordTarmedType/@ref_code recordServiceType/@ref_code
facets
minLength | 1
maxLength | 30
source <simpleType name="stringType1_30">
<restriction base="string">
<minLength value="1"/>
<maxLength value="30"/>
</restriction>
</simpleType>


 simpleType stringType1_35
namespace | http://www.forum-datenaustausch.ch/invoice
type | restriction of string
used by
elements | postalAddressType/city companyType/companyname companyType/department personType/familyname personType/givenname esrRedType/payment_reason postalAddressType/pobox postalAddressType/street personType/subaddressing companyType/subaddressing
attributes | patientAddressType/card/@card_id orgLawType/@case_id mvgLawType/@case_id uvgLawType/@case_id vvgLawType/@case_id kvgLawType/@case_id kvgLawType/@contract_number orgLawType/@contract_number vvgLawType/@contract_number uvgLawType/@contract_number ivgLawType/@contract_number mvgLawType/@contract_number validationResultType/@cost_unit processingType/demand/@insurance_demand_id kvgLawType/@insured_id vvgLawType/@insured_id uvgLawType/@insured_id mvgLawType/@insured_id orgLawType/@insured_id employerAddressType/@reg_number creditType/@request_id invoiceType/@request_id reminderType/@request_id invoiceType/@request_patient_id bodyType/@role_title personType/@salutation personType/@title patientAddressType/card/@validation_id patientAddressType/card/@validation_server
facets
minLength | 1
maxLength | 35
source <simpleType name="stringType1_35">
<restriction base="string">
<minLength value="1"/>
<maxLength value="35"/>
</restriction>
</simpleType>


 simpleType stringType1_350
namespace | http://www.forum-datenaustausch.ch/invoice
type | restriction of string
used by
element | bodyType/remark
attributes | recordTarmedType/@name recordServiceType/@name recordTarmedType/@remark recordServiceType/@remark validationType/@remark validationResultType/@remark billerAddressType/@specialty providerAddressType/@specialty referrerAddressType/@specialty
facets
minLength | 1
maxLength | 350
source <simpleType name="stringType1_350">
<restriction base="string">
<minLength value="1"/>
<maxLength value="350"/>
</restriction>
</simpleType>


 simpleType stringType1_50
namespace | http://www.forum-datenaustausch.ch/invoice
type | restriction of string
used by
attributes softwareType/@copyright dependsOnType/@copyright softwareType/@description dependsOnType/@description softwareType/@name dependsOnType/@name
facets
minLength | 1
maxLength | 50
source <simpleType name="stringType1_50">
<restriction base="string">
<minLength value="1"/>
<maxLength value="50"/>
</restriction>
</simpleType>


 simpleType stringType1_6
namespace | http://www.forum-datenaustausch.ch/invoice
type | restriction of string
used by
attributes recordTarmedType/@section_code recordServiceType/@section_code xtraAmbulatoryType/@section_major xtraStationaryType/@section_major
facets
minLength | 1
maxLength | 6
source <simpleType name="stringType1_6">
<restriction base="string">
<minLength value="1"/>
<maxLength value="6"/>
</restriction>
</simpleType>


 simpleType stringType1_64
namespace | http://www.forum-datenaustausch.ch/invoice
type | restriction of string
facets
minLength | 1
maxLength | 64
source <simpleType name="stringType1_64">
<restriction base="string">
<minLength value="1"/>
<maxLength value="64"/>
</restriction>
</simpleType>


 simpleType stringType1_70
namespace | http://www.forum-datenaustausch.ch/invoice
type | restriction of string
used by
element onlineAddressType/email
facets
minLength | 1
maxLength | 70
source <simpleType name="stringType1_70">
<restriction base="string">
<minLength value="1"/>
<maxLength value="70"/>
</restriction>
</simpleType>


 simpleType stringType1_700
namespace | http://www.forum-datenaustausch.ch/invoice
type | restriction of string
used by
attribute reminderType/@reminder_text
facets
minLength | 1
maxLength | 700
source <simpleType name="stringType1_700">
<restriction base="string">
<minLength value="1"/>
<maxLength value="700"/>
</restriction>
</simpleType>


 simpleType stringType1_80
namespace | http://www.forum-datenaustausch.ch/invoice
type | restriction of string
facets
minLength | 1
maxLength | 80
source <simpleType name="stringType1_80">
<restriction base="string">
<minLength value="1"/>
<maxLength value="80"/>
</restriction>
</simpleType>


 simpleType stringType1_9
namespace | http://www.forum-datenaustausch.ch/invoice
type | restriction of string
used by
complexType | zipType
attribute | zipType/@statecode
facets
minLength | 1
maxLength | 9
source <simpleType name="stringType1_9">
<restriction base="string">
<minLength value="1"/>
<maxLength value="9"/>
</restriction>
</simpleType>


 simpleType unionPartyType
namespace | http://www.forum-datenaustausch.ch/invoice
type | union of ( invoice:eanPartyType , invoice:zsrPartyType )
used by
attributes recordTarmedType/@provider_id recordServiceType/@provider_id recordTarmedType/@responsible_id recordServiceType/@responsible_id
source <simpleType name="unionPartyType">
<union memberTypes="invoice:eanPartyType invoice:zsrPartyType"/>
</simpleType>


 simpleType zsrPartyType
namespace | http://www.forum-datenaustausch.ch/invoice
type | restriction of string
used by
simpleType | unionPartyType
attributes | billerAddressType/@zsr providerAddressType/@zsr referrerAddressType/@zsr
facets
pattern ([A-Z][0-9]{6})
source <simpleType name="zsrPartyType">
<restriction base="string">
<pattern value="([A-Z][0-9]{6})"/>
</restriction>
</simpleType>