{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"047be8fd-2667-411b-9e0a-171160b189ce","name":"Verification of Rent API","description":"The RenterFile API allows you to request landlord reference checks inside your software.\n\n# About RenterFile\n\nOur landlord reference check automation software contacts your applicant's landlords asking them to provide a rental verification online. Our system also follows up with the landlords four times per day via email and text messages until they respond. This results in 80.4% of landlords responding to our verification of rent requests. Those who respond do so extremely fast (on average in 16 hours or less).\n\n# About RenterFile API\n\nThe RenterFile API enables PropTech software to add landlord reference checks to their existing tenant screening offering without their clients even needing to leave your software. You can request a landlord reference from RenterFile and our team will reach out to landlords and get them to respond with a landlord reference about their tenant. Once we have a landlord reference report for you, you will be able to show that report inside your software.\n\n# Authentication\n\nAll endpoints in this collection use **API Key** authentication. Send your API key on every request using the `api-key` header:\n\n```\napi-key: YOUR_API_KEY\n\n ```\n\nConfigure these Postman environment variables before sending requests:\n\n| Variable | Description |\n| --- | --- |\n| `API_KEY` | Your RenterFile API key |\n| `API_URL` | Base URL for the environment you are calling |\n| `FILE_ID` | Set automatically after consent file upload |\n| `REQUEST_ID` | Set automatically after creating a landlord reference request |\n\n# Environments\n\n| Environment | Base URL | Usage |\n| --- | --- | --- |\n| Staging | `https://dev.renterfile.com` | Development and testing; no charges. Contact [support@renterinc.com](https://mailto:support@renterinc.com) for access. |\n| Production | `https://renterfile.com` | Live traffic. Contact our team when you are ready for production access. |\n\nAppend `?_format=json` to all request URLs.\n\n# Typical workflow\n\n1. **Upload Consent File** — upload the applicant's signed consent document. Save the returned `fid` as `FILE_ID`.\n    \n2. **Request Landlord Reference** — submit the verification request. Save the returned `requestId` as `REQUEST_ID`.\n    \n3. **Request Status** or **Request Progress Report** — poll for updates, or use the webhook (`PostbackUri`) if configured.\n    \n4. **Modify Request** _(optional)_ — correct details while `requestStatus` is `pending_landlord_response`.\n    \n5. **Cancel Request** _(optional)_ — cancel while `requestStatus` is `pending_landlord_response` or `landlord_legitimacy_check`.\n    \n6. **Get Reference Report** — retrieve the full report when `requestStatus` is a completed variant.\n    \n\n# Request lifecycle\n\nPoll **Request Status by ID** to track progress. Webhook payloads (`PostbackUri`) include the `requestStatus` machine name.\n\n| `requestStatus` | Description |\n| --- | --- |\n| `pending_landlord_response` | Waiting for the landlord to provide a landlord reference. Requests can be **modified** in this state. |\n| `landlord_legitimacy_check` | We've received the landlord reference and are confirming that it came from the property's legitimate landlord or property manager before completing the report. |\n| `completed_verified_landlord` | The landlord reference report is complete, and the landlord was successfully verified as a legitimate owner or property manager. Call **Get Reference Report**. |\n| `completed_landlord_not_verified` | The landlord reference report is complete, but we were unable to verify that the reference came from the property's legitimate landlord or property manager. Review the report before relying on the reference. Call **Get Reference Report**. |\n| `completed_invalid_landlord` | The landlord reference report is complete. The reference did not come from the property's legitimate landlord or property manager. Review the report for details. Call **Get Reference Report**. |\n| `expired_no_landlord_response` | The request expired because the landlord did not respond before the expiration period set by the requester. |\n| `declined` | The landlord declined to provide a landlord reference. |\n| `canceled` | The request was canceled by the requester or an administrator. |\n\n# Webhooks (postbacks)\n\nWhen you create a landlord reference request with `PostbackUri`, RenterFile sends HTTP `POST` callbacks to that URL as the request progresses.\n\nConfigure the webhook when calling **Request a new landlord reference**:\n\n| Field | Description | Required |\n| --- | --- | --- |\n| `PostbackUri` | HTTPS URL that receives webhook payloads | No |\n| `PostbackUsername` | HTTP basic auth username | No |\n| `PostbackPassword` | HTTP basic auth password | No |\n\nIf `PostbackUri` is omitted, no webhooks are sent for that request.\n\n## Delivery\n\n| Field | Value |\n| --- | --- |\n| Method | `POST` |\n| Body | JSON object |\n| Auth | HTTP Basic Auth (only when both `PostbackUsername` and `PostbackPassword` are provided) |\n\nWebhooks fire only when `PostbackUri` is set on the request. Delivery is best-effort (synchronous at the time of the triggering action); there is no automatic retry queue exposed via the API. Prefer idempotent handlers and still poll **Request status by ID** as a fallback.\n\n## Common fields\n\nEvery payload includes:\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `type` | `String` | Event type (see below) |\n| `requestId` | `String` | Landlord reference request ID (same as API `requestId`) |\n| `time` | `Integer` | Unix timestamp when the webhook was sent |\n\n## Event types\n\n| `type` | When |\n| --- | --- |\n| `status_update` | Request status changes |\n| `staff_note` | Staff adds a note or action log entry on the request |\n| `landlord_validation_comment` | Staff adds a comment during landlord legitimacy validation |\n\n### `status_update`\n\nSent whenever the request status changes (for example from `pending_landlord_response` to `landlord_legitimacy_check`, or to a completed/canceled/expired state).\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `status` | `String` | New status machine name (same values as API `requestStatus`) |\n\n``` json\n{\n  \"type\": \"status_update\",\n  \"status\": \"completed_verified_landlord\",\n  \"requestId\": \"5460\",\n  \"time\": 1720886400\n}\n\n ```\n\nStatus values:\n\n| `status` | Description |\n| --- | --- |\n| `pending_landlord_response` | Waiting for the landlord to provide a landlord reference |\n| `landlord_legitimacy_check` | Reference received; verifying the landlord/property manager |\n| `completed_verified_landlord` | Report complete; landlord verified. Call **Get Reference Report**. |\n| `completed_landlord_not_verified` | Report complete; landlord not verified. Call **Get Reference Report**. |\n| `completed_invalid_landlord` | Report complete; reference not from a legitimate landlord. Call **Get Reference Report**. |\n| `expired_no_landlord_response` | Expired with no landlord response |\n| `declined` | Landlord declined to provide a reference |\n| `canceled` | Canceled by the requester or an administrator |\n\nOn `status_update` for a completed status, fetch the full report via **Get Reference Report**.\n\n### `staff_note`\n\nSent when staff records an action on the request (phone call, SMS, email, response, or other).\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `notes` | `Array` | One or more action objects from the new staff note |\n\nEach note object:\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `title` | `String` | Short description of the action (may include a phone number or similar) |\n| `items` | `String[]` | Detail lines (outcome, notes, email ID, etc.) |\n\n``` json\n{\n  \"type\": \"staff_note\",\n  \"notes\": [\n    {\n      \"title\": \"Staff made a phone call to 6285553901\",\n      \"items\": [\n        \"Phone call outcome: Left voicemail\",\n        \"Phone call notes: Called property manager, no answer\"\n      ]\n    },\n    {\n      \"title\": \"Staff sent an email regarding this request\",\n      \"items\": [\n        \"Email ID: manager@example.com\",\n        \"Email notes: Followed up with lease documentation request\"\n      ]\n    }\n  ],\n  \"requestId\": \"5460\",\n  \"time\": 1720886400\n}\n\n ```\n\nPossible `title` prefixes:\n\n- `Staff made a phone call to …`\n    \n- `Staff made an SMS to …`\n    \n- `Staff sent an email regarding this request`\n    \n- `Staff responsed to a phone/sms regarding this request`\n    \n- `Staff took other action regarding this request`\n    \n\nA single webhook may include multiple note objects when several action types were logged in one staff note.\n\n### `landlord_validation_comment`\n\nSent when staff adds a comment on the landlord validation / legitimacy check for this request.\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `comment` | `String` | Comment text |\n\n``` json\n{\n  \"type\": \"landlord_validation_comment\",\n  \"comment\": \"Deed search matches the listed property manager.\",\n  \"requestId\": \"5460\",\n  \"time\": 1720886400\n}\n\n ```\n\n## Handling recommendations\n\n1. Respond quickly with `2xx`; do heavy work asynchronously.\n    \n2. Branch on `type`.\n    \n3. For `status_update`, treat `status` the same as `requestStatus` from the REST API.\n    \n4. Do not rely on webhooks alone — poll **Request status by ID** if a callback is missed.\n    \n\n# Error responses\n\n| HTTP status | Typical cause |\n| --- | --- |\n| `400` | Malformed request (invalid JSON body, bad upload headers) |\n| `422` | Field validation errors (missing/invalid fields, Melissa checks) |\n| `403` | API key does not own the request, or payment method not configured |\n| `404` | Request ID not found |\n| `500` | Unexpected server error |","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"18007900","team":2676017,"collectionId":"047be8fd-2667-411b-9e0a-171160b189ce","publishedId":"2sBY4LRMyc","public":true,"publicUrl":"https://documenter-api.postman.tech/view/18007900/2sBY4LRMyc","privateUrl":"https://go.postman.co/documentation/18007900-047be8fd-2667-411b-9e0a-171160b189ce","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"documentationLayout":"classic-double-column","customisation":{"metaTags":[{"name":"description","value":""},{"name":"title","value":""}],"appearance":{"default":"light","themes":[{"name":"dark","logo":null,"colors":{"top-bar":"212121","right-sidebar":"303030","highlight":"FF6C37"}},{"name":"light","logo":null,"colors":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"}}]}},"version":"8.12.3","publishDate":"2026-07-10T16:59:52.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"","description":""},"logos":{"logoLight":null,"logoDark":null}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/218b0db4a88f880cfd1219738199948020ca238b99e9a0e4d2274878b00b36ba","favicon":""},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://documenter.gw.postman.com/view/metadata/2sBY4LRMyc"}