LeasePak API Web Services

The API Web Services--LinkIT--consist of a first generation, implemented in mPower 5.1a, that includes LPClient, LPApplication, LPAsset, and LPNotebook, and a second generation, implemented 5.2a, that includes MsiAppOriginator.

LPClient, LPApplication, LPAsset, LPNotebook, and MsiAppOriginator are synchronous, RPC (Remote Procedure Call) style web services. They use simple types, with all types being treated as String data (although field values are converted to their proper data types when inserted in the LeasePak database.

The following is an example of how a LeasePak API web service is created and used in Java:

// these are the required import statements to use the Apache Axis API 
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;

// these imports are used to print out SOAP messages
import org.apache.axis.MessageContext;
import org.apache.axis.Message;
import org.apache.axis.AxisFault;

// more required imports
import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;

public class LPWebServiceTemplate {

    // this is a method that allows you to print out the SOAP request and SOAP response 
    // useful for debugging   
    public static void printCallRequestResponse(Call lpcall) throws AxisFault {

        MessageContext ctx = lpcall.getMessageContext();

        Message requestMsg = ctx.getRequestMessage();
        Message responseMsg = ctx.getResponseMessage();

        System.out.println("SOAP REQUEST : " + requestMsg.getSOAPPartAsString());
        System.out.println();
        System.out.println("SOAP RESPONSE : " + responseMsg.getSOAPPartAsString());
        System.out.println();

    }

    public static void main(String [] args) {

        try { 
            String lpendpoint = "http://hostname:port/deployed_location/services/service_name";
            // where hostname is the name of your host machine, port is your port number,
            // deployed_location is the root directory where mPower is deployed, and
            // service_name is the name of the web service (LPClient, LPApplication, MsiAppOriginator, etc.)
			
            Service lpservice = new Service();
            Call lpcall = (Call)lpservice.createCall();

            lpcall.setTargetEndpointAddress(new java.net.URL(lpendpoint) );

            // for the LeasePak API web services, the caller must maintain state (session)
            lpcall.setProperty(call.SESSION_MAINTAIN_PROPERTY,new Boolean(true));

            // call to log in
            lpcall.setOperationName(new QName("urn:LPWebService", "lpMethod") );
            // where LPWebService is LPCLient, LPApplication, MsiAppOriginator, etc., and 
            // lpMethod is the method you are executing (for first generation services, you must execute dsConnect first;
            // for MsiAppOriginator, you can execute createApplication, deleteAssets, getMessages, etc.)

            Type result = lpcall.invoke(new Object[]{optional_arguments});
            // where Type is the return data type (boolean, java.lang.String, void, etc.)

            printCallRequestResponse(lpcall);

        } catch (Exception e) {
            System.out.println(e.toString());
        }

    }

}

The web services use Web Service Definition Language (WSDL) to generate client proxy classes that allow the user to treat a web service (such as LPClient) as a local object. A WSDL example (for Java RMI and Apache Axis 1.1) of LPClient, lpclient_wsdl.java, can be found in docsuite/developer/api/samples.

The session data is stored in a Java Map. Each object (LPClient, LPApplication, LPAsset, LPNotebook, MsiAppOriginator) has its own connection to LeasePak and each object maintains a connection to the LeasePak XML driver until dsDisconnect() is called. Most errors (or SOAP exceptions) are caught and re-thrown so the program can close the connection. If an unexpected error occurs, connections and XML drivers could remain open and running. MSI recommends checking for open connections and running drivers after receiving an error or exception, and reporting any occurrences of open connections or running drivers to MSI.

 

 

First Generation

LPClient, LPApplication, LPAsset, LPNotebook

These web services allow you to add or change LeasePak Clients (Broker, Customer, Guarantor, Lessee and Co-Lessee, Vendor), Applications, Pending Assets (tied to Applications), and Application Notebook records. They provide access to individual fields. When using these web services, you must call dsConnect to start the driver before calling the web service, then call dsDisconnect to disconnect the driver.

 

Supported Fields

The Document Type Definition (DTD) for the second generation web service, MsiAppOriginator, includes most of the fields supported by the various first generation services:

Many of the elements (fields) in the MsiAppOriginator XML record are common to more than one of its child records. For example, the element clientNumber is common to Broker, Customer, Guarantor, Lessee, and Vendor. For these elements, the corresponding LeasePak fields are listed in the Shared Elements section of the DTD.

For LPNotebook, the fields supported (from the mjl table) are:

appLeaseNumber (app_lse_s)
dateEntered (dt_ent_s, DATE PORTION)
timeEntered (dt_ent_s, TIME PORTION)
dateFollowup (dt_fol_s, DATE PORTION)
timeFollowup (dt_fol_s, TIME PORTION)
noteType (note_type_s)
prcs (prcs_s)
prio (prio_s)
fromUser (from_s)
toUser (to_s)
noteTitle (note_title_s)
privateNote (private_c)
leaseAcc (lse_acc_c)
collectionStatus (col_stat_s)
reason (ntbk_rsn_s)
notebookText (info_s | info1_s | info2_s | info3_s | info4_s)

 

API Reference

For additional information, refer to your Java documentation. Sun Microsystems maintains a Java developers' site at http://java.sun.com that includes API specifications, sample code and applications, and technical articles and tips.

Methods

Most methods are self explanatory in nature. For example, to set an address use setAddress1 method call; to get an address use the corresponding get method.

Only a very small number of the available methods are listed here. For a complete list of methods, refer to the Java Call Reference.


boolean dsConnect()
This method logs in and establishes a session within the mPower WSDL interface. If successful, it spawns a new XML driver. The XML driver then listens for further calls. The program stores a connection object in memory containing the socket connected to the XML driver. dsConnect returns true on success and false on failure.

The Java RMI and Apache Axis 1.1 syntax is:

lpcall.setOperationName( new QName("urn:LPWebService", "dsConnect") );

where LPWebService is LPCLient, LPApplication, LPAsset, or LPNotebook.

There are no parameters.

Sample SOAP request:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<ns1:dsConnect soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:LPClient"/>
</soapenv:Body>
</soapenv:Envelope>

Sample SOAP response:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<ns1:dsConnectResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:LPClient">
<dsConnectReturn xsi:type="xsd:boolean">true</dsConnectReturn>
</ns1:dsConnectResponse>
</soapenv:Body>
</soapenv:Envelope>
java.lang.String editLessee(java.lang.String clientNumber)
Where clientNumber is the LeasePak Client Number of the Lessee you wish to update. This method loads the Lessee into memory for editing. Use additional methods (for example, getAddress1 and setAddress1) to modify specific field contents, then use updateLessee to save changes.

The Java RMI and Apache Axis 1.1 syntax is:

lpcall.setOperationName( new QName("urn:LPClient", "editLessee") );

The parameters are:

NameDirectionTypeDescription
clientNumber / in0Inputxsd:stringThe LeasePak Client Number of the Lessee you wish to edit

Sample SOAP request:

<?xml version="1.0" encoding="UTF-8"?> 
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<ns1:editLessee soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:LPClient">
<ns1:arg0 xsi:type="xsd:string">38</ns1:arg0>
</ns1:editLessee>
</soapenv:Body>
</soapenv:Envelope>

Sample SOAP response:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<ns1:editLesseeResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:LPClient">
<editLesseeReturn xsi:type="xsd:string">ITEMLIST</editLesseeReturn>
</ns1:editLesseeResponse>
</soapenv:Body>
</soapenv:Envelope>
java.lang.String getAddress1()
Use this method to get the first address line of the appropriate LeasePak Client (Broker, Customer, Guarantor, Lessee, or Vendor).

All get methods use the following syntax shown below, and all return Strings.

The Java RMI and Apache Axis 1.1 syntax is:

lpcall.setOperationName( new QName("urn:LPClient", "getAddress1") );

There are no parameters.

Sample SOAP request:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<ns1:getAddress1 soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:LPClient"/>
</soapenv:Body>
</soapenv:Envelope>

Sample SOAP response:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<ns1:getAddress1Response soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:LPClient">
<getAddress1Return xsi:type="xsd:string">235 Germantown Bend Cove #1</getAddress1Return>
</ns1:getAddress1Response> </soapenv:Body>
</soapenv:Envelope>
void setAddress1(java.lang.String in)
Where in is the string corresponding to the first address line. Use this method after getAddress1 to assign a value to the first address line of the appropriate LeasePak Client (Broker, Customer, Guarantor, Lessee, or Vendor).

All set methods use the following syntax shown below.

The Java RMI and Apache Axis 1.1 syntax is:

lpcall.setOperationName( new QName("urn:LPClient", "setAddress1") );

The parameters are:

NameDirectionTypeDescription
in / in0Inputxsd:stringThe new value for the first address line of the LeasePak Client

Sample SOAP request:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<ns1:setAddress1 soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:LPClient">
<ns1:arg0 xsi:type="xsd:string">111 Anza Blvd</ns1:arg0>
</ns1:setAddress1>
</soapenv:Body>
</soapenv:Envelope>

Sample SOAP response:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<ns1:setAddress1Response soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:LPClient"/>
</soapenv:Body>
</soapenv:Envelope>
void dsDisconnect()
This method logs off the server and closes the socket within the mPower WSDL interface.

The Java RMI and Apache Axis 1.1 syntax is:

lpcall.setOperationName( new QName("urn:LPWebService", "dsDisonnect") );

where LPWebService is LPCLient, LPApplication, LPAsset, or LPNotebook.

There are no parameters.

Sample SOAP request:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<ns1:dsDisconnect soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:LPClient"/>
</soapenv:Body>
</soapenv:Envelope>

Sample SOAP response:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<ns1:dsDisconnectResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:LPClient"/>
</soapenv:Body>
</soapenv:Envelope>

 

 

Second Generation

MsiAppOriginator

The web service MsiAppOriginator allows you to load XML-format Client, Application, Asset, Insurance, and User Defined Fields information into the LeasePak database. It also enables you to delete pending assets. Unlike the first generation web services, MsiAppOriginator makes calls to dsConnect and dsDisconnect automatically as needed.

 

Supported Fields

The Document Type Definition (DTD) for MsiAppOriginator includes all of the fields supported by the web service.

Many of the elements (fields) in the MsiAppOriginator XML record are common to more than one of its child records. For example, the element clientNumber is common to Broker, Customer, Guarantor, Lessee, and Vendor. For these elements, the corresponding LeasePak fields are listed in the Shared Elements section of the DTD.

You can find a sample XML file, used in the createApplication SOAP request/response example, at docsuite/developer/api/samples/create_app_sample.htm

 

Methods

boolean createApplication(java.lang.String xmlDocument, boolean addOnly)
Where xmlDocument is the entire contents (as a String) of the XML document containing the records you wish to add to LeasePak, and addOnly is either true to not make updates to any existing LeasePak data or false if your XML data contains updates to existing records.

The available XML child records within MSI_APP_ORIG are:

CUSTOMER_RECORD    (none required, only 1 allowed) 
LESSEE_RECORD      (at least one required, many allowed) 
GUARANTOR_RECORD   (none required, many allowed)
VENDOR_RECORD      (none required, many allowed)
BROKER_RECORD      (none required, many allowed)
APPLICATION_RECORD (none required, only 1 allowed) 
ASSET_RECORD       (none required, many allowed)
INSURANCE_RECORD   (none required, only 1 allowed) 
UDF_FIELDS_RECORD  (none required, many allowed)

Child records are processed in the order specified above: all Customer records first, then all Lessee records, etc. If processing a child record results in an error or exception, no adds or updates are made for that record, and no further processing of child records within the parent MSI_APP_ORIG record occurs.

Data within the xmlDocument string must meet the following requirements:

  • No empty elements. For example, <appNumber></appNumber> in the XML string will throw an error;
  • No carriage returns, new line characters, or spaces between the closing tag of one element and the opening tag of the next. Below is an example (in Java) of how to strip CR/NL and between-element spaces from your XML text:
    String xml = new String();
    // where xml is the XML document (as a String) containing the records you wish to add to LeasePak
    StringBuffer data = new StringBuffer();
    
    BufferedReader reader = new BufferedReader(new StringReader(xml));
    		
    String res = reader.readLine();
    while ( res != null ) {
        data.append(res.trim());
        res = reader.readLine();
    }
    

The Java RMI and Apache Axis 1.1 syntax for the method is:

lpcall.setOperationName( new QName("urn:MsiAppOriginator", "createApplication") );

The parameters are:

NameDirectionTypeDescription
xmlDocument / in0Inputxsd:stringThe XML document (as a String) containing the records you wish to add to LeasePak
addOnly / in1Inputxsd:booleantrue to not make updates to any existing LeasePak data or false if your XML data contains updates to existing records

Sample SOAP request:

The following was generated using the XML data from docsuite/developer/api/samples/create_app_sample.htm. Note that line breaks have been added to improve readability--the actual SOAP request does not contain any line breaks or spaces between record elements.

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<ns1:createApplication soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:mpower-v52a">
<ns1:arg0 xsi:type="xsd:string">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;iso-8859-1&quot;?&gt;
&lt;!-- application_full.xml, from msi_app_orig.dtd &quot;//McCue Systems Incorporated//DTD MSI_APP_ORIG 1.0//EN
&quot; --&gt;&lt;!-- APPLICATION_RECORD using established clients from complete_ok_01.xml --&gt;
&lt;MSI_APP_ORIG&gt;&lt;APPLICATION_RECORD&gt;&lt;portfolio&gt;2&lt;/portfolio&gt;
&lt;company&gt;1&lt;/company&gt;&lt;region&gt;1&lt;/region&gt;
&lt;office&gt;1&lt;/office&gt;&lt;vendor&gt;262&lt;/vendor&gt;
&lt;broker&gt;263&lt;/broker&gt;&lt;investor&gt;264&lt;/investor&gt;
&lt;lessee&gt;259&lt;/lessee&gt;&lt;leaseDate&gt;071604&lt;/leaseDate&gt;
&lt;commencementDate&gt;071604&lt;/commencementDate&gt;&lt;disbursementDate&gt;071604&lt;/disbursementDate&gt;
&lt;documentSentDate&gt;070104&lt;/documentSentDate&gt;&lt;documentCompleteDate&gt;071604&lt;/documentCompleteDate&gt;
&lt;dueDate&gt;16&lt;/dueDate&gt;&lt;lessorAccrualMethod&gt;RAPR&lt;/lessorAccrualMethod&gt;
&lt;vendorAccrualMethod&gt;RAPR&lt;/vendorAccrualMethod&gt;&lt;investorAccrualMethod&gt;RAPR&lt;/investorAccrualMethod&gt;
&lt;leaseSource&gt;BROK&lt;/leaseSource&gt;&lt;formCode&gt;PCFL&lt;/formCode&gt;
&lt;advancePaymentBegins&gt;0&lt;/advancePaymentBegins&gt;&lt;advancePaymentEnds&gt;0&lt;/advancePaymentEnds&gt;
&lt;delinquencyWatchCode&gt;0&lt;/delinquencyWatchCode&gt;&lt;brokerPaymentCode&gt;PRIN&lt;/brokerPaymentCode&gt;
&lt;lateChargeAsmt&gt;GFL6&lt;/lateChargeAsmt&gt;&lt;leaseTypeCode&gt;FIN&lt;/leaseTypeCode&gt;
&lt;purOptionBillingMethod&gt;NONE&lt;/purOptionBillingMethod&gt;&lt;purchaseOption&gt;PAY&lt;/purchaseOption&gt;
&lt;purOptionOwner&gt;LSSR&lt;/purOptionOwner&gt;&lt;marketCode&gt;SUB&lt;/marketCode&gt;
&lt;accountCode&gt;PRFR&lt;/accountCode&gt;&lt;applicationType&gt;NEW&lt;/applicationType&gt;
&lt;ratePlan&gt;RAT1&lt;/ratePlan&gt;&lt;upfrontSalesTaxCode&gt;PAID&lt;/upfrontSalesTaxCode&gt;
&lt;documentTypeCode&gt;DOC1&lt;/documentTypeCode&gt;&lt;primeRateBankNumber&gt;1&lt;/primeRateBankNumber&gt;
&lt;lateChargeIndex&gt;1&lt;/lateChargeIndex&gt;&lt;productTypeCode&gt;LSE&lt;/productTypeCode&gt;
&lt;businessPersonal&gt;B&lt;/businessPersonal&gt;&lt;openCloseLeaseType&gt;O&lt;/openCloseLeaseType&gt;
&lt;assumedPayment&gt;N&lt;/assumedPayment&gt;&lt;refundable&gt;N&lt;/refundable&gt;
&lt;preauthSwitch&gt;Y&lt;/preauthSwitch&gt;&lt;billingLevel&gt;L&lt;/billingLevel&gt;
&lt;statementCode&gt;I&lt;/statementCode&gt;&lt;normalMstrSub&gt;N&lt;/normalMstrSub&gt;
&lt;automaticChargeOff&gt;N&lt;/automaticChargeOff&gt;&lt;generalDescription&gt;Placid Inventory System 3000&lt;/generalDescription&gt;
&lt;tradeinDescription&gt;Not Applicable&lt;/tradeinDescription&gt;&lt;vendContactName&gt;George Brunelli&lt;/vendContactName&gt;
&lt;vendPhoneNum&gt;518-555-0999&lt;/vendPhoneNum&gt;&lt;brkrContactName&gt;Celia Modo&lt;/brkrContactName&gt;
&lt;brkrPhoneNum&gt;303-555-9999&lt;/brkrPhoneNum&gt;&lt;securityDeposit&gt;500.00&lt;/securityDeposit&gt;
&lt;downPayment&gt;500.00&lt;/downPayment&gt;&lt;residual&gt;500.00&lt;/residual&gt;
&lt;fundingInterestOwedOrEarned&gt;150.00&lt;/fundingInterestOwedOrEarned&gt;&lt;leaseAddressName&gt;Marcelli &amp; Marcelli&lt;/leaseAddressName&gt;
&lt;leaseAddress1&gt;19050 Anza Ave.&lt;/leaseAddress1&gt;&lt;leaseAddress2&gt;Apt. 9E&lt;/leaseAddress2&gt;
&lt;leaseCity&gt;Torrance&lt;/leaseCity&gt;&lt;leaseState&gt;CA&lt;/leaseState&gt;
&lt;leaseZipCode&gt;90503&lt;/leaseZipCode&gt;&lt;billingName&gt;Marcelli &amp; Marcelli&lt;/billingName&gt;
&lt;billingAddress1&gt;PO Box 23054&lt;/billingAddress1&gt;&lt;billingAddress2&gt;Attn: Ruth &amp; Freddie&lt;/billingAddress2&gt;
&lt;billingCity&gt;Torrance&lt;/billingCity&gt;&lt;billingState&gt;CA&lt;/billingState&gt;
&lt;billingZipCode&gt;905233054&lt;/billingZipCode&gt;&lt;groupNumber&gt;1&lt;/groupNumber&gt;
&lt;term&gt;36&lt;/term&gt;&lt;gracePeriodInDays&gt;3&lt;/gracePeriodInDays&gt;
&lt;npvDiscountRate&gt;5&lt;/npvDiscountRate&gt;&lt;documentationFee&gt;50.00&lt;/documentationFee&gt;
&lt;interimRent&gt;150.00&lt;/interimRent&gt;&lt;brokerFees&gt;250.00&lt;/brokerFees&gt;
&lt;guaranteedPortionOfResidual&gt;250.00&lt;/guaranteedPortionOfResidual&gt;&lt;upfrontTitlingTaxPaid&gt;250.00&lt;/upfrontTitlingTaxPaid&gt;
&lt;upfrontSalesTaxOnCost&gt;412.50&lt;/upfrontSalesTaxOnCost&gt;&lt;advancedMoneyReceived&gt;500.00&lt;/advancedMoneyReceived&gt;
&lt;acquisitionCost&gt;5000.00&lt;/acquisitionCost&gt;&lt;paymentFreq&gt;MON&lt;/paymentFreq&gt;
&lt;paymentAmount&gt;200.00&lt;/paymentAmount&gt;&lt;notaryFeePayable&gt;263&lt;/notaryFeePayable&gt;
&lt;insurancePremiumPayTo&gt;263&lt;/insurancePremiumPayTo&gt;&lt;dealerRecourse&gt;LMTD&lt;/dealerRecourse&gt;
&lt;creditQuality&gt;A&lt;/creditQuality&gt;&lt;optionalInsurance&gt;NONE&lt;/optionalInsurance&gt;
&lt;accountType&gt;L&lt;/accountType&gt;&lt;revolvingCreditLimit&gt;20000.00&lt;/revolvingCreditLimit&gt;
&lt;sumOfPayments&gt;7200.00&lt;/sumOfPayments&gt;&lt;invoiceFormatCode&gt;GENR&lt;/invoiceFormatCode&gt;
&lt;payment_Freq_0&gt;9&lt;/payment_Freq_0&gt;&lt;payment_Amount_0&gt;200.00&lt;/payment_Amount_0&gt;
&lt;payment_Code_0&gt;MON&lt;/payment_Code_0&gt;&lt;payment_Freq_1&gt;9&lt;/payment_Freq_1&gt;
&lt;payment_Amount_1&gt;200.00&lt;/payment_Amount_1&gt;&lt;payment_Code_1&gt;MON&lt;/payment_Code_1&gt;
&lt;payment_Freq_2&gt;9&lt;/payment_Freq_2&gt;&lt;payment_Amount_2&gt;200.00&lt;/payment_Amount_2&gt;
&lt;payment_Code_2&gt;MON&lt;/payment_Code_2&gt;&lt;payment_Freq_3&gt;9&lt;/payment_Freq_3&gt;
&lt;payment_Amount_3&gt;200.00&lt;/payment_Amount_3&gt;&lt;payment_Code_3&gt;MON&lt;/payment_Code_3&gt;
&lt;recurringChargeStartDate_0&gt;081604&lt;/recurringChargeStartDate_0&gt;&lt;recurringChargeMaturityDate_0&gt;071607&lt;/recurringChargeMaturityDate_0&gt;
&lt;recurringChargeAmount_0&gt;10.00&lt;/recurringChargeAmount_0&gt;&lt;bndlRecurrChgOnInvo_0&gt;Y&lt;/bndlRecurrChgOnInvo_0&gt;
&lt;recurringChargeStartDate_1&gt;081604&lt;/recurringChargeStartDate_1&gt;&lt;recurringChargeMaturityDate_1&gt;071607&lt;/recurringChargeMaturityDate_1&gt;
&lt;recurringChargeDealerPayable_1&gt;262&lt;/recurringChargeDealerPayable_1&gt;&lt;recurringChargeAmount_1&gt;20.00&lt;/recurringChargeAmount_1&gt;
&lt;bndlRecurrChgOnInvo_1&gt;N&lt;/bndlRecurrChgOnInvo_1&gt;&lt;recurringChargeStartDate_2&gt;081604&lt;/recurringChargeStartDate_2&gt;
&lt;recurringChargeMaturityDate_2&gt;071607&lt;/recurringChargeMaturityDate_2&gt;&lt;recurringChargeAmount_2&gt;30.00&lt;/recurringChargeAmount_2&gt;
&lt;bndlRecurrChgOnInvo_2&gt;Y&lt;/bndlRecurrChgOnInvo_2&gt;&lt;recurringChargeStartDate_3&gt;081604&lt;/recurringChargeStartDate_3&gt;
&lt;recurringChargeMaturityDate_3&gt;071607&lt;/recurringChargeMaturityDate_3&gt;&lt;recurringChargeBrkrPayable_3&gt;263&lt;/recurringChargeBrkrPayable_3&gt;
&lt;recurringChargeAmount_3&gt;40.00&lt;/recurringChargeAmount_3&gt;&lt;bndlRecurrChgOnInvo_3&gt;N&lt;/bndlRecurrChgOnInvo_3&gt;
&lt;salesPersonNumber_0&gt;JOE&lt;/salesPersonNumber_0&gt;&lt;salesPersonDollarPrct_0&gt;60&lt;/salesPersonDollarPrct_0&gt;
&lt;salesPersonVolumePrct_0&gt;55&lt;/salesPersonVolumePrct_0&gt;&lt;salesPersonNumber_1&gt;EDIE&lt;/salesPersonNumber_1&gt;
&lt;salesPersonDollarPrct_1&gt;40&lt;/salesPersonDollarPrct_1&gt;&lt;salesPersonVolumePrct_1&gt;45&lt;/salesPersonVolumePrct_1&gt;
&lt;clientRelationshipType_0&gt;LES&lt;/clientRelationshipType_0&gt;&lt;client_Number_0&gt;260&lt;/client_Number_0&gt;
&lt;clientRelationshipType_1&gt;GRT&lt;/clientRelationshipType_1&gt;&lt;client_Number_1&gt;261&lt;/client_Number_1&gt;
&lt;/APPLICATION_RECORD&gt;&lt;/MSI_APP_ORIG&gt;
</ns1:arg0>
<ns1:arg1 xsi:type="xsd:boolean">true</ns1:arg1>
</ns1:createApplication>
</soapenv:Body>
</soapenv:Envelope>

Sample SOAP response:

The following was generated using the XML data from docsuite/developer/api/samples/create_app_sample.htm

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<ns1:createApplicationResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:mpower-v52a">
<createApplicationReturn xsi:type="xsd:boolean">true</createApplicationReturn>
</ns1:createApplicationResponse>
</soapenv:Body>
</soapenv:Envelope>
boolean createApplicationAsUser(java.lang.String username,
                                java.lang.String pwd,
                                java.lang.String xmlDocument,
                                boolean addOnly)
Where username is the name of the user you wish to log on as, pwd is that user's LeasePak client string password, xmlDocument is the entire contents (as a String) of the XML document containing the records you wish to add to LeasePak, and addOnly is either true to not make updates to any existing LeasePak data or false if your XML data contains updates to existing records.

This method is identical to createApplication except that you supply a logon user name and password instead of using the default API user name and password.

The Java RMI and Apache Axis 1.1 syntax for the method is:

lpcall.setOperationName( new QName("urn:MsiAppOriginator", "createApplicationAsUser") );

The parameters are:

NameDirectionTypeDescription
username / in0Inputxsd:stringUser name you wish to log on as
pwd / in1Inputxsd:stringPassword (LeasePak client string) for the user
xmlDocument / in2Inputxsd:stringThe XML document (as a String) containing the records you wish to add to LeasePak
addOnly / in3Inputxsd:booleantrue to not make updates to any existing LeasePak data or false if your XML data contains updates to existing records

boolean deleteAssets(java.lang.String applicationNumber)
Where applicationNumber is application number for which you wish to delete all pending asset information.

Pending assets are asset records in LeasePak that have not yet been booked. The method deleteAssets will delete all pending asset information for the specified Application, including Asset records, related child records, related User Defined Fields records, and related Notebook records.

The Java RMI and Apache Axis 1.1 syntax for the method is:

lpcall.setOperationName( new QName("urn:MsiAppOriginator", "deleteAssets") );

The parameters are:

NameDirectionTypeDescription
applicationNumber / in0Inputxsd:stringApplication for which you want to delete all pending asset information

boolean deleteAssetsAsUser(java.lang.String username,
                                java.lang.String pwd,
                                java.lang.String applicationNumber)
Where username is the name of the user you wish to log on as, pwd is that user's LeasePak client string password, and applicationNumber is application number for which you wish to delete all pending asset information.

This method is identical to deleteAssets except that you supply a logon user name and password instead of using the default API user name and password.

The Java RMI and Apache Axis 1.1 syntax for the method is:

lpcall.setOperationName( new QName("urn:MsiAppOriginator", "deleteAssetsAsUser") );

The parameters are:

NameDirectionTypeDescription
username / in0Inputxsd:stringUser name you wish to log on as
pwd / in1Inputxsd:stringPassword (LeasePak client string) for the user
applicationNumber / in2Inputxsd:stringApplication for which you want to delete all pending asset information

java.lang.String getMessages()
Call this method after using any of the other methods to retrieve record keys (if applicable) and messages.

The Java RMI and Apache Axis 1.1 syntax for the method is:

lpcall.setOperationName( new QName("urn:MsiAppOriginator", "getMessages") );

There are no parameters.

Sample SOAP request:

The following was generated using the XML data from docsuite/developer/api/samples/create_app_sample.htm

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<ns1:getMessages soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:mpower-v52a"/>
</soapenv:Body>
</soapenv:Envelope>

Sample SOAP response:

The following was generated using the XML data from docsuite/developer/api/samples/create_app_sample.htm. Note that line breaks have been added to improve readability--the actual SOAP request does not contain any line breaks or spaces between record elements.

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<ns1:getMessagesResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:mpower-v52a">
<getMessagesReturn xsi:type="xsd:string">
&lt;?xml version=&quot;1.0&quot;?&gt;&lt;MSI_APP_ORIG_MSGS&gt;&lt;INFO&gt;Processing started.&lt;/INFO&gt;
&lt;INFO&gt;CUSTOMER: No record to process.&lt;/INFO&gt;&lt;INFO&gt;LESSEE: No records to process.&lt;/INFO&gt;
&lt;INFO&gt;GUARANTOR: No records to process.&lt;/INFO&gt;&lt;INFO&gt;BROKER: No records to process.&lt;/INFO&gt;
&lt;INFO&gt;VENDOR: No records to process.&lt;/INFO&gt;&lt;INFO&gt;APPLICATION: Processing started.&lt;/INFO&gt;
&lt;INFO&gt;APPLICATION: (): New Application Created:        180&lt;/INFO&gt;
&lt;INFO&gt;APPLICATION: Processing completed.&lt;/INFO&gt;&lt;INFO&gt;ASSET: No records to process.&lt;/INFO&gt;
&lt;INFO&gt;INSURANCE: No records to process.&lt;/INFO&gt;&lt;INFO&gt;USER DEFINED FIELDS: No records to process.&lt;/INFO&gt;
&lt;INFO&gt;Processing completed.&lt;/INFO&gt;&lt;/MSI_APP_ORIG_MSGS&gt;
</getMessagesReturn>
</ns1:getMessagesResponse>
</soapenv:Body>
</soapenv:Envelope>