Skip to main content
Once a loan has been disclosed it is frozen: its terms can no longer be edited directly through the API. To change the terms of a frozen loan, open a change request describing what should change. Pylon’s disclosure desk reviews the request and, if the change is a change of circumstance, issues a revised Loan Estimate. Change requests are also accepted on loans that are not yet frozen.

Open a change request

openChangeRequest lives in the loan mutation namespace and is authorized with the update:loan scope.
Response:
Every change request is worked by the disclosure desk as a support ticket. Open it with openChangeRequest, not with support.createSupportTicket under a change-of-circumstance issue type: openChangeRequest files the same ticket and records the change request on the loan, so both id and plainTicketId point at the same request. Filing a ticket directly creates a ticket with no change request behind it.

Attaching documents

Use attachmentDocumentIds to hand the disclosure desk the evidence behind the change (an updated purchase contract, an appraisal, a rate lock confirmation). Each ID can be either:
  • A document already on the loan, as returned by the loan’s documents field or by a document upload.
  • A support document uploaded for this loan: call support.requestSupportDocumentUpload (experimental; requires the create:support-ticket and use:experimental-api scopes), POST the file to the returned uploadUrl as multipart/form-data with a single files field, and use the documentId from the upload response.
Attachments are forwarded to the support ticket; they are not stored on the change request itself. If support-ticket filing is not enabled for your organization, attachments are ignored.

When ticket filing fails

For organizations with support-ticket filing enabled, the ticket is filed before the change request is saved. If the ticket cannot be filed, the mutation fails and nothing is recorded:
Check extensions.errorDetails.code for CHANGE_REQUEST_TICKET_FAILED and treat it as transient: retry with the same input after a short delay. Because nothing was saved, retrying does not create duplicates. If it keeps failing, contact your account manager and quote the errorId. See Error handling for the general error format.

Tracking a change request

The disclosure desk works the request in its support ticket, so the ticket is where progress is reflected. Read it with the Support API, passing the plainTicketId returned by openChangeRequest:
supportTicket requires the read:support-ticket and use:experimental-api scopes. Pass the ticket ID (th_…), not the change request ID (lcr_…) — the two are different objects and supportTicket does not accept a change request ID.
status is the ticket’s state in the support platform, for example open, snoozed or done. Use supportTicketMessages to read the desk’s replies, and watch for the loan’s terms and disclosures to update once the change is applied. See Tracking loan updates. If you did not keep the ticket ID, supportTicketsForLoan lists every ticket on the loan; change-request tickets carry “Change of Circumstance” in their title.

The change request record

The change request itself is also returned on the loan:
Its status is Pylon’s internal review marker and is not updated as the desk works the ticket — in practice it stays PENDING. Do not poll it to track progress; use the ticket status above. If plainTicketId was null when you opened the request (ticket filing not enabled for your organization), there is no ticket to poll and progress is only visible through changes to the loan itself.