XML Schema Browser - generalInvoiceResponse Version 500

Schema Documentation of
generalInvoiceResponse V500

produced by the standardization body
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 a standard at its meeting on 27th November 2024.

The standard becomes applicable on 1st January 2026.

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


Revision history of the documentation

Documentation of generalInvoiceResponse_500.xsd

Copyright (©) by Forum Datenaustausch, 01.12.2025
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 generalInvoiceResponse_500.xsd schema is not changed due to such an entry.
  • Revision 1 from 27.11.2024
  • Revision 2 from 01.12.2025 (clarification of some texts)


Revision history: Documentation revision 1

Documentation revision 1

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


Revision history: Documentation revision 2

Documentation revision 2

Rev. 2/01.12.2025: the following subparts of the documentation have been refined and/or added:

  • Preciser wording and clarification of treatment element.


Preface

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

Forum Datenaustausch

Der Verein "Forum Datenaustausch" (FoDa) fördert den effizienten und sicheren digitalen Datenaustausch zwischen Leistungserbringern und Kostenträgern im administrativen Gesundheitswesen. Er tut dies, indem er sich für folgende, grundsätzliche Ziele einsetzt:
  • Leistungserbringer und Kostenträger nutzen für die digitale Kommunikation untereinander die gleichen, gemeinsam entwickelten und festgelegten Standards.
  • Die digitale Kommunikation zwischen Leistungserbringern und Kostenträger ist sicher, verlässlich und Datenschutzkonform. Sie fördert die Effizienz der Prozesse und ist für alle Partner mit einem positiven Kosten-/Nutzenverhältnis verbunden.

Mitglieder des Forums sind nationale Verbände und Organisationen der Leistungserbringer und der Kostenträger, sowie Körperschaften und Anstalten des öffentlichen Rechts. Hier finden Sie die aktuelle Mitgliederliste.

Die vom Forum Datenaustausch freigegebenen Standards bzw. neue Standard-Versionen, wie die XML-Nachrichten zum elektronischen Datenaustausch, werden hier publiziert.
L'association "Forum Datenaustausch" (FoDa) promeut un échange de données numériques efficace et sûr entre les fournisseurs de prestations et les organismes payeurs dans le domaine administratif de la santé. Pour ce faire, elle s'engage en faveur des objectifs fondamentaux suivants:
  • Les fournisseurs de prestations et les organismes payeurs utilisent les mêmes normes, développées et définies en commun, pour la communication numérique entre eux.
  • La communication numérique entre les fournisseurs de prestations et les organismes payeurs est sûre, fiable et conforme à la protection des données. Elle favorise l'efficacité des processus et est liée à un rapport coûts/bénéfices positif pour tous les partenaires.

Les membres du forum sont des associations nationales et des organisations de prestataires de services et de payeurs, ainsi que des collectivités et des établissements de droit public. Vous trouverez ici la liste actuelle des membres.

Les normes validées par le forum ou les nouvelles versions de normes, comme les messages XML pour l'échange électronique de données, sont publiées ici.


Copyright (©) notice

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

Purpose of the schema file

This is the schema definition for a "General Invoice Response" process encoded in XML. The generalInvoiceResponse always constitutes an answer to a received "General Invoice Request". By design there can be [0,n] such responses but solely to the topmost object reference given in the request.
The subchapter Purpose/Anatomy of a response provides a broad overview about the building blocks of a response and the subchapter Purpose/Object reference provides an in-depth description of the concept of "topmost object reference".

The response is sent via 1 or more intermediates to the final recipient, who is the initial sender of the request by definition. The chain of intermediates from the request is reversed for the response.

There is no concept of a response reference object but only a UNIX timestamp of the generation of the response XML infoset for legal reasons. However, all reference objects of the request must be included in the response as these serve as a unique identification.

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


Conventions, terms, and definitions used

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

Anatomy of a response

The following figure shows the various building blocks, their meanings and dependencies on each other, that eventually form a response.
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 that is copied from the request
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, the processing block is outside the signature and encryption area and thus changeable.


Object reference,...

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 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!


Notes about the signature

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 GLN 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:response/invoice:payload)">
  • The signature algorithm is fixed to PKCS1 (RSA-SHA256) (RFC 2437: RSA Cryptography Specifications)
  • The digest algorithm is fixed to SHA-256
  • the used canonicalization algorithm must be http://www.w3.org/2010/xml-c14n2, 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/2010/xml-c14n2"/>
  <SignatureMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
  <Reference URI="#xpointer(/invoice:response/invoice:payload)">
   <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
   <DigestValue>...</DigestValue>
  </Reference>
 </SignedInfo>
 <SignatureValue>...</SignatureValue>
 <KeyInfo>
  <X509Data>
  <X509Certificate>...</X509Certificate>
  </X509Data>
 </KeyInfo>
</Signature>


Notes about the encryption

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 GLN 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 RSA-OAEP (including MGF1 and SHA1)
  • The block encryption algorithm is fixed to AES256-GCM
  • 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/2009/xmlenc11#aes256-gcm"/>
   <ds: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-oaep-mgf1p">
           <OAEPparams>...</OAEPparams>
         </EncryptionMethod>
         <ds:KeyInfo>
            <ds:KeyName>C=CH, S=ZH, L=Zurich, O=Health Insurance Company, OU=HI Manager App, serial=4E55FF58</ds:KeyName>
         </ds:KeyInfo>
         <CipherData>
            <CipherValue>...(asymmetrically encrypted key)...</CipherValue>
         </CipherData>
      </EncryptedKey>
   </ds:KeyInfo>
   <CipherData>
      <CipherValue>...(symmetrically encrypted content)...</CipherValue>
   </CipherData>
</EncryptedData>


Sequence of Sign & Crypt...

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

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:response 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 generalInvoiceResponse_500.xsd"
        language="de" modus="production" >
XML elements go here...

 </invoice:response>


Hierarchical list of used XSD definitions

Hierarchical list of used XSD definitions

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


element response

Annotation The response element is the root of the generalInvoiceResponse process.
The response is divided into 2 parts
  • the processing element supplies the necessary data for the transport process
  • the payload element supplies the response to the request invoice/reminder data
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:responseType
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
guid | invoice:guidType | required
attributes annotations
Name Notes
language language defines the used data language (for messages/errors etc.) encoded by a terminal set of ISO language specifiers.
  • de: the data language is german
  • fr: the data language is french
  • it: the data language is italian

The language used is copied from and thus defined by the request.
modus modus defines the operating modus encoded by a terminal set of tokens
  • production: the modus production (default value) is for normal processing
  • test: the modus test is for software developers to test the processing.

By definition there must not be any money flow!
guid the required guid (Globally Unique IDentifier) is an unique identifier for the current XML infoset defined as a 32 hex-digit string covered by the pattern [A-Fa-f0-9]{32}.
Please note that the generation of the guid must be in accordance with RFC 9562.
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.
source | <element name="response" type="invoice:responseType"/>


element responseType/processing

Annotation | The processing element is a container with transport instructions basically mirrored from the request.
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:processingType
properties
isRef | 0
content | complex
children | invoice:transport
source | <element name="processing" type="invoice:processingType"/>


element processingType/transport

Annotation The transport element defines the routing of the infoset.
In fact the meaning and the data is mirrored from the corresponding request thus the initial sender becomes the recipient and the initial recipient becomes the sender. Furthermore the chain of intermediates from the request is reversed and the infoset is sent to the first intermediate of the reversed list.
All the involved parties are defined by GLN as defined by RefData
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:glnPartyType | required
to | invoice:glnPartyType | required
attributes annotations
Name Notes
from from is the GLN party that initially sent the infoset to the first intermediate
In fact this is the mirrored to attribute from the request.
Note, that the private certificate of this GLN party is used for the optional signature as outlined in the subchapter Purpose/Signature.
to to is the GLN party that eventually receives the infoset from the last intermediate.
In fact this is the mirrored from attribute from the request.
Note, that the public certificate of this GLN 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 send the infoset to the next intermediate in the mirrored list of intermediates or eventually deliver the infoset to the recipient (the sender of the request).
diagram
namespace http://www.forum-datenaustausch.ch/invoice
properties
isRef | 0
minOcc | 0
maxOcc | unbounded
content | complex
attributes parameters
Name | Type | Use | Default | Fixed
via | invoice:glnPartyType | required
sequence_id | unsignedShort | required
attributes annotations
Name | Notes
via | via is the GLN 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 the mirrored chain of intermediate hops.
source <element name="via" minOccurs="0" maxOccurs="unbounded">
<complexType>
<attribute name="via" type="invoice:glnPartyType" use="required"/>
<attribute name="sequence_id" type="unsignedShort" use="required"/>
</complexType>
</element>


element responseType/payload

Annotation | The payload element supplies the response to the request invoice/reminder data. 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
request_type | derived by: NMTOKEN | invoice
request_subtype | derived by: NMTOKEN | normal
response_timestamp | derived by: unsignedLong | required
attributes annotations
Name | Notes
request_type request_type defines the principle type of request encoded by a terminal set of tokens
  • invoice: the request is of type invoice
  • reminder: the request is of type reminder
This attribute is copied from the received request.
request_subtype request_subtype specifies the XML infoset with respect to its modification from the standard data space. Such a modification can be seen as a request variation, subsuming a specific data set, where the set of discrete subtypes is encoded by a terminal set of tokens.
  • normal: normal defines the standard (normal) XML infoset describing an ordinary invoice/reminder
  • copy: copy qualifies the XML infoset as the exact copy of a previously defined XML infoset except for the copy flag.
  • refund: refund acts on a normal XML infoset -notably sent to and paid by the health care insurance- by setting
    • the quantity = 0 of all correctly invoiced services
    • the quantity = negated (multiplied by -1) of all invoiced services that should be refunded to the health care insurance
    • the topmost object reference is the one from the normal XML infoset

    Consequently, the invoice amount becomes negative and its value defines the size of the planned refund towards the insurance company.
    If the insurance company accepts the credit note, a response with a reimbursement element (defining the necessary payment parameters) is returned to the biller.

  • storno: storno acts on a prior defined normal XML infoset by negate all quantities in order to cancel the XML request defined by the topmost reference object as a whole.
    By definition the storno of an invoice/reminder is thus the same as the original XML infoset, but altered by
    • a negated quantity (multiplied by -1) of all original services
    • a negated amount_prepaid and amount_reminder (multiplied by -1)
    This mechanism automatically produces negative amounts.

    If the storno acts on a already paid invoice/reminder, then the health care insurance sends a response with a reimbursement element (defining the necessary payment parameters) to the biller.

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

This attribute is copied from the received request
response_timestamp | response_timestamp is a UNIX timestamp defined at the moment of the response's XML infoset generation
attributes enumerations
Name | Extension | Base | Value | Annotations
request_subtype | NMTOKEN | normal | normal defines the standard (normal) XML infoset describing an ordinary invoice/reminder (Default)
request_subtype | NMTOKEN | copy | copy qualifies the XML infoset as the exact copy of a previously defined XML infoset except for the copy flag.
request_subtype | NMTOKEN | refund | refund acts on a normal XML infoset, notably sent to and paid by the health care insurance
request_subtype | NMTOKEN | storno | storno acts on a prior defined normal XML infoset by negate all quantities in order to cancel the invoice/reminder as a whole.
request_type | NMTOKEN | invoice | the request is of type invoice
request_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 reference object of the request.
This element is copied from the received request
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 | derived by: 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 new 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 always be the same for a certain 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 always be the same for a certain credit object reference!
source | <element name="credit" type="invoice:creditType" minOccurs="0"/>


element payloadType/invoice

Annotation The invoice element defines the unique invoice reference object of the request.
This element is copied from the received request
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 | derived by: unsignedLong | required
request_date | dateTime | required
request_id | invoice:stringType1_35 | required
attributes annotations
Name Notes
request_timestamp request_timestamp (copied unaltered from the request) 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 new invoice object reference and thereafter always referenced!
request_date request_date (copied unaltered from the request) 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 always be the same for a certain invoice object reference!
request_id request_id (copied unaltered from the request) 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 always be the same for a certain invoice object reference!
source | <element name="invoice" type="invoice:invoiceType"/>


element payloadType/reminder

Annotation The reminder element defines the unique reminder object of the request.
This element is copied from the received request.
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 | derived by: unsignedLong | required
request_date | dateTime | required
request_id | invoice:stringType1_35 | required
reminder_level | derived by: NMTOKEN | 1
attributes annotations
Name Notes
request_timestamp request_timestamp (copied unaltered from the request) 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 new reminder object reference and thereafter always referenced!
request_date request_date (copied unaltered from the request) 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 always be the same for a certain reminder object reference!
request_id request_id (copied unaltered from the request) 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 always be the same for a certain 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
  • 1: the level of the reminder is 1 (default)
  • 2: the level of the reminder is 2
  • 3: the level of the reminder is 3
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 copied data containers from the request and the answer to the request. Since there are privacy relevant patient data in the response the body element can be replace 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:billers invoice:debitor invoice:providers invoice:insurance invoice:patient invoice:contact invoice:treatment invoice:tiers_garant invoice:tiers_soldant invoice:tiers_payant invoice:documents
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, 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/billers

Annotation The billers element is the container holding the different flavors of the biller definitions basically differing in the unique keys like GLN or ZSR
This billers section is copied unaltered from the received request into this response.
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:billersAddressType
properties
isRef | 0
content | complex
children | invoice:biller_gln invoice:biller_zsr
source | <element name="billers" type="invoice:billersAddressType"/>


element billersAddressType/biller_gln

Annotation | The biller_gln element defines the biller's address and its mandatory GLN.
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:billerGLNAddressType
properties
isRef | 0
content | complex
children | invoice:company invoice:person
attributes parameters
Name | Type | Use | Default | Fixed
gln | invoice:glnPartyType | required
attributes annotations
Name Notes
gln The gln is the biller's required GLN as defined by RefData
If in agreement with the health insurance, the GLN given can be a Swiss SSN (social security number), provided that the corresponding treatment is carried out by the patient himself or a relative of the patient.
source | <element name="biller_gln" type="invoice:billerGLNAddressType"/>


element billerGLNAddressType/company

Annotation | The biller is a legal entity defined by a company address 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 invoice:country
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 full street part of the postal address
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:streetType
properties
isRef | 0
minOcc | 0
maxOcc | 1
content | complex
facets
minLength | 1
maxLength | 35
attributes parameters
Name | Type | Use | Default | Fixed
street_name | invoice:stringType1_35
house_no | invoice:stringType1_10
attributes annotations
Name | Notes
street_name | street_name is the optional street name being part of the full street definition. Please note that the street name is an extracted copy from the full street definition.
house_no | house_no is the optional house number being part of full street definition. Please note that the house number is an extracted copy from the full street definition.
source | <element name="street" type="invoice:streetType" 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
state_code | invoice:stringType1_9
attributes annotations
Name | Notes
state_code | state_code is an optional code for a state (e.g. the canton designator in Switzerland or the state in USA)
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 postalAddressType/country

Annotation The optional country element supplies the country name and country abbreviation of the postal address.

Please note that the absence of the country element implies that the country is Switzerland and consequently the country abbreviation is ISO 3166-1 alpha-2 = CH.

diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:countryType
properties
isRef | 0
minOcc | 0
maxOcc | 1
content | complex
facets
minLength | 1
maxLength | 35
attributes parameters
Name | Type | Use | Default | Fixed
country_code | invoice:iso3166A2Type
attributes annotations
Name | Notes
country_code | the optional country_code is the ISO designator of the country as two-letter ISO 3166-1 alpha-2 code.
source | <element name="country" type="invoice:countryType" minOccurs="0"/>


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
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 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:uri
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_80
properties
isRef | 0
minOcc | 1
maxOcc | 3
content | simple
facets
minLength | 1
maxLength | 80
pattern .+@.+
source <element name="email" maxOccurs="3">
<simpleType>
<restriction base="invoice:stringType1_80">
<pattern value=".+@.+"/>
</restriction>
</simpleType>
</element>


element onlineAddressType/uri

Annotation | The uri 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 | 160
source <element name="uri" minOccurs="0" maxOccurs="3">
<simpleType>
<restriction base="anyURI">
<minLength value="1"/>
<maxLength value="160"/>
</restriction>
</simpleType>
</element>


element billerGLNAddressType/person

Annotation | The biller is a natural person defined by the person address 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 invoice:country
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
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:uri
source | <element name="online" type="invoice:onlineAddressType" minOccurs="0"/>


element billersAddressType/biller_zsr

Annotation The optional biller_zsr element defines the billers's address and its mandatory ZSR number.

Note that the billers's ZSR address is optional in terms of the XSD schema definition. However, it may be the case that the underlying tariff contracts, applied law and/or special contracts between service providers and insurances change the optionality into a mandatory data specification.
A more detailed view of the use of the biller_zsr element can be found elsewhere on the Forum Datenaustausch website.

diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:zsrAddressType
properties
isRef | 0
minOcc | 0
maxOcc | 1
content | complex
children | invoice:company invoice:person
attributes parameters
Name | Type | Use | Default | Fixed
zsr | invoice:zsrPartyType | required
attributes annotations
Name | Notes
zsr | zsr is the biller's or provider's required ZSR as defined by Santésuisse
source | <element name="biller_zsr" type="invoice:zsrAddressType" minOccurs="0"/>


element zsrAddressType/company

Annotation | The biller or provider is a legal entity defined by a company address 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 zsrAddressType/person

Annotation | The biller or provider is a natural person defined by the person address 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/debitor

Annotation The debitor element defines the debitor of the corresponding request.
This debitor section is copied unaltered from the received request into this response.
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:debitorAddressType
properties
isRef | 0
content | complex
children | invoice:company invoice:person
attributes parameters
Name | Type | Use | Default | Fixed
gln | invoice:glnPartyType | required
uid | invoice:stringType1_15
attributes annotations
Name Notes
gln gln is the debitor's GLN number as defined by RefData
Please note, that the GLN is required and therefore a pseudo GLN from the private sector (e.g. 2000000000008) must be used, if the debitor does not have an official GLN
uid uid is the UID number in the electronic layout as defined by the "Swiss Federal Tax Administration".
In the electronic layout all punctuation characters ('-' and '.') are striped. Consequently, the UID number must be expanded appropriately prior to be printed, e.g.
  • CHE123456789 in the electronic layout is printed as CHE-123.456.789
source | <element name="debitor" type="invoice:debitorAddressType"/>


element debitorAddressType/company

Annotation | The debitor is a legal entity defined by a company address 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 debitorAddressType/person

Annotation | The debitor is a natural person defined by the person address 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/providers

Annotation The providers element is the container holding the different flavors of the provider definitions basically differing in the unique key like GLN or ZSR
This providers section is copied unaltered from the received request into this response.
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:providersAddressType
properties
isRef | 0
content | complex
children | invoice:provider_gln invoice:provider_zsr
source | <element name="providers" type="invoice:providersAddressType"/>


element providersAddressType/provider_gln

Annotation | The required provider_gln element defines the provider's address and its mandatory GLN.
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:providerGLNAddressType
properties
isRef | 0
content | complex
children | invoice:company invoice:person
attributes parameters
Name | Type | Use | Default | Fixed
gln | invoice:glnPartyType | required
gln_location | invoice:glnPartyType | required
uid | invoice:stringType1_15
attributes annotations
Name | Notes
gln The gln is the provider's required GLN as defined by RefData
If in agreement with the health insurance, the GLN given can be a Swiss SSN (social security number), provided that the treatment is carried out by the patient himself or a relative of the patient.
gln_location | The gln_location codes the provider's workplace by a required GLN as defined by RefData If there is no such specific workplace defined then input the gln as gln_location, basically defining the default workplace/location.
uid uid is the UID number in the electronic layout as defined by the "Swiss Federal Tax Administration".
In the electronic layout all punctuation characters ('-' and '.') are striped. Consequently, the UID number must be expanded appropriately prior to be printed, e.g.
  • CHE123456789 in the electronic layout is printed as CHE-123.456.789
source | <element name="provider_gln" type="invoice:providerGLNAddressType"/>


element providerGLNAddressType/company

Annotation | The provider is a legal entity defined by a company address 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 providerGLNAddressType/person

Annotation | The provider is a natural person defined by the person address 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 providersAddressType/provider_zsr

Annotation The optional provider_zsr element defines the provider's address and its mandatory ZSR number.

Note that the providers's ZSR address is optional in terms of the XSD schema definition. However, it may be the case that the underlying tariff contracts, applied law and/or special contracts between service providers and insurances change the optionality into a mandatory data specification.
A more detailed view of the use of the provider_zsr element can be found elsewhere on the Forum Datenaustausch website.

diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:zsrAddressType
properties
isRef | 0
minOcc | 0
maxOcc | 1
content | complex
children | invoice:company invoice:person
attributes parameters
Name | Type | Use | Default | Fixed
zsr | invoice:zsrPartyType | required
attributes annotations
Name | Notes
zsr | zsr is the biller's or provider's required ZSR as defined by Santésuisse
source | <element name="provider_zsr" type="invoice:zsrAddressType" minOccurs="0"/>


element bodyType/insurance

Annotation The insurance element defines the insurance of the corresponding request.
This insurance section is copied unaltered from the received request into this response.
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
gln | invoice:glnPartyType | required
attributes annotations
Name | Notes
gln | gln is the insurance's GLN as defined by RefData
source | <element name="insurance" type="invoice:insuranceAddressType"/>


element insuranceAddressType/company

Annotation | The insurance is a legal entity defined by a company address 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 natural person defined by the person address 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/patient

Annotation The patient element defines the patient of the corresponding request.
This patient section is copied unaltered from the received request into this response.
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:patientAddressType
properties
isRef | 0
content | complex
children | invoice:person
attributes parameters
Name | Type | Use | Default | Fixed
gender | derived by: NMTOKEN | required
sex | derived by: NMTOKEN | required
birthdate | date | required
ssn | invoice:ssnPartyType | required
attributes annotations
Name | Notes
gender gender defines the social gender encoded by a terminal set of tokens
  • male: the patient identifies with the gender of male
  • female: the patient identifies with the gender of female
  • diverse: the patient identifies with neither/both female and male, or identifies as transgender. Furthermore, 'diverse' is applicable if the gender is unknown, or the patient does not wish to disclosure his gender identity.
sex sex defines the medical sex which is pre-dominantly induced by the actual hormonal balance of the body. The attribute sex is encoded by a terminal set of tokens
  • male: the sex of the patient is pre-dominantly male
  • female: the sex of the patient is pre-dominantly female
birthdate | birthdate defines the birthdate of the patient
ssn the required ssn defines the social security number of the patient whereupon 3 distinguished styles are allowed:
  • 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
  • the 13 digit IDNR number of Liechtenstein ("IDNR-Nummer") beginning with 438
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 patient identifies with the gender of male
gender | NMTOKEN | female | the patient identifies with the gender of female
gender | NMTOKEN | diverse | the patient identifies with neither/both female and male, or transgender. Furthermore, 'diverse' is applicable if the gender is unknown or the patient does not wish to disclosure his gender identity.
sex | NMTOKEN | male | the sex of the patient is pre-dominantly male
sex | NMTOKEN | female | the sex of the patient is pre-dominantly 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 bodyType/contact

Annotation | The contact element defines a contact for the response coded either as person or company address. The latter can optionally be augmented by data of an employee.
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:contactAddressType
properties
isRef | 0
content | complex
children | invoice:person invoice:company invoice:employee
attributes parameters
Name | Type | Use | Default | Fixed
gln | invoice:glnPartyType
attributes annotations
Name Notes
gln gln is the contact's GLN as defined by RefData
Note, that this is the GLN of the given person or company (it is never a GLN of an employee!)
source | <element name="contact" type="invoice:contactAddressType"/>


element contactAddressType/person

Annotation | The contact is a legal entity defined by a company address 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 contactAddressType/company

Annotation | The contact is a natural person defined by the person address 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 contactAddressType/employee

Annotation The optional employee element augments the company address by the data of an employee handling the request
The address of an employee is identical to a person's address except that the postal address is not given but implicitly inherited by the company's address container.
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:employeeType
properties
isRef | 0
minOcc | 0
maxOcc | 1
content | complex
children | invoice:familyname invoice:givenname 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="employee" type="invoice:employeeType" minOccurs="0"/>


element employeeType/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 employeeType/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
minOcc | 0
maxOcc | 1
content | simple
facets
minLength | 1
maxLength | 35
source | <element name="givenname" type="invoice:stringType1_35" minOccurs="0"/>


element employeeType/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
source | <element name="telecom" type="invoice:telecomAddressType" minOccurs="0"/>


element employeeType/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:uri
source | <element name="online" type="invoice:onlineAddressType" minOccurs="0"/>


element bodyType/treatment

Annotation | The optional treatment element defines the various treatment parameters, such as the treatment interval and canton, copied unaltered from the corresponding request.
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:treatmentType
properties
isRef | 0
content | complex
attributes parameters
Name | Type | Use | Default | Fixed
date_begin | date | required
date_end | date | required
canton | derived by: NMTOKEN | required
treatment | derived by: NMTOKEN | ambulatory
reason | derived by: NMTOKEN | required
gestation_week13 | date
end_of_birth | date
apid | invoice:stringType1_35
acid | invoice:stringType1_35
attributes annotations
Name | Notes
date_begin | date_begin is the start of the treatment
date_end | date_end is the end of the treatment
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.
  • AG: the canton is AG - Aargau
  • AI: the canton is AI - Appenzell Innerrhoden
  • AR: the canton is AR - Appenzell Ausserrhoden
  • BE: the canton is BE - Bern
  • BL: the canton is BL - Baselland
  • BS: the canton is BS - Basel
  • FR: the canton is FR - Fribourg
  • GE: the canton is GE - Geneva
  • GL: the canton is GL - Glarus
  • GR: the canton is GR - Graubünden
  • JU: the canton is JU - Jura
  • LU: the canton is LU - Lucerne
  • NE: the canton is NE - Neuchâtel
  • NW: the canton is NW - Nidwalden
  • OW: the canton is OW - Obwalden
  • SG: the canton is SG - St. Gallen
  • SH: the canton is SH - Schaffhausen
  • SO: the canton is SO - Solothurn
  • SZ: the canton is SZ - Schwyz
  • TI: the canton is TI - Ticino
  • TG: the canton is TG - Thurgau
  • UR: the canton is UR - Uri
  • VD: the canton is VD - Vaud
  • VS: the canton is VS - Valais
  • ZG: the canton is ZG - Zug
  • ZH: the canton is ZH - Zürich
  • LI: the country is LI - Liechtenstein
  • A: the country is A - Austria
  • D: the country is D - Germany
  • F: the country is F - France
  • I: the country is I - Italy
treatment treatment is the principle type of treatment encoded by a terminal set of tokens.
  • ambulatory: the treatment type is ambulatory (default)
  • stationary: the treatment type is stationary
reason reason is the primary reason the treatment took place encoded by a terminal set of tokens
  • disease: the reason of treatment is a disease
  • accident: the reason of treatment is an accident
  • maternity: the reason of treatment is a maternity
  • prevention: the reason of treatment is prevention
  • birthdefect: the reason of treatment a birthdefect
  • unknown: the reason of treatment is unknown (or something not mentioned above)
gestation_week13 gestation_week13 is the 1st day of the 13th week of pregnancy calculated by the physician in charge (medical practice or hospital) and specified as date in the «treatment@gestation_week13» attribute of the invoice request.
This gestation_week13 attribute is copied unaltered from the received request into this response. This date is set once only as soon as possible with treatment reason «maternity» and law type «KVG»
end_of_birth the end_of_birth is defined when the placenta has been completely expelled from the body.
This end_of_birth attribute is copied unaltered from the received request into this response.
apid | apid is an optional administrative patient identification defined in the request and copied unaltered into the response.
acid acid is an optional administrative case identification defined in the request and copied unaltered into the response.

Please note, that the acid cannot serve as a unique identification of a certain invoice/reminder as opposed to the unique object reference!

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)
treatment | NMTOKEN | ambulatory | the treatment type is ambulatory (default)
treatment | NMTOKEN | stationary | the treatment type is stationary
source | <element name="treatment" type="invoice:treatmentType"/>


element bodyType/tiers_garant

Annotation tiers_garant summarizes and subsums all possible responses for Tiers Garant (TG). The Tiers type is copied from the received request.

Please note that a response to a TG request is optional, but apart from a TS or TP response, it can be addressed not only to the provider (= default recipient), but also to the debitor or to an unspecified third party.

Regarding the type of response, the functional scope is limited to a simple 'notification', i.e. there is neither a rejected nor an accepted TG response.

diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:garantType
properties
isRef | 0
content | complex
children | invoice:notification
attributes parameters
Name | Type | Use | Default | Fixed
recipient | derived by: NMTOKEN | provider
attributes annotations
Name Notes
recipient recipient is the recipient of this TG response encoded by a terminal set of tokens
  • provider: the recipient of this TG response is the provider (Default) that initially produced and sent the TG request
  • debitor: the recipient of this TG response is the debitor that received the TG request in the first place
  • third_party: the recipient of this TG response is an unspecified third_party, known only to the producer of the TG response
attributes enumerations
Name | Extension | Base | Value | Annotations
recipient | NMTOKEN | provider | the recipient of this TG response is the provider (Default) that initially produced and sent the TG request
recipient | NMTOKEN | debitor | the recipient of this TG response is the debitor that received the TG request in the first place
recipient | NMTOKEN | third_party | the recipient of this TG response is an unspecified third_party, known only to the producer of the TG response
source | <element name="tiers_garant" type="invoice:garantType"/>


element garantType/notification

Annotation The notification element defines the answer of type «notification»
Per definition this means that the request can possibly not be processed to a final stage as some data are missing. An optional explanation and [0,n] messages (instructions) are supplied to inform the selected recipient.
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:pendingType
properties
isRef | 0
content | complex
children | invoice:explanation invoice:message
attributes parameters
Name | Type | Use | Default | Fixed
status_in | derived by: NMTOKEN | required
status_out | derived by: NMTOKEN | required
attributes annotations
Name Notes
status_in status_in is the status of the request (given by the object reference chain) before any processing or analysis is done encoded by a terminal set of tokens
  • unknown: the status is unknown - the given object reference is unknown
  • ambiguous: the status is ambiguous - the given object reference delivers more than one result
  • received: the status is received - nothing done so far except receiving the request
  • frozen: the status is frozen - the request is not processed until further data is provided
  • processed: the status is processed - the request has passed all processing and analysis
  • granted: the status is granted - the request is accepted and archived. In case of a invoice/reminder object the requested amount was paid to the biller.
  • canceled: the status is canceled - the request is canceled and archived with reject status
  • claimed: the status is claimed - a reimbursement process was invoked by sending back the payback information
  • reimbursed: the status is reimbursed - the reimbursement process was completed as the amount was paid back by the biller
status_out status_out is the status of the request (given by the object reference chain) after all processing or analysis is done encoded by a terminal set of tokens
  • unknown: the status is unknown - the given object reference is unknown
  • ambiguous: the status is ambiguous - the given object reference delivers more than one result
  • received: the status is received - nothing done so far except receiving the request
  • frozen: the status is frozen - the request is not processed until further data is provided
  • processed: the status is processed - the request has passed all processing and analysis
  • granted: the status is granted - the request is accepted and archived. In case of a invoice/reminder object the requested amount was paid to the biller.
  • canceled: the status is canceled - the request is canceled and archived with reject status
  • claimed: the status is claimed - a reimbursement process was invoked by sending back the payback information
  • reimbursed: the status is reimbursed - the reimbursement process was completed as the amount was paid back by the biller
source | <element name="notification" type="invoice:pendingType"/>


element pendingType/explanation

Annotation The explanation element defines the overall explanation for the pending status
The explanation is formulated in plain text in the language defined by the response@language attribute
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:stringType1_2800
properties
isRef | 0
minOcc | 0
maxOcc | 1
content | simple
facets
minLength | 1
maxLength | 2800
source | <element name="explanation" type="invoice:stringType1_2800" minOccurs="0"/>


element pendingType/message

Annotation The message element defines either a reason why the request is in the pending state or an instruction how to proceed for leaving this state. E.g. the insurance is awaiting further documents.
There is an unbounded number of such messages possible all given in the language defined by the response@language attribute.
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:notificationType
properties
isRef | 0
minOcc | 0
maxOcc | unbounded
content | complex
attributes parameters
Name | Type | Use | Default | Fixed
code | invoice:stringType1_35 | required
text | invoice:stringType1_700 | required
attributes annotations
Name | Notes
code | code is a code of the notification. These codes are insurance specific or the codes recommended by the Forum Datenaustausch.
text | text is the textual description of the notification in the language defined by the response@language attribute
source | <element name="message" type="invoice:notificationType" minOccurs="0" maxOccurs="unbounded"/>


element bodyType/tiers_soldant

Annotation tiers_soldant summarizes and subsums all possible responses for Tiers Soldant (TS). The Tiers type is copied from the received request.

Please note that each TS request must be answered by at least one corresponding response, which explicitly means that each 'accepted' TS request is confirmed by a final 'accepted' TS response.

diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:soldantType
properties
isRef | 0
content | complex
children | invoice:pending invoice:rejected invoice:accepted
source | <element name="tiers_soldant" type="invoice:soldantType"/>


element soldantType/pending

Annotation The pending element defines the answer of type «pending»
Per definition this means that the request can not be processed to a final stage as some data are missing. An optional explanation and [0,n] messages (instructions) are supplied to inform the recipient what is needed to "unfreeze" the request.
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:pendingType
properties
isRef | 0
content | complex
children | invoice:explanation invoice:message
attributes parameters
Name | Type | Use | Default | Fixed
status_in | derived by: NMTOKEN | required
status_out | derived by: NMTOKEN | required
attributes annotations
Name Notes
status_in status_in is the status of the request (given by the object reference chain) before any processing or analysis is done encoded by a terminal set of tokens
  • unknown: the status is unknown - the given object reference is unknown
  • ambiguous: the status is ambiguous - the given object reference delivers more than one result
  • received: the status is received - nothing done so far except receiving the request
  • frozen: the status is frozen - the request is not processed until further data is provided
  • processed: the status is processed - the request has passed all processing and analysis
  • granted: the status is granted - the request is accepted and archived. In case of a invoice/reminder object the requested amount was paid to the biller.
  • canceled: the status is canceled - the request is canceled and archived with reject status
  • claimed: the status is claimed - a reimbursement process was invoked by sending back the payback information
  • reimbursed: the status is reimbursed - the reimbursement process was completed as the amount was paid back by the biller
status_out status_out is the status of the request (given by the object reference chain) after all processing or analysis is done encoded by a terminal set of tokens
  • unknown: the status is unknown - the given object reference is unknown
  • ambiguous: the status is ambiguous - the given object reference delivers more than one result
  • received: the status is received - nothing done so far except receiving the request
  • frozen: the status is frozen - the request is not processed until further data is provided
  • processed: the status is processed - the request has passed all processing and analysis
  • granted: the status is granted - the request is accepted and archived. In case of a invoice/reminder object the requested amount was paid to the biller.
  • canceled: the status is canceled - the request is canceled and archived with reject status
  • claimed: the status is claimed - a reimbursement process was invoked by sending back the payback information
  • reimbursed: the status is reimbursed - the reimbursement process was completed as the amount was paid back by the biller
source | <element name="pending" type="invoice:pendingType"/>


element soldantType/rejected

Annotation The rejected element defines the answer of type «rejected».
Per definition this means that the request is rejected and as a consequence the status of the request goes to the "canceled" state. An optional explanation and [0,n] errors are supplied to justify the decision.
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:rejectedType
properties
isRef | 0
content | complex
children | invoice:explanation invoice:error
attributes parameters
Name | Type | Use | Default | Fixed
status_in | derived by: NMTOKEN | required
status_out | derived by: NMTOKEN | required
attributes annotations
Name Notes
status_in status_in is the status of the request (given by the object reference chain) before any processing or analysis is done encoded by a terminal set of tokens
  • unknown: the status is unknown - the given object reference is unknown
  • ambiguous: the status is ambiguous - the given object reference delivers more than one result
  • received: the status is received - nothing done so far except receiving the request
  • frozen: the status is frozen - the request is not processed until further data is provided
  • processed: the status is processed - the request has passed all processing and analysis
  • granted: the status is granted - the request is accepted and archived. In case of a invoice/reminder object the requested amount was paid to the biller.
  • canceled: the status is canceled - the request is canceled and archived with reject status
  • claimed: the status is claimed - a reimbursement process was invoked by sending back the payback information
  • reimbursed: the status is reimbursed - the reimbursement process was completed as the amount was paid back by the biller
status_out status_out is the status of the request (given by the object reference chain) after all processing or analysis is done encoded by a terminal set of tokens
  • unknown: the status is unknown - the given object reference is unknown
  • ambiguous: the status is ambiguous - the given object reference delivers more than one result
  • received: the status is received - nothing done so far except receiving the request
  • frozen: the status is frozen - the request is not processed until further data is provided
  • processed: the status is processed - the request has passed all processing and analysis
  • granted: the status is granted - the request is accepted and archived. In case of a invoice/reminder object the requested amount was paid to the biller.
  • canceled: the status is canceled - the request is canceled and archived with reject status
  • claimed: the status is claimed - a reimbursement process was invoked by sending back the payback information
  • reimbursed: the status is reimbursed - the reimbursement process was completed as the amount was paid back by the biller
source | <element name="rejected" type="invoice:rejectedType"/>


element rejectedType/explanation

Annotation The explanation element defines the overall explanation for the rejected status
The explanation is formulated in plain text in the language defined by the response@language attribute
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:stringType1_2800
properties
isRef | 0
minOcc | 0
maxOcc | 1
content | simple
facets
minLength | 1
maxLength | 2800
source | <element name="explanation" type="invoice:stringType1_2800" minOccurs="0"/>


element rejectedType/error

Annotation The error element defines one detailed error why the request is rejected.
There is an unbounded number of such errors possible all given in the language defined by the response@language attribute.
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:errorType
properties
isRef | 0
minOcc | 0
maxOcc | unbounded
content | complex
attributes parameters
Name | Type | Use | Default | Fixed
code | invoice:stringType1_35 | required
text | invoice:stringType1_700 | required
error_value | invoice:stringType1_350
valid_value | invoice:stringType1_350
record_id | positiveInteger
attributes annotations
Name | Notes
error_value | error_value is a textual description what within the currently used contracts is erroneous (e.g. wrong tax point values, illegal use of services and the like).
code | code is a code of the notification. These codes are insurance specific or the codes recommended by the Forum Datenaustausch.
valid_value | valid_value is a textual description that should be used instead of the error_value.
text | text is the textual description of the notification in the language defined by the response@language attribute
record_id record_id is a record sequence number from the request uniquely identifying the service record.
Of course, if it is not a service related error then record_id is undefined.
source | <element name="error" type="invoice:errorType" minOccurs="0" maxOccurs="unbounded"/>


element soldantType/accepted

Annotation The accepted element defines the answer of type «accepted».
Per definition this means that the request is from a principle point of view accepted and will be processed to a final stage. An optional explanation and the accounting/balance of the Tiers Soldant process is supplied to justify the decision.
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:acceptedTSType
properties
isRef | 0
content | complex
children | invoice:explanation invoice:balance invoice:reimbursement
attributes parameters
Name | Type | Use | Default | Fixed
status_in | derived by: NMTOKEN | required
status_out | derived by: NMTOKEN | required
attributes annotations
Name Notes
status_in status_in is the status of the request (given by the object reference chain) before any processing or analysis is done encoded by a terminal set of tokens
  • unknown: the status is unknown - the given object reference is unknown
  • ambiguous: the status is ambiguous - the given object reference delivers more than one result
  • received: the status is received - nothing done so far except receiving the request
  • frozen: the status is frozen - the request is not processed until further data is provided
  • processed: the status is processed - the request has passed all processing and analysis
  • granted: the status is granted - the request is accepted and archived. In case of a invoice/reminder object the requested amount was paid to the biller.
  • canceled: the status is canceled - the request is canceled and archived with reject status
  • claimed: the status is claimed - a reimbursement process was invoked by sending back the payback information
  • reimbursed: the status is reimbursed - the reimbursement process was completed as the amount was paid back by the biller
status_out status_out is the status of the request (given by the object reference chain) after all processing or analysis is done encoded by a terminal set of tokens
  • unknown: the status is unknown - the given object reference is unknown
  • ambiguous: the status is ambiguous - the given object reference delivers more than one result
  • received: the status is received - nothing done so far except receiving the request
  • frozen: the status is frozen - the request is not processed until further data is provided
  • processed: the status is processed - the request has passed all processing and analysis
  • granted: the status is granted - the request is accepted and archived. In case of a invoice/reminder object the requested amount was paid to the biller.
  • canceled: the status is canceled - the request is canceled and archived with reject status
  • claimed: the status is claimed - a reimbursement process was invoked by sending back the payback information
  • reimbursed: the status is reimbursed - the reimbursement process was completed as the amount was paid back by the biller
source | <element name="accepted" type="invoice:acceptedTSType"/>


element acceptedTSType/explanation

Annotation The optional explanation element defines the overall explanation for the accepted status
The explanation is formulated in plain text in the language defined by the response@language attribute
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:stringType1_2800
properties
isRef | 0
minOcc | 0
maxOcc | 1
content | simple
facets
minLength | 1
maxLength | 2800
source | <element name="explanation" type="invoice:stringType1_2800" minOccurs="0"/>


element acceptedTSType/balance

Annotation | The balance element supplies all needed accounting data for the given TS case. Especially worth mentioning is balance@amount_paid, which represents the amount paid by the insurance company in this case.
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:balanceTSType
properties
isRef | 0
content | complex
attributes parameters
Name | Type | Use | Default | Fixed
currency | string | CHF
amount | double | required
amount_reminder | double | 0
amount_due | double | required
amount_paid | double | required
amount_unpaid | double | required
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.
The amount is copied unaltered from the received request into this response.
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.
The amount_reminder is copied unaltered from the received request into this response.
amount_due amount_due is the amount due for the invoice/reminder (and coded into a esrQR payment transaction) calculated as
«amount_due = amount + amount_reminder»
where the used summands are 2-digit precision amounts and the result is finally rounded half up ("Kaufmännisches Runden")
The amount_due is copied unaltered from the received request into this response.
amount_paid amount_paid is the amount that the insurance is paying to the biller taking into account all legally possible deductibles.
«amount_paid = amount_due - franchise_reduction - retention_reduction»
Please note, that amount_paid is finally rounded half up ("Kaufmännisches Runden")
amount_unpaid amount_unpaid is the amount not yet paid that will finally be charged directly to the guarantor (patient).
«amount_unpaid = amount_due - amount_paid»
where the used summands are 2-digit precision amounts and the result is finally rounded half up ("Kaufmännisches Runden")
source | <element name="balance" type="invoice:balanceTSType"/>


element acceptedTSType/reimbursement

Annotation The reimbursement element defines payback data for a new payment process with the biller of the request as debitor and the debitor of the request as creditor. Of course, the element is only defined if such a payback becomes necessary that is if balance@amount_paid is negative and the the base invoice/reminder is already paid out.

If balance@amount_paid is negative but the base invoice is not already paid out, than a real money transaction is not taking place and thus the 'reimbursement' element must not be defined!

diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:reimbursementType
properties
isRef | 0
minOcc | 0
maxOcc | 1
content | complex
children | invoice:debitor invoice:esrQR invoice:esrQRRed
attributes parameters
Name | Type | Use | Default | Fixed
vat | double | required
vat_number | invoice:stringType1_15
attributes annotations
Name | Notes
vat | vat is the overall total vat amount -summed up over all individual vat rates- relevant for the given amount_paid!
vat_number vat_number is the individual vat number of the provider as given by the "Swiss Federal Tax Administration". 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. the electronic form "CHE123456789" is printed as CHE-123.456.789 MWST (for german language!)
If the provider does not have to pay vat, leave the field empty.
source | <element name="reimbursement" type="invoice:reimbursementType" minOccurs="0"/>


element reimbursementType/debitor

Annotation The debitor element defines the debitor of the reimbursement process.

Note, that the biller element of the request must be copied unaltered to the response and thereafter used as debitor of the esrQR/esrQRRed transaqction.

diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:esrAddressType
properties
isRef | 0
content | complex
children | invoice:person invoice:company
source | <element name="debitor" type="invoice:esrAddressType"/>


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 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 reimbursementType/esrQR

Annotation | The esrQR element supplies payment information for an "ESR with QR" or "ESR+ with QR" a "Pay in slip with QR" transaction.
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:esrQRType
properties
isRef | 0
content | complex
children | invoice:creditor
attributes parameters
Name | Type | Use | Default | Fixed
subtype | derived by: NMTOKEN | esrQR
iban | derived by: string | required
reference_number | derived by: string | required
alternative_scheme1 | invoice:stringType1_100
alternative_scheme2 | invoice:stringType1_100
payment_reason | invoice:stringType1_140
payment_period | duration
attributes annotations
Name | Notes
subtype subtype is the EsrQR subtype specification encoded by a terminal set of tokens
  • esrQRplus: esrQRplus is an «ESR+ with QR without amount». Furthermore, any layouted print out must not set an amount inside the QR and in the amount fields.
  • esrQR: esrQR is an ordinary «ESR with QR» (Default).
iban iban is a mandatory IBAN of Switzerland or Liechtenstein (21 characters) that defines the creditor's account at the given bank.
The format of the IBAN is in the standard representation without whitespace. Pursuant to the guidelines, the IBAN should be divided up from the left in blocks of 4 characters separated by blanks when printed.
reference_number reference_number is a 27-digit reference number.
Pursuant to the guidelines the reference number should be divided up from the right in blocks of 5 characters separated by blanks when printed.
alternative_scheme1 | alternative_scheme1 defines the 1st optional alternative scheme as defined by the Swiss QR-Invoice standard. Since the exact layout of the supplied scheme is undefined and can not be validated/covered by a data pattern, it is in the responsibility of the invoice generator to check, validate and correctly process such an alternative scheme.
alternative_scheme2 | alternative_scheme2 defines the 2nd optional alternative scheme as defined by the Swiss QR-Invoice standard. Since the exact layout of the supplied scheme is undefined and can not be validated/covered by a data pattern, it is in the responsibility of the invoice generator to check, validate and correctly process such an alternative scheme.
payment_reason | The optional payment_reason consisting of a maximum of 140 characters defining the reason for the payment. The intent of the text is purely one of the creditor.
payment_period | payment_period is the payment period in which the invoice/reminder should be paid
attributes enumerations
Name | Extension | Base | Value | Annotations
subtype | NMTOKEN | esrQRplus | esrQRplus is an «ESR+ with QR without amount». Furthermore, any layouted print out must not set an amount inside the QR and in the amount fields.
subtype | NMTOKEN | esrQR | esrQR is an ordinary «ESR with QR» (Default).
source | <element name="esrQR" type="invoice:esrQRType"/>


element esrQRType/creditor

Annotation The creditor element defines the creditor address. From a logical point of view, the creditor and the biller are the same. However, due to Anti-Money Laundering Act, Art. 95, 98 FC, the naming must be defined the same as for the bank account and this naming scheme might be different from the biller's address. Consequently, the creditor object is included explicitly into the XML infoset.

Note, that only the name, street (if available), zip and city and country of the address object is used for the printout.

diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:esrAddressType
properties
isRef | 0
content | complex
children | invoice:person invoice:company
source | <element name="creditor" type="invoice:esrAddressType"/>


element reimbursementType/esrQRRed

Annotation | The esrQRRed element supplies payment information for a "Pay in slip with QR" transaction
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:esrQRRedType
properties
isRef | 0
content | complex
children | invoice:creditor
attributes parameters
Name | Type | Use | Default | Fixed
subtype | derived by: NMTOKEN | esrQRRed
iban | derived by: string | required
reference_number | derived by: string
alternative_scheme1 | invoice:stringType1_100
alternative_scheme2 | invoice:stringType1_100
payment_reason | invoice:stringType1_140
payment_period | duration
attributes annotations
Name | Notes
subtype subtype is the PayInSlip with QR subtype specification encoded by a terminal set of tokens
  • esrQRRedplus: esrQRRedplus is an «PayInSlip+ with QR without amount». Furthermore, any layouted print out must not set an amount inside the QR and in the amount fields.
  • esrQRRed: esrQRRed is an ordinary «PayInSlip with QR» (Default).
iban iban is a mandatory IBAN of Switzerland or Liechtenstein (21 characters) that defines the creditor's account at the given bank.
The format of the IBAN is in the standard representation without whitespace. Pursuant to the guidelines, the IBAN should be divided up from the left in blocks of 4 characters separated by blanks when printed.
reference_number reference_number is an optional 25 character Creditor Reference number (ISO 11649)
Pursuant to the guidelines the reference number should be divided up from the right in blocks of 5 characters separated by blanks when printed.
alternative_scheme1 | alternative_scheme1 defines the 1st optional alternative scheme as defined by the Swiss QR-Invoice standard. Since the exact layout of the supplied scheme is undefined and can not be validated/covered by a data pattern, it is in the responsibility of the invoice generator to check, validate and correctly process such an alternative scheme.
alternative_scheme2 | alternative_scheme2 defines the 2nd optional alternative scheme as defined by the Swiss QR-Invoice standard. Since the exact layout of the supplied scheme is undefined and can not be validated/covered by a data pattern, it is in the responsibility of the invoice generator to check, validate and correctly process such an alternative scheme.
payment_reason | The optional payment_reason consisting of a maximum of 140 characters defining the reason for the payment. The intent of the text is purely one of the creditor.
payment_period | payment_period is the payment period in which the invoice/reminder should be paid
attributes enumerations
Name | Extension | Base | Value | Annotations
subtype | NMTOKEN | esrQRRedplus | esrQRRedplus is an «PayInSlip+ with QR without amount». Furthermore, any layouted print out must not set an amount inside the QR and in the amount fields.
subtype | NMTOKEN | esrQRRed | esrQRRed is an ordinary «PayInSlip with QR» (Default).
source | <element name="esrQRRed" type="invoice:esrQRRedType"/>


element esrQRRedType/creditor

Annotation The creditor element defines the creditor address. From a logical point of view, the creditor and the biller are the same. However, due to Anti-Money Laundering Act, Art. 95, 98 FC, the naming must be defined the same as for the bank account and this naming scheme might be different from the biller's address. Consequently, the creditor object is included explicitly into the XML infoset.

Note, that only the name, street (if available), zip and city and country of the address object is used for the printout.

diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:esrAddressType
properties
isRef | 0
content | complex
children | invoice:person invoice:company
source | <element name="creditor" type="invoice:esrAddressType"/>


element bodyType/tiers_payant

Annotation tiers_payant summarizes and subsums all possible responses for for Tiers Payant (TP). The Tiers type is copied from the received request.

Please note that each TP request must be answered by at least one corresponding response, which explicitly means that each 'accepted' TP request is confirmed by a final 'accepted' TP response.

diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:payantType
properties
isRef | 0
content | complex
children | invoice:pending invoice:rejected invoice:accepted
attributes parameters
Name | Type | Use | Default | Fixed
allowModification | boolean | required
attributes annotations
Name Notes
allowModification allowModification gives or denies a placet to the health care insurance to correct quantities of services. The service quantity can be changed in the range R0+ (positive real numbers including zero), which changes the amounts of individual services as well as the total invoice amount.
This provider section is copied unaltered from the received request into this response.
source | <element name="tiers_payant" type="invoice:payantType"/>


element payantType/pending

Annotation The pending element defines the answer of type «pending»
Per definition this means that the request can not be processed to a final stage as some data are missing. An optional explanation and [0,n] messages (instructions) are supplied to inform the recipient what is needed to "unfreeze" the request.
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:pendingType
properties
isRef | 0
content | complex
children | invoice:explanation invoice:message
attributes parameters
Name | Type | Use | Default | Fixed
status_in | derived by: NMTOKEN | required
status_out | derived by: NMTOKEN | required
attributes annotations
Name Notes
status_in status_in is the status of the request (given by the object reference chain) before any processing or analysis is done encoded by a terminal set of tokens
  • unknown: the status is unknown - the given object reference is unknown
  • ambiguous: the status is ambiguous - the given object reference delivers more than one result
  • received: the status is received - nothing done so far except receiving the request
  • frozen: the status is frozen - the request is not processed until further data is provided
  • processed: the status is processed - the request has passed all processing and analysis
  • granted: the status is granted - the request is accepted and archived. In case of a invoice/reminder object the requested amount was paid to the biller.
  • canceled: the status is canceled - the request is canceled and archived with reject status
  • claimed: the status is claimed - a reimbursement process was invoked by sending back the payback information
  • reimbursed: the status is reimbursed - the reimbursement process was completed as the amount was paid back by the biller
status_out status_out is the status of the request (given by the object reference chain) after all processing or analysis is done encoded by a terminal set of tokens
  • unknown: the status is unknown - the given object reference is unknown
  • ambiguous: the status is ambiguous - the given object reference delivers more than one result
  • received: the status is received - nothing done so far except receiving the request
  • frozen: the status is frozen - the request is not processed until further data is provided
  • processed: the status is processed - the request has passed all processing and analysis
  • granted: the status is granted - the request is accepted and archived. In case of a invoice/reminder object the requested amount was paid to the biller.
  • canceled: the status is canceled - the request is canceled and archived with reject status
  • claimed: the status is claimed - a reimbursement process was invoked by sending back the payback information
  • reimbursed: the status is reimbursed - the reimbursement process was completed as the amount was paid back by the biller
source | <element name="pending" type="invoice:pendingType"/>


element payantType/rejected

Annotation The rejected element defines the answer of type «rejected».
Per definition this means that the request is rejected and as a consequence the status of the request goes to the "canceled" state. An optional explanation and [0,n] errors are supplied to justify the decision.
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:rejectedType
properties
isRef | 0
content | complex
children | invoice:explanation invoice:error
attributes parameters
Name | Type | Use | Default | Fixed
status_in | derived by: NMTOKEN | required
status_out | derived by: NMTOKEN | required
attributes annotations
Name Notes
status_in status_in is the status of the request (given by the object reference chain) before any processing or analysis is done encoded by a terminal set of tokens
  • unknown: the status is unknown - the given object reference is unknown
  • ambiguous: the status is ambiguous - the given object reference delivers more than one result
  • received: the status is received - nothing done so far except receiving the request
  • frozen: the status is frozen - the request is not processed until further data is provided
  • processed: the status is processed - the request has passed all processing and analysis
  • granted: the status is granted - the request is accepted and archived. In case of a invoice/reminder object the requested amount was paid to the biller.
  • canceled: the status is canceled - the request is canceled and archived with reject status
  • claimed: the status is claimed - a reimbursement process was invoked by sending back the payback information
  • reimbursed: the status is reimbursed - the reimbursement process was completed as the amount was paid back by the biller
status_out status_out is the status of the request (given by the object reference chain) after all processing or analysis is done encoded by a terminal set of tokens
  • unknown: the status is unknown - the given object reference is unknown
  • ambiguous: the status is ambiguous - the given object reference delivers more than one result
  • received: the status is received - nothing done so far except receiving the request
  • frozen: the status is frozen - the request is not processed until further data is provided
  • processed: the status is processed - the request has passed all processing and analysis
  • granted: the status is granted - the request is accepted and archived. In case of a invoice/reminder object the requested amount was paid to the biller.
  • canceled: the status is canceled - the request is canceled and archived with reject status
  • claimed: the status is claimed - a reimbursement process was invoked by sending back the payback information
  • reimbursed: the status is reimbursed - the reimbursement process was completed as the amount was paid back by the biller
source | <element name="rejected" type="invoice:rejectedType"/>


element payantType/accepted

Annotation The accepted element defines the answer of type «accepted».
Per definition this means that the request is from a principle point of view accepted and will be processed to a final stage. An optional explanation, the final accounting/balance information, an optional service modification structure and/or an optional reimbursement structure are supplied to justify the decision.
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:acceptedTPType
properties
isRef | 0
content | complex
children | invoice:explanation invoice:services invoice:balance invoice:reimbursement
attributes parameters
Name | Type | Use | Default | Fixed
status_in | derived by: NMTOKEN | required
status_out | derived by: NMTOKEN | required
attributes annotations
Name Notes
status_in status_in is the status of the request (given by the object reference chain) before any processing or analysis is done encoded by a terminal set of tokens
  • unknown: the status is unknown - the given object reference is unknown
  • ambiguous: the status is ambiguous - the given object reference delivers more than one result
  • received: the status is received - nothing done so far except receiving the request
  • frozen: the status is frozen - the request is not processed until further data is provided
  • processed: the status is processed - the request has passed all processing and analysis
  • granted: the status is granted - the request is accepted and archived. In case of a invoice/reminder object the requested amount was paid to the biller.
  • canceled: the status is canceled - the request is canceled and archived with reject status
  • claimed: the status is claimed - a reimbursement process was invoked by sending back the payback information
  • reimbursed: the status is reimbursed - the reimbursement process was completed as the amount was paid back by the biller
status_out status_out is the status of the request (given by the object reference chain) after all processing or analysis is done encoded by a terminal set of tokens
  • unknown: the status is unknown - the given object reference is unknown
  • ambiguous: the status is ambiguous - the given object reference delivers more than one result
  • received: the status is received - nothing done so far except receiving the request
  • frozen: the status is frozen - the request is not processed until further data is provided
  • processed: the status is processed - the request has passed all processing and analysis
  • granted: the status is granted - the request is accepted and archived. In case of a invoice/reminder object the requested amount was paid to the biller.
  • canceled: the status is canceled - the request is canceled and archived with reject status
  • claimed: the status is claimed - a reimbursement process was invoked by sending back the payback information
  • reimbursed: the status is reimbursed - the reimbursement process was completed as the amount was paid back by the biller
source | <element name="accepted" type="invoice:acceptedTPType"/>


element acceptedTPType/explanation

Annotation The optional explanation element defines the overall explanation for the accepted status
The explanation is formulated in plain text in the language defined by the response@language attribute
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:stringType1_2800
properties
isRef | 0
minOcc | 0
maxOcc | 1
content | simple
facets
minLength | 1
maxLength | 2800
source | <element name="explanation" type="invoice:stringType1_2800" minOccurs="0"/>


element acceptedTPType/services

Annotation | services list all services that have been modified in terms of quantity by the healthcare insurance in the course of the service modification process. The biller must allow such a modification by setting tiers_payant@allowModification=true
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:servicesType
properties
isRef | 0
minOcc | 0
maxOcc | 1
content | complex
children | invoice:service_ex invoice:service
source | <element name="services" type="invoice:servicesType" minOccurs="0"/>


element servicesType/service_ex

Annotation The service_ex element defines an extended service structure where some data exists in a dual form basically to describe 2 parts namely a medical and technical situation. The TARMED and TARDOC tariffs are the prototypes of such an extended tariff structure.

It should be noted that only the set of modified services must be specified here.

diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:serviceExType
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
group_size | positiveInteger | 1
quantity_original | double | required
quantity_modified | double | required
date_begin | dateTime | required
date_end | dateTime
provider_id | invoice:glnPartyType | required
responsible_id | invoice:glnPartyType | required
billing_role | derived by: NMTOKEN | both
medical_role | derived by: NMTOKEN | self_employed
body_location | derived by: NMTOKEN | none
unit_mt | 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 | 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_original | double | required
amount_modified | double | required
vat_rate | derived by: double | 0.0
section_code | invoice:stringType1_9
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
This attribute is copied unaltered from the received request into this response.
tariff_type tariff_type is the official 3-character designator of the used tariff as given by Forum Datenaustausch
This attribute is copied unaltered from the received request into this response.
code code is the code of the service record as given by the used tariff catalog
This attribute is copied unaltered from the received request into this response.
ref_code ref_code is a back-reference code ("parent code") to a previously given service
This attribute is copied unaltered from the received request into this response.
name name is the official service name as given by the used tariff catalog
This attribute is copied unaltered from the received request into this response.
session session refers to a specific patient contact number, also known as a session number, that the service belongs to.
This attribute is copied unaltered from the received request into this response.
group_size group_size defines the participating group size of a service whose quantity is calculated by the "Divisor Method". It should be noted that the group_size is declarative only with a default value equals to 1 implicitly meaning that it is NO service defined via the "Divisor Method" as the group size for such a service is always larger than 1.

Please note that in the "Divisor Method" the quantity is coded by definition as follows: quantity = effective_quantity / group_size.
This attribute is copied unaltered from the received request into this response.

quantity_original quantity_original is the original unaltered quantity from the request
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 (cf. attribute request/payload@storno)
  • a zero quantity is used for "non-billable" and "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.
This attribute is copied unaltered from the received request into this response.
quantity_modified quantity_modified is the modified quantity of this service
Note, that the modification can span the whole value range as double, spanning negative, zero and positive fractional values!
date_begin date_begin is the date when the service was (first) applied
This attribute is copied unaltered from the received request into this response.
date_end date_end is the date when the service was last applied.
This attribute is copied unaltered from the received request into this response.
provider_id provider_id is the provider's GLN identification that physically applied the service
This attribute is copied unaltered from the received request into this response.
responsible_id responsible_id is the responsible person's GLN identification who has medical responsibility for the applied service
This attribute is copied unaltered from the received request into this response.
billing_role billing_role is the extended tariff defined billing role encoded by a terminal set of tokens.
  • mt: the billing role is mt (medical part only) - mt means that unit_tt=0 in most cases (there are exceptions defined in the tariff)!
  • tt: the billing role is tt (technical part only) - tt means that unit_mt=0 in most cases (there are exceptions defined in the tariff)!
  • both: the billing role is both (medical+technical part) - both means that both parts are billed. This is the default.
  • none: the billing role is none (neither medical nor technical part is billed) - none means that unit_mt=0 and unit_tt=0 in most cases!

This attribute is copied unaltered from the received request into this response.
medical_role medical_role is the extended tariff defined medical role encoded by a terminal set of tokens. Some rules in extended tariffs are based on the value of the medical_role and thus the medical_role needs to be known for a successful re-validation of these services.
  • self_employed: the medical role is self_employed(default)
  • employee: the medical role is employee

This attribute is copied unaltered from the received request into this response.
body_location body_location is the extended tariff defined side location encoded by a terminal set of tokens.
  • none: the location is none (default) - no side specific location
  • left: the location is left - the service was applied on the left body side
  • right: the location is right - the service was applied on the right body side
  • both: the location is both - the service was applied on both body sides

This attribute is copied unaltered from the received request into this response.
unit_mt unit_mt is the tax point of the medical part (TP(mt)) of the applied service
This attribute is copied unaltered from the received request into this response.
unit_factor_mt unit_factor_mt is the tax point value of the medical part (TPV(mt)) of the applied service
This attribute is copied unaltered from the received request into this response.
scale_factor_mt scale_factor_mt is an internal scale factor of the medical part of the applied service
This attribute is copied unaltered from the received request into this response.
external_factor_mt external_factor_mt is a external scale factor (given by the main software) for the medical part of the applied service
This attribute is copied unaltered from the received request into this response.
amount_mt amount_mt is the charged amount of the medical part of the applied service taking into account the quantity_modified rather than quantity_original.
Note, that amount_mt must fulfill the equation
«external_factor_mt * quantity_modified * unit_mt * unit_factor_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
This attribute is copied unaltered from the received request into this response.
unit_factor_tt unit_factor_tt is the tax point value of the technical part (TPV(tt)) of the applied service
This attribute is copied unaltered from the received request into this response.
scale_factor_tt scale_factor_tt is an internal scale factor of the technical part of the applied service
This attribute is copied unaltered from the received request into this response.
external_factor_tt external_factor_tt is a external scale factor (given by the main software) for the technical part of the applied service
This attribute is copied unaltered from the received request into this response.
amount_tt amount_tt is the charged amount of the technical part of the applied service taking into account the quantity_modified rather than quantity_original.
Note, that amount_tt must fulfill the equation
«external_factor_tt * quantity_modified * unit_tt * unit_factor_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_original | amount_original is the original and unaltered charged amount from the request
amount_modified | amount_modified is the modified charged amount of the applied service consisting of (amount_mt + amount_tt) taking into account the quantity_modified rather than quantity_original.
vat_rate vat_rate is the applicable vat rate for the applied service given as a percentage factor
This attribute is copied unaltered from the received request into this response.
section_code the optional section_code stems from a variable set defined by "OAAT-OTMA - Reglement Fachbereiche", that designates the service-providing department within a hospital or medical practice, e.g. 'M100.06' for the gastroenterology department.

The list of all departments is documented elsewhere on the "OAAT-OTMA" website, whereby the tariffs used, the law applied or special contracts stipulates the application/usage of the section code (primarily for body@role=hospital, body@role=rehab_clinic, body@role=psychiatric_clinic).
This attribute is copied unaltered from the received request into this response.

remark remark is an optional remark for the applied service
This attribute is copied unaltered from the received request into this response.
service_attributes service_attributes is a 32 bit integer where each bit defines a certain refinement/enhancement to the already supplied data.
This attribute is copied unaltered from the received request into this response.
attributes enumerations
Name | Extension | Base | Value | Annotations
billing_role | NMTOKEN | mt | the billing role is mt (medical part only) - mt means that unit_tt=0 in most cases (there are exceptions defined in the tariff)!
billing_role | NMTOKEN | tt | the billing role is tt (technical part only) - tt means that unit_mt=0 in most cases (there are exceptions defined in the tariff)!
billing_role | NMTOKEN | both | the billing role is both (medical+technical part) - both means that both parts are billed. This is the default.
billing_role | NMTOKEN | none | the billing role is none (neither medical nor technical part is billed) - none means that unit_mt=0 and unit_tt=0 in most cases!
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
body_location | NMTOKEN | both | the location is both - the service was applied on both body sides
medical_role | NMTOKEN | self_employed | the medical role is self_employed(default)
medical_role | NMTOKEN | employee | the medical role is employee
source | <element name="service_ex" type="invoice:serviceExType"/>


element servicesType/service

Annotation The service element describes the service of a simple tariff basically consisting of TP, TPV and amount.

It should be noted that only the set of modified services must be specified here.

diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:serviceType
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
group_size | positiveInteger | 1
quantity_original | double | required
quantity_modified | double | required
date_begin | dateTime | required
date_end | dateTime
provider_id | invoice:glnPartyType | required
responsible_id | invoice:glnPartyType | required
body_location | derived by: NMTOKEN | none
unit | double | required
unit_factor | derived by: double | 1.0
external_factor | derived by: double | 1.0
amount_original | double | required
amount_modified | double | required
vat_rate | derived by: double | 0
section_code | invoice:stringType1_9
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
This attribute is copied unaltered from the received request into this response.
code code is the code of the service record as given by the used tariff catalog
This attribute is copied unaltered from the received request into this response.
ref_code ref_code is a back-reference code ("parent code") to a previously given service
This attribute is copied unaltered from the received request into this response.
name name is the official service name as given by the used tariff catalog
This attribute is copied unaltered from the received request into this response.
session session refers to a specific patient contact number, also known as a session number, that the service belongs to.
This attribute is copied unaltered from the received request into this response.
group_size group_size defines the participating group size of a service whose quantity is calculated by the "Divisor Method". It should be noted that the group_size is declarative only with a default value equals to 1 implicitly meaning that it is NO service defined via the "Divisor Method" as the group size for such a service is always larger than 1.

Please note that in the "Divisor Method" the quantity is coded by definition as follows: quantity = effective_quantity / group_size.
This attribute is copied unaltered from the received request into this response.

quantity_original quantity_original is the original unaltered quantity from the request
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 (cf. attribute request/payload@storno)
  • a zero quantity is used for "non-billable" and "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.
This attribute is copied unaltered from the received request into this response.
quantity_modified quantity_modified is the modified quantity of this service
Note, that the modification can span the whole value range as double, spanning negative, zero and positive fractional values!
date_begin date_begin is the date when the service was (first) applied
This attribute is copied unaltered from the received request into this response.
date_end date_end is the date when the service was last applied.
This attribute is copied unaltered from the received request into this response.
provider_id provider_id is the provider's GLN identification that physically applied the service
This attribute is copied unaltered from the received request into this response.
responsible_id responsible_id is the responsible person's GLN identification who has medical responsibility for the applied service
This attribute is copied unaltered from the received request into this response.
body_location body_location is the extended tariff defined side location encoded by a terminal set of tokens.
  • none: the location is none (default) - no side specific location
  • left: the location is left - the service was applied on the left body side
  • right: the location is right - the service was applied on the right body side
  • both: the location is both - the service was applied on both body sides

This attribute is copied unaltered from the received request into this response.
unit unit is the tax point (TP) respectively costweight or the price of the applied service
This attribute is copied unaltered from the received request into this response.
unit_factor unit_factor is the tax point value (TPV) or baserate of the applied service
This attribute is copied unaltered from the received request into this response.
external_factor external_factor is a external scale factor (given by the main software) for the applied service
This attribute is copied unaltered from the received request into this response.
amount_original | amount_original is the original and unaltered charged amount from the request
amount_modified amount_modified is the modified charged amount of the applied service taking into account the quantity_modified rather than quantity_original.
Note, that amount must fulfill the equation:
«external_factor * quantity_modified * unit * unit_factor »
for non-DRG services, whereas for DRG services (SwissDRG|TARPSY|STReha) the following equation holds true:
«cost_fraction * external_factor * quantity_modified * unit * unit_factor »
Both equations are 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
This attribute is copied unaltered from the received request into this response.
section_code the optional section_code stems from a variable set defined by "OAAT-OTMA - Reglement Fachbereiche", that designates the service-providing department within a hospital or medical practice, e.g. 'M100.06' for the gastroenterology department.

The list of all departments is documented elsewhere on the "OAAT-OTMA" website, whereby the tariffs used, the law applied or special contracts stipulates the application/usage of the section code (primarily for body@role=hospital, body@role=rehab_clinic, body@role=psychiatric_clinic).
This attribute is copied unaltered from the received request into this response.

remark remark is an optional remark for the applied service
This attribute is copied unaltered from the received request into this response.
service_attributes service_attributes is a 32 bit integer where each bit defines a certain refinement/enhancement to the already supplied data.
This attribute is copied unaltered from the received request into this response.
attributes enumerations
Name | Extension | Base | Value | Annotations
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
body_location | NMTOKEN | both | the location is both - the service was applied on both body sides
source | <element name="service" type="invoice:serviceType"/>


element acceptedTPType/balance

Annotation | The balance element supplies all needed accounting data for the given TP case. Especially worth mentioning is balance@amount_paid, which represents the amount paid by the insurance company in this case.
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:balanceTPType
properties
isRef | 0
content | complex
attributes parameters
Name | Type | Use | Default | Fixed
currency | string | CHF
amount | double | required
amount_reminder | double | 0
amount_due | double | required
amount_delta | double | 0
amount_paid | double | required
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.
The amount is copied unaltered from the received request into this response.
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.
The amount_reminder is copied unaltered from the received request into this response.
amount_due amount_due is the amount due for the invoice/reminder (and coded into a esrQR payment transaction) calculated as
«amount_due = amount + amount_reminder»
where the used summands are 2-digit precision amounts and the result is finally rounded half up ("Kaufmännisches Runden")
The amount_due is copied unaltered from the received request into this response.
amount_delta amount_delta is the summed difference of the service amounts «amount_original - amount_modified» over all modified services.
Please note, that this amount can either be negative, null or positive and will be deducted from amount_due formulating the amount_paid.
amount_paid amount_paid is the amount that the healthcare insurance is paying to the biller taking into account taking into account any modified services.
«amount_paid = amount_due - amount_delta»
where the used summands are 2-digit precision amounts and the result is finally rounded half up ("Kaufmännisches Runden")
source | <element name="balance" type="invoice:balanceTPType"/>


element acceptedTPType/reimbursement

Annotation The reimbursement element defines payback data for a new payment process with the biller of the request as debitor and the debitor of the request as creditor. Of course, the element is only defined if such a payback becomes necessary that is if balance@amount_paid is negative and the the base invoice/reminder is already paid out.

If balance@amount_paid is negative but the base invoice is not already paid out, than a real money transaction is not taking place and thus the 'reimbursement' element must not be defined!

diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:reimbursementType
properties
isRef | 0
minOcc | 0
maxOcc | 1
content | complex
children | invoice:debitor invoice:esrQR invoice:esrQRRed
attributes parameters
Name | Type | Use | Default | Fixed
vat | double | required
vat_number | invoice:stringType1_15
attributes annotations
Name | Notes
vat | vat is the overall total vat amount -summed up over all individual vat rates- relevant for the given amount_paid!
vat_number vat_number is the individual vat number of the provider as given by the "Swiss Federal Tax Administration". 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. the electronic form "CHE123456789" is printed as CHE-123.456.789 MWST (for german language!)
If the provider does not have to pay vat, leave the field empty.
source | <element name="reimbursement" type="invoice:reimbursementType" minOccurs="0"/>


element bodyType/documents

Annotation | The documents element is an optional container for including inline, Base64-coded documents.
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 physical document of an allowed MIME type that is included in the infoset inline and Base64-coded.
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | invoice:documentType
properties
isRef | 0
minOcc | 1
maxOcc | unbounded
content | complex
children | invoice:base64
attributes parameters
Name | Type | Use | Default | Fixed
filename | invoice:filenameType | required
documentType | derived by: NMTOKEN | required
mimeType | derived by: string | required
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.
documentType documentType describes the document in terms of its semantic content encoded by a terminal set of tokens
  • Report: the semantic content is of type Report
  • Image: the semantic content is of type Image
  • Unemployability: the semantic content is of type Unemployability
  • Questionnaire: the semantic content is of type Questionnaire
  • Notification: the semantic content is of type Notification
  • Planning: the semantic content is of type Planning
  • Prescription: the semantic content is of type Prescription
  • SalaryCession: the semantic content is of type Salary Cession
  • UndefinedDoc: the semantic content is unknown or undefined and thus the type is Undefined Document
mimeType | mimeType defines the Multipurpose Internet Mail Extension (MIME) type of the document. The MIME type bassically allows a type definition of the document as given in IANA: MIME Media Types and is used to reducethe allowed document space to application/pdf, image/jpeg, and image/png by defining the appropriate pattern
attributes enumerations
Name | Extension | Base | Value | Annotations
documentType | NMTOKEN | Report | the semantic content is of type Report
documentType | NMTOKEN | Image | the semantic content is of type Image
documentType | NMTOKEN | Unemployability | the semantic content is of type Unemployability
documentType | NMTOKEN | Questionnaire | the semantic content is of type Questionnaire
documentType | NMTOKEN | Notification | the semantic content is of type Notification
documentType | NMTOKEN | Planning | the semantic content is of type Planning
documentType | NMTOKEN | Prescription | the semantic content is of type Prescription
documentType | NMTOKEN | SalaryCession | the semantic content is of type Salary Cession
documentType | NMTOKEN | UndefinedDoc | the semantic content is unknown or undefined and thus the type is Undefined Document
source | <element name="document" type="invoice:documentType" maxOccurs="unbounded"/>


element documentType/base64

Annotation | The base64 element defines the document inline and as BASE64-coded octet streams
diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | base64Binary
properties
isRef | 0
content | simple
source | <element name="base64" type="base64Binary"/>


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 (the biller of the request).
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 GLN (the mirrored transport@from from the request).
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 responseType
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

Alphabetical list of used XSD definitions

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

A
acceptedTPType
acceptedTSType
B
balanceTPType
balanceTSType
billerGLNAddressType
billersAddressType
bodyType
C
companyType
contactAddressType
countryType
creditType
D
debitorAddressType
dependsOnType
documentType
documentsType
ds_CanonicalizationMethodType
ds_CryptoBinary
ds_DSAKeyValueType
ds_DigestMethodType
ds_DigestValueType
ds_HMACOutputLengthType
ds_KeyInfoType
ds_KeyValueType
ds_ManifestType
ds_ObjectType
ds_PGPDataType
ds_RSAKeyValueType
ds_ReferenceType
ds_RetrievalMethodType
ds_SPKIDataType
ds_SignatureMethodType
ds_SignaturePropertiesType
ds_SignaturePropertyType
ds_SignatureType
ds_SignatureValueType
ds_SignedInfoType
ds_TransformType
ds_TransformsType
ds_X509DataType
ds_X509IssuerSerialType
E
employeeType
errorType
esrAddressType
esrQRRedType
esrQRType
F
filenameType
G
garantType
glnPartyType
guidType
I
insuranceAddressType
invoiceType
iso3166A2Type
N
notificationType
O
onlineAddressType
P
patientAddressType
payantType
payloadType
pendingType
personType
postalAddressType
processingType
prologType
providerGLNAddressType
providersAddressType
R
reimbursementType
rejectedType
reminderType
responseType
S
serviceExType
serviceType
servicesType
softwareType
soldantType
ssnPartyType
statusType
streetType
stringType1_10
stringType1_100
stringType1_140
stringType1_15
stringType1_25
stringType1_255
stringType1_2800
stringType1_3
stringType1_30
stringType1_35
stringType1_350
stringType1_50
stringType1_6
stringType1_70
stringType1_700
stringType1_80
stringType1_9
T
telecomAddressType
transportType
treatmentType
X
xenc_AgreementMethodType
xenc_CipherDataType
xenc_CipherReferenceType
xenc_EncryptedDataType
xenc_EncryptedKeyType
xenc_EncryptedType
xenc_EncryptionMethodType
xenc_EncryptionPropertiesType
xenc_EncryptionPropertyType
xenc_KeySizeType
xenc_ReferenceType
xenc_TransformsType
Z


complexType acceptedTPType

diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | extension of invoice:statusType
properties
base invoice:statusType
children | invoice:explanation invoice:services invoice:balance invoice:reimbursement
used by
element payantType/accepted
attributes parameters
Name | Type | Use | Default | Fixed
status_in | derived by: NMTOKEN | required
status_out | derived by: NMTOKEN | required
attributes annotations
Name Notes
status_in status_in is the status of the request (given by the object reference chain) before any processing or analysis is done encoded by a terminal set of tokens
  • unknown: the status is unknown - the given object reference is unknown
  • ambiguous: the status is ambiguous - the given object reference delivers more than one result
  • received: the status is received - nothing done so far except receiving the request
  • frozen: the status is frozen - the request is not processed until further data is provided
  • processed: the status is processed - the request has passed all processing and analysis
  • granted: the status is granted - the request is accepted and archived. In case of a invoice/reminder object the requested amount was paid to the biller.
  • canceled: the status is canceled - the request is canceled and archived with reject status
  • claimed: the status is claimed - a reimbursement process was invoked by sending back the payback information
  • reimbursed: the status is reimbursed - the reimbursement process was completed as the amount was paid back by the biller
status_out status_out is the status of the request (given by the object reference chain) after all processing or analysis is done encoded by a terminal set of tokens
  • unknown: the status is unknown - the given object reference is unknown
  • ambiguous: the status is ambiguous - the given object reference delivers more than one result
  • received: the status is received - nothing done so far except receiving the request
  • frozen: the status is frozen - the request is not processed until further data is provided
  • processed: the status is processed - the request has passed all processing and analysis
  • granted: the status is granted - the request is accepted and archived. In case of a invoice/reminder object the requested amount was paid to the biller.
  • canceled: the status is canceled - the request is canceled and archived with reject status
  • claimed: the status is claimed - a reimbursement process was invoked by sending back the payback information
  • reimbursed: the status is reimbursed - the reimbursement process was completed as the amount was paid back by the biller
Extensions
Annotation | Base
Definition for a response status container of type «accepted» | invoice:statusType
source <complexType name="acceptedTPType">
<complexContent>
<extension base="invoice:statusType">
<sequence>
<element name="explanation" type="invoice:stringType1_2800" minOccurs="0"/>
<element name="services" type="invoice:servicesType" minOccurs="0"/>
<element name="balance" type="invoice:balanceTPType"/>
<element name="reimbursement" type="invoice:reimbursementType" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
</complexType>


complexType acceptedTSType

diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | extension of invoice:statusType
properties
base invoice:statusType
children | invoice:explanation invoice:balance invoice:reimbursement
used by
element soldantType/accepted
attributes parameters
Name | Type | Use | Default | Fixed
status_in | derived by: NMTOKEN | required
status_out | derived by: NMTOKEN | required
attributes annotations
Name Notes
status_in status_in is the status of the request (given by the object reference chain) before any processing or analysis is done encoded by a terminal set of tokens
  • unknown: the status is unknown - the given object reference is unknown
  • ambiguous: the status is ambiguous - the given object reference delivers more than one result
  • received: the status is received - nothing done so far except receiving the request
  • frozen: the status is frozen - the request is not processed until further data is provided
  • processed: the status is processed - the request has passed all processing and analysis
  • granted: the status is granted - the request is accepted and archived. In case of a invoice/reminder object the requested amount was paid to the biller.
  • canceled: the status is canceled - the request is canceled and archived with reject status
  • claimed: the status is claimed - a reimbursement process was invoked by sending back the payback information
  • reimbursed: the status is reimbursed - the reimbursement process was completed as the amount was paid back by the biller
status_out status_out is the status of the request (given by the object reference chain) after all processing or analysis is done encoded by a terminal set of tokens
  • unknown: the status is unknown - the given object reference is unknown
  • ambiguous: the status is ambiguous - the given object reference delivers more than one result
  • received: the status is received - nothing done so far except receiving the request
  • frozen: the status is frozen - the request is not processed until further data is provided
  • processed: the status is processed - the request has passed all processing and analysis
  • granted: the status is granted - the request is accepted and archived. In case of a invoice/reminder object the requested amount was paid to the biller.
  • canceled: the status is canceled - the request is canceled and archived with reject status
  • claimed: the status is claimed - a reimbursement process was invoked by sending back the payback information
  • reimbursed: the status is reimbursed - the reimbursement process was completed as the amount was paid back by the biller
Extensions
Annotation | Base
Definition for a response status container of type «accepted» | invoice:statusType
source <complexType name="acceptedTSType">
<complexContent>
<extension base="invoice:statusType">
<sequence>
<element name="explanation" type="invoice:stringType1_2800" minOccurs="0"/>
<element name="balance" type="invoice:balanceTSType"/>
<element name="reimbursement" type="invoice:reimbursementType" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
</complexType>


complexType balanceTPType

diagram
namespace http://www.forum-datenaustausch.ch/invoice
used by
element acceptedTPType/balance
attributes parameters
Name | Type | Use | Default | Fixed
currency | string | CHF
amount | double | required
amount_reminder | double | 0
amount_due | double | required
amount_delta | double | 0
amount_paid | double | required
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.
The amount is copied unaltered from the received request into this response.
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.
The amount_reminder is copied unaltered from the received request into this response.
amount_due amount_due is the amount due for the invoice/reminder (and coded into a esrQR payment transaction) calculated as
«amount_due = amount + amount_reminder»
where the used summands are 2-digit precision amounts and the result is finally rounded half up ("Kaufmännisches Runden")
The amount_due is copied unaltered from the received request into this response.
amount_delta amount_delta is the summed difference of the service amounts «amount_original - amount_modified» over all modified services.
Please note, that this amount can either be negative, null or positive and will be deducted from amount_due formulating the amount_paid.
amount_paid amount_paid is the amount that the healthcare insurance is paying to the biller taking into account taking into account any modified services.
«amount_paid = amount_due - amount_delta»
where the used summands are 2-digit precision amounts and the result is finally rounded half up ("Kaufmännisches Runden")
source <complexType name="balanceTPType">
<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_due" type="double" use="required"/>
<attribute name="amount_delta" type="double" default="0"/>
<attribute name="amount_paid" type="double" use="required"/>
</complexType>


complexType balanceTSType

diagram
namespace http://www.forum-datenaustausch.ch/invoice
used by
element acceptedTSType/balance
attributes parameters
Name | Type | Use | Default | Fixed
currency | string | CHF
amount | double | required
amount_reminder | double | 0
amount_due | double | required
amount_paid | double | required
amount_unpaid | double | required
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.
The amount is copied unaltered from the received request into this response.
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.
The amount_reminder is copied unaltered from the received request into this response.
amount_due amount_due is the amount due for the invoice/reminder (and coded into a esrQR payment transaction) calculated as
«amount_due = amount + amount_reminder»
where the used summands are 2-digit precision amounts and the result is finally rounded half up ("Kaufmännisches Runden")
The amount_due is copied unaltered from the received request into this response.
amount_paid amount_paid is the amount that the insurance is paying to the biller taking into account all legally possible deductibles.
«amount_paid = amount_due - franchise_reduction - retention_reduction»
Please note, that amount_paid is finally rounded half up ("Kaufmännisches Runden")
amount_unpaid amount_unpaid is the amount not yet paid that will finally be charged directly to the guarantor (patient).
«amount_unpaid = amount_due - amount_paid»
where the used summands are 2-digit precision amounts and the result is finally rounded half up ("Kaufmännisches Runden")
source <complexType name="balanceTSType">
<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_due" type="double" use="required"/>
<attribute name="amount_paid" type="double" use="required"/>
<attribute name="amount_unpaid" type="double" use="required"/>
</complexType>


complexType billerGLNAddressType

diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:company invoice:person
used by
element billersAddressType/biller_gln
attributes parameters
Name | Type | Use | Default | Fixed
gln | invoice:glnPartyType | required
attributes annotations
Name Notes
gln The gln is the biller's required GLN as defined by RefData
If in agreement with the health insurance, the GLN given can be a Swiss SSN (social security number), provided that the corresponding treatment is carried out by the patient himself or a relative of the patient.
source <complexType name="billerGLNAddressType">
<choice>
<element name="company" type="invoice:companyType"/>
<element name="person" type="invoice:personType"/>
</choice>
<attribute name="gln" type="invoice:glnPartyType" use="required"/>
</complexType>


complexType billersAddressType

diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:biller_gln invoice:biller_zsr
used by
element bodyType/billers
source <complexType name="billersAddressType">
<sequence>
<element name="biller_gln" type="invoice:billerGLNAddressType"/>
<element name="biller_zsr" type="invoice:zsrAddressType" minOccurs="0"/>
</sequence>
</complexType>


complexType bodyType

diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:prolog invoice:billers invoice:debitor invoice:providers invoice:insurance invoice:patient invoice:contact invoice:treatment invoice:tiers_garant invoice:tiers_soldant invoice:tiers_payant invoice:documents
used by
element payloadType/body
source <complexType name="bodyType">
<sequence>
<element name="prolog" type="invoice:prologType"/>
<element name="billers" type="invoice:billersAddressType"/>
<element name="debitor" type="invoice:debitorAddressType"/>
<element name="providers" type="invoice:providersAddressType"/>
<element name="insurance" type="invoice:insuranceAddressType"/>
<element name="patient" type="invoice:patientAddressType"/>
<element name="contact" type="invoice:contactAddressType"/>
<element name="treatment" type="invoice:treatmentType"/>
<choice>
<element name="tiers_garant" type="invoice:garantType"/>
<element name="tiers_soldant" type="invoice:soldantType"/>
<element name="tiers_payant" type="invoice:payantType"/>
</choice>
<element name="documents" type="invoice:documentsType" minOccurs="0"/>
</sequence>
</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 billerGLNAddressType/company debitorAddressType/company providerGLNAddressType/company zsrAddressType/company insuranceAddressType/company contactAddressType/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 contactAddressType

diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:person invoice:company invoice:employee
used by
element bodyType/contact
attributes parameters
Name Type Use Default Fixed
gln invoice:glnPartyType
attributes annotations
Name Notes
gln gln is the contact's GLN as defined by RefData
Note, that this is the GLN of the given person or company (it is never a GLN of an employee!)
source <complexType name="contactAddressType">
<choice>
<element name="person" type="invoice:personType"/>
<sequence>
<element name="company" type="invoice:companyType"/>
<element name="employee" type="invoice:employeeType" minOccurs="0"/>
</sequence>
</choice>
<attribute name="gln" type="invoice:glnPartyType"/>
</complexType>


complexType countryType

diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | extension of invoice:stringType1_35
properties
base invoice:stringType1_35
used by
element postalAddressType/country
facets
minLength | 1
maxLength | 35
attributes parameters
Name Type Use Default Fixed
country_code invoice:iso3166A2Type
attributes annotations
Name | Notes
country_code | the optional country_code is the ISO designator of the country as two-letter ISO 3166-1 alpha-2 code.
Extensions
Annotation | Base
Definition for the country container (a subcontainer of the address definition) giving the country and its ISO 3166-1 alpha-2 designator | invoice:stringType1_35
source <complexType name="countryType">
<simpleContent>
<extension base="invoice:stringType1_35">
<attribute name="country_code" type="invoice:iso3166A2Type"/>
</extension>
</simpleContent>
</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 | derived by: 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 new 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 always be the same for a certain 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 always be the same for a certain credit object reference!
source <complexType name="creditType">
<attribute name="request_timestamp" use="required">
<simpleType>
<restriction base="unsignedLong">
<minInclusive value="1420066800"/>
<maxInclusive value="2890245600"/>
</restriction>
</simpleType>
</attribute>
<attribute name="request_date" type="dateTime" use="required"/>
<attribute name="request_id" type="invoice:stringType1_35" use="required"/>
</complexType>


complexType debitorAddressType

diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:company invoice:person
used by
element bodyType/debitor
attributes parameters
Name | Type | Use | Default | Fixed
gln | invoice:glnPartyType | required
uid invoice:stringType1_15
attributes annotations
Name Notes
gln gln is the debitor's GLN number as defined by RefData
Please note, that the GLN is required and therefore a pseudo GLN from the private sector (e.g. 2000000000008) must be used, if the debitor does not have an official GLN
uid uid is the UID number in the electronic layout as defined by the "Swiss Federal Tax Administration".
In the electronic layout all punctuation characters ('-' and '.') are striped. Consequently, the UID number must be expanded appropriately prior to be printed, e.g.
  • CHE123456789 in the electronic layout is printed as CHE-123.456.789
source <complexType name="debitorAddressType">
<choice>
<element name="company" type="invoice:companyType"/>
<element name="person" type="invoice:personType"/>
</choice>
<attribute name="gln" type="invoice:glnPartyType" use="required"/>
<attribute name="uid" type="invoice:stringType1_15"/>
</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 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
used by
element documentsType/document
attributes parameters
Name | Type | Use | Default | Fixed
filename | invoice:filenameType | required
documentType | derived by: NMTOKEN | required
mimeType | derived by: string | required
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.
documentType documentType describes the document in terms of its semantic content encoded by a terminal set of tokens
  • Report: the semantic content is of type Report
  • Image: the semantic content is of type Image
  • Unemployability: the semantic content is of type Unemployability
  • Questionnaire: the semantic content is of type Questionnaire
  • Notification: the semantic content is of type Notification
  • Planning: the semantic content is of type Planning
  • Prescription: the semantic content is of type Prescription
  • SalaryCession: the semantic content is of type Salary Cession
  • UndefinedDoc: the semantic content is unknown or undefined and thus the type is Undefined Document
mimeType | mimeType defines the Multipurpose Internet Mail Extension (MIME) type of the document. The MIME type bassically allows a type definition of the document as given in IANA: MIME Media Types and is used to reducethe allowed document space to application/pdf, image/jpeg, and image/png by defining the appropriate pattern
attributes enumerations
Name | Extension | Base | Value | Annotations
documentType | NMTOKEN | Report | the semantic content is of type Report
documentType | NMTOKEN | Image | the semantic content is of type Image
documentType | NMTOKEN | Unemployability | the semantic content is of type Unemployability
documentType | NMTOKEN | Questionnaire | the semantic content is of type Questionnaire
documentType | NMTOKEN | Notification | the semantic content is of type Notification
documentType | NMTOKEN | Planning | the semantic content is of type Planning
documentType | NMTOKEN | Prescription | the semantic content is of type Prescription
documentType | NMTOKEN | SalaryCession | the semantic content is of type Salary Cession
documentType | NMTOKEN | UndefinedDoc | the semantic content is unknown or undefined and thus the type is Undefined Document
source <complexType name="documentType">
<sequence>
<element name="base64" type="base64Binary"/>
</sequence>
<attribute name="filename" type="invoice:filenameType" use="required"/>
<attribute name="documentType" use="required">
<simpleType>
<restriction base="NMTOKEN">
<enumeration value="Report"/>
<enumeration value="Image"/>
<enumeration value="Unemployability"/>
<enumeration value="Questionnaire"/>
<enumeration value="Notification"/>
<enumeration value="Planning"/>
<enumeration value="Prescription"/>
<enumeration value="SalaryCession"/>
<enumeration value="UndefinedDoc"/>
</restriction>
</simpleType>
</attribute>
<attribute name="mimeType" use="required">
<simpleType>
<restriction base="string">
<pattern value="(application/pdf|image/jpeg|image/png)"/>
</restriction>
</simpleType>
</attribute>
</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 employeeType

diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:familyname invoice:givenname invoice:telecom invoice:online
used by
element contactAddressType/employee
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="employeeType">
<sequence>
<element name="familyname" type="invoice:stringType1_35"/>
<element name="givenname" type="invoice:stringType1_35" minOccurs="0"/>
<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 errorType

diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | extension of invoice:notificationType
properties
base invoice:notificationType
used by
element rejectedType/error
attributes parameters
Name | Type | Use | Default | Fixed
code | invoice:stringType1_35 | required
text | invoice:stringType1_700 | required
error_value invoice:stringType1_350
valid_value invoice:stringType1_350
record_id | positiveInteger
attributes annotations
Name | Notes
error_value | error_value is a textual description what within the currently used contracts is erroneous (e.g. wrong tax point values, illegal use of services and the like).
code | code is a code of the notification. These codes are insurance specific or the codes recommended by the Forum Datenaustausch.
valid_value | valid_value is a textual description that should be used instead of the error_value.
text | text is the textual description of the notification in the language defined by the response@language attribute
record_id record_id is a record sequence number from the request uniquely identifying the service record.
Of course, if it is not a service related error then record_id is undefined.
Extensions
Annotation | Base
Definition for an error container | invoice:notificationType
source <complexType name="errorType">
<complexContent>
<extension base="invoice:notificationType">
<attribute name="error_value" type="invoice:stringType1_350"/>
<attribute name="valid_value" type="invoice:stringType1_350"/>
<attribute name="record_id" type="positiveInteger"/>
</extension>
</complexContent>
</complexType>


complexType esrAddressType

diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:person invoice:company
used by
elements esrQRRedType/creditor esrQRType/creditor reimbursementType/debitor
source <complexType name="esrAddressType">
<choice>
<element name="person" type="invoice:personType"/>
<element name="company" type="invoice:companyType"/>
</choice>
</complexType>


complexType esrQRRedType

diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:creditor
used by
element reimbursementType/esrQRRed
attributes parameters
Name | Type | Use | Default | Fixed
subtype | derived by: NMTOKEN | esrQRRed
iban | derived by: string | required
reference_number | derived by: string
alternative_scheme1 invoice:stringType1_100
alternative_scheme2 invoice:stringType1_100
payment_reason invoice:stringType1_140
payment_period | duration
attributes annotations
Name | Notes
subtype subtype is the PayInSlip with QR subtype specification encoded by a terminal set of tokens
  • esrQRRedplus: esrQRRedplus is an «PayInSlip+ with QR without amount». Furthermore, any layouted print out must not set an amount inside the QR and in the amount fields.
  • esrQRRed: esrQRRed is an ordinary «PayInSlip with QR» (Default).
iban iban is a mandatory IBAN of Switzerland or Liechtenstein (21 characters) that defines the creditor's account at the given bank.
The format of the IBAN is in the standard representation without whitespace. Pursuant to the guidelines, the IBAN should be divided up from the left in blocks of 4 characters separated by blanks when printed.
reference_number reference_number is an optional 25 character Creditor Reference number (ISO 11649)
Pursuant to the guidelines the reference number should be divided up from the right in blocks of 5 characters separated by blanks when printed.
alternative_scheme1 | alternative_scheme1 defines the 1st optional alternative scheme as defined by the Swiss QR-Invoice standard. Since the exact layout of the supplied scheme is undefined and can not be validated/covered by a data pattern, it is in the responsibility of the invoice generator to check, validate and correctly process such an alternative scheme.
alternative_scheme2 | alternative_scheme2 defines the 2nd optional alternative scheme as defined by the Swiss QR-Invoice standard. Since the exact layout of the supplied scheme is undefined and can not be validated/covered by a data pattern, it is in the responsibility of the invoice generator to check, validate and correctly process such an alternative scheme.
payment_reason | The optional payment_reason consisting of a maximum of 140 characters defining the reason for the payment. The intent of the text is purely one of the creditor.
payment_period | payment_period is the payment period in which the invoice/reminder should be paid
attributes enumerations
Name | Extension | Base | Value | Annotations
subtype | NMTOKEN | esrQRRedplus | esrQRRedplus is an «PayInSlip+ with QR without amount». Furthermore, any layouted print out must not set an amount inside the QR and in the amount fields.
subtype | NMTOKEN | esrQRRed | esrQRRed is an ordinary «PayInSlip with QR» (Default).
source <complexType name="esrQRRedType">
<sequence>
<element name="creditor" type="invoice:esrAddressType"/>
</sequence>
<attribute name="subtype" default="esrQRRed">
<simpleType>
<restriction base="NMTOKEN">
<enumeration value="esrQRRed"/>
<enumeration value="esrQRRedplus"/>
</restriction>
</simpleType>
</attribute>
<attribute name="iban" use="required">
<simpleType>
<restriction base="string">
<pattern value="(LI|CH)[0-9]{7}[0-9A-Z]{12}"/>
</restriction>
</simpleType>
</attribute>
<attribute name="reference_number">
<simpleType>
<restriction base="string">
<pattern value="RF[0-9]{2}[0-9A-Za-z]{1,21}"/>
</restriction>
</simpleType>
</attribute>
<attribute name="alternative_scheme1" type="invoice:stringType1_100"/>
<attribute name="alternative_scheme2" type="invoice:stringType1_100"/>
<attribute name="payment_reason" type="invoice:stringType1_140"/>
<attribute name="payment_period" type="duration"/>
</complexType>


complexType esrQRType

diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:creditor
used by
element reimbursementType/esrQR
attributes parameters
Name | Type | Use | Default | Fixed
subtype | derived by: NMTOKEN | esrQR
iban | derived by: string | required
reference_number | derived by: string | required
alternative_scheme1 invoice:stringType1_100
alternative_scheme2 invoice:stringType1_100
payment_reason invoice:stringType1_140
payment_period | duration
attributes annotations
Name | Notes
subtype subtype is the EsrQR subtype specification encoded by a terminal set of tokens
  • esrQRplus: esrQRplus is an «ESR+ with QR without amount». Furthermore, any layouted print out must not set an amount inside the QR and in the amount fields.
  • esrQR: esrQR is an ordinary «ESR with QR» (Default).
iban iban is a mandatory IBAN of Switzerland or Liechtenstein (21 characters) that defines the creditor's account at the given bank.
The format of the IBAN is in the standard representation without whitespace. Pursuant to the guidelines, the IBAN should be divided up from the left in blocks of 4 characters separated by blanks when printed.
reference_number reference_number is a 27-digit reference number.
Pursuant to the guidelines the reference number should be divided up from the right in blocks of 5 characters separated by blanks when printed.
alternative_scheme1 | alternative_scheme1 defines the 1st optional alternative scheme as defined by the Swiss QR-Invoice standard. Since the exact layout of the supplied scheme is undefined and can not be validated/covered by a data pattern, it is in the responsibility of the invoice generator to check, validate and correctly process such an alternative scheme.
alternative_scheme2 | alternative_scheme2 defines the 2nd optional alternative scheme as defined by the Swiss QR-Invoice standard. Since the exact layout of the supplied scheme is undefined and can not be validated/covered by a data pattern, it is in the responsibility of the invoice generator to check, validate and correctly process such an alternative scheme.
payment_reason | The optional payment_reason consisting of a maximum of 140 characters defining the reason for the payment. The intent of the text is purely one of the creditor.
payment_period | payment_period is the payment period in which the invoice/reminder should be paid
attributes enumerations
Name | Extension | Base | Value | Annotations
subtype | NMTOKEN | esrQRplus | esrQRplus is an «ESR+ with QR without amount». Furthermore, any layouted print out must not set an amount inside the QR and in the amount fields.
subtype | NMTOKEN | esrQR | esrQR is an ordinary «ESR with QR» (Default).
source <complexType name="esrQRType">
<sequence>
<element name="creditor" type="invoice:esrAddressType"/>
</sequence>
<attribute name="subtype" default="esrQR">
<simpleType>
<restriction base="NMTOKEN">
<enumeration value="esrQR"/>
<enumeration value="esrQRplus"/>
</restriction>
</simpleType>
</attribute>
<attribute name="iban" use="required">
<simpleType>
<restriction base="string">
<pattern value="(LI|CH)[0-9]{7}[0-9A-Z]{12}"/>
</restriction>
</simpleType>
</attribute>
<attribute name="reference_number" use="required">
<simpleType>
<restriction base="string">
<pattern value="[0-9]{27}"/>
</restriction>
</simpleType>
</attribute>
<attribute name="alternative_scheme1" type="invoice:stringType1_100"/>
<attribute name="alternative_scheme2" type="invoice:stringType1_100"/>
<attribute name="payment_reason" type="invoice:stringType1_140"/>
<attribute name="payment_period" type="duration"/>
</complexType>


complexType garantType

diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:notification
used by
element bodyType/tiers_garant
attributes parameters
Name | Type | Use | Default | Fixed
recipient | derived by: NMTOKEN | provider
attributes annotations
Name Notes
recipient recipient is the recipient of this TG response encoded by a terminal set of tokens
  • provider: the recipient of this TG response is the provider (Default) that initially produced and sent the TG request
  • debitor: the recipient of this TG response is the debitor that received the TG request in the first place
  • third_party: the recipient of this TG response is an unspecified third_party, known only to the producer of the TG response
attributes enumerations
Name | Extension | Base | Value | Annotations
recipient | NMTOKEN | provider | the recipient of this TG response is the provider (Default) that initially produced and sent the TG request
recipient | NMTOKEN | debitor | the recipient of this TG response is the debitor that received the TG request in the first place
recipient | NMTOKEN | third_party | the recipient of this TG response is an unspecified third_party, known only to the producer of the TG response
source <complexType name="garantType">
<sequence>
<element name="notification" type="invoice:pendingType"/>
</sequence>
<attribute name="recipient" default="provider">
<simpleType>
<restriction base="NMTOKEN">
<enumeration value="provider"/>
<enumeration value="debitor"/>
<enumeration value="third_party"/>
</restriction>
</simpleType>
</attribute>
</complexType>


complexType insuranceAddressType

diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:company invoice:person
used by
element bodyType/insurance
attributes parameters
Name | Type | Use | Default | Fixed
gln | invoice:glnPartyType | required
attributes annotations
Name | Notes
gln | gln is the insurance's GLN as defined by RefData
source <complexType name="insuranceAddressType">
<choice>
<element name="company" type="invoice:companyType"/>
<element name="person" type="invoice:personType"/>
</choice>
<attribute name="gln" type="invoice:glnPartyType" 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 | derived by: unsignedLong | required
request_date | dateTime | required
request_id | invoice:stringType1_35 | required
attributes annotations
Name Notes
request_timestamp request_timestamp (copied unaltered from the request) 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 new invoice object reference and thereafter always referenced!
request_date request_date (copied unaltered from the request) 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 always be the same for a certain invoice object reference!
request_id request_id (copied unaltered from the request) 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 always be the same for a certain invoice object reference!
source <complexType name="invoiceType">
<attribute name="request_timestamp" use="required">
<simpleType>
<restriction base="unsignedLong">
<minInclusive value="1420066800"/>
<maxInclusive value="2890245600"/>
</restriction>
</simpleType>
</attribute>
<attribute name="request_date" type="dateTime" use="required"/>
<attribute name="request_id" type="invoice:stringType1_35" use="required"/>
</complexType>


complexType notificationType

diagram
namespace http://www.forum-datenaustausch.ch/invoice
used by
element | pendingType/message
complexType | errorType
attributes parameters
Name | Type | Use | Default | Fixed
code | invoice:stringType1_35 | required
text | invoice:stringType1_700 | required
attributes annotations
Name | Notes
code | code is a code of the notification. These codes are insurance specific or the codes recommended by the Forum Datenaustausch.
text | text is the textual description of the notification in the language defined by the response@language attribute
source <complexType name="notificationType">
<attribute name="code" type="invoice:stringType1_35" use="required"/>
<attribute name="text" type="invoice:stringType1_700" use="required"/>
</complexType>


complexType onlineAddressType

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


complexType patientAddressType

diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:person
used by
element bodyType/patient
attributes parameters
Name | Type | Use | Default | Fixed
gender | derived by: NMTOKEN | required
sex | derived by: NMTOKEN | required
birthdate | date | required
ssn | invoice:ssnPartyType | required
attributes annotations
Name | Notes
gender gender defines the social gender encoded by a terminal set of tokens
  • male: the patient identifies with the gender of male
  • female: the patient identifies with the gender of female
  • diverse: the patient identifies with neither/both female and male, or identifies as transgender. Furthermore, 'diverse' is applicable if the gender is unknown, or the patient does not wish to disclosure his gender identity.
sex sex defines the medical sex which is pre-dominantly induced by the actual hormonal balance of the body. The attribute sex is encoded by a terminal set of tokens
  • male: the sex of the patient is pre-dominantly male
  • female: the sex of the patient is pre-dominantly female
birthdate | birthdate defines the birthdate of the patient
ssn the required ssn defines the social security number of the patient whereupon 3 distinguished styles are allowed:
  • 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
  • the 13 digit IDNR number of Liechtenstein ("IDNR-Nummer") beginning with 438
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 patient identifies with the gender of male
gender | NMTOKEN | female | the patient identifies with the gender of female
gender | NMTOKEN | diverse | the patient identifies with neither/both female and male, or transgender. Furthermore, 'diverse' is applicable if the gender is unknown or the patient does not wish to disclosure his gender identity.
sex | NMTOKEN | male | the sex of the patient is pre-dominantly male
sex | NMTOKEN | female | the sex of the patient is pre-dominantly female
source <complexType name="patientAddressType">
<sequence>
<element name="person" type="invoice:personType"/>
</sequence>
<attribute name="gender" use="required">
<simpleType>
<restriction base="NMTOKEN">
<enumeration value="male"/>
<enumeration value="female"/>
<enumeration value="diverse"/>
</restriction>
</simpleType>
</attribute>
<attribute name="sex" use="required">
<simpleType>
<restriction base="NMTOKEN">
<enumeration value="male"/>
<enumeration value="female"/>
</restriction>
</simpleType>
</attribute>
<attribute name="birthdate" type="date" use="required"/>
<attribute name="ssn" type="invoice:ssnPartyType" use="required"/>
</complexType>


complexType payantType

diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:pending invoice:rejected invoice:accepted
used by
element bodyType/tiers_payant
attributes parameters
Name | Type | Use | Default | Fixed
allowModification | boolean | required
attributes annotations
Name Notes
allowModification allowModification gives or denies a placet to the health care insurance to correct quantities of services. The service quantity can be changed in the range R0+ (positive real numbers including zero), which changes the amounts of individual services as well as the total invoice amount.
This provider section is copied unaltered from the received request into this response.
source <complexType name="payantType">
<choice>
<element name="pending" type="invoice:pendingType"/>
<element name="rejected" type="invoice:rejectedType"/>
<element name="accepted" type="invoice:acceptedTPType"/>
</choice>
<attribute name="allowModification" type="boolean" use="required"/>
</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 responseType/payload
attributes parameters
Name | Type | Use | Default | Fixed
request_type | derived by: NMTOKEN | invoice
request_subtype | derived by: NMTOKEN | normal
response_timestamp | derived by: unsignedLong | required
attributes annotations
Name | Notes
request_type request_type defines the principle type of request encoded by a terminal set of tokens
  • invoice: the request is of type invoice
  • reminder: the request is of type reminder
This attribute is copied from the received request.
request_subtype request_subtype specifies the XML infoset with respect to its modification from the standard data space. Such a modification can be seen as a request variation, subsuming a specific data set, where the set of discrete subtypes is encoded by a terminal set of tokens.
  • normal: normal defines the standard (normal) XML infoset describing an ordinary invoice/reminder
  • copy: copy qualifies the XML infoset as the exact copy of a previously defined XML infoset except for the copy flag.
  • refund: refund acts on a normal XML infoset -notably sent to and paid by the health care insurance- by setting
    • the quantity = 0 of all correctly invoiced services
    • the quantity = negated (multiplied by -1) of all invoiced services that should be refunded to the health care insurance
    • the topmost object reference is the one from the normal XML infoset

    Consequently, the invoice amount becomes negative and its value defines the size of the planned refund towards the insurance company.
    If the insurance company accepts the credit note, a response with a reimbursement element (defining the necessary payment parameters) is returned to the biller.

  • storno: storno acts on a prior defined normal XML infoset by negate all quantities in order to cancel the XML request defined by the topmost reference object as a whole.
    By definition the storno of an invoice/reminder is thus the same as the original XML infoset, but altered by
    • a negated quantity (multiplied by -1) of all original services
    • a negated amount_prepaid and amount_reminder (multiplied by -1)
    This mechanism automatically produces negative amounts.

    If the storno acts on a already paid invoice/reminder, then the health care insurance sends a response with a reimbursement element (defining the necessary payment parameters) to the biller.

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

This attribute is copied from the received request
response_timestamp | response_timestamp is a UNIX timestamp defined at the moment of the response's XML infoset generation
attributes enumerations
Name | Extension | Base | Value | Annotations
request_subtype | NMTOKEN | normal | normal defines the standard (normal) XML infoset describing an ordinary invoice/reminder (Default)
request_subtype | NMTOKEN | copy | copy qualifies the XML infoset as the exact copy of a previously defined XML infoset except for the copy flag.
request_subtype | NMTOKEN | refund | refund acts on a normal XML infoset, notably sent to and paid by the health care insurance
request_subtype | NMTOKEN | storno | storno acts on a prior defined normal XML infoset by negate all quantities in order to cancel the invoice/reminder as a whole.
request_type | NMTOKEN | invoice | the request is of type invoice
request_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="request_type" default="invoice">
<simpleType>
<restriction base="NMTOKEN">
<enumeration value="invoice"/>
<enumeration value="reminder"/>
</restriction>
</simpleType>
</attribute>
<attribute name="request_subtype" default="normal">
<simpleType>
<restriction base="NMTOKEN">
<enumeration value="normal"/>
<enumeration value="copy"/>
<enumeration value="refund"/>
<enumeration value="storno"/>
</restriction>
</simpleType>
</attribute>
<attribute name="response_timestamp" use="required">
<simpleType>
<restriction base="unsignedLong">
<minInclusive value="1420066800"/>
<maxInclusive value="2890245600"/>
</restriction>
</simpleType>
</attribute>
</complexType>


complexType pendingType

diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | extension of invoice:statusType
properties
base invoice:statusType
children | invoice:explanation invoice:message
used by
elements garantType/notification soldantType/pending payantType/pending
attributes parameters
Name | Type | Use | Default | Fixed
status_in | derived by: NMTOKEN | required
status_out | derived by: NMTOKEN | required
attributes annotations
Name Notes
status_in status_in is the status of the request (given by the object reference chain) before any processing or analysis is done encoded by a terminal set of tokens
  • unknown: the status is unknown - the given object reference is unknown
  • ambiguous: the status is ambiguous - the given object reference delivers more than one result
  • received: the status is received - nothing done so far except receiving the request
  • frozen: the status is frozen - the request is not processed until further data is provided
  • processed: the status is processed - the request has passed all processing and analysis
  • granted: the status is granted - the request is accepted and archived. In case of a invoice/reminder object the requested amount was paid to the biller.
  • canceled: the status is canceled - the request is canceled and archived with reject status
  • claimed: the status is claimed - a reimbursement process was invoked by sending back the payback information
  • reimbursed: the status is reimbursed - the reimbursement process was completed as the amount was paid back by the biller
status_out status_out is the status of the request (given by the object reference chain) after all processing or analysis is done encoded by a terminal set of tokens
  • unknown: the status is unknown - the given object reference is unknown
  • ambiguous: the status is ambiguous - the given object reference delivers more than one result
  • received: the status is received - nothing done so far except receiving the request
  • frozen: the status is frozen - the request is not processed until further data is provided
  • processed: the status is processed - the request has passed all processing and analysis
  • granted: the status is granted - the request is accepted and archived. In case of a invoice/reminder object the requested amount was paid to the biller.
  • canceled: the status is canceled - the request is canceled and archived with reject status
  • claimed: the status is claimed - a reimbursement process was invoked by sending back the payback information
  • reimbursed: the status is reimbursed - the reimbursement process was completed as the amount was paid back by the biller
Extensions
Annotation | Base
Definition for a response status container of type «pending» | invoice:statusType
source <complexType name="pendingType">
<complexContent>
<extension base="invoice:statusType">
<sequence>
<element name="explanation" type="invoice:stringType1_2800" minOccurs="0"/>
<element name="message" type="invoice:notificationType" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</extension>
</complexContent>
</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 billerGLNAddressType/person debitorAddressType/person providerGLNAddressType/person zsrAddressType/person insuranceAddressType/person patientAddressType/person contactAddressType/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 invoice:country
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:streetType" minOccurs="0"/>
<element name="zip" type="invoice:zipType"/>
<element name="city" type="invoice:stringType1_35"/>
<element name="country" type="invoice:countryType" minOccurs="0"/>
</sequence>
</complexType>


complexType processingType

diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:transport
used by
element responseType/processing
source <complexType name="processingType">
<sequence>
<element name="transport" type="invoice:transportType"/>
</sequence>
</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 providerGLNAddressType

diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:company invoice:person
used by
element providersAddressType/provider_gln
attributes parameters
Name | Type | Use | Default | Fixed
gln | invoice:glnPartyType | required
gln_location | invoice:glnPartyType | required
uid invoice:stringType1_15
attributes annotations
Name | Notes
gln The gln is the provider's required GLN as defined by RefData
If in agreement with the health insurance, the GLN given can be a Swiss SSN (social security number), provided that the treatment is carried out by the patient himself or a relative of the patient.
gln_location | The gln_location codes the provider's workplace by a required GLN as defined by RefData If there is no such specific workplace defined then input the gln as gln_location, basically defining the default workplace/location.
uid uid is the UID number in the electronic layout as defined by the "Swiss Federal Tax Administration".
In the electronic layout all punctuation characters ('-' and '.') are striped. Consequently, the UID number must be expanded appropriately prior to be printed, e.g.
  • CHE123456789 in the electronic layout is printed as CHE-123.456.789
source <complexType name="providerGLNAddressType">
<choice>
<element name="company" type="invoice:companyType"/>
<element name="person" type="invoice:personType"/>
</choice>
<attribute name="gln" type="invoice:glnPartyType" use="required"/>
<attribute name="gln_location" type="invoice:glnPartyType" use="required"/>
<attribute name="uid" type="invoice:stringType1_15"/>
</complexType>


complexType providersAddressType

diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:provider_gln invoice:provider_zsr
used by
element bodyType/providers
source <complexType name="providersAddressType">
<sequence>
<element name="provider_gln" type="invoice:providerGLNAddressType"/>
<element name="provider_zsr" type="invoice:zsrAddressType" minOccurs="0"/>
</sequence>
</complexType>


complexType reimbursementType

diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:debitor invoice:esrQR invoice:esrQRRed
used by
elements acceptedTSType/reimbursement acceptedTPType/reimbursement
attributes parameters
Name | Type | Use | Default | Fixed
vat | double | required
vat_number invoice:stringType1_15
attributes annotations
Name | Notes
vat | vat is the overall total vat amount -summed up over all individual vat rates- relevant for the given amount_paid!
vat_number vat_number is the individual vat number of the provider as given by the "Swiss Federal Tax Administration". 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. the electronic form "CHE123456789" is printed as CHE-123.456.789 MWST (for german language!)
If the provider does not have to pay vat, leave the field empty.
source <complexType name="reimbursementType">
<sequence>
<element name="debitor" type="invoice:esrAddressType"/>
<choice>
<element name="esrQR" type="invoice:esrQRType"/>
<element name="esrQRRed" type="invoice:esrQRRedType"/>
</choice>
</sequence>
<attribute name="vat" type="double" use="required"/>
<attribute name="vat_number" type="invoice:stringType1_15"/>
</complexType>


complexType rejectedType

diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | extension of invoice:statusType
properties
base invoice:statusType
children | invoice:explanation invoice:error
used by
elements soldantType/rejected payantType/rejected
attributes parameters
Name | Type | Use | Default | Fixed
status_in | derived by: NMTOKEN | required
status_out | derived by: NMTOKEN | required
attributes annotations
Name Notes
status_in status_in is the status of the request (given by the object reference chain) before any processing or analysis is done encoded by a terminal set of tokens
  • unknown: the status is unknown - the given object reference is unknown
  • ambiguous: the status is ambiguous - the given object reference delivers more than one result
  • received: the status is received - nothing done so far except receiving the request
  • frozen: the status is frozen - the request is not processed until further data is provided
  • processed: the status is processed - the request has passed all processing and analysis
  • granted: the status is granted - the request is accepted and archived. In case of a invoice/reminder object the requested amount was paid to the biller.
  • canceled: the status is canceled - the request is canceled and archived with reject status
  • claimed: the status is claimed - a reimbursement process was invoked by sending back the payback information
  • reimbursed: the status is reimbursed - the reimbursement process was completed as the amount was paid back by the biller
status_out status_out is the status of the request (given by the object reference chain) after all processing or analysis is done encoded by a terminal set of tokens
  • unknown: the status is unknown - the given object reference is unknown
  • ambiguous: the status is ambiguous - the given object reference delivers more than one result
  • received: the status is received - nothing done so far except receiving the request
  • frozen: the status is frozen - the request is not processed until further data is provided
  • processed: the status is processed - the request has passed all processing and analysis
  • granted: the status is granted - the request is accepted and archived. In case of a invoice/reminder object the requested amount was paid to the biller.
  • canceled: the status is canceled - the request is canceled and archived with reject status
  • claimed: the status is claimed - a reimbursement process was invoked by sending back the payback information
  • reimbursed: the status is reimbursed - the reimbursement process was completed as the amount was paid back by the biller
Extensions
Annotation | Base
Definition for a response status container of type «rejected» | invoice:statusType
source <complexType name="rejectedType">
<complexContent>
<extension base="invoice:statusType">
<sequence>
<element name="explanation" type="invoice:stringType1_2800" minOccurs="0"/>
<element name="error" type="invoice:errorType" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</extension>
</complexContent>
</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 | derived by: unsignedLong | required
request_date | dateTime | required
request_id | invoice:stringType1_35 | required
reminder_level | derived by: NMTOKEN | 1
attributes annotations
Name Notes
request_timestamp request_timestamp (copied unaltered from the request) 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 new reminder object reference and thereafter always referenced!
request_date request_date (copied unaltered from the request) 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 always be the same for a certain reminder object reference!
request_id request_id (copied unaltered from the request) 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 always be the same for a certain 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
  • 1: the level of the reminder is 1 (default)
  • 2: the level of the reminder is 2
  • 3: the level of the reminder is 3
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" use="required">
<simpleType>
<restriction base="unsignedLong">
<minInclusive value="1420066800"/>
<maxInclusive value="2890245600"/>
</restriction>
</simpleType>
</attribute>
<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>
</complexType>


complexType responseType

diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:processing invoice:payload ds:Signature
used by
element response
attributes parameters
Name | Type | Use | Default | Fixed
language | derived by: NMTOKEN | required
modus | derived by: NMTOKEN | production
guid | invoice:guidType | required
attributes annotations
Name Notes
language language defines the used data language (for messages/errors etc.) encoded by a terminal set of ISO language specifiers.
  • de: the data language is german
  • fr: the data language is french
  • it: the data language is italian

The language used is copied from and thus defined by the request.
modus modus defines the operating modus encoded by a terminal set of tokens
  • production: the modus production (default value) is for normal processing
  • test: the modus test is for software developers to test the processing.

By definition there must not be any money flow!
guid the required guid (Globally Unique IDentifier) is an unique identifier for the current XML infoset defined as a 32 hex-digit string covered by the pattern [A-Fa-f0-9]{32}.
Please note that the generation of the guid must be in accordance with RFC 9562.
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.
source <complexType name="responseType">
<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="guid" type="invoice:guidType" use="required"/>
</complexType>


complexType serviceExType

diagram
namespace http://www.forum-datenaustausch.ch/invoice
used by
element servicesType/service_ex
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
group_size | positiveInteger | 1
quantity_original | double | required
quantity_modified | double | required
date_begin | dateTime | required
date_end | dateTime
provider_id | invoice:glnPartyType | required
responsible_id | invoice:glnPartyType | required
billing_role | derived by: NMTOKEN | both
medical_role | derived by: NMTOKEN | self_employed
body_location | derived by: NMTOKEN | none
unit_mt | 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 | 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_original | double | required
amount_modified | double | required
vat_rate | derived by: double | 0.0
section_code invoice:stringType1_9
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
This attribute is copied unaltered from the received request into this response.
tariff_type tariff_type is the official 3-character designator of the used tariff as given by Forum Datenaustausch
This attribute is copied unaltered from the received request into this response.
code code is the code of the service record as given by the used tariff catalog
This attribute is copied unaltered from the received request into this response.
ref_code ref_code is a back-reference code ("parent code") to a previously given service
This attribute is copied unaltered from the received request into this response.
name name is the official service name as given by the used tariff catalog
This attribute is copied unaltered from the received request into this response.
session session refers to a specific patient contact number, also known as a session number, that the service belongs to.
This attribute is copied unaltered from the received request into this response.
group_size group_size defines the participating group size of a service whose quantity is calculated by the "Divisor Method". It should be noted that the group_size is declarative only with a default value equals to 1 implicitly meaning that it is NO service defined via the "Divisor Method" as the group size for such a service is always larger than 1.

Please note that in the "Divisor Method" the quantity is coded by definition as follows: quantity = effective_quantity / group_size.
This attribute is copied unaltered from the received request into this response.

quantity_original quantity_original is the original unaltered quantity from the request
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 (cf. attribute request/payload@storno)
  • a zero quantity is used for "non-billable" and "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.
This attribute is copied unaltered from the received request into this response.
quantity_modified quantity_modified is the modified quantity of this service
Note, that the modification can span the whole value range as double, spanning negative, zero and positive fractional values!
date_begin date_begin is the date when the service was (first) applied
This attribute is copied unaltered from the received request into this response.
date_end date_end is the date when the service was last applied.
This attribute is copied unaltered from the received request into this response.
provider_id provider_id is the provider's GLN identification that physically applied the service
This attribute is copied unaltered from the received request into this response.
responsible_id responsible_id is the responsible person's GLN identification who has medical responsibility for the applied service
This attribute is copied unaltered from the received request into this response.
billing_role billing_role is the extended tariff defined billing role encoded by a terminal set of tokens.
  • mt: the billing role is mt (medical part only) - mt means that unit_tt=0 in most cases (there are exceptions defined in the tariff)!
  • tt: the billing role is tt (technical part only) - tt means that unit_mt=0 in most cases (there are exceptions defined in the tariff)!
  • both: the billing role is both (medical+technical part) - both means that both parts are billed. This is the default.
  • none: the billing role is none (neither medical nor technical part is billed) - none means that unit_mt=0 and unit_tt=0 in most cases!

This attribute is copied unaltered from the received request into this response.
medical_role medical_role is the extended tariff defined medical role encoded by a terminal set of tokens. Some rules in extended tariffs are based on the value of the medical_role and thus the medical_role needs to be known for a successful re-validation of these services.
  • self_employed: the medical role is self_employed(default)
  • employee: the medical role is employee

This attribute is copied unaltered from the received request into this response.
body_location body_location is the extended tariff defined side location encoded by a terminal set of tokens.
  • none: the location is none (default) - no side specific location
  • left: the location is left - the service was applied on the left body side
  • right: the location is right - the service was applied on the right body side
  • both: the location is both - the service was applied on both body sides

This attribute is copied unaltered from the received request into this response.
unit_mt unit_mt is the tax point of the medical part (TP(mt)) of the applied service
This attribute is copied unaltered from the received request into this response.
unit_factor_mt unit_factor_mt is the tax point value of the medical part (TPV(mt)) of the applied service
This attribute is copied unaltered from the received request into this response.
scale_factor_mt scale_factor_mt is an internal scale factor of the medical part of the applied service
This attribute is copied unaltered from the received request into this response.
external_factor_mt external_factor_mt is a external scale factor (given by the main software) for the medical part of the applied service
This attribute is copied unaltered from the received request into this response.
amount_mt amount_mt is the charged amount of the medical part of the applied service taking into account the quantity_modified rather than quantity_original.
Note, that amount_mt must fulfill the equation
«external_factor_mt * quantity_modified * unit_mt * unit_factor_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
This attribute is copied unaltered from the received request into this response.
unit_factor_tt unit_factor_tt is the tax point value of the technical part (TPV(tt)) of the applied service
This attribute is copied unaltered from the received request into this response.
scale_factor_tt scale_factor_tt is an internal scale factor of the technical part of the applied service
This attribute is copied unaltered from the received request into this response.
external_factor_tt external_factor_tt is a external scale factor (given by the main software) for the technical part of the applied service
This attribute is copied unaltered from the received request into this response.
amount_tt amount_tt is the charged amount of the technical part of the applied service taking into account the quantity_modified rather than quantity_original.
Note, that amount_tt must fulfill the equation
«external_factor_tt * quantity_modified * unit_tt * unit_factor_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_original | amount_original is the original and unaltered charged amount from the request
amount_modified | amount_modified is the modified charged amount of the applied service consisting of (amount_mt + amount_tt) taking into account the quantity_modified rather than quantity_original.
vat_rate vat_rate is the applicable vat rate for the applied service given as a percentage factor
This attribute is copied unaltered from the received request into this response.
section_code the optional section_code stems from a variable set defined by "OAAT-OTMA - Reglement Fachbereiche", that designates the service-providing department within a hospital or medical practice, e.g. 'M100.06' for the gastroenterology department.

The list of all departments is documented elsewhere on the "OAAT-OTMA" website, whereby the tariffs used, the law applied or special contracts stipulates the application/usage of the section code (primarily for body@role=hospital, body@role=rehab_clinic, body@role=psychiatric_clinic).
This attribute is copied unaltered from the received request into this response.

remark remark is an optional remark for the applied service
This attribute is copied unaltered from the received request into this response.
service_attributes service_attributes is a 32 bit integer where each bit defines a certain refinement/enhancement to the already supplied data.
This attribute is copied unaltered from the received request into this response.
attributes enumerations
Name | Extension | Base | Value | Annotations
billing_role | NMTOKEN | mt | the billing role is mt (medical part only) - mt means that unit_tt=0 in most cases (there are exceptions defined in the tariff)!
billing_role | NMTOKEN | tt | the billing role is tt (technical part only) - tt means that unit_mt=0 in most cases (there are exceptions defined in the tariff)!
billing_role | NMTOKEN | both | the billing role is both (medical+technical part) - both means that both parts are billed. This is the default.
billing_role | NMTOKEN | none | the billing role is none (neither medical nor technical part is billed) - none means that unit_mt=0 and unit_tt=0 in most cases!
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
body_location | NMTOKEN | both | the location is both - the service was applied on both body sides
medical_role | NMTOKEN | self_employed | the medical role is self_employed(default)
medical_role | NMTOKEN | employee | the medical role is employee
source <complexType name="serviceExType">
<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="group_size" type="positiveInteger" default="1"/>
<attribute name="quantity_original" type="double" use="required"/>
<attribute name="quantity_modified" type="double" use="required"/>
<attribute name="date_begin" type="dateTime" use="required"/>
<attribute name="date_end" type="dateTime"/>
<attribute name="provider_id" type="invoice:glnPartyType" use="required"/>
<attribute name="responsible_id" type="invoice:glnPartyType" 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"/>
<enumeration value="both"/>
</restriction>
</simpleType>
</attribute>
<attribute name="unit_mt" type="double" use="required"/>
<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" type="double" use="required"/>
<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_original" type="double" use="required"/>
<attribute name="amount_modified" 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="section_code" type="invoice:stringType1_9"/>
<attribute name="remark" type="invoice:stringType1_350"/>
<attribute name="service_attributes" type="unsignedInt" default="0"/>
</complexType>


complexType servicesType

diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:service_ex invoice:service
used by
element acceptedTPType/services
source <complexType name="servicesType">
<choice maxOccurs="unbounded">
<element name="service_ex" type="invoice:serviceExType"/>
<element name="service" type="invoice:serviceType"/>
</choice>
</complexType>


complexType serviceType

diagram
namespace http://www.forum-datenaustausch.ch/invoice
used by
element servicesType/service
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
group_size | positiveInteger | 1
quantity_original | double | required
quantity_modified | double | required
date_begin | dateTime | required
date_end | dateTime
provider_id | invoice:glnPartyType | required
responsible_id | invoice:glnPartyType | required
body_location | derived by: NMTOKEN | none
unit | double | required
unit_factor | derived by: double | 1.0
external_factor | derived by: double | 1.0
amount_original | double | required
amount_modified | double | required
vat_rate | derived by: double | 0
section_code invoice:stringType1_9
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
This attribute is copied unaltered from the received request into this response.
code code is the code of the service record as given by the used tariff catalog
This attribute is copied unaltered from the received request into this response.
ref_code ref_code is a back-reference code ("parent code") to a previously given service
This attribute is copied unaltered from the received request into this response.
name name is the official service name as given by the used tariff catalog
This attribute is copied unaltered from the received request into this response.
session session refers to a specific patient contact number, also known as a session number, that the service belongs to.
This attribute is copied unaltered from the received request into this response.
group_size group_size defines the participating group size of a service whose quantity is calculated by the "Divisor Method". It should be noted that the group_size is declarative only with a default value equals to 1 implicitly meaning that it is NO service defined via the "Divisor Method" as the group size for such a service is always larger than 1.

Please note that in the "Divisor Method" the quantity is coded by definition as follows: quantity = effective_quantity / group_size.
This attribute is copied unaltered from the received request into this response.

quantity_original quantity_original is the original unaltered quantity from the request
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 (cf. attribute request/payload@storno)
  • a zero quantity is used for "non-billable" and "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.
This attribute is copied unaltered from the received request into this response.
quantity_modified quantity_modified is the modified quantity of this service
Note, that the modification can span the whole value range as double, spanning negative, zero and positive fractional values!
date_begin date_begin is the date when the service was (first) applied
This attribute is copied unaltered from the received request into this response.
date_end date_end is the date when the service was last applied.
This attribute is copied unaltered from the received request into this response.
provider_id provider_id is the provider's GLN identification that physically applied the service
This attribute is copied unaltered from the received request into this response.
responsible_id responsible_id is the responsible person's GLN identification who has medical responsibility for the applied service
This attribute is copied unaltered from the received request into this response.
body_location body_location is the extended tariff defined side location encoded by a terminal set of tokens.
  • none: the location is none (default) - no side specific location
  • left: the location is left - the service was applied on the left body side
  • right: the location is right - the service was applied on the right body side
  • both: the location is both - the service was applied on both body sides

This attribute is copied unaltered from the received request into this response.
unit unit is the tax point (TP) respectively costweight or the price of the applied service
This attribute is copied unaltered from the received request into this response.
unit_factor unit_factor is the tax point value (TPV) or baserate of the applied service
This attribute is copied unaltered from the received request into this response.
external_factor external_factor is a external scale factor (given by the main software) for the applied service
This attribute is copied unaltered from the received request into this response.
amount_original | amount_original is the original and unaltered charged amount from the request
amount_modified amount_modified is the modified charged amount of the applied service taking into account the quantity_modified rather than quantity_original.
Note, that amount must fulfill the equation:
«external_factor * quantity_modified * unit * unit_factor »
for non-DRG services, whereas for DRG services (SwissDRG|TARPSY|STReha) the following equation holds true:
«cost_fraction * external_factor * quantity_modified * unit * unit_factor »
Both equations are 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
This attribute is copied unaltered from the received request into this response.
section_code the optional section_code stems from a variable set defined by "OAAT-OTMA - Reglement Fachbereiche", that designates the service-providing department within a hospital or medical practice, e.g. 'M100.06' for the gastroenterology department.

The list of all departments is documented elsewhere on the "OAAT-OTMA" website, whereby the tariffs used, the law applied or special contracts stipulates the application/usage of the section code (primarily for body@role=hospital, body@role=rehab_clinic, body@role=psychiatric_clinic).
This attribute is copied unaltered from the received request into this response.

remark remark is an optional remark for the applied service
This attribute is copied unaltered from the received request into this response.
service_attributes service_attributes is a 32 bit integer where each bit defines a certain refinement/enhancement to the already supplied data.
This attribute is copied unaltered from the received request into this response.
attributes enumerations
Name | Extension | Base | Value | Annotations
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
body_location | NMTOKEN | both | the location is both - the service was applied on both body sides
source <complexType name="serviceType">
<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="group_size" type="positiveInteger" default="1"/>
<attribute name="quantity_original" type="double" use="required"/>
<attribute name="quantity_modified" type="double" use="required"/>
<attribute name="date_begin" type="dateTime" use="required"/>
<attribute name="date_end" type="dateTime"/>
<attribute name="provider_id" type="invoice:glnPartyType" use="required"/>
<attribute name="responsible_id" type="invoice:glnPartyType" use="required"/>
<attribute name="body_location" default="none">
<simpleType>
<restriction base="NMTOKEN">
<enumeration value="none"/>
<enumeration value="left"/>
<enumeration value="right"/>
<enumeration value="both"/>
</restriction>
</simpleType>
</attribute>
<attribute name="unit" type="double" use="required"/>
<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_original" type="double" use="required"/>
<attribute name="amount_modified" 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="section_code" type="invoice:stringType1_9"/>
<attribute name="remark" type="invoice:stringType1_350"/>
<attribute name="service_attributes" type="unsignedInt" default="0"/>
</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 soldantType

diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:pending invoice:rejected invoice:accepted
used by
element bodyType/tiers_soldant
source <complexType name="soldantType">
<choice>
<element name="pending" type="invoice:pendingType"/>
<element name="rejected" type="invoice:rejectedType"/>
<element name="accepted" type="invoice:acceptedTSType"/>
</choice>
</complexType>


complexType statusType

diagram
namespace http://www.forum-datenaustausch.ch/invoice
used by
complexTypes acceptedTPType acceptedTSType pendingType rejectedType
attributes parameters
Name | Type | Use | Default | Fixed
status_in | derived by: NMTOKEN | required
status_out | derived by: NMTOKEN | required
attributes annotations
Name Notes
status_in status_in is the status of the request (given by the object reference chain) before any processing or analysis is done encoded by a terminal set of tokens
  • unknown: the status is unknown - the given object reference is unknown
  • ambiguous: the status is ambiguous - the given object reference delivers more than one result
  • received: the status is received - nothing done so far except receiving the request
  • frozen: the status is frozen - the request is not processed until further data is provided
  • processed: the status is processed - the request has passed all processing and analysis
  • granted: the status is granted - the request is accepted and archived. In case of a invoice/reminder object the requested amount was paid to the biller.
  • canceled: the status is canceled - the request is canceled and archived with reject status
  • claimed: the status is claimed - a reimbursement process was invoked by sending back the payback information
  • reimbursed: the status is reimbursed - the reimbursement process was completed as the amount was paid back by the biller
status_out status_out is the status of the request (given by the object reference chain) after all processing or analysis is done encoded by a terminal set of tokens
  • unknown: the status is unknown - the given object reference is unknown
  • ambiguous: the status is ambiguous - the given object reference delivers more than one result
  • received: the status is received - nothing done so far except receiving the request
  • frozen: the status is frozen - the request is not processed until further data is provided
  • processed: the status is processed - the request has passed all processing and analysis
  • granted: the status is granted - the request is accepted and archived. In case of a invoice/reminder object the requested amount was paid to the biller.
  • canceled: the status is canceled - the request is canceled and archived with reject status
  • claimed: the status is claimed - a reimbursement process was invoked by sending back the payback information
  • reimbursed: the status is reimbursed - the reimbursement process was completed as the amount was paid back by the biller
attributes enumerations
Name | Extension | Base | Value | Annotations
status_in | NMTOKEN | unknown | the status is unknown - the given object reference is unknown
status_in | NMTOKEN | ambiguous | the status is ambiguous - the given object reference delivers more than one result
status_in | NMTOKEN | received | the status is received - nothing done so far except receiving the request
status_in | NMTOKEN | frozen | the status is frozen - the request is not processed until further data is provided
status_in | NMTOKEN | processed | the status is processed - the request has passed all processing and analysis
status_in | NMTOKEN | granted | the status is granted - the request is accepted and archived. In case of a invoice/reminder object the requested amount was paid to the biller.
status_in | NMTOKEN | canceled | the status is canceled - the request is canceled and archived with reject status
status_in | NMTOKEN | claimed | the status is claimed - a reimbursement process was invoked by sending back the payback information
status_in | NMTOKEN | reimbursed | the status is reimbursed - the reimbursement process was completed as the amount was paid back by the biller
status_out | NMTOKEN | unknown | the status is unknown - the given object reference is unknown
status_out | NMTOKEN | ambiguous | the status is ambiguous - the given object reference delivers more than one result
status_out | NMTOKEN | received | the status is received - nothing done so far except receiving the request
status_out | NMTOKEN | frozen | the status is frozen - the request is not processed until further data is provided
status_out | NMTOKEN | processed | the status is processed - the request has passed all processing and analysis
status_out | NMTOKEN | granted | the status is granted - the request is accepted and archived. In case of a invoice/reminder object the requested amount was paid to the biller.
status_out | NMTOKEN | canceled | the status is canceled - the request is canceled and archived with reject status
status_out | NMTOKEN | claimed | the status is claimed - a reimbursement process was invoked by sending back the payback information
status_out | NMTOKEN | reimbursed | the status is reimbursed - the reimbursement process was completed as the amount was paid back by the biller
source <complexType name="statusType">
<attribute name="status_in" use="required">
<simpleType>
<restriction base="NMTOKEN">
<enumeration value="unknown"/>
<enumeration value="ambiguous"/>
<enumeration value="received"/>
<enumeration value="frozen"/>
<enumeration value="processed"/>
<enumeration value="granted"/>
<enumeration value="canceled"/>
<enumeration value="claimed"/>
<enumeration value="reimbursed"/>
</restriction>
</simpleType>
</attribute>
<attribute name="status_out" use="required">
<simpleType>
<restriction base="NMTOKEN">
<enumeration value="unknown"/>
<enumeration value="ambiguous"/>
<enumeration value="received"/>
<enumeration value="frozen"/>
<enumeration value="processed"/>
<enumeration value="granted"/>
<enumeration value="canceled"/>
<enumeration value="claimed"/>
<enumeration value="reimbursed"/>
</restriction>
</simpleType>
</attribute>
</complexType>


complexType streetType

diagram
namespace | http://www.forum-datenaustausch.ch/invoice
type | extension of invoice:stringType1_35
properties
base invoice:stringType1_35
used by
element postalAddressType/street
facets
minLength | 1
maxLength | 35
attributes parameters
Name Type Use Default Fixed
street_name invoice:stringType1_35
house_no invoice:stringType1_10
attributes annotations
Name | Notes
street_name | street_name is the optional street name being part of the full street definition. Please note that the street name is an extracted copy from the full street definition.
house_no | house_no is the optional house number being part of full street definition. Please note that the house number is an extracted copy from the full street definition.
Extensions
Annotation | Base
Definition for the street container (a subcontainer of the address definition) supplying the full street as element and the split up into street name and house number both defined as attributes. | invoice:stringType1_35
source <complexType name="streetType">
<simpleContent>
<extension base="invoice:stringType1_35">
<attribute name="street_name" type="invoice:stringType1_35"/>
<attribute name="house_no" type="invoice:stringType1_10"/>
</extension>
</simpleContent>
</complexType>


complexType telecomAddressType

diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:phone
used by
elements personType/telecom companyType/telecom employeeType/telecom
source <complexType name="telecomAddressType">
<sequence>
<element name="phone" type="invoice:stringType1_25" 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:glnPartyType | required
to | invoice:glnPartyType | required
attributes annotations
Name Notes
from from is the GLN party that initially sent the infoset to the first intermediate
In fact this is the mirrored to attribute from the request.
Note, that the private certificate of this GLN party is used for the optional signature as outlined in the subchapter Purpose/Signature.
to to is the GLN party that eventually receives the infoset from the last intermediate.
In fact this is the mirrored from attribute from the request.
Note, that the public certificate of this GLN party is used for the optional encryption as outlined in the subchapter Purpose/Encryption.
source <complexType name="transportType">
<sequence>
<element name="via" minOccurs="0" maxOccurs="unbounded">
<complexType>
<attribute name="via" type="invoice:glnPartyType" use="required"/>
<attribute name="sequence_id" type="unsignedShort" use="required"/>
</complexType>
</element>
</sequence>
<attribute name="from" type="invoice:glnPartyType" use="required"/>
<attribute name="to" type="invoice:glnPartyType" use="required"/>
</complexType>


complexType treatmentType

diagram
namespace http://www.forum-datenaustausch.ch/invoice
used by
element bodyType/treatment
attributes parameters
Name | Type | Use | Default | Fixed
date_begin | date | required
date_end | date | required
canton | derived by: NMTOKEN | required
treatment | derived by: NMTOKEN | ambulatory
reason | derived by: NMTOKEN | required
gestation_week13 | date
end_of_birth | date
apid invoice:stringType1_35
acid invoice:stringType1_35
attributes annotations
Name | Notes
date_begin | date_begin is the start of the treatment
date_end | date_end is the end of the treatment
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.
  • AG: the canton is AG - Aargau
  • AI: the canton is AI - Appenzell Innerrhoden
  • AR: the canton is AR - Appenzell Ausserrhoden
  • BE: the canton is BE - Bern
  • BL: the canton is BL - Baselland
  • BS: the canton is BS - Basel
  • FR: the canton is FR - Fribourg
  • GE: the canton is GE - Geneva
  • GL: the canton is GL - Glarus
  • GR: the canton is GR - Graubünden
  • JU: the canton is JU - Jura
  • LU: the canton is LU - Lucerne
  • NE: the canton is NE - Neuchâtel
  • NW: the canton is NW - Nidwalden
  • OW: the canton is OW - Obwalden
  • SG: the canton is SG - St. Gallen
  • SH: the canton is SH - Schaffhausen
  • SO: the canton is SO - Solothurn
  • SZ: the canton is SZ - Schwyz
  • TI: the canton is TI - Ticino
  • TG: the canton is TG - Thurgau
  • UR: the canton is UR - Uri
  • VD: the canton is VD - Vaud
  • VS: the canton is VS - Valais
  • ZG: the canton is ZG - Zug
  • ZH: the canton is ZH - Zürich
  • LI: the country is LI - Liechtenstein
  • A: the country is A - Austria
  • D: the country is D - Germany
  • F: the country is F - France
  • I: the country is I - Italy
treatment treatment is the principle type of treatment encoded by a terminal set of tokens.
  • ambulatory: the treatment type is ambulatory (default)
  • stationary: the treatment type is stationary
reason reason is the primary reason the treatment took place encoded by a terminal set of tokens
  • disease: the reason of treatment is a disease
  • accident: the reason of treatment is an accident
  • maternity: the reason of treatment is a maternity
  • prevention: the reason of treatment is prevention
  • birthdefect: the reason of treatment a birthdefect
  • unknown: the reason of treatment is unknown (or something not mentioned above)
gestation_week13 gestation_week13 is the 1st day of the 13th week of pregnancy calculated by the physician in charge (medical practice or hospital) and specified as date in the «treatment@gestation_week13» attribute of the invoice request.
This gestation_week13 attribute is copied unaltered from the received request into this response. This date is set once only as soon as possible with treatment reason «maternity» and law type «KVG»
end_of_birth the end_of_birth is defined when the placenta has been completely expelled from the body.
This end_of_birth attribute is copied unaltered from the received request into this response.
apid | apid is an optional administrative patient identification defined in the request and copied unaltered into the response.
acid acid is an optional administrative case identification defined in the request and copied unaltered into the response.

Please note, that the acid cannot serve as a unique identification of a certain invoice/reminder as opposed to the unique object reference!

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)
treatment | NMTOKEN | ambulatory | the treatment type is ambulatory (default)
treatment | NMTOKEN | stationary | the treatment type is stationary
source <complexType name="treatmentType">
<attribute name="date_begin" type="date" use="required"/>
<attribute name="date_end" type="date" 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="treatment" default="ambulatory">
<simpleType>
<restriction base="NMTOKEN">
<enumeration value="ambulatory"/>
<enumeration value="stationary"/>
</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>
<attribute name="gestation_week13" type="date"/>
<attribute name="end_of_birth" type="date"/>
<attribute name="apid" type="invoice:stringType1_35"/>
<attribute name="acid" 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 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
state_code invoice:stringType1_9
attributes annotations
Name | Notes
state_code | state_code is an optional code for a state (e.g. the canton designator in Switzerland or the state in USA)
Extensions
Annotation | Base
Definition for the zip container (a subcontainer of an address definition) giving the zip code and an optional state code | invoice:stringType1_9
source <complexType name="zipType">
<simpleContent>
<extension base="invoice:stringType1_9">
<attribute name="state_code" type="invoice:stringType1_9"/>
</extension>
</simpleContent>
</complexType>


complexType zsrAddressType

diagram
namespace | http://www.forum-datenaustausch.ch/invoice
children | invoice:company invoice:person
used by
elements billersAddressType/biller_zsr providersAddressType/provider_zsr
attributes parameters
Name | Type | Use | Default | Fixed
zsr | invoice:zsrPartyType | required
attributes annotations
Name | Notes
zsr | zsr is the biller's or provider's required ZSR as defined by Santésuisse
source <complexType name="zsrAddressType">
<choice>
<element name="company" type="invoice:companyType"/>
<element name="person" type="invoice:personType"/>
</choice>
<attribute name="zsr" type="invoice:zsrPartyType" use="required"/>
</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 filenameType

namespace | http://www.forum-datenaustausch.ch/invoice
type | restriction of string
used by
attribute documentType/@filename
facets
pattern ([A-Za-z0-9._-]{1,250}\.[A-Za-z0-9_-]{3,4})
source <simpleType name="filenameType">
<restriction base="string">
<pattern value="([A-Za-z0-9._-]{1,250}\.[A-Za-z0-9_-]{3,4})"/>
</restriction>
</simpleType>


simpleType glnPartyType

namespace | http://www.forum-datenaustausch.ch/invoice
type | restriction of string
used by
attributes transportType/@from billerGLNAddressType/@gln debitorAddressType/@gln providerGLNAddressType/@gln insuranceAddressType/@gln contactAddressType/@gln providerGLNAddressType/@gln_location serviceExType/@provider_id serviceType/@provider_id serviceExType/@responsible_id serviceType/@responsible_id transportType/@to transportType/via/@via
facets
pattern ([0-9]{13})
source <simpleType name="glnPartyType">
<restriction base="string">
<pattern value="([0-9]{13})"/>
</restriction>
</simpleType>


simpleType guidType

namespace | http://www.forum-datenaustausch.ch/invoice
type | restriction of string
used by
attribute responseType/@guid
facets
pattern [A-Fa-f0-9]{32}
source <simpleType name="guidType">
<restriction base="string">
<pattern value="[A-Fa-f0-9]{32}"/>
</restriction>
</simpleType>


simpleType iso3166A2Type

namespace | http://www.forum-datenaustausch.ch/invoice
type | restriction of string
used by
attribute countryType/@country_code
facets
pattern ([A-Z]{2})
source <simpleType name="iso3166A2Type">
<restriction base="string">
<pattern value="([A-Z]{2})"/>
</restriction>
</simpleType>


simpleType ssnPartyType

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


simpleType stringType1_10

namespace | http://www.forum-datenaustausch.ch/invoice
type | restriction of string
used by
attribute streetType/@house_no
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 esrQRRedType/@alternative_scheme1 esrQRType/@alternative_scheme1 esrQRRedType/@alternative_scheme2 esrQRType/@alternative_scheme2
facets
minLength | 1
maxLength | 100
source <simpleType name="stringType1_100">
<restriction base="string">
<minLength value="1"/>
<maxLength value="100"/>
</restriction>
</simpleType>


simpleType stringType1_140

namespace | http://www.forum-datenaustausch.ch/invoice
type | restriction of string
used by
attributes esrQRRedType/@payment_reason esrQRType/@payment_reason
facets
minLength | 1
maxLength | 140
source <simpleType name="stringType1_140">
<restriction base="string">
<minLength value="1"/>
<maxLength value="140"/>
</restriction>
</simpleType>


simpleType stringType1_15

namespace | http://www.forum-datenaustausch.ch/invoice
type | restriction of string
used by
attributes debitorAddressType/@uid providerGLNAddressType/@uid reimbursementType/@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
element 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_255

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


simpleType stringType1_2800

namespace | http://www.forum-datenaustausch.ch/invoice
type | restriction of string
used by
elements pendingType/explanation acceptedTSType/explanation acceptedTPType/explanation rejectedType/explanation
facets
minLength | 1
maxLength | 2800
source <simpleType name="stringType1_2800">
<restriction base="string">
<minLength value="1"/>
<maxLength value="2800"/>
</restriction>
</simpleType>


simpleType stringType1_3

namespace | http://www.forum-datenaustausch.ch/invoice
type | restriction of string
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 serviceExType/@code serviceType/@code serviceExType/@ref_code serviceType/@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 employeeType/familyname personType/givenname employeeType/givenname postalAddressType/pobox personType/subaddressing companyType/subaddressing
complexTypes | countryType streetType
attributes | treatmentType/@acid treatmentType/@apid notificationType/@code creditType/@request_id invoiceType/@request_id reminderType/@request_id personType/@salutation employeeType/@salutation streetType/@street_name personType/@title employeeType/@title
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
attributes errorType/@error_value serviceExType/@name serviceType/@name serviceExType/@remark serviceType/@remark errorType/@valid_value
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
facets
minLength | 1
maxLength | 6
source <simpleType name="stringType1_6">
<restriction base="string">
<minLength value="1"/>
<maxLength value="6"/>
</restriction>
</simpleType>


simpleType stringType1_70

namespace | http://www.forum-datenaustausch.ch/invoice
type | restriction of string
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 notificationType/@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
used by
element onlineAddressType/email
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
attributes | serviceExType/@section_code serviceType/@section_code zipType/@state_code
facets
minLength | 1
maxLength | 9
source <simpleType name="stringType1_9">
<restriction base="string">
<minLength value="1"/>
<maxLength value="9"/>
</restriction>
</simpleType>


simpleType zsrPartyType

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


simpleType xenc:KeySizeType

namespace | http://www.w3.org/2001/04/xmlenc#
type | integer
used by
element xenc:EncryptionMethodType/KeySize
source <simpleType name="KeySizeType">
<restriction base="integer"/>
</simpleType>