Types of tasks
Borrower tasks
Borrower tasks are assignments that require borrowers to:- Upload documents (pay stubs, bank statements, tax returns, etc.)
- Review and sign disclosures
- Provide additional information or clarification
Loan officer tasks
Loan officer tasks are assignments that require loan officers to:- Upload documents on behalf of borrowers
- Review and verify documents
- Complete underwriting conditions
- Handle disclosure-related tasks
- Task type (document upload, disclosure review, etc.)
- Status (not started, in progress, completed)
- Description of what’s needed
- Due date (if applicable)
- Document links (for uploaded documents)
Retrieving tasks
Query both borrower tasks and loan officer tasks through theloan query:
Task types
How to use these document specifications
Each document page provides detailed specifications including required data fields, suggested questions, and validation rules. You have three options for handling these documents:- Build your own forms - Use the required data fields and suggested questions from each document page to build custom forms that collect the necessary information
- Validate existing forms - Use the required data fields and validation rules to verify that your existing forms include all necessary fields and meet validation requirements
- Use pre-made templates - Use Pylon’s pre-made templates out of the box (templates will be provided separately)
Uploading documents for borrower tasks
Borrower task documents are uploaded via a REST endpoint (not GraphQL): Endpoint:POST /api/loan-applications/{loanId}/borrower-tasks/{taskId}/documents
Headers:
borrower-task-files
Example:
Uploading documents for loan officer tasks
Loan officer tasks may also require document uploads. The upload process is similar, but the endpoint and form field name may differ. Check the task’sdocumentUploadPath field for the specific upload endpoint.
Reassigning all loan officer tasks to the borrower
When a loan officer wants to hand off every outstanding loan-officer task on a loan to the borrower — for example, once initial task generation completes and the LO wants the borrower to drive uploads directly — use thereassignLoanOfficerTasks mutation. It flips every task on the loan whose assignedTo is LOAN_OFFICER to BORROWER in one call, in a single transaction.
loanId accepts either the loan’s ID or its friendly ID. The response’s reassignedCount is the number of tasks that were actually reassigned — 0 is a valid, non-error response when the loan has no outstanding loan-officer tasks.
What gets reassigned
Only tasks withassignedTo = LOAN_OFFICER are moved. Every other task on the loan is untouched by construction:
The mutation only updates each task’s
assignedTo; taskName, status, dueDate, uploaded documents, and every other field are preserved.
Why
taskName is intentionally preserved: the inbound task sync only
recomputes a task’s assignee when its taskName changes. Leaving the name
alone is what keeps a later re-sync from silently reverting the
reassignment.This is a manual, per-loan action — call it explicitly when you want to
hand tasks over. It is not automatic, and it can be called on a frozen
loan.
Rejecting a submitted document
When a borrower uploads a document that doesn’t meet requirements — illegible, the wrong document, or incomplete — reject it with therejectDocument
mutation. Rejecting a document archives it and reopens the task it had
satisfied, so the borrower is prompted to upload a replacement.
Input fields
Response
Behavior
- The rejected document is moved to an archived state and its associated task is reopened, so a fresh upload is required to satisfy it again.
archiveReasonNotesis recorded against the rejection and explains why the document was not accepted.
Unlike task-status polling, this mutation is not a silent no-op when
nothing matches. If the
documentId can’t be found on the loan, or the
document has no task associated with it, the mutation returns an error rather
than succeeding with an empty result.rejectDocument requires the update:borrower scope, and can be called on a
frozen loan. It is not idempotent — rejecting a document that is already
archived will re-issue the rejection.Task status
After uploading a document, the task status updates automatically. Poll the tasks query to verify the upload was successful:NotStarted- Task has been created but no action takenInProgress- Document upload in progressCompleted- Task is complete (document uploaded and verified)AutomaticallyCancelled- Task was cancelled by the systemManuallyCancelled- Task was cancelled manually
Polling for new tasks
Tasks are created automatically as the loan progresses. Poll tasks every 15-30 minutes to detect new tasks:Task details
Each task includes adetails field that provides context about the entity the task is associated with:
borrowerId- The borrower this task is for (if applicable)borrowerName- Display name of the borrowerentityKind- The type of entity (e.g., “BORROWER”, “LOAN”)entityDisplayName- Human-readable name of the entity
Best practices
- Poll regularly - Check for new tasks every 15-30 minutes
- Notify users - Alert borrowers and loan officers when new tasks are assigned
- Track completion - Monitor task status to ensure all required documents are uploaded
- Handle errors - Implement retry logic for failed uploads
- Validate files - Check file types and sizes before uploading
- Monitor both types - Track both borrower tasks and loan officer tasks to ensure nothing is missed
Related resources
- Tracking loan updates - Monitor loan status and task updates
- Working with documents - Upload and download documents, including general documents that don’t fit a task
- Order-Outs Overview - Understand when tasks are created
- Disclosures - Learn about disclosure-related tasks