anchor.diff:  {
     property name="timestamp" type="date";
     property name="issuerID" type="String";
  -  property name="merchantID" type="numeric";
  -  property name="subID" type="numeric" default="0";
  -  property name="purchaseID" type="numeric"                                     hint="Order ID";
  +  property name="merchantID" type="Numeric";
  +  property name="subID" type="Numeric" default=0;
  +  property name="purchaseID" type="Numeric"                                     hint="Order ID";
     property name="transactionID" type="String" default="";
  -  property name="amount" type="numeric";
  +  property name="amount" type="Numeric";
     property name="currency" type="String" default="EUR";
     property name="language" type="String" default="nl";
     property name="description" type="String"                                     hint="NO HTML ALLOWED!";
  
positive.code:    * @param redirect        boolean   if you need to do more processing before
     *                                  being redirected, set this to false.
     */
    public Void function transactionRequest( boolean redirect=true )
    {
      try
      {
  
negative.code:       switch( requestType )
        {
          case "Directory":
            xmlString &='<DirectoryReq xmlns="http://www.idealdesk.com/ideal/messages/mer-acq/3.3.1" xmlns:ns2="http://www.w3.org/2000/09/xmldsig##" version="3.3.1">'
                      & '<createDateTimestamp>#getFormattedTimestamp()#</createDateTimestamp>'
                      & '<Merchant>'
                      & '<merchantID>#getMerchantID()#</merchantID>'
                      & '<subID>#getSubID()#</subID>'
                      & '</Merchant>'
                      & '</DirectoryReq>';
          break;
  
          case "Transaction":
            setEntranceCode( getPurchaseID() );
            setDescription( right( getDescription(), 32 ));
  
            xmlString &='<AcquirerTrxReq xmlns="http://www.idealdesk.com/ideal/messages/mer-acq/3.3.1" version="3.3.1">'
                      & '<createDateTimestamp>#getFormattedTimestamp()#</createDateTimestamp>'
                      & '<Issuer>'
                      & '<issuerID>#getIssuerID()#</issuerID>'
                      & '</Issuer>'
                      & '<Merchant>'
                      & '<merchantID>#getMerchantID()#</merchantID>'
                      & '<subID>#getSubID()#</subID>'
                      & '<merchantReturnURL>#xmlFormat( getMerchantReturnURL())#</merchantReturnURL>'
                      & '</Merchant>'
                      & '<Transaction>'
                      & '<purchaseID>#getPurchaseID()#</purchaseID>'
                      & '<amount>#getAmount()#</amount>'
                      & '<currency>#getCurrency()#</currency>';
  
            if( len( getExpirationPeriod()) )
            {
              xmlString &='<expirationPeriod>#getExpirationPeriod()#</expirationPeriod>';
            }
  
            xmlString &='<language>#getLanguage()#</language>'
                      & '<description>#xmlFormat( getDescription())#</description>';
  
            if( len( getEntranceCode()) )
            {
              xmlString &='<entranceCode>#xmlFormat( getEntranceCode())#</entranceCode>';
            }
  
            xmlString &='</Transaction>'
                      & '</AcquirerTrxReq>';
          break;
  
          case "Status":
            xmlString &='<AcquirerStatusReq xmlns="http://www.idealdesk.com/ideal/messages/mer-acq/3.3.1" version="3.3.1">'
                      & '<createDateTimestamp>#getFormattedTimestamp()#</createDateTimestamp>'
                      & '<Merchant>'
                      & '<merchantID>#getMerchantID()#</merchantID>'
                      & '<subID>#getSubID()#</subID>'
                      & '</Merchant>'
                      & '<Transaction>'
                      & '<transactionID>#getTransactionID()#</transactionID>'
                      & '</Transaction>'
                      & '</AcquirerStatusReq>';
          break;
        }
  
  