ConditionRail starter documentation
Operational reference for the six surfaces most teams configure first: how conditions move, how borrowers upload, how we sync to your LOS, what an underwriter packet contains, and how to integrate without one.
Condition lifecycle
A condition moves through a fixed set of states:
received— condition pulled from LOS or added manually.parsed— document reader extracted text and metadata.matched— borrower upload linked to a condition with a citation.needs_review— low confidence, missing citation, or compliance-sensitive. A processor must confirm.cleared— processor or underwriter approved the match.packet_ready— included in the next underwriter packet export.escalated— decisioning or adverse-action risk; routed to an authorized underwriter and never auto-resolved.
High-confidence matches with a valid citation may auto-advance to cleared if the workspace enables it. All other paths require a human action, which is recorded in the audit log. Reopening a cleared condition returns it to needs_review and notifies the file owner.
Borrower upload flow
- One signed link per condition. Single-use by default; rotatable.
- Accepted: PDF, JPG, PNG, HEIC. Max 25 MB per file, 10 files per request.
- Server-side virus scan and OCR on receipt. Failed scans surface a clear retry to the borrower.
- Retry states:
network_dropped,scan_failed,ocr_low_confidence,wrong_document_type. Each has a borrower-facing message and a staff-facing reason. - Reminders: email at 24h, SMS at 72h, escalated nudge at 5 days. Cadence is configurable.
- Staff see the upload, the parsed extract, the matched condition, and the citation in one view. Borrowers only see their own outstanding requests.
LOS sync model
Supported systems and relationships:
| System | Relationship |
|---|---|
| Encompass | Connection path |
| Calyx Point | Connector |
| LendingPad | Connection path |
| Arive | Connector |
| Blend | Supported workflow |
| DocuSign | Connection path |
| Plaid | Connection path |
| Gmail / Outlook | Connector |
| SMS | Supported workflow |
| CSV | Import / export fallback |
- Default pull cadence: 5 minutes for active files, 1 hour for archived. Manual resync available.
- Conflict resolution: the LOS is authoritative for loan facts (borrower, property, amounts). ConditionRail is authoritative for condition state and clearance history.
- Field mapping is editable per workspace. Unmapped fields are surfaced rather than dropped.
- Dry-run mode previews every change before write-back. Useful for first connections.
Packet export
An underwriter packet is a single, deterministic PDF containing:
- Cover sheet with loan file, borrower(s), workspace, and export hash.
- Condition index with state, source, and cleared-by.
- Per-condition section: source document, page citation, cleared-by user, timestamp.
- Chain-of-custody appendix listing every action on each condition.
- Final-decision boundary footer reminding readers that ConditionRail does not underwrite, approve, or deny loans.
Prepared by ConditionRail for lender review. Final credit, compliance, underwriting, and adverse-action decisions remain with authorized lending staff. AI may classify, match, draft, and flag. It may not approve, deny, waive, or communicate a credit decision.
Export formats: PDF (default), ZIP of source documents with the index, and CSV of the condition index alone. Re-exports are versioned and logged.
Webhooks & API overview
Webhook events:
condition.createdcondition.clearedcondition.escalatedcondition.reopenedborrower.uploadedpacket.exportedlos.sync.completedlos.sync.failed- Each request is signed with HMAC-SHA256 in the
X-ConditionRail-Signatureheader. Verify before processing. - Retry: exponential backoff at 1m, 5m, 30m, 2h, 6h; give up after 24h. All attempts are visible in the workspace log.
- REST API base:
https://api.conditionrail.com/v1. Bearer-token auth. Rate limits returned inX-RateLimit-*headers. - Per-endpoint reference is available to workspace admins from Settings → Developers.
CSV fallback
When a direct LOS connector is unavailable, ConditionRail runs on CSV in both directions.
loan_number*, borrower_name*, property_address, loan_type, loan_amount, processor_email, underwriter_email, target_close_date
loan_number*, condition_text*, category, prior_to, source, external_id
* required
- Export: full condition state CSV at any time, or scheduled daily.
- Enterprise: scheduled CSV drop via SFTP, encrypted with your public key.
- All imports run through a dry-run preview before commit.