There are 2 ways you can accept applications from the internet using RTO Pro, both of these options will be explained below.
1. Use the RTO Pro Web Services Application feature, see the page here for an example of how it could look, but of course your application page would have your logos, colors, banners etc. https://rtowebpay.com/apps/default.aspx?id=0B440004450301
This service is included with the RTO Pro support plan, there is no additional charge to use it. If you use this feature no programming on your website would be required, you would simply add a link or button on your website that directs your customers to the application page we design for you. When a customer submits an application online it would be imported into RTO Pro automatically.
If you wish to use this method call 800-351-6299 and we will set you up.
2. Design and develop your own web page to accept applications online and do the programming and setup required yourself or hire a developer to do it for you. Using this option your applications would also be imported into RTO Pro automatically, but most stores would have to hire a developer in order to set their website up correctly to take the applications online.
If you wish to use this option the instructions are below that you would need to follow to set it up on your website. If you wish to make your own web page to accept applications we do not provide support for setting up your website, (S)FTP service or any other facets of the web applications development, setup or testing process. The only support we provide is the information on this page.
It is possible to setup a web page to allow your customers to enter applications for rentals / sales via the internet and to automatically import this application info into RTO Pro. Agreement and inventory info can also be imported so a complete customer application and order can be placed on your website and then imported into RTO Pro automatically. This help topic will walk you through the process of setting this up. Please note the programming and design on your website are not included in support with RTO Pro, you will have to get a web designer or create the web pages yourself.
There are 4 components required to allow applications via the internet, each are described below.
1. In RTO Pro under the "Other" tab in Store Setup enable the application import feature in RTO Pro. To do this you will enter the FTP information that must be setup on your website to allow RTO Pro to download the applications. The file "c:\rtowin\ImportApplications.exe" is the program that will check for pending application entered online and import them into RTO Pro, so make sure you set your firewall to allow this program access to the internet. You must also choose the customer "Status/Rating" you want to assign to represent pending web applications.
When this feature is enabled your system will check every 15 minutes for pending applications(there is a button you can click to check for applications manually anytime you wish). When pending applications are received you will be notified. To view pending applications you can click on the "View Pending Web Applications" button on the payment screen or the Point of Sale menu in RTO Pro.
2. A web page on your website that will collect the customer application information. What information you collect is up to you however the field names in the XML files must match the field names that are described at the bottom of this help topic or they will not import into RTO Pro (in our example code the input text names from the HTML file become the XML field names). Note RTO Pro DOES NOT create your web pages for you. See below for a sample HTML file or click here.
3. A CGI or script file to handle the posted data and save it to an XML file, this could be included in your web page instead of a separate script file. See below for a sample Perl script file or click here. To see a sample XML file (the file your script will create) click here. The script file should be programmed to save the XML file in a password protected folder so the files are not accessible to anybody on the internet. This folder is where you setup the FTP account to connect to.
4. An FTP or SSH/SFTP account on the server that hosts your website that will enable RTO Pro to connect to the folder XML files are saved and retrieve the XML files that are created when a customer fills out an application online. You enter the FTP account info in Store Setup in RTO Pro under the "Other" tab. Please note SSH/SFTP (Secure FTP) is recommended since personal info such as social security numbers can be included in the customer application data.
To see this feature in action enter the test FTP info below in your store setup, and enter some sample customer data on this page: http://rtopro.com/testxml.html
Test FTP info:
FTP Address: ftp.rtopro.com
FTP User name: email@example.com
FTP password: xml12red
Please note if there are other users testing at the same time you may get info they entered or they may get info you enter.
The program in RTO Pro that actually connects via (S)FTP to your web server to retrieve the online application files is "importapplications.exe", it will be in the RTO Pro installation folder. Be sure you have your firewall configured to allow this program to access the internet or it will not be able to retrieve the applications.
Please note the field names or input names on the HTML file must match the names exactly as they are below, they are NOT case sensitive.
These fields may be imported as XML or CSV files.
You can require any data you wish on your web page, however the only data RTO Pro requires is the "NAME" or "FIRST" AND 'LAST" fields.
Please note all date fields must be formatted "m/d/yyyy" or "m-d-yyyy". All dollar value fields must be passed without a dollar sign and without commas, for example pass $1,000.00 as "1000.00".
ACCOUNT max 10 numeric characters Note this will be generated for new customers automatically, this should NEVER be passed for NEW customers. For existing customers this should be passed if known. If this is not passed a social security number search will be performed, if a match is found with the same SS# and last name the existing record will be used. No changes to the existing record will be made, any address or other info will have to be updated manually.
NAME max 35 characters Full name formatted: LAST,FIRST. The first and last name can be sent separately instead, see below.
FIRSTNAME First name if sending first and last separate.
LASTNAME Last name if sending first and last separate.
ALTNAME max 35 characters Co-Renter or spouse full name formatted: LAST,FIRST The first and last name can be sent separately instead, see below.
ALTFIRSTNAME First name if sending first and last separate.
ALTLASTNAME Last name if sending first and last separate.
ADDRESS max 35 characters customers mailing address
APT max 35 characters Apartment info
CITY max 20 characters
STATE max 4 characters
ZIP max 10 characters
HMPHONE max 12 characters Home Phone #
WKPHONE max 12 characters Work Phone #
MESS max 12 characters Message phone #
CELL max 12 characters Cell phone #
PHONE5 max 12 characters Other phone #
WORKEXT max 5 characters Extension for work #
DIRECTIONS max 140 characters directions to home or physical address.
ZONE max 15 alpha-numeric characters. This is the customer zone / route.
RATING max 1 character 0-9. If this value is not passed the default value for pending applications will be assigned to all imported applications, you set this up in Store Setup under the "Other" tab.
max 11 characters Primary social security number. Please note if SS1 is passed a check will be performed to see if there is a matching SS1 and last name in your customer records, if a match is found a new customer record would not be added.
SS2 max 11 characters Co-renter / spouse social security number
DOB1 date in format MM/DD/YYYY Primary date of birth
DOB2 date in format MM/DD/YYYY C-renter / spouse date of birth
DL1 max 25 characters Primary drivers license #
DL2 max 25 characters Co-rent er / spouse drivers license #
EMAIL max 50 characters Email address
LANGUAGE max 10 characters Language spoken
ACHACCT max 17 characters Customer bank account number if they are setting up ACH payments
ACHROUTE max 9 characters Customer bank route number if they are setting up ACH payments
ACHACCTTYPE max 2 characters Customer bank account type if they are setting up ACH payments (must be one of the following "PC" = personal checking, "BC" = business checking, "PS" = personal savings, "BS" = business savings)
AUTOCHARGEFORM 0 = Autopay to be paid by Credit Card, 1 = Autopay to be paid by ACH (If customer's agreement(s) setup for Autopay) Note this field was added 12/17/2013
HOWLONGCURRENT max 10 characters How long at current address
RENTERSEX max 1 characters sex of renter
CORENTERSEX max 1 characters sex of co-renter
RENTERHEIGHT max 4 characters height of renter
CORENTERHEIGHT max 4 characters height of co-renter
RENTERWEIGHT max 4 characters weight of renter
CORENTERWEIGHT max 4 characters weight of co-renter
RENTEREYES max 6 characters eye color renter
CORENTEREYES max 6 characters eye color co-renter
LANDLORDORMORT max 35 characters landlord or mortgage company name
LANDLORDADDRESS max 35 characters landlord / mortgage address
LANDLORDADDRESS2 max 35 characters landlord / mortgage address line 2
LANDLORDPHONE max 12 characters landlord / mortgage phone number
PREVADDRESS max 35 characters previous address
PREVCITYSTZIP max 35 characters previous address line 2 (city state zip)
HOWLONGPREVIOUS max 10 characters how long at previous address
WORK1 max 35 characters renters work place
WORKADD1 max 35 characters renters work address
WORKADD21 max 35 characters renters work address line 2
WORKPH1 max 12 characters renters work #
WORKEXT1 max 8 characters extension for work #
WORKSUPER1 max 35 characters work supervisor
WORKSTARTED1 max 15 characters work when started
OCCUPATION1 max 15 characters renters occupation / job title
HOURS1 max 15 characters work hours
PAYDAY1 max 15 characters pay day
WORK2 max 35 characters co-renters work place
WORKADD2 max 35 characters co-renters work address
WORKADD22 max 35 characters co-renters work address line 2
WORKPH2 max 12 characters co-renters work phone #
WORKEXT2 max 8 characters co-renters work extension
WORKSUPER2 max 35 characters co-renters supervisor name
WORKSTARTED2 max 15 characters co-renters started work
OCCUPATION2 max 15 characters co-renters job title
HOURS2 max 15 characters co-renters hours
PAYDAY2 max 15 characters co-renters pay day
CAR1 max 30 characters vehicle #1 info
LPLATE1 max 15 characters vehicle #1 license
CAR2 max 30 characters vehicle #2 info
LPLATE2 max 15 characters vehicle #2 license
COMMENTS max 1000 characters this could be used to hold order info or requested merchandise, prices etc.
PAYPERIOD max 15 characters pay period for renter
PAYAMT Decimal(18,2), pay amount for renter
ADSOURCE max 15 characters ad source... where did they hear about you
BANKNAME max 20 characters bank name for non ACH purpose
BANKPHONE max 12 characters bank phone #
BANKACCT max 20 characters bank account number for non ACH purpose
REFERENCE1 max 35 characters reference #1 name
REFADD1 max 35 characters reference #1 address
REFADD21 max 35 characters reference #1 address line 2
REFRELATION1 max 15 characters reference #1 relation to renter
REFPHONE1 max 12 characters reference #1 phone number
the fields above can be repeated for up to 6 references, the 2 at the end below (highlighted in yellow) can be changed to 3,4,5 or 6.
REFERENCE2 max 35 characters
REFADD2 max 35 characters
REFADD22 max 35 characters
REFRELATION2 max 15 characters
REFPHONE2 max 12 characters
Agreement and inventory info that can be imported into RTO Pro
Please note all value fields below such as "PMT", "AMTPAID" must be passed without a dollar sign and without commas, for example pass $1,000.00 as "1000.00". Note there are no minimum requirements for agreement info, agreement info does not have to be passed at all to just load a pending customer without a pending agreement attached.
CONTRACT max 10 characters. Note this will be generated automatically if not passed.
DUEDATE the contracts next due date after any down payment
CONTRACTDATE the date the agreement starts
PMT The total pre-tax rent only amount of the payment. Note if you are including inventory items in the imported data send the rates in the individual items(see "rate1-10" below) and leave this as 0.00.
GRP DWF / LDW amount per term
CONTRACTAMT Total contract amount (pmt x payments). This will be calculated automatically if not passed
AMTPAID Total paid down, including rent, DWF, other charges and tax. Customer deposit IS NOT included.
OTHERPAID Other charges paid down, delivery / processing etc.
OTHERDUE Any other charges that will be payable next payment
CHARGESDUE Number of payments paid down (note this will be calculated automatically from AMTPAID, no need to send both).
CONTYPE Contract type R, L, T, G or O (R for Rent to Own will be default if not passed).
TERM Payment term W = weekly, M = monthly, B = bi-weekly, S = semi-monthly
PAYMENTS Total number of payments entire contract
BILLED 1 = This contract should be billed or invoiced automatically (12/31/1899 can also be passed to mean the same thing also, any other date passed would mean the last date this contract was invoiced).
CASHPRICE Total cash price for ALL inventory on the contract
SACDATE Same as Cash expiration date
CLUBFEE Club fee per payment
PAYOFFDISCOUNT Payoff discount (discount off balance for EPO (.4 = 40% discount off balance) or % of rent that comes off cash for EPO calculation (.6 = 60% of rent comes off cash price), depending on your store settings). Only needed when you have different discounts for different contracts.
SALESMAN Max 15 characters. Salesman who sold the agreement, should be the employees 3 character employee ID normally.
AUTOCHARGEPMTS 1 = this agreement will be setup for Autopay
AUTOCHARGEB4DUE If setup for Autopay, how many days before the due date should it be paid on (1 = pay 1 day BEFORE due date, -1 = pay 1 day AFTER due date)
TAXRATE The tax rate that applies to this agreement .06 = 6%
TAXZONE max 15 alpha-numeric characters. This is the tax zone record identifier in RTO Pro for this agreement (only required for destination based sales tax states).
STORE Store # this agreement is for. Only needed for central server systems.
The fields below are to identify inventory on contracts. Up to 10 inventory items can be included for each contract. Each field should be followed by a number 1-10 to specify which line number it is on the agreement (MODEL1, MODEL2 ... MODEL10 etc.)
MODEL1-10 max 15 alpha characters. Model number of inventory rented 1 - 10
SERIAL1-10 max 30 alpha characters. Serial number of inventory rented 1 - 10. Note if model is passed but not serial number a purchase order item will be generated. If model and serial is passed and the item is not present in inventory it will be received.
DESCRIPTION1-10 max 250 characters. Description of inventory rented 1 - 10. If not passed description will be retrieved from master model records, if present.
RATE1-10 Payment amount for each inventory item. Note if you are including inventory items in the imported data pass the rates here only and leave the "PMT" field see above) as 0.00.
STOCK1-10 Up to 15 Numeric characters. Stock number for the inventory (optional)
BRAND1-10 Up to 15 alpha-numeric characters. Brand or manufacturer of the inventory
DATEREC1-10 Date received. This will be set as today's date if not passed.
VENDOR1-10 Up to 15 alpha-numeric characters. Vendor or supplier of the product.
COST1-10 Cost of the inventory (your cost, what you paid for it)
AGENT1-10 Floor plan agent, for depreciation purposes. If not passed the only allowed agent or last agent used will be used (see store setup for only allowed agent setting).
BOR1-10 YES or NO, YES is the default if not passed. Yes = this item counts toward BOR numbers, No= it does not.
CATEGORY1-10 Category for the inventory. Up to 15 alpha characters. If it is a sub-category up to 31 characters formatted like "MAIN:SUB".
INVOICE1-10 Invoice number for this inventory
RETAIL1-10 Retail or Cash price for this item.
RTO1-10 RTO field. See the help topic here for more info on how this field is used.
INVCOMMENTS1-10 Up to 200 alpha-numeric characters. Inventory comments.
CONDITION1-10 Up to 15 alpha-numeric characters. Normally one of the following: "EXCELLENT", "GOOD", "FAIR", "POOR". Optional and only needed for USED merchandise.
use CGI::Carp 'fatalsToBrowser';
# instantiate a CGI object
my $obj = new CGI;
# start some basic HTML output
my $f_lock = '2';
my $f_unlock = '8';
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
$year += 1900; ## $year contains no. of years since 1900, to add 1900 to make Y2K compliant
$mon += 1; ## Month stars at 0 for January
my $file_name ="App$year-$mon-$mday-$hour-$min-$sec.xml"; # this is the unique part of the file name with the date, time and seconds included... "App2012-01-30-1-35-15.xml"
#open a new XML file for writing, this uses a subfolder "webapps"... note this folder should be password protected so it cannot be accessed publicly
die "Failed to open OPF, $!\n";
# get an exclusive lock on that file
flock OUTPUTFILE, $f_lock;
# seek to the end of the existing content
# incase a previous process wrote to the file
# after the open and now
seek OUTPTUFILE, 0, 2;
# get an array of the passed CGI parms
my @params = $obj->param;
print "The following information has been submitted:";
# get a value for each parm and print them
print OUTPUTFILE "<application>\n";
foreach my $key (@params)
my $value = $obj->param($key);
print "<li>$key : $value";
print OUTPUTFILE "<$key>$value</$key>\n";
print OUTPUTFILE "</application>\n";
# unlock the file
flock OUTPUTFILE, $f_unlock;
# gracefully close your HTML
print qq(</ul>), $obj->end_html;
Below is a sample of what the XML file your script creates should look like. The XML file name should be formatted as follows: "AppYYYY-MM-DD-H-M-S.xml" so if the file was created on 1/30/2012 1:35:15 it should be named:"App2012-01-30-1-35-15.xml". As long as the file name starts with "App" and ends in ".xml" you can use any numbering system you wish for the rest of the file name, as long as every application submitted has its own unique file name.
The "<?xml version="1.0" standalone="yes" ?>" line is optional. The "<application>" parent tag can be any tag name you like as long as the actual record tags are underneath a parent tag.
Below the sample contents of the XML file (with only 3 customer fields, yours will have as many customer data fields as you wish see customer data that can be imported).
<?xml version="1.0" standalone="yes" ?>
Sample CSV file
Below is a sample CSV file with 2 records, you can have as many records as you want in each CSV file, the header line must be present with the field names, the field names can be in any order but must use the field names as shown above.
"DOE,JOHN","1000 ANY Street","Eustis","FL","32726","7-Eleven"
"SMITH,JOE","1500 Any Street","Eustis","FL","32726","Wal-Mart"
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Contact Information *Required to</title>
<p class="style2">Contact Information
<form action="http://www.rtopro.com//cgi-bin/apptoxml.pl" enctype="multipart/form-data" method="post" class="style2">
<table style="width: 100%">
<td style="width: 126px" class="style2">First Name<span class="style1">*</span></td>
<input type="text" name="firstname" style="width: 206px" class="style2"/></td>
<td style="width: 126px" class="style2">Last Name<span class="style1">*</span></td>
<input type="text" name="lastname" style="width: 206px" class="style2"/></td>
<td style="width: 126px" class="style2">Co-Renter First Name</td>
<input type="text" name="altfirstname" style="width: 206px" class="style2"/></td>
<td style="width: 126px" class="style2">Co-Renter Last Name</td>
<input type="text" name="altlastname" style="width: 206px" class="style2"/></td>
<td style="width: 126px" class="style2">Address</td>
<input type="text" name="address" style="width: 206px" class="style2"/></td>
<td style="width: 126px" class="style2">City </td>
<input type="text" name="city" style="width: 206px" class="style2"/></td>
<td style="width: 126px" class="style2">State</td>
<input type="text" name="state" style="width: 206px" class="style2"/></td>
<td style="width: 126px" class="style2">Zip Code</td>
<input type="text" name="zip" style="width: 206px" class="style2"/></td>
<td style="width: 126px" class="style2">Work</td>
<input type="text" name="work1" style="width: 206px" class="style2"/></td>
<td style="width: 126px" class="style2">Comments / Order info</td>
<input type="text" name="comments" style="width: 206px" class="style2"/></td>
<input type="submit" value=" Submit " style="width: 106px" class="style2"/>
<p class="style2"> </p>