1
Request a fee sheet
Call
feeSheet.createFeeSheetRequestForLoan for the loan, optionally naming an eligible product structure to quote.2
Poll until it is ready
Poll
feeSheet.feeSheetRequestStatus until the request reaches SUCCEEDED.3
Retrieve the fee sheet
Download the PDF from the signed
url, or query data to build your own fee sheet.Request a fee sheet
CallfeeSheet.createFeeSheetRequestForLoan with the loan and, optionally, an eligible product structure:
A TBD loan cannot have a selected rate, so
productStructureId is required when generating its fee sheet.feeSheetRequestId is null, the request was not created. This mutation reports creation failures through errorMessage rather than userErrors; show or log the message, and do not start polling.
Poll until the fee sheet is ready
Fee sheet generation is asynchronous. PollfeeSheet.feeSheetRequestStatus with the request ID:
Download the PDF
A completed request returns a signed download URL:Build your own fee sheet from structured data
After the request reachesSUCCEEDED, query data on the same feeSheetRequestStatus object. It returns the structured generated fee sheet, so clients can render their own experience without parsing the PDF.
data is null while the request is PENDING, PROCESSING, or FAILED. Poll only status and url, then request the larger structured payload after the request succeeds.structure and fees expose additional fields in the GraphQL API Reference. In the current response, structure.rate, structure.ltv, and structure.dti are decimal fractions (0.065 means 6.5%), while structure.apr is a percentage.
Retries and duplicate requests
Requests with the same loan, product structure, and server-derived pricing inputs are idempotent. A retry reuses an active or successful request instead of generating another fee sheet. A retry afterFAILED creates a new request.
If polling times out or the client loses the request ID, call the creation mutation again with the same input and continue with the returned request ID.
Related
- TBD pricing — Price a loan before its street address is known and quote estimated fee sheets for eligible rates.
- Full rate sheet optimizations — Retrieve complete pricing results and the
EligibleProductStructureIDs you can pass asproductStructureId. - Pricing optimizations overview — Learn about optimization objectives, constraints, and pricing response types.