<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="https://webservices.micropayment.de/xslt/?tpl=public.service-html.transformer"?>
<service request-protocol="HTTP_PARAMS" response-protocol="NVP" type="DebitService" location="https://webservices.micropayment.de/public/debit/v1/nvp/">
  <description>Api steuert die Bezahlung per Lastschrift</description>
  <types>
    <type name="void" type="void">
      <description><![CDATA[keine Rückgabe]]></description>
    </type>
    <type name="string" type="string">
      <description><![CDATA[String: ein Datentyp der eine Folge von Zeichen (z. B. Buchstaben, Ziffern, Sonderzeichen und Steuerzeichen) aus einem definierten Zeichensatz enthält]]></description>
    </type>
    <type name="integer" type="integer">
      <description><![CDATA[Integer: ein Datentyp der ganzzahlige Werte speichert]]></description>
    </type>
    <type name="array" type="array">
      <description><![CDATA[Array: eine Datenstruktur die eine Liste von Elementen, meißt eines einheitlichen Datentyps, enthält - die Elemente werden über einen ganzzahligen(integer) Index adressiert]]></description>
    </type>
  </types>
  <methods>
    <method name="resetTest">
      <description><![CDATA[löscht alle Kunden und Transaktionen in der Testumgebung]]></description>
      <parameters>
        <parameter name="accessKey" type="string" required="true">
          <description><![CDATA[AccessKey aus dem Controlcenter]]></description>
        </parameter>
        <parameter name="testMode" type="integer" required="true">
          <description><![CDATA[Muss 1 sein]]></description>
        </parameter>
      </parameters>
      <return type="void">
        <description><![CDATA[]]></description>
        <parameters/>
      </return>
    </method>
    <method name="customerCreate">
      <description><![CDATA[legt neuen Kunden an]]></description>
      <parameters>
        <parameter name="accessKey" type="string" required="true">
          <description><![CDATA[AccessKey aus dem Controlcenter]]></description>
        </parameter>
        <parameter name="testMode" type="integer" required="false" default="0">
          <description><![CDATA[ aktiviert Testumgebung]]></description>
        </parameter>
        <parameter name="customerId" type="string" required="false" default="null">
          <description><![CDATA[ eigene eindeutige ID des Kunden, wird anderenfalls erzeugt]]></description>
        </parameter>
        <parameter name="freeParams" type="array" required="false" default="null">
          <description><![CDATA[ Liste mit freien Parametern, die dem Kunden zugeordnet werden]]></description>
        </parameter>
      </parameters>
      <return type="array">
        <description><![CDATA[]]></description>
        <parameters>
          <parameter name="customerId" type="string" required="true">
            <description><![CDATA[eigene oder erzeugte eindeutige ID des Kunden]]></description>
          </parameter>
        </parameters>
      </return>
    </method>
    <method name="customerSet">
      <description><![CDATA[ordnet weitere freie Parameter dem Kunden zu, oder ändert sie]]></description>
      <parameters>
        <parameter name="accessKey" type="string" required="true">
          <description><![CDATA[AccessKey aus dem Controlcenter]]></description>
        </parameter>
        <parameter name="testMode" type="integer" required="false" default="0">
          <description><![CDATA[ aktiviert Testumgebung]]></description>
        </parameter>
        <parameter name="customerId" type="string" required="true">
          <description><![CDATA[eindeutige ID des Kunden]]></description>
        </parameter>
        <parameter name="freeParams" type="array" required="false" default="null">
          <description><![CDATA[ Liste mit zusätzlichen freien Parametern]]></description>
        </parameter>
      </parameters>
      <return type="void">
        <description><![CDATA[]]></description>
        <parameters/>
      </return>
    </method>
    <method name="customerGet">
      <description><![CDATA[ermittelt alle freien Parameter des Kunden]]></description>
      <parameters>
        <parameter name="accessKey" type="string" required="true">
          <description><![CDATA[AccessKey aus dem Controlcenter]]></description>
        </parameter>
        <parameter name="testMode" type="integer" required="false" default="0">
          <description><![CDATA[ aktiviert Testumgebung]]></description>
        </parameter>
        <parameter name="customerId" type="string" required="true">
          <description><![CDATA[ID des Kunden]]></description>
        </parameter>
      </parameters>
      <return type="array">
        <description><![CDATA[]]></description>
        <parameters>
          <parameter name="freeParams" type="array" required="true">
            <description><![CDATA[Liste mit allen freien Parametern]]></description>
          </parameter>
        </parameters>
      </return>
    </method>
    <method name="bankaccountSet">
      <description><![CDATA[erzeugt oder ändert Bankverbindung eines Kunden]]></description>
      <parameters>
        <parameter name="accessKey" type="string" required="true">
          <description><![CDATA[AccessKey aus dem Controlcenter]]></description>
        </parameter>
        <parameter name="testMode" type="integer" required="false" default="0">
          <description><![CDATA[ aktiviert Testumgebung]]></description>
        </parameter>
        <parameter name="customerId" type="string" required="true">
          <description><![CDATA[ID des Kunden]]></description>
        </parameter>
        <parameter name="country" type="string" required="false" default="'DE'">
          <description><![CDATA[ Sitz der Bank]]></description>
        </parameter>
        <parameter name="bankCode" type="string" required="true">
          <description><![CDATA[Bankleitzahl]]></description>
        </parameter>
        <parameter name="accountNumber" type="string" required="true">
          <description><![CDATA[Kontonummer]]></description>
        </parameter>
        <parameter name="accountHolder" type="string" required="true">
          <description><![CDATA[Kontoinhaber]]></description>
        </parameter>
      </parameters>
      <return type="array">
        <description><![CDATA[]]></description>
        <parameters>
          <parameter name="bankName" type="string" required="true">
            <description><![CDATA[der ermittelte Name der Bank]]></description>
          </parameter>
        </parameters>
      </return>
    </method>
    <method name="bankaccountGet">
      <description><![CDATA[ermittelt die Bankverbindung des Kunden]]></description>
      <parameters>
        <parameter name="accessKey" type="string" required="true">
          <description><![CDATA[AccessKey aus dem Controlcenter]]></description>
        </parameter>
        <parameter name="testMode" type="integer" required="false" default="0">
          <description><![CDATA[ aktiviert Testumgebung]]></description>
        </parameter>
        <parameter name="customerId" type="string" required="true">
          <description><![CDATA[ID des Kunden]]></description>
        </parameter>
      </parameters>
      <return type="array">
        <description><![CDATA[]]></description>
        <parameters>
          <parameter name="country" type="string" required="true">
            <description><![CDATA[Sitz der Bank]]></description>
          </parameter>
          <parameter name="bankCode" type="string" required="true">
            <description><![CDATA[Bankleitzahl]]></description>
          </parameter>
          <parameter name="bankName" type="string" required="true">
            <description><![CDATA[Name der Bank]]></description>
          </parameter>
          <parameter name="accountNumber" type="string" required="true">
            <description><![CDATA[Kontonummer]]></description>
          </parameter>
          <parameter name="accountHolder" type="string" required="true">
            <description><![CDATA[Kontoinhaber]]></description>
          </parameter>
        </parameters>
      </return>
    </method>
    <method name="sessionCreate">
      <description><![CDATA[erzeugt einen neuen Bezahlvorgang]]></description>
      <parameters>
        <parameter name="accessKey" type="string" required="true">
          <description><![CDATA[AccessKey aus dem Controlcenter]]></description>
        </parameter>
        <parameter name="testMode" type="integer" required="false" default="0">
          <description><![CDATA[ aktiviert Testumgebung]]></description>
        </parameter>
        <parameter name="customerId" type="string" required="true">
          <description><![CDATA[ID des Kunden]]></description>
        </parameter>
        <parameter name="sessionId" type="string" required="false" default="">
          <description><![CDATA[ eigene eindeutige ID des Vorgangs, wird anderenfalls erzeugt]]></description>
        </parameter>
        <parameter name="project" type="string" required="true">
          <description><![CDATA[das Projektkürzel für den Vorgang]]></description>
        </parameter>
        <parameter name="projectCampaign" type="string" required="false" default="">
          <description><![CDATA[ ein Kampagnenkürzel des Projektbetreibers]]></description>
        </parameter>
        <parameter name="account" type="string" required="false" default="">
          <description><![CDATA[ Account des beteiligten Webmasters]]></description>
        </parameter>
        <parameter name="webmasterCampaign" type="string" required="false" default="">
          <description><![CDATA[ ein Kampagnenkürzel des Webmasters]]></description>
        </parameter>
        <parameter name="amount" type="integer" required="false" default="0">
          <description><![CDATA[ abzurechnender Betrag in Cent]]></description>
        </parameter>
        <parameter name="currency" type="string" required="false" default="'EUR'">
          <description><![CDATA[ Währung]]></description>
        </parameter>
        <parameter name="title" type="string" required="false" default="">
          <description><![CDATA[ Bezeichnung der zu kaufenden Sache]]></description>
        </parameter>
        <parameter name="payText" type="string" required="false" default="">
          <description><![CDATA[ Abbuchungstext der Lastschrift]]></description>
        </parameter>
        <parameter name="ip" type="string" required="false" default="">
          <description><![CDATA[ IP des Benutzers]]></description>
        </parameter>
        <parameter name="freeParams" type="array" required="false" default="null">
          <description><![CDATA[ Liste mit freien Parametern, die dem Vorgang zugeordnet werden]]></description>
        </parameter>
      </parameters>
      <return type="array">
        <description><![CDATA[]]></description>
        <parameters>
          <parameter name="sessionId" type="string" required="true">
            <description><![CDATA[eigene oder erzeugte eindeutige ID des Vorgangs]]></description>
          </parameter>
          <parameter name="status" type="string" required="true">
            <description><![CDATA[Vorgangsstatus "INIT" oder "REINIT"]]></description>
          </parameter>
          <parameter name="expire" type="string" required="true">
            <description><![CDATA[Ablaufzeit der Bestätigung]]></description>
          </parameter>
        </parameters>
      </return>
    </method>
    <method name="sessionGet">
      <description><![CDATA[ermittelt Daten eines Bezahlvorgangs]]></description>
      <parameters>
        <parameter name="accessKey" type="string" required="true">
          <description><![CDATA[AccessKey aus dem Controlcenter]]></description>
        </parameter>
        <parameter name="testMode" type="integer" required="false" default="0">
          <description><![CDATA[ aktiviert Testumgebung]]></description>
        </parameter>
        <parameter name="sessionId" type="string" required="true">
          <description><![CDATA[ID des Vorgangs]]></description>
        </parameter>
      </parameters>
      <return type="array">
        <description><![CDATA[]]></description>
        <parameters>
          <parameter name="status" type="string" required="true">
            <description><![CDATA[Vorgangsstatus "INIT", "REINIT", "EXPIRED", "APPROVED", "FAILED", "CHARGED" oder "REVERSED"]]></description>
          </parameter>
          <parameter name="expire" type="string" required="true">
            <description><![CDATA[Ablaufzeit bzw. Bestätigung des Vorgangs]]></description>
          </parameter>
          <parameter name="statusDetail" type="string" required="true">
            <description><![CDATA[Beschreibung für gescheiterte Transaktionen]]></description>
          </parameter>
          <parameter name="customerId" type="string" required="true">
            <description><![CDATA[ID des Kunden]]></description>
          </parameter>
          <parameter name="project" type="string" required="true">
            <description><![CDATA[zugeordnetes Projekt]]></description>
          </parameter>
          <parameter name="projectCampaign" type="string" required="true">
            <description><![CDATA[zugeordnete Projektkampagne]]></description>
          </parameter>
          <parameter name="account" type="string" required="true">
            <description><![CDATA[zugeordneter Webmasteraccount]]></description>
          </parameter>
          <parameter name="webmasterCampaign" type="string" required="true">
            <description><![CDATA[zugeordnete Webmasterkampagne]]></description>
          </parameter>
          <parameter name="amount" type="integer" required="true">
            <description><![CDATA[übergebener Betrag bzw. Standard aus Konfiguration in Cent]]></description>
          </parameter>
          <parameter name="currency" type="string" required="true">
            <description><![CDATA[übergebene Währung bzw. "EUR"]]></description>
          </parameter>
          <parameter name="title" type="string" required="true">
            <description><![CDATA[übergebene Kaufsache bzw. Standard aus Konfiguration]]></description>
          </parameter>
          <parameter name="payText" type="string" required="true">
            <description><![CDATA[Abbuchungstext der Lastschrift]]></description>
          </parameter>
          <parameter name="ip" type="string" required="true">
            <description><![CDATA[übergebene IP des Benutzers]]></description>
          </parameter>
          <parameter name="freeParams" type="array" required="false" default="null">
            <description><![CDATA[ Liste mit allen freien Parametern]]></description>
          </parameter>
        </parameters>
      </return>
    </method>
    <method name="sessionApprove">
      <description><![CDATA[bestätigt den Lastschrifteinzug eines Vorgangs]]></description>
      <parameters>
        <parameter name="accessKey" type="string" required="true">
          <description><![CDATA[AccessKey aus dem Controlcenter]]></description>
        </parameter>
        <parameter name="testMode" type="integer" required="false" default="0">
          <description><![CDATA[ aktiviert Testumgebung]]></description>
        </parameter>
        <parameter name="sessionId" type="string" required="true">
          <description><![CDATA[ID des Vorgangs]]></description>
        </parameter>
      </parameters>
      <return type="array">
        <description><![CDATA[]]></description>
        <parameters>
          <parameter name="status" type="string" required="true">
            <description><![CDATA[Vorgangsstatus "APPROVED" oder "FAILED"]]></description>
          </parameter>
          <parameter name="expire" type="string" required="true">
            <description><![CDATA[Zeitpunkt der Bestätigung]]></description>
          </parameter>
        </parameters>
      </return>
    </method>
    <method name="sessionList">
      <description><![CDATA[ermittelt alle Bezahlvorgänge eines Kunden]]></description>
      <parameters>
        <parameter name="accessKey" type="string" required="true">
          <description><![CDATA[AccessKey aus dem Controlcenter]]></description>
        </parameter>
        <parameter name="testMode" type="integer" required="false" default="0">
          <description><![CDATA[ aktiviert Testumgebung]]></description>
        </parameter>
        <parameter name="customerId" type="string" required="true">
          <description><![CDATA[ID des Kunden]]></description>
        </parameter>
      </parameters>
      <return type="array">
        <description><![CDATA[]]></description>
        <parameters>
          <parameter name="count" type="integer" required="true">
            <description><![CDATA[Anzahl der Einträge in sessionIdList]]></description>
          </parameter>
          <parameter name="sessionIdList" type="array" required="true">
            <description><![CDATA[0-indizierte Liste mit Vorgang-IDs]]></description>
          </parameter>
        </parameters>
      </return>
    </method>
    <method name="sessionChargeTest">
      <description><![CDATA[simuliert die Abbuchung für alle bestätigten Vorgänge]]></description>
      <parameters>
        <parameter name="accessKey" type="string" required="true">
          <description><![CDATA[AccessKey aus dem Controlcenter]]></description>
        </parameter>
        <parameter name="testMode" type="integer" required="false" default="0">
          <description><![CDATA[ muss 1 sein]]></description>
        </parameter>
      </parameters>
      <return type="array">
        <description><![CDATA[]]></description>
        <parameters>
          <parameter name="count" type="integer" required="true">
            <description><![CDATA[Anzahl der gebuchten Vorgänge]]></description>
          </parameter>
        </parameters>
      </return>
    </method>
    <method name="sessionReverseTest">
      <description><![CDATA[simuliert Stornierung eines einzelnen Vorgangs]]></description>
      <parameters>
        <parameter name="accessKey" type="string" required="true">
          <description><![CDATA[AccessKey aus dem Controlcenter]]></description>
        </parameter>
        <parameter name="testMode" type="integer" required="false" default="0">
          <description><![CDATA[ muss 1 sein]]></description>
        </parameter>
        <parameter name="sessionId" type="string" required="true">
          <description><![CDATA[ID des Vorgangs]]></description>
        </parameter>
      </parameters>
      <return type="void">
        <description><![CDATA[]]></description>
        <parameters/>
      </return>
    </method>
  </methods>
  <notifications>
    <notification name="sessionStatus">
      <description><![CDATA[Benachrichtigt bei jeder Änderung des Vorgangsstatus, und fügt weitere freie Parameter hinzu]]></description>
      <parameters>
        <parameter name="testMode" type="integer" required="true">
          <description><![CDATA[1 bei aktivierter Testumgebung]]></description>
        </parameter>
        <parameter name="sessionId" type="string" required="true">
          <description><![CDATA[ID des Vorgangs]]></description>
        </parameter>
        <parameter name="status" type="string" required="true">
          <description><![CDATA[Vorgangsstatus "INIT", "REINIT", "EXPIRED", "APPROVED", "FAILED", "CHARGED" oder "REVERSED"]]></description>
        </parameter>
        <parameter name="freeParams" type="array" required="false" default="null">
          <description><![CDATA[ Liste mit allen freien Parametern]]></description>
        </parameter>
      </parameters>
      <return type="array">
        <description><![CDATA[]]></description>
        <parameters>
          <parameter name="freeParams" type="array" required="false" default="null">
            <description><![CDATA[ Liste mit zusätzlichen freien Parametern]]></description>
          </parameter>
        </parameters>
      </return>
    </notification>
  </notifications>
</service>
