Smile logo
← Use cases / Rental verification

Proof of income and identity, in one check.

Verify a prospective tenant's identity and confirm their income directly from payroll or HR — no scanning payslips, no chasing employers, no waiting days to move a listing forward.

The shape · A cube reduced to its frame — the essential structure of a home, verified.

The problem

Rental applications typically ask a tenant to submit payslips or a bank statement, which a leasing agent then has to manually verify — a slow, easy-to-forge process that leaves landlords exposed to falsified income documents and applicants frustrated by a multi-day wait.

The solution

Smile verifies identity and pulls income data directly from the source in a single call, so a property platform gets a source-verified answer instead of a document to manually check — often before the applicant has finished touring the unit.

What changes
Replace uploaded payslips with source-verified income data
Confirm identity and income in one API call, not two separate steps
Deliver a decision-ready result the same day the application is submitted
How it works

From trigger to decision, in four steps.

STEP 1
Trigger the event
A prospective tenant submits a rental application through your platform, triggering a verification request from your backend.
STEP 2
Call the API endpoint
Your backend sends a GET request to /eincomes with the applicant's user ID and the months you want to cover.
STEP 3
Real-time processing & webhooks
Smile verifies identity and pulls income data from payroll or HR sources, returning results synchronously or via webhook if the applicant needs to complete account linking first.
STEP 4
Deliver the output
Your platform receives verified monthly income and identity status, compares it against your own income-to-rent threshold, and moves the application to the next step.
The code

Request in, structured data out.

Request — cURL
curl "https://sandbox.smileapi.io/v1/eincomes?userId=tenantId-123abc456def789abc123def456abc78&startMonth=2021-01&endMonth=2021-06" \
  -u "$SMILE_CLIENT_ID:$SMILE_CLIENT_SECRET"
Response — 200 OK
{
  "code": "OK",
  "message": "Success",
  "requestId": "5b79399a-6852-4234-bb0e-ad472648282d",
  "data": {
    "nextCursor": "1259723474",
    "items": [
      {
        "id": "einc-a-123abc456def789abc123def456abc78",
        "month": "2021-06",
        "currency": "PHP",
        "amount": 1000,
        "metadata": {
          "createdAt": "2021-04-14T09:30:24Z",
          "sourceId": "a-123abc456def789abc123def456abc78",
          "sourceType": "ACCOUNT",
          "userId": "tenantId-123abc456def789abc123def456abc78",
          "providerId": "abccorp"
        }
      }
    ]
  }
}
startMonth / endMonthOptional YYYY-MM range. Request the last 3, 6, or 12 months to see income stability, not just the latest figure.
amountEstimated monthly income for that month, in the currency shown, derived from the connected source.
metadata.providerIdThe payroll, HR, or social-security source the figure was derived from.
Security & reliability

Built to be trusted in production.

Data privacy & compliance

Data is encrypted in transit and at rest, sensitive fields are tokenized rather than stored in the clear, and consent is captured at the point of collection — adapted to the data privacy regulations applicable in each market you operate.

Reliability

Idempotent requests, built-in retry support, and published rate limits mean a dropped connection or a retried request never produces a duplicate check. Each client can make up to 20 requests per second per IP address across all endpoints; anything above that returns HTTP 429.

Graceful failure

Every error returns a descriptive status code and a structured JSON body with a machine-readable code and a request ID — never a bare 500 — so a failed check is something your application can handle, not just log.

AI & data-driven decisions

How does Smile API power AI and data-driven decisions?

Smile API verifies a prospective tenant's identity and income as structured data. Property managers and AI leasing assistants can use it to check affordability and approve applications faster.

Data-driven decisions

Compare verified income with rent instead of relying on uploaded payslips that may be edited.

Features for your models

Clean, labelled and consented attributes — identity, income, device and watchlist outcomes — ready to use as inputs for credit and fraud scoring models.

Context for AI agents

A leasing assistant can confirm identity, check rent-to-income and tell the applicant what happens next, all in one conversation.

Can an AI leasing assistant verify tenants with Smile API?

Yes. The assistant requests the tenant's verified identity and income, checks affordability against your rent policy and passes a clear recommendation to the property manager.

Is Smile API data structured for machine use?

Yes. Results come back as consistent, typed JSON fields — verification statuses, scores and flags — so rules engines, machine learning models and large language model agents can read them without manual cleanup.

How is consent handled when AI uses Smile API data?

Every request carries the consent record captured from the end user, and Smile returns only the signals that consent covers. Your models and agents work with permissioned data, never scraped or self-reported guesses.
Example profile an agent receives
{
  "profile": "prf_8f21",
  "identity": "verified",
  "income": { "status": "verified", "source": "payroll" },
  "device": "trusted",
  "fraudScore": 0.07,
  "watchlists": "cleared",
  "rentToIncome": 0.28,
  "suggestedAction": "approve"
}
Get connected

Ready to get connected?

Start with one capability or deploy the full lifecycle — Smile plugs into your existing onboarding and underwriting flows either way.

Contact sales