# Get report for order

Retrieve the report associated with an order. Returns `404` if the
order has not yet produced a report — typically because it is still
in `waiting_for_applicant` or `pending` status.

Endpoint: GET /orders/{id}/report
Version: 1.0
Security: bearer-token

## Path parameters:

  - `id` (string, required)
    Id of the order.

## Header parameters:

  - `Checkr-Tenant-Version` (string)
    CalVer-dated API version to pin behavior to (e.g. `2026-04-29`). When omitted,
the request is served by the newest supported version. Unknown values return 422.

## Response 200 fields (application/json):

  - `id` (string)
    Unique identifier for the report. Use this value in subsequent API calls; it is stable for the lifetime of the report. Test-mode IDs carry a `_test_` infix (e.g. `rp_test_K9dM2pXqR4vN8tLZbWyHJa`); live-mode IDs have no infix.
    Example: rp_K9dM2pXqR4vN8tLZbWyHJa

  - `live_mode` (boolean)
    Whether this report was produced from an order created with a live API key (`true`) or a test API key (`false`). Test-mode reports are produced from canned provider responses and do not reflect real screening activity. See [Testing](/testing) for details.
    Example: true

  - `order_id` (string)
    Identifier of the order this report was produced for.
    Example: ord_TUyYsLnyTbG3xv9hONJF7w

  - `created_at` (string)
    Timestamp the report was created.

  - `updated_at` (string)
    Timestamp the report was last updated.

  - `criminal_history` (any)
    Report item for the criminal history product, or `null` if this product was not included in the order.

  - `criminal_history.id` (string)
    Unique identifier for the report item.
    Example: rpi_F3hQ7wEsLp2xBnVcRuMyTk

  - `criminal_history.status` (string | null)
    Resolved status of this report item:
* `clear` — no findings that warrant adjudication
* `consider` — findings present; the result should be reviewed before making a decision

Null while the report item is still being assembled and no results have been recorded yet.
    Enum: "clear", "consider", null

  - `criminal_history.created_at` (string)
    Timestamp the report item was created.

  - `criminal_history.updated_at` (string)
    Timestamp the report item was last updated.

  - `criminal_history.records` (array)
    One entry per criminal case returned for the applicant, with the source it came from and the person it was matched to. Empty if no records were found.

  - `criminal_history.records.case_number` (string | null)
    Court-assigned case number identifying the matter.

  - `criminal_history.records.court_name` (string | null)
    Name of the court that handled the case.

  - `criminal_history.records.county` (string | null)
    County the case was filed in.

  - `criminal_history.records.state` (string | null)
    Two-letter USPS state code where the case was filed.
    Example: CA

  - `criminal_history.records.file_date` (string | null)
    Date the case was filed with the court.

  - `criminal_history.records.charges` (array)
    Charges filed under this case.

  - `criminal_history.records.charges.charge` (string | null)
    Description of the charge as recorded by the court.

  - `criminal_history.records.charges.statute` (string | null)
    Statute or legal code the charge was filed under.

  - `criminal_history.records.charges.type` (string | null)
    Classification of the charge as reported by the underlying court source.
Commonly one of `felony`, `misdemeanor`, `infraction`, or `violation`,
but other source-specific classifications may pass through.

  - `criminal_history.records.charges.offense_date` (string | null)
    Date the alleged offense occurred.

  - `criminal_history.records.charges.charge_date` (string | null)
    Date the charge was filed.

  - `criminal_history.records.charges.arrest_date` (string | null)
    The date the person was arrested.

  - `criminal_history.records.charges.disposition` (string | null)
    The court's most recent resolution of the charge. Returns the normalized
`disposition_type` value when available, otherwise the raw text as
reported by the source. Charges with multiple court actions surface
the latest one by `disposition_date`.

  - `criminal_history.records.charges.disposition_type` (string | null)
    Normalized disposition category. Known values: `conviction`, `dismissed`,
`expunged`, `pending`, `transferred`, `warrant`, `merged`, `invalid`,
`alternative_adjudication`, `unclassified`. Additional values may be
introduced over time. `null` when no normalized category could be assigned.

  - `criminal_history.records.charges.disposition_date` (string | null)
    Date the most recent disposition was entered.

  - `criminal_history.records.source` (any)
    The court or other source that produced the record. `null` when the upstream source returned no source metadata.

  - `criminal_history.records.source.name` (string | null)
    Human-readable name of the source (e.g. `California Megan's Law Registry`, `OFAC SDN`).

  - `criminal_history.records.source.category` (string | null)
    Category of source the match came from. Common values include
`sex offender registry`, `sanctions`, `healthcare`, and similar
regulatory list categories.

  - `criminal_history.records.source.county` (string | null)
    County the source covers, when applicable.

  - `criminal_history.records.source.state` (string | null)
    Two-letter USPS state code the source covers, when applicable.
    Example: CA

  - `criminal_history.records.person` (any)
    Identifying details of the person the record was matched to. `null` when the upstream source returned no person details.

  - `criminal_history.records.person.full_name` (string | null)
    Full name as recorded by the source.

  - `criminal_history.records.person.first_name` (string | null)
    Given name as recorded by the source.

  - `criminal_history.records.person.middle_name` (string | null)
    Middle name as recorded by the source.

  - `criminal_history.records.person.last_name` (string | null)
    Family name as recorded by the source.

  - `criminal_history.records.person.dob` (string | null)
    Date of birth as recorded by the source. Returned in truncated ISO 8601
form: `YYYY-MM-DD`, `YYYY-MM`, or `YYYY` when only a partial date is
known. `null` when the source does not publish a date of birth.

  - `criminal_history.records.person.gender` (string | null)
    Gender as recorded by the source.

  - `criminal_history.records.person.height` (string | null)
    Height in US units (feet and inches, e.g. `5'10"`).

  - `criminal_history.records.person.weight` (string | null)
    Weight in US units (pounds, e.g. `175 lb`).

  - `criminal_history.records.person.hair_color` (string | null)
    Hair color as recorded by the source.

  - `criminal_history.records.person.eye_color` (string | null)
    Eye color as recorded by the source.

  - `criminal_history.records.person.race` (string | null)
    Race as recorded by the source. May be withheld by source jurisdiction.

  - `criminal_history.records.person.photo_urls` (array)
    URLs of any photos published by the source. Empty array when none are available.

  - `criminal_history.records.person.aliases` (array)
    Other names the matched person is known by, as recorded by the source.

  - `criminal_history.records.person.addresses` (array)
    Addresses associated with the matched person, as recorded by the source.

  - `criminal_history.records.person.addresses.street` (string | null)
    Street line, including house/building number and street name. Apartment or unit numbers may be included.

  - `criminal_history.records.person.addresses.city` (string | null)
    City or municipality.

  - `criminal_history.records.person.addresses.state` (string | null)
    Two-letter US state code. `null` for non-US addresses.
    Example: CA

  - `criminal_history.records.person.addresses.zipcode` (string | null)
    US Postal Service ZIP code (5-digit or 9-digit ZIP+4). `null` for non-US addresses.

  - `criminal_history.records.person.addresses.country` (string | null)
    Two-letter ISO country code. Defaults to `US` when omitted by the source.
    Example: US

  - `criminal_history.records.person.addresses.county` (string | null)
    County the address is located in.

  - `credit_report` (any)
    Report item for the credit report product, or `null` if this product was not included in the order.

  - `credit_report.credit_file_status` (string)
    The status of the request for a credit file from a credit bureau. When the value is not `available`, a credit report cannot be generated.
| Value | Description |
|  --- | --- |
| `available` | Credit file was returned and a score was generated. |
| `frozen` | Applicant's credit file is frozen with the credit bureau. |
| `not_found` | Either the applicant has never used credit, or there's a mismatch in the information provided. |
| `thin_file` | A credit report could not be generated because the applicant has little or no credit history. |
    Enum: "available", "frozen", "not_found", "thin_file"

  - `credit_report.credit_score` (integer | null)
    Applicant's credit score. `null` when `credit_file_status` is not `available`.
    Example: 712

  - `credit_report.credit_summary` (any)
    Aggregate summary of the applicant's credit profile. `null` when `credit_file_status` is not `available`.

  - `credit_report.credit_summary.total_accounts` (integer)
    Total number of credit accounts on file for the applicant.
    Example: 8

  - `credit_report.credit_summary.on_time_payment_rate` (number | null)
    Share of payments made on time across all reporting accounts, expressed as a value between `0` and `1`.
    Example: 0.97

  - `credit_report.credit_summary.average_account_age_months` (integer | null)
    Average age of the applicant's credit accounts, in months.
    Example: 84

  - `credit_report.credit_summary.credit_utilization` (object)
    Revolving credit utilization across the applicant's reporting accounts.

  - `credit_report.credit_summary.credit_utilization.rate` (number | null)
    Ratio of balance to limit, expressed as a value between `0` and `1`.
    Example: 0.23

  - `credit_report.credit_summary.credit_utilization.balance_cents` (integer | null)
    Total revolving balance, in cents.

  - `credit_report.credit_summary.credit_utilization.limit_cents` (integer | null)
    Total revolving credit limit, in cents.

  - `credit_report.credit_summary.estimated_monthly_payment_cents` (integer | null)
    Estimated total monthly payment across all reporting accounts, in cents.
    Example: 142000

  - `credit_report.credit_summary.collections_count` (integer)
    Number of accounts in collections.
    Example: 0

  - `credit_report.credit_summary.charge_offs_count` (integer)
    Number of accounts charged off by the lender.
    Example: 0

  - `credit_report.credit_summary.bankruptcies_count` (integer)
    Number of bankruptcies on file.
    Example: 0

  - `credit_report.credit_summary.payment_timeline` (array)
    Month-by-month payment behavior over the lookback window, ordered oldest to newest.

  - `credit_report.credit_summary.payment_timeline.month` (string)
    Month the entry covers, in `YYYY-MM` format.
    Example: 2026-02

  - `credit_report.credit_summary.payment_timeline.on_time_count` (integer)
    Number of payments made on time during the month.

  - `credit_report.credit_summary.payment_timeline.late_count` (integer)
    Number of payments made late during the month.

  - `credit_report.credit_summary.payment_timeline.on_time_rate` (number | null)
    Share of payments made on time during the month, expressed as a value between `0` and `1`.

  - `eviction_history` (any)
    Report item for the eviction history product, or `null` if this product was not included in the order.

  - `eviction_history.records` (array)
    One entry per eviction filing returned for the applicant. Empty if no records were found.

  - `eviction_history.records.case_number` (string | null)
    Court-assigned case number identifying the filing.

  - `eviction_history.records.plaintiff` (string | null)
    Party that filed the eviction action — typically the landlord or property manager.

  - `eviction_history.records.file_date` (string | null)
    Date the case was filed with the court.

  - `eviction_history.records.judgment` (string | null)
    Judgment outcome as reported by the underlying court source. Free-form text; vocabulary varies across jurisdictions. Null if no judgment has been entered.

  - `eviction_history.records.judgment_date` (string | null)
    Date the judgment was entered. Null if no judgment has been entered.

  - `eviction_history.records.judgment_amount_cents` (integer | null)
    Monetary amount of the judgment, in cents. Null if no monetary judgment was entered.

  - `identity_verification` (any)
    Report item for the identity verification product, or `null` if this product was not included in the order.

  - `identity_verification.document_type` (any)
    Classification of the identity document that was submitted, or `null` if no results are available yet.

  - `identity_verification.document_type.type` (string | null)
    Type of identity document submitted. Possible values include: `Drivers License`, `Identification Card`, `Passport`, `Passport Card`, `Permanent Resident Card`, `Unknown`.
    Example: Drivers License

  - `identity_verification.document_type.country` (string | null)
    Three-letter ISO 3166-1 alpha-3 country code of the issuing country.
    Example: USA

  - `identity_verification.document_type.state` (string | null)
    Two-letter state or province code of the issuing authority, if applicable. Null for nationally-issued documents such as passports.
    Example: CA

  - `identity_verification.document_data` (any)
    Data extracted from the submitted document, or `null` if no results are available yet.

  - `identity_verification.document_data.first_name` (string | null)
    Given name as printed on the document.
    Example: Jane

  - `identity_verification.document_data.last_name` (string | null)
    Family name (surname) as printed on the document.
    Example: Public

  - `identity_verification.document_data.full_name` (string | null)
    Full name as printed on the document. May differ from the concatenation of `first_name` and `last_name` for documents that use a single name field.
    Example: Jane Public

  - `identity_verification.document_data.dob` (string | null)
    Date of birth printed on the document, in `YYYY-MM-DD` format.
    Example: 1990-05-14

  - `identity_verification.document_data.document_number` (string | null)
    Identifier assigned to the document by the issuing authority (e.g. driver's license number, passport number).
    Example: D1234567

  - `identity_verification.document_data.issue_date` (string | null)
    Date the document was issued, in `YYYY-MM-DD` format.
    Example: 2020-01-01

  - `identity_verification.document_data.expiration_date` (string | null)
    Date the document expires, in `YYYY-MM-DD` format.
    Example: 2028-01-01

  - `identity_verification.document_data.address` (any)
    Address printed on the document, parsed into components, or `null` if no address was extracted.

  - `identity_verification.document_data.address.street` (string | null)
    Primary street line.
    Example: 123 Example Street

  - `identity_verification.document_data.address.street2` (string | null)
    Secondary street line (unit, suite, apartment, etc.).
    Example: Suite 200

  - `identity_verification.document_data.address.city` (string | null)
    City.
    Example: Denver

  - `identity_verification.document_data.address.state` (string | null)
    Two-letter state or province code.
    Example: CO

  - `identity_verification.document_data.address.country` (string | null)
    Three-letter ISO 3166-1 alpha-3 country code.
    Example: USA

  - `identity_verification.document_data.address.zip` (string | null)
    Postal code.
    Example: 80033

  - `identity_verification.consider_reasons` (array)
    Reasons the verification resulted in a `consider` status. Empty when `status` is `clear` or `null`.
Each entry represents a distinct rejection category explaining why the verification did not pass.

  - `identity_verification.consider_reasons.category` (string)
    Machine-readable rejection category. Stable across releases; safe to branch on.
    Enum: "name_mismatch", "selfie_mismatch", "doc_expired", "doc_not_authentic", "doc_unsupported", "image_quality", "duplicate_identity", "suspected_fraud", "other"

  - `identity_verification.consider_reasons.label` (string)
    Human-readable description of the rejection category.
    Example: Document expired

  - `identity_verification.documents_zip_url` (string | null)
    Signed URL to download the document images captured during the verification session as a ZIP archive, or `null` if no document images are available. The URL is single-use and short-lived, and needs no authentication of its own — it can be handed straight to a browser.
To retrieve these images alongside the report's other documents in one authenticated call, use [`GET /reports/{id}/documents/zip`](#operation/get-report-documents-zip) instead.
    Example: https://tenant.checkr.com/api/identity_verification_documents/idvd_K9dM2pXqR4vN8tLZbWyHJa

  - `income_verification` (any)
    Report item for the income verification product, or `null` if this product was not included in the order.

  - `income_verification.verification_method` (string | null)
    How the income was verified. `bank` when the applicant linked their accounts, `document` when they uploaded proof of income. Null before verification begins.
    Example: document

  - `income_verification.current_as_of` (string | null)
    How current the findings are. For a bank connection, the date the account data was last refreshed. For documents, the last day the documents cover, which is not the date they were uploaded: `documents[].submitted_at` says that.
Null when only tax forms were supplied, which report a completed tax year rather than recent activity.

  - `income_verification.current_month_income` (any)
    Net and estimated gross income across all active income streams for the current month, or `null` if no results are available yet.

  - `income_verification.current_month_income.month` (string)
    The month the totals cover, in `YYYY-MM` format.
    Example: 2024-11

  - `income_verification.current_month_income.net_cents` (integer | null)
    Net income across all active streams for `month`, in cents.
    Example: 224546

  - `income_verification.current_month_income.estimated_gross_cents` (integer | null)
    Estimated gross income across all active streams for `month`, in cents.
    Example: 269455

  - `income_verification.summary` (any)
    Aggregate income across all active and inactive streams, or `null` if no results are available yet. The window each total covers is given in the schema below.

  - `income_verification.summary.average_monthly_net_cents` (integer | null)
    Average monthly net income across all active and inactive streams, in cents.
    Example: 393492

  - `income_verification.summary.total_past_12_months_net_cents` (integer | null)
    Total net income across all active and inactive streams over the past twelve months, in cents.
    Example: 4721906

  - `income_verification.summary.average_monthly_estimated_gross_cents` (integer | null)
    Average monthly estimated gross income across all active and inactive streams, in cents.
    Example: 472191

  - `income_verification.summary.total_past_12_months_estimated_gross_cents` (integer | null)
    Total estimated gross income across all active and inactive streams over the past twelve months, in cents.
For document income this is what the applicant's tax forms report for a single tax year, counting only forms for the latest year supplied, and it is stated by those forms rather than estimated. The stream carrying it gives the year in `start_date` and `end_date`.
    Example: 5666287

  - `income_verification.accounts` (array)
    One entry per financial-institution account the applicant connected. Empty when the income was verified by document, and when no results are available yet.

  - `income_verification.accounts.id` (string)
    Unique identifier for the connected account.
    Example: ivac_K9dM2pXqR4vN8tLZbWyHJa

  - `income_verification.accounts.financial_institution_name` (string | null)
    Name of the financial institution holding the account.
    Example: Bank of America

  - `income_verification.accounts.account_type` (string | null)
    Type of account as reported by the financial institution. Free-form text; vocabulary varies across institutions (typical values include `Checking`, `Savings`, `Investment`, `401k`).
    Example: Checking

  - `income_verification.accounts.account_number_last4` (string | null)
    Last four digits of the account number. The full number is never returned.
    Example: 5131

  - `income_verification.accounts.account_owners` (array)
    Names listed as owners on the account. May contain multiple entries for jointly held accounts. Empty if no owners were reported.

  - `income_verification.accounts.active_from` (string | null)
    Date the account first became active (the earliest activity visible to the analysis).

  - `income_verification.accounts.current_balance_cents` (integer | null)
    Current balance on the account at the time the report was produced, in cents.
    Example: 1266287

  - `income_verification.accounts.average_monthly_balance_cents` (integer | null)
    Average monthly balance on the account over the analysis window, in cents.
    Example: 664336

  - `income_verification.accounts.insufficient_funds_count_last_6_months` (integer | null)
    Number of insufficient-funds (NSF) fee events on the account in the last six months.
    Example: 2

  - `income_verification.accounts.insufficient_funds_count_last_12_months` (integer | null)
    Number of insufficient-funds (NSF) fee events on the account in the report's analysis window (last 12 months).
    Example: 2

  - `income_verification.accounts.last_insufficient_funds_fee_at` (string | null)
    Date of the most recent insufficient-funds (NSF) fee on the account. Day-precision only. Null if no NSF fees have been observed in the analysis window.

  - `income_verification.accounts.income_streams` (array)
    Recurring deposit streams identified on this account. Empty if no recurring income was detected.

  - `income_verification.accounts.income_streams.id` (string)
    Unique identifier for the income stream.
    Example: ist_K9dM2pXqR4vN8tLZbWyHJa

  - `income_verification.accounts.income_streams.account_id` (string | null)
    The connected account this stream was identified on, matching an `id` in `accounts`. Null for a stream a document established.
    Example: ivac_K9dM2pXqR4vN8tLZbWyHJa

  - `income_verification.accounts.income_streams.source` (string | null)
    Best-effort label for who the deposits come from, typically derived from the deposit memo (for example, an employer name).
    Example: Enterprise One

  - `income_verification.accounts.income_streams.stream_type` (string | null)
    Classification of the stream as reported by the analysis. Free-form text — typical values include `Paycheck`, `Deposit`, `Transfer`. May be `null` when no transactions have been attributed to the stream.
    Example: Paycheck

  - `income_verification.accounts.income_streams.status` (string | null)
    Whether the income stream is still arriving at the time of the report. Free-form text.
    Example: Active

  - `income_verification.accounts.income_streams.start_date` (string | null)
    First day this stream's evidence covers. Null for a stream from a connected account, which reports months rather than days.

  - `income_verification.accounts.income_streams.end_date` (string | null)
    Last day this stream's evidence covers. Null for a stream from a connected account, which reports months rather than days.

  - `income_verification.accounts.income_streams.stream_history_days` (integer | null)
    Days of evidence behind this stream, counting a day covered by two documents once. Null for a stream from a connected account, which reports months. Exact, where `stream_history_months` is rounded and never zero, so a fortnight and a full month both read as `1` there.
    Example: 29

  - `income_verification.accounts.income_streams.start_month` (string | null)
    The same span at month precision. First month deposits were attributed to this stream, in `YYYY-MM` format.
    Example: 2022-09

  - `income_verification.accounts.income_streams.end_month` (string | null)
    Last month deposits were attributed to this stream, in `YYYY-MM` format. Null when the stream is still receiving deposits at the time of the report.
    Example: 2024-08

  - `income_verification.accounts.income_streams.stream_history_months` (integer | null)
    Number of months between `start_month` and `end_month` (or the report date, if the stream is still active). Rounded, so prefer `stream_history_days` for arithmetic.
    Example: 25

  - `income_verification.accounts.income_streams.deposit_frequency` (string | null)
    Typical cadence between deposits in this stream. Free-form text; may be a range (for example, `2-3 days`) when the cadence is irregular.
    Example: 14 days

  - `income_verification.accounts.income_streams.consistency_score` (string | null)
    Qualitative score reflecting how consistently deposits in this stream are classified as income. Free-form text.
    Example: High

  - `income_verification.accounts.income_streams.net_annual_cents` (integer | null)
    Net annual income from this stream, in cents. Measured over a full year, so only a stream from a connected account reports one.
    Example: 5666287

  - `income_verification.accounts.income_streams.estimated_gross_annual_cents` (integer | null)
    Estimated gross annual income from this stream, in cents. Inferred from net deposits, so only a stream from a connected account reports one.
Null for a stream a document established, whose gross was stated rather than estimated and is reported in `gross_cents`.
    Example: 6799544

  - `income_verification.accounts.income_streams.average_monthly_net_cents` (integer | null)
    Average monthly net income from this stream, in cents. Null for a stream a tax form established, since a yearly total divided by twelve is not a measured month.
    Example: 248096

  - `income_verification.accounts.income_streams.last_30_days_net_cents` (integer | null)
    Net income from this stream in the most recent month observed, in cents. `0` is valid. Null for a stream a document established, which reports no month-by-month detail.
    Example: 224500

  - `income_verification.accounts.income_streams.net_income_by_month` (array)
    Per-month breakdown of net deposits from this stream. Empty if no transactions have been observed in the analysis window.
Always empty for a stream a document established, which reports a total for the period it covers and no month-by-month detail. `current_month_income` is null for the same reason.

  - `income_verification.accounts.income_streams.net_income_by_month.month` (string)
    The month the totals cover, in `YYYY-MM` format.
    Example: 2024-05

  - `income_verification.accounts.income_streams.net_income_by_month.net_cents` (integer)
    Net deposits attributed to the stream during `month`, in cents. `0` is valid.
    Example: 269552

  - `income_verification.accounts.income_streams.net_income_by_month.transaction_count` (integer)
    Number of deposit transactions attributed to the stream during `month`.
    Example: 2

  - `income_verification.accounts.income_streams.net_cents` (integer | null)
    Net income from this stream between `start_date` and `end_date`, in cents. Null when nothing reported the net this payer deposited, which is the case for a tax form.
    Example: 382000

  - `income_verification.accounts.income_streams.gross_cents` (integer | null)
    Gross income from this stream between `start_date` and `end_date`, in cents. Not estimated: a paystub and a tax form both state gross outright.
Null when no document stated it, which is the case for a stream established only by bank statements, since deposits are net.
    Example: 480000

  - `income_verification.accounts.income_streams.document_ids` (array)
    The documents in `documents` that established this stream. Empty for a stream from a connected account.

  - `income_verification.income_streams` (array)
    Every income stream identified, whichever method established it. A stream a connected account produced names that account in `account_id`; one a document established names its evidence in `document_ids`.
Streams from a connected account also appear under that account in `accounts[].income_streams`. The two are the same objects, so read one or the other, never both, or the totals double.

  - `income_verification.documents` (array)
    Proof-of-income documents the applicant uploaded, oldest first. Empty when the income was verified by bank connection, and when document income verification is not enabled for your account.

  - `income_verification.documents.id` (string)
    Unique identifier for the document, and what `income_streams[].document_ids` refers to.
    Example: inc_K9dM2pXqR4vN8tLZbWyHJa

  - `income_verification.documents.document_type` (string)
    What the document was classified as. Known values: `paystub`, `w2`, `1099`, `bank_statement`,
and `unknown` when the type could not be established, in which case no income was taken
from it. Additional types may be introduced over time.
    Example: paystub

  - `income_verification.documents.filename` (string | null)
    Name of the file as the applicant uploaded it.
    Example: paystub-june.pdf

  - `income_verification.documents.content_type` (string | null)
    MIME type of the document.
    Example: application/pdf

  - `income_verification.documents.period_start_date` (string | null)
    First day the document covers. A tax form covers its year, January 1 to December 31. Null when the dates could not be read.

  - `income_verification.documents.period_end_date` (string | null)
    Last day the document covers.

  - `income_verification.documents.risk_assessment` (any)
    Whether the document appears genuine. Null until the analysis has assessed it, which is not the same as a clean assessment.

  - `income_verification.documents.risk_assessment.level` (string | null)
    How strong the indicators of alteration are.
| Level | What was detected | Used for reported income |
|  --- | --- | --- |
| `low` | No significant anomalies were detected. Contents are internally consistent and metadata matches the conventions for the type. | Yes |
| `medium` | Minor inconsistencies, unusual metadata, or formatting that departs from the norm. Suggestive rather than conclusive. | Yes |
| `high` | Clear indicators, such as digital editing, structural or layout flaws, or signs of synthetic generation. | No |
| `null` | Not assessed: the analysis has not run yet, or this document type cannot be assessed. | No |

Known values are the three above; additional values may be introduced over time. Treat an
unrecognised level as not counted rather than as `low`.
    Example: low

  - `income_verification.documents.risk_assessment.summary` (string | null)
    Plain-language account of what the assessment found, naming the specific signals behind the level.
    Example: No fraud signals detected. Document metadata and content are consistent with a genuine bank export.

  - `income_verification.documents.checks` (object)
    What was verified about the document when it was uploaded. Each check is `true` when it passed, `false` when it failed, and `null` when it has not been evaluated, which is not the same as a failure.

  - `income_verification.documents.checks.document_type` (boolean | null)
    Whether the document is a type accepted as proof of income.

  - `income_verification.documents.checks.name_match` (boolean | null)
    Whether a name on the document matches the applicant.

  - `income_verification.documents.checks.recency` (boolean | null)
    Whether the document is recent enough to describe the applicant's current income.

  - `income_verification.documents.download_url` (string)
    Endpoint that returns the document itself — [`GET /reports/{id}/documents/{document_id}/download`](#operation/get-report-document). It requires the same authentication as any other request, so the URL alone grants no access. It addresses the document by id and does not expire. To fetch every document for the report in one call instead, see [`GET /reports/{id}/documents/zip`](#operation/get-report-documents-zip).
    Example: https://api.checkrtenant.com/v1/reports/rp_K9dM2pXqR4vN8tLZbWyHJa/documents/inc_K9dM2pXqR4vN8tLZbWyHJa/download

  - `income_verification.documents.submitted_at` (string | null)
    When the applicant submitted the document. Null if it has not been submitted.

  - `income_verification.documents.created_at` (string)
    When the document was first uploaded.

  - `income_verification.consider_reasons` (array)
    Reasons the verification resulted in a `consider` status. Empty when `status` is `clear` or `null`.
Each entry represents a distinct category explaining why the verification did not pass.

  - `income_verification.consider_reasons.category` (string)
    Machine-readable category. Stable across releases; safe to branch on.
    Enum: "applicant_declined"

  - `income_verification.consider_reasons.label` (string)
    Human-readable description of the category.
    Example: Applicant declined verification

  - `sex_offender_registry` (any)
    Report item for the sex offender registry product, or `null` if this product was not included in the order.

  - `sex_offender_registry.records` (array)
    One entry per registry match returned for the applicant. Empty if no matches were found.

  - `sex_offender_registry.records.source` (any)
    The registry or watchlist that returned the match. `null` when the upstream source returned no source metadata.

  - `sex_offender_registry.records.person` (any)
    Identifying details of the matched person as recorded by the source. `null` when the upstream source returned no person details.

  - `sex_offender_registry.records.cases` (array)
    Criminal cases associated with this match. Often empty for watchlist matches that do not carry court data.

  - `global_watchlist` (any)
    Report item for the global watchlist product, or `null` if this product was not included in the order.

  - `global_watchlist.records` (array)
    One entry per watchlist match returned for the applicant. Empty if no matches were found.

## Response 401 fields (application/json):

  - `errors` (array)
    One or more errors describing why the request failed.

  - `errors.code` (string)
    Machine-readable error type. Stable across releases; safe to branch on. Possible values:
* `authorization_error` (401)
* `forbidden` (403)
* `not_found_error` (404)
* `validation_error` (422)
* `internal_error` (500)
* `no_payment_method` (402) — no card on file for the organization. Add a card in Settings → Billing, then retry the request.
* `card_declined` (402) — the saved card was declined. Update the card on file or use a different one, then retry the request with a new `Idempotency-Key`.
* `authentication_required` (402) — the saved card requires interactive authentication and cannot be charged. Replace the saved card with one that supports off-session payments.

  - `errors.detail` (string)
    Human-readable explanation of this specific occurrence.

  - `errors.source` (object)
    Pointer to the input that caused the error. Returned for validation errors to identify the offending field; absent otherwise.

  - `errors.source.pointer` (string)
    JSON Pointer path to the offending attribute.
    Example: /email

## Response 403 fields (application/json):

  - `errors` (array)
    One or more errors describing why the request failed.

  - `errors.code` (string)
    Machine-readable error type. Stable across releases; safe to branch on. Possible values:
* `authorization_error` (401)
* `forbidden` (403)
* `not_found_error` (404)
* `validation_error` (422)
* `internal_error` (500)
* `no_payment_method` (402) — no card on file for the organization. Add a card in Settings → Billing, then retry the request.
* `card_declined` (402) — the saved card was declined. Update the card on file or use a different one, then retry the request with a new `Idempotency-Key`.
* `authentication_required` (402) — the saved card requires interactive authentication and cannot be charged. Replace the saved card with one that supports off-session payments.

  - `errors.detail` (string)
    Human-readable explanation of this specific occurrence.

  - `errors.source` (object)
    Pointer to the input that caused the error. Returned for validation errors to identify the offending field; absent otherwise.

  - `errors.source.pointer` (string)
    JSON Pointer path to the offending attribute.
    Example: /email

## Response 404 fields (application/json):

  - `errors` (array)
    One or more errors describing why the request failed.

  - `errors.code` (string)
    Machine-readable error type. Stable across releases; safe to branch on. Possible values:
* `authorization_error` (401)
* `forbidden` (403)
* `not_found_error` (404)
* `validation_error` (422)
* `internal_error` (500)
* `no_payment_method` (402) — no card on file for the organization. Add a card in Settings → Billing, then retry the request.
* `card_declined` (402) — the saved card was declined. Update the card on file or use a different one, then retry the request with a new `Idempotency-Key`.
* `authentication_required` (402) — the saved card requires interactive authentication and cannot be charged. Replace the saved card with one that supports off-session payments.

  - `errors.detail` (string)
    Human-readable explanation of this specific occurrence.

  - `errors.source` (object)
    Pointer to the input that caused the error. Returned for validation errors to identify the offending field; absent otherwise.

  - `errors.source.pointer` (string)
    JSON Pointer path to the offending attribute.
    Example: /email

## Response 422 fields (application/json):

  - `errors` (array)
    One or more errors describing why the request failed.

  - `errors.code` (string)
    Machine-readable error type. Stable across releases; safe to branch on. Possible values:
* `authorization_error` (401)
* `forbidden` (403)
* `not_found_error` (404)
* `validation_error` (422)
* `internal_error` (500)
* `no_payment_method` (402) — no card on file for the organization. Add a card in Settings → Billing, then retry the request.
* `card_declined` (402) — the saved card was declined. Update the card on file or use a different one, then retry the request with a new `Idempotency-Key`.
* `authentication_required` (402) — the saved card requires interactive authentication and cannot be charged. Replace the saved card with one that supports off-session payments.

  - `errors.detail` (string)
    Human-readable explanation of this specific occurrence.

  - `errors.source` (object)
    Pointer to the input that caused the error. Returned for validation errors to identify the offending field; absent otherwise.

  - `errors.source.pointer` (string)
    JSON Pointer path to the offending attribute.
    Example: /email

