RTO Pro Help File

Taking Customer Applications through the internet

Taking Customer Applications through the internet

Previous topic Next topic  

Taking Customer Applications through the internet

Previous topic Next topic JavaScript is required for the print function Mail us feedback on this topic!  

Comments (...)

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: xmltest@rtopro.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.



Customer data that can be imported into RTO Pro.

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".

Field Name

Max characters and type



10 numeric

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.


35 alphanumeric

Full name formatted: LAST,FIRST. The first and last name can be sent separately instead, see below.


35 alphanumeric

First name if sending first and last separate.


35 alphanumeric

Last name if sending first and last separate.


35 alphanumeric

Co-Renter or spouse full name formatted: LAST,FIRST The first and last name can be sent separately instead, see below.


35 alphanumeric

Alternate first name if sending first and last separate.


35 alphanumeric

Alternate last name if sending first and last separate.


35 alphanumeric

Customers street or mailing address


35 alphanumeric

Apartment info


20 alphanumeric

Address city


4 alphanumeric

Address state


10 alphanumeric

Zip or postal code


12 characters

Home Phone # (formatted like 8003516299 or 800-351-6299)


12 characters

Work Phone # (formatted like 8003516299 or 800-351-6299)


12 characters

Message phone # (formatted like 8003516299 or 800-351-6299)


12 characters

Cellular phone # (formatted like 8003516299 or 800-351-6299)


12 characters

Other phone # (formatted like 8003516299 or 800-351-6299)


5 alphanumeric

Extension for work #


140 alphanumeric

Directions to home or physical address.


15 alphanumeric

This is the customer zone / route.


1 numeric

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.


11 numeric

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. This can be formatted 111223333 or 111-22-3333


11 numeric

Co-renter / spouse social security number. This can be formatted 111223333 or 111-22-3333



Date in format MM/DD/YYYY Primary date of birth



Date in format MM/DD/YYYY Co-renter / spouse date of birth


25 alphanumeric

Primary drivers license #


25 alphanumeric

Co-renter / spouse drivers license #


50 alphanumeric

Email address


10 alphanumeric

Language spoken by customer


17 numeric

Customer bank account number if they are setting up ACH payments


9 numeric

Customer bank route number if they are setting up ACH payments


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)


1 character

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


10 alphanumeric

How long at current address, can be a date or something like "5 years"


1 character

Sex of renter (M or F)


1 character

Sex of co-renter (M or F)


4 alphanumeric

Height of renter... 5'11 for example


4 alphanumeric

Height of co-renter


4 alphanumeric

Weight of renter


4 alphanumeric

Weight of co-renter


4 alphanumeric

Renter eye color


4 alphanumeric

Co-renter eye color


35 alphanumeric

Landlord or mortgage company name


35 alphanumeric

Landlord / mortgage address line 1


35 alphanumeric

Landlord / mortgage address line 2 (city, state, zip)


12 characters

Landlord / mortgage phone number


35 alphanumeric

Renters previous address


35 alphanumeric

Renters previous address line 2 (city state zip)


10 alphanumeric

how long at previous address


35 alphanumeric

Renters work place


35 alphanumeric

Renters work address


35 alphanumeric

Renters work address line 2 (city, state, zip)


12 characters

Renters work #


8 characters

Extension for work #


35 alphanumeric

Work supervisor


15 alphanumeric

When renter started this job


15 alphanumeric

Renters occupation / job title


15 alphanumeric

work hours


15 alphanumeric

pay day


35 alphanumeric

Co-renter work place


35 alphanumeric

Co-renter work address line 1


35 alphanumeric

Co-renter work address line 2


12 characters

Co-renter work #


8 characters

Co-renter work extension


35 alphanumeric

Co-renter work supervisor


15 alphanumeric

Co-renter work started


15 alphanumeric

Co-renter occupation / job title


15 alphanumeric

Co-renter work hours


15 alphanumeric

Co-renter pay day


30 alphanumeric

Vehicle #1 info


15 alphanumeric

Vehicle #1 license plate


30 alphanumeric

Vehicle #2 info


15 alphanumeric

Vehicle #2 license plate


1000 alphanumeric

This could be used to hold order info or requested merchandise, prices etc.


15 alphanumeric

pay period for renter


numeric decimal(18,2)

Pay amount for renter, per pay period


15 alphanumeric

ad source... where did they hear about you


20 alphanumeric

Bank name for non ACH purpose


12 characters

bank phone #


20 alphanumeric

bank account number for non ACH purpose



Reference info


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.



10 alphanumeric

Contract or agreement number. Note this will be generated automatically if not passed.



The contracts next due date after any down payment



The date of the agreement, starting date



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.



DWF / LDW amount per term, commonly known as Damage Waiver



Total contract amount (pmt x payments). This will be calculated automatically if not passed



Total regular paid down, including rent, DWF, club, other charges and tax. Customer deposit IS NOT included. Extra money paid down is NOT included in this figure.



Other charges paid down, delivery  + any processing fee etc.



This field holds the portion of "OTHERPAID" that was delivery charge. So if they paid 5 processing + 10 delivery, OTHERPAID = 15, CLUBPAID = 10



For stores that accept "Deposits", you would pass the deposit amount paid down in this field.



For stores that accept extra money paid down to reduce the payment amount or term this is where you would pass the extra amount or down payment that was paid.



Any other charges that will be payable next payment



Number of payments paid down (note this will be calculated automatically from AMTPAID, no need to send both).


1 Character

Contract type R, L, T, G or O (R for Rent to Own will be default if not passed).


1 Character

Payment term W = weekly, M = monthly, B = bi-weekly, S = semi-monthly



Total number of payments entire contract


See Description >

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).



Total cash price for ALL inventory on the contract



Same as Cash expiration date



Club fee per payment



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.


15 Alphanumeric

Max 15 characters. Salesman who sold the agreement, should be the employees 3 character employee ID normally.


See Description>

1 = this agreement will be setup for Autopay


See Description>

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)



The tax rate that applies to this agreement .06 = 6%


15 Alphanumeric

This is the tax zone record identifier in RTO Pro for this agreement (only required for destination based sales tax states).



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.











Sample Perl script file




use strict;

use CGI;

use CGI::Carp 'fatalsToBrowser';


# instantiate a CGI object

my $obj = new CGI;


# start some basic HTML output

print $obj->header,




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

open(OUTPUTFILE,">>../webapps/$file_name") or

       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;






Sample XML File

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" ?>  



<address>2000 Anystreet</address>






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"










Sample HTML code



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">



<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />

<title>Contact Information *Required to</title>

<style type="text/css">

* {outline:none;}

.style1 {

color: #FF0000;


.style2 {

margin: 0;

padding: 0;







<p class="style2">Contact Information

<font color="#FF0000">



<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>

                 <td class="style2">        

                 <input type="text" name="firstname" style="width: 206px" class="style2"/></td>




                 <td style="width: 126px" class="style2">Last Name<span class="style1">*</span></td>

                 <td class="style2">        

                 <input type="text" name="lastname" style="width: 206px" class="style2"/></td>



                 <td style="width: 126px" class="style2">Co-Renter First Name</td>

                 <td class="style2">        

                 <input type="text" name="altfirstname" style="width: 206px" class="style2"/></td>



                 <td style="width: 126px" class="style2">Co-Renter Last Name</td>

                 <td class="style2">        

                 <input type="text" name="altlastname" style="width: 206px" class="style2"/></td>





                 <td style="width: 126px" class="style2">Address</td>

                 <td class="style2">

                 <input type="text" name="address" style="width: 206px" class="style2"/></td>



                 <td style="width: 126px" class="style2">City&nbsp; </td>

                 <td class="style2">    

                 <input type="text" name="city" style="width: 206px" class="style2"/></td>



                 <td style="width: 126px" class="style2">State</td>

                 <td class="style2">

<input type="text" name="state" style="width: 206px" class="style2"/></td>



                 <td style="width: 126px" class="style2">Zip Code</td>

                 <td class="style2">

<input type="text" name="zip" style="width: 206px" class="style2"/></td>



                 <td style="width: 126px" class="style2">Work</td>

                 <td class="style2">

<input type="text" name="work1" style="width: 206px" class="style2"/></td>




                 <td style="width: 126px" class="style2">Comments / Order info</td>

                 <td class="style2">

<input type="text" name="comments" style="width: 206px" class="style2"/></td>






<input type="submit" value=" Submit " style="width: 106px" class="style2"/>




<p class="style2">&nbsp;</p>







Comments (...)