Introduction

Welcome to RTOSmart API.


The default base URL for RTOSmart API that looks like the following:

Staging: https://staging.rtoplus.me/api/public/api/endpoint/

Production: https://app.rtosmart.com/api/public/api/endpoint/


All data should be sent in JSON format and with a Content-Type: application/json header.

Note: for security reasons, all RTOSmart APIs are served over HTTPS only.

Authentication

RTOSmart uses API keys/token to allow access to the API.

RTOSmart expects for the API key/token to be included in all API requests to the server in a header that looks like the following:

Authorization: {{ token }}

Building Type List

To get building types list, you need to make a GET call to the following url :
{{ BASE_URL }}list/buildingtypes

Click here to download Postman collection.



Result example :

{
	"code": 200,
	"success": true,
	"message": "List of building type",
	"total_records": 1,
	"data": [
		{
			"ID": 7,
			"provider_type": "rto",
			"name": "Container",
			"code": "CN",
			"allow_non_refundable_deposit_formula": 0,
			"status": 1,
			"created_at": "2021-03-16T13:35:04.000000Z",
			"updated_at": "2021-03-16T13:35:04.000000Z",
			"conditions": [
				{
					"product_id": 7,
					"name": "1-Trip",
					"slug": "one_trip"
				},
				{
					"product_id": 7,
					"name": "Pre Owned",
					"slug": "preowned"
				},
				{
					"product_id": 7,
					"name": "Used - Dealer Inventory",
					"slug": "used_dealer_inventory"
				},
				{
					"product_id": 7,
					"name": "Wind and Water tight",
					"slug": "wind_and_water_tight"
				},
				{
					"product_id": 7,
					"name": "Cargo Worthy",
					"slug": "cargo_worthy"
				}
			]
		}
	]
}
                

QUERY PARAMETERS

Field Type Required Description
perPageRecords Integer True Records required to display per page. It must be an integer greater than zero.
currentPage Integer True Current page number to display records out of total records. It must be an integer number.

Building Conditions List

To get building conditions list, you need to make a GET call to the following url :
{{ BASE_URL }}list/buildingconditions

Click here to download Postman collection.



Result example :

{
	"code": 200,
	"success": true,
	"message": "",
	"data": [
		{
			"id": 33,
			"product_id": 7,
			"name": "1-Trip",
			"slug": "one_trip",
			"status": 1,
			"is_deleted": 0,
			"created_at": "2022-12-06T13:58:43.000000Z",
			"updated_at": "2022-12-06T13:58:43.000000Z"
		},
		{
			"id": 34,
			"product_id": 7,
			"name": "Pre Owned",
			"slug": "preowned",
			"status": 1,
			"is_deleted": 0,
			"created_at": "2022-12-06T13:58:43.000000Z",
			"updated_at": "2022-12-06T13:58:43.000000Z"
		},
		{
			"id": 35,
			"product_id": 7,
			"name": "Used - Dealer Inventory",
			"slug": "used_dealer_inventory",
			"status": 1,
			"is_deleted": 0,
			"created_at": "2022-12-06T13:58:43.000000Z",
			"updated_at": "2022-12-06T13:58:43.000000Z"
		},
		{
			"id": 36,
			"product_id": 7,
			"name": "Wind and Water tight",
			"slug": "wind_and_water_tight",
			"status": 1,
			"is_deleted": 0,
			"created_at": "2022-12-06T13:58:43.000000Z",
			"updated_at": "2022-12-06T13:58:43.000000Z"
		},
		{
			"id": 37,
			"product_id": 7,
			"name": "Cargo Worthy",
			"slug": "cargo_worthy",
			"status": 1,
			"is_deleted": 0,
			"created_at": "2022-12-06T13:58:43.000000Z",
			"updated_at": "2022-12-06T13:58:43.000000Z"
		}
	]
}
                

QUERY PARAMETERS

Field Type Required Description
product_id Integer True Id of the product based on building types api. It must be an integer greater than zero.

Term Plan List

To get term plans list, you need to make a GET call to the following url :
{{ BASE_URL }}list/termplans

Click here to download Postman collection.



Result example :

{
   "code": 200,
   "success": true,
   "message": "List of term plan",
   "data": [
       {
           "id": "terms_settings",
           "itemName": "With/Without CRA",
           "allowed_products": ["Storage Building", "Animal", "Portable Buliding"]
       },
       {
           "id": "terms_settings_with_td",
           "itemName": "Minimum Down",
           "allowed_products": ["Storage Building", "Carport"]
       },
       {
           "id": "security_deposit_due",
           "itemName": "Security Deposit Due",
           "allowed_products": ["Container"]
       },
       {
           "id": "terms_settings_with_2x",
           "itemName": "With/Without CRA (x2)",
           "allowed_products": ["Animal", "Trailer", "Portable Buliding"]
       }
   ]
}
                

Address Suggestions

To get Address Suggestions, you need to make a POST call to the following url :
{{ BASE_URL }}list/addressSuggestions

Click here to download Postman collection.



Result example :
{
   "code": 200,
   "success": true,
   "message": "",
   "data": [
       {
           "name": "345 A St, Fairbanks, AK 99701-3516",
           "street_line": "345 A St",
           "city": "Fairbanks",
           "state": "ak",
           "zipcode": "99701"
       },
       {
           "name": "345 C St, Seldovia, AK 99663",
           "street_line": "345 C St",
           "city": "Seldovia",
           "state": "ak",
           "zipcode": "99663"
       },
       {
           "name": "345 E St, Anchorage, AK 99501-2306",
           "street_line": "345 E St",
           "city": "Anchorage",
           "state": "ak",
           "zipcode": "99501"
       }
   ]
}
               

QUERY PARAMETERS

Field Type Required Description
address_line String True Enter Street Line (Atleast 3 characters).

Calculate Amount

To get calculate amount, you need to make a POST call to the following url :
{{ BASE_URL }}contract/calculateAmount

Click here to download Postman collection.



Result example :

{
   "code": 200,
   "success": true,
   "message": "",
   "data": {
       "24": {
           "monthly_payment_before_tax": "94.20",
           "monthly_tax_amount": "4.71",
           "total_monthly_payment_with_tax (CRA)": "106.91",
           "security_deposit": "0.00",
           "excess_down": "91.91",
           "amountDueToday": "15.00"
       },
       "36": {
           "monthly_payment_before_tax": "74.11",
           "monthly_tax_amount": "3.71",
           "total_monthly_payment_with_tax (CRA)": "85.82",
           "security_deposit": "45.00",
           "excess_down": "100.82",
           "amountDueToday": "30.00"
       },
       "48": {
           "monthly_payment_before_tax": "66.36",
           "monthly_tax_amount": "3.32",
           "total_monthly_payment_with_tax (CRA)": "77.68",
           "security_deposit": "60.00",
           "excess_down": "92.68",
           "amountDueToday": "45.00"
       },
       "60": {
           "monthly_payment_before_tax": "61.64",
           "monthly_tax_amount": "3.08",
           "total_monthly_payment_with_tax (CRA)": "72.73",
           "security_deposit": "90.00",
           "excess_down": "102.73",
           "amountDueToday": "60.00"
       }
   }
}
                

QUERY PARAMETERS

Field Type Required Description
cash_price Integer True
liability_waiver_program boolean True It must be true(yes) or false(no).
tax_rate Float False It must be percentage (%)
zipcode Integer False The zip code must be less than 6 digits.
is_total_down boolean False It must be true(yes) or false(no).
total_down Integer False
product_id Integer False Select (product_id) base on building types api.
selected_term_plan String False Select (selected_term_plan) base on term plans api.

Contract Creation

To create contract you need to make a POST call to the following url :
{{ BASE_URL }}contract/create

Click here to download Postman collection.



Result example :
{
   "code": 200,
   "success": true,
   "message": "Success! New contract has been generated.",
   "data": {
       "ID": 3983,
       "sequence_id": "RTO-ABC000124",
       "first_name": "David",
       "last_name": "Ford",
       "primary_phone": 2064107623,
       "email": "davidford@yopmail.com",
       "delivery_address": "951 Rose Dr",
       "delivery_city": "Birmingham",
       "delivery_state": "Alabama",
       "delivery_zip": 35235,
       "term_plan": "24 Months",
       "methodID": 67608
   }
}
                

QUERY PARAMETERS

Field Type Required Description
first_name String True First name of the customer.
last_name String True Last name of the customer.
primary_phone Integer True The primary phone must be 10 digits.
email String True It must be a valid email address of the customer.
cash_price Integer True
monthly_rate Integer False
term Integer True Enter term plan base on sheet.
product_id Integer False Select (product_id) base on building types api.
selected_term_plan String False Select (selected_term_plan) base on term plans api.
epo_days Integer False
epo_discount Integer False
tax_rate Float False It must be percentage (%)
liability_waiver_program boolean False It must be true(yes) or false(no).
secondary_date String False It must be a valid date in MM/DD/YYYY
is_total_down boolean False It must be true(yes) or false(no).
total_down Integer False
is_delivery_fee_as_cash_price boolean False It must be true(yes) or false(no).
is_delivery_fee boolean False It must be true(yes) or false(no).
delivery_fee Integer False
is_documents_fee boolean False It must be true(yes) or false(no).
documents_fee Integer False
delivery_mileage String False The distance (in miles) the item is to be shipped/delivered.
marital_status String True for state wi (Wisconsin) It must be married or single.
spouse_name String True for state wi (Wisconsin) The name of the spouse if marital status is married.
spouse_email String True for state wi (Wisconsin) It must be a valid email address of the spouse if marital status is married.
credit_card_details[] Array False Supported values are:
  • card_number - (Required) Enter card number.
  • card_holder_name - (Required) Enter card holder name.
  • expiry_year - (Required) Year format must be YYYY.
  • expiry_month - (Required) Month format must be MM.
  • csc - (Required) Enter csc code.
  • zip - (Required) The zip must be less than 6 digits.
is_address_verified boolean False It must be true(yes) or false(no).
delivery_address[] Array False Supported values are:
  • address - Enter delivery address.
  • city - Name of the city.
  • state - State short name like (TX, NJ, NY).
  • zip - The zip must be less than 6 digits.
building_details[] Array False Supported values are:
  • building - Slug of condition based on building conditions API.
  • estimated_delivery_date - It must be a valid date in MM/DD/YYYY.
  • brand - Name of the brand name.
  • serial_number - It must be an integer.
  • size_width - It must be an integer.
  • size_length - It must be an integer.
  • model - building model name.
is_mailing_address_verified boolean False It must be true(yes) or false(no).
signer_details[] Array False Supported values are:
  • social_security_number - The social security number must be 9 digits.
  • birth_date - It must be a valid date in MM/DD/YYYY.
  • license_number - It must be a string.
  • license_state - State short name like (TX, NJ, NY).
  • license_exp_date - It must be a valid date in MM/DD/YYYY.
  • secondary_phone - The secondary phone must be 10 digits.
  • employer_income_source - Employer income source of the signer.
  • employer_phone - The employer phone must be 10 digits.
  • supervisor_name - Supervisor name of the signer.
  • length_of_employment - Length of employment of the signer.
  • mailing_address - Mailing address of the signer.
  • mailing_city - Mailing city of the signer.
  • mailing_state - State short name like (TX, NJ, NY).
  • mailing_zip - The zip must be less than 6 digits.
cosigner_details[] Array False Supported values are:
  • social_security_number - The social security number must be 9 digits.
  • birth_date - It must be a valid date in MM/DD/YYYY.
  • license_number - It must be a string.
  • license_state - State short name like (TX, NJ, NY).
  • license_exp_date - It must be a valid date in MM/DD/YYYY.
  • first_name - First name of the cosigner.
  • middle_name - Middle name of the cosigner.
  • last_name - Last name of the cosigner.
  • primary_phone - The primary phone must be 10 digits.
  • secondary_phone - The secondary phone must be 10 digits.
  • email - It must be a valid email address of the cosigner.
  • employer_income_source - Employer income source of the cosigner.
  • employer_phone - The employer phone must be 10 digits.
  • supervisor_name - Supervisor name of the cosigner.
  • length_of_employment - Length of employment of the cosigner.
  • mailing_address - Mailing address of the cosigner.
  • mailing_city - Mailing city of the cosigner.
  • mailing_state - State short name like (TX, NJ, NY).
  • mailing_zip - The zip must be less than 6 digits.
references[] Array False Supported values are (only 3 arrays allowed):
  • name - (Required) Name of the references.
  • phone - (Required) The phone must be 10 digits.
  • relationship - Relationship of the references.
  • city - City of the references.
  • state - State short name like (TX, NJ, NY).

Get Contract Detail

To view contract you need to make a GET call to the following url :
{{ BASE_URL }}contract/{{ID}}

Click here to download Postman collection.



Result example :
{
   "code": 200,
   "success": true,
   "message": "",
   "data": {
       "ID": 2973,
       "sequence_id": "RTO-ABC000294",
       "status": "incomplete",
       "first_name": "first_name",
       "last_name": "last_name",
       "primary_phone": 4363237100,
       "email": "email@rtoplus.me",
       "cash_price": 1200,
       "monthly_rate": 500,
       "term": 36,
       "product_id": 1,
       "selected_term_plan": "security_deposit_due",
       "tax_rate": 7,
       "liability_waiver_program": "yes",
       "secondary_date": "05/15/2022",
       "is_total_down": "yes",
       "total_down": 888,
       "is_delivery_fee": "yes",
       "delivery_fee": 25,
       "delivery_address": {
           "delivery_address": "address",
           "delivery_city": "city",
           "delivery_state": "mi",
           "delivery_zip": 362020
       },
       "building_details": {
           "building": "new",
           "estimated_delivery_date": "05/29/2022",
           "brand": "brand",
           "serial_number": "serial_number",
           "size_width": 24,
           "size_length": 48,
           "model": "model"
       },
       "signer_details": {
           "social_security_number": 123456789,
           "birth_date": "05/29/2022",
           "license_number": 987456321074,
           "license_state": "mi",
           "license_exp_date": "05/29/2022",
           "secondary_phone": 7841235134,
           "employer_income_source": "employer_income_source",
           "employer_phone": 7841224210,
           "supervisor_name": "supervisor_name",
           "length_of_employment": "length_of_employment",
           "mailing_address": "mailing_address",
           "mailing_city": "mailing_city",
           "mailing_state": "mi",
           "mailing_zip": 565623
       },
       "cosigner_details": {
           "social_security_number": 123456789,
           "birth_date": "05/29/2022",
           "license_number": 34531231235345,
           "license_state": "mi",
           "license_exp_date": "05/29/2022",
           "first_name": "first_name",
           "middle_name": "middle_name",
           "last_name": "last_name",
           "primary_phone": 7843451113,
           "secondary_phone": 7841433517,
           "email": "cosigner_detailsemail@yopmail.com",
           "employer_income_source": "employer_income_source",
           "employer_phone": 7841235518,
           "supervisor_name": "supervisor_name",
           "length_of_employment": "length_of_employment",
           "mailing_address": "mailing_address",
           "mailing_city": "mailing_city",
           "mailing_state": "mi",
           "mailing_zip": 545454
       },
       "references": [
           {
               "name": "Diane1",
               "phone": 9638527410,
               "relationship": "friends1",
               "city": "Linton1",
               "state": "mi"
           },
           {
               "name": "Shepard1",
               "phone": 8527419630,
               "relationship": "friends2",
               "city": "Linton2",
               "state": "mi"
           },
           {
               "name": "Melanie1",
               "phone": 9874563210,
               "relationship": "friends3",
               "city": "Linton3",
               "state": "mi"
           }
       ]
   }
}
                

QUERY PARAMETERS

Field Type Required Description
ID Number True Auto generated contract ID.

Agreement Creation

To create agreement you need to make a POST call to the following url :
{{ BASE_URL }}agreements/create

Click here to download Postman collection.



Result example :

{
    "code": 200,
    "success": true,
    "message": "Success! New agreement has been generated.",
    "data": {
        "last_agreement_id": 7392
    }
}
                

QUERY PARAMETERS

Field Type Required Description
agent_firstname String True First name of the agent(user).
agent_lastname String True Last name of the agent(user).
city String True Name of the city.
number_of_guests Integer True It must be an integer.
number_of_pets Integer False It must be an integer between 0 to 10.
checkin_date Date True It must be a valid date in MM/DD/YYYY format. Only today or future dates are allowed.
checkout_date Date True It must be a valid date in MM/DD/YYYY format. Checkout date must be greater than or equal to checkin date.
need_parking Boolean True It must be true(1) or false(0).
fname String True First name of the traveler.
lname String False Last name of the traveler.
mname String False Middle name of the traveler.
traveler_email String True It must be a valid email address of the traveler.
traveler_phone_code Integer True Phone code of the traveler without prefixing plus(+) sign.
traveler_phone Integer True Phone number of the traveler.
platform String True Name of the Platform.
listing String True Name of the Listing.

Agreement List

To get agreement list, you need to make a GET call to the following url :
{{ BASE_URL }}list/agreements

Click here to download Postman collection.



Result example :

{
    "code": 200,
    "success": true,
    "message": "",
    "total_records": 71,
    "data": [
        {
            "ID": 7398,
            "rental_type": "rooms",
            "agreement_platform_id": 43,
            "provider_id": 187,
            "agreement_listing_id": 27,
            "agent_id": 1410,
            "sequence_id": "ATCON0064",
            "status": "incomplete",
            "first_name": "Hardi",
            "middle_name": "mname",
            "last_name": "Shah",
            "city_id": 6,
            "number_of_guests": 5,
            "number_of_pets": 10,
            "traveler_email": "hemal@simplior.com",
            "traveler_phone": "+91 9265539667",
            "checkin_date": "25-04-2022",
            "checkout_date": "30-05-2022",
            "fee_amount": 1124,
            "deposit_amount": 706,
            "extra_fee_amount": null,
            "need_parking": 0,
            "signature_status": "pending",
            "created_by": null,
            "created_at": "2022-04-25T05:13:18.000000Z",
            "updated_at": "2022-04-25T05:13:28.000000Z",
            "provider_name": "Apple Theory",
            "platform_name": "hardi mac",
            "listing_name": "HOU Caroline 432",
            "agent_name": "Hemal BRep",
            "city_name": "Seattle",
            "status_name": ""
        },
        {
            "ID": 7397,
            "rental_type": "rooms",
            "agreement_platform_id": 43,
            "provider_id": 187,
            "agreement_listing_id": 27,
            "agent_id": 1410,
            "sequence_id": "ATCON0063",
            "status": "incomplete",
            "first_name": "Hardi",
            "middle_name": "mname",
            "last_name": "Shah",
            "city_id": 6,
            "number_of_guests": 5,
            "number_of_pets": 10,
            "traveler_email": "hemal@simplior.com",
            "traveler_phone": "+91 9265539667",
            "checkin_date": "24-04-2022",
            "checkout_date": "30-05-2022",
            "fee_amount": 1156,
            "deposit_amount": 726,
            "extra_fee_amount": null,
            "need_parking": 0,
            "signature_status": "pending",
            "created_by": "1",
            "created_at": "2022-04-23T11:49:49.000000Z",
            "updated_at": "2022-04-23T11:49:59.000000Z",
            "provider_name": "Apple Theory",
            "platform_name": "hardi mac",
            "listing_name": "HOU Caroline 432",
            "agent_name": "Hemal BRep",
            "city_name": "Seattle",
            "created_by_name": "Dhruv Bhalgamdiya",
            "status_name": ""
        }
    ]
}
                

QUERY PARAMETERS

Field Type Required Description
perPageRecords Integer True Records required to display per page. It must be an integer greater than zero.
currentPage Integer True Current page number to display records out of total records. It must be an integer number.

External Checkout API

To store an order, you need to make a POST call to the following url :
{{ BASE_URL }}external-checkout

Note. This request does not need the '/endpoint/' at the end of the URL

Click here to download Postman collection.



Result example :

{
    "success": 200,
    "order_id": 12345
    "message": "Success! external checkout record is added.",
}
                

QUERY PARAMETERS

Field Type Required Description
id String/Integer True ID of the order.
first_name String True First name of the customer.
middle_name String False Middle name of the customer.
last_name String True Last name of the customer.
address String True Customer delivery address.
city String True Customer delivery city.
state String True Customer delivery state (full name).
zip String True Customer delivery zip.
brand String True Name of the brand.
serial_number String True
model String True Model name.
size_width Integer False Width of the asset.
size_length Integer False Length of the asset.
cash_price Integer True
tax_rate Float False It must be percentage (%).
social_security_number String False Customer SSN.
birth_date String False It must be a valid date in MM/DD/YYYY.
license_number String False Customer license.
license_state String False Customer license state (full name).
expiration_date String False It must be a valid date in MM/DD/YYYY.
primary_phone String True The primary phone must be 10 digits.
secondary_phone String False The secondary phone must be 10 digits.
email String True It must be a valid email address of the customer.
marital_status String False Optional when state is 'Wisconsin'. It must be 'married' or 'single'
spouse_name String False Optional when state is 'Wisconsin'. The name of the spouse if marital_status is 'married'
spouse_email String False Optional when state is 'Wisconsin'. It must be a valid email address of the spouse if marital_status is 'married'
mailing_address String False Mailing address of the customer
mailing_city String False Mailing city of the customer
mailing_state String False Mailing state (full name) of the customer
mailing_zip String False Mailing zip of the customer
income_source String False Income source of the customer
employer_name String False Customer's employer name
employer_phone String False Employer phone
length_of_employment String False Length of employment of the customer
references[] Array False Supported values are (only 3 items allowed):
  • name - (Required) Name of the reference.
  • phone - The phone must be 10 digits.
  • relationship - Relationship of the references. It must be one of the following options: 'Child', 'Co-worker', 'Friend', 'In-Law', 'Other', 'Parent', 'Relative', 'Sibling'.
  • city - City of the reference.
  • state - State full name.