RealPage
Client for RealPage Exchange API.
Versions
See the changelog
Installation
Add this line to your application's Gemfile:
gem 'real_page'
And then execute:
$ bundle
Or install it yourself as:
$ gem install real_page
Usage
Configuration
Configure the gem with your RealPage web service URL:
RealPage.configure do |config|
# Use your web service URL below
config.web_service_url = 'https://gateway.rpx.realpage.com/rpxgateway/partner/Client/Client.svc'
config.username = '<RealPage Exchange username>'
config.password = '<RealPage Exchange password>'
config.license_key = '<RealPage Exchange license key>'
config.app_name = '<Service that uses this gem>'
end
Models
Responses from RealPage are parsed from XML into a ruby Model class
RealPage::Model::Activity
An activity represents an event that happens in relation to a RealPage::Model::GuestCard.
agent_id[Fixnum]agent_name[String]create_date[Date]date[String]edit_type_name[String]guest_card_journal_edit_type_id[String]guest_card_journal_type_id[String]id[String]logged_by_name[String]loss_reason_cd[String]max_create_date_time[Fixnum]name[String]notes[String]result_cd[String]result[String]status_change_reason[String]status[String]system[Boolean]time[String]
RealPage::Model::Address
The address of a RealPage::Model::Prospect
city[String]country[String]line1[String]line2[String]state[String]zip[String]
RealPage::Model::Amenity
An identifier for an Amenity at a particular property.
id[String]pmc_id[String]site_id[String]
RealPage::Model::Appointment
An appointment to visit the property. May be attached to a RealPage::Model::GuestCard
day[Integer]hour[Integer]leasing_agent_id[String]minute[Integer]month[Integer]pmc_id[String]site_id[String]task_notes[String]year[Integer]
RealPage::Model::FloorPlan
The response from GetFloorPlanList is an array of RealPage::Model::FloorPlan
instances. Each instance will have the following attributes:
bathrooms[Float]bedrooms[Integer]code[String]description[String]excluded_from_occupancy[Boolean]gross_square_footage[Integer]group_id[String]group_name[String]id[Integer]maximum_occupants[Integer]name_marketing[String]name[String]rent_max[Float]rent_min[Float]rentable_square_footage[Integer]
RealPage::Model::FollowUp
A task for a leasing agent, perhaps to get back in touch with a RealPage::Model::Prospect about a RealPage::Model::GuestCard.
agent_id[Integer]agent_name[String]notes[String]past_due_task[Boolean]priority_cd[String]task_appt_date_time[String]task_category_cd[String]task_confirmed[String]task_contact_date_time[Date]task_contact_type_cd[String]task_duration_end[String]task_duration_start[String]task_id[Integer]task[String]
RealPage::Model::GuestCard
The main object in RealPage's system representing a potential renter. The response from ProspectSearch is an array of these.
activities[Array<RealPage::Model::Activity>]amenities[Array<RealPage::Model::Amenity>]appointment[RealPage::Model::Appointment]contact_type[String]create_date[String]customer_id[String]date_contact[String]date_followup[String]follow_ups[Array<RealPage::Model::FollowUp>]id[String]lease_actions[Array<RealPage::Model::LeaseAction>]leasing_agent_id[String]move_in_reason[String]pet_weight_range[String]pmc_id[String]preferences[RealPage::Model::Preferences]primary_lead_source[String]primary_traffic_source_minor[String]property_status[String]prospect_comment[String]prospects[Array<RealPage::Model::Prospect>]quotes[Array<RealPage::Model::Quote>]screenings[Array<RealPage::Model::Screening>]secondary_lead_source[String]site_id[String]status_is_active[Boolean]status_is_leased[Boolean]status_is_lost[Boolean]units_shown[Array<RealPage::Model::UnitShown>]
RealPage::Model::Lease
The response from GetLeasesByTrafficSource is an array of
RealPage::Model::Lease instances. Each instance will have the following attributes:
begin_date[Date]email[String]end_date[Date]first_name[String]guest_card_id[String]id[String]last_name[String]middle_name[String]move_in_date[Date]phone_1[String]phone_2[String]phone_ext_1[String]phone_ext_2[String]resident_household_id[String]resident_member_id[String]term_id[String]type[String]unit_id[String]unit_number[String]import_resident_id[String]
The allowed values of leasetype are set as constants in the RealPage::Model::Lease::Type module:
RealPage::Model::Lease::Type::FIRST_LEASERealPage::Model::Lease::Type::RENEWALRealPage::Model::Lease::Type::TRANSFER
RealPage::Model::LeaseAction
An action taken on the path towards signing a RealPage::Model::Lease
editable[Boolean]for_correct_date_sort[String]lal_org_lea_id[Integer]note_comment_length[Integer]note_comment[String]note_date[Date]note_id[Integer]note_source[String]note_type[String]note_user[String]rentable_item_reserved[Boolean]sort_date[Date]
RealPage::Model::PhoneNumber
A person's phone number.
number[String]type[String]
RealPage::Model::PicklistItem
Several responses from RealPage include a Picklist. These requests (e.g.
GetMarketingSourcesByProperty) return an array of
RealPage::Model::PicklistItems, which have 2 string attributes: value and text.
RealPage::Model::Preferences
Details of what the RealPage::Model::Prospect wants in an apartment.
date_needed[Date]desired_rent[Integer]floorplan_group_id[String]floorplan_id[Integer]lease_term_months[Integer]occupants[String]price_range_id[String]site_id[String]
RealPage::Model::Prospect
The main object representing a renter. It will be found on a RealPage::Model::GuestCard.
address[RealPage::Model::Address]customer_id[Integer]email[String]first_name[String]gender[String]id_issuer[String]id_number[String]id_numberencrypted[String]id_type[String]last_name[String]middle_name[String]phone_numbers[Array<RealPage::Model::PhoneNumber]pmc_id[Integer]pref_communication_type[String]relationship_id[String]site_id[Integer]ssn_encrypted[String]ssn[String]
RealPage::Model::Quote
A rental price quoted before move-in.
agent_name[String]bldg_unit[String]building[String]context_name[String]date_created[String]date_lease_begin[String]date_lease_end[String]date_move_in[String]date_quote_expires[String]date_range_lease[String]deposit[Float]enable_payment_plan[Boolean]floor_plan_id[Integer]floor_plan_id[String]floor_plan_name[String]id[Integer]id[String]lease_term_id[Integer]lease_term_id[String]market_rent[Float]rent[Float]reservation_expire_date[Date]site_id[String]site[String]time_created[String]type_code[String]type[String]unit_applied[Boolean]unit_id[String]unit_reserved[String]unit_status[String]unit[String]- available [Boolean]
RealPage::Model::RentMatrix
The response from GetRentMatrix is an array of RealPage::Model::RentMatrix
instances. Each instance will have the following attributes:
lease_term[Integer]lease_term_max[Integer]lease_term_min[Integer]needed_by_date[Date]property_id[String]rows[Array<RealPage::Model::RentMatrix::Row>]
RealPage::Model::RentMatrix::Concessions
monthly_fixed[Float]monthly_percent[Float]months[Float]one_time_fixed[Integer]total[Integer]
RealPage::Model::RentMatrix::Option
best[Boolean]lease_end_date[Date]lease_start_date[Date]lease_term[Integer]concessions[RealPage::Model::RentMatrix::Concessions]rent[Integer]
RealPage::Model::RentMatrix::Row
building[String]lease_end_date[Date]lease_start_date[Date]make_ready_date[Date]max_rent[Integer]min_rent[Integer]options[Array<RealPage::Model::RentMatrix::Option>]rent[Integer]unit[String]ys_quote_id[String]
RealPage::Model::Screening
Screening conducted on a RealPage::Model::Prospect before their application is accepted.
apg_id[String]app_id[String]customer_id[Integer]customer_name[String]external_screening_service[String]result_code[String]result_date[String]result[String]
RealPage::Model::Unit
The response from GetUnitsByProperty is an array of RealPage::Model::Unit
instances. Each instance will have the following attributes:
address_1[String]address_2[String]available[Boolean]available_date[Date]base_rent_amount[Float]building_id[Integer]city_name[String]county_name[String]country_name[String]description[String]deposit_amount[Float]floor_number[String]floor_plan_id[Integer]floor_plan_market_rent[Float]fp_report_unit_occupancy[Boolean]gross_sqft_count[String]hearing[Boolean]id[Integer]last_action_code[String]last_action_desc[String]lock[Boolean]lock_owner[String]made_ready[Boolean]made_ready_date[Date]market_rent[Float]mobility[Boolean]nonrefund_fee[Float]nonrevenue_description[String]nonrevenue[Boolean]note_description[String]number[String]pmc_id[String]property_number_id[Integer]rent_sqft_count[String]reserve[Boolean]reserved_until[Date]site_id[String]state[String]unavailable_code[String]vacant[Boolean]vacant_date[Date]vision[Boolean]zip[String]
RealPage::Model::UnitShown
A unit shown to a RealPage::Model::Prospect during a site visit.
activity_date[Date]activity_id[String]activity_name[String]activity_time[String]agent_id[Integer]agent_name[String]building[String]building_unit[String]create_date[Date]edit_type_name[String]guest_card_journal_type_edit_id[String]guest_card_journal_type_id[String]logged_by_name[String]market_rent[Float]max_create_date_time[Integer]notes[String]result[String]site[String]site_id[String]status[String]unit_applied[Boolean]unit_id[Integer]unit_number[String]unit_reserved[Date]unit_status[Integer]
Request Parameter Objects
These objects are used as parameters to request objects
RealPage::Parameter::ListCriterion
A request parameter used to filter lists (e.g. GetUnitsByProperty). A ListCriterion takes the following parameters
max_valueMaximum of List Criterion to be retrievedmin_valueMinimum value of List Criterion to be retrievednameName of List Criterion to be retrievedsingle_valueValue of List Criterion to be retrieved
SOAP Actions
To request an action, instantiate the appropriate class (see below) and invoke #perform on it. The API response will be parsed and returned as a ruby object.
RealPage::Request::GetFloorPlanList
Initialization parameters
list_criteria[Array<RealPage::Parameter::ListCriterion>] criteria used to filter the resultspmc_id[String] the unique identifier for the property management company in RealPagesite_id[String] the unique identifier for the property in RealPage
Response
Array<RealPage::Model::FloorPlan>
RealPage::Request::GetLeasesByTrafficSource
Initialization parameters
end_date[Date] the end of the date range for the querypmc_id[String] the unique identifier for the property management company in RealPagesite_id[String] the unique identifier for the property in RealPagestart_date[Date] the start of the date range for the querytraffic_source_id[String] the identifier for the marketing/traffic source used to query leases
Response
Array<RealPage::Model::Lease>
RealPage::Request::GetMarketingSourcesByProperty
Initialization parameters
pmc_id[String] the unique identifier for the property management company in RealPagesite_id[String] the unique identifier for the property in RealPage
Response
Array<RealPage::Model::PicklistItem>
RealPage::Request::GetRentMatrix
Initialization parameters
lease_term[Integer] the term (in months) of the leaseneed_by_date[Date] the date the unit(s) is/are needed bypmc_id[String] the unique identifier for the property management company in RealPagesite_id[String] the unique identifier for the property in RealPageunit_ids[Array] the array of unit IDs to get pricing data for viewing_quote_only[Boolean] identifies whether the user is viewing or creating new quote
Response
Array<RealPage::Model::RentMatrix>
RealPage::Request::GetUnitsByProperty
Initialization parameters
list_criteria[Array<RealPage::Parameter::ListCriterion>] criteria used to filter the resultspmc_id[String] the unique identifier for the property management company in RealPagesite_id[String] the unique identifier for the property in RealPage
Response
Array<RealPage::Model::Unit>
RealPage::Request::ProspectSearch
Initialization parameters
guest_card_id[String] the unique identifier for the guest card to fetchpmc_id[String] the unique identifier for the property management company in RealPagesite_id[String] the unique identifier for the property in RealPage
Response
Array<RealPage::Model::GuestCard>
Errors
RealPage::Error::Base
The base class for all RealPage errors
RealPage::Error::BadRequest
Raised when a RealPage request has an error node in the contents. This is generally the case when one of the parameters in a section other than the auth section is invalid.
Includes an #errors array that includes all errors returned by the request. (The value
of #message will be the value of all #errors array responds to
#message#internal_message#severity
RealPage::Error::InvalidConfiguration
Raised when RealPage is not properly configured
RealPage::Error::RequestFault
Raised when a RealPage request has a fault node, which general appears when there is an issue with the auth section in the request (e.g. invalid password)
Includes a #fault_code attribute based on the code returned in the response
Development
To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release to create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.
Contributing
- Fork it ( https://github.com/[my-github-username]/real_page/fork )
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create a new Pull Request