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. |
| 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:
|
| is_address_verified | boolean | False | It must be true(yes) or false(no). |
| delivery_address[] | Array | False |
Supported values are:
|
| building_details[] | Array | False |
Supported values are:
|
| is_mailing_address_verified | boolean | False | It must be true(yes) or false(no). |
| signer_details[] | Array | False |
Supported values are:
|
| cosigner_details[] | Array | False |
Supported values are:
|
| references[] | Array | False |
Supported values are (only 3 arrays allowed):
|
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. |
| 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):
|