<?xml version="1.0" encoding="ISO-8859-1"?>
<definitions xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://ssl.ibanrechner.de/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="https://ssl.ibanrechner.de/">
<types>
<xsd:schema targetNamespace="https://ssl.ibanrechner.de/"
>
 <xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
 <xsd:import namespace="http://schemas.xmlsoap.org/wsdl/" />
 <xsd:complexType name="ArrayOfString">
  <xsd:complexContent>
   <xsd:restriction base="SOAP-ENC:Array">
    <xsd:attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="xsd:string[]"/>
   </xsd:restriction>
  </xsd:complexContent>
 </xsd:complexType>
 <xsd:complexType name="BICStruct">
  <xsd:all>
   <xsd:element name="bic" type="xsd:string"/>
   <xsd:element name="city" type="xsd:string"/>
   <xsd:element name="wwwcount" type="xsd:int"/>
   <xsd:element name="sampleurl" type="xsd:string"/>
  </xsd:all>
 </xsd:complexType>
 <xsd:complexType name="item">
  <xsd:all>
   <xsd:element name="key" type="xsd:string"/>
   <xsd:element name="value" type="xsd:string"/>
  </xsd:all>
 </xsd:complexType>
 <xsd:complexType name="Map">
  <xsd:complexContent>
   <xsd:restriction base="SOAP-ENC:Array">
    <xsd:attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="tns:item[]"/>
   </xsd:restriction>
  </xsd:complexContent>
 </xsd:complexType>
 <xsd:complexType name="ArrayOfBICStruct">
  <xsd:complexContent>
   <xsd:restriction base="SOAP-ENC:Array">
    <xsd:attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="tns:BICStruct[]"/>
   </xsd:restriction>
  </xsd:complexContent>
 </xsd:complexType>
 <xsd:complexType name="BankStruct">
  <xsd:all>
   <xsd:element name="name" type="xsd:string"/>
   <xsd:element name="bic" type="xsd:string"/>
   <xsd:element name="bankcode" type="xsd:int"/>
   <xsd:element name="address" type="xsd:string"/>
  </xsd:all>
 </xsd:complexType>
 <xsd:complexType name="ArrayOfBankStruct">
  <xsd:complexContent>
   <xsd:restriction base="SOAP-ENC:Array">
    <xsd:attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="tns:BankStruct[]"/>
   </xsd:restriction>
  </xsd:complexContent>
 </xsd:complexType>
 <xsd:complexType name="BankResStruct">
  <xsd:all>
   <xsd:element name="result" type="xsd:string"/>
   <xsd:element name="banks" type="tns:ArrayOfBankStruct"/>
   <xsd:element name="balance" type="xsd:int"/>
  </xsd:all>
 </xsd:complexType>
 <xsd:complexType name="CountryResStruct">
  <xsd:all>
   <xsd:element name="result" type="xsd:string"/>
   <xsd:element name="supported_countries" type="tns:ArrayOfString"/>
   <xsd:element name="balance" type="xsd:int"/>
  </xsd:all>
 </xsd:complexType>
 <xsd:complexType name="Field">
  <xsd:all>
   <xsd:element name="id" type="xsd:string"/>
   <xsd:element name="type" type="xsd:string"/>
   <xsd:element name="value" type="xsd:string"/>
   <xsd:element name="label" type="xsd:string"/>
   <xsd:element name="optionids" type="tns:ArrayOfString"/>
   <xsd:element name="options" type="tns:ArrayOfString"/>
   <xsd:element name="length" type="xsd:int"/>
   <xsd:element name="newline" type="xsd:string"/>
  </xsd:all>
 </xsd:complexType>
 <xsd:complexType name="ArrayOfField">
  <xsd:complexContent>
   <xsd:restriction base="SOAP-ENC:Array">
    <xsd:attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="tns:Field[]"/>
   </xsd:restriction>
  </xsd:complexContent>
 </xsd:complexType>
 <xsd:complexType name="Form">
  <xsd:all>
   <xsd:element name="done" type="xsd:string"/>
   <xsd:element name="fields" type="tns:ArrayOfField"/>
  </xsd:all>
 </xsd:complexType>
 <xsd:complexType name="IBANValResStruct">
  <xsd:all>
   <xsd:element name="iban" type="xsd:string"/>
   <xsd:element name="result" type="xsd:string"/>
   <xsd:element name="return_code" type="xsd:string"/>
   <xsd:element name="checks" type="tns:ArrayOfString"/>
   <xsd:element name="bic_candidates" type="tns:ArrayOfBICStruct"/>
   <xsd:element name="country" type="xsd:string"/>
   <xsd:element name="bank_code" type="xsd:string"/>
   <xsd:element name="bank" type="xsd:string"/>
   <xsd:element name="bank_address" type="xsd:string"/>
   <xsd:element name="bank_url" type="xsd:string"/>
   <xsd:element name="branch" type="xsd:string"/>
   <xsd:element name="branch_code" type="xsd:string"/>
   <xsd:element name="account_number" type="xsd:string"/>
   <xsd:element name="account_validation_method" type="xsd:string"/>
   <xsd:element name="account_validation" type="xsd:string"/>
   <xsd:element name="length_check" type="xsd:string"/>
   <xsd:element name="account_check" type="xsd:string"/>
   <xsd:element name="bank_code_check" type="xsd:string"/>
   <xsd:element name="iban_checksum_check" type="xsd:string"/>
   <xsd:element name="data_age" type="xsd:string"/>
   <xsd:element name="IBANformat" type="xsd:string"/>
   <xsd:element name="formatcomment" type="xsd:string"/>
   <xsd:element name="balance" type="xsd:int"/>
  </xsd:all>
 </xsd:complexType>
 <xsd:complexType name="IBANCalcResStruct">
  <xsd:all>
   <xsd:element name="iban" type="xsd:string"/>
   <xsd:element name="result" type="xsd:string"/>
   <xsd:element name="return_code" type="xsd:string"/>
   <xsd:element name="checks" type="tns:ArrayOfString"/>
   <xsd:element name="bic_candidates" type="tns:ArrayOfBICStruct"/>
   <xsd:element name="country" type="xsd:string"/>
   <xsd:element name="bank_code" type="xsd:string"/>
   <xsd:element name="alternative_bank_code" type="xsd:string"/>
   <xsd:element name="bank" type="xsd:string"/>
   <xsd:element name="bank_address" type="xsd:string"/>
   <xsd:element name="bank_url" type="xsd:string"/>
   <xsd:element name="branch" type="xsd:string"/>
   <xsd:element name="branch_code" type="xsd:string"/>
   <xsd:element name="account_number" type="xsd:string"/>
   <xsd:element name="alternative_account_number" type="xsd:string"/>
   <xsd:element name="account_validation_method" type="xsd:string"/>
   <xsd:element name="account_validation" type="xsd:string"/>
   <xsd:element name="length_check" type="xsd:string"/>
   <xsd:element name="account_check" type="xsd:string"/>
   <xsd:element name="bank_code_check" type="xsd:string"/>
   <xsd:element name="bic_plausibility_check" type="xsd:string"/>
   <xsd:element name="data_age" type="xsd:string"/>
   <xsd:element name="IBANformat" type="xsd:string"/>
   <xsd:element name="formatcomment" type="xsd:string"/>
   <xsd:element name="balance" type="xsd:int"/>
  </xsd:all>
 </xsd:complexType>
</xsd:schema>
</types>
<message name="validate_ibanRequest">
  <part name="iban" type="xsd:string" />
  <part name="user" type="xsd:string" />
  <part name="password" type="xsd:string" /></message>
<message name="validate_ibanResponse">
  <part name="return" type="tns:IBANValResStruct" /></message>
<message name="calculate_ibanRequest">
  <part name="country" type="xsd:string" />
  <part name="bankcode" type="xsd:string" />
  <part name="account" type="xsd:string" />
  <part name="user" type="xsd:string" />
  <part name="password" type="xsd:string" />
  <part name="bic" type="xsd:string" />
  <part name="legacy_mode" type="xsd:int" /></message>
<message name="calculate_ibanResponse">
  <part name="return" type="tns:IBANCalcResStruct" /></message>
<message name="get_dutch_banksRequest">
  <part name="user" type="xsd:string" />
  <part name="password" type="xsd:string" /></message>
<message name="get_dutch_banksResponse">
  <part name="return" type="tns:BankResStruct" /></message>
<message name="get_swiss_banksRequest">
  <part name="bank" type="xsd:string" />
  <part name="user" type="xsd:string" />
  <part name="password" type="xsd:string" /></message>
<message name="get_swiss_banksResponse">
  <part name="return" type="tns:BankResStruct" /></message>
<message name="find_bankRequest">
  <part name="searchterms" type="xsd:string" />
  <part name="country" type="xsd:string" />
  <part name="bankcode" type="xsd:string" />
  <part name="maxitems" type="xsd:int" />
  <part name="user" type="xsd:string" />
  <part name="password" type="xsd:string" /></message>
<message name="find_bankResponse">
  <part name="return" type="tns:BankResStruct" /></message>
<message name="country_supportedRequest">
  <part name="country" type="xsd:string" />
  <part name="user" type="xsd:string" />
  <part name="password" type="xsd:string" /></message>
<message name="country_supportedResponse">
  <part name="return" type="tns:CountryResStruct" /></message>
<message name="get_formRequest">
  <part name="params" type="tns:Map" />
  <part name="user" type="xsd:string" />
  <part name="password" type="xsd:string" /></message>
<message name="get_formResponse">
  <part name="return" type="tns:Form" /></message>
<portType name="IBAN_CalculatorPortType">
  <operation name="validate_iban">
    <documentation>Validates the given IBAN. The user ID and password you need to pass with the request are the same you use for logging in as a premium user. This service is available to all premium users who have paid their subscription fee. For more details on the subscription model, see www.iban-bic.com.&lt;br&gt;
Output fields are:&lt;br&gt;
iban: the IBAN that was validated.&lt;br&gt;
result: 'passed' or 'failed' - for a valid or invalid IBAN&lt;br&gt;
return_code: a condensed representation of the results of various checks. Not all checks have necessarily been done (see the other fields to find out). The condensed representation is a number which is 0 if all supported checks were done and passed. Otherwise, it is the sum of one or more of the following numbers: 1=automatically appended a subaccount number; 2=account number does not contain a checksum; 4=did not check the checksum; 8=did not check the bank code; 32=warning: a subaccount number might need to be appended, but you need to check if this is really the case; 128=checksum error in account number; 256=bank code not found in directory; 512=wrong length for IBAN; 1024=wrong length for bank code; 2048=IBAN checksum error (digits3 and 4); 4096=missing input data (such as country code); 8192=this country is not (yet?) supported.&lt;br&gt; This condensed return code can be used for a simple check such as: if the sum is less than 32, the result can be assumed to be correct; if it is in the range from 32 to 127, it might be correct but should be checked; if it is 128 or higher, there seems to be a more serious error. There is one exception to this rule: if it is 65536, this means that the return code is not set at all. This should not happen - please notify us if it does.&lt;br&gt;
checks: an array of the checks performed (can contain elements such as 'length', 'bank_code', 'account_number', 'iban_checksum').&lt;br&gt;
bic_candidates: an array of BICs that are associated with the given national bank code. May be empty or may contain one or more elements. The BICstruct element has the attributes bic, wwwcount, sampleurl, and city. If a wwwcount greater than zero is given, the BIC was harvested from the Web (and found on as many pages as indicated by wwwcount, for example at the URL given by sampleurl). If wwwcount is zero, the BIC comes from a national bank or the ECB. If city is given, this also indicates that the BIC comes from a national bank or the ECB. The given city does not necessarily reflect the location of the given branch - it can also be the location of the headquarters.&lt;br&gt;
country: the ISO country code (first two letters of the IBAN)&lt;br&gt;
bank_code: the national bank code. Part of the BIC for NL (where no national bank code exists).&lt;br&gt;
bank: bank name, if known&lt;br&gt;
bank_address: some address data, if known&lt;br&gt;
bank_url: URL of website, if known&lt;br&gt;
branch: branch name, if known&lt;br&gt;
branch_code: branch code, if known&lt;br&gt;
account_number: the national bank account number&lt;br&gt;
account_validation_method: name of the validation algorithm for the national account number&lt;br&gt;
account_validation: for German or Swiss account numbers, an explanation (in German)&lt;br&gt;
length_check: 'passed' or 'failed' - for the right number of characters for the given country&lt;br&gt;
account_check (not provided for every country): 'passed' or 'failed' (checksum validation; if the algorithm is unknown, or if there is no checksum, the result is 'passed' or empty).&lt;br&gt;
bank_code_check (not provided for every country): lookup of national bank code was successful ('passed') or not ('failed')&lt;br&gt;
iban_checksum_check: 'passed' or 'failed' (correctness of the two digits right after the country code in the IBAN)&lt;br&gt;
data_age (not given for all countries): age of the BIC and other bank-related data (not defined for data harvested from the Web). Format: yyyymmdd.&lt;br&gt;
IBANformat: a string describing the IBAN format for the given country, for example: 'DEkk BBBB BBBB CCCC CCCC CC'.&lt;br&gt;
formatcomment: an explanation of the IBANformat string, for example: 'B = sort code (BLZ), C = account No.'&lt;br&gt;
balance: the number of remaining calculations you can do before having to recharge your account. This does not apply to customers with a subscription which includes an unlimited number of calculations.</documentation>
    <input message="tns:validate_ibanRequest"/>
    <output message="tns:validate_ibanResponse"/>
  </operation>
  <operation name="calculate_iban">
    <documentation>Calculates an IBAN for the given national account number. The user ID and password you need to pass with the request are the same you use for logging in as a premium user. This service is available to all premium users who have paid their subscription fee. For more details on the subscription model, see www.iban-bic.com.&lt;br&gt;
Parameters are:&lt;br&gt;
country - the 2-letter ISO country code.&lt;br&gt;
bankcode -  The national bank code (BC number for Switzerland). For the following countries, the whole national account number, including any bank codes and branch codes, should be passed with the account parameter, and the bankcode parameter should stay empty: IT, BE, ES, EE, SK, CZ, HU, LU, PL, FR, GR&lt;br&gt;
account - the national account number&lt;br&gt;
user - your unique user ID&lt;br&gt;
password - your password&lt;br&gt;
bic - the BIC (or at least a sufficiently long prefix) for GB, NL (GB: web crawl can be used, but does not provide all BICs. If the bic parameter is omitted, and the BIC is not found in the Web crawl, this will be shown with an error message in the output field result). This parameter is ignored for countries other than GB and NL.&lt;br&gt;
legacy_mode: If set to 1 for Switzerland, the calculator does not use the external Java program provided by Swiss Interbank Clearing. This parameter has no effect for countries other than Switzerland. For Switzerland, the Java program validates account numbers, but is slower and requires all characters to be entered correctly (such as dots, hyphens etc.). The legacy mode is faster, but does not validate account numbers, and is less likely to produce correct results.&lt;br&gt;&lt;br&gt;
Output fields are:&lt;br&gt;
result: 'passed' or 'failed' - for a valid or invalid account number/bank code/country combination&lt;br&gt;
return_code: a condensed representation of the results of various checks. Not all checks have necessarily been done (see the other fields to find out). The condensed representation is a number which is 0 if all supported checks were done and passed. Otherwise, it is the sum of one or more of the following numbers: 1=automatically appended a subaccount number; 2=account number does not contain a checksum; 4=did not check the checksum; 8=did not check the bank code; 32=warning: a subaccount number might need to be appended, but you need to check if this is really the case; 128=checksum error in account number; 256=bank code not found in directory; 512=wrong length for account number; 1024=wrong length for bank code; 4096=missing input data (such as country code); 8192=this country is not (yet?) supported.&lt;br&gt; This condensed return code can be used for a simple check such as: if the sum is less than 32, the result can be assumed to be correct; if it is in the range from 32 to 127, it might be correct but should be checked; if it is 128 or higher, there seems to be a more serious error. There is one exception to this rule: if it is 65536, this means that the return code is not set at all. This should not happen - please notify us if it does.&lt;br&gt;
iban: the calculated IBAN (if the national account number/bank code had the right length; an IBAN may be provided even if the account number validation fails.)&lt;br&gt;
checks: an array of the checks performed (can contain elements such as 'length', 'bank_code', 'account_number').&lt;br&gt;
bic_candidates: an array of BICs that are associated with the given national bank code. May be empty or may contain one or more elements. The bic element has the attributes bic, wwwcount, sampleurl, and city. If a wwwcount greater than zero is given, the BIC was harvested from the Web (and found on as many pages as indicated by wwwcount, for example on the page indicated by sampleurl). If wwwcount is zero, the BIC comes from a national bank or the ECB. If city is given, this also indicates that the BIC comes from a national bank or the ECB. The given city does not necessarily reflect the location of the given branch - it can also be the location of the headquarters.&lt;br&gt;
country: the ISO country code (first two letters of the IBAN)&lt;br&gt;
bank_code: the national bank code, if it exists. BIC for NL (where no national bank code exists), BC-Nummer for Switzerland. There are functions provided for obtaining Dutch BICs and Swiss BC numbers.&lt;br&gt;
alternative_bank_code: very few banks embed a bank code in the IBAN that is different from the bank code communicated to clients. If this might be the case, this field is filled with the alternative possibility. Otherwise, it is empty.&lt;br&gt;
bank: bank name, if known&lt;br&gt;
bank_address: some address data, if known&lt;br&gt;
bank_url: URL of website, if known&lt;br&gt;
branch: branch name, if known&lt;br&gt;
branch_code: branch code, if known&lt;br&gt;
account_number: the national bank account number&lt;br&gt;
alternative_account_number: sometimes, a subaccount number needs to be appended to a German account number before it is embedded in an IBAN. If this is the case, the extended account number appears in this field.&lt;br&gt;
account_validation_method: name of the validation algorithm for the national account number&lt;br&gt;
account_validation: for German or Swiss account numbers, an explanation (in German)&lt;br&gt;
length_check: 'passed', 'failed for bank code', or 'failed for account number' - for the right number of characters for the given country and account number/bank code&lt;br&gt;
account_check (not provided for every country): 'passed' or 'failed'; for Germany also possible: passed after correction - in that case see alternative_account_number (checksum validation; if the algorithm is unknown, or if there is no checksum, the result is 'passed' or empty).&lt;br&gt;
bank_code_check (not provided for every country): lookup of national bank code was successful ('passed') or not ('failed'); if an alternative bank code might be necessary for the IBAN, this information is added after the word 'passed' in this field.&lt;br&gt;
bic_plausibility_check: NL only. Checks how often account numbers of the given bank actually have the given prefix. Since this does not guarantee anything, this check is ignored for the overall pass/fail decision that is reported in the result field. But for some Dutch banks, it can give you an idea of how likely it is that the right BIC was provided.&lt;br&gt;
data_age (not given for all countries): age of the BIC and other bank-related data (not defined for data harvested from the Web). Format: yyyymmdd.&lt;br&gt;
IBANformat: a string describing the IBAN format for the given country, for example: 'DEkk BBBB BBBB CCCC CCCC CC'.&lt;br&gt;
formatcomment: an explanation of the IBANformat string, for example: 'B = sort code (BLZ), C = account No.'&lt;br&gt;
balance: the number of remaining calculations you can do before having to recharge your account. This does not apply to customers with a subscription which includes an unlimited number of calculations.</documentation>
    <input message="tns:calculate_ibanRequest"/>
    <output message="tns:calculate_ibanResponse"/>
  </operation>
  <operation name="get_dutch_banks">
    <documentation>Returns a list of Dutch banks and their BICs. &lt;br&gt;
Dutch national account numbers do not contain reliable information about the bank. There is a bank code (of variable length) embedded in Dutch account numbers, but it is possible for bank clients to keep an account number when switching banks, and therefore there exist accounts where the bank code does not match the bank. When calculating a Dutch IBAN, you need to pass an account number and a BIC to the function calculate_iban; the BIC can be picked from the list which is returned by the function get_dutch_banks.&lt;br&gt;
Output fields:&lt;br&gt;
result: empty if everything is okay, otherwise an error message.&lt;br&gt;
banks: an array of bank structs with the fields:&lt;br&gt;
* name: the name of the bank.&lt;br&gt;
* bic: the BIC.&lt;br&gt;
* bankcode: this field is left empty for Dutch banks.&lt;br&gt;
* address: this field is left empty.&lt;br&gt;
balance: the number of remaining calculations you can do before having to recharge your account. This does not apply to customers with a subscription which includes an unlimited number of calculations.</documentation>
    <input message="tns:get_dutch_banksRequest"/>
    <output message="tns:get_dutch_banksResponse"/>
  </operation>
  <operation name="get_swiss_banks">
    <documentation>Returns a list of Swiss banks and their BC numbers. &lt;br&gt;
Due to the large number of BC numbers, this function needs to be used in two steps:&lt;br&gt;
1. If called with an empty bank name, get_swiss_banks returns a list of all names of Swiss banks, but still without BC numbers.&lt;br&gt;
2. If called with one of the bank names that were obtained in step 1, the function returns all BC numbers for the given bank.&lt;br&gt;
Output fields:&lt;br&gt;
result: empty if everything is okay, otherwise an error message.&lt;br&gt;
banks: an array of bank structs with the fields:&lt;br&gt;
* name: the name of the bank.&lt;br&gt;
* bic: if the function was called with a non-empty bank name, the BIC. Otherwise, this field is left empty.&lt;br&gt;
* bankcode: if the function was called with a non-empty bank name as first parameter, the bankcode field contains a BC number. Otherwise, it is empty.&lt;br&gt;
* address: empty.&lt;br&gt;
balance: the number of remaining calculations you can do before having to recharge your account. This does not apply to customers with a subscription which includes an unlimited number of calculations.</documentation>
    <input message="tns:get_swiss_banksRequest"/>
    <output message="tns:get_swiss_banksResponse"/>
  </operation>
  <operation name="find_bank">
    <documentation>Given some search terms (one or more words separated by space characters), optionally the country code (can be empty if all countries should be searched), optionally the bankcode (can be emtpy if the bank code is part of what the user is looking for), the maximum number of items to return, and user ID/password, returns a list of matching banks with additional information (varying by country, this information can include: national bank code, bank name, bank address, and BIC). &lt;br&gt;
Output fields:&lt;br&gt;
result: empty if everything is okay, otherwise an error message.&lt;br&gt;
banks: an array of bank structs with the fields:&lt;br&gt;
* name: the name of the bank.&lt;br&gt;
* bic: the BIC.&lt;br&gt;
* bankcode: the national bank code.&lt;br&gt;
* address: any address data we have about the bank.&lt;br&gt;
balance: the number of remaining calculations you can do before having to recharge your account. This does not apply to customers with a subscription which includes an unlimited number of calculations.</documentation>
    <input message="tns:find_bankRequest"/>
    <output message="tns:find_bankResponse"/>
  </operation>
  <operation name="country_supported">
    <documentation>Input: a 2-digit country code (as it is used in IBANs). Returns &quot;yes&quot; or &quot;no&quot; as information about the specified country, and also a list of all supported countries as 2-digit country codes. Because you get the full list, you do not have to specify any country in the request. If you do not specify a country, this function still returns the list of all supported countries. &lt;br&gt;</documentation>
    <input message="tns:country_supportedRequest"/>
    <output message="tns:country_supportedResponse"/>
  </operation>
  <operation name="get_form">
    <documentation>Input: params is an array of key-value-pairs. For the first call, it should contain something like this (in PHP notation): (&quot;country&quot;=&gt;&quot;DE&quot;, &quot;language&quot;=&gt;0). The country should be given using the 2-letter notation which is also used for the IBANs. The desired language of the field labels should be given using the same numbers that you can see on iban-rechner.de when hovering over the language links on the top right (thus e. g. 0 for German).&lt;br&gt;
This function returns an array of fields as well as the information whether another iteration is needed. The latter is given in the field &quot;done&quot; as &quot;no&quot; or &quot;yes&quot;. Every field (element of the field array) has the properties:&lt;br&gt;id: an identifier.&lt;br&gt;type: hidden/text/select/submit/static for a hidden field, text edit field, drop-down box, submit button, or static text, respectively.&lt;br&gt;value: a value (possibly empty).&lt;br&gt;label: text which should be shown to the left of the field (or on it, if it happens to be a button).&lt;br&gt;optionids: an array of numerical IDs. This array has the same length as the &quot;options&quot; array (see below). One of these IDs should be returned if the corresponding item from the &quot;options&quot; array was chosen.&lt;br&gt;options: an array of strings containing the possible values for a drop-down box.&lt;br&gt;length: the maximum expected length of the value. A 0 should be interpreted as &quot;not applicable&quot; or &quot;not specified&quot;.&lt;br&gt;newline: yes or no; it is suggested to place this field into the same row as the previous one if &quot;newline&quot; is no, and to start a new line otherwise.&lt;br&gt;
If &quot;done&quot; is &quot;no&quot;, this function should be called again. All fields which were returned in the previous call of get_form should be passed back to it as part of the array of key-value-pairs. For each such pair, the key should equal the &quot;id&quot; property of the field, and the value should equal either a user-supplied value (for editable fields) or the value which has been returned by get_form (for hidden or static fields).&lt;br&gt;
If &quot;done&quot; is &quot;yes&quot;, this means that now you can call the function calculate_iban; the list of returned fields now corresponds with the parameters of calculate_iban.
&lt;br&gt;</documentation>
    <input message="tns:get_formRequest"/>
    <output message="tns:get_formResponse"/>
  </operation>
</portType>
<binding name="IBAN_CalculatorBinding" type="tns:IBAN_CalculatorPortType">
  <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
  <operation name="validate_iban">
    <soap:operation soapAction="https://ssl.ibanrechner.de/#validate_iban" style="rpc"/>
    <input><soap:body use="encoded" namespace="https://ssl.ibanrechner.de/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></input>
    <output><soap:body use="encoded" namespace="https://ssl.ibanrechner.de/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></output>
  </operation>
  <operation name="calculate_iban">
    <soap:operation soapAction="https://ssl.ibanrechner.de/#calculate_iban" style="rpc"/>
    <input><soap:body use="encoded" namespace="https://ssl.ibanrechner.de/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></input>
    <output><soap:body use="encoded" namespace="https://ssl.ibanrechner.de/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></output>
  </operation>
  <operation name="get_dutch_banks">
    <soap:operation soapAction="https://ssl.ibanrechner.de/#get_dutch_banks" style="rpc"/>
    <input><soap:body use="encoded" namespace="https://ssl.ibanrechner.de/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></input>
    <output><soap:body use="encoded" namespace="https://ssl.ibanrechner.de/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></output>
  </operation>
  <operation name="get_swiss_banks">
    <soap:operation soapAction="https://ssl.ibanrechner.de/#get_swiss_banks" style="rpc"/>
    <input><soap:body use="encoded" namespace="https://ssl.ibanrechner.de/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></input>
    <output><soap:body use="encoded" namespace="https://ssl.ibanrechner.de/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></output>
  </operation>
  <operation name="find_bank">
    <soap:operation soapAction="https://ssl.ibanrechner.de/#find_bank" style="rpc"/>
    <input><soap:body use="encoded" namespace="https://ssl.ibanrechner.de/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></input>
    <output><soap:body use="encoded" namespace="https://ssl.ibanrechner.de/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></output>
  </operation>
  <operation name="country_supported">
    <soap:operation soapAction="https://ssl.ibanrechner.de/#country_supported" style="rpc"/>
    <input><soap:body use="encoded" namespace="https://ssl.ibanrechner.de/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></input>
    <output><soap:body use="encoded" namespace="https://ssl.ibanrechner.de/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></output>
  </operation>
  <operation name="get_form">
    <soap:operation soapAction="https://ssl.ibanrechner.de/#country_supported" style="rpc"/>
    <input><soap:body use="encoded" namespace="https://ssl.ibanrechner.de/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></input>
    <output><soap:body use="encoded" namespace="https://ssl.ibanrechner.de/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></output>
  </operation>
</binding>
<service name="IBAN_Calculator">
  <port name="IBAN_CalculatorPort" binding="tns:IBAN_CalculatorBinding">
    <soap:address location="http://www.iban-bic.com/soap/index.php"/>
  </port>
</service>
</definitions>