Pre-Close QC
Pre-Close QC reviews origination documents before the closing package is signed — the appraisal waiver disclosure, the title report, and similar — so errors surface while there is still time to correct them.
There is no closing yet at this point, so your system creates the QC package. That extra first call is the only structural difference from Post-Close QC; everything after it is the same API.
403 Forbidden, the feature is not yet enabled for your account — contact your Snapdocs Implementation Manager.| Functionality | Description | Endpoint |
|---|---|---|
| Create a package | Create the QC package and receive the uuid every later call needs | Link |
| Get pre-signed upload URL | Get a pre-signed URL to upload documents to review | Link |
| Upload documents to review | Upload origination documents required to review | Link |
| Upload loan data to review | Upload loan data required as a part of the review | Link |
| Download QC results | Download the latest QC results, with type=pre_close | Link |
| Download classified documents | Download individual classified documents, with report_type=pre_close | Link |
| [Status endpoint title] | Get notified via Webhook of status changes in the QC review |
Create the package
Post-Close packages already exist in Snapdocs, because they come from a closing. Pre-Close has none, so you create it first and store the returned uuid against the loan in your LOS — every later call takes it.
POST /qc/packages
{ "fileNumber": "12345678", "signerName": "Smith", "loanGuid": "d679e2ad-278d-e547-9756-84639ba3865" }
The response returns the package uuid. Creating the package is what starts Pre-Close QC, so the loan-data and document events described below fire from that point — not from a signed-document upload as they do for Post-Close.
Upload documents and loan data
Identical to Post-Close:
- Get a pre-signed upload URL for each file.
PUTthe file to that URL.- Register the uploaded documents with their
internal_name. - Upload loan data for the fields your review compares against.
See Documents Glossary for the internal_name values.
Retrieve results
Classified documents — pass report_type=pre_close:
GET /qc/packages/{uuid}/documents?report_type=pre_close
report_type defaults to funding. A Pre-Close request that omits it returns the Post-Close set — usually empty for a Pre-Close package — rather than an error.The QC report — pass type=pre_close:
GET /qc/packages/{uuid}/reports?type=pre_close
type has no default here; omitting it is an error.
Events
Pre-Close publishes the same event types described in Subscription & Webhooks, carrying report_type: "pre_close". Filter on that field if you subscribe to both reviews, so a Pre-Close status update is not mistaken for a Post-Close one.