Pylon GraphQL API

Welcome to the Pylon GraphQL API Documentation! This reference includes the complete set of GraphQL queries and mutations needed for mortgage - from getting teaser rates to show potential borrowers to getting a rate lock for a borrower at the end of the application process.

API Endpoints
https://pylon.mortgage/graphql

Webhooks

Pylon can notify your application when key events occur inside the platform by delivering signed webhooks over HTTPS.

Configuration

Webhook delivery is configured per customer: an HTTPS callback URL, the set of subscribed events, and a signing secret shared between Pylon and your application. Contact Pylon to enable webhooks for your integration or to rotate your signing secret.

Delivery

Events are delivered as POST requests with a JSON body and these headers:

Header Meaning
X-Pylon-Signature Versioned HMAC signature of the request: v1=<hex digest>.
X-Pylon-Timestamp Unix time (seconds) at which the delivery was signed.
X-Pylon-Idempotency-Key Stable identifier for the event; identical across retries.

Delivery is at-least-once. A 2xx response acknowledges the event. Any other response is treated as a failed delivery and retried with exponential backoff, except statuses in the 4xx range other than 429, which mark the delivery as permanently failed. Because retries can produce duplicate deliveries, deduplicate on X-Pylon-Idempotency-Key (also present in the payload as idempotencyKey).

Verifying signatures

Verify every delivery before trusting it:

  1. Read the raw request body exactly as received — do not re-serialize the JSON.
  2. Concatenate the value of X-Pylon-Timestamp, a period (.), and the raw body.
  3. Compute the HMAC-SHA256 hex digest of that string using your signing secret.
  4. Compare v1=<digest> against X-Pylon-Signature with a constant-time comparison.
  5. Reject deliveries whose timestamp is more than 5 minutes from your clock. The timestamp is bound into the signature, so a replayed request cannot present a fresher one.
import { createHmac, timingSafeEqual } from "node:crypto";
            
            function verifyPylonWebhook(headers, rawBody, secret) {
              const timestamp = headers["x-pylon-timestamp"] ?? "";
              const signature = headers["x-pylon-signature"] ?? "";
              if (Math.abs(Date.now() / 1000 - Number(timestamp)) > 300) {
                return false;
              }
              const digest = createHmac("sha256", secret)
                .update(`.`)
                .digest("hex");
              const expected = Buffer.from(`v1=`);
              const received = Buffer.from(signature);
              return (
                expected.length === received.length &&
                timingSafeEqual(expected, received)
              );
            }
            
Event: contributor.created

Fired when a contributor — for example a borrower — is created, including when a loan officer creates the borrower from Pylon's Command Center. The payload identifies the surface the contributor was created from via source, so a host application can react specifically to contributors originating in the Command Center.

Field Type Meaning
event string Always contributor.created.
contributorId string The contributor's Pylon ID — the identifier to store.
dealId string or null The deal in scope at creation, when one exists.
role string The contributor's role, e.g. BORROWER.
customerId string The Pylon customer the contributor belongs to.
source string or null Creation surface: COMMAND_CENTER, MORTGAGE_PORTAL, or ELEMENTS. null for creations that predate source attribution.
createdAt string ISO-8601 creation time.
idempotencyKey string <contributorId>:contributor.created, stable across retries and re-emits.
{
  "event": "contributor.created",
  "contributorId": "cont_2q3X8x1JQvXhYw5mZk7Rr",
  "dealId": "morwor_5b9Kd2mPnWcVtL4sYq8Hh",
  "role": "BORROWER",
  "customerId": "cust_7f1Ns6vBqTgXjM3wZp2Ee",
  "source": "COMMAND_CENTER",
  "createdAt": "2026-07-02T17:24:08.000Z",
  "idempotencyKey": "cont_2q3X8x1JQvXhYw5mZk7Rr:contributor.created"
}

Queries

advisorCompletionJob

Response

Returns an AdvisorCompletionJob

Arguments
Name Description
id - ID!

Example

Query
query advisorCompletionJob($id: ID!) {
  advisorCompletionJob(id: $id) {
    failureMessage
    id
    status
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "advisorCompletionJob": {
      "failureMessage": "xyz789",
      "id": "4",
      "status": "FAILED"
    }
  }
}

advisorSession

Response

Returns an AdvisorSession

Arguments
Name Description
id - ID!

Example

Query
query advisorSession($id: ID!) {
  advisorSession(id: $id) {
    createdAt
    id
    messages {
      ...AdvisorSessionMessageFragment
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "advisorSession": {
      "createdAt": "2007-12-03T10:15:30Z",
      "id": 4,
      "messages": [AdvisorSessionMessage]
    }
  }
}

advisorSessions

Response

Returns [AdvisorSession!]

Example

Query
query advisorSessions {
  advisorSessions {
    createdAt
    id
    messages {
      ...AdvisorSessionMessageFragment
    }
  }
}
Response
{
  "data": {
    "advisorSessions": [
      {
        "createdAt": "2007-12-03T10:15:30Z",
        "id": "4",
        "messages": [AdvisorSessionMessage]
      }
    ]
  }
}

analytics

Description

Namespace for analytics queries. Analytics queries are for querying tabular data built from pre-aggregated API entities. The results can be consumed directly or exported in bulk to a file.

Response

Returns an Analytics

Example

Query
query analytics {
  analytics {
    job {
      ...AnalyticsExportJobFragment
    }
    loanApplicationMetrics {
      ...LoanApplicationAnalyticsMetricsFragment
    }
    loanApplications {
      ...LoanApplicationAnalyticsConnectionFragment
    }
    summary {
      ...PipelineSummaryResponseFragment
    }
  }
}
Response
{
  "data": {
    "analytics": {
      "job": AnalyticsExportJob,
      "loanApplicationMetrics": LoanApplicationAnalyticsMetrics,
      "loanApplications": LoanApplicationAnalyticsConnection,
      "summary": PipelineSummaryResponse
    }
  }
}

appraisal

Description

Appraisal queries.

Response

Returns an AppraisalQueries

Example

Query
query appraisal {
  appraisal {
    availableAmcs {
      ...AvailableAmcFragment
    }
    availableAppraisalTypes {
      ...AvailableAppraisalTypeFragment
    }
  }
}
Response
{
  "data": {
    "appraisal": {
      "availableAmcs": [AvailableAmc],
      "availableAppraisalTypes": [AvailableAppraisalType]
    }
  }
}

asset

Description

Get an asset by ID

Response

Returns an Asset

Arguments
Name Description
id - ID!

Example

Query
query asset($id: ID!) {
  asset(id: $id) {
    amount
    assetReportId
    borrowerIds
    id
    nonBorrowerOwnerNames
    qualifiedAmount
    verifiedAmount
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "asset": {
      "amount": 123,
      "assetReportId": 4,
      "borrowerIds": [4],
      "id": 4,
      "nonBorrowerOwnerNames": ["xyz789"],
      "qualifiedAmount": 123,
      "verifiedAmount": 123
    }
  }
}

assetTransaction

Description

Get an asset transaction by ID

Response

Returns an AssetTransaction

Arguments
Name Description
id - ID!

Example

Query
query assetTransaction($id: ID!) {
  assetTransaction(id: $id) {
    amount
    assetId
    category
    date
    id
    merchantName
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "assetTransaction": {
      "amount": 123,
      "assetId": 4,
      "category": ["xyz789"],
      "date": "2007-12-03",
      "id": "4",
      "merchantName": "xyz789"
    }
  }
}

assetTransactions

Description

Get all transactions for an asset

Response

Returns [AssetTransaction!]!

Arguments
Name Description
assetId - ID!

Example

Query
query assetTransactions($assetId: ID!) {
  assetTransactions(assetId: $assetId) {
    amount
    assetId
    category
    date
    id
    merchantName
  }
}
Variables
{"assetId": "4"}
Response
{
  "data": {
    "assetTransactions": [
      {
        "amount": 123,
        "assetId": 4,
        "category": ["abc123"],
        "date": "2007-12-03",
        "id": "4",
        "merchantName": "xyz789"
      }
    ]
  }
}

assetVerification

Response

Returns an AssetVerificationQueries

Example

Query
query assetVerification {
  assetVerification {
    items {
      ...AssetVerificationItemFragment
    }
    links {
      ...AssetVerificationLinkSummaryFragment
    }
  }
}
Response
{
  "data": {
    "assetVerification": {
      "items": [AssetVerificationItem],
      "links": [AssetVerificationLinkSummary]
    }
  }
}

aus

Description

Fetch AUS information associated with a loan.

Response

Returns an Aus

Example

Query
query aus {
  aus {
    ausRequiredForLoan
    ausRunJob {
      ...AusRunJobFragment
    }
    latestAusRunForLoan {
      ...AusRunJobFragment
    }
  }
}
Response
{
  "data": {
    "aus": {
      "ausRequiredForLoan": false,
      "ausRunJob": AusRunJob,
      "latestAusRunForLoan": AusRunJob
    }
  }
}

auth

Description

Namespace for auth queries.

Response

Returns an AuthQueries

Example

Query
query auth {
  auth {
    impersonation {
      ...AuthImpersonationFragment
    }
    scopes
    viewer {
      ...AuthViewerFragment
    }
  }
}
Response
{
  "data": {
    "auth": {
      "impersonation": AuthImpersonation,
      "scopes": ["abc123"],
      "viewer": AuthViewer
    }
  }
}

borrower

Description

Get a borrower by id

Response

Returns a Borrower

Arguments
Name Description
id - ID!

Example

Query
query borrower($id: ID!) {
  borrower(id: $id) {
    assets {
      ...AssetFragment
    }
    borrowerTasks {
      ...BorrowerTaskFragment
    }
    createdOn
    credit {
      ...BorrowerCreditFragment
    }
    creditInquiries {
      ...CreditInquiryFragment
    }
    deal {
      ...DealFragment
    }
    demographicInfo {
      ...DemographicInfoFragment
    }
    dependentAges
    emailVerified
    externalUserId
    financialDeclarations {
      ...BorrowerFinancialDeclarationsFragment
    }
    hardCreditConsentDate
    hardCreditConsentType
    id
    incomes {
      ...IncomeConnectionFragment
    }
    isFirstTimeHomeBuyer
    liabilities {
      ...LiabilityConnectionFragment
    }
    mailingAddress {
      ...AddressFragment
    }
    maritalStatus
    militaryService {
      ...BorrowerMilitaryServiceFragment
    }
    militaryServiceDeclaration {
      ... on MilitaryService {
        ...MilitaryServiceFragment
      }
      ... on NoMilitaryService {
        ...NoMilitaryServiceFragment
      }
    }
    ownedProperties {
      ...OwnedPropertyConnectionFragment
    }
    personalInformation {
      ...BorrowerPersonalInformationFragment
    }
    pointOfContact
    propertyDeclarations {
      ...BorrowerPropertyDeclarationsFragment
    }
    softCreditConsentDate
    softCreditConsentType
    spouse {
      ...BorrowerSpouseFragment
    }
    useOwnTitleCompany
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "borrower": {
      "assets": [Asset],
      "borrowerTasks": [BorrowerTask],
      "createdOn": "2007-12-03T10:15:30Z",
      "credit": BorrowerCredit,
      "creditInquiries": [CreditInquiry],
      "deal": Deal,
      "demographicInfo": DemographicInfo,
      "dependentAges": [123.45],
      "emailVerified": false,
      "externalUserId": "xyz789",
      "financialDeclarations": BorrowerFinancialDeclarations,
      "hardCreditConsentDate": "2007-12-03T10:15:30Z",
      "hardCreditConsentType": "ELECTRONIC",
      "id": 4,
      "incomes": IncomeConnection,
      "isFirstTimeHomeBuyer": true,
      "liabilities": LiabilityConnection,
      "mailingAddress": Address,
      "maritalStatus": "DIVORCED",
      "militaryService": BorrowerMilitaryService,
      "militaryServiceDeclaration": MilitaryService,
      "ownedProperties": OwnedPropertyConnection,
      "personalInformation": BorrowerPersonalInformation,
      "pointOfContact": true,
      "propertyDeclarations": BorrowerPropertyDeclarations,
      "softCreditConsentDate": "2007-12-03T10:15:30Z",
      "softCreditConsentType": "ELECTRONIC",
      "spouse": BorrowerSpouse,
      "useOwnTitleCompany": false
    }
  }
}

borrowerUser

Description

Fetch a user in an organization by id

Response

Returns a BorrowerUser

Arguments
Name Description
id - ID!

Example

Query
query borrowerUser($id: ID!) {
  borrowerUser(id: $id) {
    id
    loanApplications {
      ...BorrowerUserLoanApplicationSummaryFragment
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "borrowerUser": {
      "id": 4,
      "loanApplications": [
        BorrowerUserLoanApplicationSummary
      ]
    }
  }
}

commsSettings

Description

Get the comms settings for the current organization. Distinct from the per-template opt-ins: these govern when a communication is triggered, not which templates the customer receives.

Response

Returns a CommsSettings

Example

Query
query commsSettings {
  commsSettings {
    autoSendBorrowerPortalInvite
    customerId
  }
}
Response
{
  "data": {
    "commsSettings": {"autoSendBorrowerPortalInvite": true, "customerId": 4}
  }
}

commsTemplate

Description

Get comms template by id

Response

Returns a CommsTemplate

Arguments
Name Description
id - ID!

Example

Query
query commsTemplate($id: ID!) {
  commsTemplate(id: $id) {
    id
    name
    recipients
    subject
    template
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "commsTemplate": {
      "id": 4,
      "name": "abc123",
      "recipients": ["BORROWER"],
      "subject": "xyz789",
      "template": "abc123"
    }
  }
}

commsTemplates

Description

Get all comms templates

Response

Returns [CommsTemplate!]

Example

Query
query commsTemplates {
  commsTemplates {
    id
    name
    recipients
    subject
    template
  }
}
Response
{
  "data": {
    "commsTemplates": [
      {
        "id": "4",
        "name": "xyz789",
        "recipients": ["BORROWER"],
        "subject": "abc123",
        "template": "abc123"
      }
    ]
  }
}

company

Description

Get a company by ID

Response

Returns a Company

Arguments
Name Description
id - ID!

Example

Query
query company($id: ID!) {
  company(id: $id) {
    businessType
    id
    name
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "company": {
      "businessType": "CORPORATION",
      "id": "4",
      "name": "abc123"
    }
  }
}

contributor

Response

Returns a Contributor

Arguments
Name Description
id - ID!

Example

Query
query contributor($id: ID!) {
  contributor(id: $id) {
    contactInfo {
      ...ContributorContactInfoFragment
    }
    deals {
      ...DealConnectionFragment
    }
    disabledAt
    displayName
    id
    role
    roleId
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "contributor": {
      "contactInfo": ContributorContactInfo,
      "deals": DealConnection,
      "disabledAt": "2007-12-03T10:15:30Z",
      "displayName": "abc123",
      "id": 4,
      "role": "xyz789",
      "roleId": 4
    }
  }
}

contributorRoles

Response

Returns a ContributorRoleConnection

Arguments
Name Description
after - String A cursor value that indicates the position after which items should be returned. Typically this should be the 'endCursor' of the previous page.
before - String A cursor value that indicates the position before which items should be returned. Typically this should be the 'startCursor' of the following page.
first - Int The number of items to be retrieved for forward pagination. Either 'first' or 'last' must be specified, but not both. This value must be between 1 and 500.
last - Int The number of items to be retrieved for backward pagination. Either 'first' or 'last' must be specified, but not both. This value must be between 1 and 500.
sortDirection - SortDirection The direction in which the results should be sorted. Defaults to ASC.

Example

Query
query contributorRoles(
  $after: String,
  $before: String,
  $first: Int,
  $last: Int,
  $sortDirection: SortDirection
) {
  contributorRoles(
    after: $after,
    before: $before,
    first: $first,
    last: $last,
    sortDirection: $sortDirection
  ) {
    edges {
      ...ContributorRoleEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
  }
}
Variables
{
  "after": "xyz789",
  "before": "abc123",
  "first": 987,
  "last": 987,
  "sortDirection": "ASC"
}
Response
{
  "data": {
    "contributorRoles": {
      "edges": [ContributorRoleEdge],
      "pageInfo": PageInfo
    }
  }
}

contributors

Response

Returns a ContributorConnection

Arguments
Name Description
after - String A cursor value that indicates the position after which items should be returned. Typically this should be the 'endCursor' of the previous page.
before - String A cursor value that indicates the position before which items should be returned. Typically this should be the 'startCursor' of the following page.
filterBy - ContributorFilter
first - Int The number of items to be retrieved for forward pagination. Either 'first' or 'last' must be specified, but not both. This value must be between 1 and 500.
last - Int The number of items to be retrieved for backward pagination. Either 'first' or 'last' must be specified, but not both. This value must be between 1 and 500.
sortDirection - SortDirection The direction in which the results should be sorted. Defaults to ASC.

Example

Query
query contributors(
  $after: String,
  $before: String,
  $filterBy: ContributorFilter,
  $first: Int,
  $last: Int,
  $sortDirection: SortDirection
) {
  contributors(
    after: $after,
    before: $before,
    filterBy: $filterBy,
    first: $first,
    last: $last,
    sortDirection: $sortDirection
  ) {
    edges {
      ...ContributorEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
  }
}
Variables
{
  "after": "abc123",
  "before": "xyz789",
  "filterBy": ContributorFilter,
  "first": 123,
  "last": 987,
  "sortDirection": "ASC"
}
Response
{
  "data": {
    "contributors": {
      "edges": [ContributorEdge],
      "pageInfo": PageInfo
    }
  }
}

credit

Description

Namespace for credit queries. These allow checking on the status of a credit pull and retrieving the credit report once the credit pull is complete.

Response

Returns a Credit

Example

Query
query credit {
  credit {
    job {
      ...CreditPullJobFragment
    }
    missingFieldsForCreditPull
    report {
      ...CreditReportFragment
    }
    udnMonitors {
      ...UdnMonitorGqlFragment
    }
  }
}
Response
{
  "data": {
    "credit": {
      "job": CreditPullJob,
      "missingFieldsForCreditPull": ["BORROWER_CURRENT_ADDRESS"],
      "report": CreditReport,
      "udnMonitors": [UdnMonitorGql]
    }
  }
}

creditInquiry

Description

Get a credit inquiry by ID

Response

Returns a CreditInquiry

Arguments
Name Description
id - ID!

Example

Query
query creditInquiry($id: ID!) {
  creditInquiry(id: $id) {
    creditBusinessType
    creditInquiryResultType
    date
    detailCreditBusinessType
    id
    name
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "creditInquiry": {
      "creditBusinessType": "ADVERTISING",
      "creditInquiryResultType": "ACCOUNT_CLOSED",
      "date": "2007-12-03T10:15:30Z",
      "detailCreditBusinessType": "ADVERTISING_AGENCIES",
      "id": "4",
      "name": "xyz789"
    }
  }
}

currentLoanOfficer

Description

The authenticated user's own GlobalLoanOfficer record, matched by Auth0 email within the current organization. Null when the caller is not a loan officer.

Response

Returns a GlobalLoanOfficer

Example

Query
query currentLoanOfficer {
  currentLoanOfficer {
    email
    firstName
    id
    lastName
    slug
  }
}
Response
{
  "data": {
    "currentLoanOfficer": {
      "email": "xyz789",
      "firstName": "xyz789",
      "id": "4",
      "lastName": "abc123",
      "slug": "xyz789"
    }
  }
}

customerCommsOptIns

Description

Get customer comms opt-in status for the current organization

Response

Returns a CustomerCommsOptIns

Example

Query
query customerCommsOptIns {
  customerCommsOptIns {
    comms {
      ...CommsWithOptInStatusFragment
    }
    customerId
    customerName
  }
}
Response
{
  "data": {
    "customerCommsOptIns": {
      "comms": [CommsWithOptInStatus],
      "customerId": "4",
      "customerName": "xyz789"
    }
  }
}

deal

Description

Fetch a deal by id. A deal encapsulates the entire process of getting a mortgage, including situations such as concurrent financing where there could be multiple loans

Response

Returns a Deal

Arguments
Name Description
id - ID!

Example

Query
query deal($id: ID!) {
  deal(id: $id) {
    borrowers {
      ...BorrowerConnectionFragment
    }
    creationTime
    friendlyId
    id
    loans {
      ...LoanApplicationFragment
    }
    parties {
      ...PartyFragment
    }
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "deal": {
      "borrowers": BorrowerConnection,
      "creationTime": "2007-12-03T10:15:30Z",
      "friendlyId": "abc123",
      "id": "4",
      "loans": [LoanApplication],
      "parties": [Party]
    }
  }
}

deals

Description

List all deals

Response

Returns a DealConnection

Arguments
Name Description
after - String A cursor value that indicates the position after which items should be returned. Typically this should be the 'endCursor' of the previous page.
before - String A cursor value that indicates the position before which items should be returned. Typically this should be the 'startCursor' of the following page.
first - Int The number of items to be retrieved for forward pagination. Either 'first' or 'last' must be specified, but not both. This value must be between 1 and 500.
last - Int The number of items to be retrieved for backward pagination. Either 'first' or 'last' must be specified, but not both. This value must be between 1 and 500.
sortDirection - SortDirection The direction in which the results should be sorted. Defaults to ASC.

Example

Query
query deals(
  $after: String,
  $before: String,
  $first: Int,
  $last: Int,
  $sortDirection: SortDirection
) {
  deals(
    after: $after,
    before: $before,
    first: $first,
    last: $last,
    sortDirection: $sortDirection
  ) {
    edges {
      ...DealEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
  }
}
Variables
{
  "after": "xyz789",
  "before": "xyz789",
  "first": 123,
  "last": 123,
  "sortDirection": "ASC"
}
Response
{
  "data": {
    "deals": {
      "edges": [DealEdge],
      "pageInfo": PageInfo
    }
  }
}

demoSeed

Response

Returns a DemoSeedQueries

Example

Query
query demoSeed {
  demoSeed {
    ausConditionScenarios {
      ...DemoAusConditionScenarioFragment
    }
    wireOutWorksheetScenarios {
      ...DemoWireOutWorksheetScenarioFragment
    }
  }
}
Response
{
  "data": {
    "demoSeed": {
      "ausConditionScenarios": [DemoAusConditionScenario],
      "wireOutWorksheetScenarios": [
        DemoWireOutWorksheetScenario
      ]
    }
  }
}

disclosures

Use disclosuresHistory instead to grab all disclosures, including both recent and historical runs.
Response

Returns a Disclosures

Arguments
Name Description
loanId - String!

Example

Query
query disclosures($loanId: String!) {
  disclosures(loanId: $loanId) {
    adverseAction {
      ...DisclosureFragment
    }
    closingDisclosure {
      ...DisclosureFragment
    }
    initialDisclosure {
      ...DisclosureFragment
    }
    redisclosure {
      ...DisclosureFragment
    }
  }
}
Variables
{"loanId": "abc123"}
Response
{
  "data": {
    "disclosures": {
      "adverseAction": Disclosure,
      "closingDisclosure": Disclosure,
      "initialDisclosure": Disclosure,
      "redisclosure": Disclosure
    }
  }
}

disclosuresHistory

Response

Returns a DisclosuresHistory

Arguments
Name Description
loanId - ID!

Example

Query
query disclosuresHistory($loanId: ID!) {
  disclosuresHistory(loanId: $loanId) {
    disclosures {
      ...DisclosureFragment
    }
  }
}
Variables
{"loanId": 4}
Response
{
  "data": {
    "disclosuresHistory": {"disclosures": [Disclosure]}
  }
}

disclosuresPreviews

Response

Returns a DisclosuresPreviews

Arguments
Name Description
loanId - String!

Example

Query
query disclosuresPreviews($loanId: String!) {
  disclosuresPreviews(loanId: $loanId) {
    adverseAction {
      ...DisclosurePreviewFragment
    }
    closingDisclosure {
      ...DisclosurePreviewFragment
    }
    initialDisclosure {
      ...DisclosurePreviewFragment
    }
    redisclosure {
      ...DisclosurePreviewFragment
    }
  }
}
Variables
{"loanId": "abc123"}
Response
{
  "data": {
    "disclosuresPreviews": {
      "adverseAction": DisclosurePreview,
      "closingDisclosure": DisclosurePreview,
      "initialDisclosure": DisclosurePreview,
      "redisclosure": DisclosurePreview
    }
  }
}

disclosuresRunStatus

Description

Look up the status of an asynchronous disclosures run by its ID (e.g. the disclosuresRunId returned from floatStructure). Use this to observe whether an enqueued package was actually sent, is still processing, or failed — and, on failure, why.

Response

Returns a DisclosuresRunStatus!

Arguments
Name Description
disclosuresRunId - ID!

Example

Query
query disclosuresRunStatus($disclosuresRunId: ID!) {
  disclosuresRunStatus(disclosuresRunId: $disclosuresRunId) {
    disclosuresRunId
    errors
    stage
    status
  }
}
Variables
{"disclosuresRunId": "4"}
Response
{
  "data": {
    "disclosuresRunStatus": {
      "disclosuresRunId": "4",
      "errors": ["abc123"],
      "stage": "ADVERSE_ACTION_DISCLOSURES",
      "status": "FAILED"
    }
  }
}

documentEvidence

Description

Document evidence queries.

Response

Returns a LoanDocumentQueries

Example

Query
query documentEvidence {
  documentEvidence {
    documentById {
      ...LoanDocumentFragment
    }
  }
}
Response
{
  "data": {
    "documentEvidence": {"documentById": LoanDocument}
  }
}

documentIntake

Description

Per-file document-intake status queries.

Response

Returns a DocumentIntakeQueries

Example

Query
query documentIntake {
  documentIntake {
    seedOutcome {
      ...SeedOutcomeResponseFragment
    }
    seeding {
      ...DocumentSeedingFragment
    }
    status {
      ...DocumentIntakeStatusResponseFragment
    }
  }
}
Response
{
  "data": {
    "documentIntake": {
      "seedOutcome": SeedOutcomeResponse,
      "seeding": DocumentSeeding,
      "status": DocumentIntakeStatusResponse
    }
  }
}

events

Description

Query entity change events. Use the 'next' field to poll for subsequent changes.

Response

Returns an EntityEventsResponse!

Arguments
Name Description
since - String The next cursor from the previous batch, or null to obtain a fresh cursor.

Example

Query
query events($since: String) {
  events(since: $since) {
    batch {
      ...NodeChangedEventBatchFragment
    }
    next
  }
}
Variables
{"since": "abc123"}
Response
{
  "data": {
    "events": {
      "batch": NodeChangedEventBatch,
      "next": "xyz789"
    }
  }
}

extractDocument

Description

Document extraction queries.

Response

Returns an ExtractDocumentQueries

Example

Query
query extractDocument {
  extractDocument {
    status {
      ...ExtractDocumentStatusResponseFragment
    }
  }
}
Response
{
  "data": {
    "extractDocument": {
      "status": ExtractDocumentStatusResponse
    }
  }
}

featureFlags

Description

Evaluate feature flags by name for the current customer

Response

Returns [FeatureFlagResult!]!

Arguments
Name Description
names - [String!]! Flag names to evaluate

Example

Query
query featureFlags($names: [String!]!) {
  featureFlags(names: $names) {
    enabled
    name
  }
}
Variables
{"names": ["xyz789"]}
Response
{
  "data": {
    "featureFlags": [
      {"enabled": true, "name": "abc123"}
    ]
  }
}

fee

Response

Returns a Fee

Arguments
Name Description
id - ID!

Example

Query
query fee($id: ID!) {
  fee(id: $id) {
    escrowItemType
    feeActualTotalAmount
    feeDescription
    feePaidToType
    feePayments {
      ...FeePaymentFragment
    }
    feeSpecifiedFixedAmount
    feeTotalPercent
    feeType
    id
    integratedDisclosureSectionType
    monthlyAmount
    monthsPaid
    paidTo {
      ...PaidToFragment
    }
    prepaidItemType
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "fee": {
      "escrowItemType": "ASSESSMENT_TAX",
      "feeActualTotalAmount": 123,
      "feeDescription": "abc123",
      "feePaidToType": "BROKER",
      "feePayments": [FeePayment],
      "feeSpecifiedFixedAmount": 123,
      "feeTotalPercent": 123,
      "feeType": "APPLICATION_FEE",
      "id": 4,
      "integratedDisclosureSectionType": "DUE_FROM_BORROWER_AT_CLOSING",
      "monthlyAmount": 123,
      "monthsPaid": 123,
      "paidTo": PaidTo,
      "prepaidItemType": "BOROUGH_PROPERTY_TAX"
    }
  }
}

feeSheet

Description

Fee sheet queries

Response

Returns a FeeSheetQueries

Example

Query
query feeSheet {
  feeSheet {
    feeSheetRequestStatus {
      ...FeeSheetRequestStatusFragment
    }
  }
}
Response
{
  "data": {
    "feeSheet": {
      "feeSheetRequestStatus": FeeSheetRequestStatus
    }
  }
}

flood

Description

Namespace for flood queries. Allows checking the status of a flood determination order and retrieving its result once completed.

Response

Returns a FloodQueries

Example

Query
query flood {
  flood {
    floodOrder {
      ...FloodOrderFragment
    }
  }
}
Response
{"data": {"flood": {"floodOrder": FloodOrder}}}

funding

Description

Funding queries

Response

Returns a FundingQueries

Example

Query
query funding {
  funding {
    activity {
      ...FundingActivityPageFragment
    }
  }
}
Response
{"data": {"funding": {"activity": FundingActivityPage}}}

geography

Description

Namespace for geography queries. These allow querying state and county information needed for licensing and pre-approval.

Response

Returns a Geography

Example

Query
query geography {
  geography {
    place {
      ...PlaceDetailsFragment
    }
    placeAutocomplete {
      ...PlaceAutocompleteSuggestionFragment
    }
    usState {
      ...UsStateFragment
    }
  }
}
Response
{
  "data": {
    "geography": {
      "place": PlaceDetails,
      "placeAutocomplete": [PlaceAutocompleteSuggestion],
      "usState": UsState
    }
  }
}

income

Description

Get an income by ID

Response

Returns an Income

Arguments
Name Description
id - ID!

Example

Query
query income($id: ID!) {
  income(id: $id) {
    averageHoursPerWeek
    id
    payPeriodFrequency
    qualifiedAmount
    statedAmount
    statedMonthlyAmount
    verifiedAmount
    voieReportId
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "income": {
      "averageHoursPerWeek": 123,
      "id": 4,
      "payPeriodFrequency": "ANNUALLY",
      "qualifiedAmount": 123.45,
      "statedAmount": 123.45,
      "statedMonthlyAmount": 123,
      "verifiedAmount": 123.45,
      "voieReportId": 4
    }
  }
}

incomeVerification

Response

Returns an IncomeVerificationQueries

Example

Query
query incomeVerification {
  incomeVerification {
    orders {
      ...IncomeVerificationOrderSummaryFragment
    }
  }
}
Response
{
  "data": {
    "incomeVerification": {
      "orders": [IncomeVerificationOrderSummary]
    }
  }
}

liability

Description

Get a liabilitiy by ID

Response

Returns a Liability

Arguments
Name Description
id - ID!

Example

Query
query liability($id: ID!) {
  liability(id: $id) {
    accountIdentifier
    balance
    bankName
    creditorName
    exclusionReason
    id
    intent
    monthlyPayment
    reportType
    type
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "liability": {
      "accountIdentifier": "abc123",
      "balance": 123.45,
      "bankName": "xyz789",
      "creditorName": "xyz789",
      "exclusionReason": "ASSIGNED_TO_ANOTHER_PARTY",
      "id": 4,
      "intent": "DO_NOTHING",
      "monthlyPayment": 123.45,
      "reportType": "CREDIT_REPORT",
      "type": "BORROWER_ESTIMATED_TOTAL_MONTHLY_LIABILITY_PAYMENT"
    }
  }
}

loan

Description

Get a Loan by ID or by friendly ID

Response

Returns a Loan

Arguments
Name Description
id - ID!

Example

Query
query loan($id: ID!) {
  loan(id: $id) {
    allowedStates
    appraisal {
      ...AppraisalFragment
    }
    appraisalOrders {
      ...AppraisalOrderFragment
    }
    assignedLoanOfficer {
      ...LoanOfficerFragment
    }
    availableGlobalLoanOfficers {
      ...GlobalLoanOfficerFragment
    }
    availableLoanAssignments {
      ...LoanAssignmentUserFragment
    }
    borrowerPreferences {
      ...BorrowerPreferencesFragment
    }
    borrowers {
      ...BorrowerConnectionFragment
    }
    bulkLoanDocumentsExportJob {
      ...BulkLoanDocumentsExportJobFragment
    }
    cashOutType
    changeRequests {
      ...LoanChangeRequestFragment
    }
    closingDate
    concessions {
      ...ConcessionLogFragment
    }
    contacts {
      ...ContactFragment
    }
    currentStage
    customerPointAdjustments {
      ...CustomerPointAdjustmentFragment
    }
    dealId
    disclosureDrift {
      ... on DisclosureDriftAssessed {
        ...DisclosureDriftAssessedFragment
      }
      ... on DisclosureDriftNoBaseline {
        ...DisclosureDriftNoBaselineFragment
      }
    }
    documents {
      ...DocumentFragment
    }
    duplicateLiabilitySuggestions {
      ...DuplicateLiabilitySuggestionFragment
    }
    earnestMoneyDeposit
    effectiveAppraisalWaiver
    employmentsMissingStartDateCount
    estimatedRatios {
      ...EstimatedLoanRatiosFragment
    }
    fees {
      ...FeeFragment
    }
    friendlyId
    fundedDate
    fundingSettlement {
      ...FundingSettlementFragment
    }
    getAutoConditionalApprovalStatus {
      ...GetAutoConditionalApprovalStatusResponseFragment
    }
    id
    intentToProceedDate
    isClosed
    isFirstTimeHomebuyer
    isFloated
    isFrozen
    latestBulkLoanDocumentsExportJob {
      ...BulkLoanDocumentsExportJobFragment
    }
    latestPreApprovalRunTime
    latestSuccessfulBulkLoanDocumentsExportJob {
      ...BulkLoanDocumentsExportJobFragment
    }
    liabilities {
      ...LiabilityFragment
    }
    loanAssignments {
      ...LoanAssignmentFragment
    }
    loanContact {
      ...LoanContactFragment
    }
    loanDocuments {
      ...LoanDocumentFragment
    }
    loanNumber
    loanOfficerDocumentTasks {
      ...LoanOfficerDocumentTaskFragment
    }
    loanProcess {
      ...LoanProcessFragment
    }
    loanPurpose
    loanTermYears
    lockedSummary {
      ...LockedLoanSummaryFragment
    }
    ltv
    maxLoanAmount
    maxPurchasePrice
    mismoImport {
      ...MismoImportFragment
    }
    noteRatePercent
    orderOuts {
      ... on Appraisal {
        ...AppraisalFragment
      }
      ... on Title {
        ...TitleFragment
      }
    }
    outOfPocketMax
    pointOfContact {
      ...BorrowerFragment
    }
    preapprovalProduct {
      ...ProductFragment
    }
    pricingFreshness {
      ...LoanPricingFreshnessFragment
    }
    productPricingRate {
      ...ProductPricingRateFragment
    }
    productStructure {
      ...ProductPricingRateFragment
    }
    productStructureDegraded {
      ...DegradedProductStructureFragment
    }
    purchasePrice
    pylonApproved
    rateLock {
      ...RateLockDetailsFragment
    }
    rateLockTerm
    refinanceCashOutProceeds
    sellerCredit
    servicers {
      ...ContactFragment
    }
    stages {
      ...LoanStageFragment
    }
    subjectProperty {
      ...SubjectPropertyFragment
    }
    subjectPropertyIntent {
      ...SubjectPropertyIntentFragment
    }
    title {
      ...TitleFragment
    }
    titleCompanyAttached
    totalAssetsAvailable
    tridTriggeredDate
    underwritingSubmissionGate {
      ...UnderwritingSubmissionGateFragment
    }
    useOwnTitleCompany
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "loan": {
      "allowedStates": ["AK"],
      "appraisal": Appraisal,
      "appraisalOrders": [AppraisalOrder],
      "assignedLoanOfficer": LoanOfficer,
      "availableGlobalLoanOfficers": [GlobalLoanOfficer],
      "availableLoanAssignments": [LoanAssignmentUser],
      "borrowerPreferences": BorrowerPreferences,
      "borrowers": BorrowerConnection,
      "bulkLoanDocumentsExportJob": BulkLoanDocumentsExportJob,
      "cashOutType": "CASH_OUT",
      "changeRequests": [LoanChangeRequest],
      "closingDate": "2007-12-03",
      "concessions": [ConcessionLog],
      "contacts": [Contact],
      "currentStage": "abc123",
      "customerPointAdjustments": CustomerPointAdjustment,
      "dealId": "abc123",
      "disclosureDrift": DisclosureDriftAssessed,
      "documents": [Document],
      "duplicateLiabilitySuggestions": [
        DuplicateLiabilitySuggestion
      ],
      "earnestMoneyDeposit": 123.45,
      "effectiveAppraisalWaiver": "AUTOMATED_COLLATERAL_EVALUATION",
      "employmentsMissingStartDateCount": 123,
      "estimatedRatios": EstimatedLoanRatios,
      "fees": [Fee],
      "friendlyId": "abc123",
      "fundedDate": "2007-12-03",
      "fundingSettlement": FundingSettlement,
      "getAutoConditionalApprovalStatus": GetAutoConditionalApprovalStatusResponse,
      "id": "4",
      "intentToProceedDate": "2007-12-03",
      "isClosed": false,
      "isFirstTimeHomebuyer": true,
      "isFloated": false,
      "isFrozen": false,
      "latestBulkLoanDocumentsExportJob": BulkLoanDocumentsExportJob,
      "latestPreApprovalRunTime": "2007-12-03T10:15:30Z",
      "latestSuccessfulBulkLoanDocumentsExportJob": BulkLoanDocumentsExportJob,
      "liabilities": [Liability],
      "loanAssignments": [LoanAssignment],
      "loanContact": LoanContact,
      "loanDocuments": [LoanDocument],
      "loanNumber": "xyz789",
      "loanOfficerDocumentTasks": [
        LoanOfficerDocumentTask
      ],
      "loanProcess": LoanProcess,
      "loanPurpose": "PURCHASE",
      "loanTermYears": 123.45,
      "lockedSummary": LockedLoanSummary,
      "ltv": 123.45,
      "maxLoanAmount": 123.45,
      "maxPurchasePrice": 123.45,
      "mismoImport": MismoImport,
      "noteRatePercent": 123.45,
      "orderOuts": [Appraisal],
      "outOfPocketMax": 123,
      "pointOfContact": Borrower,
      "preapprovalProduct": Product,
      "pricingFreshness": LoanPricingFreshness,
      "productPricingRate": ProductPricingRate,
      "productStructure": ProductPricingRate,
      "productStructureDegraded": DegradedProductStructure,
      "purchasePrice": 123,
      "pylonApproved": true,
      "rateLock": RateLockDetails,
      "rateLockTerm": 123,
      "refinanceCashOutProceeds": 123,
      "sellerCredit": 123,
      "servicers": [Contact],
      "stages": [LoanStage],
      "subjectProperty": SubjectProperty,
      "subjectPropertyIntent": SubjectPropertyIntent,
      "title": Title,
      "titleCompanyAttached": true,
      "totalAssetsAvailable": 123,
      "tridTriggeredDate": "2007-12-03",
      "underwritingSubmissionGate": UnderwritingSubmissionGate,
      "useOwnTitleCompany": false
    }
  }
}

loanByLoanNumber

Description

Get a Loan by its loan number

Response

Returns a Loan

Arguments
Name Description
loanNumber - Int!

Example

Query
query loanByLoanNumber($loanNumber: Int!) {
  loanByLoanNumber(loanNumber: $loanNumber) {
    allowedStates
    appraisal {
      ...AppraisalFragment
    }
    appraisalOrders {
      ...AppraisalOrderFragment
    }
    assignedLoanOfficer {
      ...LoanOfficerFragment
    }
    availableGlobalLoanOfficers {
      ...GlobalLoanOfficerFragment
    }
    availableLoanAssignments {
      ...LoanAssignmentUserFragment
    }
    borrowerPreferences {
      ...BorrowerPreferencesFragment
    }
    borrowers {
      ...BorrowerConnectionFragment
    }
    bulkLoanDocumentsExportJob {
      ...BulkLoanDocumentsExportJobFragment
    }
    cashOutType
    changeRequests {
      ...LoanChangeRequestFragment
    }
    closingDate
    concessions {
      ...ConcessionLogFragment
    }
    contacts {
      ...ContactFragment
    }
    currentStage
    customerPointAdjustments {
      ...CustomerPointAdjustmentFragment
    }
    dealId
    disclosureDrift {
      ... on DisclosureDriftAssessed {
        ...DisclosureDriftAssessedFragment
      }
      ... on DisclosureDriftNoBaseline {
        ...DisclosureDriftNoBaselineFragment
      }
    }
    documents {
      ...DocumentFragment
    }
    duplicateLiabilitySuggestions {
      ...DuplicateLiabilitySuggestionFragment
    }
    earnestMoneyDeposit
    effectiveAppraisalWaiver
    employmentsMissingStartDateCount
    estimatedRatios {
      ...EstimatedLoanRatiosFragment
    }
    fees {
      ...FeeFragment
    }
    friendlyId
    fundedDate
    fundingSettlement {
      ...FundingSettlementFragment
    }
    getAutoConditionalApprovalStatus {
      ...GetAutoConditionalApprovalStatusResponseFragment
    }
    id
    intentToProceedDate
    isClosed
    isFirstTimeHomebuyer
    isFloated
    isFrozen
    latestBulkLoanDocumentsExportJob {
      ...BulkLoanDocumentsExportJobFragment
    }
    latestPreApprovalRunTime
    latestSuccessfulBulkLoanDocumentsExportJob {
      ...BulkLoanDocumentsExportJobFragment
    }
    liabilities {
      ...LiabilityFragment
    }
    loanAssignments {
      ...LoanAssignmentFragment
    }
    loanContact {
      ...LoanContactFragment
    }
    loanDocuments {
      ...LoanDocumentFragment
    }
    loanNumber
    loanOfficerDocumentTasks {
      ...LoanOfficerDocumentTaskFragment
    }
    loanProcess {
      ...LoanProcessFragment
    }
    loanPurpose
    loanTermYears
    lockedSummary {
      ...LockedLoanSummaryFragment
    }
    ltv
    maxLoanAmount
    maxPurchasePrice
    mismoImport {
      ...MismoImportFragment
    }
    noteRatePercent
    orderOuts {
      ... on Appraisal {
        ...AppraisalFragment
      }
      ... on Title {
        ...TitleFragment
      }
    }
    outOfPocketMax
    pointOfContact {
      ...BorrowerFragment
    }
    preapprovalProduct {
      ...ProductFragment
    }
    pricingFreshness {
      ...LoanPricingFreshnessFragment
    }
    productPricingRate {
      ...ProductPricingRateFragment
    }
    productStructure {
      ...ProductPricingRateFragment
    }
    productStructureDegraded {
      ...DegradedProductStructureFragment
    }
    purchasePrice
    pylonApproved
    rateLock {
      ...RateLockDetailsFragment
    }
    rateLockTerm
    refinanceCashOutProceeds
    sellerCredit
    servicers {
      ...ContactFragment
    }
    stages {
      ...LoanStageFragment
    }
    subjectProperty {
      ...SubjectPropertyFragment
    }
    subjectPropertyIntent {
      ...SubjectPropertyIntentFragment
    }
    title {
      ...TitleFragment
    }
    titleCompanyAttached
    totalAssetsAvailable
    tridTriggeredDate
    underwritingSubmissionGate {
      ...UnderwritingSubmissionGateFragment
    }
    useOwnTitleCompany
  }
}
Variables
{"loanNumber": 987}
Response
{
  "data": {
    "loanByLoanNumber": {
      "allowedStates": ["AK"],
      "appraisal": Appraisal,
      "appraisalOrders": [AppraisalOrder],
      "assignedLoanOfficer": LoanOfficer,
      "availableGlobalLoanOfficers": [GlobalLoanOfficer],
      "availableLoanAssignments": [LoanAssignmentUser],
      "borrowerPreferences": BorrowerPreferences,
      "borrowers": BorrowerConnection,
      "bulkLoanDocumentsExportJob": BulkLoanDocumentsExportJob,
      "cashOutType": "CASH_OUT",
      "changeRequests": [LoanChangeRequest],
      "closingDate": "2007-12-03",
      "concessions": [ConcessionLog],
      "contacts": [Contact],
      "currentStage": "abc123",
      "customerPointAdjustments": CustomerPointAdjustment,
      "dealId": "abc123",
      "disclosureDrift": DisclosureDriftAssessed,
      "documents": [Document],
      "duplicateLiabilitySuggestions": [
        DuplicateLiabilitySuggestion
      ],
      "earnestMoneyDeposit": 123.45,
      "effectiveAppraisalWaiver": "AUTOMATED_COLLATERAL_EVALUATION",
      "employmentsMissingStartDateCount": 987,
      "estimatedRatios": EstimatedLoanRatios,
      "fees": [Fee],
      "friendlyId": "xyz789",
      "fundedDate": "2007-12-03",
      "fundingSettlement": FundingSettlement,
      "getAutoConditionalApprovalStatus": GetAutoConditionalApprovalStatusResponse,
      "id": 4,
      "intentToProceedDate": "2007-12-03",
      "isClosed": true,
      "isFirstTimeHomebuyer": true,
      "isFloated": false,
      "isFrozen": false,
      "latestBulkLoanDocumentsExportJob": BulkLoanDocumentsExportJob,
      "latestPreApprovalRunTime": "2007-12-03T10:15:30Z",
      "latestSuccessfulBulkLoanDocumentsExportJob": BulkLoanDocumentsExportJob,
      "liabilities": [Liability],
      "loanAssignments": [LoanAssignment],
      "loanContact": LoanContact,
      "loanDocuments": [LoanDocument],
      "loanNumber": "abc123",
      "loanOfficerDocumentTasks": [
        LoanOfficerDocumentTask
      ],
      "loanProcess": LoanProcess,
      "loanPurpose": "PURCHASE",
      "loanTermYears": 123.45,
      "lockedSummary": LockedLoanSummary,
      "ltv": 123.45,
      "maxLoanAmount": 987.65,
      "maxPurchasePrice": 987.65,
      "mismoImport": MismoImport,
      "noteRatePercent": 123.45,
      "orderOuts": [Appraisal],
      "outOfPocketMax": 123,
      "pointOfContact": Borrower,
      "preapprovalProduct": Product,
      "pricingFreshness": LoanPricingFreshness,
      "productPricingRate": ProductPricingRate,
      "productStructure": ProductPricingRate,
      "productStructureDegraded": DegradedProductStructure,
      "purchasePrice": 123,
      "pylonApproved": false,
      "rateLock": RateLockDetails,
      "rateLockTerm": 123,
      "refinanceCashOutProceeds": 123,
      "sellerCredit": 123,
      "servicers": [Contact],
      "stages": [LoanStage],
      "subjectProperty": SubjectProperty,
      "subjectPropertyIntent": SubjectPropertyIntent,
      "title": Title,
      "titleCompanyAttached": true,
      "totalAssetsAvailable": 123,
      "tridTriggeredDate": "2007-12-03",
      "underwritingSubmissionGate": UnderwritingSubmissionGate,
      "useOwnTitleCompany": false
    }
  }
}

loanEvents

Description

A loan's lifecycle events in append order, oldest first. Pass the returned next cursor back as after to page or poll.

Response

Returns a LoanEventsResponse!

Arguments
Name Description
after - String The next cursor from the previous page, or null to start from the beginning of the loan's history.
first - Int Maximum number of events to return (capped server-side). Default = 25
loanId - ID! The canonical loan id whose events to return.

Example

Query
query loanEvents(
  $after: String,
  $first: Int,
  $loanId: ID!
) {
  loanEvents(
    after: $after,
    first: $first,
    loanId: $loanId
  ) {
    events {
      ...LoanEventFragment
    }
    next
  }
}
Variables
{
  "after": "xyz789",
  "first": 25,
  "loanId": 4
}
Response
{
  "data": {
    "loanEvents": {
      "events": [LoanEvent],
      "next": "abc123"
    }
  }
}

loanScript

Response

Returns a LoanScriptQueries

Example

Query
query loanScript {
  loanScript {
    all {
      ...LoanScriptFragment
    }
    byScenarioId {
      ...LoanScriptFragment
    }
    stepCatalog {
      ...LoanScriptStepCatalogEntryFragment
    }
  }
}
Response
{
  "data": {
    "loanScript": {
      "all": [LoanScript],
      "byScenarioId": LoanScript,
      "stepCatalog": [LoanScriptStepCatalogEntry]
    }
  }
}

loans

Description

Get several Loans by ID in one request. Returns the loans the caller may read, in the order requested, with duplicates collapsed. A loan that does not exist or that the caller cannot access is OMITTED rather than returned as null or raised as an error: the response would otherwise distinguish 'no such loan' from 'not yours', which is exactly the existence check a batch endpoint must not hand out. Compare the returned ids against the ids sent to see what was dropped. At most 100 ids per request.

Response

Returns [Loan!]!

Arguments
Name Description
ids - [ID!]!

Example

Query
query loans($ids: [ID!]!) {
  loans(ids: $ids) {
    allowedStates
    appraisal {
      ...AppraisalFragment
    }
    appraisalOrders {
      ...AppraisalOrderFragment
    }
    assignedLoanOfficer {
      ...LoanOfficerFragment
    }
    availableGlobalLoanOfficers {
      ...GlobalLoanOfficerFragment
    }
    availableLoanAssignments {
      ...LoanAssignmentUserFragment
    }
    borrowerPreferences {
      ...BorrowerPreferencesFragment
    }
    borrowers {
      ...BorrowerConnectionFragment
    }
    bulkLoanDocumentsExportJob {
      ...BulkLoanDocumentsExportJobFragment
    }
    cashOutType
    changeRequests {
      ...LoanChangeRequestFragment
    }
    closingDate
    concessions {
      ...ConcessionLogFragment
    }
    contacts {
      ...ContactFragment
    }
    currentStage
    customerPointAdjustments {
      ...CustomerPointAdjustmentFragment
    }
    dealId
    disclosureDrift {
      ... on DisclosureDriftAssessed {
        ...DisclosureDriftAssessedFragment
      }
      ... on DisclosureDriftNoBaseline {
        ...DisclosureDriftNoBaselineFragment
      }
    }
    documents {
      ...DocumentFragment
    }
    duplicateLiabilitySuggestions {
      ...DuplicateLiabilitySuggestionFragment
    }
    earnestMoneyDeposit
    effectiveAppraisalWaiver
    employmentsMissingStartDateCount
    estimatedRatios {
      ...EstimatedLoanRatiosFragment
    }
    fees {
      ...FeeFragment
    }
    friendlyId
    fundedDate
    fundingSettlement {
      ...FundingSettlementFragment
    }
    getAutoConditionalApprovalStatus {
      ...GetAutoConditionalApprovalStatusResponseFragment
    }
    id
    intentToProceedDate
    isClosed
    isFirstTimeHomebuyer
    isFloated
    isFrozen
    latestBulkLoanDocumentsExportJob {
      ...BulkLoanDocumentsExportJobFragment
    }
    latestPreApprovalRunTime
    latestSuccessfulBulkLoanDocumentsExportJob {
      ...BulkLoanDocumentsExportJobFragment
    }
    liabilities {
      ...LiabilityFragment
    }
    loanAssignments {
      ...LoanAssignmentFragment
    }
    loanContact {
      ...LoanContactFragment
    }
    loanDocuments {
      ...LoanDocumentFragment
    }
    loanNumber
    loanOfficerDocumentTasks {
      ...LoanOfficerDocumentTaskFragment
    }
    loanProcess {
      ...LoanProcessFragment
    }
    loanPurpose
    loanTermYears
    lockedSummary {
      ...LockedLoanSummaryFragment
    }
    ltv
    maxLoanAmount
    maxPurchasePrice
    mismoImport {
      ...MismoImportFragment
    }
    noteRatePercent
    orderOuts {
      ... on Appraisal {
        ...AppraisalFragment
      }
      ... on Title {
        ...TitleFragment
      }
    }
    outOfPocketMax
    pointOfContact {
      ...BorrowerFragment
    }
    preapprovalProduct {
      ...ProductFragment
    }
    pricingFreshness {
      ...LoanPricingFreshnessFragment
    }
    productPricingRate {
      ...ProductPricingRateFragment
    }
    productStructure {
      ...ProductPricingRateFragment
    }
    productStructureDegraded {
      ...DegradedProductStructureFragment
    }
    purchasePrice
    pylonApproved
    rateLock {
      ...RateLockDetailsFragment
    }
    rateLockTerm
    refinanceCashOutProceeds
    sellerCredit
    servicers {
      ...ContactFragment
    }
    stages {
      ...LoanStageFragment
    }
    subjectProperty {
      ...SubjectPropertyFragment
    }
    subjectPropertyIntent {
      ...SubjectPropertyIntentFragment
    }
    title {
      ...TitleFragment
    }
    titleCompanyAttached
    totalAssetsAvailable
    tridTriggeredDate
    underwritingSubmissionGate {
      ...UnderwritingSubmissionGateFragment
    }
    useOwnTitleCompany
  }
}
Variables
{"ids": [4]}
Response
{
  "data": {
    "loans": [
      {
        "allowedStates": ["AK"],
        "appraisal": Appraisal,
        "appraisalOrders": [AppraisalOrder],
        "assignedLoanOfficer": LoanOfficer,
        "availableGlobalLoanOfficers": [
          GlobalLoanOfficer
        ],
        "availableLoanAssignments": [LoanAssignmentUser],
        "borrowerPreferences": BorrowerPreferences,
        "borrowers": BorrowerConnection,
        "bulkLoanDocumentsExportJob": BulkLoanDocumentsExportJob,
        "cashOutType": "CASH_OUT",
        "changeRequests": [LoanChangeRequest],
        "closingDate": "2007-12-03",
        "concessions": [ConcessionLog],
        "contacts": [Contact],
        "currentStage": "xyz789",
        "customerPointAdjustments": CustomerPointAdjustment,
        "dealId": "abc123",
        "disclosureDrift": DisclosureDriftAssessed,
        "documents": [Document],
        "duplicateLiabilitySuggestions": [
          DuplicateLiabilitySuggestion
        ],
        "earnestMoneyDeposit": 123.45,
        "effectiveAppraisalWaiver": "AUTOMATED_COLLATERAL_EVALUATION",
        "employmentsMissingStartDateCount": 123,
        "estimatedRatios": EstimatedLoanRatios,
        "fees": [Fee],
        "friendlyId": "xyz789",
        "fundedDate": "2007-12-03",
        "fundingSettlement": FundingSettlement,
        "getAutoConditionalApprovalStatus": GetAutoConditionalApprovalStatusResponse,
        "id": "4",
        "intentToProceedDate": "2007-12-03",
        "isClosed": false,
        "isFirstTimeHomebuyer": true,
        "isFloated": true,
        "isFrozen": true,
        "latestBulkLoanDocumentsExportJob": BulkLoanDocumentsExportJob,
        "latestPreApprovalRunTime": "2007-12-03T10:15:30Z",
        "latestSuccessfulBulkLoanDocumentsExportJob": BulkLoanDocumentsExportJob,
        "liabilities": [Liability],
        "loanAssignments": [LoanAssignment],
        "loanContact": LoanContact,
        "loanDocuments": [LoanDocument],
        "loanNumber": "xyz789",
        "loanOfficerDocumentTasks": [
          LoanOfficerDocumentTask
        ],
        "loanProcess": LoanProcess,
        "loanPurpose": "PURCHASE",
        "loanTermYears": 123.45,
        "lockedSummary": LockedLoanSummary,
        "ltv": 123.45,
        "maxLoanAmount": 987.65,
        "maxPurchasePrice": 987.65,
        "mismoImport": MismoImport,
        "noteRatePercent": 123.45,
        "orderOuts": [Appraisal],
        "outOfPocketMax": 123,
        "pointOfContact": Borrower,
        "preapprovalProduct": Product,
        "pricingFreshness": LoanPricingFreshness,
        "productPricingRate": ProductPricingRate,
        "productStructure": ProductPricingRate,
        "productStructureDegraded": DegradedProductStructure,
        "purchasePrice": 123,
        "pylonApproved": true,
        "rateLock": RateLockDetails,
        "rateLockTerm": 123,
        "refinanceCashOutProceeds": 123,
        "sellerCredit": 123,
        "servicers": [Contact],
        "stages": [LoanStage],
        "subjectProperty": SubjectProperty,
        "subjectPropertyIntent": SubjectPropertyIntent,
        "title": Title,
        "titleCompanyAttached": true,
        "totalAssetsAvailable": 123,
        "tridTriggeredDate": "2007-12-03",
        "underwritingSubmissionGate": UnderwritingSubmissionGate,
        "useOwnTitleCompany": true
      }
    ]
  }
}

marketingRates

Description

Namespace for marketing rates queries. Marketing rates take simple borrower profiles and determine the best rates that borrower could get for various loan products.

Response

Returns a MarketingRates

Example

Query
query marketingRates {
  marketingRates {
    conforming {
      ...ConformingMarketingRateFragment
    }
    custom {
      ...CustomMarketingRateFragment
    }
    fha {
      ...FhaMarketingRateFragment
    }
    jumbo {
      ...JumboMarketingRateFragment
    }
    warehousingCosts {
      ...WarehousingCostsFragment
    }
  }
}
Response
{
  "data": {
    "marketingRates": {
      "conforming": [ConformingMarketingRate],
      "custom": [CustomMarketingRate],
      "fha": [FhaMarketingRate],
      "jumbo": [JumboMarketingRate],
      "warehousingCosts": WarehousingCosts
    }
  }
}

mismoImport

Description

A MISMO import by id. Null when the id is unknown, when the retention sweep has already removed the import — it is kept for 24 hours — or when it belongs to a loan the caller may not read. The three are deliberately indistinguishable: telling them apart would confirm to an unauthorized caller that a particular import exists.

Response

Returns a MismoImport

Arguments
Name Description
id - ID! The import's id.

Example

Query
query mismoImport($id: ID!) {
  mismoImport(id: $id) {
    id
    importedAt
    loan {
      ...LoanFragment
    }
    nonAdoptions {
      ...MismoNonAdoptionFragment
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "mismoImport": {
      "id": "4",
      "importedAt": "2007-12-03T10:15:30Z",
      "loan": Loan,
      "nonAdoptions": [MismoNonAdoption]
    }
  }
}

node

Description

Get an entity by ID

Response

Returns a Node!

Arguments
Name Description
id - ID! The ID of the entity to query

Example

Query
query node($id: ID!) {
  node(id: $id) {
    id
  }
}
Variables
{"id": "4"}
Response
{"data": {"node": {"id": "4"}}}

nonBorrowingOwner

Response

Returns a NonBorrowingOwner

Arguments
Name Description
id - ID!

Example

Query
query nonBorrowingOwner($id: ID!) {
  nonBorrowingOwner(id: $id) {
    id
    personalInformation {
      ...PersonalInformationFragment
    }
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "nonBorrowingOwner": {
      "id": "4",
      "personalInformation": PersonalInformation
    }
  }
}

orgEvents

Description

The organization's loan-lifecycle events across all its loans, in append order. Scoped to the caller's organization; since bounds results to events that occurred at or after the given instant.

Response

Returns a LoanEventsResponse!

Arguments
Name Description
after - String The next cursor from the previous page, or null to start from the beginning of the organization's history.
first - Int Maximum number of events to return (capped server-side). Default = 25
since - DateTimeISO Only return events that occurred at or after this instant. Applies to domain time (occurredAt), not recording time.

Example

Query
query orgEvents(
  $after: String,
  $first: Int,
  $since: DateTimeISO
) {
  orgEvents(
    after: $after,
    first: $first,
    since: $since
  ) {
    events {
      ...LoanEventFragment
    }
    next
  }
}
Variables
{
  "after": "abc123",
  "first": 25,
  "since": "2007-12-03T10:15:30Z"
}
Response
{
  "data": {
    "orgEvents": {
      "events": [LoanEvent],
      "next": "xyz789"
    }
  }
}

organization

Description

Get the current organization.

Response

Returns an Organization

Example

Query
query organization {
  organization {
    apiAccessStatus
    availableCustomers {
      ...CustomerMembershipFragment
    }
    borrowerPortalUrl
    branding {
      ...OrganizationBrandingFragment
    }
    companyAddress {
      ...AddressFragment
    }
    companyLegalName
    companyName
    companySupportEmail
    concessionLimitPerLoan
    contacts {
      ...ContactFragment
    }
    costAbsorption {
      ...CostAbsorptionFragment
    }
    customerShare
    customerSlug
    defaultLoanChannel
    defaultPrimaryLoanContact {
      ...LoanContactFragment
    }
    defaultPrimaryLoanContactFallbackEmail
    effectiveMargin {
      ...OrganizationMarginFragment
    }
    electronicCommunicationsConsentUrl
    emailDomains
    enableSso
    enabledLoanProducts
    enabledPlaidProducts
    id
    margin
    marginHistory {
      ...OrganizationMarginFragment
    }
    masqueradableCustomers {
      ...CustomerMembershipFragment
    }
    mersOrgId
    nmlsId
    privacyPolicyUrl
    share
    telephonicCommunicationsConsentEnabled
    telephonicCommunicationsConsentUrl
    termsOfServiceUrl
  }
}
Response
{
  "data": {
    "organization": {
      "apiAccessStatus": "ACTIVE",
      "availableCustomers": [CustomerMembership],
      "borrowerPortalUrl": "abc123",
      "branding": OrganizationBranding,
      "companyAddress": Address,
      "companyLegalName": "xyz789",
      "companyName": "abc123",
      "companySupportEmail": "xyz789",
      "concessionLimitPerLoan": 987.65,
      "contacts": [Contact],
      "costAbsorption": [CostAbsorption],
      "customerShare": 123.45,
      "customerSlug": "xyz789",
      "defaultLoanChannel": "Broker",
      "defaultPrimaryLoanContact": LoanContact,
      "defaultPrimaryLoanContactFallbackEmail": "abc123",
      "effectiveMargin": OrganizationMargin,
      "electronicCommunicationsConsentUrl": "abc123",
      "emailDomains": ["xyz789"],
      "enableSso": false,
      "enabledLoanProducts": ["BayviewBayviewJumboAus"],
      "enabledPlaidProducts": ["ASSETS"],
      "id": 4,
      "margin": 987.65,
      "marginHistory": [OrganizationMargin],
      "masqueradableCustomers": [CustomerMembership],
      "mersOrgId": 123,
      "nmlsId": "abc123",
      "privacyPolicyUrl": "abc123",
      "share": 987.65,
      "telephonicCommunicationsConsentEnabled": true,
      "telephonicCommunicationsConsentUrl": "xyz789",
      "termsOfServiceUrl": "abc123"
    }
  }
}

organizationLicensing

Description

Get licensing information for the current organization.

Response

Returns an OrganizationLicensing

Example

Query
query organizationLicensing {
  organizationLicensing {
    states {
      ...OrganizationStateWithLicensesFragment
    }
  }
}
Response
{
  "data": {
    "organizationLicensing": {
      "states": [OrganizationStateWithLicenses]
    }
  }
}

organizationRole

Description

Fetch a role in an organization by id

Response

Returns an OrganizationRole

Arguments
Name Description
id - ID!

Example

Query
query organizationRole($id: ID!) {
  organizationRole(id: $id) {
    description
    id
    name
    permissions
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "organizationRole": {
      "description": "xyz789",
      "id": 4,
      "name": "abc123",
      "permissions": ["abc123"]
    }
  }
}

organizationRoles

Description

List roles in an organization

Response

Returns an OrganizationRoleConnection

Arguments
Name Description
after - ID Default = null
first - Int Default = 100

Example

Query
query organizationRoles(
  $after: ID,
  $first: Int
) {
  organizationRoles(
    after: $after,
    first: $first
  ) {
    edges {
      ...OrganizationRoleEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
  }
}
Variables
{"after": null, "first": 100}
Response
{
  "data": {
    "organizationRoles": {
      "edges": [OrganizationRoleEdge],
      "pageInfo": PageInfo
    }
  }
}

organizationUser

Description

Fetch a user in an organization by id

Response

Returns an OrganizationUser

Arguments
Name Description
id - ID!

Example

Query
query organizationUser($id: ID!) {
  organizationUser(id: $id) {
    companyName
    email
    firstName
    id
    individualNmlsId
    lastName
    licenses {
      ...OrganizationUserLicenseFragment
    }
    organizationRoles {
      ...OrganizationRoleFragment
    }
    phoneNumber
    processorFeeAmount
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "organizationUser": {
      "companyName": "abc123",
      "email": "xyz789",
      "firstName": "abc123",
      "id": "4",
      "individualNmlsId": "abc123",
      "lastName": "abc123",
      "licenses": [OrganizationUserLicense],
      "organizationRoles": [OrganizationRole],
      "phoneNumber": "abc123",
      "processorFeeAmount": 987.65
    }
  }
}

organizationUsers

Description

List users in an organization

Response

Returns an OrganizationUserConnection

Arguments
Name Description
after - ID Default = null
first - Int Default = 100

Example

Query
query organizationUsers(
  $after: ID,
  $first: Int
) {
  organizationUsers(
    after: $after,
    first: $first
  ) {
    edges {
      ...OrganizationUserEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
  }
}
Variables
{"after": null, "first": 100}
Response
{
  "data": {
    "organizationUsers": {
      "edges": [OrganizationUserEdge],
      "pageInfo": PageInfo,
      "totalCount": 123
    }
  }
}

ownedProperty

Description

Get an owned property by ID

Response

Returns an OwnedProperty

Arguments
Name Description
id - ID!

Example

Query
query ownedProperty($id: ID!) {
  ownedProperty(id: $id) {
    address {
      ...AddressFragment
    }
    currentUsageType
    homeInsuranceMonthlyPayment
    id
    intendedDisposition
    intendedUsageType
    liabilities {
      ...LiabilityFragment
    }
    monthlyAssociationDues
    mortgageInsuranceMonthlyPayment
    neighborhoodHousingType
    nonBorrowingOwners {
      ...NonBorrowingOwnerFragment
    }
    pendingNetSaleProceedsAsset {
      ...AssetFragment
    }
    propertyTaxMonthlyPayment
    propertyValue
    purchaseDate
    rentalIncome {
      ...IncomeFragment
    }
    sellDate
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "ownedProperty": {
      "address": Address,
      "currentUsageType": "INVESTMENT",
      "homeInsuranceMonthlyPayment": 123,
      "id": "4",
      "intendedDisposition": "PENDING_SALE",
      "intendedUsageType": "INVESTMENT",
      "liabilities": [Liability],
      "monthlyAssociationDues": 123,
      "mortgageInsuranceMonthlyPayment": 123,
      "neighborhoodHousingType": "CONDOMINIUM",
      "nonBorrowingOwners": [NonBorrowingOwner],
      "pendingNetSaleProceedsAsset": Asset,
      "propertyTaxMonthlyPayment": 123,
      "propertyValue": 123,
      "purchaseDate": "2007-12-03",
      "rentalIncome": Income,
      "sellDate": "2007-12-03"
    }
  }
}

party

Response

Returns a Party

Arguments
Name Description
id - ID!

Example

Query
query party($id: ID!) {
  party(id: $id) {
    address {
      ...AddressFragment
    }
    id
    individual {
      ...PartyIndividualFragment
    }
    legalEntity {
      ...PartyLegalEntityFragment
    }
    role
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "party": {
      "address": Address,
      "id": "4",
      "individual": PartyIndividual,
      "legalEntity": PartyLegalEntity,
      "role": "APPRAISER"
    }
  }
}

preQualification

Description

Namespace for pre-qualification queries. These queries allow fetching previously created pre-qualifications

Response

Returns a PreQualification

Example

Query
query preQualification {
  preQualification {
    conventional {
      ...ConventionalPreQualificationFragment
    }
    debug {
      ...PreQualificationProductResultFragment
    }
  }
}
Response
{
  "data": {
    "preQualification": {
      "conventional": ConventionalPreQualification,
      "debug": [PreQualificationProductResult]
    }
  }
}

pricing

Description

Namespace for pricing queries. These queries are for experimenting with various pricing scenarios, for example comparing products or understanding how concession points influence the downpayment and rate.

Response

Returns a Pricing

Example

Query
query pricing {
  pricing {
    dumpParameters {
      ...ProductPricingParameterDumpFragment
    }
    fixedLoanAmountProductPricing {
      ...ProductPricingQueryFragment
    }
    optimalStructure {
      ...OptimalStructureFragment
    }
    productPricing {
      ...ProductPricingQueryFragment
    }
  }
}
Response
{
  "data": {
    "pricing": {
      "dumpParameters": ProductPricingParameterDump,
      "fixedLoanAmountProductPricing": ProductPricingQuery,
      "optimalStructure": OptimalStructure,
      "productPricing": ProductPricingQuery
    }
  }
}

processDocument

Description

Process-document (split) queries.

Response

Returns a ProcessDocumentQueries

Example

Query
query processDocument {
  processDocument {
    status {
      ...ProcessDocumentStatusResponseFragment
    }
  }
}
Response
{
  "data": {
    "processDocument": {
      "status": ProcessDocumentStatusResponse
    }
  }
}

rates

Description

Namespace for fetching data associated with raw rates.

Response

Returns a Rates

Example

Query
query rates {
  rates {
    apor {
      ...AporFragment
    }
  }
}
Response
{"data": {"rates": {"apor": Apor}}}

recentlyViewedLoans

Description

Loans the current user most recently viewed within their active organization, newest first. Empty for callers without an org-user identity.

Response

Returns [RecentlyViewedLoan!]!

Arguments
Name Description
first - Int Maximum number of loans to return (capped server-side). Default = 25

Example

Query
query recentlyViewedLoans($first: Int) {
  recentlyViewedLoans(first: $first) {
    contactPointFullName
    currentStage
    friendlyLoanId
    loanId
    loanNumber
    viewedAt
  }
}
Variables
{"first": 25}
Response
{
  "data": {
    "recentlyViewedLoans": [
      {
        "contactPointFullName": "xyz789",
        "currentStage": "xyz789",
        "friendlyLoanId": "abc123",
        "loanId": 4,
        "loanNumber": "xyz789",
        "viewedAt": "2007-12-03T10:15:30Z"
      }
    ]
  }
}

scenario

Response

Returns a Scenario

Example

Query
query scenario {
  scenario {
    fixedLoanAmountPurchasePricing {
      ...ProductPricingQueryFragment
    }
    pricing {
      ...ProductPricingQueryFragment
    }
    purchasePricing {
      ...ProductPricingQueryFragment
    }
    purchasePricingNoRestructure {
      ...ProductPricingQueryFragment
    }
    refinancePricing {
      ...ProductPricingQueryFragment
    }
  }
}
Response
{
  "data": {
    "scenario": {
      "fixedLoanAmountPurchasePricing": ProductPricingQuery,
      "pricing": ProductPricingQuery,
      "purchasePricing": ProductPricingQuery,
      "purchasePricingNoRestructure": ProductPricingQuery,
      "refinancePricing": ProductPricingQuery
    }
  }
}

structureValidation

Response

Returns a StructureValidation!

Example

Query
query structureValidation {
  structureValidation {
    experiment {
      ...StructureValidationDebugResultFragment
    }
  }
}
Response
{
  "data": {
    "structureValidation": {
      "experiment": StructureValidationDebugResult
    }
  }
}

subjectProperty

Response

Returns a SubjectProperty

Arguments
Name Description
id - ID!

Example

Query
query subjectProperty($id: ID!) {
  subjectProperty(id: $id) {
    address {
      ...AddressFragment
    }
    attachmentType
    avmEstimatedValue
    avmProvider
    borrowerSpecifiedMonthlyPropertyTaxes
    firstLienAmount
    firstLienLiabilityId
    hoaDues
    homeInsuranceMonthlyAmount
    homeInsuranceMonthlyAmountEstimate
    id
    isManufacturedHome
    isMixedUse
    isPlannedUnitDevelopment
    liabilities {
      ...LiabilityFragment
    }
    manuallyEstimatedValue
    neighborhoodHousingType
    numberOfUnits
    propertyTaxesAndInsuranceIncludedInPayment
    rentalEstimatedGrossMonthlyRentAmount
    subjectPropertyIntent {
      ...SubjectPropertyIntentFragment
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "subjectProperty": {
      "address": Address,
      "attachmentType": "ATTACHED",
      "avmEstimatedValue": 123,
      "avmProvider": "xyz789",
      "borrowerSpecifiedMonthlyPropertyTaxes": 123,
      "firstLienAmount": 123,
      "firstLienLiabilityId": "4",
      "hoaDues": 123,
      "homeInsuranceMonthlyAmount": 123,
      "homeInsuranceMonthlyAmountEstimate": 123.45,
      "id": 4,
      "isManufacturedHome": false,
      "isMixedUse": true,
      "isPlannedUnitDevelopment": false,
      "liabilities": [Liability],
      "manuallyEstimatedValue": 123,
      "neighborhoodHousingType": "CONDOMINIUM",
      "numberOfUnits": 123,
      "propertyTaxesAndInsuranceIncludedInPayment": false,
      "rentalEstimatedGrossMonthlyRentAmount": 123,
      "subjectPropertyIntent": SubjectPropertyIntent
    }
  }
}

subjectPropertyIntent

Description

Get a SubjectPropertyIntent by ID

Response

Returns a SubjectPropertyIntent

Arguments
Name Description
id - ID!

Example

Query
query subjectPropertyIntent($id: ID!) {
  subjectPropertyIntent(id: $id) {
    county {
      ...CountyFragment
    }
    id
    isPlannedUnitDevelopment
    neighborhoodHousingType
    propertyUsageType
    state
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "subjectPropertyIntent": {
      "county": County,
      "id": 4,
      "isPlannedUnitDevelopment": false,
      "neighborhoodHousingType": "CONDOMINIUM",
      "propertyUsageType": "INVESTMENT",
      "state": "AK"
    }
  }
}

support

Description

Namespace for support queries.

Response

Returns a SupportQueries

Example

Query
query support {
  support {
    issueTypes {
      ...SupportIssueTypeFragment
    }
    pylonTeam {
      ...PylonTeamFragment
    }
    supportTicket {
      ...SupportTicketFragment
    }
    supportTicketMessages {
      ...SupportTicketMessageFragment
    }
    supportTickets {
      ...SupportTicketConnectionFragment
    }
    supportTicketsForLoan {
      ...SupportTicketFragment
    }
  }
}
Response
{
  "data": {
    "support": {
      "issueTypes": [SupportIssueType],
      "pylonTeam": PylonTeam,
      "supportTicket": SupportTicket,
      "supportTicketMessages": [SupportTicketMessage],
      "supportTickets": SupportTicketConnection,
      "supportTicketsForLoan": [SupportTicket]
    }
  }
}

supportAdmin

Description

Namespace for Pylon-internal support administration queries.

Response

Returns a SupportAdminQueries

Example

Query
query supportAdmin {
  supportAdmin {
    issueTypes {
      ...SupportAdminIssueTypeFragment
    }
  }
}
Response
{
  "data": {
    "supportAdmin": {
      "issueTypes": [SupportAdminIssueType]
    }
  }
}

titleVendors

Response

Returns [TitleVendor!]!

Arguments
Name Description
input - TitleVendorsInput!

Example

Query
query titleVendors($input: TitleVendorsInput!) {
  titleVendors(input: $input) {
    contactInfo {
      ...TitleVendorContactInfoFragment
    }
    name
    relationType
  }
}
Variables
{"input": TitleVendorsInput}
Response
{
  "data": {
    "titleVendors": [
      {
        "contactInfo": TitleVendorContactInfo,
        "name": "xyz789",
        "relationType": "CLOSING_ONLY"
      }
    ]
  }
}

verify

Description

Namespace for verification queries.

Response

Returns a VerifyQueries

Example

Query
query verify {
  verify {
    truvVerificationOutcome
  }
}
Response
{"data": {"verify": {"truvVerificationOutcome": "COMPLETE"}}}

Mutations

advisor

Response

Returns an AdvisorMutations

Example

Query
mutation advisor {
  advisor {
    createSession {
      ...CreateSessionResponseFragment
    }
    giveMessageFeedback {
      ...GiveMessageFeedbackResponseFragment
    }
    sendMessage {
      ...SendMessageResponseFragment
    }
  }
}
Response
{
  "data": {
    "advisor": {
      "createSession": CreateSessionResponse,
      "giveMessageFeedback": GiveMessageFeedbackResponse,
      "sendMessage": SendMessageResponse
    }
  }
}

analytics

Description

Namespace for analytics mutations. These allow you to export analytics results to file.

Response

Returns an AnalyticsMutations

Example

Query
mutation analytics {
  analytics {
    startAnalyticsExportJob {
      ...StartAnalyticsExportJobResponseFragment
    }
  }
}
Response
{
  "data": {
    "analytics": {
      "startAnalyticsExportJob": StartAnalyticsExportJobResponse
    }
  }
}

appraisal

Description

Appraisal mutations.

Response

Returns an AppraisalMutations

Example

Query
mutation appraisal {
  appraisal {
    addOrderComment {
      ...AddOrderCommentResponseFragment
    }
    addOrderDocuments {
      ...AddOrderDocumentsResponseFragment
    }
    orderAppraisal {
      ...OrderAppraisalResponseFragment
    }
  }
}
Response
{
  "data": {
    "appraisal": {
      "addOrderComment": AddOrderCommentResponse,
      "addOrderDocuments": AddOrderDocumentsResponse,
      "orderAppraisal": OrderAppraisalResponse
    }
  }
}

approvalProcess

Description

Approval-process mutations namespace.

Response

Returns an ApprovalProcessMutations

Example

Query
mutation approvalProcess {
  approvalProcess {
    writeDispute {
      ...WriteDisputeResponseFragment
    }
  }
}
Response
{
  "data": {
    "approvalProcess": {
      "writeDispute": WriteDisputeResponse
    }
  }
}

asset

Description

Asset mutations

Response

Returns an AssetMutations

Example

Query
mutation asset {
  asset {
    addNotableActivity {
      ...AddNotableActivityResponseFragment
    }
    attachBorrower {
      ...AttachBorrowerAssetResponseFragment
    }
    create {
      ...CreateAssetResponseFragment
    }
    delete {
      ...DeleteAssetResponseFragment
    }
    deleteNotableActivity {
      ...DeleteNotableActivityResponseFragment
    }
    detachBorrower {
      ...DetachBorrowerAssetResponseFragment
    }
    explainAssetTransaction {
      ...ExplainAssetTransactionResponseFragment
    }
    update {
      ...UpdateAssetResponseFragment
    }
    updateNotableActivity {
      ...UpdateNotableActivityResponseFragment
    }
  }
}
Response
{
  "data": {
    "asset": {
      "addNotableActivity": AddNotableActivityResponse,
      "attachBorrower": AttachBorrowerAssetResponse,
      "create": CreateAssetResponse,
      "delete": DeleteAssetResponse,
      "deleteNotableActivity": DeleteNotableActivityResponse,
      "detachBorrower": DetachBorrowerAssetResponse,
      "explainAssetTransaction": ExplainAssetTransactionResponse,
      "update": UpdateAssetResponse,
      "updateNotableActivity": UpdateNotableActivityResponse
    }
  }
}

assetVerification

Response

Returns an AssetVerificationMutations

Example

Query
mutation assetVerification {
  assetVerification {
    refreshLink {
      ...RefreshLinkResponseFragment
    }
    requestLink {
      ...RequestLinkResponseFragment
    }
  }
}
Response
{
  "data": {
    "assetVerification": {
      "refreshLink": RefreshLinkResponse,
      "requestLink": RequestLinkResponse
    }
  }
}

aus

Description

AUS mutations

Response

Returns an AusMutations

Example

Query
mutation aus {
  aus {
    triggerAusRun {
      ...TriggerAusRunResponseFragment
    }
  }
}
Response
{
  "data": {
    "aus": {"triggerAusRun": TriggerAusRunResponse}
  }
}

auth

Description

Namespace for auth mutations. These allow getting temporary authorization for borrowers to access Pylon's API in a restricted fashion

Response

Returns an AuthMutations

Example

Query
mutation auth {
  auth {
    createLease {
      ...CreateLeaseResponseFragment
    }
  }
}
Response
{"data": {"auth": {"createLease": CreateLeaseResponse}}}

borrower

Description

Borrower mutations

Response

Returns a BorrowerMutations

Example

Query
mutation borrower {
  borrower {
    attachLiabilities {
      ...AttachBorrowerLiabilitiesResponseFragment
    }
    attachNonBorrowingSpouse {
      ...AttachBorrowerNonBorrowingSpouseResponseFragment
    }
    create {
      ...CreateBorrowerResponseFragment
    }
    declareMilitaryService {
      ...DeclareMilitaryServiceResponseFragment
    }
    declareNoMilitaryService {
      ...DeclareNoMilitaryServiceResponseFragment
    }
    delete {
      ...DeleteBorrowerResponseFragment
    }
    detachLiabilities {
      ...DetachBorrowerLiabilitiesResponseFragment
    }
    linkBorrowersAsSpouses {
      ...LinkBorrowersAsSpousesResponseFragment
    }
    rejectDocument {
      ...RejectDocumentResponseFragment
    }
    sendPortalInvite {
      ...SendBorrowerPortalInviteResponseFragment
    }
    setEmailVerified {
      ...SetBorrowerEmailVerifiedResponseFragment
    }
    unsetMilitaryService {
      ...UnsetBorrowerMilitaryServiceResponseFragment
    }
    updateBorrower {
      ...UpdateBorrowerResponseFragment
    }
    updateConsent {
      ...UpdateBorrowerConsentResponseFragment
    }
    updateDemographicInfo {
      ...UpdateDemographicInfoResponseFragment
    }
    updateDependents {
      ...UpdateBorrowerDependentsResponseFragment
    }
    updateFinancialDeclarations {
      ...UpdateBorrowerFinancialDeclarationsResponseFragment
    }
    updateMailingAddress {
      ...UpdateBorrowerMailingAddressResponseFragment
    }
    updateMilitaryService {
      ...UpdateBorrowerMilitaryServiceResponseFragment
    }
    updatePersonalInformation {
      ...UpdateBorrowerPersonalInformationResponseFragment
    }
    updatePhoneNumber {
      ...UpdateBorrowerPhoneNumberResponseFragment
    }
    updatePropertyDeclarations {
      ...UpdateBorrowerPropertyDeclarationsResponseFragment
    }
  }
}
Response
{
  "data": {
    "borrower": {
      "attachLiabilities": AttachBorrowerLiabilitiesResponse,
      "attachNonBorrowingSpouse": AttachBorrowerNonBorrowingSpouseResponse,
      "create": CreateBorrowerResponse,
      "declareMilitaryService": DeclareMilitaryServiceResponse,
      "declareNoMilitaryService": DeclareNoMilitaryServiceResponse,
      "delete": DeleteBorrowerResponse,
      "detachLiabilities": DetachBorrowerLiabilitiesResponse,
      "linkBorrowersAsSpouses": LinkBorrowersAsSpousesResponse,
      "rejectDocument": RejectDocumentResponse,
      "sendPortalInvite": SendBorrowerPortalInviteResponse,
      "setEmailVerified": SetBorrowerEmailVerifiedResponse,
      "unsetMilitaryService": UnsetBorrowerMilitaryServiceResponse,
      "updateBorrower": UpdateBorrowerResponse,
      "updateConsent": UpdateBorrowerConsentResponse,
      "updateDemographicInfo": UpdateDemographicInfoResponse,
      "updateDependents": UpdateBorrowerDependentsResponse,
      "updateFinancialDeclarations": UpdateBorrowerFinancialDeclarationsResponse,
      "updateMailingAddress": UpdateBorrowerMailingAddressResponse,
      "updateMilitaryService": UpdateBorrowerMilitaryServiceResponse,
      "updatePersonalInformation": UpdateBorrowerPersonalInformationResponse,
      "updatePhoneNumber": UpdateBorrowerPhoneNumberResponse,
      "updatePropertyDeclarations": UpdateBorrowerPropertyDeclarationsResponse
    }
  }
}

borrowerAddress

Description

Mutations for borrower addresses

Response

Returns a BorrowerAddressMutations

Example

Query
mutation borrowerAddress {
  borrowerAddress {
    createPrevious {
      ...CreatePreviousBorrowerAddressResponseFragment
    }
    deletePrevious {
      ...DeletePreviousBorrowerAddressResponseFragment
    }
    updateCurrent {
      ...UpdateCurrentBorrowerAddressResponseFragment
    }
    updatePrevious {
      ...UpdatePreviousBorrowerAddressResponseFragment
    }
  }
}
Response
{
  "data": {
    "borrowerAddress": {
      "createPrevious": CreatePreviousBorrowerAddressResponse,
      "deletePrevious": DeletePreviousBorrowerAddressResponse,
      "updateCurrent": UpdateCurrentBorrowerAddressResponse,
      "updatePrevious": UpdatePreviousBorrowerAddressResponse
    }
  }
}

citations

Description

Citation mutations namespace.

Response

Returns a CitationsMutations

Example

Query
mutation citations {
  citations {
    createCitation {
      ...CreateCitationResponseFragment
    }
  }
}
Response
{
  "data": {
    "citations": {
      "createCitation": CreateCitationResponse
    }
  }
}

comms

Description

Comms mutations

Response

Returns a CommsMutations

Example

Query
mutation comms {
  comms {
    toggleCustomerCommsOptIn {
      ...ToggleCustomerCommsOptInResponseFragment
    }
    updateCommsRecipients {
      ...UpdateCommsRecipientsResponseFragment
    }
    updateCommsSettings {
      ...UpdateCommsSettingsResponseFragment
    }
    updateCommsTemplate {
      ...UpdateCommsTemplateResponseFragment
    }
  }
}
Response
{
  "data": {
    "comms": {
      "toggleCustomerCommsOptIn": ToggleCustomerCommsOptInResponse,
      "updateCommsRecipients": UpdateCommsRecipientsResponse,
      "updateCommsSettings": UpdateCommsSettingsResponse,
      "updateCommsTemplate": UpdateCommsTemplateResponse
    }
  }
}

company

Description

Company mutations

Response

Returns a CompanyMutations

Example

Query
mutation company {
  company {
    create {
      ...CreateCompanyResponseFragment
    }
  }
}
Response
{"data": {"company": {"create": CreateCompanyResponse}}}

concession

Response

Returns a ConcessionMutations

Example

Query
mutation concession {
  concession {
    approveConcession {
      ...ApproveConcessionResponseFragment
    }
    requestConcession {
      ...RequestConcessionResponseFragment
    }
    revokeConcession {
      ...RevokeConcessionResponseFragment
    }
    updateConcession {
      ...UpdateConcessionResponseFragment
    }
  }
}
Response
{
  "data": {
    "concession": {
      "approveConcession": ApproveConcessionResponse,
      "requestConcession": RequestConcessionResponse,
      "revokeConcession": RevokeConcessionResponse,
      "updateConcession": UpdateConcessionResponse
    }
  }
}

contributor

Response

Returns a ContributorMutations

Example

Query
mutation contributor {
  contributor {
    attachContributorToDeal {
      ...AttachContributorToDealResponseFragment
    }
    createContributor {
      ...CreateContributorResponseFragment
    }
    createLease {
      ...ContributorCreateLeaseResponseFragment
    }
    detachContributorFromDeal {
      ...DetachContributorFromDealResponseFragment
    }
    disableContributor {
      ...DisableContributorResponseFragment
    }
    enableContributor {
      ...EnableContributorResponseFragment
    }
    updateContributor {
      ...UpdateContributorResponseFragment
    }
  }
}
Response
{
  "data": {
    "contributor": {
      "attachContributorToDeal": AttachContributorToDealResponse,
      "createContributor": CreateContributorResponse,
      "createLease": ContributorCreateLeaseResponse,
      "detachContributorFromDeal": DetachContributorFromDealResponse,
      "disableContributor": DisableContributorResponse,
      "enableContributor": EnableContributorResponse,
      "updateContributor": UpdateContributorResponse
    }
  }
}

credit

Description

Namespace for credit mutations. These mutations allow you to initiate credit pulls

Response

Returns a CreditMutations

Example

Query
mutation credit {
  credit {
    deactivateUdnMonitoring {
      ...DeactivateUdnMonitoringResponseFragment
    }
    invalidateCreditCache {
      ...InvalidateCreditCacheResponseFragment
    }
    refreshCreditReport {
      ...RefreshCreditReportResponseFragment
    }
    startIndividualCreditPullJob {
      ...StartIndividualCreditPullJobResponseFragment
    }
    startJointCreditPullJob {
      ...StartJointCreditPullJobResponseFragment
    }
    unmergeCreditReport {
      ...UnmergeCreditReportResponseFragment
    }
    updateUdnNotificationEmails {
      ...UpdateUdnNotificationEmailsResponseFragment
    }
    upgradeCreditReport {
      ...UpgradeCreditReportResponseFragment
    }
  }
}
Response
{
  "data": {
    "credit": {
      "deactivateUdnMonitoring": DeactivateUdnMonitoringResponse,
      "invalidateCreditCache": InvalidateCreditCacheResponse,
      "refreshCreditReport": RefreshCreditReportResponse,
      "startIndividualCreditPullJob": StartIndividualCreditPullJobResponse,
      "startJointCreditPullJob": StartJointCreditPullJobResponse,
      "unmergeCreditReport": UnmergeCreditReportResponse,
      "updateUdnNotificationEmails": UpdateUdnNotificationEmailsResponse,
      "upgradeCreditReport": UpgradeCreditReportResponse
    }
  }
}

creditInquiry

Description

CreditInquiry mutations

Response

Returns a CreditInquiryMutations

Example

Query
mutation creditInquiry {
  creditInquiry {
    updateCreditInquiry {
      ...UpdateCreditInquiryResponseFragment
    }
  }
}
Response
{
  "data": {
    "creditInquiry": {
      "updateCreditInquiry": UpdateCreditInquiryResponse
    }
  }
}

customerProvisioning

Description

Customer provisioning mutations (internal Pylon administrators only).

Response

Returns a CustomerProvisioningMutations

Example

Query
mutation customerProvisioning {
  customerProvisioning {
    provisionCustomer {
      ...ProvisionCustomerResponseFragment
    }
  }
}
Response
{
  "data": {
    "customerProvisioning": {
      "provisionCustomer": ProvisionCustomerResponse
    }
  }
}

deal

Response

Returns a DealMutations

Example

Query
mutation deal {
  deal {
    create {
      ...CreateDealResponseFragment
    }
  }
}
Response
{"data": {"deal": {"create": CreateDealResponse}}}

dealClaimToken

Response

Returns a DealClaimTokenMutations

Example

Query
mutation dealClaimToken {
  dealClaimToken {
    claim {
      ...ClaimDealClaimTokenResponseFragment
    }
    issue {
      ...IssueDealClaimTokenResponseFragment
    }
  }
}
Response
{
  "data": {
    "dealClaimToken": {
      "claim": ClaimDealClaimTokenResponse,
      "issue": IssueDealClaimTokenResponse
    }
  }
}

demoSeed

Response

Returns a DemoSeedMutations

Example

Query
mutation demoSeed {
  demoSeed {
    seedAusRun {
      ...SeedAusRunResponseFragment
    }
    seedWireOutWorksheetCase {
      ...SeedWireOutWorksheetCaseResponseFragment
    }
  }
}
Response
{
  "data": {
    "demoSeed": {
      "seedAusRun": SeedAusRunResponse,
      "seedWireOutWorksheetCase": SeedWireOutWorksheetCaseResponse
    }
  }
}

documentIntake

Description

Document-intake mutations namespace.

Response

Returns a DocumentIntakeMutations

Example

Query
mutation documentIntake {
  documentIntake {
    retry {
      ...RetryDocumentIntakeResponseFragment
    }
    seedFromDocuments {
      ...SeedFromDocumentsResponseFragment
    }
    seedLoanFromDocuments {
      ...SeedLoanFromDocumentsResponseFragment
    }
  }
}
Response
{
  "data": {
    "documentIntake": {
      "retry": RetryDocumentIntakeResponse,
      "seedFromDocuments": SeedFromDocumentsResponse,
      "seedLoanFromDocuments": SeedLoanFromDocumentsResponse
    }
  }
}

employmentGap

Description

Employment gap mutations

Response

Returns an EmploymentGapMutations

Example

Query
mutation employmentGap {
  employmentGap {
    explainEmploymentGap {
      ...ExplainEmploymentGapResponseFragment
    }
  }
}
Response
{
  "data": {
    "employmentGap": {
      "explainEmploymentGap": ExplainEmploymentGapResponse
    }
  }
}

fee

Description

Namespace for mutating fees and closing costs.

Response

Returns a FeeMutations

Example

Query
mutation fee {
  fee {
    delete {
      ...DeleteFeeResponseFragment
    }
    update {
      ...UpdateFeeResponseFragment
    }
  }
}
Response
{
  "data": {
    "fee": {
      "delete": DeleteFeeResponse,
      "update": UpdateFeeResponse
    }
  }
}

feeSheet

Description

Fee sheet mutations

Response

Returns a FeeSheetMutations

Example

Query
mutation feeSheet {
  feeSheet {
    createFeeSheetRequest {
      ...CreateFeeSheetRequestResponseFragment
    }
    createFeeSheetRequestForLoan {
      ...CreateFeeSheetRequestForLoanResponseFragment
    }
  }
}
Response
{
  "data": {
    "feeSheet": {
      "createFeeSheetRequest": CreateFeeSheetRequestResponse,
      "createFeeSheetRequestForLoan": CreateFeeSheetRequestForLoanResponse
    }
  }
}

flood

Description

Flood mutations.

Response

Returns a FloodMutations

Example

Query
mutation flood {
  flood {
    cancelFlood {
      ...CancelFloodResponseFragment
    }
    orderFlood {
      ...OrderFloodResponseFragment
    }
  }
}
Response
{
  "data": {
    "flood": {
      "cancelFlood": CancelFloodResponse,
      "orderFlood": OrderFloodResponse
    }
  }
}

fulfillmentParty

Response

Returns a FulfillmentPartyMutations

Example

Query
mutation fulfillmentParty {
  fulfillmentParty {
    create {
      ...CreateFulfillmentPartyResponseFragment
    }
    delete {
      ...DeleteFulfillmentPartyResponseFragment
    }
  }
}
Response
{
  "data": {
    "fulfillmentParty": {
      "create": CreateFulfillmentPartyResponse,
      "delete": DeleteFulfillmentPartyResponse
    }
  }
}

funding

Description

Funding mutations

Response

Returns a FundingMutations

Example

Query
mutation funding {
  funding {
    correctWireInRemittance {
      ...CorrectWireInRemittanceResponseFragment
    }
    correctWireOutRemittance {
      ...CorrectWireOutRemittanceResponseFragment
    }
    recordWireInInputs {
      ...RecordWireInInputsResponseFragment
    }
    recordWireInRemittance {
      ...RecordWireInRemittanceResponseFragment
    }
    recordWireOutRemittance {
      ...RecordWireOutRemittanceResponseFragment
    }
  }
}
Response
{
  "data": {
    "funding": {
      "correctWireInRemittance": CorrectWireInRemittanceResponse,
      "correctWireOutRemittance": CorrectWireOutRemittanceResponse,
      "recordWireInInputs": RecordWireInInputsResponse,
      "recordWireInRemittance": RecordWireInRemittanceResponse,
      "recordWireOutRemittance": RecordWireOutRemittanceResponse
    }
  }
}

income

Description

Income mutations

Response

Returns an IncomeMutations

Example

Query
mutation income {
  income {
    create {
      ...CreateIncomeResponseFragment
    }
    delete {
      ...DeleteIncomeResponseFragment
    }
    recompute {
      ...RecomputeIncomeResponseFragment
    }
    update {
      ...UpdateIncomeResponseFragment
    }
  }
}
Response
{
  "data": {
    "income": {
      "create": CreateIncomeResponse,
      "delete": DeleteIncomeResponse,
      "recompute": RecomputeIncomeResponse,
      "update": UpdateIncomeResponse
    }
  }
}

incomeVerification

Response

Returns an IncomeVerificationMutations

Example

Query
mutation incomeVerification {
  incomeVerification {
    cancelOrder {
      ...CancelOrderResponseFragment
    }
    requestOrder {
      ...RequestOrderResponseFragment
    }
  }
}
Response
{
  "data": {
    "incomeVerification": {
      "cancelOrder": CancelOrderResponse,
      "requestOrder": RequestOrderResponse
    }
  }
}

liability

Description

Liability mutations

Response

Returns a LiabilityMutations

Example

Query
mutation liability {
  liability {
    attachOwnedProperty {
      ...AttachOwnedPropertyLiabilityResponseFragment
    }
    create {
      ...CreateLiabilityResponseFragment
    }
    delete {
      ...DeleteLiabilityResponseFragment
    }
    dismissDuplicateSuggestion {
      ...DismissDuplicateSuggestionResponseFragment
    }
    setExclusionReason {
      ...SetExclusionReasonResponseFragment
    }
    setIntent {
      ...SetIntentResponseFragment
    }
    update {
      ...UpdateLiabilityResponseFragment
    }
  }
}
Response
{
  "data": {
    "liability": {
      "attachOwnedProperty": AttachOwnedPropertyLiabilityResponse,
      "create": CreateLiabilityResponse,
      "delete": DeleteLiabilityResponse,
      "dismissDuplicateSuggestion": DismissDuplicateSuggestionResponse,
      "setExclusionReason": SetExclusionReasonResponse,
      "setIntent": SetIntentResponse,
      "update": UpdateLiabilityResponse
    }
  }
}

loan

Description

Loan mutations

Response

Returns a LoanMutations

Example

Query
mutation loan {
  loan {
    approveChangeRequest {
      ...ApproveLoanChangeRequestResponseFragment
    }
    archive {
      ... on ArchiveLoanSuccess {
        ...ArchiveLoanSuccessFragment
      }
      ... on LoanClosedError {
        ...LoanClosedErrorFragment
      }
    }
    assignLoanOfficer {
      ...AssignLoanOfficerResponseFragment
    }
    attachContact {
      ...AttachLoanContactResponseFragment
    }
    attachLoanNote {
      ...AttachLoanNoteResponseFragment
    }
    attachProductPricingRate {
      ...AttachProductPricingRateResponseFragment
    }
    attachSubjectProperty {
      ...AttachSubjectPropertyResponseFragment
    }
    attachTitleCompany {
      ...AttachTitleCompanyResponseFragment
    }
    confirmRateLock {
      ...ConfirmRateLockResponseFragment
    }
    create {
      ...CreateLoanResponseFragment
    }
    createLoanAssignment {
      ...CreateLoanAssignmentResponseFragment
    }
    denyRateLock {
      ...DenyRateLockResponseFragment
    }
    detachContact {
      ...DetachLoanContactResponseFragment
    }
    export {
      ...ExportLoanResponseFragment
    }
    floatStructure {
      ...FloatStructureResponseFragment
    }
    forceGenerateDisclosurePackage {
      ...ForceGenerateDisclosurePackageResponseFragment
    }
    freeze {
      ...FreezeLoanResponseFragment
    }
    generateClosingDisclosurePreview {
      ...GenerateClosingDisclosurePreviewResponseFragment
    }
    generateLoanEstimatePreview {
      ...GenerateLoanEstimatePreviewResponseFragment
    }
    openChangeRequest {
      ...OpenLoanChangeRequestResponseFragment
    }
    reassignLoanOfficerTasks {
      ...ReassignLoanOfficerTasksResponseFragment
    }
    reassignTask {
      ...ReassignTaskResponseFragment
    }
    recordLoanView {
      ...RecordLoanViewResponseFragment
    }
    redisclose {
      ...RediscloseResponseFragment
    }
    removeLoanAssignment {
      ...RemoveLoanAssignmentResponseFragment
    }
    requestRateLock {
      ...RequestRateLockResponseFragment
    }
    setUseOwnTitleCompany {
      ...SetUseOwnTitleCompanyResponseFragment
    }
    startBulkLoanDocumentsExport {
      ...StartBulkLoanDocumentsExportResponseFragment
    }
    submitUnderwritingNotes {
      ...SubmitUnderwritingNotesResponseFragment
    }
    thaw {
      ...ThawLoanResponseFragment
    }
    update {
      ...UpdateLoanResponseFragment
    }
    updateBorrowerPreferences {
      ...UpdateBorrowerPreferencesResponseFragment
    }
    updateCompanyName {
      ...UpdateCompanyNameResponseFragment
    }
    updateProcessorFee {
      ...UpdateProcessorFeeResponseFragment
    }
    updateTaskName {
      ...UpdateTaskNameResponseFragment
    }
    withdraw {
      ... on LoanClosedError {
        ...LoanClosedErrorFragment
      }
      ... on WithdrawLoanSuccess {
        ...WithdrawLoanSuccessFragment
      }
    }
  }
}
Response
{
  "data": {
    "loan": {
      "approveChangeRequest": ApproveLoanChangeRequestResponse,
      "archive": ArchiveLoanSuccess,
      "assignLoanOfficer": AssignLoanOfficerResponse,
      "attachContact": AttachLoanContactResponse,
      "attachLoanNote": AttachLoanNoteResponse,
      "attachProductPricingRate": AttachProductPricingRateResponse,
      "attachSubjectProperty": AttachSubjectPropertyResponse,
      "attachTitleCompany": AttachTitleCompanyResponse,
      "confirmRateLock": ConfirmRateLockResponse,
      "create": CreateLoanResponse,
      "createLoanAssignment": CreateLoanAssignmentResponse,
      "denyRateLock": DenyRateLockResponse,
      "detachContact": DetachLoanContactResponse,
      "export": ExportLoanResponse,
      "floatStructure": FloatStructureResponse,
      "forceGenerateDisclosurePackage": ForceGenerateDisclosurePackageResponse,
      "freeze": FreezeLoanResponse,
      "generateClosingDisclosurePreview": GenerateClosingDisclosurePreviewResponse,
      "generateLoanEstimatePreview": GenerateLoanEstimatePreviewResponse,
      "openChangeRequest": OpenLoanChangeRequestResponse,
      "reassignLoanOfficerTasks": ReassignLoanOfficerTasksResponse,
      "reassignTask": ReassignTaskResponse,
      "recordLoanView": RecordLoanViewResponse,
      "redisclose": RediscloseResponse,
      "removeLoanAssignment": RemoveLoanAssignmentResponse,
      "requestRateLock": RequestRateLockResponse,
      "setUseOwnTitleCompany": SetUseOwnTitleCompanyResponse,
      "startBulkLoanDocumentsExport": StartBulkLoanDocumentsExportResponse,
      "submitUnderwritingNotes": SubmitUnderwritingNotesResponse,
      "thaw": ThawLoanResponse,
      "update": UpdateLoanResponse,
      "updateBorrowerPreferences": UpdateBorrowerPreferencesResponse,
      "updateCompanyName": UpdateCompanyNameResponse,
      "updateProcessorFee": UpdateProcessorFeeResponse,
      "updateTaskName": UpdateTaskNameResponse,
      "withdraw": LoanClosedError
    }
  }
}

loanOfficer

Description

Loan officer mutations

Response

Returns a LoanOfficerMutations

Example

Query
mutation loanOfficer {
  loanOfficer {
    setLoanOfficerSlug {
      ...SetLoanOfficerSlugResponseFragment
    }
  }
}
Response
{
  "data": {
    "loanOfficer": {
      "setLoanOfficerSlug": SetLoanOfficerSlugResponse
    }
  }
}

loanScript

Response

Returns a LoanScriptMutations

Example

Query
mutation loanScript {
  loanScript {
    createLoanScript {
      ...CreateLoanScriptResponseFragment
    }
    deleteLoanScript {
      ...DeleteLoanScriptResponseFragment
    }
    runLoanScript {
      ...RunLoanScriptResponseFragment
    }
    updateLoanScript {
      ...UpdateLoanScriptResponseFragment
    }
  }
}
Response
{
  "data": {
    "loanScript": {
      "createLoanScript": CreateLoanScriptResponse,
      "deleteLoanScript": DeleteLoanScriptResponse,
      "runLoanScript": RunLoanScriptResponse,
      "updateLoanScript": UpdateLoanScriptResponse
    }
  }
}

lpaKnownRulesBackfill

Description

Internal LPA known-rules backfill operations.

Response

Returns a LpaKnownRulesBackfillMutations

Example

Query
mutation lpaKnownRulesBackfill {
  lpaKnownRulesBackfill {
    start {
      ...StartLpaKnownRulesBackfillResponseFragment
    }
    status {
      ...StatusLpaKnownRulesBackfillResponseFragment
    }
  }
}
Response
{
  "data": {
    "lpaKnownRulesBackfill": {
      "start": StartLpaKnownRulesBackfillResponse,
      "status": StatusLpaKnownRulesBackfillResponse
    }
  }
}

nonBorrowingOwner

Description

NonBorrowingOwner mutations

Response

Returns a NonBorrowingOwnerMutations

Example

Query
mutation nonBorrowingOwner {
  nonBorrowingOwner {
    create {
      ...CreateNonBorrowingOwnerResponseFragment
    }
    delete {
      ...DeleteNonBorrowingOwnerResponseFragment
    }
    update {
      ...UpdateNonBorrowingOwnerResponseFragment
    }
  }
}
Response
{
  "data": {
    "nonBorrowingOwner": {
      "create": CreateNonBorrowingOwnerResponse,
      "delete": DeleteNonBorrowingOwnerResponse,
      "update": UpdateNonBorrowingOwnerResponse
    }
  }
}

organization

Description

Namespace for organization mutations. These allow updating things like your organization's privacy policy url and licensing.

Response

Returns an OrganizationMutations

Example

Query
mutation organization {
  organization {
    addEmailDomains {
      ...AddEmailDomainsResponseFragment
    }
    createContact {
      ...CreateContactResponseFragment
    }
    createOrganizationRole {
      ...CreateOrganizationRoleResponseFragment
    }
    createOrganizationUser {
      ...CreateOrganizationUserResponseFragment
    }
    deleteOrganizationRole {
      ...DeleteOrganizationRoleResponseFragment
    }
    deleteOrganizationStateLicenses {
      ...DeleteOrganizationStateLicensesResponseFragment
    }
    deleteOrganizationUser {
      ...DeleteOrganizationUserResponseFragment
    }
    removeEmailDomains {
      ...RemoveEmailDomainsResponseFragment
    }
    requestBrandingLogoUpload {
      ...RequestBrandingLogoUploadResponseFragment
    }
    resetOrganizationUserMfa {
      ...ResetOrganizationUserMfaResponseFragment
    }
    sendOrganizationUserInvitationEmail {
      ...SendOrganizationUserInvitationEmailResponseFragment
    }
    setDefaultPrimaryLoanContact {
      ...SetDefaultPrimaryLoanContactResponseFragment
    }
    setOrganizationApiAccessStatus {
      ...SetOrganizationApiAccessStatusResponseFragment
    }
    toggleEnabledLoanProduct {
      ...ToggleEnabledLoanProductResponseFragment
    }
    togglePlaidProduct {
      ...TogglePlaidProductResponseFragment
    }
    updateContact {
      ...UpdateContactResponseFragment
    }
    updateCostAbsorption {
      ...UpdateCostAbsorptionResponseFragment
    }
    updateCustomerShare {
      ...UpdateCustomerShareResponseFragment
    }
    updateOrganization {
      ...UpdateOrganizationResponseFragment
    }
    updateOrganizationCustomerMargin {
      ...UpdateOrganizationCustomerMarginResponseFragment
    }
    updateOrganizationLicensing {
      ...UpdateOrganizationLicensingResponseFragment
    }
    updateOrganizationMargin {
      ...UpdateOrganizationMarginResponseFragment
    }
    updateOrganizationOrigination {
      ...UpdateOrganizationOriginationResponseFragment
    }
    updateOrganizationRolePermissions {
      ...UpdateOrganizationRolePermissionsResponseFragment
    }
    updateOrganizationUserDetails {
      ...UpdateOrganizationUserDetailsResponseFragment
    }
    updateOrganizationUserRoles {
      ...UpdateOrganizationUserRolesResponseFragment
    }
  }
}
Response
{
  "data": {
    "organization": {
      "addEmailDomains": AddEmailDomainsResponse,
      "createContact": CreateContactResponse,
      "createOrganizationRole": CreateOrganizationRoleResponse,
      "createOrganizationUser": CreateOrganizationUserResponse,
      "deleteOrganizationRole": DeleteOrganizationRoleResponse,
      "deleteOrganizationStateLicenses": DeleteOrganizationStateLicensesResponse,
      "deleteOrganizationUser": DeleteOrganizationUserResponse,
      "removeEmailDomains": RemoveEmailDomainsResponse,
      "requestBrandingLogoUpload": RequestBrandingLogoUploadResponse,
      "resetOrganizationUserMfa": ResetOrganizationUserMfaResponse,
      "sendOrganizationUserInvitationEmail": SendOrganizationUserInvitationEmailResponse,
      "setDefaultPrimaryLoanContact": SetDefaultPrimaryLoanContactResponse,
      "setOrganizationApiAccessStatus": SetOrganizationApiAccessStatusResponse,
      "toggleEnabledLoanProduct": ToggleEnabledLoanProductResponse,
      "togglePlaidProduct": TogglePlaidProductResponse,
      "updateContact": UpdateContactResponse,
      "updateCostAbsorption": UpdateCostAbsorptionResponse,
      "updateCustomerShare": UpdateCustomerShareResponse,
      "updateOrganization": UpdateOrganizationResponse,
      "updateOrganizationCustomerMargin": UpdateOrganizationCustomerMarginResponse,
      "updateOrganizationLicensing": UpdateOrganizationLicensingResponse,
      "updateOrganizationMargin": UpdateOrganizationMarginResponse,
      "updateOrganizationOrigination": UpdateOrganizationOriginationResponse,
      "updateOrganizationRolePermissions": UpdateOrganizationRolePermissionsResponse,
      "updateOrganizationUserDetails": UpdateOrganizationUserDetailsResponse,
      "updateOrganizationUserRoles": UpdateOrganizationUserRolesResponse
    }
  }
}

ownedProperty

Description

Owned property mutations

Response

Returns an OwnedPropertyMutations

Example

Query
mutation ownedProperty {
  ownedProperty {
    attachLiabilities {
      ...AttachOwnedPropertyLiabilitiesResponseFragment
    }
    attachNonBorrowingOwner {
      ...AttachOwnedPropertyNonBorrowingOwnerResponseFragment
    }
    create {
      ...CreateOwnedPropertyResponseFragment
    }
    delete {
      ...DeleteOwnedPropertyResponseFragment
    }
    detachLiabilities {
      ...DetachOwnedPropertyLiabilitiesResponseFragment
    }
    update {
      ...UpdateOwnedPropertyResponseFragment
    }
  }
}
Response
{
  "data": {
    "ownedProperty": {
      "attachLiabilities": AttachOwnedPropertyLiabilitiesResponse,
      "attachNonBorrowingOwner": AttachOwnedPropertyNonBorrowingOwnerResponse,
      "create": CreateOwnedPropertyResponse,
      "delete": DeleteOwnedPropertyResponse,
      "detachLiabilities": DetachOwnedPropertyLiabilitiesResponse,
      "update": UpdateOwnedPropertyResponse
    }
  }
}

party

Response

Returns a PartyMutations

Example

Query
mutation party {
  party {
    create {
      ...CreatePartyResponseFragment
    }
    delete {
      ...DeletePartyResponseFragment
    }
    optForDefaultTitleVendor {
      ...OptForDefaultTitleVendorResponseFragment
    }
    update {
      ...UpdatePartyResponseFragment
    }
  }
}
Response
{
  "data": {
    "party": {
      "create": CreatePartyResponse,
      "delete": DeletePartyResponse,
      "optForDefaultTitleVendor": OptForDefaultTitleVendorResponse,
      "update": UpdatePartyResponse
    }
  }
}

preApproval

Response

Returns a PreApprovalMutations

Example

Query
mutation preApproval {
  preApproval {
    createLoanPreApprovalLetter {
      ...CreateLoanPreApprovalLetterResponseFragment
    }
    createMaxLoanPreApprovalLetter {
      ...CreateMaxLoanPreApprovalLetterResponseFragment
    }
    runLoanPreApproval {
      ...RunLoanPreApprovalResponseFragment
    }
  }
}
Response
{
  "data": {
    "preApproval": {
      "createLoanPreApprovalLetter": CreateLoanPreApprovalLetterResponse,
      "createMaxLoanPreApprovalLetter": CreateMaxLoanPreApprovalLetterResponse,
      "runLoanPreApproval": RunLoanPreApprovalResponse
    }
  }
}

preQualification

Description

Namespace for pre-qualification mutations. Pre-qualification is a lightweight process for estimating how large of a mortgage a borrower might qualify for based on stated information.

Response

Returns a PreQualificationMutations

Example

Query
mutation preQualification {
  preQualification {
    conventional {
      ...ConventionalResponseFragment
    }
  }
}
Response
{
  "data": {
    "preQualification": {
      "conventional": ConventionalResponse
    }
  }
}

pricing

Description

Namespace for asynchronous pricing queries. These mutations kick off asynchronous jobs which can be used to price and structure a loan.

Response

Returns a PricingMutations

Example

Query
mutation pricing {
  pricing {
    calculateOptimalStructure {
      ...CalculateOptimalStructureResponseFragment
    }
  }
}
Response
{
  "data": {
    "pricing": {
      "calculateOptimalStructure": CalculateOptimalStructureResponse
    }
  }
}

reapp

Response

Returns a ReappMutations

Example

Query
mutation reapp {
  reapp {
    reappLoan {
      ...ReappLoanResponseFragment
    }
  }
}
Response
{"data": {"reapp": {"reappLoan": ReappLoanResponse}}}

subjectProperty

Description

SubjectProperty mutations

Response

Returns a SubjectPropertyMutations

Example

Query
mutation subjectProperty {
  subjectProperty {
    addSubjectPropertyIntent {
      ...AddSubjectPropertyIntentResponseFragment
    }
    attachAddress {
      ...AttachSubjectPropertyAddressResponseFragment
    }
    attachLiabilities {
      ...AttachSubjectPropertyLiabilitiesResponseFragment
    }
    create {
      ...CreateSubjectPropertyResponseFragment
    }
    detachAddress {
      ...DetachSubjectPropertyAddressResponseFragment
    }
    detachLiabilities {
      ...DetachSubjectPropertyLiabilitiesResponseFragment
    }
    setFirstLien {
      ...SetSubjectPropertyFirstLienResponseFragment
    }
    unsetFirstLien {
      ...UnsetSubjectPropertyFirstLienResponseFragment
    }
    update {
      ...UpdateSubjectPropertyResponseFragment
    }
    updateSubjectPropertyIntent {
      ...UpdateSubjectPropertyIntentResponseFragment
    }
  }
}
Response
{
  "data": {
    "subjectProperty": {
      "addSubjectPropertyIntent": AddSubjectPropertyIntentResponse,
      "attachAddress": AttachSubjectPropertyAddressResponse,
      "attachLiabilities": AttachSubjectPropertyLiabilitiesResponse,
      "create": CreateSubjectPropertyResponse,
      "detachAddress": DetachSubjectPropertyAddressResponse,
      "detachLiabilities": DetachSubjectPropertyLiabilitiesResponse,
      "setFirstLien": SetSubjectPropertyFirstLienResponse,
      "unsetFirstLien": UnsetSubjectPropertyFirstLienResponse,
      "update": UpdateSubjectPropertyResponse,
      "updateSubjectPropertyIntent": UpdateSubjectPropertyIntentResponse
    }
  }
}

support

Description

Support ticket mutations.

Response

Returns a SupportMutations

Example

Query
mutation support {
  support {
    addSupportMessage {
      ...AddSupportMessageResponseFragment
    }
    createSupportTicket {
      ...CreateSupportTicketResponseFragment
    }
    requestSupportDocumentUpload {
      ...RequestSupportDocumentUploadResponseFragment
    }
  }
}
Response
{
  "data": {
    "support": {
      "addSupportMessage": AddSupportMessageResponse,
      "createSupportTicket": CreateSupportTicketResponse,
      "requestSupportDocumentUpload": RequestSupportDocumentUploadResponse
    }
  }
}

supportAdmin

Description

Pylon-internal support administration mutations.

Response

Returns a SupportAdminMutations

Example

Query
mutation supportAdmin {
  supportAdmin {
    addIssueType {
      ...AddIssueTypeResponseFragment
    }
    deleteIssueType {
      ...DeleteIssueTypeResponseFragment
    }
    importIssueType {
      ...ImportIssueTypeResponseFragment
    }
  }
}
Response
{
  "data": {
    "supportAdmin": {
      "addIssueType": AddIssueTypeResponse,
      "deleteIssueType": DeleteIssueTypeResponse,
      "importIssueType": ImportIssueTypeResponse
    }
  }
}

underwritingReview

Description

Underwriter review mutations namespace.

Response

Returns an UnderwritingReviewMutations

Example

Query
mutation underwritingReview {
  underwritingReview {
    addManualRequirement {
      ...AddManualRequirementResponseFragment
    }
    confirmAssessment {
      ...ConfirmAssessmentResponseFragment
    }
    removeManualRequirement {
      ...RemoveManualRequirementResponseFragment
    }
    reopenAssessment {
      ...ReopenAssessmentResponseFragment
    }
    requestReconsideration {
      ...RequestReconsiderationResponseFragment
    }
    submitCounterAssessment {
      ...SubmitCounterAssessmentResponseFragment
    }
  }
}
Response
{
  "data": {
    "underwritingReview": {
      "addManualRequirement": AddManualRequirementResponse,
      "confirmAssessment": ConfirmAssessmentResponse,
      "removeManualRequirement": RemoveManualRequirementResponse,
      "reopenAssessment": ReopenAssessmentResponse,
      "requestReconsideration": RequestReconsiderationResponse,
      "submitCounterAssessment": SubmitCounterAssessmentResponse
    }
  }
}

verify

Response

Returns a VerifyMutations

Example

Query
mutation verify {
  verify {
    createInitializationToken {
      ... on PlaidLinkToken {
        ...PlaidLinkTokenFragment
      }
      ... on TruvBridgeToken {
        ...TruvBridgeTokenFragment
      }
    }
    createUpdateModeToken {
      ...CreateUpdateModeTokenResponseFragment
    }
    exchangePublicToken {
      ... on PlaidItemAccess {
        ...PlaidItemAccessFragment
      }
      ... on TruvLinkAccess {
        ...TruvLinkAccessFragment
      }
    }
    getPlaidLayerSession {
      ...GetPlaidLayerSessionResponseFragment
    }
  }
}
Response
{
  "data": {
    "verify": {
      "createInitializationToken": PlaidLinkToken,
      "createUpdateModeToken": CreateUpdateModeTokenResponse,
      "exchangePublicToken": PlaidItemAccess,
      "getPlaidLayerSession": GetPlaidLayerSessionResponse
    }
  }
}

Types

AccessoryUnitIncome

Description

Accessory unit income

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "id": 4,
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": 4
}

AddAppraisalOrderCommentInput

Description

Input for adding a comment to an appraisal order.

Fields
Input Field Description
appraisalOrderId - ID! ID of the appraisal order to comment on.
comment - String! Comment text to add.
loanId - ID! ID of the loan application that owns the order.
Example
{
  "appraisalOrderId": "4",
  "comment": "abc123",
  "loanId": "4"
}

AddAppraisalOrderDocumentsInput

Description

Input for adding documents to an appraisal order.

Fields
Input Field Description
appraisalOrderId - ID! ID of the appraisal order to attach documents to.
documents - [AppraisalOrderDocumentInput!]! Documents to upload.
loanId - ID! ID of the loan application that owns the order.
Example
{
  "appraisalOrderId": "4",
  "documents": [AppraisalOrderDocumentInput],
  "loanId": "4"
}

AddEmailDomainsInput

Fields
Input Field Description
domains - [String!]! Email domains to add to the organization. Domains are normalized to lowercase.
Example
{"domains": ["abc123"]}

AddEmailDomainsResponse

Fields
Field Name Description
emailDomains - [String!]!
Example
{"emailDomains": ["abc123"]}

AddIssueTypeInput

Description

Input for creating an issue type.

Fields
Input Field Description
displayName - String! Human-readable name, shown in discovery and used in ticket titles.
key - ID! Stable key (UPPER_SNAKE_CASE) that filers pass as issueType.
Example
{
  "displayName": "xyz789",
  "key": "4"
}

AddIssueTypeResponse

Description

Response from creating an issue type.

Fields
Field Name Description
label - SupportIssueType! The registered issue type.
Example
{"label": SupportIssueType}

AddManualRequirementInput

Fields
Input Field Description
citationIds - [ID!] Citations grounding the requirement (created beforehand via createCitation). Every id must resolve to a citation on loanId; duplicates collapse to the first occurrence. Recorded as minting provenance only — citations never affect satisfaction.
description - String! Human-readable description of the condition.
loanId - ID! The loan to add the requirement to.
parentRequirementId - ID Optional composite parent to nest the requirement under. Must be an active requirement on the same loan.
reasoning - String Why the requirement is being added (minting provenance).
slug - String! Stable identity slug. The requirement id content-addresses on {slug}, so re-adding the same slug maps to the same requirement (restoring it if it was removed).
Example
{
  "citationIds": [4],
  "description": "abc123",
  "loanId": 4,
  "parentRequirementId": "4",
  "reasoning": "xyz789",
  "slug": "xyz789"
}

AddManualRequirementResponse

Description

Result of adding a manual requirement.

Fields
Field Name Description
requirement - Requirement The affected requirement's post-reconcile subtree (adversarial-review ruling 2): every review mutation reconciles inline, so the caller can render the new phase without a refetch. Null when the requirement row no longer exists (evicted or not yet minted).
requirementId - ID! The requirement's stable content-addressed id (req_…). Re-adding the same slug returns the same id.
warnings - [UnderwritingReviewWarning!]! Non-fatal warnings about the write. Empty on a clean write.
Example
{
  "requirement": Requirement,
  "requirementId": 4,
  "warnings": ["TARGET_SUPERSEDED"]
}

AddNotableActivityInput

Description

Input to the addNotableActivity mutation.

Fields
Input Field Description
activityType - FinancialAccountActivityType Activity type
amount - Int The amount of money in dollars
assetId - ID!
date - Date The date when the activity occurred
description - String Description of the activity
Example
{
  "activityType": "LARGE_DEPOSIT",
  "amount": 123,
  "assetId": 4,
  "date": "2007-12-03",
  "description": "abc123"
}

AddNotableActivityResponse

Description

Response of the addNotableActivity mutation.

Fields
Field Name Description
activity - FinancialAccountActivity! The FinancialAccountActivity entity that was added to the asset
Example
{"activity": FinancialAccountActivity}

AddOrderCommentResponse

Description

Response from adding a comment to an appraisal order.

Fields
Field Name Description
success - Boolean! Whether the comment was successfully added.
Example
{"success": false}

AddOrderDocumentsResponse

Description

Response from adding documents to an appraisal order.

Fields
Field Name Description
success - Boolean! Whether the documents were successfully added.
Example
{"success": true}

AddSubjectPropertyIntentInput

Fields
Input Field Description
fipsCountyCode - String! County-level FIPS code
isPlannedUnitDevelopment - Boolean Marks a subject property as being part of a planned unit development
loanId - ID! The ID or friendly ID of the Loan to which the SubjectPropertyIntent should be added
neighborhoodHousingType - NeighborhoodHousingType The type of housing
propertyUsageType - PropertyUsageType How the borrower(s) intend to use the property
Example
{
  "fipsCountyCode": "abc123",
  "isPlannedUnitDevelopment": false,
  "loanId": 4,
  "neighborhoodHousingType": "CONDOMINIUM",
  "propertyUsageType": "INVESTMENT"
}

AddSubjectPropertyIntentResponse

Fields
Field Name Description
subjectPropertyIntent - SubjectPropertyIntent! The SubjectPropertyIntent that was added to the loan
Example
{"subjectPropertyIntent": SubjectPropertyIntent}

AddSupportMessageInput

Description

Input for adding a message to an existing ticket.

Fields
Input Field Description
additionalRecipients - [SupportRecipientInput!] Extra addresses to copy on this message; at most 10.
attachmentDocumentIds - [ID!] Loan documents to attach: ids returned by requestSupportDocumentUpload's file POST, or document ids from the ticket's loan documents. Documents are reusable across tickets and messages; at most 20 per message.
body - String! The message body.
requesterEmail - String! Email of the person posting the message.
requesterName - String! Name of the person posting the message.
ticketId - ID! The ticket id (Plain thread id).
Example
{
  "additionalRecipients": [SupportRecipientInput],
  "attachmentDocumentIds": [4],
  "body": "xyz789",
  "requesterEmail": "xyz789",
  "requesterName": "xyz789",
  "ticketId": 4
}

AddSupportMessageResponse

Description

Response from adding a message to a ticket.

Fields
Field Name Description
ticketId - ID! The ticket the message was added to.
Example
{"ticketId": 4}

Address

Description

US Address

Fields
Field Name Description
city - String City
country - String Country
line - String Street address line 1
line2 - String Street address line 2
state - StateAbbreviated Abbreviated US state name (including DC)
zipCode - String Zip code
Example
{
  "city": "xyz789",
  "country": "abc123",
  "line": "xyz789",
  "line2": "xyz789",
  "state": "AK",
  "zipCode": "abc123"
}

AddressInput

Description

US Address Input

Fields
Input Field Description
city - String City
country - String Country
line - String Street address line 1
line2 - String Street address line 2
state - StateAbbreviated Abbreviated US state name (including DC)
zipCode - String Zip code
Example
{
  "city": "abc123",
  "country": "abc123",
  "line": "abc123",
  "line2": "xyz789",
  "state": "AK",
  "zipCode": "abc123"
}

AdvisorCompletionJob

Fields
Field Name Description
failureMessage - String
id - ID!
status - JobStatus!
Example
{
  "failureMessage": "xyz789",
  "id": "4",
  "status": "FAILED"
}

AdvisorMutations

Fields
Field Name Description
createSession - CreateSessionResponse
giveMessageFeedback - GiveMessageFeedbackResponse
Arguments
sendMessage - SendMessageResponse
Arguments
Example
{
  "createSession": CreateSessionResponse,
  "giveMessageFeedback": GiveMessageFeedbackResponse,
  "sendMessage": SendMessageResponse
}

AdvisorSession

Fields
Field Name Description
createdAt - DateTime!
id - ID!
messages - [AdvisorSessionMessage!]!
Example
{
  "createdAt": "2007-12-03T10:15:30Z",
  "id": 4,
  "messages": [AdvisorSessionMessage]
}

AdvisorSessionAdvisorMessage

Fields
Field Name Description
advisorSessionId - ID!
content - String!
createdAt - DateTime!
feedback - AdvisorSessionAdvisorMessageFeedback
id - ID!
Example
{
  "advisorSessionId": "4",
  "content": "xyz789",
  "createdAt": "2007-12-03T10:15:30Z",
  "feedback": AdvisorSessionAdvisorMessageFeedback,
  "id": "4"
}

AdvisorSessionAdvisorMessageFeedback

Fields
Field Name Description
advisorSessionId - ID!
content - String!
createdAt - DateTime!
id - ID!
note - String
sentiment - AdvisorSessionAdvisorMessageFeedbackSentiment!
Example
{
  "advisorSessionId": "4",
  "content": "xyz789",
  "createdAt": "2007-12-03T10:15:30Z",
  "id": "4",
  "note": "abc123",
  "sentiment": "NEGATIVE"
}

AdvisorSessionAdvisorMessageFeedbackSentiment

Values
Enum Value Description

NEGATIVE

POSITIVE

Example
"NEGATIVE"

AdvisorSessionMessage

Fields
Field Name Description
advisorSessionId - ID!
content - String!
createdAt - DateTime!
id - ID!
Example
{
  "advisorSessionId": 4,
  "content": "xyz789",
  "createdAt": "2007-12-03T10:15:30Z",
  "id": 4
}

AdvisorSessionUserMessage

Fields
Field Name Description
advisorSessionId - ID!
content - String!
createdAt - DateTime!
id - ID!
Example
{
  "advisorSessionId": "4",
  "content": "xyz789",
  "createdAt": "2007-12-03T10:15:30Z",
  "id": "4"
}

AgentProvenance

Description

Provenance from an automated interpretation agent. The requirement exists because an agent derived a concrete, loan-specific ask from an automated underwriting finding; a person can waive or retire it like any manually added condition.

Fields
Field Name Description
ausRunId - ID! The automated underwriting run whose finding produced this ask.
description - String! The agent's reasoning for why this finding binds this loan.
evidence - [GuidelineReference!]! Supporting evidence. Always empty — the source finding is carried in the typed fields, and document-anchored evidence lives in the requirement's evidence log.
findingText - String! The verbatim finding text the ask was derived from.
messageKey - String! Stable key of the source finding's message type.
mintedAt - DateTimeISO! When the ask was minted.
model - String! The model that proposed this ask.
promptName - String! Name of the interpretation prompt that proposed this ask.
promptVersion - NonNegativeInt! Version of the interpretation prompt.
traceId - String Observability trace id of the interpretation call, for auditing.
Example
{
  "ausRunId": "4",
  "description": "xyz789",
  "evidence": [GuidelineReference],
  "findingText": "xyz789",
  "messageKey": "xyz789",
  "mintedAt": "2007-12-03T10:15:30Z",
  "model": "xyz789",
  "promptName": "abc123",
  "promptVersion": 123,
  "traceId": "abc123"
}

AlimonyIncome

Description

Alimony income

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "id": "4",
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": 4
}

Analytics

Fields
Field Name Description
job - AnalyticsExportJob!
Arguments
id - ID!
loanApplicationMetrics - LoanApplicationAnalyticsMetrics!
loanApplications - LoanApplicationAnalyticsConnection!
Arguments
after - String

A cursor value that indicates the position after which items should be returned. Typically this should be the 'endCursor' of the previous page.

before - String

A cursor value that indicates the position before which items should be returned. Typically this should be the 'startCursor' of the following page.

first - Int

The number of items to be retrieved for forward pagination. Either 'first' or 'last' must be specified, but not both. This value must be between 1 and 500.

last - Int

The number of items to be retrieved for backward pagination. Either 'first' or 'last' must be specified, but not both. This value must be between 1 and 500.

sortDirection - SortDirection

The direction in which the results should be sorted. Defaults to ASC.

summary - PipelineSummaryResponse!
Arguments
Example
{
  "job": AnalyticsExportJob,
  "loanApplicationMetrics": LoanApplicationAnalyticsMetrics,
  "loanApplications": LoanApplicationAnalyticsConnection,
  "summary": PipelineSummaryResponse
}

AnalyticsDateBucket

Description

The calendar period a date dimension is grouped into.

Values
Enum Value Description

DAY

MONTH

QUARTER

WEEK

YEAR

Example
"DAY"

AnalyticsExportFile

Fields
Field Name Description
url - String!
Example
{"url": "xyz789"}

AnalyticsExportFormat

Values
Enum Value Description

CSV

Example
"CSV"

AnalyticsExportJob

Fields
Field Name Description
id - ID!
result - AnalyticsExportFile
status - JobStatus!
Example
{
  "id": 4,
  "result": AnalyticsExportFile,
  "status": "FAILED"
}

AnalyticsExportRoot

Values
Enum Value Description

LOAN_APPLICATIONS

Example
"LOAN_APPLICATIONS"

AnalyticsMutations

Fields
Field Name Description
startAnalyticsExportJob - StartAnalyticsExportJobResponse
Arguments
Example
{
  "startAnalyticsExportJob": StartAnalyticsExportJobResponse
}

AnyContributor

Fields
Field Name Description
displayName - String! Human-readable label for the actor.
id - ID!
Possible Types
AnyContributor Types

Contributor

DelegatedBorrowerContributor

Example
{
  "displayName": "xyz789",
  "id": "4"
}

Apor

Description

The average interest rate offered to highly qualified buyers, as published by the FFIEC.

Fields
Field Name Description
amortizationType - AporAmortizationType! Whether this APOR applies to fixed or adjustable-rate mortages.
date - DateTime! The date this APOR was published.
loanTermOrYearsToFirstAdjustment - PositiveInt! APOR is calculated in buckets according to term for fixed-rate mortgages, or according to the number of years until the rate may adjust for ARMs.
rate - PositiveFloat! The average interest rate by amortization type and term/years until adjustment.
Example
{
  "amortizationType": "ADJUSTABLE_RATE",
  "date": "2007-12-03T10:15:30Z",
  "loanTermOrYearsToFirstAdjustment": 123,
  "rate": 123.45
}

AporAmortizationType

Description

The amoritization type of the APOR. The APORs of fixed and ARM mortgages are calculated separately.

Values
Enum Value Description

ADJUSTABLE_RATE

FIXED

Example
"ADJUSTABLE_RATE"

AppliedMargin

Description

The customer margin applied to a loan's pricing, without the Pylon/customer split internals.

Fields
Field Name Description
activeAt - DateTime! The instant this margin segment became active (inclusive).
customerMargin - NonNegativeFloat! The portion of the global margin the customer receives, in points (1.5 = 1.5%).
endsAt - DateTime The instant this margin segment stops being active (exclusive). Null for the segment active right now.
globalMargin - NonNegativeFloat! The full margin priced into the loan, in points (1.5 = 1.5%).
Example
{
  "activeAt": "2007-12-03T10:15:30Z",
  "customerMargin": 123.45,
  "endsAt": "2007-12-03T10:15:30Z",
  "globalMargin": 123.45
}

Appraisal

Description

Represents an appraisal order and related property valuation details.

Fields
Field Name Description
actualValueAmount - Float The actual appraised value of the property in dollars.
appraisalManagementCompanies - [Contact!]! Appraisal management companies (AMCs) on the appraisal.
appraisalTypeName - String Name of the appraisal type that was ordered, as reported by the appraisal vendor.
appraisers - [Contact!]! Appraisers assigned on the appraisal.
assignedAt - DateTime Date the appraiser was assigned.
avmValueAmount - Float The automated valuation model (AVM) estimated value in dollars.
deliveredToBorrowerAt - DateTime Date the report was delivered to the borrower.
documents - [Document!]! Documents associated with the appraisal.
id - ID! The ID of the appraisal.
inspectionCompletedAt - DateTime Date the property inspection was completed.
orderAcceptedAt - DateTime Date the appraisal order was accepted.
orderCompletedAt - DateTime Date the appraisal order was completed.
orderStatus - AppraisalOrderStatus Current status of the appraisal order.
orderedAt - DateTime Date the appraisal was ordered.
paidAt - Date Date the appraisal order was paid.
paymentLink - String Link to the payment portal for the appraisal fee.
paymentStatus - AppraisalPaymentStatus Current status of the appraisal payment.
receivedAt - DateTime Date the completed report was received.
reportSignedAt - DateTime Date the report was signed.
scheduledAt - DateTime Scheduled date of the property inspection by the appraiser.
valuationMethod - PropertyValuationMethodType Valuation method used to assess the property's value.
Example
{
  "actualValueAmount": 987.65,
  "appraisalManagementCompanies": [Contact],
  "appraisalTypeName": "xyz789",
  "appraisers": [Contact],
  "assignedAt": "2007-12-03T10:15:30Z",
  "avmValueAmount": 987.65,
  "deliveredToBorrowerAt": "2007-12-03T10:15:30Z",
  "documents": [Document],
  "id": 4,
  "inspectionCompletedAt": "2007-12-03T10:15:30Z",
  "orderAcceptedAt": "2007-12-03T10:15:30Z",
  "orderCompletedAt": "2007-12-03T10:15:30Z",
  "orderStatus": "ACCEPTED",
  "orderedAt": "2007-12-03T10:15:30Z",
  "paidAt": "2007-12-03",
  "paymentLink": "xyz789",
  "paymentStatus": "NO_AMOUNT_DUE",
  "receivedAt": "2007-12-03T10:15:30Z",
  "reportSignedAt": "2007-12-03T10:15:30Z",
  "scheduledAt": "2007-12-03T10:15:30Z",
  "valuationMethod": "AUTOMATED_VALUATION_MODEL"
}

AppraisalMutations

Description

Root type for appraisal mutations.

Fields
Field Name Description
addOrderComment - AddOrderCommentResponse Add a comment to an appraisal order.
Arguments
addOrderDocuments - AddOrderDocumentsResponse Add documents to an appraisal order.
orderAppraisal - OrderAppraisalResponse Order an appraisal for a loan.
Arguments
Example
{
  "addOrderComment": AddOrderCommentResponse,
  "addOrderDocuments": AddOrderDocumentsResponse,
  "orderAppraisal": OrderAppraisalResponse
}

AppraisalOrder

Description

An appraisal order placed with a vendor to obtain a property valuation.

Fields
Field Name Description
createdOn - DateTime! When the order was created.
id - ID! Unique identifier of the appraisal order.
result - AppraisalOrderResult Appraisal result once completed.
status - AppraisalOrderStatusEnum! Current lifecycle status of the order.
vendor - AppraisalVendor! Vendor handling the appraisal order.
vendorOrderId - Int Vendor-assigned order identifier.
Example
{
  "createdOn": "2007-12-03T10:15:30Z",
  "id": 4,
  "result": AppraisalOrderResult,
  "status": "CANCELLED",
  "vendor": "VALUE_LINK",
  "vendorOrderId": 123
}

AppraisalOrderDocumentInput

Description

A single document to attach to an appraisal order.

Fields
Input Field Description
base64Content - String! Base64-encoded file content.
documentTypeId - String Vendor document type identifier.
name - String! File name including extension.
Example
{
  "base64Content": "abc123",
  "documentTypeId": "xyz789",
  "name": "abc123"
}

AppraisalOrderResult

Description

The result of a completed appraisal.

Fields
Field Name Description
effectiveDate - Date Effective date of the appraisal valuation.
value - Float! Appraised property value in dollars.
Example
{
  "effectiveDate": "2007-12-03",
  "value": 123.45
}

AppraisalOrderStatus

Description

The current status of the appraisal order.

Values
Enum Value Description

ACCEPTED

ACCEPT_WITH_CONDITIONS

APPROVED

APPROVED_WITH_CONDITIONS

ASSIGNED_TO_PROVIDER

CANCELLED

COLLATERAL_SUBMISSION_ERROR

COMPLETED

DECLINED

DELAYED

DRAFT_NOT_ACCEPTABLE

DRAFT_RECEIVED

ERROR

EXCEPTION

INSPECTION_COMPLETED

INSPECTION_SCHEDULED

ON_HOLD

ORDER_RECEIVED

OTHER

PENDING

READY_FOR_REVIEW

REQUESTED_RECONSIDERATION

REQUESTED_REVISION

REVIEW_IN_PROCESS

SUBMITTED_TO_COLLATERAL_DATA_PORTAL

Example
"ACCEPTED"

AppraisalOrderStatusEnum

Description

Status of an appraisal order through its lifecycle.

Values
Enum Value Description

CANCELLED

COMPLETED

FAILED

IN_PROGRESS

ON_HOLD

PENDING

Example
"CANCELLED"

AppraisalPaymentStatus

Description

The current status of payment for the appraisal order.

Values
Enum Value Description

NO_AMOUNT_DUE

OTHER

PAYMENT_DECLINED

PAYMENT_RECEIVED

REFUND_ISSUED

UNPAID

Example
"NO_AMOUNT_DUE"

AppraisalQueries

Description

Root type for appraisal queries.

Fields
Field Name Description
availableAmcs - [AvailableAmc!]! Available appraisal management companies for a loan and appraisal type, with fees.
Arguments
availableAppraisalTypes - [AvailableAppraisalType!]! Available appraisal types for a loan based on property location.
Arguments
loanId - ID!
Example
{
  "availableAmcs": [AvailableAmc],
  "availableAppraisalTypes": [AvailableAppraisalType]
}

AppraisalVendor

Description

Supported appraisal vendors.

Values
Enum Value Description

VALUE_LINK

Example
"VALUE_LINK"

AppraisalWaiver

Description

Types of appraisal waivers (e.g., PIW, ACE) that waive the need for an appraisal on eligible loans.

Values
Enum Value Description

AUTOMATED_COLLATERAL_EVALUATION

AUTOMATED_COLLATERAL_EVALUATION_WITH_PDR

PROPERTY_INSPECTION_WAIVER

PROPERTY_INSPECTION_WAIVER_WITH_PDR

Example
"AUTOMATED_COLLATERAL_EVALUATION"

ApprovalProcessDisputeKind

Description

The dispute action being recorded by an underwriter in approval-process.

Values
Enum Value Description

CHALLENGE

REJECTION

WAIVE

Example
"CHALLENGE"

ApprovalProcessEvidenceRefInput

Fields
Input Field Description
evidenceId - ID! Content-addressed id of the target assertion edge. The id pins the exact content, so no separate hash is carried.
Example
{"evidenceId": 4}

ApprovalProcessMutations

Fields
Field Name Description
writeDispute - WriteDisputeResponse Writes a CHALLENGE/REJECTION dispute pinned to an assertion edge, or a WAIVE of a requirement.
Arguments
Example
{"writeDispute": WriteDisputeResponse}

ApproveConcessionInput

Fields
Input Field Description
id - ID!
Example
{"id": 4}

ApproveConcessionResponse

Fields
Field Name Description
concession - Concession
Example
{"concession": Concession}

ApproveLoanChangeRequestInput

Description

Input to the loan.approveChangeRequest mutation.

Fields
Input Field Description
id - ID! The ID of the loan change request to approve
Example
{"id": "4"}

ApproveLoanChangeRequestResponse

Description

Response of the loan.approveChangeRequest mutation.

Fields
Field Name Description
id - ID! The ID of the loan change request
status - LoanChangeRequestStatus! Current status of this change request
Example
{"id": "4", "status": "APPROVED"}

ApprovedPreApprovalRun

Description

A successful pre-approval

Fields
Field Name Description
id - ID!
loanAmount - NonNegativeInt!
maxPreApprovalLetterUrl - String A download URL for a pre-approval letter with the maximum pre-approved loan amount and purchase price for the loan.
salesContractAmount - NonNegativeInt!
Example
{
  "id": "4",
  "loanAmount": 123,
  "maxPreApprovalLetterUrl": "xyz789",
  "salesContractAmount": 123
}

AprInaccurateReason

Description

§1026.19(f)(2)(ii)(A): the disclosed APR is no longer accurate. A null currentAprPercent is a loan whose APR can no longer be measured, which is reported rather than passed over.

Fields
Field Name Description
currentAprPercent - Float This field is expressed as a percent. As an example, 50.1% is expressed as 50.1.
disclosedAprPercent - Float! This field is expressed as a percent. As an example, 50.1% is expressed as 50.1.
kind - DisclosureDriftReasonKind!
thresholdPercent - Float! The §1026.22(a) tolerance applied. This field is expressed as a percent. As an example, 50.1% is expressed as 50.1.
Example
{
  "currentAprPercent": 987.65,
  "disclosedAprPercent": 123.45,
  "kind": "APR_INACCURATE",
  "thresholdPercent": 987.65
}

ArchiveLoanInput

Description

Input to the archiveLoan mutation.

Fields
Input Field Description
id - ID! ID of the loan to archive
Example
{"id": 4}

ArchiveLoanResponse

Example
ArchiveLoanSuccess

ArchiveLoanSuccess

Description

A successful response after a loan has been archived.

Fields
Field Name Description
id - ID! ID of the archived loan
Example
{"id": 4}

ArchiveReasonCategory

Description

Why a document was archived (e.g. Duplicate, Illegible).

Values
Enum Value Description

AssociatedToDifferentAspect

DocumentExpired

DoesntPertainToExistingAssociation

Duplicate

EntityDeleted

Illegible

Incomplete

MergedIntoNewDocument

NotAMortgageDocument

NotRequired

Other

ReplacedWithNewVersion

SplitIntoNewDocuments

WrongDocument

Example
"AssociatedToDifferentAspect"

AsianRace

Values
Enum Value Description

CHINESE

FILIPINO

INDIAN

JAPANESE

KOREAN

OTHER

VIETNAMESE

Example
"CHINESE"

Assertion

Description

An authored, reasoned verdict on a requirement, grounded in citations. authoritative marks the assertion that won the requirement's server-side fold — clients must never re-derive it.

Fields
Field Name Description
author - Contributor! WHO authored this assertion — always a Contributor, resolved from the writing context, never client-supplied.
authoritative - Boolean! True when this assertion won its requirement's authoritative-read fold — server-computed from the reconcile projection pin, never client-derived.
citations - [Citation!]! The citation rows grounding this assertion. Unresolvable references are skipped (and logged server-side), never surfaced as errors.
condition - AssertionCondition The open condition this assertion states — what must change for the claim to hold. Null on a FULFILLED verdict (nothing is open) and on authors that record no condition.
confidence - ConfidenceLevel The author's ordinal confidence in the verdict. Null when the author recorded none.
createdAt - DateTimeISO! When this assertion was written.
disputes - [Dispute!]! The dispute acts pinned to this assertion.
documents - [LoanDocument!]! The input documents this assertion's author consumed. Unresolvable references are skipped (and logged server-side), never surfaced as errors.
endorsesSuperseded - Boolean! True when this assertion endorses a prior assertion that has been invalidated or is no longer current — the endorsement carries no fold authority.
id - ID! Stable content-addressed identifier, resolvable via the root node(id) query.
reasoning - String The author's reasoning narrative. Null when a redaction has tombstoned the text (the entry remains verifiable).
verdict - AssertionVerdict! The author's verdict on the claim.
Example
{
  "author": Contributor,
  "authoritative": true,
  "citations": [Citation],
  "condition": AssertionCondition,
  "confidence": "CERTAIN",
  "createdAt": "2007-12-03T10:15:30Z",
  "disputes": [Dispute],
  "documents": [LoanDocument],
  "endorsesSuperseded": false,
  "id": "4",
  "reasoning": "abc123",
  "verdict": "FULFILLED"
}

AssertionCondition

Description

The open condition an unmet assertion states: what must change for the claim to hold. Distinct from reasoning (why the author reached this verdict) — this is the actionable ask.

Fields
Field Name Description
provenance - String The guideline or observation the condition derives from, when the author recorded one.
text - String! What must change for the claim to hold.
Example
{
  "provenance": "xyz789",
  "text": "abc123"
}

AssertionVerdict

Description

An assertion's verdict on its claim: FULFILLED (the claim holds), UNFULFILLED (it does not), NEEDS_HUMAN (a human must judge).

Values
Enum Value Description

FULFILLED

NEEDS_HUMAN

UNFULFILLED

Example
"FULFILLED"

Asset

Description

Interface with fields shared across all asset types

Fields
Field Name Description
amount - NonNegativeInt! The cash or market value of the asset in dollars
assetReportId - ID ID of the latest asset report that verified this asset
borrowerIds - [ID!] Ids of borrowers that are account holders on this asset
id - ID! Asset ID
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
qualifiedAmount - NonNegativeInt The qualified amount of the asset in dollars, used for underwriting. Null if no qualification has been computed.
verifiedAmount - NonNegativeInt The verified cash or market value of the asset in dollars, confirmed by a third-party source
Example
{
  "amount": 123,
  "assetReportId": "4",
  "borrowerIds": ["4"],
  "id": "4",
  "nonBorrowerOwnerNames": ["abc123"],
  "qualifiedAmount": 123,
  "verifiedAmount": 123
}

AssetMutations

Description

Asset mutations

Fields
Field Name Description
addNotableActivity - AddNotableActivityResponse Add a notable activity to an asset
Arguments
attachBorrower - AttachBorrowerAssetResponse Attach a borrower to an asset
Arguments
create - CreateAssetResponse Create an asset
Arguments
delete - DeleteAssetResponse Delete an asset
Arguments
deleteNotableActivity - DeleteNotableActivityResponse Delete a notable activity
Arguments
detachBorrower - DetachBorrowerAssetResponse Detach a borrower from an asset
Arguments
explainAssetTransaction - ExplainAssetTransactionResponse Submit an explanation for a large deposit asset transaction
Arguments
update - UpdateAssetResponse Update an asset. Fields with non-null values will be updated, the rest will be ignored. The input is a 'oneOf' type where exactly one field must be populated. The populated input field must match the type of the asset to update.
Arguments
updateNotableActivity - UpdateNotableActivityResponse Update a notable activity
Arguments
Example
{
  "addNotableActivity": AddNotableActivityResponse,
  "attachBorrower": AttachBorrowerAssetResponse,
  "create": CreateAssetResponse,
  "delete": DeleteAssetResponse,
  "deleteNotableActivity": DeleteNotableActivityResponse,
  "detachBorrower": DetachBorrowerAssetResponse,
  "explainAssetTransaction": ExplainAssetTransactionResponse,
  "update": UpdateAssetResponse,
  "updateNotableActivity": UpdateNotableActivityResponse
}

AssetTransaction

Description

A transaction associated with an asset from a Plaid Asset Report

Fields
Field Name Description
amount - Int! Transaction amount in dollars
assetId - ID! ID of the asset this transaction belongs to
category - [String!] List of categories associated with the transaction
date - Date! Date when the transaction occurred
id - ID! Asset Transaction ID
merchantName - String Merchant name associated with the transaction
Example
{
  "amount": 123,
  "assetId": "4",
  "category": ["xyz789"],
  "date": "2007-12-03",
  "id": 4,
  "merchantName": "abc123"
}

AssetVerificationItem

Description

A live linked institution for the refresh list.

Fields
Field Name Description
accountCount - Int! The number of live accounts linked to this bank connection.
institutionLogo - String
institutionName - String!
institutionPrimaryColor - String
itemId - ID! The bank connection identifier.
linkedAt - DateTime! When the bank connection was linked.
Example
{
  "accountCount": 123,
  "institutionLogo": "xyz789",
  "institutionName": "abc123",
  "institutionPrimaryColor": "abc123",
  "itemId": 4,
  "linkedAt": "2007-12-03T10:15:30Z"
}

AssetVerificationLinkKind

Values
Enum Value Description

CONNECT

REFRESH

Example
"CONNECT"

AssetVerificationLinkStatus

Values
Enum Value Description

COMPLETED

FAILED

PENDING

Example
"COMPLETED"

AssetVerificationLinkSummary

Fields
Field Name Description
createdAt - DateTime!
expiresAt - DateTime!
hostedUrl - String The borrower-facing hosted link, null unless the link is pending and unexpired.
itemId - ID The bank connection this link concerns: set when a refresh link is created or after a connect link adds a bank connection; null until then.
kind - AssetVerificationLinkKind! Whether this link adds a new bank connection or refreshes an existing bank connection.
linkId - String!
status - AssetVerificationLinkStatus!
Example
{
  "createdAt": "2007-12-03T10:15:30Z",
  "expiresAt": "2007-12-03T10:15:30Z",
  "hostedUrl": "xyz789",
  "itemId": 4,
  "kind": "CONNECT",
  "linkId": "abc123",
  "status": "COMPLETED"
}

AssetVerificationMutations

Fields
Field Name Description
refreshLink - RefreshLinkResponse
Arguments
requestLink - RequestLinkResponse
Arguments
Example
{
  "refreshLink": RefreshLinkResponse,
  "requestLink": RequestLinkResponse
}

AssetVerificationQueries

Fields
Field Name Description
items - [AssetVerificationItem!]!
Arguments
borrowerId - ID!
links - [AssetVerificationLinkSummary!]! Returns the borrower's 10 most recent hosted links, newest first.
Arguments
borrowerId - ID!
Example
{
  "items": [AssetVerificationItem],
  "links": [AssetVerificationLinkSummary]
}

AssignLoanOfficerInput

Description

Input to the assignLoanOfficer mutation.

Fields
Input Field Description
loanId - ID! The ID or friendly ID of the loan.
loanOfficerId - ID! The ID of the primary loan officer to assign to the loan.
Example
{
  "loanId": "4",
  "loanOfficerId": "4"
}

AssignLoanOfficerResponse

Description

Response of the assignLoanOfficer mutation.

Fields
Field Name Description
loanId - ID! The ID or friendly ID of the loan.
loanOfficerId - ID! The ID of the primary loan officer assigned to the loan.
Example
{"loanId": 4, "loanOfficerId": "4"}

AttachBorrowerAssetInput

Fields
Input Field Description
borrowerId - ID! The ID of the borrower to attach to the asset
id - ID! The ID of the asset to attach to the borrower
Example
{
  "borrowerId": "4",
  "id": "4"
}

AttachBorrowerAssetResponse

Description

Response of the attachBorrowerAsset mutation.

Fields
Field Name Description
asset - Asset! The asset that was updated
Example
{"asset": Asset}

AttachBorrowerLiabilitiesInput

Fields
Input Field Description
id - ID! The ID of borrower for which the liabilities are attached to
liabilityIds - [ID!]! The ID of liabilities to attach to the borrower
Example
{"id": 4, "liabilityIds": [4]}

AttachBorrowerLiabilitiesResponse

Fields
Field Name Description
borrower - Borrower! The updated Borrower
Example
{"borrower": Borrower}

AttachBorrowerNonBorrowingSpouseInput

Fields
Input Field Description
id - ID! The ID of borrower for which the non borrowing spouse is attached
nonBorrowingSpouseId - ID! The ID of non borrowing spouse party to attach to the borrower
Example
{
  "id": "4",
  "nonBorrowingSpouseId": "4"
}

AttachBorrowerNonBorrowingSpouseResponse

Fields
Field Name Description
borrower - Borrower! The updated Borrower
Example
{"borrower": Borrower}

AttachContributorToDealInput

Fields
Input Field Description
contributorId - ID!
dealId - ID!
Example
{"contributorId": 4, "dealId": 4}

AttachContributorToDealResponse

Fields
Field Name Description
contributor - Contributor!
deal - Deal!
Example
{
  "contributor": Contributor,
  "deal": Deal
}

AttachLoanContactInput

Description

Input to the loan.attachContact mutation.

Fields
Input Field Description
id - ID! ID of the contact to be attached to the loan.
loanId - ID! The ID or friendly ID of the loan.
Example
{"id": "4", "loanId": 4}

AttachLoanContactResponse

Description

Response of the loan.attachContact mutation.

Fields
Field Name Description
contact - Contact! The contact that was successfully attached to the loan.
Example
{"contact": Contact}

AttachLoanNoteInput

Description

Input to the attachLoanNote mutation.

Fields
Input Field Description
loanId - ID! The ID or friendly ID of the loan.
notes - String Note to attach to the loan (max 10000 characters, measured as UTF-8 bytes so accented characters and emoji count extra)
Example
{"loanId": 4, "notes": "xyz789"}

AttachLoanNoteResponse

Description

Response of the attachLoanNote mutation.

Fields
Field Name Description
notes - String Note attached to the loan
Example
{"notes": "abc123"}

AttachOwnedPropertyLiabilitiesInput

Fields
Input Field Description
id - ID! The ID owned property for which the liabilities are attached to
liabilityIds - [ID!]! The ID of liabilities to attach to the subject property
Example
{
  "id": "4",
  "liabilityIds": ["4"]
}

AttachOwnedPropertyLiabilitiesResponse

Fields
Field Name Description
ownedProperty - OwnedProperty! The updated OwnedProperty
Example
{"ownedProperty": OwnedProperty}

AttachOwnedPropertyLiabilityInput

Fields
Input Field Description
id - ID! The ID of the liability to which to attach the property
ownedPropertyId - ID! The ID of owned property to attach to the liability
Example
{"id": 4, "ownedPropertyId": "4"}

AttachOwnedPropertyLiabilityResponse

Description

Response of the attachOwnedPropertyLiability mutation.

Fields
Field Name Description
liability - Liability! The updated Liability
Example
{"liability": Liability}

AttachOwnedPropertyNonBorrowingOwnerInput

Fields
Input Field Description
id - ID! The ID of the owned property
nonBorrowingOwnerId - ID! The ID of the non-borrowing owner to attach to the property
Example
{"id": 4, "nonBorrowingOwnerId": 4}

AttachOwnedPropertyNonBorrowingOwnerResponse

Fields
Field Name Description
id - ID!
Example
{"id": "4"}

AttachProductPricingRateInput

Description

Input to the attachProductPricingRate mutation.

Fields
Input Field Description
id - ID! The ID of the product pricing rate to attach
loanId - ID! The ID or friendly ID of the loan.
overrideExistingRateLock - Boolean Proceed even though the loan's rate is already locked, replacing the terms the borrower was locked at. Allowed with the process:committed-rate-lock scope, or, for customers with automatic redisclosure enabled, on a loan that is not frozen (Loan.isFrozen is false). A replacement obliges the borrower a revised Loan Estimate, which is raised with the disclosure desk before the new lock commits; for those customers, a confirmation whose disclosed terms are unchanged leaves the existing lock in place instead (see ConfirmRateLockResponse.lockUnchanged). Applies only to a loan that already carries a lock; sending it for a loan's first lock is rejected, since there are no committed terms to replace.
Example
{
  "id": "4",
  "loanId": 4,
  "overrideExistingRateLock": false
}

AttachProductPricingRateResponse

Description

Response of the attachProductPricingRate mutation.

Fields
Field Name Description
loanId - ID! The ID or friendly ID of the loan.
productPricingRate - ProductPricingRate! The latest pricing run outputs
productStructure - ProductPricingRate! The latest version of pricing-related fields.
Example
{
  "loanId": 4,
  "productPricingRate": ProductPricingRate,
  "productStructure": ProductPricingRate
}

AttachSubjectPropertyAddressInput

Description

Input to the attachSubjectPropertyAddress mutation.

Fields
Input Field Description
city - String City
country - String Country
fipsCountyCode - String County-level FIPS code
id - ID! The ID of the subject property to which the address should be attached
line - String Street address line 1
line2 - String Street address line 2
zipCode - String Zip code
Example
{
  "city": "abc123",
  "country": "xyz789",
  "fipsCountyCode": "xyz789",
  "id": 4,
  "line": "xyz789",
  "line2": "xyz789",
  "zipCode": "xyz789"
}

AttachSubjectPropertyAddressResponse

Description

Response of the attachSubjectPropertyAddress mutation.

Fields
Field Name Description
subjectProperty - SubjectProperty! The SubjectProperty that was updated
Example
{"subjectProperty": SubjectProperty}

AttachSubjectPropertyInput

Description

Input to the attachSubjectProperty mutation.

Fields
Input Field Description
loanId - ID! The ID or friendly ID of the loan.
subjectPropertyId - ID! The ID of the subject property
Example
{
  "loanId": "4",
  "subjectPropertyId": "4"
}

AttachSubjectPropertyLiabilitiesInput

Fields
Input Field Description
liabilityIds - [ID!]! The ID of liabilities to attach to the subject property
loanId - ID! The ID or friendly ID of the Loan for which the liabilities are attached to subject property
Example
{"liabilityIds": [4], "loanId": "4"}

AttachSubjectPropertyLiabilitiesResponse

Fields
Field Name Description
subjectProperty - SubjectProperty! The updated SubjectProperty
Example
{"subjectProperty": SubjectProperty}

AttachSubjectPropertyResponse

Description

Response of the attachSubjectProperty mutation.

Fields
Field Name Description
loan - PickLoanId! The updated loan
subjectProperty - PickSubjectPropertyId! The subject property
Example
{
  "loan": PickLoanId,
  "subjectProperty": PickSubjectPropertyId
}

AttachTitleCompanyInput

Description

Input to the attachTitleCompany mutation.

Fields
Input Field Description
fulfillmentPartyId - ID! The ID of the fulfillment party to attach as title company
loanId - ID! The ID or friendly ID of the loan.
Example
{"fulfillmentPartyId": 4, "loanId": "4"}

AttachTitleCompanyResponse

Description

Response of the attachTitleCompany mutation.

Fields
Field Name Description
fulfillmentPartyId - ID! The ID of the fulfillment party attached as title company
loanId - ID! The ID or friendly ID of the loan.
Example
{"fulfillmentPartyId": 4, "loanId": 4}

AttachmentEnum

Values
Enum Value Description

ATTACHED

DETACHED

SEMI_DETACHED

Example
"ATTACHED"

Aus

Fields
Field Name Description
ausRequiredForLoan - Boolean! Whether the loan's selected product must pass automated underwriting before it can lock. False for manually underwritten products; true when no rate has been selected yet.
Arguments
loanId - ID!
ausRunJob - AusRunJob Fetch an AUS run by its ID.
Arguments
id - ID!
latestAusRunForLoan - AusRunJob Fetch the latest AUS run for a loan.
Arguments
loanId - ID!
Example
{
  "ausRequiredForLoan": true,
  "ausRunJob": AusRunJob,
  "latestAusRunForLoan": AusRunJob
}

AusConditionAgentEvaluation

Description

The evaluation agent's assessment of an AUS condition: verdict, confidence, reasoning, and the passages it relied on. Present once the agent has evaluated the condition against the loan's uploaded documents; null before then.

Fields
Field Name Description
confidence - Float! The agent's calibrated confidence in its verdict, 0–1.
evidence - [AusConditionEvidenceExcerpt!]! Passages the verdict rests on. Empty when the verdict rests on an absence (nothing to quote).
reasoning - String! The agent's explanation for the verdict.
verdict - AusConditionVerdict! Whether the documents satisfy the condition, per the agent.
Example
{
  "confidence": 123.45,
  "evidence": [AusConditionEvidenceExcerpt],
  "reasoning": "abc123",
  "verdict": "FULFILLED"
}

AusConditionEvidenceExcerpt

Description

A verbatim passage the evaluation agent cited from a parsed document to support its verdict. Anchored to a document plus an optional section/page; when the citation resolved to a concrete block it also carries page-space coordinates (boundingBox/polygon) for a reviewer overlay.

Fields
Field Name Description
boundingBox - AusEvidenceBoundingBox Axis-aligned page-space bounding box of the cited block, for a reviewer overlay. Null when the citation did not resolve to a concrete block location.
documentId - ID! The parsed document the quote was taken from.
pageHeight - Float Height of the page the boundingBox/polygon coordinates are expressed in, so a consumer can normalize them. Null when unknown.
pageNumber - NonNegativeInt 1-based page number within the document, when known.
pageWidth - Float Width of the page the boundingBox/polygon coordinates are expressed in, so a consumer can normalize them. Null when unknown.
polygon - [AusEvidencePagePoint!] Ordered page-space outline (polygon) of the cited block. Null when the citation did not resolve to a concrete block location.
quote - String! Verbatim passage from the document supporting the verdict.
section - String Section label within the document, when known.
Example
{
  "boundingBox": AusEvidenceBoundingBox,
  "documentId": "4",
  "pageHeight": 987.65,
  "pageNumber": 123,
  "pageWidth": 123.45,
  "polygon": [AusEvidencePagePoint],
  "quote": "xyz789",
  "section": "abc123"
}

AusConditionVerdict

Description

The evaluation agent's three-way verdict on whether the uploaded documents satisfy an AUS condition.

Values
Enum Value Description

FULFILLED

NEEDS_HUMAN

UNFULFILLED

Example
"FULFILLED"

AusEvidenceBoundingBox

Description

Axis-aligned page-space bounding box of a cited block — the simplification of its polygon outline, for a quick rectangular reviewer overlay. Coordinates are in the page coordinate system given by the surrounding evidence's pageWidth/pageHeight. Each edge is null when the citation did not resolve to a concrete block location.

Fields
Field Name Description
bottom - Float Bottom edge (y) in page space. Null when unresolved.
left - Float Left edge (x) in page space. Null when unresolved.
right - Float Right edge (x) in page space. Null when unresolved.
top - Float Top edge (y) in page space. Null when unresolved.
Example
{"bottom": 987.65, "left": 987.65, "right": 987.65, "top": 123.45}

AusEvidencePagePoint

Description

A single vertex of a cited block's outline, in the page coordinate system given by the surrounding evidence's pageWidth/pageHeight. The ordered set of these points is the block's polygon outline; boundingBox is its axis-aligned simplification. Points are concrete — the polygon is only present at all when the citation resolved to a block.

Fields
Field Name Description
x - Float! The point's x coordinate in page space.
y - Float! The point's y coordinate in page space.
Example
{"x": 123.45, "y": 987.65}

AusFailureBlocker

Description

Automated underwriting system (AUS) check failed

Fields
Field Name Description
ausRunId - ID! The ID of the AUS run that failed
type - String!
Example
{"ausRunId": 4, "type": "xyz789"}

AusFindingProvenance

Description

Provenance from an automated underwriting finding. The requirement exists because an AUS run (DU/LPA) returned an actionable condition.

Fields
Field Name Description
ausRunId - ID! The AUS run that produced this finding.
ausSystem - AusSystem! Which automated underwriting system produced the finding (DU vs LPA).
description - String! Human-readable explanation of WHERE this requirement came from (the AUS run/finding). Distinct from the requirement's own as-seen condition text.
evidence - [GuidelineReference!]! Supporting evidence. Typically empty for AUS findings.
messageId - String The vendor message code, when the finding carries one. Null otherwise.
messageKey - String! The finding's stable message-type identity (the AUS message code, or a content hash when no code is present).
section - String The section of the AUS response the finding appeared under, as seen. Null when unavailable.
Example
{
  "ausRunId": 4,
  "ausSystem": "DESKTOP_ORIGINATOR",
  "description": "abc123",
  "evidence": [GuidelineReference],
  "messageId": "abc123",
  "messageKey": "abc123",
  "section": "abc123"
}

AusMutations

Fields
Field Name Description
triggerAusRun - TriggerAusRunResponse
Arguments
Example
{"triggerAusRun": TriggerAusRunResponse}

AusResult

Values
Enum Value Description

ACCEPT_ELIGIBLE

ACCEPT_INELIGIBLE

CAUTION_ELIGIBLE

CAUTION_INELIGIBLE

ERROR

INVALID

OTHER

OUT_OF_SCOPE

Example
"ACCEPT_ELIGIBLE"

AusRunJob

Fields
Field Name Description
errors - [String!]!
id - ID! Job ID
lockAllowed - Boolean
reportUrl - String
result - AusResult
status - JobStatus! Job status
system - AusSystem!
Example
{
  "errors": ["xyz789"],
  "id": 4,
  "lockAllowed": false,
  "reportUrl": "xyz789",
  "result": "ACCEPT_ELIGIBLE",
  "status": "FAILED",
  "system": "DESKTOP_ORIGINATOR"
}

AusSystem

Values
Enum Value Description

DESKTOP_ORIGINATOR

LOAN_PRODUCT_ADVISOR

Example
"DESKTOP_ORIGINATOR"

AusUserError

AuthImpersonation

Description

An active super-admin user impersonation

Fields
Field Name Description
actorEmail - String! Email address of the super-admin actually driving
targetUserId - ID! Command Center user id of the user being impersonated
Example
{
  "actorEmail": "xyz789",
  "targetUserId": "4"
}

AuthMutations

Description

Auth mutations

Fields
Field Name Description
createLease - CreateLeaseResponse Create a lease for a borrower. This will automatically create a Pylon user for this borrower if one does not already exist.
Arguments
Example
{"createLease": CreateLeaseResponse}

AuthQueries

Description

Auth queries

Fields
Field Name Description
impersonation - AuthImpersonation The active super-admin user impersonation, or null when the caller is simply themselves.
scopes - [String!]! The scopes (permissions) assigned to the current API user or session.
viewer - AuthViewer The effective authenticated user — the impersonation target while impersonating, the real user otherwise. Null for machine (M2M) tokens, which act as a customer rather than as a person.
Example
{
  "impersonation": AuthImpersonation,
  "scopes": ["xyz789"],
  "viewer": AuthViewer
}

AuthViewer

Description

The EFFECTIVE authenticated Command Center user: the impersonation target while a super-admin impersonation is active, the real user otherwise.

Fields
Field Name Description
auth0UserId - ID Auth0 identity id of the effective user, when one is linked. Users-list row ids are auth0_identities_id ?? commandCenterUserId, so a row id may live in either id space — compare it against this AND userId together. Under impersonation this is the TARGET's linked identity, never the actor's. Null when no Auth0 identity is linked.
customerId - ID! The effective customer id
customerSlug - String! The effective customer slug
email - String! Email address of the effective user
firstName - String First name, if known
lastName - String Last name, if known
roleTypes - [String!]! Role types held by the effective user at the effective customer (e.g. "super_admin", "loan")
userId - ID Command Center user id of the effective user. Null under the legacy customer-level masquerade, which acts as a customer rather than as a specific user.
Example
{
  "auth0UserId": 4,
  "customerId": "4",
  "customerSlug": "xyz789",
  "email": "abc123",
  "firstName": "abc123",
  "lastName": "xyz789",
  "roleTypes": ["abc123"],
  "userId": "4"
}

AutoConditionalApprovalBlocker

AutomobileAllowanceIncome

Description

Automobile allowance income

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "id": 4,
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": 4
}

AutomobileAsset

Description

Automobile asset

Fields
Field Name Description
amount - NonNegativeInt! The cash or market value of the asset in dollars
assetReportId - ID ID of the latest asset report that verified this asset
borrowerIds - [ID!] Ids of borrowers that are account holders on this asset
id - ID! Node ID
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
qualifiedAmount - NonNegativeInt The qualified amount of the asset in dollars, used for underwriting. Null if no qualification has been computed.
verifiedAmount - NonNegativeInt The verified cash or market value of the asset in dollars, confirmed by a third-party source
Example
{
  "amount": 123,
  "assetReportId": "4",
  "borrowerIds": [4],
  "id": 4,
  "nonBorrowerOwnerNames": ["xyz789"],
  "qualifiedAmount": 123,
  "verifiedAmount": 123
}

AvailableAmc

Description

An appraisal management company available for order assignment.

Fields
Field Name Description
amcId - Int! AMC identifier from the vendor API.
fee - Float Total fee for this AMC in dollars.
name - String! AMC display name.
Example
{
  "amcId": 987,
  "fee": 987.65,
  "name": "abc123"
}

AvailableAmcsInput

Description

Input for querying available appraisal management companies.

Fields
Input Field Description
appraisalTypeId - Int! Appraisal type ID to get AMCs for.
loanId - ID! ID of the loan application.
Example
{"appraisalTypeId": 123, "loanId": 4}

AvailableAppraisalType

Description

An appraisal product type available for ordering.

Fields
Field Name Description
appraisalTypeId - Int! Vendor-specific appraisal type identifier.
estimatedDeliveryDays - Int Estimated number of business days for delivery.
fee - Float! Total fee for this appraisal type in dollars.
name - String! Name of the appraisal type.
Example
{
  "appraisalTypeId": 987,
  "estimatedDeliveryDays": 987,
  "fee": 987.65,
  "name": "abc123"
}

BankruptcyChapterType

Description

The type of bankruptcy filed, if any.

Values
Enum Value Description

CHAPTER_ELEVEN

CHAPTER_SEVEN

CHAPTER_THIRTEEN

CHAPTER_TWELVE

Example
"CHAPTER_ELEVEN"

BankruptcyType

Description

Types of bankruptcy

Values
Enum Value Description

BankruptcyChapter7

BankruptcyChapter7Involuntary

BankruptcyChapter7Voluntary

BankruptcyChapter11

BankruptcyChapter12

BankruptcyChapter13

BankruptcyTypeUnknown

Example
"BankruptcyChapter7"

BlockedLoan

Fields
Field Name Description
loanApplicationId - ID!
loanNumber - String
Example
{
  "loanApplicationId": 4,
  "loanNumber": "abc123"
}

BoarderIncome

Description

Boarder income from renting to boarders

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "id": "4",
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": 4
}

BondAsset

Description

Bond asset

Fields
Field Name Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt! The cash or market value of the asset in dollars
assetReportId - ID ID of the latest asset report that verified this asset
borrowerIds - [ID!] Ids of borrowers that are account holders on this asset
id - ID! Node ID
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
notableActivities - [FinancialAccountActivity!]! Notable activities
qualifiedAmount - NonNegativeInt The qualified amount of the asset in dollars, used for underwriting. Null if no qualification has been computed.
verifiedAmount - NonNegativeInt The verified cash or market value of the asset in dollars, confirmed by a third-party source
Example
{
  "accountIdentifier": "xyz789",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "assetReportId": 4,
  "borrowerIds": ["4"],
  "id": 4,
  "institutionName": "abc123",
  "nonBorrowerOwnerNames": ["abc123"],
  "notableActivities": [FinancialAccountActivity],
  "qualifiedAmount": 123,
  "verifiedAmount": 123
}

BonusIncome

Description

Bonus income from employment

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
employmentId - ID The employment this income is associated with
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "employmentId": "4",
  "id": 4,
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": 4
}

Boolean

Description

The Boolean scalar type represents true or false.

Example
true

BooleanComparator

Description

Comparisons available on a boolean field.

Fields
Input Field Description
eq - Boolean
in - [Boolean!]
isNull - Boolean
neq - Boolean
nin - [Boolean!]
null - Boolean
Example
{
  "eq": false,
  "in": [true],
  "isNull": false,
  "neq": false,
  "nin": [false],
  "null": false
}

Borrower

Description

A borrower or potential borrower

Fields
Field Name Description
assets - [Asset!]!
borrowerTasks - [BorrowerTask!]!
createdOn - DateTime!
credit - BorrowerCredit
creditInquiries - [CreditInquiry!]!
deal - Deal!
demographicInfo - DemographicInfo!
dependentAges - [Float!]
emailVerified - Boolean!
externalUserId - String
financialDeclarations - BorrowerFinancialDeclarations!
hardCreditConsentDate - DateTimeISO When consent for hard credit pulls was captured.
hardCreditConsentType - CreditPullConsentType Consent captured for hard credit pulls.
id - ID!
incomes - IncomeConnection!
Arguments
after - String

A cursor value that indicates the position after which items should be returned. Typically this should be the 'endCursor' of the previous page.

before - String

A cursor value that indicates the position before which items should be returned. Typically this should be the 'startCursor' of the following page.

first - Int

The number of items to be retrieved for forward pagination. Either 'first' or 'last' must be specified, but not both. This value must be between 1 and 500.

last - Int

The number of items to be retrieved for backward pagination. Either 'first' or 'last' must be specified, but not both. This value must be between 1 and 500.

sortDirection - SortDirection

The direction in which the results should be sorted. Defaults to ASC.

isFirstTimeHomeBuyer - Boolean
liabilities - LiabilityConnection!
Arguments
after - String

A cursor value that indicates the position after which items should be returned. Typically this should be the 'endCursor' of the previous page.

before - String

A cursor value that indicates the position before which items should be returned. Typically this should be the 'startCursor' of the following page.

first - Int

The number of items to be retrieved for forward pagination. Either 'first' or 'last' must be specified, but not both. This value must be between 1 and 500.

last - Int

The number of items to be retrieved for backward pagination. Either 'first' or 'last' must be specified, but not both. This value must be between 1 and 500.

sortDirection - SortDirection

The direction in which the results should be sorted. Defaults to ASC.

mailingAddress - Address
maritalStatus - MaritalStatusType
militaryService - BorrowerMilitaryService Use militaryServiceDeclaration instead.
militaryServiceDeclaration - MilitaryServiceDeclaration The borrower's military service declaration.
ownedProperties - OwnedPropertyConnection!
Arguments
after - String

A cursor value that indicates the position after which items should be returned. Typically this should be the 'endCursor' of the previous page.

before - String

A cursor value that indicates the position before which items should be returned. Typically this should be the 'startCursor' of the following page.

first - Int

The number of items to be retrieved for forward pagination. Either 'first' or 'last' must be specified, but not both. This value must be between 1 and 500.

last - Int

The number of items to be retrieved for backward pagination. Either 'first' or 'last' must be specified, but not both. This value must be between 1 and 500.

sortDirection - SortDirection

The direction in which the results should be sorted. Defaults to ASC.

personalInformation - BorrowerPersonalInformation!
pointOfContact - Boolean!
propertyDeclarations - BorrowerPropertyDeclarations!
softCreditConsentDate - DateTimeISO When consent for soft credit pulls was captured.
softCreditConsentType - CreditPullConsentType Consent captured for soft credit pulls.
spouse - BorrowerSpouse
useOwnTitleCompany - Boolean
Example
{
  "assets": [Asset],
  "borrowerTasks": [BorrowerTask],
  "createdOn": "2007-12-03T10:15:30Z",
  "credit": BorrowerCredit,
  "creditInquiries": [CreditInquiry],
  "deal": Deal,
  "demographicInfo": DemographicInfo,
  "dependentAges": [123.45],
  "emailVerified": true,
  "externalUserId": "abc123",
  "financialDeclarations": BorrowerFinancialDeclarations,
  "hardCreditConsentDate": "2007-12-03T10:15:30Z",
  "hardCreditConsentType": "ELECTRONIC",
  "id": "4",
  "incomes": IncomeConnection,
  "isFirstTimeHomeBuyer": false,
  "liabilities": LiabilityConnection,
  "mailingAddress": Address,
  "maritalStatus": "DIVORCED",
  "militaryService": BorrowerMilitaryService,
  "militaryServiceDeclaration": MilitaryService,
  "ownedProperties": OwnedPropertyConnection,
  "personalInformation": BorrowerPersonalInformation,
  "pointOfContact": true,
  "propertyDeclarations": BorrowerPropertyDeclarations,
  "softCreditConsentDate": "2007-12-03T10:15:30Z",
  "softCreditConsentType": "ELECTRONIC",
  "spouse": BorrowerSpouse,
  "useOwnTitleCompany": true
}

BorrowerAddress

Description

Borrower Address

Fields
Field Name Description
address - Address! US Address
borrower - Borrower! The borrower that lives or lived in the address
id - ID! Borrower Address ID
isCurrentAddress - Boolean! Indicates if the address is current
monthlyRentAmount - NonNegativeInt The monthly rental amount in dollars
moveInDate - Date Move in date
moveOutDate - Date Move out date
residencyBasis - BorrowerResidencyBasis The basis on which the borrower lives/lived at this address
Example
{
  "address": Address,
  "borrower": Borrower,
  "id": 4,
  "isCurrentAddress": false,
  "monthlyRentAmount": 123,
  "moveInDate": "2007-12-03",
  "moveOutDate": "2007-12-03",
  "residencyBasis": "LIVING_RENT_FREE"
}

BorrowerAddressMutations

Fields
Field Name Description
createPrevious - CreatePreviousBorrowerAddressResponse Create borrower's previous address
deletePrevious - DeletePreviousBorrowerAddressResponse Delete borrower's previous address
updateCurrent - UpdateCurrentBorrowerAddressResponse Update borrower's current address
updatePrevious - UpdatePreviousBorrowerAddressResponse Update borrower's previous address
Example
{
  "createPrevious": CreatePreviousBorrowerAddressResponse,
  "deletePrevious": DeletePreviousBorrowerAddressResponse,
  "updateCurrent": UpdateCurrentBorrowerAddressResponse,
  "updatePrevious": UpdatePreviousBorrowerAddressResponse
}

BorrowerBankruptcyBlocker

Description

One or more borrowers have a bankruptcy on record

Fields
Field Name Description
bankruptcyType - BankruptcyType! The type of bankruptcy
borrowerIds - [ID!]! The IDs of borrowers with bankruptcy
type - String!
Example
{
  "bankruptcyType": "BankruptcyChapter7",
  "borrowerIds": [4],
  "type": "xyz789"
}

BorrowerBusiness

Description

A borrower-owned business

Fields
Field Name Description
address - Address US Address
businessType - BusinessType! The type of business
id - ID! Borrower Business ID
name - String! Name
ownerships - [BusinessOwnership!]! Borrower ownerships of the business
Example
{
  "address": Address,
  "businessType": "CORPORATION",
  "id": "4",
  "name": "abc123",
  "ownerships": [BusinessOwnership]
}

BorrowerConnection

Fields
Field Name Description
edges - [BorrowerEdge!]!
pageInfo - PageInfo!
Example
{
  "edges": [BorrowerEdge],
  "pageInfo": PageInfo
}

BorrowerCredit

Description

An individual's credit score

Fields
Field Name Description
bankruptcy - Boolean
creditPullId - ID The ID of the most recent completed credit pull
creditReport - String
creditScores - [CreditScore!]!
frozenBureaus - [CreditBureau!] Bureaus that refused this borrower's credit file because of a security freeze. Empty when the bureaus reported no freeze; null when the latest pull recorded no per-bureau verdict, which readers must render as unknown rather than as no freeze.
lastPulledDate - DateTime
lastStatus - JobStatus
numberOfLatePayments - Int
pullType - CreditPullType!
qualifyingScore - Float
recentLatePayment - String
Example
{
  "bankruptcy": true,
  "creditPullId": 4,
  "creditReport": "abc123",
  "creditScores": [CreditScore],
  "frozenBureaus": ["EQUIFAX"],
  "lastPulledDate": "2007-12-03T10:15:30Z",
  "lastStatus": "FAILED",
  "numberOfLatePayments": 987,
  "pullType": "HARD",
  "qualifyingScore": 123.45,
  "recentLatePayment": "abc123"
}

BorrowerEdge

Fields
Field Name Description
cursor - ID!
node - Borrower!
Example
{
  "cursor": "4",
  "node": Borrower
}

BorrowerEstimatedTotalMonthlyIncome

Description

Borrower estimated total monthly income

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "id": 4,
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": 4
}

BorrowerFinancialDeclarations

Description

Borrower financial declarations

Fields
Field Name Description
bankruptcyChapterType - BankruptcyChapterType The type of bankruptcy filed, if any.
bankruptcyIndicator - Boolean Indicates if the borrower has filed for bankruptcy.
homeownerPastThreeYears - Boolean Indicates if the borrower has been a homeowner in the past three years.
intentToOccupy - Boolean Indicates if the borrower intends to occupy the property.
outstandingJudgmentsIndicator - Boolean Indicates if the borrower has outstanding judgments.
partyToLawsuitIndicator - Boolean Indicates if the borrower is currently a party to a lawsuit.
presentlyDelinquentIndicator - Boolean Indicates if the borrower is presently delinquent on any obligations.
priorPropertyDeedInLieuConveyedIndicator - Boolean Indicates if the borrower has conveyed a prior property deed in lieu of foreclosure.
priorPropertyForeclosureCompletedIndicator - Boolean Indicates if the borrower has completed a prior property foreclosure.
priorPropertyShortSaleCompletedIndicator - Boolean Indicates if the borrower has completed a prior property short sale.
priorPropertyTitleType - PriorPropertyTitleType Indicates the type of title ownership for the borrower's prior property, such as sole ownership or joint ownership.
priorPropertyUsageType - PriorPropertyUsageType Specifies how the borrower's prior property was used, such as primary residence, investment, or second home.
undisclosedComakerOfNoteIndicator - Boolean Indicates if the borrower is an undisclosed co-maker of a note.
undisclosedCreditApplicationIndicator - Boolean Indicates if the borrower has an undisclosed credit application.
undisclosedMortgageApplicationIndicator - Boolean Indicates if the borrower has an undisclosed mortgage application.
Example
{
  "bankruptcyChapterType": "CHAPTER_ELEVEN",
  "bankruptcyIndicator": false,
  "homeownerPastThreeYears": false,
  "intentToOccupy": false,
  "outstandingJudgmentsIndicator": true,
  "partyToLawsuitIndicator": false,
  "presentlyDelinquentIndicator": true,
  "priorPropertyDeedInLieuConveyedIndicator": true,
  "priorPropertyForeclosureCompletedIndicator": true,
  "priorPropertyShortSaleCompletedIndicator": true,
  "priorPropertyTitleType": "JOINT_WITH_OTHER_THAN_SPOUSE",
  "priorPropertyUsageType": "FHA_SECONDARY_RESIDENCE",
  "undisclosedComakerOfNoteIndicator": false,
  "undisclosedCreditApplicationIndicator": true,
  "undisclosedMortgageApplicationIndicator": true
}

BorrowerFinancialDeclarationsInput

Fields
Input Field Description
bankruptcyChapterType - BankruptcyChapterType The type of bankruptcy filed, if any.
bankruptcyIndicator - Boolean Indicates if the borrower has filed for bankruptcy.
homeownerPastThreeYears - Boolean Indicates if the borrower has been a homeowner in the past three years.
intentToOccupy - Boolean Indicates if the borrower intends to occupy the property.
outstandingJudgmentsIndicator - Boolean Indicates if the borrower has outstanding judgments.
partyToLawsuitIndicator - Boolean Indicates if the borrower is currently a party to a lawsuit.
presentlyDelinquentIndicator - Boolean Indicates if the borrower is presently delinquent on any obligations.
priorPropertyDeedInLieuConveyedIndicator - Boolean Indicates if the borrower has conveyed a prior property deed in lieu of foreclosure.
priorPropertyForeclosureCompletedIndicator - Boolean Indicates if the borrower has completed a prior property foreclosure.
priorPropertyShortSaleCompletedIndicator - Boolean Indicates if the borrower has completed a prior property short sale.
priorPropertyTitleType - PriorPropertyTitleType Indicates the type of title ownership for the borrower's prior property, such as sole ownership or joint ownership.
priorPropertyUsageType - PriorPropertyUsageType Specifies how the borrower's prior property was used, such as primary residence, investment, or second home.
undisclosedComakerOfNoteIndicator - Boolean Indicates if the borrower is an undisclosed co-maker of a note.
undisclosedCreditApplicationIndicator - Boolean Indicates if the borrower has an undisclosed credit application.
undisclosedMortgageApplicationIndicator - Boolean Indicates if the borrower has an undisclosed mortgage application.
Example
{
  "bankruptcyChapterType": "CHAPTER_ELEVEN",
  "bankruptcyIndicator": true,
  "homeownerPastThreeYears": false,
  "intentToOccupy": true,
  "outstandingJudgmentsIndicator": false,
  "partyToLawsuitIndicator": false,
  "presentlyDelinquentIndicator": false,
  "priorPropertyDeedInLieuConveyedIndicator": false,
  "priorPropertyForeclosureCompletedIndicator": true,
  "priorPropertyShortSaleCompletedIndicator": false,
  "priorPropertyTitleType": "JOINT_WITH_OTHER_THAN_SPOUSE",
  "priorPropertyUsageType": "FHA_SECONDARY_RESIDENCE",
  "undisclosedComakerOfNoteIndicator": false,
  "undisclosedCreditApplicationIndicator": true,
  "undisclosedMortgageApplicationIndicator": false
}

BorrowerIncome

Description

Borrower income interface. This is for income types that area associated with a single borrower. As opposed to other income types such as RentalIncome which can be associated with multiple borrowers.

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
id - ID! Income ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "id": 4,
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": "4"
}

BorrowerMilitaryService

Description

A borrower's military status

Fields
Field Name Description
militaryServiceExpectedCompletionDate - Date
militaryStatusType - MilitaryStatusType
survivingSpouseIndicator - Boolean
Example
{
  "militaryServiceExpectedCompletionDate": "2007-12-03",
  "militaryStatusType": "ACTIVE_DUTY",
  "survivingSpouseIndicator": true
}

BorrowerMutations

Fields
Field Name Description
attachLiabilities - AttachBorrowerLiabilitiesResponse Attach liabilities to borrower.
attachNonBorrowingSpouse - AttachBorrowerNonBorrowingSpouseResponse Attach non borrowing spouse to borrower.
create - CreateBorrowerResponse Create a borrower. When the customer's autoSendBorrowerPortalInvite comms setting is on, an org-user creation also auto-sends the borrower their portal invite email (best-effort; a send failure never fails the creation).
Arguments
declareMilitaryService - DeclareMilitaryServiceResponse Declare a borrower's military service details.
Arguments
declareNoMilitaryService - DeclareNoMilitaryServiceResponse Declare that a borrower has no military service.
Arguments
delete - DeleteBorrowerResponse Delete a borrower
Arguments
detachLiabilities - DetachBorrowerLiabilitiesResponse Detach liabilities from borrower.
linkBorrowersAsSpouses - LinkBorrowersAsSpousesResponse Link 2 borrowers as spouses of each other
Arguments
rejectDocument - RejectDocumentResponse Reject a document and update its status
Arguments
sendPortalInvite - SendBorrowerPortalInviteResponse Send the borrower their portal invite email carrying a one-time claim link. Gated by the borrower-portal-invite feature flag; each send mints a fresh link that supersedes any prior one.
Arguments
setEmailVerified - SetBorrowerEmailVerifiedResponse
Arguments
unsetMilitaryService - UnsetBorrowerMilitaryServiceResponse Unset a borrower's military service information. Use declareNoMilitaryService instead.
updateBorrower - UpdateBorrowerResponse Update a borrower's information. Supports isFirstTimeHomeBuyer, maritalStatus, and pointOfContact.
Arguments
updateConsent - UpdateBorrowerConsentResponse Update a borrower's consent. Fields with non-null values will be updated, the rest will be ignored.
Arguments
updateDemographicInfo - UpdateDemographicInfoResponse Update a borrower's demographic info. Fields with non-null values will be updated, the rest will be ignored.
Arguments
updateDependents - UpdateBorrowerDependentsResponse Update a borrower's dependents. Fields with non-null values will be updated, the rest will be ignored.
Arguments
updateFinancialDeclarations - UpdateBorrowerFinancialDeclarationsResponse Update a borrower's financial declarations. Fields with non-null values will be updated, the rest will be ignored.
updateMailingAddress - UpdateBorrowerMailingAddressResponse Update a borrower's mailing address. Fields with non-null values will be updated, the rest will be ignored.
updateMilitaryService - UpdateBorrowerMilitaryServiceResponse Update a borrower's military service. Fields with non-null values will be updated, the rest will be ignored. Use declareMilitaryService or declareNoMilitaryService instead.
updatePersonalInformation - UpdateBorrowerPersonalInformationResponse Update a borrower's personal information. Fields with non-null values will be updated, the rest will be ignored.
updatePhoneNumber - UpdateBorrowerPhoneNumberResponse Upsert a borrower's phone number. Creates a new record if the borrower has none, otherwise updates the existing record. Legacy callers may pass id (a phone number id) instead of borrowerId.
updatePropertyDeclarations - UpdateBorrowerPropertyDeclarationsResponse Update a borrower's declarations. Fields with non-null values will be updated, the rest will be ignored.
Example
{
  "attachLiabilities": AttachBorrowerLiabilitiesResponse,
  "attachNonBorrowingSpouse": AttachBorrowerNonBorrowingSpouseResponse,
  "create": CreateBorrowerResponse,
  "declareMilitaryService": DeclareMilitaryServiceResponse,
  "declareNoMilitaryService": DeclareNoMilitaryServiceResponse,
  "delete": DeleteBorrowerResponse,
  "detachLiabilities": DetachBorrowerLiabilitiesResponse,
  "linkBorrowersAsSpouses": LinkBorrowersAsSpousesResponse,
  "rejectDocument": RejectDocumentResponse,
  "sendPortalInvite": SendBorrowerPortalInviteResponse,
  "setEmailVerified": SetBorrowerEmailVerifiedResponse,
  "unsetMilitaryService": UnsetBorrowerMilitaryServiceResponse,
  "updateBorrower": UpdateBorrowerResponse,
  "updateConsent": UpdateBorrowerConsentResponse,
  "updateDemographicInfo": UpdateDemographicInfoResponse,
  "updateDependents": UpdateBorrowerDependentsResponse,
  "updateFinancialDeclarations": UpdateBorrowerFinancialDeclarationsResponse,
  "updateMailingAddress": UpdateBorrowerMailingAddressResponse,
  "updateMilitaryService": UpdateBorrowerMilitaryServiceResponse,
  "updatePersonalInformation": UpdateBorrowerPersonalInformationResponse,
  "updatePhoneNumber": UpdateBorrowerPhoneNumberResponse,
  "updatePropertyDeclarations": UpdateBorrowerPropertyDeclarationsResponse
}

BorrowerPersonalInformation

Description

A borrower's personal information

Fields
Field Name Description
addressHistory - [BorrowerAddress!]! The borrower's address history (current and previous addresses)
aliases - [String!]
citizenshipResidencyType - CitizenshipResidencyType
currentAddress - BorrowerAddress The borrower's current address
dateOfBirth - Date
email - String!
firstName - String!
lastName - String!
middleName - String
phoneNumbers - [BorrowerPhoneNumber!]!
suffix - String
taxIdentifierNumber - String Tax identifier number
taxIdentifierNumberType - TaxIdentifierNumberType Tax identifier number type
Example
{
  "addressHistory": [BorrowerAddress],
  "aliases": ["abc123"],
  "citizenshipResidencyType": "NON_PERMANENT_RESIDENT_ALIEN",
  "currentAddress": BorrowerAddress,
  "dateOfBirth": "2007-12-03",
  "email": "abc123",
  "firstName": "xyz789",
  "lastName": "xyz789",
  "middleName": "abc123",
  "phoneNumbers": [BorrowerPhoneNumber],
  "suffix": "xyz789",
  "taxIdentifierNumber": "xyz789",
  "taxIdentifierNumberType": "INDIVIDUAL_TAXPAYER_IDENTIFICATION_NUMBER"
}

BorrowerPersonalInformationInput

Fields
Input Field Description
aliases - [String!]
citizenshipResidencyType - CitizenshipResidencyType
currentAddress - AddressInput
dateOfBirth - Date
email - String!
firstName - String!
lastName - String!
middleName - String
phoneNumber - CreateBorrowerPhoneNumberInput
socialSecurityNumber - String
suffix - String
taxIdentifierNumber - String Tax identifier number
taxIdentifierNumberType - TaxIdentifierNumberType Tax identifier number type
Example
{
  "aliases": ["abc123"],
  "citizenshipResidencyType": "NON_PERMANENT_RESIDENT_ALIEN",
  "currentAddress": AddressInput,
  "dateOfBirth": "2007-12-03",
  "email": "xyz789",
  "firstName": "xyz789",
  "lastName": "abc123",
  "middleName": "xyz789",
  "phoneNumber": CreateBorrowerPhoneNumberInput,
  "socialSecurityNumber": "abc123",
  "suffix": "abc123",
  "taxIdentifierNumber": "abc123",
  "taxIdentifierNumberType": "INDIVIDUAL_TAXPAYER_IDENTIFICATION_NUMBER"
}

BorrowerPhoneNumber

Description

A US phone number for a borrower

Fields
Field Name Description
id - ID! Phone number id
number - String! Phone Number
type - PhoneNumberType Phone number type
Example
{
  "id": 4,
  "number": "abc123",
  "type": "CELL"
}

BorrowerPreferences

Description

Borrower preferences related to loan applications.

Fields
Field Name Description
applyOutOfPocketToLoan - Boolean Represents if Out Of Pocket cash will be applied to reduce loan cost
closingCosts - NonNegativeFloat The maximum allowable closing costs.
downPaymentAmount - NonNegativeFloat The down payment amount.
maxDiscountPoints - Float Limit number of rate point buys to not exceed this value.
maxLtv - NonNegativeFloat Max loan-to-value ratio allowed. Will not override takeout requirements.
maxOutOfPocket - NonNegativeFloat Out of pocket maximum in dollars.
monthlyPayment - NonNegativeFloat The maximum allowable monthly payment.
monthlyPaymentAsPercentageOfIncome - Boolean! Interpret monthly payment field as a percentage instead of dollar amount.
mortgageInsurance - Boolean Indicates whether mortgage insurance is required.
principal - NonNegativeFloat The maximum allowable principal amount.
rate - NonNegativeFloat The preferred interest rate as a percentage (e.g., 5.0 for 5%).
rollInClosingCosts - Boolean Represents if closing costs will be rolled into loan amount on a ReFi
totalCost - Float The cost of points for the loan.
totalPoints - NonNegativeFloat The number of points required for the loan.
Example
{
  "applyOutOfPocketToLoan": true,
  "closingCosts": 123.45,
  "downPaymentAmount": 123.45,
  "maxDiscountPoints": 123.45,
  "maxLtv": 123.45,
  "maxOutOfPocket": 123.45,
  "monthlyPayment": 123.45,
  "monthlyPaymentAsPercentageOfIncome": true,
  "mortgageInsurance": true,
  "principal": 123.45,
  "rate": 123.45,
  "rollInClosingCosts": true,
  "totalCost": 987.65,
  "totalPoints": 123.45
}

BorrowerPropertyDeclarations

Description

Borrower property declarations

Fields
Field Name Description
otherMortgageOnSubjectPropertyIndicator - Boolean Is there any other mortgage loan on the subject property?
propertySubjectToPriorityLienIndicator - Boolean Flag to indicate whether realtor tasks are complete on this loan
specialBorrowerSellerRelationshipIndicator - Boolean Flag to indicate whether realtor tasks are complete on this loan
undisclosedBorrowedFundsAmount - Float Flag to indicate whether realtor tasks are complete on this loan
undisclosedBorrowedFundsIndicator - Boolean Flag to indicate whether realtor tasks are complete on this loan
Example
{
  "otherMortgageOnSubjectPropertyIndicator": true,
  "propertySubjectToPriorityLienIndicator": true,
  "specialBorrowerSellerRelationshipIndicator": false,
  "undisclosedBorrowedFundsAmount": 123.45,
  "undisclosedBorrowedFundsIndicator": true
}

BorrowerPropertyDeclarationsInput

Fields
Input Field Description
otherMortgageOnSubjectPropertyIndicator - Boolean Is there any other mortgage loan on the subject property?
propertySubjectToPriorityLienIndicator - Boolean Flag to indicate whether realtor tasks are complete on this loan
specialBorrowerSellerRelationshipIndicator - Boolean Flag to indicate whether realtor tasks are complete on this loan
undisclosedBorrowedFundsAmount - Float Flag to indicate whether realtor tasks are complete on this loan
undisclosedBorrowedFundsIndicator - Boolean Flag to indicate whether realtor tasks are complete on this loan
Example
{
  "otherMortgageOnSubjectPropertyIndicator": false,
  "propertySubjectToPriorityLienIndicator": true,
  "specialBorrowerSellerRelationshipIndicator": false,
  "undisclosedBorrowedFundsAmount": 987.65,
  "undisclosedBorrowedFundsIndicator": true
}

BorrowerResidencyBasis

Values
Enum Value Description

LIVING_RENT_FREE

OWN

RENT

UNKNOWN

Example
"LIVING_RENT_FREE"

BorrowerSpouse

Description

A borrower's spouse

Fields
Field Name Description
id - ID!
personalInformation - BorrowerPersonalInformation
Example
{
  "id": "4",
  "personalInformation": BorrowerPersonalInformation
}

BorrowerTask

Description

A borrower's task

Fields
Field Name Description
accessToken - String Access token for SSO PDF viewer or any third-party access, if applicable.
borrowerFacingDescription - String
borrowerId - ID!
completedAt - DateTime
createdOn - DateTime
details - TaskEntityDetails Details about the entity this task is associated with Use relatedEntity instead, which resolves the associated entity as a Node whose own fields (including borrower and display name) can be queried directly.
documentLinks - [DocumentLink!]!
documentUploadPath - String
dueDate - DateTime
fields - [String!]
id - ID!
note - String
priority - Float
relatedEntity - Node The entity this task is about (e.g. the Asset for a bank-statement upload task, or the AssetTransaction for a large-deposit task), resolvable as a Node. Prefer this over the deprecated details field.
relatedEntityId - String Related entity ID (e.g., assetTransactionId for large deposit tasks) Use relatedEntity { id } instead — relatedEntity resolves the entity itself (its id plus all its other fields) in one query.
reopenedAt - DateTime When the task was most recently reopened after having been completed or cancelled. Null if the task has never been reopened.
requiredFor1003Form - Boolean
status - String!
title - String
type - String!
Example
{
  "accessToken": "xyz789",
  "borrowerFacingDescription": "abc123",
  "borrowerId": 4,
  "completedAt": "2007-12-03T10:15:30Z",
  "createdOn": "2007-12-03T10:15:30Z",
  "details": TaskEntityDetails,
  "documentLinks": [DocumentLink],
  "documentUploadPath": "xyz789",
  "dueDate": "2007-12-03T10:15:30Z",
  "fields": ["xyz789"],
  "id": "4",
  "note": "abc123",
  "priority": 987.65,
  "relatedEntity": Node,
  "relatedEntityId": "xyz789",
  "reopenedAt": "2007-12-03T10:15:30Z",
  "requiredFor1003Form": true,
  "status": "abc123",
  "title": "abc123",
  "type": "abc123"
}

BorrowerUser

Description

Borrower user object

Fields
Field Name Description
id - ID!
loanApplications - [BorrowerUserLoanApplicationSummary!]!
Example
{
  "id": "4",
  "loanApplications": [BorrowerUserLoanApplicationSummary]
}

BorrowerUserLoanApplicationSummary

Description

Borrower user object

Fields
Field Name Description
archiveDate - Date
creationDate - Date!
currentStage - String
friendlyId - ID!
id - ID!
submitted - Boolean!
Example
{
  "archiveDate": "2007-12-03",
  "creationDate": "2007-12-03",
  "currentStage": "abc123",
  "friendlyId": 4,
  "id": "4",
  "submitted": false
}

BrandingLogoExtension

Description

File type of a branding logo asset.

Values
Enum Value Description

PNG

SVG

Example
"PNG"

BrandingLogoUpload

Description

A target for uploading a branding logo.

Fields
Field Name Description
expiresAt - String! When the upload slot expires if unused (ISO-8601). Slots are single-use.
uploadId - ID! Id of the minted upload slot.
uploadUrl - String! URL to POST the file to as multipart/form-data (a single "files" field), authenticated the same way as this request.
Example
{
  "expiresAt": "abc123",
  "uploadId": 4,
  "uploadUrl": "xyz789"
}

BridgeLoanNotDepositedAsset

Description

Bridge loan not deposited asset

Fields
Field Name Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt! The cash or market value of the asset in dollars
assetReportId - ID ID of the latest asset report that verified this asset
borrowerIds - [ID!] Ids of borrowers that are account holders on this asset
id - ID! Node ID
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
notableActivities - [FinancialAccountActivity!]! Notable activities
qualifiedAmount - NonNegativeInt The qualified amount of the asset in dollars, used for underwriting. Null if no qualification has been computed.
verifiedAmount - NonNegativeInt The verified cash or market value of the asset in dollars, confirmed by a third-party source
Example
{
  "accountIdentifier": "abc123",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "assetReportId": "4",
  "borrowerIds": [4],
  "id": 4,
  "institutionName": "xyz789",
  "nonBorrowerOwnerNames": ["abc123"],
  "notableActivities": [FinancialAccountActivity],
  "qualifiedAmount": 123,
  "verifiedAmount": 123
}

BulkLoanDocumentsExportFailureReason

Values
Enum Value Description

BULK_EXPORT_SIZE_LIMIT_EXCEEDED

EXPORT_FILE_MISSING

MISSING_FILENAME

MISSING_S3_FILE_ID

NO_ELIGIBLE_DOCUMENTS

S3_DOWNLOAD_FAILED

S3_UPLOAD_FAILED

SOURCE_OBJECT_NOT_FOUND

WORKFLOW_START_FAILED

WORKFLOW_TIMEOUT_OR_CANCELLATION

ZIP_CREATION_FAILED

Example
"BULK_EXPORT_SIZE_LIMIT_EXCEEDED"

BulkLoanDocumentsExportJob

Description

Bulk loan documents export job.

Fields
Field Name Description
completedAt - DateTime When the export finished processing.
documentCount - NonNegativeInt Number of loan documents included in the export.
downloadUrl - String A temporary URL for downloading the generated ZIP file. Present only when the job succeeded and the object still exists.
failureReason - BulkLoanDocumentsExportFailureReason Machine-readable failure reason when the export failed.
id - ID! Job ID
status - JobStatus! Job status
zipSizeBytes - NonNegativeInt Generated ZIP file size in bytes.
Example
{
  "completedAt": "2007-12-03T10:15:30Z",
  "documentCount": 123,
  "downloadUrl": "xyz789",
  "failureReason": "BULK_EXPORT_SIZE_LIMIT_EXCEEDED",
  "id": "4",
  "status": "FAILED",
  "zipSizeBytes": 123
}

BureauFileStatus

Description

Per-bureau file status from a credit pull

Fields
Field Name Description
bureau - String! Bureau name
errorMessages - [String!]! Error messages from the bureau (may be empty)
fileReturned - Boolean! Whether the bureau successfully returned a credit file
message - String LO-friendly error message (null when fileReturned is true)
resultStatus - String! MISMO CreditFileResultStatusType enum value
variations - [String!]! Demographic discrepancy flags (e.g. DifferentAddress, DifferentSSN)
Example
{
  "bureau": "abc123",
  "errorMessages": ["xyz789"],
  "fileReturned": true,
  "message": "xyz789",
  "resultStatus": "abc123",
  "variations": ["abc123"]
}

BusinessOwnership

Fields
Field Name Description
borrower - Borrower! The borrower that owns a percentage of the business
business - BorrowerBusiness! The borrower business
percentOwnership - NonNegativeFloat! Percent of the business that the borrower owns. This field is expressed as a percent. As an example, 50.1% is expressed as 50.1.
Example
{
  "borrower": Borrower,
  "business": BorrowerBusiness,
  "percentOwnership": 123.45
}

BusinessType

Description

The type of business

Values
Enum Value Description

CORPORATION

LIMITED_PARTNERSHIP

LLC

PARTNERSHIP

UNSPECIFIED

Example
"CORPORATION"

CalculateOptimalStructureInput

Fields
Input Field Description
loanId - ID! The ID of the loan to base calculations off of.
objectiveIntent - PricingObjectiveIntent Configure the objective function to optimize against. Default = MIN_PITIA
pricingConstraints - PricingConstraints Configure constraints to run pricing under. Uses the BorrowerPreferences associated with a loan as a fallback if unset.
Example
{
  "loanId": "4",
  "objectiveIntent": "MIN_DOWN_PAYMENT",
  "pricingConstraints": PricingConstraints
}

CalculateOptimalStructureResponse

Fields
Field Name Description
job - OptimalStructure!
Example
{"job": OptimalStructure}

CancelFloodInput

Description

Input for cancelling a flood determination order.

Fields
Input Field Description
floodOrderId - ID! ID of the flood order to cancel.
Example
{"floodOrderId": 4}

CancelFloodResponse

Description

Response from cancelling a flood determination order.

Fields
Field Name Description
floodOrder - FloodOrder! The flood order being cancelled.
Example
{"floodOrder": FloodOrder}

CancelOrderInput

Description

Input for cancelling an income verification order.

Fields
Input Field Description
orderId - ID! ID of the income verification order to cancel.
Example
{"orderId": 4}

CancelOrderResponse

Description

Response from cancelling an income verification order.

Fields
Field Name Description
orderId - ID! ID of the cancelled income verification order.
status - IncomeVerificationOrderStatus! Current status of the income verification order.
Example
{"orderId": 4, "status": "CANCELED"}

CapitalGainsIncome

Description

Capital gains income

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "id": "4",
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": "4"
}

CashOnHandAsset

Description

Cash on hand asset

Fields
Field Name Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt! The cash or market value of the asset in dollars
assetReportId - ID ID of the latest asset report that verified this asset
borrowerIds - [ID!] Ids of borrowers that are account holders on this asset
id - ID! Node ID
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
notableActivities - [FinancialAccountActivity!]! Notable activities
qualifiedAmount - NonNegativeInt The qualified amount of the asset in dollars, used for underwriting. Null if no qualification has been computed.
verifiedAmount - NonNegativeInt The verified cash or market value of the asset in dollars, confirmed by a third-party source
Example
{
  "accountIdentifier": "xyz789",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "assetReportId": 4,
  "borrowerIds": ["4"],
  "id": "4",
  "institutionName": "xyz789",
  "nonBorrowerOwnerNames": ["xyz789"],
  "notableActivities": [FinancialAccountActivity],
  "qualifiedAmount": 123,
  "verifiedAmount": 123
}

CashOutTypeComparator

Description

Comparisons available on the cash-out type.

Fields
Input Field Description
eq - RefinanceCashOutType
in - [RefinanceCashOutType!]
isNull - Boolean
neq - RefinanceCashOutType
nin - [RefinanceCashOutType!]
null - Boolean
Example
{
  "eq": "CASH_OUT",
  "in": ["CASH_OUT"],
  "isNull": true,
  "neq": "CASH_OUT",
  "nin": ["CASH_OUT"],
  "null": false
}

CertificateOfDepositTimeDepositAsset

Description

Certificate of deposit or time deposit asset

Fields
Field Name Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt! The cash or market value of the asset in dollars
assetReportId - ID ID of the latest asset report that verified this asset
borrowerIds - [ID!] Ids of borrowers that are account holders on this asset
id - ID! Node ID
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
notableActivities - [FinancialAccountActivity!]! Notable activities
qualifiedAmount - NonNegativeInt The qualified amount of the asset in dollars, used for underwriting. Null if no qualification has been computed.
verifiedAmount - NonNegativeInt The verified cash or market value of the asset in dollars, confirmed by a third-party source
Example
{
  "accountIdentifier": "abc123",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "assetReportId": 4,
  "borrowerIds": [4],
  "id": 4,
  "institutionName": "xyz789",
  "nonBorrowerOwnerNames": ["abc123"],
  "notableActivities": [FinancialAccountActivity],
  "qualifiedAmount": 123,
  "verifiedAmount": 123
}

ChangeOfCircumstanceForm

Description

A Change of Circumstances Request Form as it was filed on the loan.

Fields
Field Name Description
id - ID!
Example
{"id": 4}

ChangeOfCircumstanceReason

Description

TRID's changed-circumstance categories (§1026.19(e)(3)(iv)) — the justifications that permit resetting a fee's tolerance baseline. Pylon's own vocabulary rather than a passthrough of any downstream system's spelling.

Values
Enum Value Description

CHANGED_CIRCUMSTANCE_AFFECTING_ELIGIBILITY

CHANGED_CIRCUMSTANCE_AFFECTING_SETTLEMENT_CHARGES

DELAYED_SETTLEMENT_DATE_ON_CONSTRUCTION_LOAN

EXPIRATION_OF_INITIAL_LOAN_ESTIMATE

INTEREST_RATE_DEPENDENT_CHARGES

OTHER

REVISIONS_REQUESTED_BY_CONSUMER

Example
"CHANGED_CIRCUMSTANCE_AFFECTING_ELIGIBILITY"

ChangeOfCircumstanceRequest

Description

The §1026.19(e)(3)(iv) justification a redisclosure was sent under.

Fields
Field Name Description
id - ID!
Example
{"id": 4}

CheckingAccountAsset

Description

Checking account asset

Fields
Field Name Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt! The cash or market value of the asset in dollars
assetReportId - ID ID of the latest asset report that verified this asset
borrowerIds - [ID!] Ids of borrowers that are account holders on this asset
id - ID! Node ID
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
notableActivities - [FinancialAccountActivity!]! Notable activities
qualifiedAmount - NonNegativeInt The qualified amount of the asset in dollars, used for underwriting. Null if no qualification has been computed.
verifiedAmount - NonNegativeInt The verified cash or market value of the asset in dollars, confirmed by a third-party source
Example
{
  "accountIdentifier": "xyz789",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "assetReportId": "4",
  "borrowerIds": [4],
  "id": 4,
  "institutionName": "xyz789",
  "nonBorrowerOwnerNames": ["abc123"],
  "notableActivities": [FinancialAccountActivity],
  "qualifiedAmount": 123,
  "verifiedAmount": 123
}

ChildSupportIncome

Description

Child support income

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "id": 4,
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": 4
}

Citation

Description

A context-free anchor into a file: geometry and/or text, plus meaning. Citations never reference a requirement — purpose lives on the citing evidence.

Fields
Field Name Description
asOf - DateTimeISO When the observed fact was true (statement date, balance as-of) — the freshness anchor.
author - Contributor! WHO authored this citation — always a Contributor, resolved from the writing context, never client-supplied. (The spec's AnyContributor interface stands in as the concrete Contributor type until the attribution project ships it.)
document - LoanDocument! The document this citation anchors into.
fieldKey - String Namespaced fact-taxonomy or doc-schema key; null = freehand annotation.
id - ID! Stable identifier for this citation, resolvable via the root node(id) query.
label - String What the cited region means (e.g. "Dwelling coverage amount").
ocrConfidence - Float Measured OCR signal — legitimately numeric, never LLM-invented.
page - PositiveInt 1-based page number; null = text-only citation.
pageHeight - Float
pageWidth - Float
polygon - [PagePoint!] Region outline in scale-1 pdf.js page units, y-down; null = textual/whole-document.
quotedText - String What the cited region says.
value - JSONObject Optional typed value the region evidences.
Example
{
  "asOf": "2007-12-03T10:15:30Z",
  "author": Contributor,
  "document": LoanDocument,
  "fieldKey": "xyz789",
  "id": 4,
  "label": "abc123",
  "ocrConfidence": 123.45,
  "page": 123,
  "pageHeight": 987.65,
  "pageWidth": 987.65,
  "polygon": [PagePoint],
  "quotedText": "xyz789",
  "value": {}
}

CitationConnection

Description

A page of citation rows anchored into a document.

Fields
Field Name Description
edges - [CitationEdge!]!
pageInfo - PageInfo!
Example
{
  "edges": [CitationEdge],
  "pageInfo": PageInfo
}

CitationEdge

Fields
Field Name Description
cursor - ID!
node - Citation!
Example
{"cursor": 4, "node": Citation}

CitationsFilterInput

Description

Optional filters for a document's citations. The facts-decomposition pass writes an observation citation per extracted fact, so a long document can carry hundreds of rows; overlays should fetch only the visible page / focused field keys.

Fields
Input Field Description
fieldKey - String Only citations whose fieldKey equals this key.
page - PositiveInt Only citations anchored on this 1-based page.
Example
{"fieldKey": "abc123", "page": 123}

CitationsMutations

Description

Citation mutations namespace.

Fields
Field Name Description
createCitation - CreateCitationResponse Persists a citation drawn by an underwriter and returns it typed.
Arguments
Example
{"createCitation": CreateCitationResponse}

CitizenshipResidencyType

Description

An individual's US citizenship status

Values
Enum Value Description

NON_PERMANENT_RESIDENT_ALIEN

NON_RESIDENT_ALIEN

PERMANENT_RESIDENT_ALIEN

US_CITIZEN

Example
"NON_PERMANENT_RESIDENT_ALIEN"

ClaimDealClaimTokenInput

Description

Input to the claimDealClaimToken mutation.

Fields
Input Field Description
token - String! The raw claim token the borrower received
Example
{"token": "xyz789"}

ClaimDealClaimTokenResponse

Description

Result of a borrower claiming a one-time deal claim token

Fields
Field Name Description
dealId - ID! Deal the claiming borrower now has access to
newlyClaimed - Boolean! True when this call performed the claim; false when it was an idempotent no-op (the same borrower had already claimed it).
Example
{"dealId": 4, "newlyClaimed": true}

ClosingCostPayer

Values
Enum Value Description

BORROWER

LENDER

SELLER

Example
"BORROWER"

CommissionsIncome

Description

Commission-based income

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
employmentId - ID The employment this income is associated with
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "employmentId": 4,
  "id": 4,
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": "4"
}

CommsMutations

Fields
Field Name Description
toggleCustomerCommsOptIn - ToggleCustomerCommsOptInResponse Toggle customer comms opt-in status for the current organization
Arguments
updateCommsRecipients - UpdateCommsRecipientsResponse Update which role types receive a communication
Arguments
updateCommsSettings - UpdateCommsSettingsResponse Update the comms settings for the current organization
Arguments
updateCommsTemplate - UpdateCommsTemplateResponse Update comms template
Arguments
Example
{
  "toggleCustomerCommsOptIn": ToggleCustomerCommsOptInResponse,
  "updateCommsRecipients": UpdateCommsRecipientsResponse,
  "updateCommsSettings": UpdateCommsSettingsResponse,
  "updateCommsTemplate": UpdateCommsTemplateResponse
}

CommsRecipient

Description

Role types that can receive communications

Values
Enum Value Description

BORROWER

DEFAULT_CUSTOMER_CONTACT

LOAN_OFFICER

LOAN_OFFICER_ASSISTANT

PROCESSOR

THIRD_PARTY_PROCESSOR

Example
"BORROWER"

CommsSettings

Fields
Field Name Description
autoSendBorrowerPortalInvite - Boolean! When on, creating a borrower or co-borrower in Command Center also emails that borrower their portal invite. Off by default, and the only gate on that auto-send — the borrower-portal-invite feature flag governs the explicit borrower.sendPortalInvite mutation, not this.
customerId - ID!
Example
{
  "autoSendBorrowerPortalInvite": false,
  "customerId": "4"
}

CommsTemplate

Fields
Field Name Description
id - ID! The ID of comms template
name - String! Name of the comms template
recipients - [CommsRecipient!]! Role types that receive this communication
subject - String! Subject line of comms
template - String! Comms template
Example
{
  "id": 4,
  "name": "xyz789",
  "recipients": ["BORROWER"],
  "subject": "xyz789",
  "template": "abc123"
}

CommsWithOptInStatus

Fields
Field Name Description
commsId - ID!
commsName - String!
isOptedIn - Boolean!
Example
{
  "commsId": 4,
  "commsName": "abc123",
  "isOptedIn": true
}

Company

Description

Company

Fields
Field Name Description
businessType - BusinessType Business type
id - ID! The ID of the Company
name - String Company name
Example
{
  "businessType": "CORPORATION",
  "id": 4,
  "name": "xyz789"
}

CompanyMutations

Description

Company mutations

Fields
Field Name Description
create - CreateCompanyResponse Create a company
Arguments
Example
{"create": CreateCompanyResponse}

CompositeFulfillment

Description

A fulfillment path composed of sub-requirements. Satisfied when every child is resolved, either by satisfaction or waiver.

Fields
Field Name Description
description - String! What this path involves.
name - String! Short name for this path, e.g. "Complete all checks".
requirements - [Requirement!]! Child requirements, each with its own phase. A partially-satisfied composite lists SatisfiedRequirement children alongside OpenRequirement ones.
satisfied - Boolean! Whether every child requirement is resolved, either by satisfaction or waiver.
Example
{
  "description": "xyz789",
  "name": "xyz789",
  "requirements": [Requirement],
  "satisfied": true
}

Concession

Fields
Field Name Description
amount - NonNegativeInt
approvedAt - DateTime
approvedBy - String
id - ID!
loanId - ID
reason - String
requestedAt - DateTime
requestedBy - String
revocationReason - ConcessionRevocationReason
revokedAt - DateTime
revokedBy - String
Example
{
  "amount": 123,
  "approvedAt": "2007-12-03T10:15:30Z",
  "approvedBy": "xyz789",
  "id": "4",
  "loanId": 4,
  "reason": "abc123",
  "requestedAt": "2007-12-03T10:15:30Z",
  "requestedBy": "xyz789",
  "revocationReason": "BETTER_LOAN_STRUCTURE",
  "revokedAt": "2007-12-03T10:15:30Z",
  "revokedBy": "xyz789"
}

ConcessionExceedsCompensationViolation

Description

The concession exceeds the lender-paid compensation available after the underwriting fee, so the loan would fund at negative net revenue.

Fields
Field Name Description
concessionReductionNeeded - Float! Dollars by which the concession must be reduced so that lender-paid compensation still covers the underwriting fee.
Example
{"concessionReductionNeeded": 987.65}

ConcessionLog

Fields
Field Name Description
amount - NonNegativeInt
approvedAt - DateTime
approvedBy - String
history - [ConcessionLogItem!]
id - ID!
loanId - ID
reason - String
requestedAt - DateTime
requestedBy - String
revocationReason - ConcessionRevocationReason
revokedAt - DateTime
revokedBy - String
Example
{
  "amount": 123,
  "approvedAt": "2007-12-03T10:15:30Z",
  "approvedBy": "xyz789",
  "history": [ConcessionLogItem],
  "id": 4,
  "loanId": 4,
  "reason": "xyz789",
  "requestedAt": "2007-12-03T10:15:30Z",
  "requestedBy": "xyz789",
  "revocationReason": "BETTER_LOAN_STRUCTURE",
  "revokedAt": "2007-12-03T10:15:30Z",
  "revokedBy": "abc123"
}

ConcessionLogItem

Fields
Field Name Description
amount - NonNegativeInt
approvedAt - DateTime
approvedBy - String
reason - String
requestedAt - DateTime
requestedBy - String
revocationReason - ConcessionRevocationReason
revokedAt - DateTime
revokedBy - String
Example
{
  "amount": 123,
  "approvedAt": "2007-12-03T10:15:30Z",
  "approvedBy": "xyz789",
  "reason": "abc123",
  "requestedAt": "2007-12-03T10:15:30Z",
  "requestedBy": "abc123",
  "revocationReason": "BETTER_LOAN_STRUCTURE",
  "revokedAt": "2007-12-03T10:15:30Z",
  "revokedBy": "xyz789"
}

ConcessionMutations

Fields
Field Name Description
approveConcession - ApproveConcessionResponse
Arguments
requestConcession - RequestConcessionResponse
Arguments
revokeConcession - RevokeConcessionResponse
Arguments
updateConcession - UpdateConcessionResponse
Arguments
Example
{
  "approveConcession": ApproveConcessionResponse,
  "requestConcession": RequestConcessionResponse,
  "revokeConcession": RevokeConcessionResponse,
  "updateConcession": UpdateConcessionResponse
}

ConcessionRevocationReason

Values
Enum Value Description

BETTER_LOAN_STRUCTURE

MISTAKE

Example
"BETTER_LOAN_STRUCTURE"

ConfidenceLevel

Description

Ordinal author confidence in an assertion: CERTAIN, HIGH, MODERATE, LOW.

Values
Enum Value Description

CERTAIN

HIGH

LOW

MODERATE

Example
"CERTAIN"

ConfirmAssessmentInput

Fields
Input Field Description
assertionId - ID! The assertion edge being confirmed (an evid_… id).
reasoning - String Optional endorsement note. Defaults to a standard confirmation text.
Example
{
  "assertionId": "4",
  "reasoning": "xyz789"
}

ConfirmAssessmentResponse

Description

Result of confirming an assessment.

Fields
Field Name Description
evidenceId - ID! The endorsement assertion's content-addressed edge id. A re-confirm of the same target by the same author returns the same id (no-op).
requirement - Requirement The affected requirement's post-reconcile subtree (adversarial-review ruling 2): every review mutation reconciles inline, so the caller can render the new phase without a refetch. Null when the requirement row no longer exists (evicted or not yet minted).
warnings - [UnderwritingReviewWarning!]! Non-fatal warnings about the write. Empty on a clean write.
Example
{
  "evidenceId": 4,
  "requirement": Requirement,
  "warnings": ["TARGET_SUPERSEDED"]
}

ConfirmRateLockInput

Description

Input to the confirmRateLock mutation.

Fields
Input Field Description
loanId - ID! The ID or friendly ID of the loan.
overrideExistingRateLock - Boolean Proceed even though the loan's rate is already locked, replacing the terms the borrower was locked at. Allowed with the process:committed-rate-lock scope, or, for customers with automatic redisclosure enabled, on a loan that is not frozen (Loan.isFrozen is false). A replacement obliges the borrower a revised Loan Estimate, which is raised with the disclosure desk before the new lock commits; for those customers, a confirmation whose disclosed terms are unchanged leaves the existing lock in place instead (see ConfirmRateLockResponse.lockUnchanged). Applies only to a loan that already carries a lock; sending it for a loan's first lock is rejected, since there are no committed terms to replace.
overrideIneligibility - Boolean If set to true, this mutation ignores the ineligibility status of the chosen rate and allows it to be locked. Only available to internal Pylon admins.
Example
{"loanId": 4, "overrideExistingRateLock": true, "overrideIneligibility": true}

ConfirmRateLockResponse

Description

Response of the confirmRateLock mutation.

Fields
Field Name Description
changeOfCircumstanceTicketId - ID The support ticket opened for the revised Loan Estimate this lock owes the borrower, when the lock was a change of circumstance — either locking a floated loan, or replacing a committed lock. Null when nothing already disclosed changed, so no revised estimate is due. Present only once the ticket exists: the lock is refused if it cannot be opened.
loanId - ID! The ID or friendly ID of the loan.
lockUnchanged - Boolean! True when a committed lock's replacement was confirmed against terms identical to what was last disclosed, so the existing lock, its expiration and its disclosures were left in place and no change of circumstance was raised. Only for customers with automatic redisclosure enabled; always false otherwise, and for a loan's first lock.
Example
{
  "changeOfCircumstanceTicketId": "4",
  "loanId": 4,
  "lockUnchanged": true
}

ConformingMarketingRate

Description

Conforming marketing rate

Fields
Field Name Description
apr - Float!
discountPointsTotal - Float!
discountPointsTotalAmount - Int!
fipsCountyCode - String!
loanAmount - NonNegativeInt!
ltv - Float!
propertyUsageType - PropertyUsageType!
qualifyingFicoScore - Int!
rate - Float!
salesContractAmount - NonNegativeInt! The amount of money that the property will be purchased for. Also called the purchase price.
Example
{
  "apr": 987.65,
  "discountPointsTotal": 987.65,
  "discountPointsTotalAmount": 987,
  "fipsCountyCode": "abc123",
  "loanAmount": 123,
  "ltv": 123.45,
  "propertyUsageType": "INVESTMENT",
  "qualifyingFicoScore": 987,
  "rate": 987.65,
  "salesContractAmount": 123
}

ConformingMarketingRateInput

Description

Conforming marketing rate input

Fields
Input Field Description
calculateApr - Boolean Should closing costs be fetched in order to calculate an APR?. Default = true
concessions - NonNegativeInt Lender concession in dollars. Reduces the rate cost (points) the borrower would otherwise pay, but never below zero. Default = 0
fipsCountyCode - String! The five-digit FIPS county code based on ANSI standard (INCITS 31:2009)
loanAmount - NonNegativeInt! Amount of the loan in dollars, also called principal
loanTermYears - Float! Loan term, in years. Default = 30
ltv - Float! Loan to value ratio. Lower values get better rates. A typical value for a conforming conventional loan would be 0.8; values over that usually require mortgage insurance.
maxDiscountPointsTotal - Float Maximum total discount points. Default = 0
propertyUsageType - PropertyUsageType
qualifyingFicoScore - Int FICO score used to determine loan eligibility and interest rate
rateLockDays - Float! How long to lock the rate, in days. Default = 30
Example
{
  "calculateApr": false,
  "concessions": 123,
  "fipsCountyCode": "abc123",
  "loanAmount": 123,
  "loanTermYears": 987.65,
  "ltv": 987.65,
  "maxDiscountPointsTotal": 987.65,
  "propertyUsageType": "INVESTMENT",
  "qualifyingFicoScore": 123,
  "rateLockDays": 123.45
}

Contact

Description

Represents a contact entity with details like name, email, phone, company, address, and role.

Fields
Field Name Description
address - Address Address of the contact
companyLicenseNumber - String License number of the company the contact represents
companyLicenseState - StateAbbreviated State where the company's license was issued
companyName - String Company which the contact is from
email - String Email address of the contact
firstName - String First name of the contact
hazardInsuranceCoverage - HazardInsuranceCoverageType Coverage provided by a hazard insurer
id - ID! id of the contact
individualLicenseNumber - String Professional license number of the individual contact
individualLicenseState - StateAbbreviated State where the individual's professional license was issued
lastName - String Last name of the contact
middleName - String Middle name of the contact
phoneNumber - String Phone number of the contact
role - ContactRole Role of the contact
Example
{
  "address": Address,
  "companyLicenseNumber": "abc123",
  "companyLicenseState": "AK",
  "companyName": "xyz789",
  "email": "abc123",
  "firstName": "abc123",
  "hazardInsuranceCoverage": "EARTHQUAKE",
  "id": "4",
  "individualLicenseNumber": "abc123",
  "individualLicenseState": "AK",
  "lastName": "abc123",
  "middleName": "abc123",
  "phoneNumber": "xyz789",
  "role": "APPRAISER"
}

ContactRole

Description

Role of the contact in the context of a loan application.

Values
Enum Value Description

APPRAISER

ATTORNEY

BORROWER

BUYER_AGENT

FULFILLMENT_PARTY

HAZARD_INSURANCE_AGENT

HOMEOWNERS_ASSOCIATION

LISTING_AGENT

MANAGEMENT_COMPANY

NON_TITLE_SPOUSE

PROPERTY_SELLER

REAL_ESTATE_AGENT

SERVICER

TITLE_COMPANY

Example
"APPRAISER"

ContractBasisIncome

Description

Contract-based employment income

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "id": "4",
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": "4"
}

Contributor

Fields
Field Name Description
contactInfo - ContributorContactInfo!
deals - DealConnection
Arguments
after - String

A cursor value that indicates the position after which items should be returned. Typically this should be the 'endCursor' of the previous page.

before - String

A cursor value that indicates the position before which items should be returned. Typically this should be the 'startCursor' of the following page.

first - Int

The number of items to be retrieved for forward pagination. Either 'first' or 'last' must be specified, but not both. This value must be between 1 and 500.

last - Int

The number of items to be retrieved for backward pagination. Either 'first' or 'last' must be specified, but not both. This value must be between 1 and 500.

sortDirection - SortDirection

The direction in which the results should be sorted. Defaults to ASC.

disabledAt - DateTime
displayName - String!
id - ID!
role - String!
roleId - ID!
Example
{
  "contactInfo": ContributorContactInfo,
  "deals": DealConnection,
  "disabledAt": "2007-12-03T10:15:30Z",
  "displayName": "abc123",
  "id": 4,
  "role": "abc123",
  "roleId": "4"
}

ContributorConnection

Fields
Field Name Description
edges - [ContributorEdge!]!
pageInfo - PageInfo!
Example
{
  "edges": [ContributorEdge],
  "pageInfo": PageInfo
}

ContributorContactInfo

Fields
Field Name Description
email - String!
firstName - String!
lastName - String!
phone - String
Example
{
  "email": "abc123",
  "firstName": "abc123",
  "lastName": "abc123",
  "phone": "xyz789"
}

ContributorCreateLeaseInput

Description

Input to create a contributor lease

Fields
Input Field Description
contributorId - ID!
Example
{"contributorId": 4}

ContributorCreateLeaseResponse

Description

Contributor lease response

Fields
Field Name Description
lease - ContributorLease Lease that was created
Example
{"lease": ContributorLease}

ContributorEdge

Fields
Field Name Description
cursor - ID!
node - Contributor!
Example
{
  "cursor": "4",
  "node": Contributor
}

ContributorFilter

Fields
Input Field Description
email - String
Example
{"email": "abc123"}

ContributorLease

Description

Contributor lease

Fields
Field Name Description
apiUrl - String! URL of the Pylon API the lease is valid for
id - ID! ID of the lease
Example
{
  "apiUrl": "xyz789",
  "id": "4"
}

ContributorMutations

Fields
Field Name Description
attachContributorToDeal - AttachContributorToDealResponse
Arguments
createContributor - CreateContributorResponse
Arguments
createLease - ContributorCreateLeaseResponse
Arguments
detachContributorFromDeal - DetachContributorFromDealResponse
disableContributor - DisableContributorResponse
Arguments
enableContributor - EnableContributorResponse
Arguments
updateContributor - UpdateContributorResponse
Arguments
Example
{
  "attachContributorToDeal": AttachContributorToDealResponse,
  "createContributor": CreateContributorResponse,
  "createLease": ContributorCreateLeaseResponse,
  "detachContributorFromDeal": DetachContributorFromDealResponse,
  "disableContributor": DisableContributorResponse,
  "enableContributor": EnableContributorResponse,
  "updateContributor": UpdateContributorResponse
}

ContributorRole

Fields
Field Name Description
id - ID!
name - String!
Example
{"id": 4, "name": "xyz789"}

ContributorRoleConnection

Fields
Field Name Description
edges - [ContributorRoleEdge!]!
pageInfo - PageInfo!
Example
{
  "edges": [ContributorRoleEdge],
  "pageInfo": PageInfo
}

ContributorRoleEdge

Fields
Field Name Description
cursor - ID!
node - ContributorRole!
Example
{"cursor": 4, "node": ContributorRole}

ContributorSource

Values
Enum Value Description

COMMAND_CENTER

ELEMENTS

MORTGAGE_PORTAL

Example
"COMMAND_CENTER"

ConventionalPreQualification

Fields
Field Name Description
id - ID! Job ID
parameters - ConventionalPreQualificationParameters!
productBreakdown - [PreQualificationProductResult!]!
result - PreQualificationBestEligibleResult
status - JobStatus! Job status
Example
{
  "id": 4,
  "parameters": ConventionalPreQualificationParameters,
  "productBreakdown": [PreQualificationProductResult],
  "result": PreQualificationBestEligibleResult,
  "status": "FAILED"
}

ConventionalPreQualificationInput

Fields
Input Field Description
fipsCountyCode - String!
hoaDues - NonNegativeInt
maxDiscountPointsTotal - Float
neighborhoodHousingType - NeighborhoodHousingType
propertyUsageType - PropertyUsageType
qualifyingAssetsTotalAmount - NonNegativeInt!
qualifyingFicoScore - Int!
qualifyingMonthlyExpenses - NonNegativeInt!
qualifyingMonthlyIncome - NonNegativeInt!
Example
{
  "fipsCountyCode": "abc123",
  "hoaDues": 123,
  "maxDiscountPointsTotal": 123.45,
  "neighborhoodHousingType": "CONDOMINIUM",
  "propertyUsageType": "INVESTMENT",
  "qualifyingAssetsTotalAmount": 123,
  "qualifyingFicoScore": 123,
  "qualifyingMonthlyExpenses": 123,
  "qualifyingMonthlyIncome": 123
}

ConventionalPreQualificationParameters

Fields
Field Name Description
fipsCountyCode - String!
hoaDues - NonNegativeInt!
maxDiscountPointsTotal - Float!
neighborhoodHousingType - NeighborhoodHousingType!
propertyUsageType - PropertyUsageType!
qualifyingAssetsTotalAmount - NonNegativeInt!
qualifyingFicoScore - Int!
qualifyingMonthlyExpenses - NonNegativeInt!
qualifyingMonthlyIncome - NonNegativeInt!
Example
{
  "fipsCountyCode": "xyz789",
  "hoaDues": 123,
  "maxDiscountPointsTotal": 987.65,
  "neighborhoodHousingType": "CONDOMINIUM",
  "propertyUsageType": "INVESTMENT",
  "qualifyingAssetsTotalAmount": 123,
  "qualifyingFicoScore": 987,
  "qualifyingMonthlyExpenses": 123,
  "qualifyingMonthlyIncome": 123
}

ConventionalPreQualificationResult

Example
EligiblePreQualification

ConventionalResponse

Fields
Field Name Description
id - ID!
Example
{"id": 4}

CorrectWireInRemittanceInput

Fields
Input Field Description
effectiveDate - Date The accounting date for the correction. Defaults to today's date in Pylon's local time zone when omitted.
idempotencyKey - String! A retry key unique to this loan's wire-in records.
loanId - ID! The loan with the recorded remittance.
reason - FundingCorrectionReason! Why Pylon is negating the recorded remittance.
remittanceId - ID! The ordinary wire-in remittance to negate.
Example
{
  "effectiveDate": "2007-12-03",
  "idempotencyKey": "abc123",
  "loanId": "4",
  "reason": "DUPLICATE_REPORT",
  "remittanceId": 4
}

CorrectWireInRemittanceResponse

Fields
Field Name Description
correction - FundingRemittance!
fundingSettlement - FundingSettlement!
Example
{
  "correction": FundingRemittance,
  "fundingSettlement": FundingSettlement
}

CorrectWireOutRemittanceInput

Fields
Input Field Description
effectiveDate - Date The accounting date for the correction. Defaults to today's date in Pylon's local time zone when omitted.
idempotencyKey - String! A retry key unique to this loan's wire-out records.
loanId - ID! The loan with the reported remittance.
reason - FundingCorrectionReason! Why Pylon is negating the reported remittance.
remittanceId - ID! The ordinary wire-out remittance to negate.
Example
{
  "effectiveDate": "2007-12-03",
  "idempotencyKey": "abc123",
  "loanId": 4,
  "reason": "DUPLICATE_REPORT",
  "remittanceId": "4"
}

CorrectWireOutRemittanceResponse

Fields
Field Name Description
correction - FundingRemittance!
fundingSettlement - FundingSettlement!
Example
{
  "correction": FundingRemittance,
  "fundingSettlement": FundingSettlement
}

CostAbsorption

Description

Organization cost absorptions per product.

Fields
Field Name Description
points - NonNegativeFloat!
product - String!
Example
{"points": 123.45, "product": "abc123"}

CounterAssessmentCitationInput

Description

A citation grounding a counter-assessment: a region on a document page, plus optional meaning.

Fields
Input Field Description
documentId - ID! The document being cited.
label - String What the region means (e.g. "Dwelling coverage amount").
page - PositiveInt! 1-based page number.
pageHeight - Float!
pageWidth - Float!
polygon - [PagePointInput!]! Region outline in scale-1 pdf.js page units, y-down.
quotedText - String What the region says.
value - JSONObject Optional typed value the region evidences.
Example
{
  "documentId": "4",
  "label": "abc123",
  "page": 123,
  "pageHeight": 123.45,
  "pageWidth": 123.45,
  "polygon": [PagePointInput],
  "quotedText": "abc123",
  "value": {}
}

County

Description

US County

Fields
Field Name Description
fipsCountyCode - String! County-level FIPS code
name - String! County name
state - StateAbbreviated! Abbreviated US state name (including DC)
Example
{
  "fipsCountyCode": "xyz789",
  "name": "xyz789",
  "state": "AK"
}

CreateAccessoryUnitIncomeInput

Description

Input for creating an AccessoryUnitIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": "4",
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateAlimonyIncomeInput

Description

Input for creating an AlimonyIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": 4,
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateAssetInput

Description

Input to the createAsset mutation. This is a 'oneOf' type where exactly one field must be populated.

Fields
Input Field Description
automobile - CreateAutomobileAssetInput
bond - CreateBondAssetInput
bridgeLoanNotDeposited - CreateBridgeLoanNotDepositedAssetInput
cashOnHand - CreateCashOnHandAssetInput
certificateOfDepositTimeDeposit - CreateCertificateOfDepositTimeDepositAssetInput
checkingAccount - CreateCheckingAccountAssetInput
cryptocurrency - CreateCryptocurrencyAssetInput
gift - CreateGiftAssetInput
grant - CreateGrantAssetInput
individualDevelopmentAccount - CreateIndividualDevelopmentAccountAssetInput
lifeInsurance - CreateLifeInsuranceAssetInput
moneyMarketFund - CreateMoneyMarketFundAssetInput
mutualFund - CreateMutualFundAssetInput
other - CreateOtherAssetInput
pendingNetSaleProceedsFromRealEstate - CreatePendingNetSaleProceedsFromRealEstateAssetInput
proceedsFromSaleOfNonRealEstateAsset - CreateProceedsFromSaleOfNonRealEstateAssetInput
proceedsFromSecuredLoan - CreateProceedsFromSecuredLoanAssetInput
proceedsFromUnsecuredLoan - CreateProceedsFromUnsecuredLoanAssetInput
retirementFund - CreateRetirementFundAssetInput
savingsAccount - CreateSavingsAccountAssetInput
stock - CreateStockAssetInput
stockOptions - CreateStockOptionsAssetInput
trustAccount - CreateTrustAccountAssetInput
Example
{
  "automobile": CreateAutomobileAssetInput,
  "bond": CreateBondAssetInput,
  "bridgeLoanNotDeposited": CreateBridgeLoanNotDepositedAssetInput,
  "cashOnHand": CreateCashOnHandAssetInput,
  "certificateOfDepositTimeDeposit": CreateCertificateOfDepositTimeDepositAssetInput,
  "checkingAccount": CreateCheckingAccountAssetInput,
  "cryptocurrency": CreateCryptocurrencyAssetInput,
  "gift": CreateGiftAssetInput,
  "grant": CreateGrantAssetInput,
  "individualDevelopmentAccount": CreateIndividualDevelopmentAccountAssetInput,
  "lifeInsurance": CreateLifeInsuranceAssetInput,
  "moneyMarketFund": CreateMoneyMarketFundAssetInput,
  "mutualFund": CreateMutualFundAssetInput,
  "other": CreateOtherAssetInput,
  "pendingNetSaleProceedsFromRealEstate": CreatePendingNetSaleProceedsFromRealEstateAssetInput,
  "proceedsFromSaleOfNonRealEstateAsset": CreateProceedsFromSaleOfNonRealEstateAssetInput,
  "proceedsFromSecuredLoan": CreateProceedsFromSecuredLoanAssetInput,
  "proceedsFromUnsecuredLoan": CreateProceedsFromUnsecuredLoanAssetInput,
  "retirementFund": CreateRetirementFundAssetInput,
  "savingsAccount": CreateSavingsAccountAssetInput,
  "stock": CreateStockAssetInput,
  "stockOptions": CreateStockOptionsAssetInput,
  "trustAccount": CreateTrustAccountAssetInput
}

CreateAssetResponse

Description

Response of the createAsset mutation

Fields
Field Name Description
asset - Asset! The created asset
Example
{"asset": Asset}

CreateAutomobileAllowanceIncomeInput

Description

Input for creating an AutomobileAllowanceIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": "4",
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateAutomobileAssetInput

Fields
Input Field Description
amount - NonNegativeInt! The cash or market value of the asset in dollars
borrowerIds - [ID!]! Asset-owning borrower IDs
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
Example
{
  "amount": 123,
  "borrowerIds": [4],
  "nonBorrowerOwnerNames": ["xyz789"]
}

CreateBoarderIncomeInput

Description

Input for creating a BoarderIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": "4",
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateBondAssetInput

Fields
Input Field Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt! The cash or market value of the asset in dollars
borrowerIds - [ID!]! Asset-owning borrower IDs
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
Example
{
  "accountIdentifier": "abc123",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "borrowerIds": [4],
  "institutionName": "xyz789",
  "nonBorrowerOwnerNames": ["abc123"]
}

CreateBonusIncomeInput

Description

Input for creating a BonusIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
employmentId - ID The employment this income is associated with
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": 4,
  "employmentId": "4",
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateBorrowerEstimatedTotalMonthlyIncomeInput

Description

Input for creating a BorrowerEstimatedTotalMonthlyIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": "4",
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateBorrowerInput

Fields
Input Field Description
dealId - ID! ID of the deal
dependentAges - [Float!]
financialDeclarations - BorrowerFinancialDeclarationsInput
mailingAddress - AddressInput
personalInformation - BorrowerPersonalInformationInput!
pointOfContact - Boolean
propertyDeclarations - BorrowerPropertyDeclarationsInput
Example
{
  "dealId": "4",
  "dependentAges": [123.45],
  "financialDeclarations": BorrowerFinancialDeclarationsInput,
  "mailingAddress": AddressInput,
  "personalInformation": BorrowerPersonalInformationInput,
  "pointOfContact": false,
  "propertyDeclarations": BorrowerPropertyDeclarationsInput
}

CreateBorrowerPhoneNumberInput

Description

A phone number

Fields
Input Field Description
number - String! Phone Number
type - PhoneNumberType Phone number type
Example
{"number": "xyz789", "type": "CELL"}

CreateBorrowerResponse

Description

Response of the create borrower mutation.

Fields
Field Name Description
id - ID! ID of the borrower
Example
{"id": 4}

CreateBridgeLoanNotDepositedAssetInput

Fields
Input Field Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt! The cash or market value of the asset in dollars
borrowerIds - [ID!]! Asset-owning borrower IDs
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
Example
{
  "accountIdentifier": "xyz789",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "borrowerIds": [4],
  "institutionName": "xyz789",
  "nonBorrowerOwnerNames": ["xyz789"]
}

CreateCapitalGainsIncomeInput

Description

Input for creating a CapitalGainsIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": "4",
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateCashOnHandAssetInput

Fields
Input Field Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt! The cash or market value of the asset in dollars
borrowerIds - [ID!]! Asset-owning borrower IDs
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
Example
{
  "accountIdentifier": "abc123",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "borrowerIds": ["4"],
  "institutionName": "abc123",
  "nonBorrowerOwnerNames": ["xyz789"]
}

CreateCertificateOfDepositTimeDepositAssetInput

Fields
Input Field Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt! The cash or market value of the asset in dollars
borrowerIds - [ID!]! Asset-owning borrower IDs
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
Example
{
  "accountIdentifier": "abc123",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "borrowerIds": ["4"],
  "institutionName": "abc123",
  "nonBorrowerOwnerNames": ["xyz789"]
}

CreateCheckingAccountAssetInput

Fields
Input Field Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt! The cash or market value of the asset in dollars
borrowerIds - [ID!]! Asset-owning borrower IDs
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
Example
{
  "accountIdentifier": "xyz789",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "borrowerIds": [4],
  "institutionName": "abc123",
  "nonBorrowerOwnerNames": ["abc123"]
}

CreateChildSupportIncomeInput

Description

Input for creating a ChildSupportIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": "4",
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateCitationInput

Description

A citation drawn by an underwriter: a region on a document page, plus optional meaning. Geometry is required — freehand text-only notes are not part of this input (they arrive with the assertion write surface).

Fields
Input Field Description
documentId - ID! The document being cited.
label - String What the region means (e.g. "Dwelling coverage amount").
page - PositiveInt! 1-based page number.
pageHeight - Float!
pageWidth - Float!
polygon - [PagePointInput!]! Region outline in scale-1 pdf.js page units, y-down.
quotedText - String What the region says.
value - JSONObject Optional typed value the region evidences.
Example
{
  "documentId": "4",
  "label": "xyz789",
  "page": 123,
  "pageHeight": 987.65,
  "pageWidth": 123.45,
  "polygon": [PagePointInput],
  "quotedText": "abc123",
  "value": {}
}

CreateCitationResponse

Description

Result of creating a citation.

Fields
Field Name Description
citation - Citation! The persisted citation, typed.
Example
{"citation": Citation}

CreateCommissionsIncomeInput

Description

Input for creating a CommissionsIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
employmentId - ID The employment this income is associated with
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": "4",
  "employmentId": 4,
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateCompanyInput

Fields
Input Field Description
address - AddressInput Company address
businessType - BusinessType Business type
dealId - ID! ID of the deal
name - String Company name
Example
{
  "address": AddressInput,
  "businessType": "CORPORATION",
  "dealId": 4,
  "name": "xyz789"
}

CreateCompanyResponse

Fields
Field Name Description
company - Company!
Example
{"company": Company}

CreateContactInput

Fields
Input Field Description
address - AddressInput Optional U.S. address to create with the contact.
companyLicenseNumber - String License number of the company the contact represents
companyLicenseState - StateAbbreviated State where the company's license was issued
companyName - String Company which the contact is from
email - String Email address of the contact
firstName - String First name of the contact
hazardInsuranceCoverage - HazardInsuranceCoverageType Coverage provided by a hazard insurer
individualLicenseNumber - String Professional license number of the individual contact
individualLicenseState - StateAbbreviated State where the individual's professional license was issued
lastName - String Last name of the contact
middleName - String Middle name of the contact
phoneNumber - String Phone number of the contact
role - OrganizationContactRole! Contact's role, limited to supported values.
Example
{
  "address": AddressInput,
  "companyLicenseNumber": "abc123",
  "companyLicenseState": "AK",
  "companyName": "xyz789",
  "email": "abc123",
  "firstName": "abc123",
  "hazardInsuranceCoverage": "EARTHQUAKE",
  "individualLicenseNumber": "abc123",
  "individualLicenseState": "AK",
  "lastName": "xyz789",
  "middleName": "abc123",
  "phoneNumber": "abc123",
  "role": "ATTORNEY"
}

CreateContactResponse

Fields
Field Name Description
created - Contact! The newly created contact.
Example
{"created": Contact}

CreateContractBasisIncomeInput

Description

Input for creating a ContractBasisIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": "4",
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateContributorContactInfoInput

Fields
Input Field Description
email - String!
firstName - String!
lastName - String!
phone - String
Example
{
  "email": "abc123",
  "firstName": "xyz789",
  "lastName": "xyz789",
  "phone": "abc123"
}

CreateContributorInput

Fields
Input Field Description
contactInfo - CreateContributorContactInfoInput!
role - String
roleId - ID
source - ContributorSource
Example
{
  "contactInfo": CreateContributorContactInfoInput,
  "role": "abc123",
  "roleId": "4",
  "source": "COMMAND_CENTER"
}

CreateContributorResponse

Fields
Field Name Description
contributor - Contributor!
Example
{"contributor": Contributor}

CreateCryptocurrencyAssetInput

Fields
Input Field Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt! The cash or market value of the asset in dollars
borrowerIds - [ID!]! Asset-owning borrower IDs
description - String Description of the asset (e.g. coin and platform)
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
Example
{
  "accountIdentifier": "xyz789",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "borrowerIds": ["4"],
  "description": "xyz789",
  "institutionName": "abc123",
  "nonBorrowerOwnerNames": ["xyz789"]
}

CreateDealResponse

Fields
Field Name Description
deal - Deal!
Example
{"deal": Deal}

CreateDefinedContributionPlanIncomeInput

Description

Input for creating a DefinedContributionPlanIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": 4,
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateDisabilityIncomeInput

Description

Input for creating a DisabilityIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": "4",
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateDividendsInterestIncomeInput

Description

Input for creating a DividendsInterestIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": "4",
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateEmploymentRelatedAccountIncomeInput

Description

Input for creating an EmploymentRelatedAccountIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": "4",
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateFeeSheetRequestForLoanInput

Description

Input for requesting a fee sheet for a loan. Pricing parameters are derived server-side from the loan's own data.

Fields
Input Field Description
loanId - ID! The loan to generate a fee sheet for
productStructureId - ID A rate row from the loan's pricing results to generate the fee sheet for, without attaching it to the loan. Defaults to the loan's selected rate when omitted.
Example
{
  "loanId": "4",
  "productStructureId": "4"
}

CreateFeeSheetRequestForLoanResponse

Description

Response for a loan fee sheet request

Fields
Field Name Description
errorMessage - String Error message if failed
feeSheetRequestId - ID ID of the fee sheet request; null when the request could not be created (see errorMessage)
Example
{
  "errorMessage": "xyz789",
  "feeSheetRequestId": 4
}

CreateFeeSheetRequestInput

Description

Input for requesting a fee sheet

Fields
Input Field Description
productStructure - FeeSheetStructureInput! Product structure for the fee sheet
purchasePricing - FeeSheetPurchasePricingInput Purchase pricing details
refinancePricing - FeeSheetRefinancePricingInput Refinance pricing details
Example
{
  "productStructure": FeeSheetStructureInput,
  "purchasePricing": FeeSheetPurchasePricingInput,
  "refinancePricing": FeeSheetRefinancePricingInput
}

CreateFeeSheetRequestResponse

Description

Response for a fee sheet request

Fields
Field Name Description
errorMessage - String Error message if failed
feeSheetRequestId - ID! ID of the fee sheet request
Example
{
  "errorMessage": "xyz789",
  "feeSheetRequestId": 4
}

CreateFosterCareIncomeInput

Description

Input for creating a FosterCareIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": "4",
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateFulfillmentPartyInput

Fields
Input Field Description
companyId - ID The ID of the associated company
dealId - ID!
role - FulfillmentPartyRole The role of the fulfillment party
Example
{"companyId": 4, "dealId": 4, "role": "NOTARY"}

CreateFulfillmentPartyResponse

Fields
Field Name Description
fulfillmentParty - FulfillmentParty!
Example
{"fulfillmentParty": FulfillmentParty}

CreateGiftAssetInput

Fields
Input Field Description
amount - NonNegativeInt! The cash or market value of the asset in dollars
borrowerIds - [ID!]! Asset-owning borrower IDs
dateOfTransfer - Date The date when the gift/grant funds were transferred into the borrower's account
donorEmployeeIdentificationNumber - String Employer Identification Number (EIN) of the gift/grant donor
donorName - String Full name of the person providing the gift/grant
donorPhoneNumber - String The phone number of the person providing the gift/grant
isIncludedInAssetAccount - Boolean Indicates whether the gift/grant funds have already been included as part of an asset account considered for the loan
isSellerFunded - Boolean Indicates whether the gift/grant is funded by the seller
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
source - GiftSource Gift/Grant source
Example
{
  "amount": 123,
  "borrowerIds": [4],
  "dateOfTransfer": "2007-12-03",
  "donorEmployeeIdentificationNumber": "xyz789",
  "donorName": "xyz789",
  "donorPhoneNumber": "xyz789",
  "isIncludedInAssetAccount": false,
  "isSellerFunded": false,
  "nonBorrowerOwnerNames": ["xyz789"],
  "source": "COMMUNITY_NON_PROFIT"
}

CreateGrantAssetInput

Fields
Input Field Description
amount - NonNegativeInt! The cash or market value of the asset in dollars
borrowerIds - [ID!]! Asset-owning borrower IDs
dateOfTransfer - Date The date when the gift/grant funds were transferred into the borrower's account
donorEmployeeIdentificationNumber - String Employer Identification Number (EIN) of the gift/grant donor
donorName - String Full name of the person providing the gift/grant
donorPhoneNumber - String The phone number of the person providing the gift/grant
isIncludedInAssetAccount - Boolean Indicates whether the gift/grant funds have already been included as part of an asset account considered for the loan
isSellerFunded - Boolean Indicates whether the gift/grant is funded by the seller
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
source - GiftSource Gift/Grant source
Example
{
  "amount": 123,
  "borrowerIds": ["4"],
  "dateOfTransfer": "2007-12-03",
  "donorEmployeeIdentificationNumber": "xyz789",
  "donorName": "abc123",
  "donorPhoneNumber": "abc123",
  "isIncludedInAssetAccount": true,
  "isSellerFunded": false,
  "nonBorrowerOwnerNames": ["abc123"],
  "source": "COMMUNITY_NON_PROFIT"
}

CreateHousingAllowanceIncomeInput

Description

Input for creating a HousingAllowanceIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": "4",
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateHousingChoiceVoucherProgramIncomeInput

Description

Input for creating a HousingChoiceVoucherProgramIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": 4,
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateIncomeInput

Description

Input to the createIncome mutation. This is a 'oneOf' type where exactly one field must be populated.

Fields
Input Field Description
accessoryUnitIncome - CreateAccessoryUnitIncomeInput
alimony - CreateAlimonyIncomeInput
automobileAllowance - CreateAutomobileAllowanceIncomeInput
boarder - CreateBoarderIncomeInput
bonus - CreateBonusIncomeInput
borrowerEstimatedTotalMonthlyIncome - CreateBorrowerEstimatedTotalMonthlyIncomeInput
capitalGains - CreateCapitalGainsIncomeInput
childSupport - CreateChildSupportIncomeInput
commissions - CreateCommissionsIncomeInput
contractBasis - CreateContractBasisIncomeInput
definedContributionPlan - CreateDefinedContributionPlanIncomeInput
disability - CreateDisabilityIncomeInput
dividendsInterest - CreateDividendsInterestIncomeInput
employmentRelatedAccount - CreateEmploymentRelatedAccountIncomeInput
fosterCare - CreateFosterCareIncomeInput
housingAllowance - CreateHousingAllowanceIncomeInput
housingChoiceVoucherProgram - CreateHousingChoiceVoucherProgramIncomeInput
militaryBasePay - CreateMilitaryBasePayIncomeInput
militaryClothesAllowance - CreateMilitaryClothesAllowanceIncomeInput
militaryCombatPay - CreateMilitaryCombatPayIncomeInput
militaryFlightPay - CreateMilitaryFlightPayIncomeInput
militaryHazardPay - CreateMilitaryHazardPayIncomeInput
militaryOverseasPay - CreateMilitaryOverseasPayIncomeInput
militaryPropPay - CreateMilitaryPropPayIncomeInput
militaryQuartersAllowance - CreateMilitaryQuartersAllowanceIncomeInput
militaryRationsAllowance - CreateMilitaryRationsAllowanceIncomeInput
militaryVariableHousingAllowance - CreateMilitaryVariableHousingAllowanceIncomeInput
miscellaneousIncome - CreateMiscellaneousIncomeInput
mortgageCreditCertificate - CreateMortgageCreditCertificateIncomeInput
mortgageDifferential - CreateMortgageDifferentialIncomeInput
netRentalIncome - CreateNetRentalIncomeInput
nonBorrowerContribution - CreateNonBorrowerContributionIncomeInput
nonBorrowerHouseholdIncome - CreateNonBorrowerHouseholdIncomeInput
notesReceivableInstallment - CreateNotesReceivableInstallmentIncomeInput
other - CreateOtherIncomeInput
overtime - CreateOvertimeIncomeInput
pension - CreatePensionIncomeInput
proposedGrossRentForSubjectProperty - CreateProposedGrossRentForSubjectPropertyIncomeInput
publicAssistance - CreatePublicAssistanceIncomeInput
realEstateOwnedGrossRentalIncome - CreateRealEstateOwnedGrossRentalIncomeInput
retirement - CreateRetirementIncomeInput
royalties - CreateRoyaltiesIncomeInput
selfEmployment - CreateSelfEmploymentIncomeInput
selfEmploymentLoss - CreateSelfEmploymentLossIncomeInput
separateMaintenance - CreateSeparateMaintenanceIncomeInput
socialSecurity - CreateSocialSecurityIncomeInput
standardEmployment - CreateStandardEmploymentIncomeInput
subjectPropertyNetCashFlow - CreateSubjectPropertyNetCashFlowIncomeInput
temporaryLeave - CreateTemporaryLeaveIncomeInput
tipIncome - CreateTipIncomeInput
trailingCoBorrower - CreateTrailingCoBorrowerIncomeInput
trust - CreateTrustIncomeInput
unemployment - CreateUnemploymentIncomeInput
vaBenefitsNonEducational - CreateVaBenefitsNonEducationalIncomeInput
workersCompensation - CreateWorkersCompensationIncomeInput
Example
{
  "accessoryUnitIncome": CreateAccessoryUnitIncomeInput,
  "alimony": CreateAlimonyIncomeInput,
  "automobileAllowance": CreateAutomobileAllowanceIncomeInput,
  "boarder": CreateBoarderIncomeInput,
  "bonus": CreateBonusIncomeInput,
  "borrowerEstimatedTotalMonthlyIncome": CreateBorrowerEstimatedTotalMonthlyIncomeInput,
  "capitalGains": CreateCapitalGainsIncomeInput,
  "childSupport": CreateChildSupportIncomeInput,
  "commissions": CreateCommissionsIncomeInput,
  "contractBasis": CreateContractBasisIncomeInput,
  "definedContributionPlan": CreateDefinedContributionPlanIncomeInput,
  "disability": CreateDisabilityIncomeInput,
  "dividendsInterest": CreateDividendsInterestIncomeInput,
  "employmentRelatedAccount": CreateEmploymentRelatedAccountIncomeInput,
  "fosterCare": CreateFosterCareIncomeInput,
  "housingAllowance": CreateHousingAllowanceIncomeInput,
  "housingChoiceVoucherProgram": CreateHousingChoiceVoucherProgramIncomeInput,
  "militaryBasePay": CreateMilitaryBasePayIncomeInput,
  "militaryClothesAllowance": CreateMilitaryClothesAllowanceIncomeInput,
  "militaryCombatPay": CreateMilitaryCombatPayIncomeInput,
  "militaryFlightPay": CreateMilitaryFlightPayIncomeInput,
  "militaryHazardPay": CreateMilitaryHazardPayIncomeInput,
  "militaryOverseasPay": CreateMilitaryOverseasPayIncomeInput,
  "militaryPropPay": CreateMilitaryPropPayIncomeInput,
  "militaryQuartersAllowance": CreateMilitaryQuartersAllowanceIncomeInput,
  "militaryRationsAllowance": CreateMilitaryRationsAllowanceIncomeInput,
  "militaryVariableHousingAllowance": CreateMilitaryVariableHousingAllowanceIncomeInput,
  "miscellaneousIncome": CreateMiscellaneousIncomeInput,
  "mortgageCreditCertificate": CreateMortgageCreditCertificateIncomeInput,
  "mortgageDifferential": CreateMortgageDifferentialIncomeInput,
  "netRentalIncome": CreateNetRentalIncomeInput,
  "nonBorrowerContribution": CreateNonBorrowerContributionIncomeInput,
  "nonBorrowerHouseholdIncome": CreateNonBorrowerHouseholdIncomeInput,
  "notesReceivableInstallment": CreateNotesReceivableInstallmentIncomeInput,
  "other": CreateOtherIncomeInput,
  "overtime": CreateOvertimeIncomeInput,
  "pension": CreatePensionIncomeInput,
  "proposedGrossRentForSubjectProperty": CreateProposedGrossRentForSubjectPropertyIncomeInput,
  "publicAssistance": CreatePublicAssistanceIncomeInput,
  "realEstateOwnedGrossRentalIncome": CreateRealEstateOwnedGrossRentalIncomeInput,
  "retirement": CreateRetirementIncomeInput,
  "royalties": CreateRoyaltiesIncomeInput,
  "selfEmployment": CreateSelfEmploymentIncomeInput,
  "selfEmploymentLoss": CreateSelfEmploymentLossIncomeInput,
  "separateMaintenance": CreateSeparateMaintenanceIncomeInput,
  "socialSecurity": CreateSocialSecurityIncomeInput,
  "standardEmployment": CreateStandardEmploymentIncomeInput,
  "subjectPropertyNetCashFlow": CreateSubjectPropertyNetCashFlowIncomeInput,
  "temporaryLeave": CreateTemporaryLeaveIncomeInput,
  "tipIncome": CreateTipIncomeInput,
  "trailingCoBorrower": CreateTrailingCoBorrowerIncomeInput,
  "trust": CreateTrustIncomeInput,
  "unemployment": CreateUnemploymentIncomeInput,
  "vaBenefitsNonEducational": CreateVaBenefitsNonEducationalIncomeInput,
  "workersCompensation": CreateWorkersCompensationIncomeInput
}

CreateIncomeResponse

Description

Response of the createIncome mutation

Fields
Field Name Description
income - Income! The income entity that was created
Example
{"income": Income}

CreateIndividualDevelopmentAccountAssetInput

Fields
Input Field Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt! The cash or market value of the asset in dollars
borrowerIds - [ID!]! Asset-owning borrower IDs
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
Example
{
  "accountIdentifier": "abc123",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "borrowerIds": ["4"],
  "institutionName": "abc123",
  "nonBorrowerOwnerNames": ["abc123"]
}

CreateInitializationTokenInput

Description

Input to the createInitializationToken mutation.

Fields
Input Field Description
borrowerId - ID! ID of the borrower
clientUserId - String Client user ID for Plaid Layer
templateId - String Optional Template ID for Plaid Layer integration
vendor - VendorName! Vendor to use (PLAID or TRUV)
Example
{
  "borrowerId": 4,
  "clientUserId": "abc123",
  "templateId": "xyz789",
  "vendor": "PLAID"
}

CreateInitializationTokenResponse

Description

Token for initializing verification widget

Types
Union Types

PlaidLinkToken

TruvBridgeToken

Example
PlaidLinkToken

CreateLeaseInput

Description

Input to create a borrower lease

Fields
Input Field Description
email - String! Borrower email address
externalUserId - String! Borrower user id in the calling system. A user for this borrower will be created inside the Pylon systems
firstName - String! Borrower first name
lastName - String! Borrower last name
Example
{
  "email": "xyz789",
  "externalUserId": "abc123",
  "firstName": "xyz789",
  "lastName": "abc123"
}

CreateLeaseResponse

Description

Borrower lease response

Fields
Field Name Description
lease - Lease Lease that was created
Example
{"lease": Lease}

CreateLiabilityInput

Description

Input to the createLiability mutation.

Fields
Input Field Description
accountIdentifier - String Account identifier
balance - NonNegativeFloat Unpaid balance
bankName - String Bank name
borrowerIds - [ID!]! Liability-owning borrower IDs
exclusionReason - LiabilityExclusionReason The reason this liability should be excluded from total debt
intent - LiabilityIntent The intent regarding liability
monthlyPayment - NonNegativeFloat Monthly payment
type - LiabilityType The type of liability
Example
{
  "accountIdentifier": "abc123",
  "balance": 123.45,
  "bankName": "abc123",
  "borrowerIds": [4],
  "exclusionReason": "ASSIGNED_TO_ANOTHER_PARTY",
  "intent": "DO_NOTHING",
  "monthlyPayment": 123.45,
  "type": "BORROWER_ESTIMATED_TOTAL_MONTHLY_LIABILITY_PAYMENT"
}

CreateLiabilityResponse

Description

Response of the createLiability mutation.

Fields
Field Name Description
liability - Liability! The created liability
Example
{"liability": Liability}

CreateLifeInsuranceAssetInput

Fields
Input Field Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt! The cash or market value of the asset in dollars
borrowerIds - [ID!]! Asset-owning borrower IDs
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
Example
{
  "accountIdentifier": "abc123",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "borrowerIds": [4],
  "institutionName": "abc123",
  "nonBorrowerOwnerNames": ["abc123"]
}

CreateLoanAssignmentInput

Fields
Input Field Description
loanId - ID!
userId - ID!
Example
{
  "loanId": "4",
  "userId": "4"
}

CreateLoanAssignmentResponse

Fields
Field Name Description
assignment - LoanAssignment
feeWaived - Boolean! True when the assignment succeeded but the processor's fee was not applied because initial disclosures have already been sent. The processor is still added to the loan team without the fee.
userErrors - [UserError!]!
Example
{
  "assignment": LoanAssignment,
  "feeWaived": false,
  "userErrors": [UserError]
}

CreateLoanInput

Description

Input to the createLoan mutation.

Fields
Input Field Description
cashOutType - RefinanceCashOutType LO-set refinance/cash-out type (distinct from the pricing-derived value)
closingDate - Date The date that the purchase is set to close.
dealId - ID!
loanPurpose - LoanPurposeType The purpose for which the loan proceeds will be used.
loanTermYears - PositiveFloat The term of this loan in years. Default = 30
outOfPocketMax - NonNegativeInt The maximum amount of assets (in dollars) to be used towards the loan.
purchasePrice - NonNegativeInt The actual purchase price (in dollars).
refinanceCashOutProceeds - NonNegativeInt Refinance cash out proceeds not used towards paying off existing liens.
source - ContributorSource Origin system attributed to the loan's contributor (e.g. COMMAND_CENTER).
Example
{
  "cashOutType": "CASH_OUT",
  "closingDate": "2007-12-03",
  "dealId": 4,
  "loanPurpose": "PURCHASE",
  "loanTermYears": 123.45,
  "outOfPocketMax": 123,
  "purchasePrice": 123,
  "refinanceCashOutProceeds": 123,
  "source": "COMMAND_CENTER"
}

CreateLoanPreApprovalLetterError

Example
ExpiredCreditPullError

CreateLoanPreApprovalLetterInput

Description

Input to the createLoanPreApprovalLetter mutation.

Fields
Input Field Description
loanAmount - NonNegativeInt! Loan amount (in dollars) to display on the letter. Cannot exceed the maximum pre-approved loan amount.
loanId - ID! The ID or friendly ID of the loan.
purchasePrice - NonNegativeInt! Purchase price (in dollars) to display on the letter. Cannot exceed the maximum pre-approved purchase price.
Example
{
  "loanAmount": 123,
  "loanId": "4",
  "purchasePrice": 123
}

CreateLoanPreApprovalLetterResponse

Description

Response of the createLoanPreApprovalLetter mutation.

Fields
Field Name Description
letterUrl - String A download URL for the pre-approval letter. The value will be null if the loan has not been pre-approved.
userErrors - [CreateLoanPreApprovalLetterError!]! A list of user errors that occurred while executing the createLoanPreApprovalLetter mutation.
Example
{
  "letterUrl": "abc123",
  "userErrors": [ExpiredCreditPullError]
}

CreateLoanResponse

Description

Response of the createLoan mutation.

Fields
Field Name Description
loan - Loan! The newly created loan.
Example
{"loan": Loan}

CreateLoanScriptInput

Description

Input for creating a loan script.

Fields
Input Field Description
description - String! What the script builds and verifies.
scenarioId - String! Unique, stable identifier for the new script.
spec - JSONObject! The script payload (steps, and assertions and/or expected). Validated against the strict loan-script schema.
Example
{
  "description": "abc123",
  "scenarioId": "xyz789",
  "spec": {}
}

CreateLoanScriptResponse

Description

Result of creating a loan script.

Fields
Field Name Description
loanScript - LoanScript! The created script.
Example
{"loanScript": LoanScript}

CreateMaxLoanPreApprovalLetterError

Description

Union of possible user errors that can occur during execution of the createMaxLoanPreApprovalLetter mutation.

Example
ExpiredCreditPullError

CreateMaxLoanPreApprovalLetterInput

Description

Input to the createMaxLoanPreApprovalLetter mutation.

Fields
Input Field Description
loanId - ID! The ID or friendly ID of the loan.
Example
{"loanId": 4}

CreateMaxLoanPreApprovalLetterResponse

Description

Response of the createMaxLoanPreApprovalLetter mutation.

Fields
Field Name Description
letterUrl - String A download URL for a pre-approval letter with the maximum pre-approved loan amount and purchase price for the loan.
userErrors - [CreateMaxLoanPreApprovalLetterError!]! A list of user errors that occurred while executing the createMaxLoanPreApprovalLetter mutation.
Example
{
  "letterUrl": "abc123",
  "userErrors": [ExpiredCreditPullError]
}

CreateMilitaryBasePayIncomeInput

Description

Input for creating a MilitaryBasePayIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": "4",
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateMilitaryClothesAllowanceIncomeInput

Description

Input for creating a MilitaryClothesAllowanceIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": 4,
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateMilitaryCombatPayIncomeInput

Description

Input for creating a MilitaryCombatPayIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": "4",
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateMilitaryFlightPayIncomeInput

Description

Input for creating a MilitaryFlightPayIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": 4,
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateMilitaryHazardPayIncomeInput

Description

Input for creating a MilitaryHazardPayIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": "4",
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateMilitaryOverseasPayIncomeInput

Description

Input for creating a MilitaryOverseasPayIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": 4,
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateMilitaryPropPayIncomeInput

Description

Input for creating a MilitaryPropPayIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": 4,
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateMilitaryQuartersAllowanceIncomeInput

Description

Input for creating a MilitaryQuartersAllowanceIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": "4",
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateMilitaryRationsAllowanceIncomeInput

Description

Input for creating a MilitaryRationsAllowanceIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": "4",
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateMilitaryVariableHousingAllowanceIncomeInput

Description

Input for creating a MilitaryVariableHousingAllowanceIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": 4,
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateMiscellaneousIncomeInput

Description

Input for creating a MiscellaneousIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": "4",
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateMoneyMarketFundAssetInput

Fields
Input Field Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt! The cash or market value of the asset in dollars
borrowerIds - [ID!]! Asset-owning borrower IDs
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
Example
{
  "accountIdentifier": "abc123",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "borrowerIds": [4],
  "institutionName": "abc123",
  "nonBorrowerOwnerNames": ["xyz789"]
}

CreateMortgageCreditCertificateIncomeInput

Description

Input for creating a MortgageCreditCertificateIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
percentageOfInterest - NonNegativeFloat The percentage of interest that the mortgage credit certificate will cover. This field is expressed as a percent. As an example, 50.1% is expressed as 50.1.
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": 4,
  "payPeriodFrequency": "ANNUALLY",
  "percentageOfInterest": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateMortgageDifferentialIncomeInput

Description

Input for creating a MortgageDifferentialIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": 4,
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateMutualFundAssetInput

Fields
Input Field Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt! The cash or market value of the asset in dollars
borrowerIds - [ID!]! Asset-owning borrower IDs
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
Example
{
  "accountIdentifier": "xyz789",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "borrowerIds": [4],
  "institutionName": "xyz789",
  "nonBorrowerOwnerNames": ["xyz789"]
}

CreateNetRentalIncomeInput

Description

Input for creating a NetRentalIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
ownedPropertyId - ID! The owned property to link this rental income to
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": "4",
  "ownedPropertyId": 4,
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateNonBorrowerContributionIncomeInput

Description

Input for creating a NonBorrowerContributionIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": 4,
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateNonBorrowerHouseholdIncomeInput

Description

Input for creating a NonBorrowerHouseholdIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": "4",
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateNonBorrowingOwnerInput

Fields
Input Field Description
dealId - ID!
personalInformation - PersonalInformationInput!
Example
{
  "dealId": 4,
  "personalInformation": PersonalInformationInput
}

CreateNonBorrowingOwnerResponse

Fields
Field Name Description
nonBorrowingOwner - NonBorrowingOwner!
Example
{"nonBorrowingOwner": NonBorrowingOwner}

CreateNotesReceivableInstallmentIncomeInput

Description

Input for creating a NotesReceivableInstallmentIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": "4",
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateOrganizationRoleInput

Fields
Input Field Description
description - String!
name - String!
permissions - [String!]!
Example
{
  "description": "xyz789",
  "name": "xyz789",
  "permissions": ["xyz789"]
}

CreateOrganizationRoleResponse

Fields
Field Name Description
organizationRole - OrganizationRole
userErrors - [GenericUserError!]!
Example
{
  "organizationRole": OrganizationRole,
  "userErrors": [GenericUserError]
}

CreateOrganizationUserInput

Fields
Input Field Description
accessType - OrganizationUserAccessType Whether to provision the user with Command Center access (login + internal) or as an internal-only record. Defaults to Command Center access. Default = CommandCenterAccess
companyAddress - AddressInput The company's NMLS address. We auto-fill company fields like this one from your organization's records to the best of our ability; supply this field to override the value we have on file.
companyName - String Payee company name for processor-type roles. Only applicable when the assigned role is processor or third_party_processor.
email - String!
firstName - String!
individualNmlsId - String The user's individual NMLS identifier.
lastName - String!
licenses - [OrganizationUserLicenseInput!] Individual state licenses for the user. Required for loan officers, optional for admins, and rejected for all other roles.
organizationRoles - [ID!]!
phoneNumber - String The user's phone number.
processorFeeAmount - Float Processing fee in dollars for processor-type roles. Only applicable when the assigned role is processor or third_party_processor.
Example
{
  "accessType": "CommandCenterAccess",
  "companyAddress": AddressInput,
  "companyName": "xyz789",
  "email": "xyz789",
  "firstName": "abc123",
  "individualNmlsId": "abc123",
  "lastName": "abc123",
  "licenses": [OrganizationUserLicenseInput],
  "organizationRoles": [4],
  "phoneNumber": "xyz789",
  "processorFeeAmount": 987.65
}

CreateOrganizationUserResponse

Fields
Field Name Description
internalUserCreated - Boolean! True when a new internal user was successfully created as part of this operation. For users without a Command Center login, this is the primary success signal since there is no organizationUser to return.
organizationUser - OrganizationUser
userErrors - [GenericUserError!]!
Example
{
  "internalUserCreated": true,
  "organizationUser": OrganizationUser,
  "userErrors": [GenericUserError]
}

CreateOtherAssetInput

Fields
Input Field Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt! The cash or market value of the asset in dollars
borrowerIds - [ID!]! Asset-owning borrower IDs
description - String Description of the asset
institutionName - String Institution name
isLiquid - Boolean Indicates whether or not the asset is liquid
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
Example
{
  "accountIdentifier": "abc123",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "borrowerIds": ["4"],
  "description": "xyz789",
  "institutionName": "xyz789",
  "isLiquid": true,
  "nonBorrowerOwnerNames": ["abc123"]
}

CreateOtherIncomeInput

Description

Input for creating an OtherIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
description - String Information about the income type
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": "4",
  "description": "xyz789",
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateOvertimeIncomeInput

Description

Input for creating an OvertimeIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
employmentId - ID The employment this income is associated with
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": "4",
  "employmentId": 4,
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateOwnedPropertyInput

Description

Input to the createOwnedProperty mutation.

Fields
Input Field Description
address - AddressInput US Address
currentUsageType - PropertyUsageType How the owner is using this property.
homeInsuranceMonthlyPayment - NonNegativeInt The dollar amount of monthly home insurance premium.
intendedDisposition - PropertyDisposition The intended disposition of the property. Indicates whether the borrowers will be retaining or selling (or sold) the property.
intendedUsageType - PropertyUsageType How the owner intends to use this property.
monthlyAssociationDues - NonNegativeInt Monthly association dues (in dollars)
monthlyRentalIncome - NonNegativeInt The expected monthly rental income (in dollars)
mortgageInsuranceMonthlyPayment - NonNegativeInt The dollar amount of monthly mortgage insurance monthly premium.
neighborhoodHousingType - NeighborhoodHousingType The type of housing (e.g. single or multi-family)
ownerIds - [ID!]! IDs of the borrowers who own this property
propertyTaxMonthlyPayment - NonNegativeInt The dollar amount of property taxes due per month.
propertyValue - NonNegativeInt The estimated value of the owned property, in whole dollars
purchaseDate - Date The date when the property was originally purchased.
sellDate - Date The date when the property was sold. Only relevant for previously owned properties.
Example
{
  "address": AddressInput,
  "currentUsageType": "INVESTMENT",
  "homeInsuranceMonthlyPayment": 123,
  "intendedDisposition": "PENDING_SALE",
  "intendedUsageType": "INVESTMENT",
  "monthlyAssociationDues": 123,
  "monthlyRentalIncome": 123,
  "mortgageInsuranceMonthlyPayment": 123,
  "neighborhoodHousingType": "CONDOMINIUM",
  "ownerIds": ["4"],
  "propertyTaxMonthlyPayment": 123,
  "propertyValue": 123,
  "purchaseDate": "2007-12-03",
  "sellDate": "2007-12-03"
}

CreateOwnedPropertyResponse

Description

Response of the createOwnedProperty mutation.

Fields
Field Name Description
ownedProperty - OwnedProperty! The created OwnedProperty
Example
{"ownedProperty": OwnedProperty}

CreatePartyInput

Fields
Input Field Description
dealId - ID! The ID of the deal to which the party will be associated. Note that the deal must have exactly one loan already. In the future, attaching a party to a loan will be done explicitly.
party - CreatePartyInputParty!
Example
{"dealId": 4, "party": CreatePartyInputParty}

CreatePartyInputParty

Fields
Input Field Description
address - AddressInput US address to update. Fields with non-null values will be updated, the rest will be ignored.
individual - PartyIndividualInput Details about the party, if the party is an individual (rather than a company)
legalEntity - PartyLegalEntityInput Details about the party, if the party is a legal entity
role - PartyRole Indicates the type of relationship between the party and the loan.
Example
{
  "address": AddressInput,
  "individual": PartyIndividualInput,
  "legalEntity": PartyLegalEntityInput,
  "role": "APPRAISER"
}

CreatePartyResponse

Fields
Field Name Description
party - Party
userErrors - [UserError!]!
Example
{
  "party": Party,
  "userErrors": [UserError]
}

CreatePendingNetSaleProceedsFromRealEstateAssetInput

Description

Input for creating a PendingNetSaleProceedsFromRealEstateAsset. The amount is the expected proceeds from the sale and should be less than or equal to the salePrice.

Fields
Input Field Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt! The cash or market value of the asset in dollars
borrowerIds - [ID!]! Asset-owning borrower IDs
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
ownedPropertyId - ID The ID of the associated OwnedProperty that is pending sale
salePrice - NonNegativeInt Sale price of the property in dollars. The salePrice must be greater than or equal to the asset amount (the expected proceeds).
Example
{
  "accountIdentifier": "abc123",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "borrowerIds": ["4"],
  "institutionName": "abc123",
  "nonBorrowerOwnerNames": ["xyz789"],
  "ownedPropertyId": 4,
  "salePrice": 123
}

CreatePensionIncomeInput

Description

Input for creating a PensionIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": "4",
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreatePreviousBorrowerAddressInput

Description

Create previous borrower address input

Fields
Input Field Description
address - AddressInput US address to update
borrowerId - ID! Borrower ID
monthlyRentAmount - NonNegativeInt The monthly rental amount in dollars
moveInDate - Date Move in date
moveOutDate - Date Move out date
residencyBasis - BorrowerResidencyBasis The basis on which the borrower lives/lived at this address
Example
{
  "address": AddressInput,
  "borrowerId": "4",
  "monthlyRentAmount": 123,
  "moveInDate": "2007-12-03",
  "moveOutDate": "2007-12-03",
  "residencyBasis": "LIVING_RENT_FREE"
}

CreatePreviousBorrowerAddressResponse

Fields
Field Name Description
address - Address! US Address
id - ID! Node ID
monthlyRentAmount - NonNegativeInt The monthly rental amount in dollars
moveInDate - Date Move in date
moveOutDate - Date Move out date
residencyBasis - BorrowerResidencyBasis The basis on which the borrower lives/lived at this address
Example
{
  "address": Address,
  "id": "4",
  "monthlyRentAmount": 123,
  "moveInDate": "2007-12-03",
  "moveOutDate": "2007-12-03",
  "residencyBasis": "LIVING_RENT_FREE"
}

CreateProceedsFromSaleOfNonRealEstateAssetInput

Fields
Input Field Description
amount - NonNegativeInt! The cash or market value of the asset in dollars
borrowerIds - [ID!]! Asset-owning borrower IDs
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
Example
{
  "amount": 123,
  "borrowerIds": [4],
  "nonBorrowerOwnerNames": ["xyz789"]
}

CreateProceedsFromSecuredLoanAssetInput

Fields
Input Field Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt! The cash or market value of the asset in dollars
borrowerIds - [ID!]! Asset-owning borrower IDs
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
Example
{
  "accountIdentifier": "xyz789",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "borrowerIds": [4],
  "institutionName": "xyz789",
  "nonBorrowerOwnerNames": ["xyz789"]
}

CreateProceedsFromUnsecuredLoanAssetInput

Fields
Input Field Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt! The cash or market value of the asset in dollars
borrowerIds - [ID!]! Asset-owning borrower IDs
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
Example
{
  "accountIdentifier": "xyz789",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "borrowerIds": [4],
  "institutionName": "xyz789",
  "nonBorrowerOwnerNames": ["xyz789"]
}

CreateProposedGrossRentForSubjectPropertyIncomeInput

Description

Input for creating a ProposedGrossRentForSubjectPropertyIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
ownedPropertyId - ID! The owned property to link this rental income to
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": "4",
  "ownedPropertyId": 4,
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreatePublicAssistanceIncomeInput

Description

Input for creating a PublicAssistanceIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": 4,
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateRealEstateOwnedGrossRentalIncomeInput

Description

Input for creating a RealEstateOwnedGrossRentalIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
ownedPropertyId - ID! The owned property to link this rental income to
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": 4,
  "ownedPropertyId": "4",
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateRetirementFundAssetInput

Fields
Input Field Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt! The cash or market value of the asset in dollars
borrowerIds - [ID!]! Asset-owning borrower IDs
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
Example
{
  "accountIdentifier": "xyz789",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "borrowerIds": [4],
  "institutionName": "xyz789",
  "nonBorrowerOwnerNames": ["abc123"]
}

CreateRetirementIncomeInput

Description

Input for creating a RetirementIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": "4",
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateRoyaltiesIncomeInput

Description

Input for creating a RoyaltiesIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": "4",
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateSavingsAccountAssetInput

Fields
Input Field Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt! The cash or market value of the asset in dollars
borrowerIds - [ID!]! Asset-owning borrower IDs
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
Example
{
  "accountIdentifier": "xyz789",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "borrowerIds": ["4"],
  "institutionName": "abc123",
  "nonBorrowerOwnerNames": ["abc123"]
}

CreateSelfEmploymentIncomeInput

Description

Input for creating a SelfEmploymentIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
business - SelfEmploymentBusinessInput The associated self-employment business (if one exists)
employmentClassification - EmploymentClassificationType! Whether this is the borrower's primary or secondary employer. Default = PRIMARY
endDate - Date End date. A value of null indicates that the employment is current.
externalId - String External ID from third-party services
isCurrentEmployment - Boolean Is the employment current?
numberOfMonthsInLineOfWork - NonNegativeInt The total number of months the borrower has been employed in this line of work, regardless of employer
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
position - String A name or description of the employment position or job title
startDate - Date Start date
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": "4",
  "business": SelfEmploymentBusinessInput,
  "employmentClassification": "PRIMARY",
  "endDate": "2007-12-03",
  "externalId": "xyz789",
  "isCurrentEmployment": false,
  "numberOfMonthsInLineOfWork": 123,
  "payPeriodFrequency": "ANNUALLY",
  "position": "xyz789",
  "startDate": "2007-12-03",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateSelfEmploymentLossIncomeInput

Description

Input for creating a SelfEmploymentLossIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": "4",
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateSeparateMaintenanceIncomeInput

Description

Input for creating a SeparateMaintenanceIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": "4",
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateSessionResponse

Fields
Field Name Description
advisorSession - AdvisorSession!
Example
{"advisorSession": AdvisorSession}

CreateSocialSecurityIncomeInput

Description

Input for creating a SocialSecurityIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": "4",
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateStandardEmploymentIncomeInput

Description

Input for creating a StandardEmploymentIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerHasSpecialRelationshipWithEmployer - Boolean! When true, indicates that the borrower has a special relationship with the employer, such as familial ties. Default = false
borrowerId - ID! The borrower associated with the income
employer - EmployerInput Employer details
employmentClassification - EmploymentClassificationType! Whether this is the borrower's primary or secondary employer. Default = PRIMARY
endDate - Date End date. A value of null indicates that the employment is current.
externalId - String External ID from third-party services
incomePayType - IncomePayType The type of pay (hourly or salaried)
isCurrentEmployment - Boolean Is the employment current?
numberOfMonthsInLineOfWork - NonNegativeInt The total number of months the borrower has been employed in this line of work, regardless of employer
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
position - String A name or description of the employment position or job title
startDate - Date Start date
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerHasSpecialRelationshipWithEmployer": false,
  "borrowerId": 4,
  "employer": EmployerInput,
  "employmentClassification": "PRIMARY",
  "endDate": "2007-12-03",
  "externalId": "abc123",
  "incomePayType": "HOURLY",
  "isCurrentEmployment": true,
  "numberOfMonthsInLineOfWork": 123,
  "payPeriodFrequency": "ANNUALLY",
  "position": "xyz789",
  "startDate": "2007-12-03",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateStockAssetInput

Fields
Input Field Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt! The cash or market value of the asset in dollars
borrowerIds - [ID!]! Asset-owning borrower IDs
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
Example
{
  "accountIdentifier": "xyz789",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "borrowerIds": ["4"],
  "institutionName": "xyz789",
  "nonBorrowerOwnerNames": ["xyz789"]
}

CreateStockOptionsAssetInput

Fields
Input Field Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt! The cash or market value of the asset in dollars
borrowerIds - [ID!]! Asset-owning borrower IDs
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
Example
{
  "accountIdentifier": "xyz789",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "borrowerIds": ["4"],
  "institutionName": "xyz789",
  "nonBorrowerOwnerNames": ["xyz789"]
}

CreateSubjectPropertyInput

Description

Input to the createSubjectProperty mutation

Fields
Input Field Description
address - AddressInput US Address
attachmentType - AttachmentEnum Whether the property is physically attached to neighboring units
dealId - ID! The ID of the deal
manuallyEstimatedValue - NonNegativeInt The manually estimated value of the property
propertyTaxesAndInsuranceIncludedInPayment - Boolean Is Property taxes and insurance included in payment
rentalEstimatedGrossMonthlyRentAmount - NonNegativeInt The estimated gross monthly rent amount (for investment properties)
Example
{
  "address": AddressInput,
  "attachmentType": "ATTACHED",
  "dealId": "4",
  "manuallyEstimatedValue": 123,
  "propertyTaxesAndInsuranceIncludedInPayment": false,
  "rentalEstimatedGrossMonthlyRentAmount": 123
}

CreateSubjectPropertyNetCashFlowIncomeInput

Description

Input for creating a SubjectPropertyNetCashFlowIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": 4,
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateSubjectPropertyResponse

Description

Response of the createSubjectProperty mutation

Fields
Field Name Description
id - ID! The ID of the SubjectProperty that was created
Example
{"id": 4}

CreateSupportTicketInput

Description

Input for filing a loan-specific support ticket.

Fields
Input Field Description
additionalRecipients - [SupportRecipientInput!] Extra addresses to copy on the ticket's opening message; at most 10. Later messages carry the recipients given to addSupportMessage.
attachmentDocumentIds - [ID!] Loan documents to attach: ids returned by requestSupportDocumentUpload's file POST, or document ids from this loan's documents. Documents are reusable across tickets and messages; at most 20 per message.
body - String! The question / ticket body.
issueType - ID! Key of the issue type uniquely identifying this ticket (from the issueTypes query, e.g. PRE_LOCK).
loanApplicationId - ID! The loan this ticket is about: its Pylon id or friendly loan id.
requesterEmail - String! Email of the person filing the ticket.
requesterName - String! Name of the person filing the ticket (the LO or processor).
Example
{
  "additionalRecipients": [SupportRecipientInput],
  "attachmentDocumentIds": [4],
  "body": "abc123",
  "issueType": "4",
  "loanApplicationId": "4",
  "requesterEmail": "abc123",
  "requesterName": "xyz789"
}

CreateSupportTicketResponse

Description

Response from filing a support ticket.

Fields
Field Name Description
ticket - SupportTicket! The created ticket.
Example
{"ticket": SupportTicket}

CreateTemporaryLeaveIncomeInput

Description

Input for creating a TemporaryLeaveIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": "4",
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateTipIncomeInput

Description

Input for creating a TipIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
employmentId - ID The employment this income is associated with
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": "4",
  "employmentId": 4,
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateTrailingCoBorrowerIncomeInput

Description

Input for creating a TrailingCoBorrowerIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": 4,
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateTrustAccountAssetInput

Fields
Input Field Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt! The cash or market value of the asset in dollars
borrowerIds - [ID!]! Asset-owning borrower IDs
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
trusteeName - String The legal name of the trustee
Example
{
  "accountIdentifier": "abc123",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "borrowerIds": [4],
  "institutionName": "abc123",
  "nonBorrowerOwnerNames": ["abc123"],
  "trusteeName": "xyz789"
}

CreateTrustIncomeInput

Description

Input for creating a TrustIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": "4",
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateUnemploymentIncomeInput

Description

Input for creating an UnemploymentIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": 4,
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateUpdateModeTokenInput

Description

Input to the createUpdateModeToken mutation.

Fields
Input Field Description
borrowerId - ID! ID of the borrower whose Plaid item needs re-authentication
itemId - String! Plaid item ID of the specific item that needs re-authentication
Example
{"borrowerId": 4, "itemId": "abc123"}

CreateUpdateModeTokenResponse

Description

Response for createUpdateModeToken mutation

Fields
Field Name Description
linkToken - String! Link token for Plaid Link update mode
Example
{"linkToken": "abc123"}

CreateVaBenefitsNonEducationalIncomeInput

Description

Input for creating a VaBenefitsNonEducationalIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": 4,
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

CreateWorkersCompensationIncomeInput

Description

Input for creating a WorkersCompensationIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID! The borrower associated with the income
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": 4,
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

Credit

Description

Credit related fields

Fields
Field Name Description
job - CreditPullJob Credit pull job
Arguments
id - ID!
missingFieldsForCreditPull - [CreditPullRequiredField!]! Required fields that are missing for a credit pull. Empty array means all required fields are present.
report - CreditReport Credit report
Arguments
id - ID!
udnMonitors - [UdnMonitorGql!]
Arguments
loanApplicationId - ID!
Example
{
  "job": CreditPullJob,
  "missingFieldsForCreditPull": ["BORROWER_CURRENT_ADDRESS"],
  "report": CreditReport,
  "udnMonitors": [UdnMonitorGql]
}

CreditBureau

Description

The name of a credit bureau

Values
Enum Value Description

EQUIFAX

EXPERIAN

OTHER

TRANSUNION

Example
"EQUIFAX"

CreditBusinessType

Description

The business type of a credit inquiry

Values
Enum Value Description

ADVERTISING

AUTOMOTIVE

BANKING

CLOTHING

COLLECTION_SERVICES

CONTRACTORS

DEPARTMENT_AND_MAIL_ORDER

EMPLOYMENT

FARM_AND_GARDEN_SUPPLIES

FINANCE

GOVERNMENT

GROCERY

HOME_FURNISHING

INSURANCE

JEWELRY_AND_CAMERA

LUMBER_AND_HARDWARE

MEDICAL_AND_HEALTH

MISCELLANEOUS

OIL_AND_NATIONAL_CREDIT_CARDS

PERSONAL_SERVICES_NOT_MEDICAL

REAL_ESTATE_AND_PUBLIC_ACCOMMODATION

SPORTING_GOODS

UTILITIES_AND_FUEL

WHOLESALE

Example
"ADVERTISING"

CreditExpiryStatus

Description

Expiry status of a credit report based on days since pull

Values
Enum Value Description

ACTIVE

CONSENT_EXPIRED

EXPIRED

EXPIRING_SOON

Example
"ACTIVE"

CreditInquiry

Description

Credit inquiry type

Fields
Field Name Description
creditBusinessType - CreditBusinessType The business type of the credit inquiry
creditInquiryResultType - CreditInquiryResultType The result type of the credit inquiry
date - DateTime Date of the credit inquiry
detailCreditBusinessType - DetailCreditBusinessType The detailed business type of the credit inquiry
id - ID! Credit inquiry ID
name - String Name of the creditor
Example
{
  "creditBusinessType": "ADVERTISING",
  "creditInquiryResultType": "ACCOUNT_CLOSED",
  "date": "2007-12-03T10:15:30Z",
  "detailCreditBusinessType": "ADVERTISING_AGENCIES",
  "id": 4,
  "name": "abc123"
}

CreditInquiryMutations

Fields
Field Name Description
updateCreditInquiry - UpdateCreditInquiryResponse Update a credit inquiry with an explanation and generate a Letter of Explanation PDF
Arguments
Example
{"updateCreditInquiry": UpdateCreditInquiryResponse}

CreditInquiryResultType

Description

The result type of a credit inquiry

Values
Enum Value Description

ACCOUNT_CLOSED

APPLICATION_PENDING

DECLINED

DID_NOT_INQUIRE

NOT_A_LENDER

NO_OPEN_ACCOUNT

OPEN_ACCOUNT_NUMBER_NOT_ISSUED

OPEN_DISCOVERED

OPEN_PRIMARY_ACCOUNT

REPORTING_AGENCY_INQUIRY

UNKNOWN

Example
"ACCOUNT_CLOSED"

CreditMutations

Description

Credit mutations

Fields
Field Name Description
deactivateUdnMonitoring - DeactivateUdnMonitoringResponse Deactivate UDN monitoring for a borrower
Arguments
invalidateCreditCache - InvalidateCreditCacheResponse Invalidate cached credit pull results for the given borrower(s). Future credit pulls will perform a fresh pull instead of returning cached results.
Arguments
refreshCreditReport - RefreshCreditReportResponse Refresh an existing completed credit report
Arguments
startIndividualCreditPullJob - StartIndividualCreditPullJobResponse Start a hard credit pull for an individual
startJointCreditPullJob - StartJointCreditPullJobResponse Start a joint hard credit pull for two co-borrowers on the same loan application
Arguments
unmergeCreditReport - UnmergeCreditReportResponse Unmerge a joint credit report into individual reports
Arguments
updateUdnNotificationEmails - UpdateUdnNotificationEmailsResponse Update notification emails for a UDN monitor
upgradeCreditReport - UpgradeCreditReportResponse Upgrade an existing credit report to include all three bureaus
Arguments
Example
{
  "deactivateUdnMonitoring": DeactivateUdnMonitoringResponse,
  "invalidateCreditCache": InvalidateCreditCacheResponse,
  "refreshCreditReport": RefreshCreditReportResponse,
  "startIndividualCreditPullJob": StartIndividualCreditPullJobResponse,
  "startJointCreditPullJob": StartJointCreditPullJobResponse,
  "unmergeCreditReport": UnmergeCreditReportResponse,
  "updateUdnNotificationEmails": UpdateUdnNotificationEmailsResponse,
  "upgradeCreditReport": UpgradeCreditReportResponse
}

CreditPullBorrowerInput

Description

Borrower with fields required for a credit pull

Fields
Input Field Description
consentType - CreditPullConsentType Credit pull consent type
id - ID! Borrower ID
taxIdentifierNumber - String Tax identifier number
taxIdentifierNumberType - TaxIdentifierNumberType Tax identifier number type
Example
{
  "consentType": "ELECTRONIC",
  "id": 4,
  "taxIdentifierNumber": "xyz789",
  "taxIdentifierNumberType": "INDIVIDUAL_TAXPAYER_IDENTIFICATION_NUMBER"
}

CreditPullConsentType

Description

Credit pull consent type

Values
Enum Value Description

ELECTRONIC

VERBAL

WRITTEN

Example
"ELECTRONIC"

CreditPullJob

Description

Credit pull job

Fields
Field Name Description
failureReason - String Human-readable reason the credit pull failed. Populated only when status is FAILED; null otherwise.
id - ID! Job ID
result - CreditReport The credit report. This field will be populated only if the credit pull job status is SUCCEEDED. Otherwise it will be null.
status - JobStatus! Job status
Example
{
  "failureReason": "abc123",
  "id": "4",
  "result": CreditReport,
  "status": "FAILED"
}

CreditPullRequiredField

Description

Required fields for a credit pull

Values
Enum Value Description

BORROWER_CURRENT_ADDRESS

BORROWER_CURRENT_ADDRESS_MOVE_IN_DATE

BORROWER_DATE_OF_BIRTH

BORROWER_EMAIL

BORROWER_FIRST_NAME

BORROWER_INSUFFICIENT_ADDRESS_HISTORY

BORROWER_LAST_NAME

BORROWER_MARITAL_STATUS

BORROWER_MILITARY_SERVICE_INFO

BORROWER_PHONE_NUMBER

POINT_OF_CONTACT

Example
"BORROWER_CURRENT_ADDRESS"

CreditPullType

Description

The type of credit pull performed on a borrower

Values
Enum Value Description

HARD

SOFT

Example
"HARD"

CreditReport

Description

Credit report

Fields
Field Name Description
bureauStatuses - [BureauFileStatus!] Per-bureau file statuses. Null for legacy pulls that predate bureau status tracking.
expiryStatus - CreditExpiryStatus! Expiry status derived from pullTime: ACTIVE (<83d), EXPIRING_SOON (83-89d), EXPIRED (90-119d), CONSENT_EXPIRED (120d+, consent re-gating required).
id - ID! Credit report ID
pullTime - DateTime! Time of credit pull
Example
{
  "bureauStatuses": [BureauFileStatus],
  "expiryStatus": "ACTIVE",
  "id": 4,
  "pullTime": "2007-12-03T10:15:30Z"
}

CreditScore

Description

An individual's credit score as reported by a specific credit bureau

Fields
Field Name Description
bureau - CreditBureau!
score - Float!
Example
{"bureau": "EQUIFAX", "score": 987.65}

CryptocurrencyAsset

Description

Cryptocurrency holdings

Fields
Field Name Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt! The cash or market value of the asset in dollars
assetReportId - ID ID of the latest asset report that verified this asset
borrowerIds - [ID!] Ids of borrowers that are account holders on this asset
description - String Description of the asset (e.g. coin and platform)
id - ID! Node ID
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
notableActivities - [FinancialAccountActivity!]! Notable activities
qualifiedAmount - NonNegativeInt The qualified amount of the asset in dollars, used for underwriting. Null if no qualification has been computed.
verifiedAmount - NonNegativeInt The verified cash or market value of the asset in dollars, confirmed by a third-party source
Example
{
  "accountIdentifier": "abc123",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "assetReportId": 4,
  "borrowerIds": [4],
  "description": "xyz789",
  "id": 4,
  "institutionName": "abc123",
  "nonBorrowerOwnerNames": ["xyz789"],
  "notableActivities": [FinancialAccountActivity],
  "qualifiedAmount": 123,
  "verifiedAmount": 123
}

CustomMarketingRate

Description

Custom marketing rate

Fields
Field Name Description
apr - Float!
discountPointsTotal - Float!
discountPointsTotalAmount - Int!
fipsCountyCode - String!
loanAmount - NonNegativeInt!
ltv - Float!
propertyUsageType - PropertyUsageType!
qualifyingFicoScore - Int!
rate - Float!
salesContractAmount - NonNegativeInt! The amount of money that the property will be purchased for. Also called the purchase price.
Example
{
  "apr": 123.45,
  "discountPointsTotal": 987.65,
  "discountPointsTotalAmount": 987,
  "fipsCountyCode": "abc123",
  "loanAmount": 123,
  "ltv": 123.45,
  "propertyUsageType": "INVESTMENT",
  "qualifyingFicoScore": 123,
  "rate": 123.45,
  "salesContractAmount": 123
}

CustomMarketingRateInput

Description

Custom marketing rate input

Fields
Input Field Description
calculateApr - Boolean Should closing costs be fetched in order to calculate an APR?. Default = true
concessions - NonNegativeInt Lender concession in dollars. Reduces the rate cost (points) the borrower would otherwise pay, but never below zero. Default = 0
fipsCountyCode - String! The five-digit FIPS county code based on ANSI standard (INCITS 31:2009)
loanAmount - NonNegativeInt! Amount of the loan in dollars, also called principal
loanTermYears - Float! Loan term, in years. Default = 30
ltv - Float! Loan to value ratio. Lower values get better rates. A typical value for a conforming conventional loan would be 0.8; values over that usually require mortgage insurance.
maxDiscountPointsTotal - Float Maximum total discount points. Default = 0
propertyUsageType - PropertyUsageType
qualifyingFicoScore - Int FICO score used to determine loan eligibility and interest rate
rateLockDays - Float! How long to lock the rate, in days. Default = 30
Example
{
  "calculateApr": true,
  "concessions": 123,
  "fipsCountyCode": "abc123",
  "loanAmount": 123,
  "loanTermYears": 123.45,
  "ltv": 987.65,
  "maxDiscountPointsTotal": 987.65,
  "propertyUsageType": "INVESTMENT",
  "qualifyingFicoScore": 123,
  "rateLockDays": 123.45
}

CustomerApiAccessStatus

Description

Whether an organization's API access is active, paused, or inactive.

Values
Enum Value Description

ACTIVE

INACTIVE

PAUSED

Example
"ACTIVE"

CustomerCommsOptIns

Fields
Field Name Description
comms - [CommsWithOptInStatus!]!
customerId - ID!
customerName - String!
Example
{
  "comms": [CommsWithOptInStatus],
  "customerId": "4",
  "customerName": "abc123"
}

CustomerMembership

Description

Lightweight summary of an organization the requesting user has access to via a role relation. Used by the org switcher.

Fields
Field Name Description
companyName - String!
customerSlug - String!
id - ID!
Example
{
  "companyName": "xyz789",
  "customerSlug": "abc123",
  "id": 4
}

CustomerPointAdjustment

Fields
Field Name Description
costAbsorption - [CostAbsorption!] The cost absorption from the customer on the loan
costMultiplier - Float! Determines if we should apply warehousing costs or not
margin - Float The margin from the customer on the loan
Example
{
  "costAbsorption": [CostAbsorption],
  "costMultiplier": 987.65,
  "margin": 123.45
}

CustomerProvisioningMutations

Description

Customer provisioning mutations (internal Pylon administrators only).

Fields
Field Name Description
provisionCustomer - ProvisionCustomerResponse Provision a new customer: creates the customer record (and default related rows) plus a machine-to-machine Auth0 application for direct API access. Only available to internal Pylon administrators.
Arguments
Example
{"provisionCustomer": ProvisionCustomerResponse}

DataEntryResolution

Description

Resolved by data entry — fields were filled in directly. No evidence produced.

Fields
Field Name Description
assertions - [Assertion!]! The satisfying assertion(s) pinned at resolution time. Always empty for data-entry resolutions, which produce no evidence.
description - String! Human-readable summary.
method - String! Resolution method identifier. Superseded by assertions. Retained temporarily for already-shipped clients and removed after one release.
Example
{
  "assertions": [Assertion],
  "description": "xyz789",
  "method": "xyz789"
}

Date

Description

A date string, such as 2007-12-03, compliant with the full-date format outlined in section 5.6 of the RFC 3339 profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar.

Example
"2007-12-03"

DateTime

Description

A date-time string at UTC, such as 2007-12-03T10:15:30Z, compliant with the date-time format outlined in section 5.6 of the RFC 3339 profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar.

Example
"2007-12-03T10:15:30Z"

DateTimeComparator

Description

Comparisons available on an instant-valued field. Bounds may be absolute or given as an ISO 8601 duration relative to now.

Fields
Input Field Description
eq - RelativeDateTime
gt - RelativeDateTime
gte - RelativeDateTime
in - [RelativeDateTime!]
isNull - Boolean
lt - RelativeDateTime
lte - RelativeDateTime
neq - RelativeDateTime
nin - [RelativeDateTime!]
null - Boolean
Example
{
  "eq": RelativeDateTime,
  "gt": RelativeDateTime,
  "gte": RelativeDateTime,
  "in": [RelativeDateTime],
  "isNull": false,
  "lt": RelativeDateTime,
  "lte": RelativeDateTime,
  "neq": RelativeDateTime,
  "nin": [RelativeDateTime],
  "null": false
}

DateTimeISO

Description

An exact point in time, serialized as an ISO 8601 / RFC 3339 compliant UTC date-time string (e.g. 2007-12-03T10:15:30Z).

Example
"2007-12-03T10:15:30Z"

DayComparator

Description

Comparisons on a field that is stored as an instant but read back as a calendar day. Bounds are days, in UTC, so a value read off a row can be handed straight back.

Fields
Input Field Description
eq - Date On this day.
gt - Date After this day — the day itself is excluded.
gte - Date On or after this day.
isNull - Boolean
lt - Date Before this day — the day itself is excluded.
lte - Date On or before this day, inclusive of the whole day.
null - Boolean
Example
{
  "eq": "2007-12-03",
  "gt": "2007-12-03",
  "gte": "2007-12-03",
  "isNull": true,
  "lt": "2007-12-03",
  "lte": "2007-12-03",
  "null": true
}

DeactivateUdnMonitoringInput

Description

Input to deactivate UDN monitoring

Fields
Input Field Description
monitorId - ID! The UDN monitor ID to deactivate
Example
{"monitorId": "4"}

DeactivateUdnMonitoringResponse

Description

Response from deactivating UDN monitoring

Fields
Field Name Description
success - Boolean
userErrors - [String!]
Example
{"success": true, "userErrors": ["abc123"]}

Deal

Fields
Field Name Description
borrowers - BorrowerConnection!
Arguments
after - String

A cursor value that indicates the position after which items should be returned. Typically this should be the 'endCursor' of the previous page.

before - String

A cursor value that indicates the position before which items should be returned. Typically this should be the 'startCursor' of the following page.

first - Int

The number of items to be retrieved for forward pagination. Either 'first' or 'last' must be specified, but not both. This value must be between 1 and 500.

last - Int

The number of items to be retrieved for backward pagination. Either 'first' or 'last' must be specified, but not both. This value must be between 1 and 500.

sortDirection - SortDirection

The direction in which the results should be sorted. Defaults to ASC.

creationTime - DateTime! The time when the deal was created
friendlyId - String! An alternative ID that might be more aesthetically pleasing.
id - ID! Deal ID
loans - [LoanApplication!]!
parties - [Party!]
Example
{
  "borrowers": BorrowerConnection,
  "creationTime": "2007-12-03T10:15:30Z",
  "friendlyId": "abc123",
  "id": 4,
  "loans": [LoanApplication],
  "parties": [Party]
}

DealClaimTokenMutations

Description

One-time deal claim-link mutations

Fields
Field Name Description
claim - ClaimDealClaimTokenResponse
Arguments
issue - IssueDealClaimTokenResponse
Arguments
Example
{
  "claim": ClaimDealClaimTokenResponse,
  "issue": IssueDealClaimTokenResponse
}

DealConnection

Fields
Field Name Description
edges - [DealEdge!]!
pageInfo - PageInfo!
Example
{
  "edges": [DealEdge],
  "pageInfo": PageInfo
}

DealEdge

Fields
Field Name Description
cursor - ID!
node - Deal!
Example
{
  "cursor": "4",
  "node": Deal
}

DealMutations

Fields
Field Name Description
create - CreateDealResponse
Example
{"create": CreateDealResponse}

DebtToIncomeViolation

Description

Optimizer could not find a solution without exceeding the DTI limit.

Fields
Field Name Description
debtExceededDollars - Float! Minimum dollar amount needed in monthly debt reduction get to the allowed DTI.
dti - Float! Borrower's DTI in decimals, including this product.
dtiLimit - Float! Maximum allowed DTI in decimals, per the guidelines.
increaseMonthlyIncome - Float! Minimum dollar amount of extra monthly income needed to reach DTI limit.
Example
{
  "debtExceededDollars": 987.65,
  "dti": 987.65,
  "dtiLimit": 987.65,
  "increaseMonthlyIncome": 123.45
}

DeclareMilitaryServiceInput

Description

Input to declare a borrower's military service details.

Fields
Input Field Description
borrowerId - ID! ID of the borrower to update
militaryServiceExpectedCompletionDate - Date
militaryStatusType - MilitaryStatusType!
survivingSpouseIndicator - Boolean
Example
{
  "borrowerId": 4,
  "militaryServiceExpectedCompletionDate": "2007-12-03",
  "militaryStatusType": "ACTIVE_DUTY",
  "survivingSpouseIndicator": true
}

DeclareMilitaryServiceResponse

Description

Response from the declareMilitaryService mutation.

Fields
Field Name Description
militaryServiceDeclaration - MilitaryServiceDeclaration
Example
{"militaryServiceDeclaration": MilitaryService}

DeclareNoMilitaryServiceInput

Description

Input to declare that a borrower has no military service.

Fields
Input Field Description
borrowerId - ID! ID of the borrower to update
survivingSpouseIndicator - Boolean
Example
{
  "borrowerId": "4",
  "survivingSpouseIndicator": true
}

DeclareNoMilitaryServiceResponse

Description

Response from the declareNoMilitaryService mutation.

Fields
Field Name Description
militaryServiceDeclaration - MilitaryServiceDeclaration
Example
{"militaryServiceDeclaration": MilitaryService}

DeclinedPreApprovalRun

Description

A declined pre-approval run

Fields
Field Name Description
id - ID!
ineligibleProducts - [IneligibleProduct!]!
Example
{
  "id": "4",
  "ineligibleProducts": [IneligibleProduct]
}

DefinedContributionPlanIncome

Description

Income from defined contribution plans

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "id": "4",
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": 4
}

DegradedProductStructure

Description

A loan's attached product structure rendered without its rate-sheet detail, because the pinned rate could not be resolved. Deal facts come from the structure's own row; rate-derived fields are absent. Surface as a degraded card, not an error page.

Fields
Field Name Description
apr - Float! The APR at which the deal was priced.
closingCosts - Float! The closing costs, in dollars.
downPaymentAmount - Float! The down payment, in dollars.
dti - Float! The debt-to-income ratio, as a percentage.
id - ID! The unique ID of this product structure.
interest - PositiveInt! The total interest over the life of the loan, in dollars.
loanTermYears - PositiveInt! The loan term, in whole years.
ltv - Float! The loan-to-value ratio, as a percentage.
monthlyPayment - Float! The monthly payment, in dollars.
pricedAsOf - DateTime When the rate sheet these figures were priced against was received, when the structure recorded it.
principal - PositiveFloat! The total principal, in dollars.
rateDetailUnavailable - Boolean! Always true on this type: the pinned rate could not be resolved, so rate-sheet-derived detail is unavailable. Render a degraded card.
rateId - ID! The ID of the pinned rate that could not be resolved.
totalPoints - Float! The total points paid, as a percentage of the principal.
Example
{
  "apr": 123.45,
  "closingCosts": 987.65,
  "downPaymentAmount": 987.65,
  "dti": 123.45,
  "id": 4,
  "interest": 123,
  "loanTermYears": 123,
  "ltv": 123.45,
  "monthlyPayment": 123.45,
  "pricedAsOf": "2007-12-03T10:15:30Z",
  "principal": 123.45,
  "rateDetailUnavailable": false,
  "rateId": "4",
  "totalPoints": 987.65
}

DelegatedBorrowerContributor

Fields
Field Name Description
borrowerId - ID! The borrower this contributor acts for.
displayName - String!
id - ID!
Example
{
  "borrowerId": "4",
  "displayName": "xyz789",
  "id": "4"
}

DeleteAssetInput

Fields
Input Field Description
id - ID! The ID of the asset to delete
Example
{"id": 4}

DeleteAssetResponse

Fields
Field Name Description
id - ID! The ID of the asset that was deleted
Example
{"id": 4}

DeleteBorrowerInput

Fields
Input Field Description
id - ID! ID of the borrower to delete
Example
{"id": 4}

DeleteBorrowerResponse

Description

Response of the delete borrower mutation.

Fields
Field Name Description
id - ID! ID of the borrower that was deleted
Example
{"id": "4"}

DeleteFeeInput

Fields
Input Field Description
id - ID!
Example
{"id": "4"}

DeleteFeeResponse

Fields
Field Name Description
id - ID!
Example
{"id": "4"}

DeleteFulfillmentPartyInput

Fields
Input Field Description
id - ID!
Example
{"id": 4}

DeleteFulfillmentPartyResponse

Fields
Field Name Description
id - ID!
Example
{"id": 4}

DeleteIncomeInput

Fields
Input Field Description
id - ID! ID of the income to delete
Example
{"id": 4}

DeleteIncomeResponse

Fields
Field Name Description
id - ID! ID of the deleted income
Example
{"id": "4"}

DeleteIssueTypeInput

Description

Input for deleting an issue type.

Fields
Input Field Description
key - ID! Key of the issue type to retire.
Example
{"key": "4"}

DeleteIssueTypeResponse

Description

Response from deleting an issue type.

Fields
Field Name Description
label - SupportIssueType! The retired issue type.
Example
{"label": SupportIssueType}

DeleteLiabilityInput

Fields
Input Field Description
id - ID! Liability ID
Example
{"id": 4}

DeleteLiabilityResponse

Description

Response of the deleteLiability mutation.

Fields
Field Name Description
id - ID Liability ID
userErrors - [GenericUserError!]!
Example
{
  "id": "4",
  "userErrors": [GenericUserError]
}

DeleteLoanScriptInput

Description

Input for deleting a loan script.

Fields
Input Field Description
scenarioId - String! The scenarioId of the script to delete.
Example
{"scenarioId": "abc123"}

DeleteLoanScriptResponse

Description

Result of deleting a loan script.

Fields
Field Name Description
loanScript - LoanScript! The script as it was at deletion.
Example
{"loanScript": LoanScript}

DeleteNonBorrowingOwnerInput

Fields
Input Field Description
id - ID!
Example
{"id": "4"}

DeleteNonBorrowingOwnerResponse

Fields
Field Name Description
id - ID!
Example
{"id": "4"}

DeleteNotableActivityInput

Description

Input to the deleteNotableActivity mutation.

Fields
Input Field Description
id - ID! The ID of the activity to delete
Example
{"id": "4"}

DeleteNotableActivityResponse

Description

Response of the deleteNotableActivity mutation.

Fields
Field Name Description
id - ID! The ID of the activity that was deleted
Example
{"id": "4"}

DeleteOrganizationRoleInput

Fields
Input Field Description
id - ID!
Example
{"id": "4"}

DeleteOrganizationRoleResponse

Fields
Field Name Description
deletedOrganizationRole - DeletedOrganizationRole!
Example
{"deletedOrganizationRole": DeletedOrganizationRole}

DeleteOrganizationStateLicensesInput

Fields
Input Field Description
stateLicenses - [ID!]!
Example
{"stateLicenses": [4]}

DeleteOrganizationStateLicensesResponse

Fields
Field Name Description
licensing - OrganizationLicensing
userErrors - [GenericUserError!]!
Example
{
  "licensing": OrganizationLicensing,
  "userErrors": [GenericUserError]
}

DeleteOrganizationUserInput

Fields
Input Field Description
id - ID!
Example
{"id": 4}

DeleteOrganizationUserResponse

Fields
Field Name Description
deletedOrganizationUser - DeletedOrganizationUser! Use deletedUser. Selecting this field discards userErrors on a refused delete, because it cannot be null.
deletedUser - DeletedOrganizationUser Identity of the removed user, or null when the delete was refused (see userErrors).
userErrors - [GenericUserError!]!
Example
{
  "deletedOrganizationUser": DeletedOrganizationUser,
  "deletedUser": DeletedOrganizationUser,
  "userErrors": [GenericUserError]
}

DeleteOwnedPropertyInput

Fields
Input Field Description
id - ID! ID of the owned property to delete
Example
{"id": "4"}

DeleteOwnedPropertyResponse

Fields
Field Name Description
id - ID! ID of the deleted owned property
Example
{"id": "4"}

DeletePartyInput

Fields
Input Field Description
id - ID!
Example
{"id": 4}

DeletePartyResponse

Fields
Field Name Description
party - Party!
Example
{"party": Party}

DeletePreviousBorrowerAddressInput

Description

Delete previous borrower address Input

Fields
Input Field Description
id - ID! Borrower Address ID
Example
{"id": "4"}

DeletePreviousBorrowerAddressResponse

Fields
Field Name Description
id - ID! Borrower Address ID
Example
{"id": "4"}

DeletedOrganizationRole

Fields
Field Name Description
name - String!
Example
{"name": "abc123"}

DeletedOrganizationUser

Fields
Field Name Description
email - String!
firstName - String!
lastName - String!
Example
{
  "email": "abc123",
  "firstName": "abc123",
  "lastName": "abc123"
}

DelinquentLiabilityBlocker

Description

A liability has a delinquent status

Fields
Field Name Description
delinquencyType - DelinquentReportStatus! The type of delinquency
liabilityId - ID! The ID of the delinquent liability
type - String!
Example
{
  "delinquencyType": "Delinquent30",
  "liabilityId": 4,
  "type": "abc123"
}

DelinquentReportStatus

Description

Types of delinquent liability report statuses

Values
Enum Value Description

Delinquent30

Delinquent60

Delinquent90

Delinquent120

DelinquentOver120

Example
"Delinquent30"

DemoAusConditionPreview

Description

A single AUS condition preview within a scenario.

Fields
Field Name Description
fallbackKey - String! The LPA fallback-key identifier.
section - String! The condition section (e.g. Assets).
text - String! Human-readable condition text.
Example
{
  "fallbackKey": "xyz789",
  "section": "abc123",
  "text": "xyz789"
}

DemoAusConditionScenario

Description

A named AUS-condition scenario available for seeding.

Fields
Field Name Description
conditions - [DemoAusConditionPreview!]! The conditions this scenario will seed.
description - String! Human-readable description of the scenario.
name - String! The unique scenario key.
Example
{
  "conditions": [DemoAusConditionPreview],
  "description": "abc123",
  "name": "xyz789"
}

DemoSeedMutations

Description

Root object for demo seed mutations (internal use only).

Fields
Field Name Description
seedAusRun - SeedAusRunResponse Seed a SUCCEEDED LPA AUS run + actionable conditions onto a loan so AUS_CONDITION requirements surface, then reconcile. Internal use only.
Arguments
seedWireOutWorksheetCase - SeedWireOutWorksheetCaseResponse Populate a fresh development loan with a synthetic wire-out case copied from the funding worksheet. Internal use only.
Arguments
Example
{
  "seedAusRun": SeedAusRunResponse,
  "seedWireOutWorksheetCase": SeedWireOutWorksheetCaseResponse
}

DemoSeedQueries

Description

Root object for demo seed queries (internal use only).

Fields
Field Name Description
ausConditionScenarios - [DemoAusConditionScenario!]! List all available AUS-condition scenarios for seeding.
wireOutWorksheetScenarios - [DemoWireOutWorksheetScenario!]! List the synthetic wire-out cases available from the funding worksheet.
Example
{
  "ausConditionScenarios": [DemoAusConditionScenario],
  "wireOutWorksheetScenarios": [
    DemoWireOutWorksheetScenario
  ]
}

DemoWireOutWorksheetScenario

Description

A synthetic wire-out case copied from the funding worksheet.

Fields
Field Name Description
expectedWireOutAmount - MonetaryAmount! The wire-out amount expected for this case.
sourceRow - Int! The source worksheet row number.
Example
{
  "expectedWireOutAmount": MonetaryAmount,
  "sourceRow": 987
}

DemographicInfo

Description

Demographic information

Fields
Field Name Description
asianOther - String
asianRace - [AsianRace!]
ethnicity - [Ethnicity!]
ethnicityNotDisclosed - Boolean
hispanicOrigin - [HispanicOrigin!]
hispanicOther - String
pacificIslanderOther - String
pacificIslanderRace - [PacificIslanderRace!]
race - [Race!]
raceNotDisclosed - Boolean
sex - [Sex!]
sexNotDisclosed - Boolean
tribe - String
Example
{
  "asianOther": "xyz789",
  "asianRace": ["CHINESE"],
  "ethnicity": ["HISPANIC"],
  "ethnicityNotDisclosed": false,
  "hispanicOrigin": ["CUBA"],
  "hispanicOther": "xyz789",
  "pacificIslanderOther": "xyz789",
  "pacificIslanderRace": ["GUAMANIAN_OR_CHAMORRO"],
  "race": ["AM_INDIAN_ALASKAN"],
  "raceNotDisclosed": false,
  "sex": ["FEMALE"],
  "sexNotDisclosed": true,
  "tribe": "xyz789"
}

DenyRateLockInput

Description

Input to the denyRateLock mutation.

Fields
Input Field Description
loanId - ID! The ID or friendly ID of the loan.
Example
{"loanId": "4"}

DenyRateLockResponse

Description

Response of the denyRateLock mutation.

Fields
Field Name Description
loanId - ID! The ID or friendly ID of the loan.
Example
{"loanId": "4"}

DependencyProvenance

Description

Provenance from a data dependency. The process needs this information to proceed.

Fields
Field Name Description
description - String! Human-readable explanation.
evidence - [GuidelineReference!]! Supporting evidence. Typically empty.
Example
{
  "description": "xyz789",
  "evidence": [GuidelineReference]
}

DetachBorrowerAssetInput

Fields
Input Field Description
borrowerId - ID! The ID of the borrower to detach from the asset
id - ID! The ID of the asset to detach from the borrower
Example
{"borrowerId": 4, "id": 4}

DetachBorrowerAssetResponse

Description

Response of the detachBorrowerAsset mutation.

Fields
Field Name Description
asset - Asset! The asset that was updated
Example
{"asset": Asset}

DetachBorrowerLiabilitiesInput

Fields
Input Field Description
id - ID! The ID of borrower for which the liabilities are detached from
liabilityIds - [ID!]! The ID of liabilities to detach from the borrower
Example
{"id": "4", "liabilityIds": [4]}

DetachBorrowerLiabilitiesResponse

Fields
Field Name Description
borrower - Borrower! The updated Borrower
Example
{"borrower": Borrower}

DetachContributorFromDealInput

Fields
Input Field Description
contributorId - ID!
dealId - ID!
Example
{"contributorId": 4, "dealId": "4"}

DetachContributorFromDealResponse

Fields
Field Name Description
contributor - Contributor!
deal - Deal!
Example
{
  "contributor": Contributor,
  "deal": Deal
}

DetachLoanContactInput

Description

Input to the loan.detachContact mutation.

Fields
Input Field Description
id - ID! ID of the contact to be detached from the loan.
loanId - ID! The ID or friendly ID of the loan.
Example
{"id": "4", "loanId": 4}

DetachLoanContactResponse

Description

Response of the loan.detachContact mutation.

Fields
Field Name Description
contact - Contact! The contact that was successfully detached from the loan.
Example
{"contact": Contact}

DetachOwnedPropertyLiabilitiesInput

Fields
Input Field Description
id - ID! The ID owned property for which the liabilities are detached from
liabilityIds - [ID!]! The ID of liabilities to detach from the subject property
Example
{"id": "4", "liabilityIds": [4]}

DetachOwnedPropertyLiabilitiesResponse

Fields
Field Name Description
ownedProperty - OwnedProperty! The updated OwnedPropertyIntent
Example
{"ownedProperty": OwnedProperty}

DetachSubjectPropertyAddressInput

Description

Input to the detachSubjectPropertyAddress mutation.

Fields
Input Field Description
id - ID! The ID of the subject property from which the address should be detached
Example
{"id": 4}

DetachSubjectPropertyAddressResponse

Description

Response of the detachSubjectPropertyAddress mutation.

Fields
Field Name Description
subjectProperty - SubjectProperty! The SubjectProperty that was updated
Example
{"subjectProperty": SubjectProperty}

DetachSubjectPropertyLiabilitiesInput

Fields
Input Field Description
liabilityIds - [ID!]! The ID of liabilities to detach from the subject property
loanId - ID! The ID or friendly ID of the Loan for which the liabilities are detached from subject property
Example
{
  "liabilityIds": ["4"],
  "loanId": "4"
}

DetachSubjectPropertyLiabilitiesResponse

Fields
Field Name Description
subjectProperty - SubjectProperty! The updated SubjectProperty
Example
{"subjectProperty": SubjectProperty}

DetailCreditBusinessType

Description

The detailed business type of a credit inquiry

Values
Enum Value Description

ADVERTISING_AGENCIES

ADVERTISING_MISCELLANEOUS

ADVERTISING_NEWS_MEDIA

AUTOMOTIVE_AUCTIONS_WHOLESALE

AUTOMOTIVE_DEALERS_NEW

AUTOMOTIVE_DEALERS_USED

AUTOMOTIVE_FARM_IMPLEMENT_DEALERS

AUTOMOTIVE_LEASING

AUTOMOTIVE_MISCELLANEOUS

AUTOMOTIVE_PARTS

AUTOMOTIVE_RENTAL

AUTOMOTIVE_REPAIR_BODY_SHOPS

AUTOMOTIVE_SERVICE_STATIONS

AUTOMOTIVE_TBA_STORES_TIRE_DEALERS

AUTOMOTIVE_TRUCK_DEALERS

BANKING_ALL_BANKS

BANKING_BANKCARD

BANKING_COMMERCIAL_INDUSTRIAL

BANKING_INSTALLMENT_LOANS_CREDIT_LINE

BANKING_MISCELLANEOUS

BANKING_MORTGAGE_DEPARTMENT

BANKING_SAVINGS_BANKS

CLOTHING_GENERAL

CLOTHING_MISCELLANEOUS

CLOTHING_SPECIALTY_SHOE_HAT_ETC

COLLECTION_SERVICES_ACB_OF_A

COLLECTION_SERVICES_OTHER

CONTRACTORS_GENERAL

CONTRACTORS_HOME_IMPROVEMENT

CONTRACTORS_MISCELLANEOUS

CONTRACTORS_SUBCONTRACTORS

DEPARTMENT_AND_MAIL_ORDER_COMPLETE_DEPARTMENT_STORES

DEPARTMENT_AND_MAIL_ORDER_MAIL_ORDER_FIRMS

DEPARTMENT_AND_MAIL_ORDER_MISCELLANEOUS

DEPARTMENT_AND_MAIL_ORDER_VARIETY_STORES

EMPLOYMENT_SERVICES

FARM_AND_GARDEN_SUPPLIES_CHEMICAL_AND_FERTILIZER

FARM_AND_GARDEN_SUPPLIES_FEED_AND_SEED

FARM_AND_GARDEN_SUPPLIES_MISCELLANEOUS

FARM_AND_GARDEN_SUPPLIES_NURSERY_AND_LANDSCAPING

FINANCE_AUTOMOBILE

FINANCE_BAIL_BONDS

FINANCE_BROKERAGE_AND_INVESTMENT_FIRMS

FINANCE_BULK_PURCHASE

FINANCE_CREDIT_UNIONS

FINANCE_EDUCATION

FINANCE_FACTORING_COMPANIES

FINANCE_MISCELLANEOUS

FINANCE_MORTGAGE_BROKERS

FINANCE_MORTGAGE_COMPANIES

FINANCE_MORTGAGE_REPORTERS

FINANCE_PERSONAL_LOAN_COMPANIES

FINANCE_SALES

FINANCE_SAVINGS_AND_LOAN_ASSOCIATIONS

GOVERNMENT_CITY_AND_COUNTY

GOVERNMENT_FEDERAL

GOVERNMENT_MISCELLANEOUS

GOVERNMENT_STATE

GROCERY_DAIRIES

GROCERY_MISCELLANEOUS

GROCERY_NEIGHBORHOOD

GROCERY_SUPERMARKETS

HOME_FURNISHING_APPLIANCE_SALES_AND_SERVICE

HOME_FURNISHING_CARPET_AND_FLOOR_COVERINGS

HOME_FURNISHING_ELECTRONICS_TELEVISION_AND_RADIO

HOME_FURNISHING_FURNITURE

HOME_FURNISHING_FURNITURE_RENTAL

HOME_FURNISHING_INTERIOR_DECORATORS_DESIGN

HOME_FURNISHING_MISCELLANEOUS

HOME_FURNISHING_MUSIC_AND_RECORDS

INSURANCE_GENERAL

INSURANCE_LIFE

INSURANCE_MISCELLANEOUS

JEWELRY_AND_CAMERA_CAMERAS

JEWELRY_AND_CAMERA_COMPUTER_SALES_AND_SERVICES

JEWELRY_AND_CAMERA_JEWELRY

JEWELRY_AND_CAMERA_MISCELLANEOUS

JEWELRY_AND_CAMERA_VIDEO_TAPE_RENTAL_AND_SALES

LUMBER_AND_HARDWARE_AIR_CONDITIONING_PLUMBING_ELECTRICAL

LUMBER_AND_HARDWARE_FIXTURE_AND_CABINET

LUMBER_AND_HARDWARE_LUMBER_YARDS

LUMBER_AND_HARDWARE_MISCELLANEOUS

LUMBER_AND_HARDWARE_PAINT_GLASS_AND_PAPER

LUMBER_AND_HARDWARE_STORES

MEDICAL_AND_HEALTH_ANIMAL_HOSPITALS

MEDICAL_AND_HEALTH_CHIROPRACTORS

MEDICAL_AND_HEALTH_DENTISTS

MEDICAL_AND_HEALTH_DOCTORS_AND_CLINICS

MEDICAL_AND_HEALTH_FUNERAL_HOMES_AND_CEMETERIES

MEDICAL_AND_HEALTH_HOSPITALS

MEDICAL_AND_HEALTH_MEDICAL_EQUIPMENT

MEDICAL_AND_HEALTH_MISCELLANEOUS

MEDICAL_AND_HEALTH_OPTOMETRISTS_AND_OPTICAL_STORES

MEDICAL_AND_HEALTH_OSTEOPATHS

MEDICAL_AND_HEALTH_PHARMACIES_AND_DRUGS

MEDICAL_AND_HEALTH_VETERINARIANS

MISCELLANEOUS_AUTHENTICATION_PRODUCTS

MISCELLANEOUS_CREDIT_BUREAUS

MISCELLANEOUS_CREDIT_REPORT_BROKERS

MISCELLANEOUS_OTHER

MISCELLANEOUS_RETAIL

MISCELLANEOUS_SERVICES

MISCELLANEOUS_WHOLESALE

OIL_AND_NATIONAL_CREDIT_CARDS_AIRLINE_TRAVEL_CARDS

OIL_AND_NATIONAL_CREDIT_CARDS_CREDIT_CARD_COMPANIES

OIL_AND_NATIONAL_CREDIT_CARDS_MISCELLANEOUS

OIL_AND_NATIONAL_CREDIT_CARDS_OIL_COMPANIES

PERSONAL_SERVICES_NOT_MEDICAL_ACCOUNTANTS

PERSONAL_SERVICES_NOT_MEDICAL_BARBERS_BEAUTY_SHOPS

PERSONAL_SERVICES_NOT_MEDICAL_COUNTRY_CLUBS_RESTAURANTS

PERSONAL_SERVICES_NOT_MEDICAL_DETECTIVE_INVESTIGATIVE_SERVICES

PERSONAL_SERVICES_NOT_MEDICAL_DRY_CLEANING_LAUNDRY

PERSONAL_SERVICES_NOT_MEDICAL_ENGINEERING

PERSONAL_SERVICES_NOT_MEDICAL_EQUIPMENT_LEASING

PERSONAL_SERVICES_NOT_MEDICAL_FLORISTS

PERSONAL_SERVICES_NOT_MEDICAL_HEALTH_AND_FITNESS_CLUBS

PERSONAL_SERVICES_NOT_MEDICAL_LEGAL

PERSONAL_SERVICES_NOT_MEDICAL_MISCELLANEOUS

PERSONAL_SERVICES_NOT_MEDICAL_PEST_CONTROL

PERSONAL_SERVICES_NOT_MEDICAL_PHOTOGRAPHERS

REAL_ESTATE_AND_PUBLIC_ACCOMMODATION_APARTMENTS

REAL_ESTATE_AND_PUBLIC_ACCOMMODATION_HOTELS

REAL_ESTATE_AND_PUBLIC_ACCOMMODATION_MISCELLANEOUS

REAL_ESTATE_AND_PUBLIC_ACCOMMODATION_MOBILE_HOMES

REAL_ESTATE_AND_PUBLIC_ACCOMMODATION_MOTELS

REAL_ESTATE_AND_PUBLIC_ACCOMMODATION_OFFICE_LEASING

REAL_ESTATE_AND_PUBLIC_ACCOMMODATION_PROPERTY_MANAGEMENT

REAL_ESTATE_AND_PUBLIC_ACCOMMODATION_REAL_ESTATE_SALES

SPORTING_GOODS_AIRCRAFT_SALES_AND_SERVICE

SPORTING_GOODS_BOAT_AND_MARINAS

SPORTING_GOODS_MISCELLANEOUS

SPORTING_GOODS_MOTORCYCLE_AND_BICYCLE

SPORTING_GOODS_STORES

UTILITIES_AND_FUEL_CABLE_SATELLITE_COMPANIES

UTILITIES_AND_FUEL_COAL_AND_WOOD_DEALERS

UTILITIES_AND_FUEL_ELECTRICAL_LIGHT_AND_POWER

UTILITIES_AND_FUEL_FUEL_OIL_DEALERS

UTILITIES_AND_FUEL_GARBAGE_AND_RUBBISH_DISPOSALS

UTILITIES_AND_FUEL_GAS_NATURAL_AND_BOTTLED

UTILITIES_AND_FUEL_MISCELLANEOUS

UTILITIES_AND_FUEL_TELEPHONE_COMPANIES

UTILITIES_AND_FUEL_WATER_COMPANIES

WHOLESALE_AUTOMOTIVE_SUPPLIES

WHOLESALE_BUILDING_AND_HARDWARE_SUPPLY

WHOLESALE_CLOTHING_AND_DRY_GOODS

WHOLESALE_CREDIT_CARD_PROCESSING

WHOLESALE_DRUGS_AND_CHEMICALS

WHOLESALE_GROCERIES

WHOLESALE_HOME_FURNISHINGS

WHOLESALE_MACHINERY_AND_EQUIPMENT

WHOLESALE_MISCELLANEOUS

Example
"ADVERTISING_AGENCIES"

DisabilityIncome

Description

Disability income

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "id": "4",
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": "4"
}

DisableContributorInput

Fields
Input Field Description
id - ID!
Example
{"id": "4"}

DisableContributorResponse

Fields
Field Name Description
contributor - Contributor!
Example
{"contributor": Contributor}

DisclosedAmortizationType

Description

The loan type half of TRID's Product (§1026.37(a)(10)(ii)). A normalization of MISMO's AmortizationType — OTHER is a product outside TRID's loan types, not an absent value.

Values
Enum Value Description

ADJUSTABLE_RATE

FIXED_RATE

GRADUATED_PAYMENT

GROWING_EQUITY

OTHER

STEP_RATE

Example
"ADJUSTABLE_RATE"

DisclosedAmountChange

Description

One money figure a disclosure printed, beside where the loan stands now. A null on either side is a figure that side did not state, which stays distinguishable from a real zero.

Fields
Field Name Description
currentAmount - MonetaryAmount
disclosedAmount - MonetaryAmount
figureType - DisclosedFigureType! Never NOTE_RATE_PERCENT, which is not money.
Example
{
  "currentAmount": MonetaryAmount,
  "disclosedAmount": MonetaryAmount,
  "figureType": "CASH_TO_CLOSE_TOTAL"
}

DisclosedFee

Description

One fee line as a disclosure package printed it, kept verbatim from the MISMO FEE_DETAIL rather than mapped onto the closing-cost vocabulary.

Fields
Field Name Description
id - ID!
Example
{"id": 4}

DisclosedFigureChange

Example
DisclosedAmountChange

DisclosedFigureType

Values
Enum Value Description

CASH_TO_CLOSE_TOTAL

NOTE_AMOUNT

NOTE_RATE_PERCENT

PROJECTED_PAYMENT_ESTIMATED_ESCROW_PAYMENT_AMOUNT

PROJECTED_PAYMENT_MI_PAYMENT_AMOUNT

Example
"CASH_TO_CLOSE_TOTAL"

DisclosedFormType

Description

Which of the two TRID forms a disclosure package printed.

Values
Enum Value Description

CLOSING_DISCLOSURE

LOAN_ESTIMATE

Example
"CLOSING_DISCLOSURE"

DisclosedLoanProduct

Description

TRID's Product (§1026.37(a)(10)) on one side of a comparison: the loan type, and the payment features that qualify it. A null component is one that side did not state, and is compared as unstated rather than as false.

Fields
Field Name Description
amortizationType - DisclosedAmortizationType
balloonIndicator - Boolean
interestOnlyIndicator - Boolean
negativeAmortizationIndicator - Boolean
seasonalPaymentFeatureIndicator - Boolean
Example
{
  "amortizationType": "ADJUSTABLE_RATE",
  "balloonIndicator": true,
  "interestOnlyIndicator": false,
  "negativeAmortizationIndicator": false,
  "seasonalPaymentFeatureIndicator": false
}

DisclosedLoanStructure

Description

A TRID package as it was recorded: the terms and fee lines that package printed.

Fields
Field Name Description
id - ID!
Example
{"id": 4}

DisclosedRateChange

Description

The note rate a disclosure printed, beside the loan's current rate.

Fields
Field Name Description
currentRatePercent - Float This field is expressed as a percent. As an example, 50.1% is expressed as 50.1.
disclosedRatePercent - Float This field is expressed as a percent. As an example, 50.1% is expressed as 50.1.
figureType - DisclosedFigureType! Always NOTE_RATE_PERCENT.
Example
{
  "currentRatePercent": 123.45,
  "disclosedRatePercent": 123.45,
  "figureType": "CASH_TO_CLOSE_TOTAL"
}

Disclosure

Fields
Field Name Description
cancelledOn - DateTime
combinedPdfDownloadUrl - String Presigned download URL for the combined signed-package PDF — every document in the package merged into one file, with the e-sign certificate as the final section. Null until the package is fully signed and the certificate has been received, at which point the artifact is generated automatically.
completedOn - DateTime
createdOn - DateTime When the package was generated, as reported by the document provider. Every package reachable through disclosuresHistory has one, so this is the only moment guaranteed to be present — notably on manually delivered (wet-sign) packages, which report SENT with a null sentOn.
documentLinks - [DocumentLink!]
electronicToPaperSentOn - DateTime When the package was re-sent to the recipient on paper after electronic delivery, if tracked by the provider.
id - ID! The ID of the disclosure.
packageType - DisclosurePackageType!
provider - String!
receivedOn - DateTime
recipients - [DisclosureRecipient!]
sentOn - DateTime
status - DisclosureStatus The status of the disclosure package. For manually delivered packages (e.g. wet-sign closings in states that do not permit eClosings), a package that has been generated but not yet marked delivered is reported as SENT with a null sentOn.
Example
{
  "cancelledOn": "2007-12-03T10:15:30Z",
  "combinedPdfDownloadUrl": "xyz789",
  "completedOn": "2007-12-03T10:15:30Z",
  "createdOn": "2007-12-03T10:15:30Z",
  "documentLinks": [DocumentLink],
  "electronicToPaperSentOn": "2007-12-03T10:15:30Z",
  "id": 4,
  "packageType": "ADVERSE_ACTION",
  "provider": "xyz789",
  "receivedOn": "2007-12-03T10:15:30Z",
  "recipients": [DisclosureRecipient],
  "sentOn": "2007-12-03T10:15:30Z",
  "status": "CANCELLED"
}

DisclosureDrift

Description

What measuring the loan against its baseline concluded.

Example
DisclosureDriftAssessed

DisclosureDriftAssessed

Description

The loan was measured against its most recently disclosed package. An empty reasons is the genuine 'nothing drifted'.

Fields
Field Name Description
baseline - DisclosureDriftBaseline!
outcome - DisclosureDriftOutcome!
reasons - [DisclosureDriftReason!]!
Example
{
  "baseline": DisclosureDriftBaseline,
  "outcome": "ASSESSED",
  "reasons": [AprInaccurateReason]
}

DisclosureDriftBaseline

Description

The disclosure package the assessment measured drift against.

Fields
Field Name Description
disclosedLoanStructure - DisclosedLoanStructure! The recorded package the drift was measured against.
disclosedOn - DateTimeISO!
formType - DisclosedFormType!
packageType - DisclosurePackageType! Always one of the four package types that print TRID terms.
Example
{
  "disclosedLoanStructure": DisclosedLoanStructure,
  "disclosedOn": "2007-12-03T10:15:30Z",
  "formType": "CLOSING_DISCLOSURE",
  "packageType": "ADVERSE_ACTION"
}

DisclosureDriftFeeIdentity

Description

Enough of a fee line to name it in a reason. Exactly one of disclosedFee and closingCost is set: a closingCost names a charge the loan carries that the disclosure never printed.

Fields
Field Name Description
closingCost - Fee The closing cost the reason cites, set only where there is no disclosed line to cite instead.
disclosedFee - DisclosedFee The disclosed line the reason cites. Null when the loan carries a charge the disclosure never printed.
feeDescription - String
feeType - FeeType
integratedDisclosureLineNumberValue - String The only stable line identity across two disclosures.
integratedDisclosureSectionType - IntegratedDisclosureSectionType
Example
{
  "closingCost": Fee,
  "disclosedFee": DisclosedFee,
  "feeDescription": "abc123",
  "feeType": "APPLICATION_FEE",
  "integratedDisclosureLineNumberValue": "xyz789",
  "integratedDisclosureSectionType": "DUE_FROM_BORROWER_AT_CLOSING"
}

DisclosureDriftNoBaseline

Description

The loan has no recorded TRID package, so it owes an initial Loan Estimate rather than a redisclosure. Not the same as nothing having drifted.

Fields
Field Name Description
outcome - DisclosureDriftOutcome!
Example
{"outcome": "ASSESSED"}

DisclosureDriftOutcome

Values
Enum Value Description

ASSESSED

NO_BASELINE

Example
"ASSESSED"

DisclosureDriftReason

DisclosureDriftReasonKind

Description

Discriminates a DisclosureDriftReason, so a consumer can branch without an inline fragment per member.

Values
Enum Value Description

APR_INACCURATE

LOAN_PRODUCT_CHANGED

LOAN_TERM_CHANGED

PREPAYMENT_PENALTY_ADDED

TEN_PERCENT_BUCKET_EXCEEDED

ZERO_TOLERANCE_FEE_INCREASED

Example
"APR_INACCURATE"

DisclosurePackageType

Description

Stage of a disclosure package.

Values
Enum Value Description

ADVERSE_ACTION

APPRAISAL

CLOSING

CLOSING_DISCLOSURE

INITIAL_DISCLOSURE

PRE_DISCLOSURE

PROCESSING

QUALITY_ASSURANCE

REDISCLOSURE

SECONDARY

SHIPPING

TILA_REDISCLOSURE

TITLE_REQUEST

UNDERWRITING

VERIFICATION

Example
"ADVERSE_ACTION"

DisclosurePreview

Fields
Field Name Description
createdOn - DateTime
documentLinks - [DocumentLink!]
Example
{
  "createdOn": "2007-12-03T10:15:30Z",
  "documentLinks": [DocumentLink]
}

DisclosureRecipient

Description

A recipient of a disclosure package.

Fields
Field Name Description
displayName - String The full name of the disclosure recipient.
email - String The email address of the disclosure recipient.
link - DisclosureLink Link with access information for the disclosure recipient. May be null if the signing URL is not yet available.
linkExpiresOn - DateTime When this recipient's signing link expires, if tracked by the provider.
receivedOn - DateTime When this recipient received (was sent) the disclosure package, if tracked by the provider.
signatureRequired - Boolean! Indicates whether the recipient is required to sign the disclosure. Some recipients receive a package for reference only and are never expected to sign it (for example, the lender on a redisclosure); for those, signed stays false without the package being incomplete.
signed - Boolean! Indicates whether the recipient has signed the disclosure.
signedOn - DateTime When this recipient signed/completed the disclosure package, if tracked by the provider.
type - DisclosureRecipientType The enum type of the disclosure recipient.
Example
{
  "displayName": "abc123",
  "email": "abc123",
  "link": DisclosureLink,
  "linkExpiresOn": "2007-12-03T10:15:30Z",
  "receivedOn": "2007-12-03T10:15:30Z",
  "signatureRequired": false,
  "signed": false,
  "signedOn": "2007-12-03T10:15:30Z",
  "type": "BORROWER"
}

DisclosureRecipientType

Description

Type of a recipient of a disclosure package.

Values
Enum Value Description

BORROWER

LENDER

THIRD_PARTY

Example
"BORROWER"

DisclosureStatus

Description

The status of a disclosure package.

Values
Enum Value Description

CANCELLED

COMPLETED

EXPIRED

FAILED

SENDING

SENT

Example
"CANCELLED"

Disclosures

Fields
Field Name Description
adverseAction - Disclosure
closingDisclosure - Disclosure
initialDisclosure - Disclosure
redisclosure - Disclosure
Example
{
  "adverseAction": Disclosure,
  "closingDisclosure": Disclosure,
  "initialDisclosure": Disclosure,
  "redisclosure": Disclosure
}

DisclosuresHistory

Fields
Field Name Description
disclosures - [Disclosure!]!
Example
{"disclosures": [Disclosure]}

DisclosuresPreviews

Fields
Field Name Description
adverseAction - DisclosurePreview
closingDisclosure - DisclosurePreview
initialDisclosure - DisclosurePreview
redisclosure - DisclosurePreview
Example
{
  "adverseAction": DisclosurePreview,
  "closingDisclosure": DisclosurePreview,
  "initialDisclosure": DisclosurePreview,
  "redisclosure": DisclosurePreview
}

DisclosuresRunStatus

Description

The status of an asynchronous disclosures run. Disclosure generation and sending happen on a background worker after a mutation such as floatStructure returns, so this is how a caller observes the eventual outcome — including the failure reason when a send does not go out.

Fields
Field Name Description
disclosuresRunId - ID! The ID of the disclosures run.
errors - [String!]! Human-readable failure reasons, populated when status is FAILED. Empty for runs that are still processing or that succeeded.
stage - DisclosuresStage The disclosure stage this run is generating.
status - JobStatus! PROCESSING while the package is still being generated/sent, SUCCEEDED once the package has been sent, or FAILED if the send did not complete (see errors for the reason).
Example
{
  "disclosuresRunId": 4,
  "errors": ["xyz789"],
  "stage": "ADVERSE_ACTION_DISCLOSURES",
  "status": "FAILED"
}

DisclosuresStage

Description

Stage of disclosure generation (INITIAL_DISCLOSURES, REDISCLOSURES, CLOSING_DISCLOSURES, ADVERSE_ACTION_DISCLOSURES).

Values
Enum Value Description

ADVERSE_ACTION_DISCLOSURES

CLOSING_DISCLOSURES

INITIAL_DISCLOSURES

REDISCLOSURES

Example
"ADVERSE_ACTION_DISCLOSURES"

DismissDuplicateSuggestionInput

Fields
Input Field Description
duplicateOfId - ID! Credit-report liability ID
id - ID! Self-reported liability ID
Example
{"duplicateOfId": 4, "id": 4}

DismissDuplicateSuggestionResponse

Description

Response of the dismissDuplicateSuggestion mutation.

Fields
Field Name Description
liability - Liability! The updated Liability
Example
{"liability": Liability}

Dispute

Description

A dispute act in the evidence log: a CHALLENGE/REJECTION/INVALIDATION pinned to a prior entry, or a WAIVE targeting the requirement itself.

Fields
Field Name Description
author - Contributor! WHO authored this act — always a Contributor, resolved from the writing context, never client-supplied.
cause - InvalidationCause Why the invalidation was written. Populated for INVALIDATION only.
createdAt - DateTimeISO! When this act was written.
id - ID! Stable content-addressed identifier, resolvable via the root node(id) query.
kind - DisputeKind! The dispute act being recorded.
reasoning - String The author's reasoning narrative. Null when a redaction has tombstoned the text.
target - Evidence The pinned edge this act targets. Null for WAIVE, which targets the requirement itself.
targetSuperseded - Boolean! True when the pinned target is no longer current-in-slot per the fold (with this act itself excluded): something else — a newer assertion or another act — has displaced it, so this dispute is historical. False for WAIVE.
Example
{
  "author": Contributor,
  "cause": "ENV_CHANGE",
  "createdAt": "2007-12-03T10:15:30Z",
  "id": "4",
  "kind": "CHALLENGE",
  "reasoning": "xyz789",
  "target": Evidence,
  "targetSuperseded": false
}

DisputeKind

Description

The kind of dispute act: CHALLENGE or REJECTION of a prior assertion, WAIVE of a requirement, or a system INVALIDATION of an assertion whose inputs may no longer hold.

Values
Enum Value Description

CHALLENGE

INVALIDATION

REJECTION

WAIVE

Example
"CHALLENGE"

DividendsInterestIncome

Description

Dividends interest income

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "id": 4,
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": 4
}

Document

Description

Represents a document entity that groups one or more related files.

Fields
Field Name Description
associatedEntities - [DocumentEntity!]! The entities (like borrowers) associated with this document.
category - String! The category of the document, such as Borrower, Credit, or Disclosure.
documentLink - DocumentLink! The link corresponding to the document.
id - ID! The ID of the document.
name - String! The display name of the document.
uploadedAt - DateTime! The date and time the document was uploaded.
Example
{
  "associatedEntities": [DocumentEntity],
  "category": "xyz789",
  "documentLink": DocumentLink,
  "id": 4,
  "name": "abc123",
  "uploadedAt": "2007-12-03T10:15:30Z"
}

DocumentByIdInput

Description

Input to fetch a single document by its ID.

Fields
Input Field Description
documentId - ID! The document ID.
Example
{"documentId": "4"}

DocumentEntity

Description

Represents an entity (like a borrower) that is associated with a document.

Fields
Field Name Description
id - ID! The unique identifier of the entity.
kind - DocumentEntityKind! The type of entity this represents (e.g., BORROWER).
Example
{"id": 4, "kind": "APPRAISAL"}

DocumentEntityKind

Values
Enum Value Description

APPRAISAL

BORROWER

Example
"APPRAISAL"

DocumentIntakeDocument

Description

Where one uploaded file has got to in the intake pipeline.

Fields
Field Name Description
attempt - Int! Which read attempt this describes: 1 for the original, incremented by each accepted retry. Polling is sampling, so a second attempt that fails exactly as the first did is otherwise indistinguishable from no retry at all.
detailsFound - Int How many values were located in this file, counted as its citations. Null while the file is still working and null wherever the server is not counting — never estimated, and null is not zero.
documentId - ID! The uploaded file — the same id the upload returned. Split sections are folded into their packet and never appear on their own.
documentKind - String The classifier's answer, or null until the splitter has one. An upper-snake token; for a packet split into several kinds, the kind of its first section.
failureReason - DocumentIntakeFailureReason Set only when state is FAILED.
fileName - String! The name the file was uploaded under.
receivedAt - DateTime! Server clock: when the upload was taken delivery of.
retryable - Boolean! Whether asking for this file to be read again would do anything. False for every state but FAILED, so a client never offers a button that no-ops.
state - DocumentIntakeState! Where this file has got to.
Example
{
  "attempt": 987,
  "detailsFound": 987,
  "documentId": 4,
  "documentKind": "abc123",
  "failureReason": "DOCUMENT_BLURRY",
  "fileName": "abc123",
  "receivedAt": "2007-12-03T10:15:30Z",
  "retryable": true,
  "state": "FAILED"
}

DocumentIntakeFailureReason

Description

Why a file could not be read. The same closed set as ExtractionFailureReason, so one client mapping serves both surfaces.

Values
Enum Value Description

DOCUMENT_BLURRY

DOCUMENT_EDITED

DOCUMENT_REDACTED

EVIDENCE_NOT_DERIVABLE

EXTRACTION_FAILED

USABILITY_CHECK_FAILED

WORKFLOW_ERROR

Example
"DOCUMENT_BLURRY"

DocumentIntakeMutations

Description

Document-intake mutations namespace.

Fields
Field Name Description
retry - RetryDocumentIntakeResponse Read one uploaded file again. Resolves once a fresh read has been started, not once it has finished; poll documentIntake.status for the outcome. A file that is not in a state a re-read could improve is refused rather than silently accepted.
Arguments
seedFromDocuments - SeedFromDocumentsResponse Replaced by seedLoanFromDocuments/documentIntake.seeding (PAPI-321). This member no longer does anything.
Arguments
seedLoanFromDocuments - SeedLoanFromDocumentsResponse Seed a loan from an explicit set of its uploaded documents (PAPI-125, PAPI-321). Resolves once the run has STARTED, not once it has finished — poll documentIntake.seeding for that. A call arriving while a prior run is still active on this loan cancels it (ending it CANCELLED) and starts fresh: there is no once-per-loan limit and no eligibility refusal — never-override makes serving any loan, already filled or not, safe. Refused through userErrors only when none of the given documentIds resolve to this loan's own uploads.
Arguments
Example
{
  "retry": RetryDocumentIntakeResponse,
  "seedFromDocuments": SeedFromDocumentsResponse,
  "seedLoanFromDocuments": SeedLoanFromDocumentsResponse
}

DocumentIntakeQueries

Description

Root type for per-file intake status queries.

Fields
Field Name Description
seedOutcome - SeedOutcomeResponse! Replaced by seedLoanFromDocuments/documentIntake.seeding (PAPI-321). This member no longer does anything.
Arguments
seeding - DocumentSeeding The loan's most recent seed-from-documents run: where it has got to, its own documents, counts of field KEYS, and per-field-key outcomes — never field values. Deliberately narrow: the audit record of what landed where is the write-receipt trail's, not this poll's. Null when the loan has never been seeded.
Arguments
status - DocumentIntakeStatusResponse! Every uploaded file in the loan and what came of it: where each is in the pipeline, how it was classified, how many values it yielded, and — for a file that could not be read — why, and whether asking again would help.
Arguments
Example
{
  "seedOutcome": SeedOutcomeResponse,
  "seeding": DocumentSeeding,
  "status": DocumentIntakeStatusResponse
}

DocumentIntakeState

Description

Where one uploaded file has got to. QUEUED and READING are working states; READ, FILED_NOT_READ and FAILED are terminal. FILED_NOT_READ means the file was classified as a kind we do not extract — it is not an error and offers no retry.

Values
Enum Value Description

FAILED

FILED_NOT_READ

QUEUED

READ

READING

Example
"FAILED"

DocumentIntakeStatusInput

Description

Scope for a per-file intake status read.

Fields
Input Field Description
loanApplicationId - ID! The loan whose uploaded files to report. Every file the loan holds appears, whichever upload lane brought it in.
Example
{"loanApplicationId": "4"}

DocumentIntakeStatusResponse

Description

Every uploaded file in one scope, and what came of it.

Fields
Field Name Description
detailsFound - Int Values located across the whole scope. Null when nothing has been counted yet; a zero means zero.
documents - [DocumentIntakeDocument!]! One entry per uploaded file, oldest first.
observedAt - DateTime! Server clock: when this snapshot was taken. Both timestamps come from here so a client judging how long a file has been reading never subtracts a device clock from a server one.
Example
{
  "detailsFound": 123,
  "documents": [DocumentIntakeDocument],
  "observedAt": "2007-12-03T10:15:30Z"
}

DocumentKind

Description

The extractable document kind a classified section routes to. Null on a section means no extractor exists for it yet (recorded as OTHER_DOCUMENT for review).

Values
Enum Value Description

BANK_STATEMENT

CREDIT_REPORT

GOVERNMENT_ID

HOI_PAYMENT_RECEIPT

HOI_POLICY

INVESTMENT_ACCOUNT_STATEMENT

LETTER_OF_EXPLANATION

MORTGAGE_STATEMENT

PAYOFF_QUOTE

PAYSTUB

PURCHASE_CONTRACT

W2

Example
"BANK_STATEMENT"

DocumentLinkArchive

Description

Why an archived document was archived, carried on the link so the uploader can see what became of it.

Fields
Field Name Description
reasonCategory - ArchiveReasonCategory
Example
{"reasonCategory": "AssociatedToDifferentAspect"}

DocumentLinkSource

Description

How the document is joined to this task. UPLOADED_TO_TASK: it was uploaded against this task and the link rests on that claim alone — either its filed document type/entity does NOT match the task (it lives elsewhere on the loan) or it has since been archived. MATCHED_BY_TYPE: its filed type/entity matches the task, but it was not uploaded against it (uploaded elsewhere, or generated). UPLOADED_AND_MATCHED: both — the upload landed where the uploader intended.

Values
Enum Value Description

MATCHED_BY_TYPE

UPLOADED_AND_MATCHED

UPLOADED_TO_TASK

Example
"MATCHED_BY_TYPE"

DocumentRequiredCondition

Fields
Field Name Description
numberOfRequiredDocumentTypes - Int
requireDistinctDocumentTypes - Boolean
requiredDocumentTypes - [DocumentType!]!
Example
{
  "numberOfRequiredDocumentTypes": 987,
  "requireDistinctDocumentTypes": false,
  "requiredDocumentTypes": [DocumentType]
}

DocumentReview

Description

The review of a single document: its status and, when ready, a plain-English summary of the document and the actions taken.

Fields
Field Name Description
audience - DocumentReviewAudience! Which reader scope this summary was written for.
declaredTaskRefusal - DocumentReviewDeclaredTaskRefusal Set when the review refused the task the uploader declared. Null means the uploader declared no task or the review honored the declaration. On CONDITION_MISMATCH the document was filed on the loan under its classified type and is NOT attached to the declared condition — an underwriter looking at that condition will not see it there.
status - DocumentReviewStatus! Whether the review is pending, not completed, or ready.
summary - String The review's plain-English summary of the document and the actions taken. Present only when the status is READY.
taskConfidence - DocumentReviewTaskConfidence The review's stated confidence that this document answers the task it was uploaded against, with the agent's rationale. Null when the review stated no confidence — a review recorded before confidence existed, or an agent that declined to state one. Absence means "not stated", never a low score.
Example
{
  "audience": "BORROWER",
  "declaredTaskRefusal": DocumentReviewDeclaredTaskRefusal,
  "status": "NOT_COMPLETED",
  "summary": "abc123",
  "taskConfidence": DocumentReviewTaskConfidence
}

DocumentReviewAudience

Description

Which reader scope a document's review summary was written for.

Values
Enum Value Description

BORROWER

DEVELOPER

LOAN_OFFICER

UNDERWRITER

Example
"BORROWER"

DocumentReviewDeclaredTaskRefusal

Description

A declared task the review refused: the uploader chose a request task and the review filed the document elsewhere on the loan instead of attaching it to that task.

Fields
Field Name Description
kind - DocumentReviewDeclaredTaskRefusalKind! Why the declared task was not honored.
reason - String! Human-readable reason the declared task was refused, e.g. which document type the condition requires versus what was classified.
Example
{
  "kind": "ALREADY_TERMINAL",
  "reason": "xyz789"
}

DocumentReviewDeclaredTaskRefusalKind

Description

Why the review did not honor the task the uploader declared. CONDITION_MISMATCH means the classified document type is not one the declared condition admits, so the document was filed on the loan under its own classified type and is NOT attached to the declared condition. NOT_ON_LOAN and NOT_A_REQUEST_TASK mean the declared task could not take a document at all; ALREADY_TERMINAL means it was already completed or cancelled when the review ran.

Values
Enum Value Description

ALREADY_TERMINAL

CONDITION_MISMATCH

NOT_A_REQUEST_TASK

NOT_ON_LOAN

Example
"ALREADY_TERMINAL"

DocumentReviewStatus

Description

The state of a document's review: PENDING while the summary is still being generated, NOT_COMPLETED once a dispatched review has gone past its pending window without producing a summary, and READY when the summary is available.

Values
Enum Value Description

NOT_COMPLETED

PENDING

READY

Example
"NOT_COMPLETED"

DocumentReviewTaskConfidence

Description

The review's stated confidence that the document answers the task it was uploaded against: an integer percent and the reviewing agent's own one-sentence rationale, recorded as evidence for a human reviewer. Suitable for sorting or badging a review queue; not a machine gate.

Fields
Field Name Description
rationale - String! The reviewing agent's own words on why, verbatim.
score - Int! Confidence that the document answers its task, 0-100.
Example
{"rationale": "abc123", "score": 987}

DocumentSeeding

Description

One seed-from-documents RUN — never deleted, so a loan may hold several across its life, each a permanent part of its record.

Fields
Field Name Description
documents - [DocumentIntakeDocument!]! This run's own documents and their intake status.
fields - [IntakeFieldOutcome!]! Empty until status is COMPLETED.
id - ID! This run's own id.
outcome - DocumentSeedingOutcome! Zeroed counts until status is COMPLETED.
refusal - String The typed refusal code (e.g. SEED_NO_NAMED_DOCUMENTS). Null unless status is REFUSED.
status - DocumentSeedingStatus! Where this run stands.
Example
{
  "documents": [DocumentIntakeDocument],
  "fields": [IntakeFieldOutcome],
  "id": "4",
  "outcome": DocumentSeedingOutcome,
  "refusal": "xyz789",
  "status": "CANCELLED"
}

DocumentSeedingInput

Description

Scope for a document-seeding read.

Fields
Input Field Description
loanApplicationId - ID! The loan whose most recent seeding run to report.
Example
{"loanApplicationId": 4}

DocumentSeedingOutcome

Description

Counts of field KEYS a settled run landed, NEVER field values. Zeroed until status is COMPLETED. Deliberately narrow and must not grow into an audit trail: what landed where, with which citations, is the write-receipt record's to answer, not a polling endpoint's.

Fields
Field Name Description
appliedCount - Int! Fields written onto the application, counted across every seeded borrower.
coBorrowerCreated - Boolean! Whether the run minted at least one co-borrower for a second person the documents named.
contestedCount - Int! Distinct fields the documents contradicted each other about, left for a person to settle.
contestedPersonCount - Int! People the packet named who read too much like an existing borrower to mint and not enough to match — left for a person to settle. Their documents are attached but joined to nobody.
heldCount - Int! Fields held by a loan freeze, counted across borrowers.
preexistingCount - Int! Fields already holding somebody's typed value, held rather than overwritten — typed values always win.
unattributedDocumentCount - Int! Documents naming nobody the run could compare — a nameless paystub, a name outside the comparable alphabet. Attached to the loan, joined to no borrower; somebody should file them by hand.
withheldCount - Int! Distinct fields read and deliberately not written — income, today.
Example
{
  "appliedCount": 123,
  "coBorrowerCreated": true,
  "contestedCount": 987,
  "contestedPersonCount": 987,
  "heldCount": 123,
  "preexistingCount": 123,
  "unattributedDocumentCount": 987,
  "withheldCount": 987
}

DocumentSeedingStatus

Description

Where one seed-from-documents RUN stands. PENDING/RUNNING cover a live run; COMPLETED/REFUSED/FAILED are terminal; CANCELLED is a run a later seedLoanFromDocuments call on the same loan preempted (cancel-and-replace) before it reached a terminal state of its own.

Values
Enum Value Description

CANCELLED

COMPLETED

FAILED

PENDING

REFUSED

RUNNING

Example
"CANCELLED"

DocumentType

Fields
Field Name Description
aliases - [String!]
externalIdentifier - String
id - String
name - String
Example
{
  "aliases": ["abc123"],
  "externalIdentifier": "xyz789",
  "id": "xyz789",
  "name": "abc123"
}

DocumentUploadFulfillment

Description

Fulfill a requirement by uploading a document.

Fields
Field Name Description
description - String! What document is needed.
name - String! Short name, e.g. "Upload W2".
requirements - [Requirement!]! Sub-requirements for this option. Each carries its own phase - a partially-satisfied composite lists SatisfiedRequirement children alongside OpenRequirement ones. Empty when the option itself is directly actionable.
satisfied - Boolean! Whether the document has been uploaded and accepted.
uploadUrl - String! URL to POST the document to (multipart/form-data).
Example
{
  "description": "abc123",
  "name": "abc123",
  "requirements": [Requirement],
  "satisfied": false,
  "uploadUrl": "abc123"
}

DocumentUploadResolution

Description

Resolved by uploading documents. Carries evidence linking to the uploaded files.

Fields
Field Name Description
assertions - [Assertion!]! The satisfying assertion(s) pinned at resolution time.
description - String! Human-readable summary.
method - String! Resolution method identifier. Superseded by assertions. Retained temporarily for already-shipped clients and removed after one release.
Example
{
  "assertions": [Assertion],
  "description": "abc123",
  "method": "abc123"
}

DocumentUploadStatus

Description

The status of a document upload.

Values
Enum Value Description

COMPLETE

FAILED

UPLOADING

Example
"COMPLETE"

DuplicateLiabilitySuggestion

Fields
Field Name Description
duplicateOf - Liability! A possible matching credit-report mortgage
liability - Liability! The self-reported mortgage to review
Example
{
  "duplicateOf": Liability,
  "liability": Liability
}

EligiblePreQualification

Fields
Field Name Description
apr - Float!
discountPointsTotal - Float!
discountPointsTotalAmount - Int!
loanAmount - NonNegativeInt!
ltv - Float!
rate - Float!
salesContractAmount - NonNegativeInt!
Example
{
  "apr": 987.65,
  "discountPointsTotal": 123.45,
  "discountPointsTotalAmount": 123,
  "loanAmount": 123,
  "ltv": 987.65,
  "rate": 123.45,
  "salesContractAmount": 123
}

EligibleProductPricing

Fields
Field Name Description
adjustableRateDetail - ProductPricingAdjustableRateDetail If non-null, this product represents an adjustable rate
id - ID The unique ID of this product pricing result.
lock - PositiveInt! The number of days this rate can be locked for.
product - Product! The product to which these calculations apply.
publishedAt - DateTimeISO! The date and time that rates for this product were published.
publishedOn - Date! The date that rates for this product were published. Use publishedAt for full timestamp precision.
rateStack - [StructuringResult!]!
rates - [ProductPricingRate!]! A list of rates available for this loan. The first rate in the list is the best rate available given the provided points buy. Each subsequent rate is better but requires additional points buy in order for the borrower to qualify. Use rateStack, which carries the same eligible structures plus ineligible and error entries; filter by __typename for EligibleProductStructure. This field will be removed once external usage has stopped.
term - PositiveInt! The term of the loan being considered in years.
Example
{
  "adjustableRateDetail": ProductPricingAdjustableRateDetail,
  "id": "4",
  "lock": 123,
  "product": Product,
  "publishedAt": "2007-12-03T10:15:30Z",
  "publishedOn": "2007-12-03",
  "rateStack": [EligibleProductStructure],
  "rates": [ProductPricingRate],
  "term": 123
}

EligibleProductStructure

Fields
Field Name Description
adjustableRateDetail - ProductPricingAdjustableRateDetail If non-null, this product represents an adjustable rate mortgage
adjustments - [ProductPricingAdjustment!]! All adjustments that apply to this product, rate, and deal.
apor - ProductPricingApor! The published APOR for a comparible mortgage at the time of this pricing run.
appliedMargin - AppliedMargin The customer margin applied when this structure was priced, derived on read from the effective-dated margin window active at the loan's pricing instant: the lock date when the loan's pricing is pinned by a rate lock, or now for unlocked loans. Identical for a loan's current product structure and for candidate structures of a pricing run on the same loan. Null for structures priced outside a loan context (e.g. scenarios).
apr - Float! The APR with this rate applied as a percentage.
cashFromToBorrower - Float! The net change in cash from/to the borrower at closing.
cashOutAmount - NonNegativeFloat! The cash out amount.
cashOutType - RefinanceCashOutType! The cash out type.
closingCosts - Float! The closing costs for this rate. Currently, this is only an estimate-- things like title fees are difficult to correctly compute, but this should be a good approximation.
concessionPoints - NonNegativeFloat! The concessions being applied to the rate cost in this scenario, in points.
downPaymentAmount - NonNegativeFloat! The down payment on a property.
dti - NonNegativeFloat! The debt-to-income ratio of the borrowers with the PITIA for this rate taken into account.
floodInsurance - NonNegativeFloat! The cost of flood insurance.
id - ID The unique ID of this product pricing result.
interest - PositiveInt! The total interest over the life of the loan, in dollars, with this rate applied.
llpasWaived - Boolean! Whether LLPAs were waived for this rate due to low-income borrower eligibility
loanTermYears - PositiveInt! The term length of the loan, in years
lock - PositiveInt! The number of days this rate can be locked for.
ltv - Float! The ratio of the loan amount to the total value of the property, expressed as a percentage
monthlyPayment - NonNegativeFloat! The monthly mortgage payment (PITIA) of a loan at this rate.
mortgageInsurance - NonNegativeFloat! The cost of mandatory mortgage insurance each month.
pitia - Pitia! Breakdown of the monthly payment for this rate.
pointsCost - NonNegativeFloat! The cost, in dollars, to buy enough points in order to qualify for a better rate.
pointsNeeded - NonNegativeFloat! The number of additional points that must be purchased in order to qualify for this rate.
prepaidInterestDailyAmount - NonNegativeFloat! The amount of prepaid interest paid per day before closing,
prepaidInterestDaysPaid - NonNegativeFloat! The number of days' worth of prepaid interest to be paid at closing,
prepaidInterestTotalAmount - NonNegativeFloat! The total dollar amount of prepaid interest due at closing,
principal - PositiveFloat! The total principal, in dollars, of the loan with this rate applied.
product - Product! The product to which these calculations apply.
publishedAt - DateTimeISO! The date and time that rates for this product were published.
publishedOn - Date! The date that rates for this product were published. Use publishedAt for full timestamp precision.
rate - Float! The interest rate as a percentage.
rateId - ID! The ID of the rate.
ratePoints - Float! The cost, in points, of this rate.
totalCost - Float! The total cost after adjustments for this rate. Can be negative if the rate is below par.
totalPoints - Float! The total number of points after adjustments for this rate.
Example
{
  "adjustableRateDetail": ProductPricingAdjustableRateDetail,
  "adjustments": [ProductPricingAdjustment],
  "apor": ProductPricingApor,
  "appliedMargin": AppliedMargin,
  "apr": 987.65,
  "cashFromToBorrower": 123.45,
  "cashOutAmount": 123.45,
  "cashOutType": "CASH_OUT",
  "closingCosts": 123.45,
  "concessionPoints": 123.45,
  "downPaymentAmount": 123.45,
  "dti": 123.45,
  "floodInsurance": 123.45,
  "id": "4",
  "interest": 123,
  "llpasWaived": true,
  "loanTermYears": 123,
  "lock": 123,
  "ltv": 987.65,
  "monthlyPayment": 123.45,
  "mortgageInsurance": 123.45,
  "pitia": Pitia,
  "pointsCost": 123.45,
  "pointsNeeded": 123.45,
  "prepaidInterestDailyAmount": 123.45,
  "prepaidInterestDaysPaid": 123.45,
  "prepaidInterestTotalAmount": 123.45,
  "principal": 123.45,
  "product": Product,
  "publishedAt": "2007-12-03T10:15:30Z",
  "publishedOn": "2007-12-03",
  "rate": 987.65,
  "rateId": 4,
  "ratePoints": 123.45,
  "totalCost": 123.45,
  "totalPoints": 123.45
}

Employer

Description

Employer

Fields
Field Name Description
address - Address Employer's address
contact - EmployerContact Employer contact
id - ID! Employer ID
name - String! Name of the employer
Example
{
  "address": Address,
  "contact": EmployerContact,
  "id": 4,
  "name": "abc123"
}

EmployerContact

Description

Employer contact

Fields
Field Name Description
email - String Contact email
fullName - String Contact full name
phoneNumber - String Contact phone number
title - String Contact title
Example
{
  "email": "abc123",
  "fullName": "xyz789",
  "phoneNumber": "xyz789",
  "title": "xyz789"
}

EmployerContactInput

Description

Employer contact input

Fields
Input Field Description
email - String Contact email
fullName - String Contact full name
phoneNumber - String Contact phone number
title - String Contact title
Example
{
  "email": "abc123",
  "fullName": "abc123",
  "phoneNumber": "xyz789",
  "title": "abc123"
}

EmployerInput

Description

Employer input

Fields
Input Field Description
address - AddressInput Employer's address
contact - EmployerContactInput Employer contact
name - String Name of the employer
Example
{
  "address": AddressInput,
  "contact": EmployerContactInput,
  "name": "xyz789"
}

Employment

Description

Employment interface

Fields
Field Name Description
employmentClassification - EmploymentClassificationType! Whether this is the borrower's primary or secondary employer
endDate - Date End date. Will be null if the employment is current.
id - ID! Employment ID
isCurrentEmployment - Boolean! Is the employment current?
numberOfMonthsInLineOfWork - NonNegativeInt The total number of months the borrower has been employed in this line of work, regardless of employer
position - String A name or description of the employment position or job title
startDate - Date Start date
Possible Types
Employment Types

SelfEmployment

StandardEmployment

Example
{
  "employmentClassification": "PRIMARY",
  "endDate": "2007-12-03",
  "id": 4,
  "isCurrentEmployment": false,
  "numberOfMonthsInLineOfWork": 123,
  "position": "abc123",
  "startDate": "2007-12-03"
}

EmploymentClassificationType

Description

Whether this is the borrower's primary or secondary employer

Values
Enum Value Description

PRIMARY

SECONDARY

Example
"PRIMARY"

EmploymentGapMutations

Fields
Field Name Description
explainEmploymentGap - ExplainEmploymentGapResponse Generate employment gap explanation letter
Arguments
Example
{"explainEmploymentGap": ExplainEmploymentGapResponse}

EmploymentIncome

Description

Interface for employment incomes types

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
employment - Employment! The associated employment
id - ID! Income ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Possible Types
EmploymentIncome Types

SelfEmploymentIncome

StandardEmploymentIncome

Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "employment": Employment,
  "id": "4",
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": "4"
}

EmploymentRelatedAccountIncome

Description

Income from employment-related accounts

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "id": "4",
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": "4"
}

EnableContributorInput

Fields
Input Field Description
id - ID!
Example
{"id": "4"}

EnableContributorResponse

Fields
Field Name Description
contributor - Contributor!
Example
{"contributor": Contributor}

EnabledPlaidProduct

Description

Plaid products that can be enabled for a customer

Values
Enum Value Description

ASSETS

EMPLOYMENT

INCOME_VERIFICATION

Example
"ASSETS"

EntityEventsResponse

Fields
Field Name Description
batch - NodeChangedEventBatch! Batch of changed entities
next - String! A cursor that can be used to fetch the next batch.
Example
{
  "batch": NodeChangedEventBatch,
  "next": "xyz789"
}

EscrowItemType

Values
Enum Value Description

ASSESSMENT_TAX

BOROUGH_PROPERTY_TAX

CITY_BOND_TAX

CITY_PROPERTY_TAX

CONDOMINIUM_ASSOCIATION_DUES

CONDOMINIUM_ASSOCIATION_SPECIAL_ASSESSMENT

CONSTRUCTION_COMPLETION_FUNDS

COOPERATIVE_ASSOCIATION_DUES

COOPERATIVE_ASSOCIATION_SPECIAL_ASSESSMENT

COUNTY_BOND_TAX

COUNTY_PROPERTY_TAX

DISTRICT_PROPERTY_TAX

EARTHQUAKE_INSURANCE

ENERGY_EFFICIENT_IMPROVEMENT_FUNDS

FLOOD_INSURANCE

HAIL_INSURANCE

HAZARD_INSURANCE

HOMEOWNERS_ASSOCIATION_DUES

HOMEOWNERS_ASSOCIATION_SPECIAL_ASSESSMENT

HOMEOWNERS_INSURANCE

MORTGAGE_INSURANCE

OTHER

PARISH_TAX

PEST_INSURANCE

PROPERTY_TAX

REHABILITATION_FUNDS

SCHOOL_PROPERTY_TAX

STATE_PROPERTY_TAX

TOWNSHIP_PROPERTY_TAX

TOWN_PROPERTY_TAX

VILLAGE_PROPERTY_TAX

VOLCANO_INSURANCE

WINDSTORM_INSURANCE

Example
"ASSESSMENT_TAX"

EstimatedLoanRatios

Description

Live estimates of the loan's DTI and LTV ratios, computed on demand from the loan's current incomes, liabilities, and property value against the selected product structure's housing payment.

These are display-oriented approximations that move as loan inputs change; the authoritative ratios are computed during pricing and exposed on the product structure.

Fields
Field Name Description
dti - Float Estimated debt-to-income ratio on a 0-1 scale, or null when it cannot be estimated (no qualifying income or no housing payment on the selected structure).
ltv - Float Estimated loan-to-value ratio on a 0-1 scale, or null when the property value is unknown.
Example
{"dti": 123.45, "ltv": 987.65}

Ethnicity

Values
Enum Value Description

HISPANIC

NON_HISPANIC

Example
"HISPANIC"

Evidence

Description

An entry in a requirement's evidence log — evidence IS the edge: an authored assertion or a dispute act, interleaved in creation order.

Fields
Field Name Description
author - Contributor! WHO authored this entry — always a Contributor, resolved from the writing context, never client-supplied.
createdAt - DateTimeISO! When this entry was written.
id - ID! Stable content-addressed identifier, resolvable via the root node(id) query.
Possible Types
Evidence Types

Assertion

Dispute

Example
{
  "author": Contributor,
  "createdAt": "2007-12-03T10:15:30Z",
  "id": 4
}

ExchangePublicTokenInput

Description

Input to the exchangePublicToken mutation.

Fields
Input Field Description
borrowerId - ID! ID of the borrower
plaidMetadata - PlaidExchangeMetadata Plaid-specific metadata (required when vendor is PLAID)
publicToken - String! Public token from widget
truvMetadata - TruvExchangeMetadata Truv-specific metadata (required when vendor is TRUV)
vendor - VendorName! Vendor to use (PLAID or TRUV)
Example
{
  "borrowerId": "4",
  "plaidMetadata": PlaidExchangeMetadata,
  "publicToken": "xyz789",
  "truvMetadata": TruvExchangeMetadata,
  "vendor": "PLAID"
}

ExchangePublicTokenResponse

Description

Result of exchanging public token

Types
Union Types

PlaidItemAccess

TruvLinkAccess

Example
PlaidItemAccess

ExpiredCreditPullError

Description

User error indicating that credit pulls are expired for one or more borrowers

Fields
Field Name Description
code - String A stable error code for programmatic handling. Format: {DOMAIN}_{ERROR_NAME} (e.g., 'LOAN_CLOSED', 'AUS_NO_PRODUCT_PRICING').
errorId - ID! A unique identifier for this error instance, useful for tracking and debugging.
field - [String!] Path to the input field that caused the error (e.g., ['input', 'customer', 'email']). Null when not associated with a specific field.
message - String! A human-readable error message.
Example
{
  "code": "abc123",
  "errorId": "4",
  "field": ["xyz789"],
  "message": "abc123"
}

ExplainAssetTransactionInput

Description

Input to the explainAssetTransaction mutation.

Fields
Input Field Description
assetTransactionId - ID! The ID of the asset transaction to explain
explanation - String! The borrower's explanation for the large deposit
Example
{
  "assetTransactionId": "4",
  "explanation": "xyz789"
}

ExplainAssetTransactionResponse

Description

Response of the explainAssetTransaction mutation.

Fields
Field Name Description
documentUploadId - ID! The ID of the created DocumentUpload entity
url - String PDF Document containing explanation for asset transaction
Example
{
  "documentUploadId": "4",
  "url": "abc123"
}

ExplainEmploymentGapInput

Description

Input for employment gap explanation

Fields
Input Field Description
borrowerId - ID! The ID of the borrower
endDate - Date! The end date of the employment gap
explanation - String! The explanation for the employment gap
startDate - Date! The start date of the employment gap
Example
{
  "borrowerId": 4,
  "endDate": "2007-12-03",
  "explanation": "xyz789",
  "startDate": "2007-12-03"
}

ExplainEmploymentGapResponse

Description

Response for employment gap explanation

Fields
Field Name Description
documentUploadId - ID! The ID of the document upload
errorMessage - String Error message if failed
url - String! The URL of the generated PDF
Example
{
  "documentUploadId": "4",
  "errorMessage": "abc123",
  "url": "xyz789"
}

ExportLoanInput

Description

Input to the export mutation.

Fields
Input Field Description
loanId - ID! The ID of the loan to export
Example
{"loanId": 4}

ExportLoanResponse

Description

Response of the export mutation.

Fields
Field Name Description
downloadUrl - String! A temporary URL for downloading the exported loan file
Example
{"downloadUrl": "abc123"}

ExtractDocumentFailure

Description

Structured failure details for a document extraction that did not succeed.

Fields
Field Name Description
message - String! A human-readable description of the failure.
reason - ExtractionFailureReason! A categorized failure reason code.
Example
{
  "message": "abc123",
  "reason": "DOCUMENT_BLURRY"
}

ExtractDocumentQueries

Description

Root type for document extraction queries.

Fields
Field Name Description
status - ExtractDocumentStatusResponse! Get the current status of a document extraction workflow.
Arguments
Example
{"status": ExtractDocumentStatusResponse}

ExtractDocumentStatusInput

Description

Input for querying the status of a document extraction workflow.

Fields
Input Field Description
workflowId - ID! The workflow ID returned when extraction was started.
Example
{"workflowId": "4"}

ExtractDocumentStatusResponse

Description

Response containing the current status of a document extraction.

Fields
Field Name Description
failure - ExtractDocumentFailure Failure details when status is FAILED. Null when status is PROCESSING or SUCCEEDED.
status - JobStatus! Current status of the extraction workflow.
Example
{"failure": ExtractDocumentFailure, "status": "FAILED"}

ExtractionFailureReason

Description

The categorized reason why a document extraction failed. Allows consumers to branch on specific failure modes without parsing free-text messages.

Values
Enum Value Description

DOCUMENT_BLURRY

DOCUMENT_EDITED

DOCUMENT_REDACTED

EVIDENCE_NOT_DERIVABLE

EXTRACTION_FAILED

USABILITY_CHECK_FAILED

WORKFLOW_ERROR

Example
"DOCUMENT_BLURRY"

FeatureFlagResult

Description

A single evaluated feature flag

Fields
Field Name Description
enabled - Boolean! Whether the flag is enabled
name - String! The flag name
Example
{"enabled": false, "name": "xyz789"}

Fee

Fields
Field Name Description
escrowItemType - EscrowItemType
feeActualTotalAmount - NonNegativeInt
feeDescription - String
feePaidToType - FeePaidToType
feePayments - [FeePayment!]
feeSpecifiedFixedAmount - NonNegativeInt If set, this field represents a fixed amount due at closing.
feeTotalPercent - NonNegativeInt If set, this field represents a fee as a percentage of the loan amount, due at closing.
feeType - FeeType
id - ID!
integratedDisclosureSectionType - IntegratedDisclosureSectionType
monthlyAmount - NonNegativeInt
monthsPaid - NonNegativeInt
paidTo - PaidTo
prepaidItemType - PrepaidItemType
Example
{
  "escrowItemType": "ASSESSMENT_TAX",
  "feeActualTotalAmount": 123,
  "feeDescription": "xyz789",
  "feePaidToType": "BROKER",
  "feePayments": [FeePayment],
  "feeSpecifiedFixedAmount": 123,
  "feeTotalPercent": 123,
  "feeType": "APPLICATION_FEE",
  "id": "4",
  "integratedDisclosureSectionType": "DUE_FROM_BORROWER_AT_CLOSING",
  "monthlyAmount": 123,
  "monthsPaid": 123,
  "paidTo": PaidTo,
  "prepaidItemType": "BOROUGH_PROPERTY_TAX"
}

FeeMutations

Fields
Field Name Description
delete - DeleteFeeResponse
Arguments
input - DeleteFeeInput!
update - UpdateFeeResponse
Arguments
input - UpdateFeeInput
Example
{
  "delete": DeleteFeeResponse,
  "update": UpdateFeeResponse
}

FeePaidToType

Values
Enum Value Description

BROKER

BROKER_AFFILIATE

INVESTOR

LENDER

LENDER_AFFILIATE

OTHER

THIRD_PARTY_PROVIDER

Example
"BROKER"

FeePayment

Fields
Field Name Description
creditAmount - NonNegativeInt
feeActualTotalAmount - NonNegativeInt
feePaymentPaidByType - FeePaymentPaidByTypeEnum
feePaymentPaidOutsideOfClosingIndicator - Boolean
feePaymentResponsiblePartyType - FeePaymentResponsiblePartyType
paymentIncludedInAprIndicator - Boolean
Example
{
  "creditAmount": 123,
  "feeActualTotalAmount": 123,
  "feePaymentPaidByType": "BORROWER",
  "feePaymentPaidOutsideOfClosingIndicator": true,
  "feePaymentResponsiblePartyType": "BRANCH",
  "paymentIncludedInAprIndicator": false
}

FeePaymentInput

Fields
Input Field Description
amount - NonNegativeInt!
paidBy - ClosingCostPayer!
Example
{"amount": 123, "paidBy": "BORROWER"}

FeePaymentPaidByTypeEnum

Values
Enum Value Description

BORROWER

BROKER

BUYER

CORRESPONDENT

LENDER

SELLER

SERVICER

THIRD_PARTY

Example
"BORROWER"

FeePaymentResponsiblePartyType

Values
Enum Value Description

BRANCH

BROKER

BUYER

LENDER

OTHER

SELLER

Example
"BRANCH"

FeeSheetData

Description

Structured contents of a generated fee sheet

Fields
Field Name Description
disclaimerText - String! The compliance disclaimer printed on the sheet
fees - [Fee!]! Itemized fees — the same Fee type as loan.fees
generatedAt - DateTime
isCountyLevelEstimate - Boolean True when the quote was priced from a county rather than a street address; null on sheets that predate this field
loanOfficer - FeeSheetLoanOfficer
loanPurpose - LoanPurposeType
property - Address
qualifyingFicoScore - Int
ratesEffectiveDate - Date When the rate sheet backing this quote was ingested
structure - FeeSheetStructure!
Example
{
  "disclaimerText": "abc123",
  "fees": [Fee],
  "generatedAt": "2007-12-03T10:15:30Z",
  "isCountyLevelEstimate": false,
  "loanOfficer": FeeSheetLoanOfficer,
  "loanPurpose": "PURCHASE",
  "property": Address,
  "qualifyingFicoScore": 987,
  "ratesEffectiveDate": "2007-12-03",
  "structure": FeeSheetStructure
}

FeeSheetLoanOfficer

Description

Loan officer contact printed on a fee sheet

Fields
Field Name Description
email - String
firstName - String
lastName - String
nmlsId - String NMLS id
phone - String
Example
{
  "email": "abc123",
  "firstName": "abc123",
  "lastName": "abc123",
  "nmlsId": "abc123",
  "phone": "abc123"
}

FeeSheetMutations

Fields
Field Name Description
createFeeSheetRequest - CreateFeeSheetRequestResponse Create request to generate fee sheet
Arguments
createFeeSheetRequestForLoan - CreateFeeSheetRequestForLoanResponse Create a request to generate a fee sheet for a loan. Pricing parameters are derived from the loan's own data on the server.
Example
{
  "createFeeSheetRequest": CreateFeeSheetRequestResponse,
  "createFeeSheetRequestForLoan": CreateFeeSheetRequestForLoanResponse
}

FeeSheetPurchasePricingInput

Description

Purchase pricing parameters for a fee sheet

Fields
Input Field Description
concessions - NonNegativeInt!
fipsCountyCode - String!
isBorrowerSelfEmployed - Boolean!
isFirstTimeHomeBuyer - Boolean!
loanTermYears - Float!
monthlyDebt - Float!
monthlyIncome - Float!
neighborhoodHousingType - NeighborhoodHousingType!
numberOfUnits - NonNegativeInt
objectiveIntent - PricingObjectiveIntent Configure the objective function to optimize against. Default = MIN_PITIA
outOfPocketMax - Float!
pricingConstraints - PricingConstraints
propertyTaxesAndInsuranceIncludedInPayment - Boolean Whether property taxes and insurance are included in the monthly payment (impounded). Defaults to impounded when omitted.
propertyUsageType - PropertyUsageType!
qualifyingFicoScore - Int
rateLockDays - Float!
salesContractAmount - NonNegativeInt! The amount of money that the property will be purchased for. Also called the purchase price.
Example
{
  "concessions": 123,
  "fipsCountyCode": "xyz789",
  "isBorrowerSelfEmployed": false,
  "isFirstTimeHomeBuyer": true,
  "loanTermYears": 987.65,
  "monthlyDebt": 987.65,
  "monthlyIncome": 123.45,
  "neighborhoodHousingType": "CONDOMINIUM",
  "numberOfUnits": 123,
  "objectiveIntent": "MIN_DOWN_PAYMENT",
  "outOfPocketMax": 123.45,
  "pricingConstraints": PricingConstraints,
  "propertyTaxesAndInsuranceIncludedInPayment": true,
  "propertyUsageType": "INVESTMENT",
  "qualifyingFicoScore": 987,
  "rateLockDays": 987.65,
  "salesContractAmount": 123
}

FeeSheetQueries

Fields
Field Name Description
feeSheetRequestStatus - FeeSheetRequestStatus
Arguments
id - ID!
Example
{"feeSheetRequestStatus": FeeSheetRequestStatus}

FeeSheetRefinancePricingInput

Description

Refinance pricing parameters for a fee sheet

Fields
Input Field Description
cashOut - NonNegativeInt The amount of cash to be returned to the borrower from the equity. Default = 0
concessions - NonNegativeInt!
fipsCountyCode - String!
firstLienAmount - NonNegativeInt! The remaining balance on the first lien of the property
isBorrowerSelfEmployed - Boolean!
isFirstTimeHomeBuyer - Boolean This field is irrelevant for refinance and will be ignored.
loanAmount - NonNegativeInt The desired loan amount in dollars. When provided, pins the solver to this exact loan amount and the out-of-pocket cost is derived from it. When omitted, the solver determines the optimal loan amount.
loanTermYears - Float!
monthlyDebt - Float!
monthlyIncome - Float!
neighborhoodHousingType - NeighborhoodHousingType!
numberOfUnits - NonNegativeInt
objectiveIntent - PricingObjectiveIntent Configure the objective function to optimize against. Default = MIN_PITIA
pricingConstraints - PricingConstraints
propertyTaxesAndInsuranceIncludedInPayment - Boolean Whether property taxes and insurance are included in the monthly payment (impounded). Defaults to impounded when omitted.
propertyUsageType - PropertyUsageType!
propertyValue - NonNegativeInt! The value of the property being refinanced in dollars.
qualifyingFicoScore - Int
rateLockDays - Float!
Example
{
  "cashOut": 123,
  "concessions": 123,
  "fipsCountyCode": "abc123",
  "firstLienAmount": 123,
  "isBorrowerSelfEmployed": true,
  "isFirstTimeHomeBuyer": false,
  "loanAmount": 123,
  "loanTermYears": 123.45,
  "monthlyDebt": 987.65,
  "monthlyIncome": 123.45,
  "neighborhoodHousingType": "CONDOMINIUM",
  "numberOfUnits": 123,
  "objectiveIntent": "MIN_DOWN_PAYMENT",
  "pricingConstraints": PricingConstraints,
  "propertyTaxesAndInsuranceIncludedInPayment": false,
  "propertyUsageType": "INVESTMENT",
  "propertyValue": 123,
  "qualifyingFicoScore": 123,
  "rateLockDays": 123.45
}

FeeSheetRequestState

Description

Processing state of a fee sheet request

Values
Enum Value Description

FAILED

PENDING

PROCESSING

SUCCEEDED

Example
"FAILED"

FeeSheetRequestStatus

Fields
Field Name Description
data - FeeSheetData Structured contents of the sheet; populated once status is SUCCEEDED
id - ID!
status - FeeSheetRequestState Processing state of the request, distinguishing in-progress from failed while the URL is absent
url - String A download URL for a fee sheet
Example
{
  "data": FeeSheetData,
  "id": 4,
  "status": "FAILED",
  "url": "abc123"
}

FeeSheetStructure

Description

Product structure snapshot on a fee sheet

Fields
Field Name Description
apr - Float! The APR with this rate applied as a percentage.
cashFromToBorrower - Float! The net change in cash from/to the borrower at closing.
cashOutAmount - NonNegativeFloat! The cash out amount.
cashOutType - RefinanceCashOutType! The cash out type.
concessionPoints - NonNegativeFloat! The concessions being applied to the rate cost in this scenario, in points.
downPaymentAmount - NonNegativeFloat! The down payment on a property.
dti - NonNegativeFloat! The debt-to-income ratio of the borrowers with the PITIA for this rate taken into account.
floodInsurance - NonNegativeFloat! The cost of flood insurance.
interest - Float
loanTermYears - PositiveInt! The term length of the loan, in years
ltv - Float! The ratio of the loan amount to the total value of the property, expressed as a percentage
monthlyPayment - NonNegativeFloat! The monthly mortgage payment (PITIA) of a loan at this rate.
mortgageInsurance - NonNegativeFloat! The cost of mandatory mortgage insurance each month.
pitia - Pitia! Breakdown of the monthly payment for this rate.
pointsCost - NonNegativeFloat! The cost, in dollars, to buy enough points in order to qualify for a better rate.
pointsNeeded - NonNegativeFloat! The number of additional points that must be purchased in order to qualify for this rate.
prepaidInterestDailyAmount - Float
prepaidInterestDaysPaid - Float
prepaidInterestTotalAmount - Float
principal - PositiveFloat! The total principal, in dollars, of the loan with this rate applied.
rate - Float! The interest rate as a percentage.
rateId - ID! The ID of the rate.
ratePoints - Float! The cost, in points, of this rate.
sellerCredit - Float Seller credits applied, in dollars.
totalCost - Float! The total cost after adjustments for this rate. Can be negative if the rate is below par.
totalPoints - Float! The total number of points after adjustments for this rate.
Example
{
  "apr": 123.45,
  "cashFromToBorrower": 987.65,
  "cashOutAmount": 123.45,
  "cashOutType": "CASH_OUT",
  "concessionPoints": 123.45,
  "downPaymentAmount": 123.45,
  "dti": 123.45,
  "floodInsurance": 123.45,
  "interest": 987.65,
  "loanTermYears": 123,
  "ltv": 123.45,
  "monthlyPayment": 123.45,
  "mortgageInsurance": 123.45,
  "pitia": Pitia,
  "pointsCost": 123.45,
  "pointsNeeded": 123.45,
  "prepaidInterestDailyAmount": 987.65,
  "prepaidInterestDaysPaid": 987.65,
  "prepaidInterestTotalAmount": 123.45,
  "principal": 123.45,
  "rate": 123.45,
  "rateId": "4",
  "ratePoints": 123.45,
  "sellerCredit": 987.65,
  "totalCost": 123.45,
  "totalPoints": 123.45
}

FeeSheetStructureInput

Description

Product structure input for fee sheet requests

Fields
Input Field Description
aporId - ID!
apr - Float! The APR with this rate applied as a percentage.
cashFromToBorrower - Float! The net change in cash from/to the borrower at closing.
cashOutAmount - NonNegativeFloat! The cash out amount.
cashOutType - RefinanceCashOutType! The cash out type.
concessionPoints - NonNegativeFloat! The concessions being applied to the rate cost in this scenario, in points.
downPaymentAmount - NonNegativeFloat! The down payment on a property.
dti - NonNegativeFloat! The debt-to-income ratio of the borrowers with the PITIA for this rate taken into account.
floodInsurance - NonNegativeFloat! The cost of flood insurance.
interest - PositiveInt! The total interest over the life of the loan, in dollars, with this rate applied.
loanTermYears - PositiveInt! The term length of the loan, in years
ltv - Float! The ratio of the loan amount to the total value of the property, expressed as a percentage
monthlyPayment - NonNegativeFloat! The monthly mortgage payment (PITIA) of a loan at this rate.
mortgageInsurance - NonNegativeFloat! The cost of mandatory mortgage insurance each month.
pointsCost - NonNegativeFloat! The cost, in dollars, to buy enough points in order to qualify for a better rate.
pointsNeeded - NonNegativeFloat! The number of additional points that must be purchased in order to qualify for this rate.
prepaidInterestDailyAmount - NonNegativeFloat! The amount of prepaid interest paid per day before closing,
prepaidInterestDaysPaid - NonNegativeFloat! The number of days' worth of prepaid interest to be paid at closing,
prepaidInterestTotalAmount - NonNegativeFloat! The total dollar amount of prepaid interest due at closing,
principal - PositiveFloat! The total principal, in dollars, of the loan with this rate applied.
rateId - ID! The ID of the rate.
ratePoints - Float! The cost, in points, of this rate.
totalCost - Float! The total cost after adjustments for this rate. Can be negative if the rate is below par.
totalPoints - Float! The total number of points after adjustments for this rate.
Example
{
  "aporId": "4",
  "apr": 987.65,
  "cashFromToBorrower": 123.45,
  "cashOutAmount": 123.45,
  "cashOutType": "CASH_OUT",
  "concessionPoints": 123.45,
  "downPaymentAmount": 123.45,
  "dti": 123.45,
  "floodInsurance": 123.45,
  "interest": 123,
  "loanTermYears": 123,
  "ltv": 987.65,
  "monthlyPayment": 123.45,
  "mortgageInsurance": 123.45,
  "pointsCost": 123.45,
  "pointsNeeded": 123.45,
  "prepaidInterestDailyAmount": 123.45,
  "prepaidInterestDaysPaid": 123.45,
  "prepaidInterestTotalAmount": 123.45,
  "principal": 123.45,
  "rateId": 4,
  "ratePoints": 123.45,
  "totalCost": 987.65,
  "totalPoints": 123.45
}

FeeType

Values
Enum Value Description

APPLICATION_FEE

APPRAISAL_FEE

CERTIFICATION_FEE

COPY_OR_FAX_FEE

COURIER_FEE

CREDIT_REPORT_FEE

DEED_PREPARATION_FEE

DOCUMENT_PREPARATION_FEE

ELECTRONIC_DOCUMENT_DELIVERY_FEE

ENVIRONMENTAL_INSPECTION_FEE

ESCROW_HOLDBACK_FEE

ESCROW_SERVICE_FEE

FILING_FEE

FLOOD_CERTIFICATION

FOUNDATION_INSPECTION_FEE

HOMEOWNERS_ASSOCIATION_SERVICE_FEE

HOME_INSPECTION_FEE

HOME_WARRANTY_FEE

LENDERS_ATTORNEY_FEE

LOAN_ORIGINATION_FEE

MERS_REGISTRATION_FEE

MODIFICATION_FEE

MORTGAGE_SURCHARGE_STATE

MULTIPLE_LOANS_CLOSING_FEE

MUNICIPAL_LIEN_CERTIFICATE_FEE

OTHER

PAYOFF_REQUEST_FEE

PEST_INSPECTION_FEE

POWER_OF_ATTORNEY_PREPARATION_FEE

PRECLOSING_VERIFICATION_CONTROL_FEE

PROCESSING_FEE

RADON_INSPECTION_FEE

RECONVEYANCE_FEE

RECORDING_FEE_FOR_ASSIGNMENT

RECORDING_FEE_FOR_DEED

RECORDING_FEE_FOR_MORTGAGE

RECORDING_FEE_FOR_MUNICIPAL_LIEN_CERTIFICATE

RECORDING_FEE_FOR_OTHER_DOCUMENT

RECORDING_FEE_FOR_RELEASE

RECORDING_FEE_FOR_SUBORDINATION

RECORDING_SERVICE_FEE

SEPTIC_INSPECTION_FEE

SETTLEMENT_FEE

SIGNING_AGENT_FEE

STATE_TITLE_INSURANCE_FEE

SURVEY_FEE

TAX_SERVICE_FEE

TAX_STAMP_FOR_CITY_DEED

TAX_STAMP_FOR_CITY_MORTGAGE

TAX_STAMP_FOR_COUNTY_DEED

TAX_STAMP_FOR_COUNTY_MORTGAGE

TAX_STAMP_FOR_STATE_DEED

TAX_STAMP_FOR_STATE_MORTGAGE

TAX_STATUS_RESEARCH_FEE

TITLE_ABSTRACT_FEE

TITLE_CERTIFICATION_FEE

TITLE_CLOSING_FEE

TITLE_CLOSING_PROTECTION_LETTER_FEE

TITLE_DOCUMENT_PREPARATION_FEE

TITLE_EXAMINATION_FEE

TITLE_FINAL_POLICY_SHORT_FORM_FEE

TITLE_INSURANCE_BINDER_FEE

TITLE_NOTARY_FEE

TITLE_SERVICES_SALES_TAX

TITLE_UNDERWRITING_ISSUE_RESOLUTION_FEE

TRANSFER_TAX_TOTAL

UNDERWRITING_FEE

WATER_TESTING_FEE

WELL_INSPECTION_FEE

WIRE_TRANSFER_FEE

Example
"APPLICATION_FEE"

FhaMarketingRate

Description

FHA marketing rate

Fields
Field Name Description
apr - Float!
discountPointsTotal - Float!
discountPointsTotalAmount - Int!
fipsCountyCode - String!
loanAmount - NonNegativeInt!
ltv - Float!
propertyUsageType - PropertyUsageType!
qualifyingFicoScore - Int!
rate - Float!
salesContractAmount - NonNegativeInt! The amount of money that the property will be purchased for. Also called the purchase price.
Example
{
  "apr": 123.45,
  "discountPointsTotal": 123.45,
  "discountPointsTotalAmount": 987,
  "fipsCountyCode": "xyz789",
  "loanAmount": 123,
  "ltv": 123.45,
  "propertyUsageType": "INVESTMENT",
  "qualifyingFicoScore": 123,
  "rate": 987.65,
  "salesContractAmount": 123
}

FhaMarketingRateInput

Description

FHA marketing rate input

Fields
Input Field Description
calculateApr - Boolean Should closing costs be fetched in order to calculate an APR?. Default = true
concessions - NonNegativeInt Lender concession in dollars. Reduces the rate cost (points) the borrower would otherwise pay, but never below zero. Default = 0
fipsCountyCode - String! The five-digit FIPS county code based on ANSI standard (INCITS 31:2009)
loanAmount - NonNegativeInt! Amount of the loan in dollars, also called principal
loanTermYears - Float! Loan term, in years. Default = 30
ltv - Float! Loan to value ratio. Lower values get better rates. A typical value for a conforming conventional loan would be 0.8; values over that usually require mortgage insurance.
maxDiscountPointsTotal - Float Maximum total discount points. Default = 0
propertyUsageType - PropertyUsageType
qualifyingFicoScore - Int FICO score used to determine loan eligibility and interest rate
rateLockDays - Float! How long to lock the rate, in days. Default = 30
Example
{
  "calculateApr": false,
  "concessions": 123,
  "fipsCountyCode": "xyz789",
  "loanAmount": 123,
  "loanTermYears": 123.45,
  "ltv": 123.45,
  "maxDiscountPointsTotal": 123.45,
  "propertyUsageType": "INVESTMENT",
  "qualifyingFicoScore": 123,
  "rateLockDays": 987.65
}

FinancialAccountActivity

Description

Activity associated with a financial account asset

Fields
Field Name Description
activityType - FinancialAccountActivityType Activity type
amount - Int The amount of money in dollars
date - Date The date when the activity occurred
description - String Description of the activity
id - ID! The ID of the FinancialAccountActivity
Example
{
  "activityType": "LARGE_DEPOSIT",
  "amount": 123,
  "date": "2007-12-03",
  "description": "xyz789",
  "id": "4"
}

FinancialAccountActivityType

Values
Enum Value Description

LARGE_DEPOSIT

OVERDRAFT

Example
"LARGE_DEPOSIT"

FinancialAccountAsset

Description

Interface for financial account assets

Fields
Field Name Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt! The cash or market value of the asset in dollars
assetReportId - ID ID of the latest asset report that verified this asset
borrowerIds - [ID!] Ids of borrowers that are account holders on this asset
id - ID! Asset ID
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
notableActivities - [FinancialAccountActivity!]! Notable activities
qualifiedAmount - NonNegativeInt The qualified amount of the asset in dollars, used for underwriting. Null if no qualification has been computed.
verifiedAmount - NonNegativeInt The verified cash or market value of the asset in dollars, confirmed by a third-party source
Example
{
  "accountIdentifier": "xyz789",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "assetReportId": "4",
  "borrowerIds": [4],
  "id": "4",
  "institutionName": "abc123",
  "nonBorrowerOwnerNames": ["abc123"],
  "notableActivities": [FinancialAccountActivity],
  "qualifiedAmount": 123,
  "verifiedAmount": 123
}

FixedAmountPurchasePricingInput

Fields
Input Field Description
amortizationTypes - [PricingAmortizationType!] The amortization types to price. Defaults to fixed-only; request ADJUSTABLE_RATE (typically in a separate sequential call) to price ARM products, so one request never solves both halves of the sheet at once. Default = [FIXED]
concessions - NonNegativeInt!
fipsCountyCode - String!
hoaDues - NonNegativeInt Monthly homeowners association dues in dollars. When omitted, pricing behaves as if the property has no HOA dues.
isBorrowerSelfEmployed - Boolean!
isFirstTimeHomeBuyer - Boolean!
loanAmount - NonNegativeInt! The desired loan amount in dollars. Pins the solver to this exact loan amount and the out-of-pocket cost is derived from it.
loanTermYears - Float!
monthlyDebt - Float!
monthlyIncome - Float!
neighborhoodHousingType - NeighborhoodHousingType!
numberOfUnits - NonNegativeInt
objectiveIntent - PricingObjectiveIntent Configure the objective function to optimize against. Default = MIN_PITIA
pricingConstraints - FixedPricingConstraints
propertyTaxesAndInsuranceIncludedInPayment - Boolean Whether property taxes and insurance are included in the monthly payment (impounded). Defaults to impounded when omitted.
propertyUsageType - PropertyUsageType!
qualifyingFicoScore - Int
rateLockDays - Float!
salesContractAmount - NonNegativeInt! The amount of money that the property will be purchased for. Also called the purchase price.
Example
{
  "amortizationTypes": ["ADJUSTABLE_RATE"],
  "concessions": 123,
  "fipsCountyCode": "xyz789",
  "hoaDues": 123,
  "isBorrowerSelfEmployed": true,
  "isFirstTimeHomeBuyer": true,
  "loanAmount": 123,
  "loanTermYears": 987.65,
  "monthlyDebt": 123.45,
  "monthlyIncome": 123.45,
  "neighborhoodHousingType": "CONDOMINIUM",
  "numberOfUnits": 123,
  "objectiveIntent": "MIN_DOWN_PAYMENT",
  "pricingConstraints": FixedPricingConstraints,
  "propertyTaxesAndInsuranceIncludedInPayment": true,
  "propertyUsageType": "INVESTMENT",
  "qualifyingFicoScore": 123,
  "rateLockDays": 123.45,
  "salesContractAmount": 123
}

FixedPricingConstraints

Fields
Input Field Description
applyOutOfPocketToLoan - Boolean Represents if Out Of Pocket cash will be applied to reduce loan cost
closingCosts - NonNegativeFloat The maximum allowable closing costs.
downPaymentAmount - NonNegativeFloat The down payment amount.
maxDiscountPoints - Float Limit number of rate point buys to not exceed this value.
maxOutOfPocket - NonNegativeFloat Out of pocket maximum in dollars.
monthlyPayment - NonNegativeFloat The maximum allowable monthly payment.
monthlyPaymentAsPercentageOfIncome - Boolean! Interpret monthly payment field as a percentage instead of dollar amount. Default = false
mortgageInsurance - Boolean Indicates whether mortgage insurance is required.
principal - NonNegativeFloat The maximum allowable principal amount.
rate - NonNegativeFloat The preferred interest rate as a percentage (e.g., 5.0 for 5%).
rollInClosingCosts - Boolean Represents if closing costs will be rolled into loan amount on a ReFi
totalCost - Float The cost of points for the loan.
totalPoints - NonNegativeFloat The number of points required for the loan.
Example
{
  "applyOutOfPocketToLoan": true,
  "closingCosts": 123.45,
  "downPaymentAmount": 123.45,
  "maxDiscountPoints": 987.65,
  "maxOutOfPocket": 123.45,
  "monthlyPayment": 123.45,
  "monthlyPaymentAsPercentageOfIncome": false,
  "mortgageInsurance": true,
  "principal": 123.45,
  "rate": 123.45,
  "rollInClosingCosts": true,
  "totalCost": 123.45,
  "totalPoints": 123.45
}

Float

Description

The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.

Example
123.45

FloatStructureInput

Description

Input to the floatStructure mutation.

Fields
Input Field Description
loanId - ID! The ID or friendly ID of the loan.
overrideIneligibility - Boolean If set to true, this mutation ignores the ineligibility status of the chosen rate and allows it to be locked. Only available to internal Pylon admins.
Example
{
  "loanId": "4",
  "overrideIneligibility": false
}

FloatStructureResponse

Description

Response of the floatStructure mutation.

Fields
Field Name Description
disclosuresRunId - ID! The ID of the initial-disclosures run dispatched by this call. Disclosure generation runs asynchronously, so a successful mutation only means the run was enqueued — poll disclosuresRunStatus with this ID to observe whether the package was actually sent or failed (including the failure reason).
loanId - ID! The ID or friendly ID of the loan.
Example
{
  "disclosuresRunId": "4",
  "loanId": "4"
}

FloodMutations

Description

Root type for flood mutations.

Fields
Field Name Description
cancelFlood - CancelFloodResponse Cancel a flood determination order.
Arguments
orderFlood - OrderFloodResponse Order a flood determination for a loan.
Arguments
Example
{
  "cancelFlood": CancelFloodResponse,
  "orderFlood": OrderFloodResponse
}

FloodOrder

Description

A flood determination order placed with a vendor to determine whether a property lies within a designated flood zone.

Fields
Field Name Description
createdOn - DateTime! When the order was created.
id - ID! Unique identifier of the flood order.
loanApplicationId - ID! Loan application the order belongs to.
result - FloodResult Parsed determination result, once the order is completed.
status - FloodOrderStatusEnum! Current status of the flood order.
Example
{
  "createdOn": "2007-12-03T10:15:30Z",
  "id": "4",
  "loanApplicationId": "4",
  "result": FloodResult,
  "status": "CANCELLED"
}

FloodOrderStatusEnum

Description

Status of a flood order.

Values
Enum Value Description

CANCELLED

COMPLETED

FAILED

IN_PROGRESS

PENDING

Example
"CANCELLED"

FloodProductType

Description

Type of flood determination product to order. Basic products are a one-time determination; Life of Loan products are monitored for the life of the loan.

Values
Enum Value Description

Basic

BasicWithCensus

LifeOfLoan

LifeOfLoanRelatedLoan

LifeOfLoanSpecialProperty

LifeOfLoanWithCensus

Example
"Basic"

FloodQueries

Description

Root type for flood queries.

Fields
Field Name Description
floodOrder - FloodOrder Look up a flood determination order by its ID.
Arguments
id - ID!
Example
{"floodOrder": FloodOrder}

FloodResult

Description

Parsed determination result from a completed flood order. Fields are nullable as they are only populated once the vendor returns a result.

Fields
Field Name Description
floodCertificationIdentifier - String Vendor-issued flood certification identifier.
floodPartialIndicator - Boolean Whether the property is only partially within the flood zone.
floodProductCertifyDate - Date When the flood product certification was issued.
nfipCommunityIdentifier - String Identifier of the NFIP community the property belongs to.
nfipCommunityName - String Name of the NFIP community the property belongs to.
nfipCommunityParticipationStatusType - String NFIP flood program the community participates in (e.g. Regular, Emergency, NonParticipating).
nfipFloodDataRevisionType - String Type of flood-map revision FEMA issued (LOMA amendment or LOMR revision); null means no revision.
nfipFloodZoneIdentifier - String NFIP flood zone the property falls within.
nfipMapPanelDate - Date Effective date of the NFIP flood map panel.
nfipMapPanelIdentifier - String Identifier of the NFIP flood map panel covering the property.
nfipMapPanelSuffixIdentifier - String Suffix of the NFIP flood map panel identifier.
protectedAreaIndicator - Boolean Whether the property is in a federally protected area (CBRA / Otherwise Protected Area).
specialFloodHazardAreaIndicator - Boolean Whether the property lies within a Special Flood Hazard Area (SFHA).
Example
{
  "floodCertificationIdentifier": "abc123",
  "floodPartialIndicator": false,
  "floodProductCertifyDate": "2007-12-03",
  "nfipCommunityIdentifier": "abc123",
  "nfipCommunityName": "xyz789",
  "nfipCommunityParticipationStatusType": "xyz789",
  "nfipFloodDataRevisionType": "abc123",
  "nfipFloodZoneIdentifier": "abc123",
  "nfipMapPanelDate": "2007-12-03",
  "nfipMapPanelIdentifier": "xyz789",
  "nfipMapPanelSuffixIdentifier": "xyz789",
  "protectedAreaIndicator": false,
  "specialFloodHazardAreaIndicator": true
}

ForceGenerateDisclosurePackageInput

Description

Input to the forceGenerateDisclosurePackage mutation.

Fields
Input Field Description
loanId - ID! The ID of the loan.
stage - DisclosuresStage! The disclosure stage to generate (INITIAL_DISCLOSURES, REDISCLOSURES, CLOSING_DISCLOSURES, ADVERSE_ACTION_DISCLOSURES).
Example
{
  "loanId": "4",
  "stage": "ADVERSE_ACTION_DISCLOSURES"
}

ForceGenerateDisclosurePackageResponse

Description

Response of the forceGenerateDisclosurePackage mutation.

Fields
Field Name Description
disclosuresRunId - ID! The ID of the disclosure run created.
Example
{"disclosuresRunId": 4}

FosterCareIncome

Description

Foster care income

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "id": 4,
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": "4"
}

FraudNotRunBlocker

Description

Fraud check has not been run

Fields
Field Name Description
type - String!
Example
{"type": "xyz789"}

FreezeLoanInput

Description

Input to the freeze mutation.

Fields
Input Field Description
loanId - ID! The ID or friendly ID of the loan.
Example
{"loanId": "4"}

FreezeLoanResponse

Description

Response of the freeze mutation.

Fields
Field Name Description
loan - Loan! The loan
Example
{"loan": Loan}

FulfillmentOption

Description

A path to satisfying a requirement. Multiple options represent alternatives (OR semantics).

Fields
Field Name Description
description - String! What this path involves — enough context for the consumer to decide.
name - String! Short name for this path, e.g. "Upload W2", "Payroll connection".
requirements - [Requirement!]! Sub-requirements for this option. Each carries its own phase - a partially-satisfied composite lists SatisfiedRequirement children alongside OpenRequirement ones. Empty when the option itself is directly actionable.
satisfied - Boolean! Whether this fulfillment path has been completed.
Possible Types
FulfillmentOption Types

CompositeFulfillment

DocumentUploadFulfillment

Example
{
  "description": "xyz789",
  "name": "xyz789",
  "requirements": [Requirement],
  "satisfied": false
}

FulfillmentParty

Description

FulfillmentParty

Fields
Field Name Description
companyId - ID The ID of the associated company
fulfillmentParty - FulfillmentParty
id - ID! The ID of the FulfillmentParty
role - FulfillmentPartyRole The role of the fulfillment party
Example
{
  "companyId": "4",
  "fulfillmentParty": FulfillmentParty,
  "id": "4",
  "role": "NOTARY"
}

FulfillmentPartyMutations

Description

FulfillmentParty mutations

Fields
Field Name Description
create - CreateFulfillmentPartyResponse
Arguments
delete - DeleteFulfillmentPartyResponse
Arguments
Example
{
  "create": CreateFulfillmentPartyResponse,
  "delete": DeleteFulfillmentPartyResponse
}

FulfillmentPartyRole

Description

The role of the fulfillment party

Values
Enum Value Description

NOTARY

OTHER

TITLE_AGENT

Example
"NOTARY"

FulfillmentResolution

Description

How a requirement was resolved. The completed-side counterpart to FulfillmentOption.

Fields
Field Name Description
assertions - [Assertion!]! The satisfying assertion(s) pinned at resolution time.
description - String! Human-readable summary, e.g. "Verified via uploaded W2 and paystub".
method - String! Stable identifier for the resolution method: "DOCUMENT_UPLOAD", "DATA_ENTRY", "SYSTEM", etc. Superseded by assertions. Retained temporarily for already-shipped clients and removed after one release.
Possible Types
FulfillmentResolution Types

DataEntryResolution

DocumentUploadResolution

SystemResolution

Example
{
  "assertions": [Assertion],
  "description": "xyz789",
  "method": "xyz789"
}

FundingActivityEntry

Fields
Field Name Description
loan - Loan! The loan this activity belongs to.
wireIn - FundingActivityLeg!
wireOut - FundingActivityLeg!
Example
{
  "loan": Loan,
  "wireIn": FundingActivityLeg,
  "wireOut": FundingActivityLeg
}

FundingActivityLeg

Fields
Field Name Description
issuedFigures - [FundingFigure!]! The figures this leg issued inside the window, oldest issue first. A figure appears here once, on the window that contains its issuedAt, even if a later window supersedes it.
latestIssuedAt - DateTime The newest issuedAt inside the window, or null when the leg issued no figure in it.
latestRecordedAt - DateTime The newest recordedAt inside the window, or null when the leg recorded nothing in it.
remittances - [FundingRemittance!]! The remittances and corrections Pylon recorded on this leg inside the window, oldest record first.
Example
{
  "issuedFigures": [FundingFigure],
  "latestIssuedAt": "2007-12-03T10:15:30Z",
  "latestRecordedAt": "2007-12-03T10:15:30Z",
  "remittances": [FundingRemittance]
}

FundingActivityPage

Fields
Field Name Description
entries - [FundingActivityEntry!]! Loans with funding activity in the window, ordered by loan identifier. A page holds first loans unless it is the last page.
next - String Pass as after to read the next page. Null when the walk has reached the end.
windowEnd - DateTime! The exclusive upper bound this walk reports through: the requested to, or the time the walk started when to is in the future. Every page of one walk uses this same bound, so activity recorded during the walk cannot shift a page.
Example
{
  "entries": [FundingActivityEntry],
  "next": "xyz789",
  "windowEnd": "2007-12-03T10:15:30Z"
}

FundingAvailability

Values
Enum Value Description

BLOCKED

PENDING

READY

UNAVAILABLE

Example
"BLOCKED"

FundingClosingFeeType

Description

The stable type of an itemized closing cost.

Values
Enum Value Description

ApplicationFee

AppraisalDeskReviewFee

AppraisalFee

AppraisalFieldReviewFee

AppraisalManagementCompanyFee

AsbestosInspectionFee

AssumptionFee

AttorneyDocumentPreparationFee

AttorneyFee

BankruptcyMonitoringFee

BorrowerElectedSurveyFee

CommitmentFee

Consultants203K

CreditReportFee

ERecordingFee

ElectronicDocumentDeliveryFee

EscrowHoldbackFee

EscrowServiceFee

EscrowWaiverFee

FloodCertification

FloodCertificationLifeOfLoan

GrmaFee

HeatingCoolingInspectionFee

HomeInspectionFee

HomeWarrantyFee

HomeownersAssociationDues

HomeownersAssociationServiceFee

HomeownersAssociationSpecialAssessment

LeadInspectionFee

LenderCertificationFee

LenderCopyOrFaxFee

LenderCourierFee

LenderDocumentPreparationFee

LenderElectronicDocumentDeliveryFee

LenderFilingFee

LenderTaxServiceFee

LendersAttorneyFee

LoanOriginationFee

LockExtensionFee

MersRegistrationFee

MiInitialPremium

MiUpfrontPremium

MoldInspectionFee

MortgageBrokerFee

MunicipalLienCertificateFee

Other

OtherRecordingFee

OtherTransferTax

PayoffRequestFee

PestInspectionFee

Points

PowerOfAttorneyRecordingFee

PrepaidInterest

ProcessingFee

RadonInspectionFee

RateLockFee

RealEstateCommissionBuyersBroker

RealEstateCommissionSellersBroker

RecordingFeeForAssignment

RecordingFeeForDeed

RecordingFeeForMortgage

RecordingFeeForMunicipalLienCertificate

RecordingFeeForOtherDocument

RecordingFeeForRelease

RecordingFeeForSubordination

RecordingServiceFee

ReinspectionFee

RoofInspectionFee

SepticInspectionFee

StateTitleInsuranceFee

StructuralInspectionFee

SubordinationFee

SurveyFee

TaxServiceFee

TaxStampForCityDeed

TaxStampForCityMortgage

TaxStampForCountyDeed

TaxStampForCountyMortgage

TaxStampForStateDeed

TaxStampForStateMortgage

TaxStatusResearchFee

TemporaryBuydownPoints

TitleAbstractFee

TitleAttorneyFee

TitleBorrowerClosingProtectionLetterFee

TitleCertificationFee

TitleClosingCoordinationFee

TitleClosingFee

TitleClosingProtectionLetterFee

TitleCopyOrFaxFee

TitleCourierFee

TitleDeedPreparationFee

TitleDocumentPreparationFee

TitleElectronicDocumentDeliveryFee

TitleEndorsementFee

TitleExaminationFee

TitleFilingFee

TitleFinalPolicyShortFormFee

TitleInsuranceBinderFee

TitleInsuranceFee

TitleLendersCoveragePremium

TitleNotaryFee

TitleOwnersCoveragePremium

TitlePowerOfAttorneyPreparationFee

TitleProcessingFee

TitleReconveyanceFee

TitleRecordingServiceFee

TitleServicesSalesTax

TitleSettlementFee

TitleSubEscrowFee

TitleUnderwritingIssueResolutionFee

TitleUpdate203K

TitleWireTransferFee

TransferTaxTotal

UnderwritingFee

UsdaRuralDevelopmentGuaranteeFee

UsdaTechnologyFee

VaFundingFee

VerificationOfAssetsFee

VerificationOfEmploymentFee

VerificationOfIncomeFee

VerificationOfResidencyStatusFee

VerificationOfTaxReturnFee

VerificationOfTaxpayerIdentificationFee

WireTransferFee

Example
"ApplicationFee"

FundingCorrectionReason

Values
Enum Value Description

DUPLICATE_REPORT

ENTERED_IN_ERROR

WRONG_AMOUNT

Example
"DUPLICATE_REPORT"

FundingDayCountConvention

Values
Enum Value Description

ACTUAL_360

Example
"ACTUAL_360"

FundingFigure

Fields
Field Name Description
disclosedDisbursementDate - Date The scheduled disbursement date disclosed when this wire-out figure was issued. This is null for wire-in figures or when the date is unavailable.
effectiveDate - Date The date Pylon used to price a wire-out figure, or the purchase date for a wire-in figure.
id - ID! The immutable figure identifier.
issuedAt - DateTime! The time when Pylon first made this figure current.
lines - [FundingFigureLine!] The accounting breakdown for this figure. This field always returns an array. It is empty when a valid breakdown cannot be reconstructed from the stored inputs. Components are still returned when their sum differs from netAmount; read linesReconciliation to learn whether they add up instead of summing them yourself. Always use netAmount as the amount to wire. The GraphQL type remains nullable for backward compatibility.
linesReconciliation - FundingLinesReconciliation Whether lines add up to netAmount, judged from the same stored inputs the lines were built from. This does not affect the figure's availability. The GraphQL type is nullable for backward compatibility; the server always returns a value.
netAmount - MonetaryAmount! The full amount required for this figure.
pricedFundingDate - Date The funding date Pylon used to price this wire-out figure. This is null for wire-in figures.
recipientName - String The recipient for this figure, when known.
supersededReason - FundingFigureSupersededReason Why this figure replaced the prior figure. Null when this is the first issued figure.
supersedesFigureId - ID The issued figure that this figure replaced.
Example
{
  "disclosedDisbursementDate": "2007-12-03",
  "effectiveDate": "2007-12-03",
  "id": 4,
  "issuedAt": "2007-12-03T10:15:30Z",
  "lines": [FundingFigureLine],
  "linesReconciliation": "NON_RECONCILING",
  "netAmount": MonetaryAmount,
  "pricedFundingDate": "2007-12-03",
  "recipientName": "abc123",
  "supersededReason": "CALCULATION_REVISION",
  "supersedesFigureId": 4
}

FundingFigureLine

Fields
Field Name Description
amount - MonetaryAmount! The signed contribution to the figure total. Positive amounts add and negative amounts subtract.
code - FundingFigureLineCode! The stable accounting category for this amount.
interestDetails - FundingInterestDetails The priced inputs for a prepaid-interest line. This is null for other line codes and when the stored source does not describe one internally consistent interest period.
items - [FundingFigureLineItem!] The source costs included in this aggregate line. Null when the figure predates itemization or the amount was entered as an aggregate override.
Example
{
  "amount": MonetaryAmount,
  "code": "BORROWER_POINTS",
  "interestDetails": FundingInterestDetails,
  "items": [FundingFigureLineItem]
}

FundingFigureLineCode

Values
Enum Value Description

BORROWER_POINTS

ESCROW_AT_CLOSING

ESCROW_TRANSFERRED

INTEREST_TRANSFERRED

LENDER_CREDITS

LOAN_AMOUNT

NETTED_CLOSING_COSTS

PASSTHROUGH_FEES

PLATFORM_FEES

PREPAID_INTEREST

PRICE_ADJUSTMENT

PURCHASED_UNPAID_PRINCIPAL_BALANCE

TOLERANCE_CURES

UPFRONT_MORTGAGE_INSURANCE

Example
"BORROWER_POINTS"

FundingFigureLineItem

Fields
Field Name Description
amount - MonetaryAmount! The signed contribution to the parent line. Positive amounts add and negative amounts subtract.
closingDisclosureSection - IntegratedDisclosureSectionType The Closing Disclosure section, when available.
feeType - FundingClosingFeeType The stable closing-cost type, when available.
Example
{
  "amount": MonetaryAmount,
  "closingDisclosureSection": "DUE_FROM_BORROWER_AT_CLOSING",
  "feeType": "ApplicationFee"
}

FundingFigureSupersededReason

Values
Enum Value Description

CALCULATION_REVISION

The calculation was revised and the figure was re-issued under the new revision. No source input changed; the amount is normally identical.

CANCELLED_AND_REISSUED

DATA_CORRECTION

A source input of the prior figure changed, for example a closing cost or the recipient.

OTHER

REPRICED_FOR_FUNDING_DATE

SUPPLEMENTAL

Example
"CALCULATION_REVISION"

FundingInterestDetails

Fields
Field Name Description
dayCount - NonNegativeInt! The number of actual calendar days charged.
dayCountConvention - FundingDayCountConvention! ACTUAL_360 uses actual calendar days and a 360-day year to calculate the daily amount.
fromDate - Date! The first calendar date included in the interest charge.
interestRate - NonNegativeFloat! The annual note rate as a percentage, such as 4.99.
perDiemAmount - MonetaryAmount! The daily interest amount, rounded to the nearest cent before multiplication by day count.
toDate - Date! The exclusive end date of the interest period. This date is not charged.
Example
{
  "dayCount": 123,
  "dayCountConvention": "ACTUAL_360",
  "fromDate": "2007-12-03",
  "interestRate": 123.45,
  "perDiemAmount": MonetaryAmount,
  "toDate": "2007-12-03"
}

FundingLinesReconciliation

Description

Whether the lines on a funding figure add up to its netAmount.

Values
Enum Value Description

NON_RECONCILING

The returned lines do not sum to netAmount. Pylon knows at least one component is missing or inconsistent; netAmount is still the amount to wire.

RECONCILED

The returned lines sum to netAmount. Wire-in lines may differ by at most one cent because the total is rounded after summing its components.

UNAVAILABLE

No breakdown could be reconstructed from the stored inputs, so lines is empty.
Example
"NON_RECONCILING"

FundingMutations

Fields
Field Name Description
correctWireInRemittance - CorrectWireInRemittanceResponse
Arguments
correctWireOutRemittance - CorrectWireOutRemittanceResponse
Arguments
recordWireInInputs - RecordWireInInputsResponse
Arguments
recordWireInRemittance - RecordWireInRemittanceResponse
Arguments
recordWireOutRemittance - RecordWireOutRemittanceResponse
Arguments
Example
{
  "correctWireInRemittance": CorrectWireInRemittanceResponse,
  "correctWireOutRemittance": CorrectWireOutRemittanceResponse,
  "recordWireInInputs": RecordWireInInputsResponse,
  "recordWireInRemittance": RecordWireInRemittanceResponse,
  "recordWireOutRemittance": RecordWireOutRemittanceResponse
}

FundingQueries

Fields
Field Name Description
activity - FundingActivityPage! Every loan that issued a funding figure or recorded a remittance between from (inclusive) and to (exclusive), so a close can take its population from Pylon's records rather than from the caller's own tracker. Read the pages by passing next back as after until it is null. Each entry reports the whole window; changedSince narrows only which loans are reported, so a nightly poll passes the close period as the window and its last run as changedSince. Activity is reported from Pylon's persisted records, so a loan appears for the window its figure was issued in even if a later figure has since replaced it. Activity means an issued figure or a recorded remittance: a loan whose only change was a figure becoming unusable without a replacement being issued is not reported here. first defaults to 50 and a value above 100 is rejected. Requires a credential with access to every loan for the customer; a credential scoped to assigned loans is rejected.
Arguments
after - String
changedSince - DateTime
first - Int
from - DateTime!
to - DateTime!
Example
{"activity": FundingActivityPage}

FundingRemittance

Fields
Field Name Description
amount - MonetaryAmount! The signed event amount. Ordinary remittances are positive; Pylon correction events are the exact negative of the remittance they correct.
correctionReason - FundingCorrectionReason Why Pylon corrected the reported remittance.
correctsRemittanceId - ID
effectiveDate - Date The accounting date for a correction. Null for an ordinary remittance.
figureId - ID!
fundsOrderedAt - DateTime!
id - ID!
recordedAt - DateTime!
Example
{
  "amount": MonetaryAmount,
  "correctionReason": "DUPLICATE_REPORT",
  "correctsRemittanceId": 4,
  "effectiveDate": "2007-12-03",
  "figureId": "4",
  "fundsOrderedAt": "2007-12-03T10:15:30Z",
  "id": "4",
  "recordedAt": "2007-12-03T10:15:30Z"
}

FundingSettlement

Fields
Field Name Description
asOf - DateTime! The requested historical instant, or the time when Pylon last observed the sources for the latest funding state.
wireIn - FundingWireLeg!
wireOut - FundingWireLeg!
Example
{
  "asOf": "2007-12-03T10:15:30Z",
  "wireIn": FundingWireLeg,
  "wireOut": FundingWireLeg
}

FundingWireInInputVersion

Fields
Field Name Description
applyCredits - Boolean!
concessionAmount - MonetaryAmount
escrowAtClosing - MonetaryAmount
globalMarginPercent - NonNegativeFloat Operator-pinned global margin in percentage points: 2.75 means 2.75%. Null when the rate-lock margin lookup was used.
id - ID!
monthlyEscrow - MonetaryAmount
passthroughFees - MonetaryAmount
perLoanPlatformFee - MonetaryAmount!
purchaseDate - Date!
recordedAt - DateTime!
sellerMarginShare - NonNegativeFloat Operator-pinned seller fraction of the global margin: 0.8182 means 81.82%. Null when the rate-lock margin lookup was used.
totalToleranceCures - MonetaryAmount
Example
{
  "applyCredits": true,
  "concessionAmount": MonetaryAmount,
  "escrowAtClosing": MonetaryAmount,
  "globalMarginPercent": 123.45,
  "id": "4",
  "monthlyEscrow": MonetaryAmount,
  "passthroughFees": MonetaryAmount,
  "perLoanPlatformFee": MonetaryAmount,
  "purchaseDate": "2007-12-03",
  "recordedAt": "2007-12-03T10:15:30Z",
  "sellerMarginShare": 123.45,
  "totalToleranceCures": MonetaryAmount
}

FundingWireLeg

Fields
Field Name Description
availability - FundingAvailability! Whether this wire leg has a figure that can be used at the settlement's as-of instant.
currentFigure - FundingFigure The issued figure current at the settlement's as-of instant. Present only when ready.
figure - FundingFigure An issued figure on this wire leg, or null when the ID does not belong to the leg.
Arguments
id - ID!
figures - [FundingFigure!]! Every issued figure for this wire leg, oldest first.
remainingAmount - MonetaryAmount The current figure amount minus the total remitted amount. Negative means overfunded.
remittances - [FundingRemittance!]! Remittance and correction records recorded by the settlement's as-of instant, oldest first.
totalRemittedAmount - MonetaryAmount! The signed sum of all remittance and correction amounts.
Example
{
  "availability": "BLOCKED",
  "currentFigure": FundingFigure,
  "figure": FundingFigure,
  "figures": [FundingFigure],
  "remainingAmount": MonetaryAmount,
  "remittances": [FundingRemittance],
  "totalRemittedAmount": MonetaryAmount
}

GenerateClosingDisclosurePreviewInput

Description

Input to the generateClosingDisclosurePreview mutation.

Fields
Input Field Description
loanId - ID! The ID or friendly ID of the loan.
Example
{"loanId": "4"}

GenerateClosingDisclosurePreviewResponse

Description

Response of the generateClosingDisclosurePreview mutation.

Fields
Field Name Description
disclosuresRunId - ID! The ID of the disclosure run created.
pricedAsOf - DateTime When the rate sheet the previewed figures were priced against was received.
pricingStale - Boolean! Whether the previewed figures are priced against a superseded rate sheet with no rate lock in force. The preview still renders; surface this as a banner.
Example
{
  "disclosuresRunId": "4",
  "pricedAsOf": "2007-12-03T10:15:30Z",
  "pricingStale": false
}

GenerateLoanEstimatePreviewInput

Description

Input to the generateLoanEstimatePreview mutation.

Fields
Input Field Description
loanId - ID! The ID of the loan.
Example
{"loanId": "4"}

GenerateLoanEstimatePreviewResponse

Description

Response of the generateLoanEstimatePreview mutation.

Fields
Field Name Description
disclosuresRunId - ID! The ID of the disclosure run created.
pricedAsOf - DateTime When the rate sheet the previewed figures were priced against was received.
pricingStale - Boolean! Whether the previewed figures are priced against a superseded rate sheet with no rate lock in force. The preview still renders; surface this as a banner.
Example
{
  "disclosuresRunId": "4",
  "pricedAsOf": "2007-12-03T10:15:30Z",
  "pricingStale": false
}

GenericUserError

Description

Generic user error

Fields
Field Name Description
code - String A stable error code for programmatic handling. Format: {DOMAIN}_{ERROR_NAME} (e.g., 'LOAN_CLOSED', 'AUS_NO_PRODUCT_PRICING').
errorId - ID! A unique identifier for this error instance, useful for tracking and debugging.
field - [String!] Path to the input field that caused the error (e.g., ['input', 'customer', 'email']). Null when not associated with a specific field.
message - String! A human-readable error message.
Example
{
  "code": "xyz789",
  "errorId": "4",
  "field": ["abc123"],
  "message": "xyz789"
}

Geography

Fields
Field Name Description
place - PlaceDetails Address components for a place chosen from placeAutocomplete. Pass the sessionToken used for the autocomplete calls; this fetch ends that session. Null when the place ID is unknown.
Arguments
placeId - ID!
sessionToken - String!
placeAutocomplete - [PlaceAutocompleteSuggestion!]! US street-address autocomplete suggestions for a partial address. Group the keystrokes of one address entry under a single client-generated sessionToken (a UUID) and finish the session by fetching the chosen suggestion's place with the same token.
Arguments
input - String!
sessionToken - String!
usState - UsState!
Arguments
abbreviation - String!
Example
{
  "place": PlaceDetails,
  "placeAutocomplete": [PlaceAutocompleteSuggestion],
  "usState": UsState
}

GetAutoConditionalApprovalStatusInput

Fields
Input Field Description
jobId - ID!
Example
{"jobId": "4"}

GetAutoConditionalApprovalStatusResponse

Fields
Field Name Description
blockers - [AutoConditionalApprovalBlocker!]
status - JobStatus!
Example
{
  "blockers": [AutoConditionalApprovalBlocker],
  "status": "FAILED"
}

GetPlaidLayerSessionInput

Description

Input to the getPlaidLayerSession mutation.

Fields
Input Field Description
borrowerId - ID! ID of the borrower
publicToken - String! Public token from Plaid Layer session
Example
{
  "borrowerId": "4",
  "publicToken": "xyz789"
}

GetPlaidLayerSessionResponse

Description

Response from processing a Plaid Layer session

Fields
Field Name Description
items - [PlaidLayerItem!]! Items linked during the Layer session
Example
{"items": [PlaidLayerItem]}

GiftAsset

Description

Gift asset

Fields
Field Name Description
amount - NonNegativeInt! The cash or market value of the asset in dollars
assetReportId - ID ID of the latest asset report that verified this asset
borrowerIds - [ID!] Ids of borrowers that are account holders on this asset
dateOfTransfer - Date The date when the gift/grant funds were transferred into the borrower's account
donorEmployeeIdentificationNumber - String Employer Identification Number (EIN) of the gift/grant donor
donorName - String Full name of the person providing the gift/grant
donorPhoneNumber - String The phone number of the person providing the gift/grant
id - ID! Node ID
isIncludedInAssetAccount - Boolean Indicates whether the gift/grant funds have already been included as part of an asset account considered for the loan
isSellerFunded - Boolean Indicates whether the gift/grant is funded by the seller
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
qualifiedAmount - NonNegativeInt The qualified amount of the asset in dollars, used for underwriting. Null if no qualification has been computed.
source - GiftSource Gift/Grant source
verifiedAmount - NonNegativeInt The verified cash or market value of the asset in dollars, confirmed by a third-party source
Example
{
  "amount": 123,
  "assetReportId": "4",
  "borrowerIds": ["4"],
  "dateOfTransfer": "2007-12-03",
  "donorEmployeeIdentificationNumber": "xyz789",
  "donorName": "abc123",
  "donorPhoneNumber": "xyz789",
  "id": 4,
  "isIncludedInAssetAccount": false,
  "isSellerFunded": true,
  "nonBorrowerOwnerNames": ["abc123"],
  "qualifiedAmount": 123,
  "source": "COMMUNITY_NON_PROFIT",
  "verifiedAmount": 123
}

GiftOrGrantAsset

Description

Interface for gift or grant assets

Fields
Field Name Description
amount - NonNegativeInt! The cash or market value of the asset in dollars
assetReportId - ID ID of the latest asset report that verified this asset
borrowerIds - [ID!] Ids of borrowers that are account holders on this asset
dateOfTransfer - Date The date when the gift/grant funds were transferred into the borrower's account
donorEmployeeIdentificationNumber - String Employer Identification Number (EIN) of the gift/grant donor
donorName - String Full name of the person providing the gift/grant
donorPhoneNumber - String The phone number of the person providing the gift/grant
id - ID! Asset ID
isIncludedInAssetAccount - Boolean Indicates whether the gift/grant funds have already been included as part of an asset account considered for the loan
isSellerFunded - Boolean Indicates whether the gift/grant is funded by the seller
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
qualifiedAmount - NonNegativeInt The qualified amount of the asset in dollars, used for underwriting. Null if no qualification has been computed.
source - GiftSource Gift/Grant source
verifiedAmount - NonNegativeInt The verified cash or market value of the asset in dollars, confirmed by a third-party source
Possible Types
GiftOrGrantAsset Types

GiftAsset

GrantAsset

Example
{
  "amount": 123,
  "assetReportId": 4,
  "borrowerIds": ["4"],
  "dateOfTransfer": "2007-12-03",
  "donorEmployeeIdentificationNumber": "abc123",
  "donorName": "abc123",
  "donorPhoneNumber": "xyz789",
  "id": "4",
  "isIncludedInAssetAccount": true,
  "isSellerFunded": false,
  "nonBorrowerOwnerNames": ["xyz789"],
  "qualifiedAmount": 123,
  "source": "COMMUNITY_NON_PROFIT",
  "verifiedAmount": 123
}

GiftSource

Description

Gift/Grant source

Values
Enum Value Description

COMMUNITY_NON_PROFIT

EMPLOYER

FEDERAL_AGENCY

LENDER

LOCAL_AGENCY

NON_RELATED_FAMILY

OTHER

RELATIVE

RELIGIOUS_NON_PROFIT

STATE_AGENCY

Example
"COMMUNITY_NON_PROFIT"

GiveMessageFeedbackInput

Fields
Input Field Description
messageId - ID!
note - String
sentiment - AdvisorSessionAdvisorMessageFeedbackSentiment!
Example
{
  "messageId": "4",
  "note": "abc123",
  "sentiment": "NEGATIVE"
}

GiveMessageFeedbackResponse

Fields
Field Name Description
advisorSession - AdvisorSession!
Example
{"advisorSession": AdvisorSession}

GlobalLoanOfficer

Description

Global loan officer

Fields
Field Name Description
email - String Email address
firstName - String First name
id - ID! The ID of the GlobalLoanOfficer
lastName - String Last name
slug - String URL-friendly identifier for the loan officer
Example
{
  "email": "abc123",
  "firstName": "abc123",
  "id": 4,
  "lastName": "abc123",
  "slug": "abc123"
}

GrantAsset

Description

Grant asset

Fields
Field Name Description
amount - NonNegativeInt! The cash or market value of the asset in dollars
assetReportId - ID ID of the latest asset report that verified this asset
borrowerIds - [ID!] Ids of borrowers that are account holders on this asset
dateOfTransfer - Date The date when the gift/grant funds were transferred into the borrower's account
donorEmployeeIdentificationNumber - String Employer Identification Number (EIN) of the gift/grant donor
donorName - String Full name of the person providing the gift/grant
donorPhoneNumber - String The phone number of the person providing the gift/grant
id - ID! Node ID
isIncludedInAssetAccount - Boolean Indicates whether the gift/grant funds have already been included as part of an asset account considered for the loan
isSellerFunded - Boolean Indicates whether the gift/grant is funded by the seller
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
qualifiedAmount - NonNegativeInt The qualified amount of the asset in dollars, used for underwriting. Null if no qualification has been computed.
source - GiftSource Gift/Grant source
verifiedAmount - NonNegativeInt The verified cash or market value of the asset in dollars, confirmed by a third-party source
Example
{
  "amount": 123,
  "assetReportId": 4,
  "borrowerIds": ["4"],
  "dateOfTransfer": "2007-12-03",
  "donorEmployeeIdentificationNumber": "abc123",
  "donorName": "abc123",
  "donorPhoneNumber": "abc123",
  "id": 4,
  "isIncludedInAssetAccount": true,
  "isSellerFunded": false,
  "nonBorrowerOwnerNames": ["xyz789"],
  "qualifiedAmount": 123,
  "source": "COMMUNITY_NON_PROFIT",
  "verifiedAmount": 123
}

GuidelineAgency

Description

Agency that published a guideline: FNMA (Fannie Mae), FHLMC (Freddie Mac), FHA, VA, CFPB.

Values
Enum Value Description

CFPB

FHA

FHLMC

FNMA

VA

Example
"CFPB"

GuidelineReference

Description

A reference to an agency guideline or regulatory section. Structured for filtering and deep-linking.

Fields
Field Name Description
agency - GuidelineAgency! Which agency published this guideline.
description - String! Human-readable description, e.g. "FNMA B3-3.1-01: Employment Documentation".
section - String! Guideline section identifier, e.g. "B3-3.1-01".
url - String URL to the guideline section. Null if no public URL is available.
Example
{
  "agency": "CFPB",
  "description": "abc123",
  "section": "abc123",
  "url": "abc123"
}

GuidelineViolation

Description

Represents a violation of a prescription in a guideline document.

Fields
Field Name Description
constraint - String If a violated constraint is found, this is a serialized representation of said constraint. For internal use at Pylon; this field has no guarantees.
description - String A human-readable description of the encoded guideline.
document - String The URL for the specific guideline document or the specific section.
pages - PageRange For document-based guidelines, the page numbers on which a set of guidelines falls.
section - String The section number and title of the violated guideline.
updatedAt - Date The last date that Pylon's model was updated to match the guideline document.
Example
{
  "constraint": "xyz789",
  "description": "abc123",
  "document": "xyz789",
  "pages": PageRange,
  "section": "xyz789",
  "updatedAt": "2007-12-03"
}

HazardInsuranceCoverageType

Description

Coverage provided by a hazard insurer

Values
Enum Value Description

EARTHQUAKE

FIRE

FLOOD

HAZARD

HOMEOWNERS

HURRICANE

INSECT_INFESTATION

LEASEHOLD

MINE_SUBSIDENCE

OTHER

PERSONAL_PROPERTY

STORM

TORNADO

VOLCANO

WIND

Example
"EARTHQUAKE"

HispanicOrigin

Values
Enum Value Description

CUBA

MEXICO

OTHER

PUERTO_RICO

Example
"CUBA"

HmdaDispositionCode

Description

Code for the HMDA action taken on a loan application.

Values
Enum Value Description

APPLICATION_APPROVED_BUT_NOT_ACCEPTED

APPLICATION_DENIED

APPLICATION_WITHDRAWN

FILE_CLOSED_FOR_INCOMPLETENESS

LOAN_ORIGINATED

LOAN_PURCHASED_BY_YOUR_INSTITUTION

PREAPPROVAL_REQUEST_APPROVED_BUT_NOT_ACCEPTED

PREAPPROVAL_REQUEST_DENIED

Example
"APPLICATION_APPROVED_BUT_NOT_ACCEPTED"

HmdaDispositionComparator

Description

Comparisons available on the HMDA disposition code.

Fields
Input Field Description
eq - HmdaDispositionCode
in - [HmdaDispositionCode!]
isNull - Boolean
neq - HmdaDispositionCode
nin - [HmdaDispositionCode!]
null - Boolean
Example
{
  "eq": "APPLICATION_APPROVED_BUT_NOT_ACCEPTED",
  "in": ["APPLICATION_APPROVED_BUT_NOT_ACCEPTED"],
  "isNull": false,
  "neq": "APPLICATION_APPROVED_BUT_NOT_ACCEPTED",
  "nin": ["APPLICATION_APPROVED_BUT_NOT_ACCEPTED"],
  "null": true
}

HousingAllowanceIncome

Description

Housing allowance income

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "id": 4,
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": 4
}

HousingChoiceVoucherProgramIncome

Description

Housing Choice Voucher Program income

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "id": "4",
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": 4
}

ID

Description

The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4") or integer (such as 4) input value will be accepted as an ID.

Example
4

IdentityFraudConditionBlocker

Description

Identity fraud condition detected

Fields
Field Name Description
type - String!
Example
{"type": "abc123"}

ImportIssueTypeInput

Description

Input for importing an existing Plain label type as an issue type.

Fields
Input Field Description
key - ID Key to register under. Defaults to the label type's external id when set, otherwise to the UPPER_SNAKE_CASE form of its name.
vendorId - ID! The Plain label type id to import (e.g. lt_...).
Example
{"key": "4", "vendorId": 4}

ImportIssueTypeResponse

Description

Response from importing an issue type.

Fields
Field Name Description
label - SupportIssueType! The imported issue type.
Example
{"label": SupportIssueType}

Income

Description

Income interface

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
id - ID! Income ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "id": "4",
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": "4"
}

IncomeConnection

Fields
Field Name Description
edges - [IncomeEdge!]!
pageInfo - PageInfo!
Example
{
  "edges": [IncomeEdge],
  "pageInfo": PageInfo
}

IncomeEdge

Fields
Field Name Description
cursor - ID!
node - Income!
Example
{"cursor": 4, "node": Income}

IncomeMutations

Fields
Field Name Description
create - CreateIncomeResponse Create an income. The input is a 'oneOf' type where exactly one field must be populated. The type of income to be created depends on which input field is populated. Example: If socialSecurity is populated, a SocialSecurityIncome entity will be created.
Arguments
delete - DeleteIncomeResponse Delete an income
Arguments
recompute - RecomputeIncomeResponse Recompute and persist an income's verified and qualified amounts from existing paystub data. Does not re-pull from Truv and does not trigger pricing. Pylon super admins only.
Arguments
update - UpdateIncomeResponse Update income.
Arguments
Example
{
  "create": CreateIncomeResponse,
  "delete": DeleteIncomeResponse,
  "recompute": RecomputeIncomeResponse,
  "update": UpdateIncomeResponse
}

IncomePayType

Description

The type of pay for the income (hourly or salaried)

Values
Enum Value Description

HOURLY

SALARIED

Example
"HOURLY"

IncomeVerificationMutations

Fields
Field Name Description
cancelOrder - CancelOrderResponse
Arguments
requestOrder - RequestOrderResponse
Arguments
Example
{
  "cancelOrder": CancelOrderResponse,
  "requestOrder": RequestOrderResponse
}

IncomeVerificationOrderStatus

Values
Enum Value Description

CANCELED

COMPLETED

FAILED

PENDING

Example
"CANCELED"

IncomeVerificationOrderSummary

Fields
Field Name Description
createdAt - DateTime!
expiresAt - DateTime!
orderId - String!
shareUrl - String The borrower-facing verification link, null unless the order is pending and unexpired.
status - IncomeVerificationOrderStatus!
Example
{
  "createdAt": "2007-12-03T10:15:30Z",
  "expiresAt": "2007-12-03T10:15:30Z",
  "orderId": "abc123",
  "shareUrl": "xyz789",
  "status": "CANCELED"
}

IncomeVerificationQueries

Fields
Field Name Description
orders - [IncomeVerificationOrderSummary!]! Returns the borrower's 10 most recent orders, newest first.
Arguments
borrowerId - ID!
Example
{"orders": [IncomeVerificationOrderSummary]}

IndividualDevelopmentAccountAsset

Description

Individual development account asset

Fields
Field Name Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt! The cash or market value of the asset in dollars
assetReportId - ID ID of the latest asset report that verified this asset
borrowerIds - [ID!] Ids of borrowers that are account holders on this asset
id - ID! Node ID
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
notableActivities - [FinancialAccountActivity!]! Notable activities
qualifiedAmount - NonNegativeInt The qualified amount of the asset in dollars, used for underwriting. Null if no qualification has been computed.
verifiedAmount - NonNegativeInt The verified cash or market value of the asset in dollars, confirmed by a third-party source
Example
{
  "accountIdentifier": "xyz789",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "assetReportId": 4,
  "borrowerIds": ["4"],
  "id": "4",
  "institutionName": "abc123",
  "nonBorrowerOwnerNames": ["xyz789"],
  "notableActivities": [FinancialAccountActivity],
  "qualifiedAmount": 123,
  "verifiedAmount": 123
}

IneligibilityDetails

Example
ConcessionExceedsCompensationViolation

IneligibilityDetailsType

Description

Details about product structure ineligibility

Fields
Field Name Description
field - String! The field that caused the ineligibility
reason - String! The reason for ineligibility
Example
{
  "field": "xyz789",
  "reason": "xyz789"
}

IneligiblePreQualification

Fields
Field Name Description
details - [IneligibilityDetails!]!
Example
{"details": [ConcessionExceedsCompensationViolation]}

IneligibleProduct

Fields
Field Name Description
details - [IneligibilityDetails!]!
product - Product!
Example
{
  "details": [ConcessionExceedsCompensationViolation],
  "product": Product
}

IneligibleProductPricing

Fields
Field Name Description
adjustableRateDetail - ProductPricingAdjustableRateDetail If non-null, this product represents an adjustable rate
details - [IneligibilityDetails!]!
id - ID The unique ID of this product pricing result.
lock - PositiveInt! The number of days this rate can be locked for.
product - Product! The product to which these calculations apply.
publishedAt - DateTimeISO! The date and time that rates for this product were published.
publishedOn - Date! The date that rates for this product were published. Use publishedAt for full timestamp precision.
term - PositiveInt! The term of the loan being considered in years.
Example
{
  "adjustableRateDetail": ProductPricingAdjustableRateDetail,
  "details": [ConcessionExceedsCompensationViolation],
  "id": 4,
  "lock": 123,
  "product": Product,
  "publishedAt": "2007-12-03T10:15:30Z",
  "publishedOn": "2007-12-03",
  "term": 123
}

IneligibleProductStructure

Fields
Field Name Description
adjustableRateDetail - ProductPricingAdjustableRateDetail If non-null, this product represents an adjustable rate mortgage
adjustments - [ProductPricingAdjustment!]! All adjustments that apply to this product, rate, and deal.
apor - ProductPricingApor! The published APOR for a comparible mortgage at the time of this pricing run.
appliedMargin - AppliedMargin The customer margin applied when this structure was priced, derived on read from the effective-dated margin window active at the loan's pricing instant: the lock date when the loan's pricing is pinned by a rate lock, or now for unlocked loans. Identical for a loan's current product structure and for candidate structures of a pricing run on the same loan. Null for structures priced outside a loan context (e.g. scenarios).
apr - Float! The APR with this rate applied as a percentage.
cashFromToBorrower - Float! The net change in cash from/to the borrower at closing.
cashOutAmount - NonNegativeFloat! The cash out amount.
cashOutType - RefinanceCashOutType! The cash out type.
closingCosts - Float! The closing costs for this rate. Currently, this is only an estimate-- things like title fees are difficult to correctly compute, but this should be a good approximation.
concessionPoints - NonNegativeFloat! The concessions being applied to the rate cost in this scenario, in points.
downPaymentAmount - NonNegativeFloat! The down payment on a property.
dti - NonNegativeFloat! The debt-to-income ratio of the borrowers with the PITIA for this rate taken into account.
floodInsurance - NonNegativeFloat! The cost of flood insurance.
id - ID The unique ID of this product pricing result.
ineligibilityDetails - [ProductStructureIneligibilityDetails!]!
interest - PositiveInt! The total interest over the life of the loan, in dollars, with this rate applied.
llpasWaived - Boolean! Whether LLPAs were waived for this rate due to low-income borrower eligibility
loanTermYears - PositiveInt! The term length of the loan, in years
lock - PositiveInt! The number of days this rate can be locked for.
ltv - Float! The ratio of the loan amount to the total value of the property, expressed as a percentage
monthlyPayment - NonNegativeFloat! The monthly mortgage payment (PITIA) of a loan at this rate.
mortgageInsurance - NonNegativeFloat! The cost of mandatory mortgage insurance each month.
pitia - Pitia! Breakdown of the monthly payment for this rate.
pointsCost - NonNegativeFloat! The cost, in dollars, to buy enough points in order to qualify for a better rate.
pointsNeeded - NonNegativeFloat! The number of additional points that must be purchased in order to qualify for this rate.
prepaidInterestDailyAmount - NonNegativeFloat! The amount of prepaid interest paid per day before closing,
prepaidInterestDaysPaid - NonNegativeFloat! The number of days' worth of prepaid interest to be paid at closing,
prepaidInterestTotalAmount - NonNegativeFloat! The total dollar amount of prepaid interest due at closing,
principal - PositiveFloat! The total principal, in dollars, of the loan with this rate applied.
product - Product! The product to which these calculations apply.
publishedAt - DateTimeISO! The date and time that rates for this product were published.
publishedOn - Date! The date that rates for this product were published. Use publishedAt for full timestamp precision.
rate - Float! The interest rate as a percentage.
rateId - ID! The ID of the rate.
ratePoints - Float! The cost, in points, of this rate.
totalCost - Float! The total cost after adjustments for this rate. Can be negative if the rate is below par.
totalPoints - Float! The total number of points after adjustments for this rate.
Example
{
  "adjustableRateDetail": ProductPricingAdjustableRateDetail,
  "adjustments": [ProductPricingAdjustment],
  "apor": ProductPricingApor,
  "appliedMargin": AppliedMargin,
  "apr": 987.65,
  "cashFromToBorrower": 123.45,
  "cashOutAmount": 123.45,
  "cashOutType": "CASH_OUT",
  "closingCosts": 987.65,
  "concessionPoints": 123.45,
  "downPaymentAmount": 123.45,
  "dti": 123.45,
  "floodInsurance": 123.45,
  "id": 4,
  "ineligibilityDetails": [
    ConcessionExceedsCompensationViolation
  ],
  "interest": 123,
  "llpasWaived": true,
  "loanTermYears": 123,
  "lock": 123,
  "ltv": 987.65,
  "monthlyPayment": 123.45,
  "mortgageInsurance": 123.45,
  "pitia": Pitia,
  "pointsCost": 123.45,
  "pointsNeeded": 123.45,
  "prepaidInterestDailyAmount": 123.45,
  "prepaidInterestDaysPaid": 123.45,
  "prepaidInterestTotalAmount": 123.45,
  "principal": 123.45,
  "product": Product,
  "publishedAt": "2007-12-03T10:15:30Z",
  "publishedOn": "2007-12-03",
  "rate": 123.45,
  "rateId": "4",
  "ratePoints": 987.65,
  "totalCost": 987.65,
  "totalPoints": 123.45
}

IneligibleStructureBlocker

Description

The product structure is ineligible

Fields
Field Name Description
ineligibilityDetails - [IneligibilityDetailsType!]! Details about the ineligibility
type - String!
Example
{
  "ineligibilityDetails": [IneligibilityDetailsType],
  "type": "xyz789"
}

InsufficientFraudScoreBlocker

Description

Fraud score is below the required threshold

Fields
Field Name Description
score - Float! The fraud score that was received
type - String!
Example
{"score": 987.65, "type": "abc123"}

Int

Description

The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.

Example
987

IntakeEntity

Description

The kind of record an intake non-adoption concerns — the eight kinds of record intake creates. A non-adoption names its entity even when no record was created, which is how a client knows which create mutation would close it.

Values
Enum Value Description

ASSET

BORROWER

INCOME

LOAN_APPLICATION

NON_BORROWING_OWNER

OWNED_PROPERTY

PARTY

SUBJECT_PROPERTY

Example
"ASSET"

IntakeField

Description

A target field: a column on a Pylon record that intake could not fill, described well enough for a client to render a control and let a human finish it.

Fields
Field Name Description
column - String! Braid's own column name, stable across releases. Not a display string, and not the name the uploaded file used for the same thing.
valueKind - IntakeValueKind! The kind of value the column holds, so a client can choose a control.
values - IntakeValueSet Permitted values or selectable records. Present exactly when valueKind is ENUM or REFERENCE, and null for every other kind.
Example
{
  "column": "xyz789",
  "valueKind": "BOOLEAN",
  "values": IntakeInlineValues
}

IntakeFieldOutcome

Description

One field key's outcome from a settled run. Field keys and the outcome bucket only — never the value, its confidence, or what it beat (fieldProvenance's job, not this poll's).

Fields
Field Name Description
fieldKey - String! The wire field key.
outcome - IntakeFieldOutcomeKind! Which bucket this field key landed in.
Example
{"fieldKey": "abc123", "outcome": "APPLIED"}

IntakeFieldOutcomeKind

Description

Which bucket a read field key landed in on a COMPLETED run. Never the value, its confidence, or what it beat — that is fieldProvenance's to answer.

Values
Enum Value Description

APPLIED

CONTESTED

HELD

PREEXISTING

WITHHELD

Example
"APPLIED"

IntakeInlineValues

Description

A small closed set of permitted values, sent with the non-adoption because sending it costs less than a round trip.

Fields
Field Name Description
values - [String!]! Wire values in the column's own vocabulary — what a mutation would accept, not what a user should read. Display copy is the client's.
Example
{"values": ["abc123"]}

IntakeLookup

Description

The existing query a by-reference value set resolves through. Named rather than inlined because these sets are large, or because they name selectable records rather than plain values; either way the client pays for them when the field is edited and not on every read of the report. COUNTIES_BY_STATE resolves through UsState.counties and is keyed on the record's state column. LOAN_OFFICERS and LIABILITIES_FOR_OWNED_PROPERTY name record types, so a field carrying either is a REFERENCE field.

Values
Enum Value Description

COUNTIES_BY_STATE

LIABILITIES_FOR_OWNED_PROPERTY

LOAN_OFFICERS

Example
"COUNTIES_BY_STATE"

IntakeNonAdoptionReason

Description

Why intake could not fill the field itself. Orthogonal to IntakeNonAdoptionSeverity, which says how much the non-adoption matters. Seven members are MISMO's alone, six are extraction's alone, and UNREADABLE is emitted by both — it names one event (a source stated a value the column's domain cannot hold, and nothing was written) that both paths reach by their own route. A non-adoption, in every member's case, means THIS RUN of intake did not adopt the file's claim for the field — not that the loan is necessarily left without a value: PREEXISTING is the one member where it already has one, held back rather than silently claimed by a run that cannot vouch for where it came from.

Values
Enum Value Description

ABSENT

MISMO. The field or section was not in the file at all, so the non-adoption quotes no stated value.

ASSUMED

MISMO. The file gave nothing usable for this field — absent, or out of scope for the importer entirely — and a consumer downstream (pricing, most often) resolves it anyway without telling anyone: with a guessed value, or with an explicit but otherwise-invisible "unknown" that still drives real behavior. Distinct from DEFAULTED: the file did not state a value we misread, it stated nothing, and this reason describes what a downstream consumer does next rather than what the file said.

CONTESTED

Extraction. The loan's documents contradicted each other about this field and the ranking could not separate them, so the reading left it for a person to settle. Distinct from UNREADABLE: the column could have held what was said; the sources did not agree on what to say. Only a subset of contested fields is actually put to the borrower — which ones is the reading lane's decision, and it is not this reason's to report.

DEFAULTED

MISMO. The file supplied a value we do not recognize; the entity was still imported, with a substitute in the field — a generic default (an asset or income typed as OTHER) or a value derived from the file's other signals (a housing type from the property's unit count). The file said something, and the non-adoption quotes the stated word we could not use.

HELD

Extraction. The write is due and citation-backed but the loan is frozen. Nothing is wrong with the value; it lands when the freeze lifts.

INCOMPLETE

MISMO. The section or entity was present in the file, but without enough content to create the record — a property owner the file named with no name at all. There is nothing to build a record from; supply the missing detail if the owner matters to this loan.

NOT_REPRESENTABLE

MISMO. A MISMO 3.6-only value with no 3.4 equivalent, dropped while normalizing the document to the 3.4 model the importer reads.

OUT_OF_SCOPE

MISMO. The section or entity was present in the file, and this importer deliberately does not carry it onto a loan — a party role outside what it tracks. Our boundary, not a defect in the file or a loss of anything the file supplied; add it by hand if it matters to this loan.

PREEXISTING

Extraction. The field already held a value this lane has no write receipt for — somebody's typed data. Held and reported rather than overwritten, because the lane will not silently replace a value it cannot account for.

REPORT_ONLY

Extraction. The field was resolved and citation-backed, but its source documents fall outside the adoption voucher, so it was reported and never written. This is the ordinary fate of anything read after the initial auto-fill: the lane writes only through the voucher over the documents it adopted, and every later upload is report-only by design. Not an error, and usually the most common reason on a loan that has been worked.

UNCITED

Extraction. The reading decided a value but no citation rows stood behind it, so it was held rather than written: a write receipt could prove no provenance, and attribution is never inferred. The value exists and the field does not, so a human can still enter it — but unlike WITHHELD or REPORT_ONLY this is not a policy outcome. It means the citation join failed for that field, and a run producing it is reporting a defect as well as a non-adoption.

UNLINKED

MISMO. The section or entity was present in the file, but names no loan participant it could attach to — an asset or a rental income with no resolvable borrower. The relationship is required, so nothing was created; link it to a borrower to bring it onto the loan.

UNREADABLE

Both paths. A source stated a value the column's domain cannot hold, and nothing was written for the field. MISMO reaches it when the file supplies a term the importer does not recognize; extraction reaches it when a document names a field but not in a form the column can take. The permitted set travels with the non-adoption so the user can pick the right one. Distinct from DEFAULTED, where the same unusable value still left a substitute written into the field, and from CONTESTED, where the column could have held any of the values offered and the sources disagreed about which.

WITHHELD

Extraction. A document kind reports this field but never writes it — income, today. Recorded so that "nothing happened" and "we read it and deliberately did not write it" stay distinguishable, and so a review surface knows to ask. A policy of the document kind, not a failure of this run.
Example
"ABSENT"

IntakeNonAdoptionSeverity

Description

How much a non-adoption matters. Orthogonal to IntakeNonAdoptionReason, which says why the non-adoption exists.

Values
Enum Value Description

CRITICAL

The owning entity was created, but this field feeds a ratio a user reads straight off the loan — DTI today — and intake could not establish the true value, so something downstream (pricing, most often) silently resolves it on its own: with a guessed value, or with an explicit but otherwise-invisible "unknown" that still drives real, DTI-relevant behavior. Unlike RECOMMENDED, this is not "nice to fill in eventually": the ratio computed from this field may not be what a plain read of the loan would suggest, until a human resolves it. Reserved for non-adoptions with a known, silent effect on such a ratio — most non-adoptions that merely leave a field blank stay RECOMMENDED.

OPTIONAL

The owning entity itself was never created. Intake merely reports the entity for the user's awareness and takes no further action. Reported at entity granularity, so the non-adoption names no fields. Whether the section was absent from the file or present but not importable is the reason's to say — ABSENT versus UNLINKED, INCOMPLETE or OUT_OF_SCOPE — not this severity's.

RECOMMENDED

The owning entity was created, but this specific field ended up empty. The user is advised to fill it in afterwards.
Example
"CRITICAL"

IntakeValueKind

Description

The kind of value a column holds, so a client can choose a control without knowing the column. TAX_ID is a government tax-identifier number (an SSN, EIN, or ITIN) — a plain string to the database, but not safe to treat as free TEXT: it wants a masked, numeric-only control, distinct from a name or an address that happens to share the same underlying column type. ENUM means a closed vocabulary of plain values; REFERENCE means the value identifies another record (which loan officer, which liability) and the client renders a picker rather than a free field.

Values
Enum Value Description

BOOLEAN

DATE

DECIMAL

EMAIL

ENUM

INTEGER

MONEY

PHONE

REFERENCE

TAX_ID

TEXT

Example
"BOOLEAN"

IntakeValueSet

Description

Permitted values: inline when the set is small and made of plain values, by lookup when it is large or names records.

Example
IntakeInlineValues

IntakeValuesRef

Description

A set of permitted values the client resolves only when the field is actually edited: large vocabularies and record pickers, which would otherwise be paid for on every read of the report.

Fields
Field Name Description
keyedOn - String The column on the same record whose current value keys the lookup — counties key on state. Null when the lookup takes no key.
lookup - IntakeLookup! The existing query that supplies the values. For a REFERENCE field it names the record type too.
Example
{
  "keyedOn": "xyz789",
  "lookup": "COUNTIES_BY_STATE"
}

IntegratedDisclosureSectionType

Values
Enum Value Description

DUE_FROM_BORROWER_AT_CLOSING

DUE_FROM_SELLER_AT_CLOSING

DUE_TO_SELLER_AT_CLOSING

INITIAL_ESCROW_PAYMENT_AT_CLOSING

ORIGINATION_CHARGES

OTHER

OTHER_COSTS

PAID_ALREADY_BY_OR_ON_BEHALF_OF_BORROWER_AT_CLOSING

PAYOFFS_AND_PAYMENTS

PREPAIDS

SERVICES_BORROWER_DID_NOT_SHOP_FOR

SERVICES_BORROWER_DID_SHOP_FOR

SERVICES_YOU_CANNOT_SHOP_FOR

SERVICES_YOU_CAN_SHOP_FOR

TAXES_AND_OTHER_GOVERNMENT_FEES

TOTAL_CLOSING_COSTS

TOTAL_LOAN_COSTS

TOTAL_OTHER_COSTS

Example
"DUE_FROM_BORROWER_AT_CLOSING"

InternalError1Blocker

Fields
Field Name Description
type - String!
Example
{"type": "abc123"}

InternalError2Blocker

Description

Internal error: Invalid fraud report response

Fields
Field Name Description
type - String!
Example
{"type": "abc123"}

InternalError3Blocker

Description

Internal error: Product incompatible with AUS

Fields
Field Name Description
type - String!
Example
{"type": "abc123"}

InvalidateCreditCacheInput

Description

Input for invalidating credit pull cache entries

Fields
Input Field Description
borrowerIds - [ID!]! Borrower ID(s) whose cache entries should be invalidated (1 or 2)
Example
{"borrowerIds": ["4"]}

InvalidateCreditCacheResponse

Description

Response from invalidating credit pull cache entries

Fields
Field Name Description
invalidatedCount - Int! Number of cache entries that were invalidated
Example
{"invalidatedCount": 123}

InvalidationCause

Description

Why an INVALIDATION was written: RESTORED (the requirement was restored by reconciliation), REINTERPRETATION (the claim's meaning changed), ENV_CHANGE (a loan-context input changed).

Values
Enum Value Description

ENV_CHANGE

REINTERPRETATION

RESTORED

Example
"ENV_CHANGE"

IssueDealClaimTokenInput

Description

Input to the issueDealClaimToken mutation.

Fields
Input Field Description
borrowerId - ID! Borrower (on the deal) the token is issued for
dealId - ID! Deal the token grants access to
Example
{"borrowerId": "4", "dealId": 4}

IssueDealClaimTokenResponse

Description

A freshly minted one-time claim token. The raw token is returned exactly once and never stored in plaintext; hand it to the borrower.

Fields
Field Name Description
expiresAt - String! ISO-8601 instant after which the token can no longer be claimed
id - ID! Id of the stored claim-token record
token - String! The raw, single-use claim token. Returned once; deliver to the borrower out-of-band (LO hand-off). Not recoverable after this call.
Example
{
  "expiresAt": "xyz789",
  "id": 4,
  "token": "abc123"
}

JSONObject

Description

The JSONObject scalar type represents JSON objects as specified by ECMA-404.

Example
{}

Job

Description

Job interface

Fields
Field Name Description
id - ID! Job ID
status - JobStatus! Job status
Example
{"id": 4, "status": "FAILED"}

JobStatus

Description

Job status

Values
Enum Value Description

FAILED

PROCESSING

SUCCEEDED

Example
"FAILED"

JumboMarketingRate

Description

Jumbo marketing rate

Fields
Field Name Description
apr - Float!
discountPointsTotal - Float!
discountPointsTotalAmount - Int!
fipsCountyCode - String!
loanAmount - NonNegativeInt!
ltv - Float!
propertyUsageType - PropertyUsageType!
qualifyingFicoScore - Int!
rate - Float!
salesContractAmount - NonNegativeInt! The amount of money that the property will be purchased for. Also called the purchase price.
Example
{
  "apr": 123.45,
  "discountPointsTotal": 123.45,
  "discountPointsTotalAmount": 123,
  "fipsCountyCode": "xyz789",
  "loanAmount": 123,
  "ltv": 123.45,
  "propertyUsageType": "INVESTMENT",
  "qualifyingFicoScore": 123,
  "rate": 987.65,
  "salesContractAmount": 123
}

JumboMarketingRateInput

Description

Jumbo marketing rate input

Fields
Input Field Description
calculateApr - Boolean Should closing costs be fetched in order to calculate an APR?. Default = true
concessions - NonNegativeInt Lender concession in dollars. Reduces the rate cost (points) the borrower would otherwise pay, but never below zero. Default = 0
fipsCountyCode - String! The five-digit FIPS county code based on ANSI standard (INCITS 31:2009)
loanAmount - NonNegativeInt! Amount of the loan in dollars, also called principal
loanTermYears - Float! Loan term, in years. Default = 30
ltv - Float! Loan to value ratio. Lower values get better rates. A typical value for a conforming conventional loan would be 0.8; values over that usually require mortgage insurance.
maxDiscountPointsTotal - Float Maximum total discount points. Default = 0
qualifyingFicoScore - Int FICO score used to determine loan eligibility and interest rate
rateLockDays - Float! How long to lock the rate, in days. Default = 30
Example
{
  "calculateApr": false,
  "concessions": 123,
  "fipsCountyCode": "abc123",
  "loanAmount": 123,
  "loanTermYears": 987.65,
  "ltv": 987.65,
  "maxDiscountPointsTotal": 123.45,
  "qualifyingFicoScore": 123,
  "rateLockDays": 987.65
}

Lease

Description

Borrower lease

Fields
Field Name Description
apiUrl - String! URL of the Pylon API the lease is valid for
id - ID! ID of the lease
pylonUserId - String! Pylon user id for the borrower
Example
{
  "apiUrl": "xyz789",
  "id": "4",
  "pylonUserId": "abc123"
}

LegalEntity

Fields
Field Name Description
fullName - String
Example
{"fullName": "xyz789"}

Liability

Description

Liability type

Fields
Field Name Description
accountIdentifier - String Account identifier
balance - NonNegativeFloat Unpaid balance
bankName - String Bank name
creditorName - String Creditor name Use bankName instead
exclusionReason - LiabilityExclusionReason The reason why the liability is excluded
id - ID! Node ID
intent - LiabilityIntent The intent regarding liability
monthlyPayment - NonNegativeFloat Monthly payment
reportType - ReportType Whether the liability was sourced from a credit report or self-reported
type - LiabilityType The type of liability
Example
{
  "accountIdentifier": "abc123",
  "balance": 123.45,
  "bankName": "xyz789",
  "creditorName": "xyz789",
  "exclusionReason": "ASSIGNED_TO_ANOTHER_PARTY",
  "id": 4,
  "intent": "DO_NOTHING",
  "monthlyPayment": 123.45,
  "reportType": "CREDIT_REPORT",
  "type": "BORROWER_ESTIMATED_TOTAL_MONTHLY_LIABILITY_PAYMENT"
}

LiabilityConnection

Fields
Field Name Description
edges - [LiabilityEdge!]!
pageInfo - PageInfo!
Example
{
  "edges": [LiabilityEdge],
  "pageInfo": PageInfo
}

LiabilityEdge

Fields
Field Name Description
cursor - ID!
node - Liability!
Example
{
  "cursor": "4",
  "node": Liability
}

LiabilityExclusionReason

Description

The reason why the liability is excluded

Values
Enum Value Description

ASSIGNED_TO_ANOTHER_PARTY

ASSOCIATED_PROPERTY_SOLD

BUSINESS_DEBT_PAID_FROM_BUSINESS_FUNDS

DEBT_IS_ASSET_COLLATERALIZED

DUPLICATE

LESS_THAN_10_MONTHS_LEFT

NON_APPLICANT_DEBT

OTHER

PAID_BY_OTHERS

RENTAL_PAYMENT_FROM_PREVIOUS_RESIDENCE

THIRTY_DAY_CHARGE_ACCOUNT

UTILITIES

ZERO_BALANCE_AND_PAYMENT

Example
"ASSIGNED_TO_ANOTHER_PARTY"

LiabilityIntent

Description

The intent regarding liability

Values
Enum Value Description

DO_NOTHING

PAY_AT_CLOSING

PAY_BEFORE_CLOSING

SUBORDINATE

Example
"DO_NOTHING"

LiabilityMutations

Description

Liability mutations

Fields
Field Name Description
attachOwnedProperty - AttachOwnedPropertyLiabilityResponse Update a Liability. Fields with non-null values will be updated, the rest will be ignored.
create - CreateLiabilityResponse Create a liability
Arguments
delete - DeleteLiabilityResponse Delete a liability
Arguments
dismissDuplicateSuggestion - DismissDuplicateSuggestionResponse Dismiss one possible duplicate mortgage pairing without excluding debt
setExclusionReason - SetExclusionReasonResponse Update a Liability. Fields with non-null values will be updated, the rest will be ignored.
Arguments
setIntent - SetIntentResponse Update a Liability. Fields with non-null values will be updated, the rest will be ignored.
Arguments
input - SetIntentInput!
update - UpdateLiabilityResponse Update a Liability. Fields with non-null values will be updated, the rest will be ignored.
Arguments
Example
{
  "attachOwnedProperty": AttachOwnedPropertyLiabilityResponse,
  "create": CreateLiabilityResponse,
  "delete": DeleteLiabilityResponse,
  "dismissDuplicateSuggestion": DismissDuplicateSuggestionResponse,
  "setExclusionReason": SetExclusionReasonResponse,
  "setIntent": SetIntentResponse,
  "update": UpdateLiabilityResponse
}

LiabilityType

Description

The type of liability

Values
Enum Value Description

BORROWER_ESTIMATED_TOTAL_MONTHLY_LIABILITY_PAYMENT

COLLECTIONS_JUDGMENTS_AND_LIENS

DEFERRED_STUDENT_LOAN

DELINQUENT_TAXES

FIRST_POSITION_MORTGAGE_LIEN

GARNISHMENTS

HELOC

HOMEOWNERS_ASSOCIATION_LIEN

INSTALLMENT

LEASE_PAYMENT

MONETARY_JUDGMENT

MORTGAGE_LOAN

OPEN_30_DAY_CHARGE_ACCOUNT

OTHER

PERSONAL_LOAN

REVOLVING

SECOND_POSITION_MORTGAGE_LIEN

TAXES

TAX_LIEN

THIRD_POSITION_MORTGAGE_LIEN

UNSECURED_HOME_IMPROVEMENT_LOAN_INSTALLMENT

UNSECURED_HOME_IMPROVEMENT_LOAN_REVOLVING

Example
"BORROWER_ESTIMATED_TOTAL_MONTHLY_LIABILITY_PAYMENT"

LifeInsuranceAsset

Description

Life insurance asset

Fields
Field Name Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt! The cash or market value of the asset in dollars
assetReportId - ID ID of the latest asset report that verified this asset
borrowerIds - [ID!] Ids of borrowers that are account holders on this asset
id - ID! Node ID
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
notableActivities - [FinancialAccountActivity!]! Notable activities
qualifiedAmount - NonNegativeInt The qualified amount of the asset in dollars, used for underwriting. Null if no qualification has been computed.
verifiedAmount - NonNegativeInt The verified cash or market value of the asset in dollars, confirmed by a third-party source
Example
{
  "accountIdentifier": "abc123",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "assetReportId": "4",
  "borrowerIds": [4],
  "id": "4",
  "institutionName": "abc123",
  "nonBorrowerOwnerNames": ["abc123"],
  "notableActivities": [FinancialAccountActivity],
  "qualifiedAmount": 123,
  "verifiedAmount": 123
}

LinkBorrowersAsSpousesInput

Fields
Input Field Description
borrowerId1 - ID! ID of the first borrower
borrowerId2 - ID! ID of the second borrower
Example
{"borrowerId1": "4", "borrowerId2": 4}

LinkBorrowersAsSpousesResponse

Description

Response of the link borrowers as spouses mutation.

Fields
Field Name Description
borrower1 - Borrower! The first borrower
borrower2 - Borrower! The second borrower
Example
{
  "borrower1": Borrower,
  "borrower2": Borrower
}

Loan

Description

Loan

Fields
Field Name Description
allowedStates - [StateAbbreviated!]! The list of states where the organization is actively licensed.
appraisal - Appraisal Get an Appraisal by ID
Arguments
id - ID!
appraisalOrders - [AppraisalOrder!]! Appraisal orders placed for this loan.
assignedLoanOfficer - LoanOfficer The mortgage broker assigned to the loan.
availableGlobalLoanOfficers - [GlobalLoanOfficer!] The list of global loan officers available to be assigned to the loan. This list will vary depending on the subject property state.
availableLoanAssignments - [LoanAssignmentUser!]! Users with an assignable role at this customer who are not yet assigned to this loan
borrowerPreferences - BorrowerPreferences Borrower preferences associated with the loan.
borrowers - BorrowerConnection! Borrowers on the loan
Arguments
after - String

A cursor value that indicates the position after which items should be returned. Typically this should be the 'endCursor' of the previous page.

before - String

A cursor value that indicates the position before which items should be returned. Typically this should be the 'startCursor' of the following page.

first - Int

The number of items to be retrieved for forward pagination. Either 'first' or 'last' must be specified, but not both. This value must be between 1 and 500.

last - Int

The number of items to be retrieved for backward pagination. Either 'first' or 'last' must be specified, but not both. This value must be between 1 and 500.

sortDirection - SortDirection

The direction in which the results should be sorted. Defaults to ASC.

bulkLoanDocumentsExportJob - BulkLoanDocumentsExportJob A bulk loan documents export job for this loan.
Arguments
jobId - ID!
cashOutType - RefinanceCashOutType LO-set refinance/cash-out type (distinct from the pricing-derived value)
changeRequests - [LoanChangeRequest!]! Change requests associated with this loan
Arguments
closingDate - Date The date that the purchase is set to close.
concessions - [ConcessionLog!]! A log of all lender-paid concessions that have been requested or applied to this loan.
contacts - [Contact!]! Contacts associated with the loan.
currentStage - String The current stage that the loan is in.
customerPointAdjustments - CustomerPointAdjustment Customer margins, cost absorptions, and warehouse responsibility on the loan.
dealId - String! The unique ID of the deal associated with this loan.
disclosureDrift - DisclosureDrift! Every reason the loan's current state departs from what was last disclosed to the borrower, measured against its most recently disclosed TRID package. Asking is side-effect free: it reports what a redisclosure would be owed for, and never sends one.
documents - [Document!]! The list of documents associated with this loan.
Arguments
duplicateLiabilitySuggestions - [DuplicateLiabilitySuggestion!]! Possible duplicate mortgages for staff review; reading suggestions does not exclude debt
earnestMoneyDeposit - NonNegativeFloat The total amount of earnest money deposit
effectiveAppraisalWaiver - AppraisalWaiver The appraisal waivers applied to the loan.
employmentsMissingStartDateCount - Int! The number of employment records on the loan's borrowers that are missing a start date. Initial disclosures cannot be dispatched (via float or rate lock) until this is zero. Always zero once initial disclosures have been dispatched, since float / rate lock no longer need to send a new package.
estimatedRatios - EstimatedLoanRatios Live estimated DTI and LTV for this loan, recomputed from current incomes, liabilities, and property value on every read. Null until a product structure has been selected. Compare with productStructure.dti and productStructure.ltv, which are computed during pricing and fixed until the next pricing run.
fees - [Fee!] Fees associated with the loan.
friendlyId - String! An alternative ID that might be more aesthetically pleasing. May be shared by multiple objects representing the same loan.
fundedDate - Date The date the loan was funded (disbursed).
fundingSettlement - FundingSettlement! Funding state for both wire legs. Pass asOf to read the persisted state at that instant; omit it for the latest state.
Arguments
asOf - DateTime

Instant at which to read issued figures and recorded remittances. Defaults to the latest state when omitted.

getAutoConditionalApprovalStatus - GetAutoConditionalApprovalStatusResponse! The automatic conditional approval feature has been removed.
id - ID! The ID of the Loan
intentToProceedDate - Date The date the borrowers expressed intent to proceed after receiving initial disclosures. Unset until intent to proceed is received.
isClosed - Boolean Whether the loan has been closed.
isFirstTimeHomebuyer - Boolean Is this for a first time homebuyer?
isFloated - Boolean! Whether the loan is floated: initial disclosures have been sent (loan is frozen) but the rate is not yet locked. Derived from disclosuresDate IS NOT NULL && rateLockStatus !== LOCKED.
isFrozen - Boolean! Whether the loan is frozen
latestBulkLoanDocumentsExportJob - BulkLoanDocumentsExportJob The latest bulk loan documents export job for this loan.
latestPreApprovalRunTime - DateTime Time of the latest successful pre-approval
latestSuccessfulBulkLoanDocumentsExportJob - BulkLoanDocumentsExportJob The latest successful bulk loan documents export job for this loan.
liabilities - [Liability!]! All liabilities associated with this loan
loanAssignments - [LoanAssignment!]! Current loan team assignments for this loan
loanContact - LoanContact! The contact for this loan
loanDocuments - [LoanDocument!]! Documents from the document evidence API for this loan.
loanNumber - String The current loan number for internal Pylon use.
loanOfficerDocumentTasks - [LoanOfficerDocumentTask!] The borrower tasks available to Loan Officers.
loanProcess - LoanProcess Process-level information for this loan.
loanPurpose - LoanPurposeType The purpose for which the loan proceeds will be used.
loanTermYears - PositiveFloat The term of this loan in years.
lockedSummary - LockedLoanSummary Authoritative summary values for display once the rate is locked, sourced from the system of record (with fallback to internally-computed values). Null until the rate is locked.
ltv - NonNegativeFloat The loan-to-value ratio expressed as a percentage
maxLoanAmount - Float Maximum loan amount (in dollars) calculated by the preapproval engine.
maxPurchasePrice - Float Maximum purchase price (in dollars) calculated by the preapproval engine.
mismoImport - MismoImport The MISMO import that created this loan. Null when the loan was created some other way, and null again once the retention sweep has removed the report 24 hours after the import ran — so a client should treat its absence as ordinary rather than as a loan that was not imported.
noteRatePercent - NonNegativeFloat Interest rate. This field is expressed as a percent. As an example, 50.1% is expressed as 50.1.
orderOuts - [OrderOut!]! List of order outs on the loan.
outOfPocketMax - NonNegativeInt The maximum amount of assets (in dollars) to be used towards the loan.
pointOfContact - Borrower The borrower who has been designated as the point of contact on the loan (or the first borrower on the loan if no borrower has been designated as the point of contact)
preapprovalProduct - Product The loan product with the optimal preapproval result. The value is null if the loan has not been preapproved (yet).
pricingFreshness - LoanPricingFreshness Whether the attached product structure is priced against the rate sheet current for the loan: the product's newest, or the lock's sheet while a rate lock is in force on a customer with automatic redisclosure enabled. Null when no product structure is attached. Float, rate lock, and relock are refused while pricingStale is true.
productPricingRate - ProductPricingRate The latest pricing run outputs.
productStructure - ProductPricingRate The latest version of pricing-related fields.
productStructureDegraded - DegradedProductStructure The attached structure's degraded render, when its pinned rate could not be resolved: deal facts from the structure's own row, no rate-sheet detail. Null whenever productStructure is served. Render as a degraded card on the affected option only.
purchasePrice - NonNegativeInt The actual purchase price (in dollars).
pylonApproved - Boolean! Must be approved before a rate lock can be requested
rateLock - RateLockDetails! Rate lock related fields
rateLockTerm - NonNegativeInt Number of days borrower wants to lock the rate for
refinanceCashOutProceeds - NonNegativeInt Refinance cash out proceeds not used towards paying off existing liens.
sellerCredit - NonNegativeInt The total seller credit to be applied towards closing costs
servicers - [Contact!]! The loan's servicer contacts, synced from the Legacy LOS. Empty until the loan's next Legacy LOS update.
stages - [LoanStage!] The chronological sequence of stages a loan has progressed through, listed from earliest to most recent.
subjectProperty - SubjectProperty The subject property associated with the loan
subjectPropertyIntent - SubjectPropertyIntent The subject property intent associated with the loan
title - Title Title information for the loan.
titleCompanyAttached - Boolean! Whether a title company is attached to the loan as a party (file contact). A rate cannot be locked until a title company is attached.
totalAssetsAvailable - NonNegativeInt The total amount of assets on this loan.
tridTriggeredDate - Date The date the TRID clock was triggered: the application became complete enough that the initial Loan Estimate deadline started counting. Unset until the system of record computes it.
underwritingSubmissionGate - UnderwritingSubmissionGate Whether the loan can be submitted for underwriting right now, and the tasks that must be completed first if not.
useOwnTitleCompany - Boolean Whether the borrower wants to use their own title company.
Example
{
  "allowedStates": ["AK"],
  "appraisal": Appraisal,
  "appraisalOrders": [AppraisalOrder],
  "assignedLoanOfficer": LoanOfficer,
  "availableGlobalLoanOfficers": [GlobalLoanOfficer],
  "availableLoanAssignments": [LoanAssignmentUser],
  "borrowerPreferences": BorrowerPreferences,
  "borrowers": BorrowerConnection,
  "bulkLoanDocumentsExportJob": BulkLoanDocumentsExportJob,
  "cashOutType": "CASH_OUT",
  "changeRequests": [LoanChangeRequest],
  "closingDate": "2007-12-03",
  "concessions": [ConcessionLog],
  "contacts": [Contact],
  "currentStage": "xyz789",
  "customerPointAdjustments": CustomerPointAdjustment,
  "dealId": "abc123",
  "disclosureDrift": DisclosureDriftAssessed,
  "documents": [Document],
  "duplicateLiabilitySuggestions": [
    DuplicateLiabilitySuggestion
  ],
  "earnestMoneyDeposit": 123.45,
  "effectiveAppraisalWaiver": "AUTOMATED_COLLATERAL_EVALUATION",
  "employmentsMissingStartDateCount": 987,
  "estimatedRatios": EstimatedLoanRatios,
  "fees": [Fee],
  "friendlyId": "xyz789",
  "fundedDate": "2007-12-03",
  "fundingSettlement": FundingSettlement,
  "getAutoConditionalApprovalStatus": GetAutoConditionalApprovalStatusResponse,
  "id": "4",
  "intentToProceedDate": "2007-12-03",
  "isClosed": true,
  "isFirstTimeHomebuyer": false,
  "isFloated": true,
  "isFrozen": true,
  "latestBulkLoanDocumentsExportJob": BulkLoanDocumentsExportJob,
  "latestPreApprovalRunTime": "2007-12-03T10:15:30Z",
  "latestSuccessfulBulkLoanDocumentsExportJob": BulkLoanDocumentsExportJob,
  "liabilities": [Liability],
  "loanAssignments": [LoanAssignment],
  "loanContact": LoanContact,
  "loanDocuments": [LoanDocument],
  "loanNumber": "xyz789",
  "loanOfficerDocumentTasks": [LoanOfficerDocumentTask],
  "loanProcess": LoanProcess,
  "loanPurpose": "PURCHASE",
  "loanTermYears": 123.45,
  "lockedSummary": LockedLoanSummary,
  "ltv": 123.45,
  "maxLoanAmount": 123.45,
  "maxPurchasePrice": 987.65,
  "mismoImport": MismoImport,
  "noteRatePercent": 123.45,
  "orderOuts": [Appraisal],
  "outOfPocketMax": 123,
  "pointOfContact": Borrower,
  "preapprovalProduct": Product,
  "pricingFreshness": LoanPricingFreshness,
  "productPricingRate": ProductPricingRate,
  "productStructure": ProductPricingRate,
  "productStructureDegraded": DegradedProductStructure,
  "purchasePrice": 123,
  "pylonApproved": true,
  "rateLock": RateLockDetails,
  "rateLockTerm": 123,
  "refinanceCashOutProceeds": 123,
  "sellerCredit": 123,
  "servicers": [Contact],
  "stages": [LoanStage],
  "subjectProperty": SubjectProperty,
  "subjectPropertyIntent": SubjectPropertyIntent,
  "title": Title,
  "titleCompanyAttached": true,
  "totalAssetsAvailable": 123,
  "tridTriggeredDate": "2007-12-03",
  "underwritingSubmissionGate": UnderwritingSubmissionGate,
  "useOwnTitleCompany": true
}

LoanAmountExceedsPurchasePriceError

Description

User error indicating that the requested loan amount exceeds the requested purchase price.

Fields
Field Name Description
code - String A stable error code for programmatic handling. Format: {DOMAIN}_{ERROR_NAME} (e.g., 'LOAN_CLOSED', 'AUS_NO_PRODUCT_PRICING').
errorId - ID! A unique identifier for this error instance, useful for tracking and debugging.
field - [String!] Path to the input field that caused the error (e.g., ['input', 'customer', 'email']). Null when not associated with a specific field.
message - String! A human-readable error message.
Example
{
  "code": "abc123",
  "errorId": "4",
  "field": ["xyz789"],
  "message": "xyz789"
}

LoanAmountInsufficientViolation

Description

The requested loan amount is too low to cover payoff and costs, and the loan structure (rolled-in closing costs) leaves no room to apply the borrower's cash to close.

Fields
Field Name Description
additionalLoanAmountNeeded - Float! Dollar shortfall between the requested loan amount and what the current structure requires; raise the loan amount by this much or stop rolling in closing costs.
Example
{"additionalLoanAmountNeeded": 987.65}

LoanApplication

Description

Loan application object

Fields
Field Name Description
archiveDate - Date
creationDate - DateTime!
friendlyId - String!
id - ID! Loan application ID
submitted - Boolean! Loan Application has been submitted
Example
{
  "archiveDate": "2007-12-03",
  "creationDate": "2007-12-03T10:15:30Z",
  "friendlyId": "abc123",
  "id": "4",
  "submitted": true
}

LoanApplicationAnalyticsConnection

Fields
Field Name Description
edges - [LoanApplicationAnalyticsEdge!]!
pageInfo - PageInfo!
totalCount - NonNegativeInt! The total number of loans that meet the filter criteria.
Example
{
  "edges": [LoanApplicationAnalyticsEdge],
  "pageInfo": PageInfo,
  "totalCount": 123
}

LoanApplicationAnalyticsDimension

Description

A column of the loan-application analytics row that an aggregation can group by.

Values
Enum Value Description

ARCHIVE_DATE

CASH_OUT_TYPE

CLOSING_DATE

COUNTY_NAME

CREATION_DATE

DISBURSEMENT_DATE

FUNDED_DATE

HAS_SUBJECT_PROPERTY

HMDA_DISPOSITION

LOAN_OFFICER_EMAIL

LOAN_PURPOSE

LOAN_STAGE

RATE_LOCK_STATUS

STATE_CODE

Example
"ARCHIVE_DATE"

LoanApplicationAnalyticsDimensionValue

Description

One dimension value of a group, positionally parallel to the requested groupBy.

Fields
Field Name Description
bucketStart - DateTime The start of the bucket, for a date dimension only. Always UTC, and always the first instant of the period.
dimension - LoanApplicationAnalyticsDimension!
value - String The dimension's value for this group, as text. Null is a real group — the loans with no value for that column — rather than an absence.
Example
{
  "bucketStart": "2007-12-03T10:15:30Z",
  "dimension": "ARCHIVE_DATE",
  "value": "xyz789"
}

LoanApplicationAnalyticsEdge

Fields
Field Name Description
cursor - ID!
node - LoanApplicationAnalyticsRoot!
Example
{"cursor": 4, "node": LoanApplicationAnalyticsRoot}

LoanApplicationAnalyticsFilters

Fields
Input Field Description
addressLineText - TextComparator The property's street address.
addressUnitIdentifier - TextComparator The property's unit.
and - [LoanApplicationAnalyticsFilters!] Every member must match. Only needed for shapes the implicit AND between sibling fields cannot express, such as (A and B) or C.
archiveDate - DateTimeComparator
assignedTo - LoanAssignmentScope
cashOutType - CashOutTypeComparator The kind of cash-out on a refinance.
cityName - TextComparator The property's city.
closingDate - DayComparator Filters on the closing date by calendar day, in UTC. Bounds are days rather than instants, so a date read off a row can be handed straight back: lte covers everything that closed during that day, eq matches the day itself, and gt starts after it. Bounds intersect, so supplying several narrows the window.
concessions - NumberComparator The concession priced into the loan, in dollars — "loans that conceded more than $5,000".
contactPointEmailValue - TextComparator The primary contact's email.
contactPointFullName - TextComparator
countyName - TextComparator The property's county.
creationDate - DateTimeComparator
debtToIncome - NumberComparator The debt-to-income ratio.
disbursementDate - DateTimeComparator
downPaymentAmount - NumberComparator The down payment on the property.
estimatedClosingCostsAmount - NumberComparator Estimated closing costs.
friendlyId - TextComparator The loan's human-readable id.
fundedDate - DateTimeComparator
globalSearch - String
hasSubjectProperty - BooleanComparator Whether a subject property is attached.
hmdaDisposition - HmdaDispositionComparator
icdSignedDate - DateTimeComparator Filters on when the initial Closing Disclosure was fully signed.
intentToProceedDate - DayComparator Filters on the intent-to-proceed date by calendar day, in UTC — the date a row reports can be handed straight back as a bound.
loanAmount - NumberComparator The approved loan amount.
loanNumber - TextComparator The servicing loan number.
loanOfficerEmail - TextComparator
loanPurpose - LoanPurposeComparator Purchase or refinance.
loanStage - TextComparator
noteRatePercent - NumberComparator The note rate.
or - [LoanApplicationAnalyticsFilters!] At least one member must match. Fields outside the group are still ANDed with it.
postalCode - TextComparator The property's ZIP.
preapproved - NumberComparator
rateLockStatus - RateLockStatusComparator Whether and how the rate is locked.
salesContractAmount - NumberComparator The purchase price.
stateCode - StateCodeComparator The property's state, two letters.
tridTriggeredDate - DayComparator Filters on the TRID trigger date by calendar day, in UTC — the date a row reports can be handed straight back as a bound.
Example
{
  "addressLineText": TextComparator,
  "addressUnitIdentifier": TextComparator,
  "and": [LoanApplicationAnalyticsFilters],
  "archiveDate": DateTimeComparator,
  "assignedTo": "CURRENT_USER",
  "cashOutType": CashOutTypeComparator,
  "cityName": TextComparator,
  "closingDate": DayComparator,
  "concessions": NumberComparator,
  "contactPointEmailValue": TextComparator,
  "contactPointFullName": TextComparator,
  "countyName": TextComparator,
  "creationDate": DateTimeComparator,
  "debtToIncome": NumberComparator,
  "disbursementDate": DateTimeComparator,
  "downPaymentAmount": NumberComparator,
  "estimatedClosingCostsAmount": NumberComparator,
  "friendlyId": TextComparator,
  "fundedDate": DateTimeComparator,
  "globalSearch": "abc123",
  "hasSubjectProperty": BooleanComparator,
  "hmdaDisposition": HmdaDispositionComparator,
  "icdSignedDate": DateTimeComparator,
  "intentToProceedDate": DayComparator,
  "loanAmount": NumberComparator,
  "loanNumber": TextComparator,
  "loanOfficerEmail": TextComparator,
  "loanPurpose": LoanPurposeComparator,
  "loanStage": TextComparator,
  "noteRatePercent": NumberComparator,
  "or": [LoanApplicationAnalyticsFilters],
  "postalCode": TextComparator,
  "preapproved": NumberComparator,
  "rateLockStatus": RateLockStatusComparator,
  "salesContractAmount": NumberComparator,
  "stateCode": StateCodeComparator,
  "tridTriggeredDate": DayComparator
}

LoanApplicationAnalyticsGroup

Description

One row of an aggregation: a combination of dimension values and the statistics under it.

Fields
Field Name Description
count - Int! Loans in this group.
key - [LoanApplicationAnalyticsDimensionValue!]! The dimension values, in the order they were requested. Empty when the request did not group.
measures - [LoanApplicationAnalyticsMeasureStatistics!]! One entry per requested measure, in the order requested.
Example
{
  "count": 987,
  "key": [LoanApplicationAnalyticsDimensionValue],
  "measures": [LoanApplicationAnalyticsMeasureStatistics]
}

LoanApplicationAnalyticsGroupBy

Description

One dimension of a grouping. A date dimension must say which calendar period to bucket into; any other dimension must not.

Fields
Input Field Description
bucket - AnalyticsDateBucket Required for a date dimension, rejected for any other. Buckets are calendar periods in UTC.
dimension - LoanApplicationAnalyticsDimension!
Example
{"bucket": "DAY", "dimension": "ARCHIVE_DATE"}

LoanApplicationAnalyticsMeasure

Description

A numeric column of the loan-application analytics row that an aggregation can total, average, or take the extremes of.

Values
Enum Value Description

CONCESSIONS

DEBT_TO_INCOME

DOWN_PAYMENT_AMOUNT

ESTIMATED_CLOSING_COSTS_AMOUNT

LOAN_AMOUNT

NOTE_RATE_PERCENT

PREAPPROVED_LOAN_AMOUNT

SALES_CONTRACT_AMOUNT

Example
"CONCESSIONS"

LoanApplicationAnalyticsMeasureStatistics

Description

The statistics of one measured column within one group. Every statistic but count is null when no row in the group has a value for the column — the sum of nothing is unknown, not zero.

Fields
Field Name Description
avg - Float
count - Int! Rows in this group where the column has a value. Deliberately not the group's row count: an average over a column that is half null is an average over the other half.
max - Float
measure - LoanApplicationAnalyticsMeasure!
min - Float
sum - Float
Example
{
  "avg": 123.45,
  "count": 987,
  "max": 987.65,
  "measure": "CONCESSIONS",
  "min": 987.65,
  "sum": 123.45
}

LoanApplicationAnalyticsMetrics

Description

Aggregated statistics over the loans a filter matched. Scoped exactly as the list is: an aggregate can never total a loan its requester could not have read.

Fields
Field Name Description
groups - [LoanApplicationAnalyticsGroup!]! One group per distinct combination of the requested dimensions, ordered by those dimensions. A request that did not group gets exactly one group covering everything the filter matched — including when it matched nothing, which is a group with a count of zero.
totalCount - Int! Loans the filter matched, before grouping. The same number the list's totalCount reports for the same filter.
truncated - Boolean! True when the aggregation produced more than 1000 groups and groups is only the first of them. Narrow the filter or group by something coarser; the numbers present are correct, but they do not cover the whole filtered set.
Example
{
  "groups": [LoanApplicationAnalyticsGroup],
  "totalCount": 123,
  "truncated": true
}

LoanApplicationAnalyticsMetricsInput

Fields
Input Field Description
filters - LoanApplicationAnalyticsFilters The same filter input the list takes. Omitted means the caller's whole visible book.
groupBy - [LoanApplicationAnalyticsGroupBy!] Up to 2 dimensions to group by. Omitted returns one group covering the whole filtered set. Each added dimension multiplies the number of groups rather than adding to it, which is why the limit is low.
measures - [LoanApplicationAnalyticsMeasure!] The columns to compute statistics for. Each may appear at most once — a repeated measure returns the same numbers and costs another set of aggregates. Omitted or empty returns counts only, which is a histogram over the dimensions.
Example
{
  "filters": LoanApplicationAnalyticsFilters,
  "groupBy": [LoanApplicationAnalyticsGroupBy],
  "measures": ["CONCESSIONS"]
}

LoanApplicationAnalyticsRoot

Fields
Field Name Description
addressLineText - String The street address of the property.
addressUnitIdentifier - String The unit identifier of the property.
archiveDate - DateTime Set to the date a loan application is archived; has no value if the loan application is not yet archived.
cashOutType - RefinanceCashOutType The type of cashout on the loan.
cityName - String The name of the city where the property is located.
closingDate - Date The date that the purchase is set to close.
concessions - NonNegativeInt The concession priced into the loan's selected product structure, in dollars, or null if the loan has no priced structure. This is what the loan was priced with, not the concession-request approval log; the structure reports the same figure in points, which is this over the principal.
contactPointEmailValue - String The email address for the primary contract on the loan.
contactPointFullName - String The full name of the primary contact on the loan.
contactPointTelephoneValues - [String!] The phone number (or numbers) of the primary contact on the loan.
countyName - String The name of the county where the property is located.
creationDate - DateTime The date the loan application was first started by the user.
creditScoreAggregate - MatrixAggregate!
dealId - String! The unique ID of the deal associated with this loan.
debtToIncome - Float Debt to income
disbursementDate - DateTime The date the loan proceeds are scheduled to disburse. Distinct from the closing date: on a refinance the rescission period sits between the two. Has no value until a disbursement is scheduled.
downPaymentAmount - NonNegativeInt The down payment on the property.
estimatedClosingCostsAmount - NonNegativeInt The dollar amount of the estimated loan fees, title fees, appraisal fees and other closing costs associated with the subject transaction excluding discount points.
friendlyId - String! An alternative ID that might be more aesthetically pleasing. May be shared by multiple objects representing the same loan.
fundedDate - DateTime The date the loan was funded (disbursed).
hasSubjectProperty - Boolean! Whether or not a subject property is associated with this application
hmdaDisposition - HmdaDispositionCode The HMDA action taken on the application: originated, denied, withdrawn, closed for incompleteness, and so on. Null until the loan reaches an outcome, which is itself the answer for a loan still in flight.
icdSignedDate - DateTime When the loan's INITIAL Closing Disclosure package (the earliest-sent one) was fully signed: every recipient required to sign has signed, and this is the latest signature-completion time among them. Unset while no initial CD has been sent, or it is not yet fully signed.
id - ID!
intentToProceedDate - Date The date the borrowers expressed intent to proceed after receiving initial disclosures. Unset until intent to proceed is received.
loanAmount - NonNegativeInt If the loan is approved, this is the total amount of the loan.
loanNumber - String The current loan number for internal Pylon use.
loanPurpose - LoanPurposeType The type of loan, purchase or refinance.
loanStage - String A human readable description of the current loan stage in the legacy origination system.
noteRatePercent - Float The rate at which the interest on the mortgage is amortized.
organizationId - String The organization ID associated with the loan application.
postalCode - String The ZIP code where the property is located.
preapprovedLoanAmount - NonNegativeInt The preapproved amount of the loan
rateLockStatus - RateLockStatus Is the rate locked
salesContractAmount - NonNegativeInt The total amount of money property is being purchased for.
stateCode - String The two-letter abbreviation of the state where the property is located.
tridTriggeredDate - Date The date the TRID clock was triggered: the application became complete enough that the initial Loan Estimate deadline started counting. Unset until the system of record computes it.
Example
{
  "addressLineText": "xyz789",
  "addressUnitIdentifier": "abc123",
  "archiveDate": "2007-12-03T10:15:30Z",
  "cashOutType": "CASH_OUT",
  "cityName": "abc123",
  "closingDate": "2007-12-03",
  "concessions": 123,
  "contactPointEmailValue": "abc123",
  "contactPointFullName": "abc123",
  "contactPointTelephoneValues": ["xyz789"],
  "countyName": "abc123",
  "creationDate": "2007-12-03T10:15:30Z",
  "creditScoreAggregate": MatrixAggregate,
  "dealId": "abc123",
  "debtToIncome": 123.45,
  "disbursementDate": "2007-12-03T10:15:30Z",
  "downPaymentAmount": 123,
  "estimatedClosingCostsAmount": 123,
  "friendlyId": "xyz789",
  "fundedDate": "2007-12-03T10:15:30Z",
  "hasSubjectProperty": false,
  "hmdaDisposition": "APPLICATION_APPROVED_BUT_NOT_ACCEPTED",
  "icdSignedDate": "2007-12-03T10:15:30Z",
  "id": "4",
  "intentToProceedDate": "2007-12-03",
  "loanAmount": 123,
  "loanNumber": "abc123",
  "loanPurpose": "PURCHASE",
  "loanStage": "abc123",
  "noteRatePercent": 123.45,
  "organizationId": "xyz789",
  "postalCode": "xyz789",
  "preapprovedLoanAmount": 123,
  "rateLockStatus": "CANCELLED",
  "salesContractAmount": 123,
  "stateCode": "abc123",
  "tridTriggeredDate": "2007-12-03"
}

LoanAssignment

Description

A loan team assignment

Fields
Field Name Description
createdAt - DateTimeISO!
id - ID!
role - LoanAssignmentRoleType! Role type of the assignment
user - LoanAssignmentUser!
Example
{
  "createdAt": "2007-12-03T10:15:30Z",
  "id": "4",
  "role": "LOAN_OFFICER_ASSISTANT",
  "user": LoanAssignmentUser
}

LoanAssignmentRoleType

Description

Assignable loan team role types

Values
Enum Value Description

LOAN_OFFICER_ASSISTANT

PROCESSOR

THIRD_PARTY_PROCESSOR

Example
"LOAN_OFFICER_ASSISTANT"

LoanAssignmentScope

Description

Restricts analytics loan results to a viewer-relative assignment scope.

Values
Enum Value Description

CURRENT_USER

Example
"CURRENT_USER"

LoanAssignmentUser

Description

A user available for loan team assignment

Fields
Field Name Description
email - String
firstName - String
id - ID!
lastName - String
role - LoanAssignmentRoleType! The user's assignable loan team role at this customer — the role they would take on if assigned.
Example
{
  "email": "xyz789",
  "firstName": "xyz789",
  "id": "4",
  "lastName": "abc123",
  "role": "LOAN_OFFICER_ASSISTANT"
}

LoanChangeRequest

Description

A request to make changes to a loan

Fields
Field Name Description
changedCircumstanceReason - ChangeOfCircumstanceReason Why this change is a changed circumstance under §1026.19(e)(3)(iv), as stated when the request was opened. Null when none was stated, which is every request raised before the field existed.
id - ID! The ID of the loan change request
status - LoanChangeRequestStatus! Current status of this change request
Example
{
  "changedCircumstanceReason": "CHANGED_CIRCUMSTANCE_AFFECTING_ELIGIBILITY",
  "id": "4",
  "status": "APPROVED"
}

LoanChangeRequestStatus

Description

Status of a loan change request

Values
Enum Value Description

APPROVED

PENDING

REJECTED

Example
"APPROVED"

LoanChannel

Description

Origination channel a customer's loans default to

Values
Enum Value Description

Broker

Broker2

Broker3

Correspondent

NonDelegatedCorrespondent1

NonDelegatedCorrespondent2

NonDelegatedCorrespondent3

Retail

Retail2

Retail3

Wholesale

Example
"Broker"

LoanClosedError

Fields
Field Name Description
code - String A stable error code for programmatic handling. Format: {DOMAIN}_{ERROR_NAME} (e.g., 'LOAN_CLOSED', 'AUS_NO_PRODUCT_PRICING').
errorId - ID! A unique identifier for this error instance, useful for tracking and debugging.
field - [String!] Path to the input field that caused the error (e.g., ['input', 'customer', 'email']). Null when not associated with a specific field.
message - String! A human-readable error message.
Example
{
  "code": "xyz789",
  "errorId": "4",
  "field": ["abc123"],
  "message": "abc123"
}

LoanContact

Description

LoanContact

Fields
Field Name Description
email - String E-mail
firstName - String! First name
id - ID! The ID of the LoanContact
lastName - String! Last name
middleName - String Middle name
nmlsId - String NMLS ID
phoneNumber - String Phone number
title - String Title or position
Example
{
  "email": "abc123",
  "firstName": "xyz789",
  "id": "4",
  "lastName": "xyz789",
  "middleName": "abc123",
  "nmlsId": "xyz789",
  "phoneNumber": "abc123",
  "title": "abc123"
}

LoanDocument

Description

A document uploaded against a loan application.

Fields
Field Name Description
citations - CitationConnection! Typed citation rows anchored into this document (supersedes the JSON-encoded evidence fieldMetadata). Paginated from day one: the facts-decomposition pass writes an observation citation per extracted fact, so overlays should fetch only the visible page / focused field keys via filterBy.
Arguments
after - String

A cursor value that indicates the position after which items should be returned. Typically this should be the 'endCursor' of the previous page.

before - String

A cursor value that indicates the position before which items should be returned. Typically this should be the 'startCursor' of the following page.

first - Int

The number of items to be retrieved for forward pagination. Either 'first' or 'last' must be specified, but not both. This value must be between 1 and 500.

last - Int

The number of items to be retrieved for backward pagination. Either 'first' or 'last' must be specified, but not both. This value must be between 1 and 500.

sortDirection - SortDirection

The direction in which the results should be sorted. Defaults to ASC.

evidence - [LoanDocumentEvidence!]! Evidence records extracted from this document.
fileName - String! The original file name.
id - ID! The unique identifier of the document.
loanApplicationId - ID! The loan application this document belongs to.
mimeType - String! The MIME type of the document.
review - DocumentReview The reviewer's read of this document — its status and, when ready, a plain-English summary. Null when there is no review to show.
Arguments
audience - DocumentReviewAudience

Request a specific audience's summary; the response is clamped to the caller's own access level.

s3Id - String! The S3 storage identifier.
underwritingEvidence - [UnderwritingEvidenceEdge!]! Underwriting evidence edges naming this document — where the upload landed (rejected, satisfied, or matched nothing). Empty for a document with no edges at all.
underwritingIntakeOutcomes - [UnderwritingIntakeOutcome!]! This document's intake-outcome trace: RECEIVED plus one classed terminal outcome per processing run. Answers why an upload that carries no underwriting evidence at all produced no requirement movement.
uploadedAt - DateTime! When the document was uploaded.
uploadedBy - AnyContributor! The contributor who uploaded this document.
Example
{
  "citations": CitationConnection,
  "evidence": [LoanDocumentEvidence],
  "fileName": "abc123",
  "id": 4,
  "loanApplicationId": "4",
  "mimeType": "abc123",
  "review": DocumentReview,
  "s3Id": "xyz789",
  "underwritingEvidence": [UnderwritingEvidenceEdge],
  "underwritingIntakeOutcomes": [
    UnderwritingIntakeOutcome
  ],
  "uploadedAt": "2007-12-03T10:15:30Z",
  "uploadedBy": AnyContributor
}

LoanDocumentEvidence

Description

An evidence record extracted from a document.

Fields
Field Name Description
content - String! JSON-encoded extracted content for this evidence.
createdAt - DateTimeISO! When this evidence was created.
fieldMetadata - String JSON-encoded per-field metadata including bounding boxes. Superseded by typed LoanDocument.citations rows; emits null as of P4 teardown and will be removed in the next release.
id - ID! The unique identifier of the evidence.
kind - String! The kind of evidence (e.g. W2, PAYSTUB).
params - String! JSON-encoded parameters for this evidence.
source - String! JSON-encoded typed source object (who produced this evidence).
Example
{
  "content": "xyz789",
  "createdAt": "2007-12-03T10:15:30Z",
  "fieldMetadata": "xyz789",
  "id": 4,
  "kind": "xyz789",
  "params": "xyz789",
  "source": "abc123"
}

LoanDocumentQueries

Description

Root type for document evidence queries.

Fields
Field Name Description
documentById - LoanDocument! Fetch a single document by its ID.
Arguments
Example
{"documentById": LoanDocument}

LoanDocumentsFilter

Description

Filters for the list of documents associated with a loan. Defaults to active non-disclosure loan documents.

Fields
Input Field Description
kind - LoanDocumentsKindFilter Which document kinds to include. Defaults to non-disclosure loan documents.
status - LoanDocumentsStatusFilter Which document statuses to include. Defaults to active documents.
Example
{"kind": "ALL", "status": "ACTIVE"}

LoanDocumentsKindFilter

Values
Enum Value Description

ALL

DISCLOSURES

LOAN_DOCUMENTS

Example
"ALL"

LoanDocumentsStatusFilter

Values
Enum Value Description

ACTIVE

ALL

ARCHIVED

Example
"ACTIVE"

LoanEvent

Description

A durable, actor-attributed loan-lifecycle event. Append-only: events are recorded once and never mutated.

Fields
Field Name Description
actorId - String Namespaced actor key (kind:id); null when the event has no attributable actor.
actorKind - LoanEventActorKind The namespace of the actor who caused the event; null for system-initiated events with no attributable actor.
actorName - String Server-resolved display name of the actor — the name and nothing else, so cross-organization actors (Pylon internal admins) resolve without exposing any other field. Null whenever no name exists to give: system-initiated events, machine API credentials, and actors known only to the legacy origination system with no mirrored name. Clients render their own neutral copy for null.
eventType - LoanEventType! What happened
id - ID! The event's id
loanId - ID! The loan the event belongs to
metadata - JSONObject! Event-type-specific payload, validated server-side against the event type's closed schema at write time.
occurredAt - DateTimeISO! When the event happened in the domain (may predate its recording, e.g. for replayed webhooks).
Example
{
  "actorId": "xyz789",
  "actorKind": "API",
  "actorName": "xyz789",
  "eventType": "DECISION_RECORDED",
  "id": "4",
  "loanId": "4",
  "metadata": {},
  "occurredAt": "2007-12-03T10:15:30Z"
}

LoanEventActorKind

Description

The namespace of the actor attributed to a loan event. Request-context actors mirror the authenticated principal kinds; LEGACY_LOS_USER marks actors known only from the legacy origination system's webhooks.

Values
Enum Value Description

API

BORROWER

CONTRIBUTOR

LEGACY_LOS_USER

STAFF

Example
"API"

LoanEventType

Description

The kind of loan-lifecycle event. The full vocabulary is declared up front; emit sites land incrementally, so not every type is produced yet.

Values
Enum Value Description

DECISION_RECORDED

DISCLOSED

DOC_UPLOADED

LOAN_CREATED

REQUIREMENT_MET

STAGE_CHANGED

Example
"DECISION_RECORDED"

LoanEventsResponse

Fields
Field Name Description
events - [LoanEvent!]! Events in append order, oldest first.
next - String! Cursor for the next page. Always returned: when the page is empty the cursor is unchanged, so it can be replayed to poll for new events.
Example
{
  "events": [LoanEvent],
  "next": "abc123"
}

LoanMutations

Fields
Field Name Description
approveChangeRequest - ApproveLoanChangeRequestResponse Approve a change request
Arguments
archive - ArchiveLoanResponse Archive a loan
Arguments
assignLoanOfficer - AssignLoanOfficerResponse Assign aloan officer to a loan
Arguments
attachContact - AttachLoanContactResponse Associate a contact with a loan
Arguments
attachLoanNote - AttachLoanNoteResponse Attach a note to the loan without submitting for underwriting
Arguments
attachProductPricingRate - AttachProductPricingRateResponse Assign a product pricing rate to a loan
Arguments
attachSubjectProperty - AttachSubjectPropertyResponse Attach a subject property to a loan
Arguments
attachTitleCompany - AttachTitleCompanyResponse Attach a title company to a loan
Arguments
confirmRateLock - ConfirmRateLockResponse Confirm a rate lock for a loan
Arguments
create - CreateLoanResponse Create a loan
Arguments
createLoanAssignment - CreateLoanAssignmentResponse Assign a user to a loan team
Arguments
denyRateLock - DenyRateLockResponse Deny a rate lock for a loan Functionality has been absorbed into confirmRateLock
Arguments
detachContact - DetachLoanContactResponse Remove a contact's association from a loan
Arguments
export - ExportLoanResponse Export this loan as an XML file
Arguments
floatStructure - FloatStructureResponse Float a product structure for a loan by dispatching initial disclosures without locking the rate
Arguments
forceGenerateDisclosurePackage - ForceGenerateDisclosurePackageResponse Force generate a disclosure package for a loan, bypassing the normal flow checks. Admin-only operation for fixing loans where disclosures were not generated.
freeze - FreezeLoanResponse Freeze a loan, only available to Pylon employees.
Arguments
generateClosingDisclosurePreview - GenerateClosingDisclosurePreviewResponse Generate a closing disclosure preview for a loan.
generateLoanEstimatePreview - GenerateLoanEstimatePreviewResponse Generate a loan estimate preview for a loan.
openChangeRequest - OpenLoanChangeRequestResponse Open a new change request for a loan
Arguments
reassignLoanOfficerTasks - ReassignLoanOfficerTasksResponse Reassign all of the loan officer's tasks on the loan to the borrower in one go
Arguments
reassignTask - ReassignTaskResponse Flip a task's responsibility to a new assignee
Arguments
recordLoanView - RecordLoanViewResponse Record that the current user viewed a loan, for recency-sorted loan lists. Idempotent per (user, organization, loan): a repeat view bumps the last-viewed timestamp.
Arguments
redisclose - RediscloseResponse Send the redisclosure the loan owes its borrower, recording the changed circumstance that permits it. Restricted to internal Pylon operators. Resolves once the package has been booked, not once the borrower has it — select disclosuresRun { status } for that, and again later as it settles. The form the baseline owes is chosen here rather than asked for: a Loan Estimate baseline owes a revised LE, a Closing Disclosure a corrected CD. A loan that owes nothing, has never been disclosed to, or is inside the four-business-day window in which §1026.19(e)(4)(ii) bars a revised Loan Estimate is refused through userErrors, and leaves no request and no filed form behind.
Arguments
removeLoanAssignment - RemoveLoanAssignmentResponse Remove a user from a loan team
Arguments
requestRateLock - RequestRateLockResponse Request a rate lock for a loan Functionality has been absorbed into confirmRateLock
Arguments
setUseOwnTitleCompany - SetUseOwnTitleCompanyResponse Set whether the borrower wants to use their own title company
Arguments
startBulkLoanDocumentsExport - StartBulkLoanDocumentsExportResponse Start a bulk loan documents export job.
submitUnderwritingNotes - SubmitUnderwritingNotesResponse Start an underwriting run with optional notes
Arguments
thaw - ThawLoanResponse Thaw a loan, only available to Pylon employees.
Arguments
input - ThawLoanInput!
update - UpdateLoanResponse Update top-level Loan fields. Fields with non-null values will be updated, the rest will be ignored.
Arguments
updateBorrowerPreferences - UpdateBorrowerPreferencesResponse Update borrower preferences for a loan.
updateCompanyName - UpdateCompanyNameResponse Update a processor's payee company name at the customer level and propagate to all assigned loans
Arguments
updateProcessorFee - UpdateProcessorFeeResponse Update a processor's fee at the customer level and propagate to all assigned loans
Arguments
updateTaskName - UpdateTaskNameResponse Updates the task name
Arguments
withdraw - WithdrawLoanResponse Withdraw a loan
Arguments
Example
{
  "approveChangeRequest": ApproveLoanChangeRequestResponse,
  "archive": ArchiveLoanSuccess,
  "assignLoanOfficer": AssignLoanOfficerResponse,
  "attachContact": AttachLoanContactResponse,
  "attachLoanNote": AttachLoanNoteResponse,
  "attachProductPricingRate": AttachProductPricingRateResponse,
  "attachSubjectProperty": AttachSubjectPropertyResponse,
  "attachTitleCompany": AttachTitleCompanyResponse,
  "confirmRateLock": ConfirmRateLockResponse,
  "create": CreateLoanResponse,
  "createLoanAssignment": CreateLoanAssignmentResponse,
  "denyRateLock": DenyRateLockResponse,
  "detachContact": DetachLoanContactResponse,
  "export": ExportLoanResponse,
  "floatStructure": FloatStructureResponse,
  "forceGenerateDisclosurePackage": ForceGenerateDisclosurePackageResponse,
  "freeze": FreezeLoanResponse,
  "generateClosingDisclosurePreview": GenerateClosingDisclosurePreviewResponse,
  "generateLoanEstimatePreview": GenerateLoanEstimatePreviewResponse,
  "openChangeRequest": OpenLoanChangeRequestResponse,
  "reassignLoanOfficerTasks": ReassignLoanOfficerTasksResponse,
  "reassignTask": ReassignTaskResponse,
  "recordLoanView": RecordLoanViewResponse,
  "redisclose": RediscloseResponse,
  "removeLoanAssignment": RemoveLoanAssignmentResponse,
  "requestRateLock": RequestRateLockResponse,
  "setUseOwnTitleCompany": SetUseOwnTitleCompanyResponse,
  "startBulkLoanDocumentsExport": StartBulkLoanDocumentsExportResponse,
  "submitUnderwritingNotes": SubmitUnderwritingNotesResponse,
  "thaw": ThawLoanResponse,
  "update": UpdateLoanResponse,
  "updateBorrowerPreferences": UpdateBorrowerPreferencesResponse,
  "updateCompanyName": UpdateCompanyNameResponse,
  "updateProcessorFee": UpdateProcessorFeeResponse,
  "updateTaskName": UpdateTaskNameResponse,
  "withdraw": LoanClosedError
}

LoanNotPreApprovedError

Description

User error indicating that the operation failed because the loan is not preapproved.

Fields
Field Name Description
code - String A stable error code for programmatic handling. Format: {DOMAIN}_{ERROR_NAME} (e.g., 'LOAN_CLOSED', 'AUS_NO_PRODUCT_PRICING').
errorId - ID! A unique identifier for this error instance, useful for tracking and debugging.
field - [String!] Path to the input field that caused the error (e.g., ['input', 'customer', 'email']). Null when not associated with a specific field.
message - String! A human-readable error message.
Example
{
  "code": "xyz789",
  "errorId": 4,
  "field": ["abc123"],
  "message": "abc123"
}

LoanOfficer

Description

Loan-specific loan officer

Fields
Field Name Description
email - String Email address
firstName - String First name
id - ID! The ID of the loan mortgage broker
lastName - String Last name
Example
{
  "email": "abc123",
  "firstName": "xyz789",
  "id": "4",
  "lastName": "abc123"
}

LoanOfficerDocumentTask

Description

A borrower's task that is only available to the loan officer

Fields
Field Name Description
accessToken - String Access token for SSO PDF viewer or any third-party access, if applicable.
assigneeBorrowerId - ID The borrower currently assigned to this task, if any.
completedAt - DateTime
createdOn - DateTime
description - String
details - TaskEntityDetails Details about the entity this task is associated with Use relatedEntity instead, which resolves the associated entity as a Node whose own fields can be queried directly.
disclosureRecipient - DisclosureRecipient
documentLinks - [DocumentLink!]!
documentUploadPath - String
dueDate - DateTime
fields - [String!]
id - ID!
note - String
priority - Float
relatedEntity - Node The entity this task is about (e.g. the Asset for a bank-statement upload task, or the AssetTransaction for a large-deposit task), resolvable as a Node. Prefer this over the deprecated details field.
relatedEntityId - String Related entity ID: the global id of the entity this task is about, resolvable via relatedEntity or the node(id) query. Use relatedEntity { id } instead — relatedEntity resolves the entity itself (its id plus all its other fields) in one query.
reopenedAt - DateTime When the task was most recently reopened after having been completed or cancelled. Null if the task has never been reopened.
requiredFor1003Form - Boolean
status - String!
title - String
type - String!
Example
{
  "accessToken": "xyz789",
  "assigneeBorrowerId": "4",
  "completedAt": "2007-12-03T10:15:30Z",
  "createdOn": "2007-12-03T10:15:30Z",
  "description": "abc123",
  "details": TaskEntityDetails,
  "disclosureRecipient": DisclosureRecipient,
  "documentLinks": [DocumentLink],
  "documentUploadPath": "xyz789",
  "dueDate": "2007-12-03T10:15:30Z",
  "fields": ["xyz789"],
  "id": 4,
  "note": "abc123",
  "priority": 123.45,
  "relatedEntity": Node,
  "relatedEntityId": "xyz789",
  "reopenedAt": "2007-12-03T10:15:30Z",
  "requiredFor1003Form": false,
  "status": "abc123",
  "title": "xyz789",
  "type": "xyz789"
}

LoanOfficerMutations

Description

Loan officer mutations

Fields
Field Name Description
setLoanOfficerSlug - SetLoanOfficerSlugResponse Set the URL slug for a GlobalLoanOfficer in the current organization. Callers without update:organization may only set their own slug.
Arguments
Example
{"setLoanOfficerSlug": SetLoanOfficerSlugResponse}

LoanPreApprovedForLowerAmountError

Description

User error indicating that the operation failed because the loan was preapproved for a lower amount than what was requested.

Fields
Field Name Description
code - String A stable error code for programmatic handling. Format: {DOMAIN}_{ERROR_NAME} (e.g., 'LOAN_CLOSED', 'AUS_NO_PRODUCT_PRICING').
errorId - ID! A unique identifier for this error instance, useful for tracking and debugging.
field - [String!] Path to the input field that caused the error (e.g., ['input', 'customer', 'email']). Null when not associated with a specific field.
message - String! A human-readable error message.
Example
{
  "code": "abc123",
  "errorId": "4",
  "field": ["xyz789"],
  "message": "xyz789"
}

LoanPricingFreshness

Description

Whether the loan's attached product structure is priced against the rate sheet that is current for it: the product's newest sheet, or, while a rate lock is in force on a customer with automatic redisclosure enabled, the sheet the lock was taken on. Float and rate lock are refused (LOAN_STRUCTURE_OUTDATED) while pricingStale is true; re-run pricing and re-select a rate to clear it.

Fields
Field Name Description
currentRatesAsOf - DateTime When the sheet the verdict compares against was received: the product's newest sheet, or the lock's sheet while a rate lock is in force on a customer with automatic redisclosure enabled. Null when no sheet could be resolved for the product.
pricedAsOf - DateTime! When the rate sheet the attached structure was priced against was received.
pricingStale - Boolean! Whether the attached structure is pinned to an older rate sheet than the one current for the loan. Matches the gate float, rate lock, and relock enforce. For a customer with automatic redisclosure enabled, a locked loan is judged against the sheet its lock was taken on, so a re-shop priced on the lock's sheet reads fresh. Re-running pricing alone does not clear this; a rate must be re-selected.
Example
{
  "currentRatesAsOf": "2007-12-03T10:15:30Z",
  "pricedAsOf": "2007-12-03T10:15:30Z",
  "pricingStale": true
}

LoanProcess

Description

Process-level information for a loan.

Fields
Field Name Description
legacyBorrowerTasks - [BorrowerTask!]! Legacy borrower tasks for a specific borrower on this loan
Arguments
borrowerId - ID!
legacyLoanOfficerTasks - [LoanOfficerDocumentTask!]! Legacy loan officer tasks for this loan
readyToUnderwrite - ReadyToUnderwrite Readiness for the PROCESSING → UNDERWRITING transition. What's needed before submitting for underwriting?
Arguments
reconcile - Boolean!

Whether to serve a fresh per-loan read (the default). Pass false to serve the existing projection as-is — required for cross-loan batch reads like loans(ids:), where a per-loan fan-out on every queue refresh is load this surface must not generate. A projection served this way may lag the per-loan read.

Example
{
  "legacyBorrowerTasks": [BorrowerTask],
  "legacyLoanOfficerTasks": [LoanOfficerDocumentTask],
  "readyToUnderwrite": ReadyToUnderwrite
}

LoanProductChangedReason

Description

§1026.19(f)(2)(ii)(B); product as §1026.37(a)(10) defines it.

Fields
Field Name Description
changedComponents - [LoanProductComponent!]! The parts that moved, so a narrative can name them.
currentProduct - DisclosedLoanProduct!
disclosedProduct - DisclosedLoanProduct!
kind - DisclosureDriftReasonKind!
Example
{
  "changedComponents": ["AMORTIZATION_TYPE"],
  "currentProduct": DisclosedLoanProduct,
  "disclosedProduct": DisclosedLoanProduct,
  "kind": "APR_INACCURATE"
}

LoanProductComponent

Values
Enum Value Description

AMORTIZATION_TYPE

BALLOON_INDICATOR

INTEREST_ONLY_INDICATOR

NEGATIVE_AMORTIZATION_INDICATOR

SEASONAL_PAYMENT_FEATURE_INDICATOR

Example
"AMORTIZATION_TYPE"

LoanPurposeComparator

Description

Comparisons available on the loan purpose.

Fields
Input Field Description
eq - LoanPurposeType
in - [LoanPurposeType!]
isNull - Boolean
neq - LoanPurposeType
nin - [LoanPurposeType!]
null - Boolean
Example
{
  "eq": "PURCHASE",
  "in": ["PURCHASE"],
  "isNull": true,
  "neq": "PURCHASE",
  "nin": ["PURCHASE"],
  "null": false
}

LoanPurposeType

Description

The purpose for which the loan proceeds will be used.

Values
Enum Value Description

PURCHASE

REFINANCE

Example
"PURCHASE"

LoanScript

Description

A stored loan script: an ordered list of replayable API operations plus acceptance criteria (assertions and/or an expected preapproval outcome). This surface serves only active (runnable) scripts.

Fields
Field Name Description
description - String! What the script builds and verifies.
scenarioId - String! Stable, human-readable identifier for the script.
spec - JSONObject! The script payload: steps, and assertions and/or expected.
Example
{
  "description": "xyz789",
  "scenarioId": "abc123",
  "spec": {}
}

LoanScriptAssertionResult

Description

The outcome of a single loan-script assertion.

Fields
Field Name Description
actualJson - String JSON-serialized value the assertion's path resolved to. Null when the path (or its source) did not resolve.
label - String! The assertion's display label.
message - String Failure explanation. Null when the assertion passed.
passed - Boolean! Whether the assertion passed.
Example
{
  "actualJson": "xyz789",
  "label": "abc123",
  "message": "xyz789",
  "passed": true
}

LoanScriptMutations

Description

Root object for loan-script mutations (internal use only).

Fields
Field Name Description
createLoanScript - CreateLoanScriptResponse Create an active loan script. The spec is validated against the strict loan-script schema.
Arguments
deleteLoanScript - DeleteLoanScriptResponse Soft-delete an active loan script.
Arguments
runLoanScript - RunLoanScriptResponse Replay a stored loan-script scenario in-process, creating the loan by issuing its GraphQL operations as a real client would, then evaluate the script's assertions. Internal use only.
Arguments
updateLoanScript - UpdateLoanScriptResponse Update an active loan script's description and/or spec.
Arguments
Example
{
  "createLoanScript": CreateLoanScriptResponse,
  "deleteLoanScript": DeleteLoanScriptResponse,
  "runLoanScript": RunLoanScriptResponse,
  "updateLoanScript": UpdateLoanScriptResponse
}

LoanScriptOperationVariable

Description

A variable accepted by a catalogued GraphQL operation.

Fields
Field Name Description
name - String! The variable name.
type - String! The variable's GraphQL type, e.g. CreateLoanInput!.
Example
{
  "name": "xyz789",
  "type": "xyz789"
}

LoanScriptQueries

Description

Root object for loan-script queries (internal use only).

Fields
Field Name Description
all - [LoanScript!]! List all active loan scripts.
byScenarioId - LoanScript! Fetch one active loan script by its scenario id.
Arguments
scenarioId - String!
stepCatalog - [LoanScriptStepCatalogEntry!]! Every step type a loan script may use, derived from the runtime operation registry and step schemas (it cannot drift from what the executor accepts).
Example
{
  "all": [LoanScript],
  "byScenarioId": LoanScript,
  "stepCatalog": [LoanScriptStepCatalogEntry]
}

LoanScriptStepCatalogEntry

Description

One step type available to loan scripts: a replayable GraphQL operation, or a direct-DB step kind with its field names.

Fields
Field Name Description
fields - [String!] Top-level field names of the step shape (only for direct-DB steps).
kind - String! graphql, or a direct-DB step kind such as mockCredit.
operation - String The operation key (only for graphql entries).
variables - [LoanScriptOperationVariable!] The operation document's variables (only for graphql entries).
Example
{
  "fields": ["abc123"],
  "kind": "abc123",
  "operation": "abc123",
  "variables": [LoanScriptOperationVariable]
}

LoanScriptStepResult

Description

The result of a single replayed scenario step.

Fields
Field Name Description
data - JSONObject The raw GraphQL data the step produced. Null for non-GraphQL steps such as credit seeding.
label - String! The step's label.
Example
{"data": {}, "label": "xyz789"}

LoanStage

Description

Represents a stage in the loan process.

Fields
Field Name Description
name - String! The name of the loan stage.
timestamp - DateTime! The timestamp when this loan stage was reached.
Example
{
  "name": "xyz789",
  "timestamp": "2007-12-03T10:15:30Z"
}

LoanTermChangedReason

Description

A term the disclosure printed no longer matches the loan.

Fields
Field Name Description
change - DisclosedFigureChange!
kind - DisclosureDriftReasonKind!
Example
{
  "change": DisclosedAmountChange,
  "kind": "APR_INACCURATE"
}

LoanToValueViolation

Description

Optimizer could not find a solution without exceeding the LTV limit.

Fields
Field Name Description
loanAmountExceeded - Float! Minimum reduction in loan amount needed to be at the LTV limit.
ltv - Float! The computed LTV.
ltvLimit - Float! Maximum allowed LTV, per the guidelines.
Example
{"loanAmountExceeded": 987.65, "ltv": 123.45, "ltvLimit": 123.45}

LockedLoanSummary

Description

Authoritative loan summary values for a rate-locked loan, sourced from the system of record. Present only when the rate is locked. Each field falls back to the most recent internally-computed value when the system of record has not yet supplied one.

Fields
Field Name Description
closingDate - Date The estimated closing date.
dti - NonNegativeFloat The debt-to-income ratio, expressed as a 0-1 fraction.
loanAmount - NonNegativeInt The loan amount (in dollars).
ltv - NonNegativeFloat The loan-to-value ratio, expressed as a 0-1 fraction.
noteRatePercent - NonNegativeFloat Note rate. This field is expressed as a percent. As an example, 50.1% is expressed as 50.1.
purchasePrice - NonNegativeInt The purchase price (in dollars).
rateLockExpiration - DateTime The rate lock expiration time.
Example
{
  "closingDate": "2007-12-03",
  "dti": 123.45,
  "loanAmount": 123,
  "ltv": 123.45,
  "noteRatePercent": 123.45,
  "purchasePrice": 123,
  "rateLockExpiration": "2007-12-03T10:15:30Z"
}

LpaKnownRulesBackfillMutations

Description

Internal operations for the LPA known-rules catalog.

Fields
Field Name Description
start - StartLpaKnownRulesBackfillResponse Start a bounded backfill of historical LPA AUS runs.
status - StatusLpaKnownRulesBackfillResponse Read a backfill execution and its continuation cursor when complete.
Example
{
  "start": StartLpaKnownRulesBackfillResponse,
  "status": StatusLpaKnownRulesBackfillResponse
}

ManualProvenance

Description

Provenance from a human reviewer. The requirement exists because an underwriter or processor added it manually.

Fields
Field Name Description
citations - [Citation!]! The citations the minting underwriter drew as grounds for the requirement, in minting order. Unresolvable references are skipped (and logged server-side), never surfaced as errors; requirements minted before citations existed read as [].
description - String! Human-readable explanation.
evidence - [GuidelineReference!]! Supporting evidence.
Example
{
  "citations": [Citation],
  "description": "xyz789",
  "evidence": [GuidelineReference]
}

MaritalStatusType

Description

An individual's marital status

Values
Enum Value Description

DIVORCED

MARRIED

NOT_PROVIDED

OTHER

SEPARATED

UNKNOWN

UNMARRIED

Example
"DIVORCED"

MarketingRates

Description

Marketing rates

Fields
Field Name Description
conforming - [ConformingMarketingRate]!
custom - [CustomMarketingRate]!
Arguments
fha - [FhaMarketingRate]!
Arguments
jumbo - [JumboMarketingRate]!
Arguments
warehousingCosts - WarehousingCosts Warehousing costs for all products
Example
{
  "conforming": [ConformingMarketingRate],
  "custom": [CustomMarketingRate],
  "fha": [FhaMarketingRate],
  "jumbo": [JumboMarketingRate],
  "warehousingCosts": WarehousingCosts
}

MatrixAggregate

Fields
Field Name Description
minimumMedian - Float The minimum of all median values
Example
{"minimumMedian": 123.45}

MilitaryBasePayIncome

Description

Military base pay income

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "id": 4,
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": 4
}

MilitaryClothesAllowanceIncome

Description

Military clothes allowance income

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "id": 4,
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": 4
}

MilitaryCombatPayIncome

Description

Military combat pay income

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "id": 4,
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": 4
}

MilitaryFlightPayIncome

Description

Military flight pay income

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "id": "4",
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": "4"
}

MilitaryHazardPayIncome

Description

Military hazard pay income

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "id": 4,
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": "4"
}

MilitaryOverseasPayIncome

Description

Military overseas pay income

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "id": "4",
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": "4"
}

MilitaryPropPayIncome

Description

Military prop pay income

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "id": "4",
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": "4"
}

MilitaryQuartersAllowanceIncome

Description

Military quarters allowance income

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "id": "4",
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": "4"
}

MilitaryRationsAllowanceIncome

Description

Military rations allowance income

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "id": "4",
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": "4"
}

MilitaryService

Description

Borrower has indicated active or prior military service.

Fields
Field Name Description
militaryServiceExpectedCompletionDate - Date
militaryStatusType - MilitaryStatusType!
survivingSpouseIndicator - Boolean
Example
{
  "militaryServiceExpectedCompletionDate": "2007-12-03",
  "militaryStatusType": "ACTIVE_DUTY",
  "survivingSpouseIndicator": true
}

MilitaryServiceDeclaration

Example
MilitaryService

MilitaryStatusType

Description

An individual's military status

Values
Enum Value Description

ACTIVE_DUTY

OTHER

RESERVE_NATIONAL_GUARD_NEVER_ACTIVATED

SEPARATED

VETERAN

Example
"ACTIVE_DUTY"

MilitaryVariableHousingAllowanceIncome

Description

Military variable housing allowance income

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "id": "4",
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": "4"
}

MiscellaneousIncome

Description

Miscellaneous income

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "id": "4",
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": 4
}

MismoFieldNonAdoption

Description

Data the importer could not import: one or more columns on a record it created, or an entity it did not create at all.

Fields
Field Name Description
entity - IntakeEntity! The kind of record this non-adoption concerns, stated even when none was created — which is how a client knows whose create mutation would close it.
fields - [IntakeField!]! The columns that went unfilled — at most one today, and empty when the non-adoption is that the record itself was never created. A list because the shared intake contract allows a run to report several columns against one non-adoption; this importer records one non-adoption per column, so it never sends more than one, and a client that handles the list handles whatever a later intake path sends.
id - ID!
reason - IntakeNonAdoptionReason!
record - Node The record the columns belong to. Null exactly when the importer created none — an asset no borrower owns, a party in a role we do not carry, a borrower who stated no income at all — and the client then reaches for that entity's ordinary create mutation rather than an editor. Never null merely because the identity was omitted: the importer binds each record at the moment it creates it.
severity - IntakeNonAdoptionSeverity!
source - MismoSource!
Example
{
  "entity": "ASSET",
  "fields": [IntakeField],
  "id": 4,
  "reason": "ABSENT",
  "record": Node,
  "severity": "CRITICAL",
  "source": MismoSource
}

MismoImport

Description

One MISMO file's import: the loan it created, and every non-adoption the importer could not act on itself. Read-only, and deliberately short-lived — an hourly sweep drops an import 24 hours after it ran, because the report describes one parse of one file at one moment rather than anything about the loan.

Fields
Field Name Description
id - ID! Stable id. The same value the upload returns as import_id.
importedAt - DateTime! When the import ran.
loan - Loan! The loan this import created. Always present: an import that created no loan is a rejected upload, and a rejected upload writes no report.
nonAdoptions - [MismoNonAdoption!]! Every non-adoption, in the order the importer met it in the file. Unpaginated: a report covers one file, and the whole of one is smaller than a cursor contract would be worth.
Example
{
  "id": "4",
  "importedAt": "2007-12-03T10:15:30Z",
  "loan": Loan,
  "nonAdoptions": [MismoNonAdoption]
}

MismoNonAdoption

Description

One non-adoption from a MISMO import. Switch on __typename for the kind: MismoFieldNonAdoption names a column of ours, MismoUnrepresentableElement names a word of the file's that is not one.

Fields
Field Name Description
id - ID! Stable for the life of the import: two reads of one import return the same id for the same non-adoption.
reason - IntakeNonAdoptionReason! Why the importer could not do this itself. Keys a copy catalog on the client; never displayed raw.
severity - IntakeNonAdoptionSeverity! How much this non-adoption matters to the loan.
source - MismoSource! Where in the file the non-adoption arose, and what the file said.
Possible Types
MismoNonAdoption Types

MismoFieldNonAdoption

MismoUnrepresentableElement

Example
{
  "id": "4",
  "reason": "ABSENT",
  "severity": "CRITICAL",
  "source": MismoSource
}

MismoSource

Description

Where in the uploaded file a non-adoption arose, and what the file said there. A statement about the FILE, never an identity: two imports of the same file produce the same source, and the record a non-adoption concerns is record's to name.

Fields
Field Name Description
entity - IntakeEntity! The entity the position indexes, which may differ from the non-adoption's own entity. MISMO states income inside the borrower who earns it, so an income non-adoption points at that borrower.
label - String The file's own label for the element, when a converter trusted one. Always null for interested parties: MISMO labels those on the ROLE as free text the file chose, not a closed vocabulary, so a party's non-adoptions are positioned instead (see position) rather than risk echoing a real name.
position - Int Zero-based position within the file's list of that entity. Null when the entity admits only one instance, when the file supplied a label instead, or when the non-adoption arose while reading the file and points at no instance at all.
rawValue - String The file's text for the value, verbatim, when it stated one we could not use. Null when the non-adoption is that the file said nothing.
Example
{
  "entity": "ASSET",
  "label": "abc123",
  "position": 987,
  "rawValue": "xyz789"
}

MismoUnrepresentableElement

Description

A word in the uploaded file that corresponds to no column of ours — an element MISMO 3.6 defines and 3.4, the model the importer reads, has no equivalent for, so it was dropped while normalizing the file. Nothing on the loan resolves it; it is reported so the loss is visible rather than silent.

Fields
Field Name Description
element - String! The file's own name for the element, as MISMO spells it. Not a column of ours, and deliberately not dressed up as one.
id - ID!
reason - IntakeNonAdoptionReason!
record - Node The record the element would have belonged to, when the importer can name one. Often null, and for a reason this kind does not share with MismoFieldNonAdoption: the loss is found while normalizing the file, before any record exists, and the file position it carries names a kind of record rather than one instance of it.
severity - IntakeNonAdoptionSeverity!
source - MismoSource!
Example
{
  "element": "abc123",
  "id": "4",
  "reason": "ABSENT",
  "record": Node,
  "severity": "CRITICAL",
  "source": MismoSource
}

MissingAttachmentTypeError

Fields
Field Name Description
code - String A stable error code for programmatic handling. Format: {DOMAIN}_{ERROR_NAME} (e.g., 'LOAN_CLOSED', 'AUS_NO_PRODUCT_PRICING').
errorId - ID! A unique identifier for this error instance, useful for tracking and debugging.
field - [String!] Path to the input field that caused the error (e.g., ['input', 'customer', 'email']). Null when not associated with a specific field.
message - String! A human-readable error message.
Example
{
  "code": "xyz789",
  "errorId": "4",
  "field": ["xyz789"],
  "message": "xyz789"
}

MissingCreditPullError

Description

User error indicating that there is no credit-pull associated with a borrower, blocking pricing and preapproval

Fields
Field Name Description
code - String A stable error code for programmatic handling. Format: {DOMAIN}_{ERROR_NAME} (e.g., 'LOAN_CLOSED', 'AUS_NO_PRODUCT_PRICING').
errorId - ID! A unique identifier for this error instance, useful for tracking and debugging.
field - [String!] Path to the input field that caused the error (e.g., ['input', 'customer', 'email']). Null when not associated with a specific field.
message - String! A human-readable error message.
Example
{
  "code": "abc123",
  "errorId": 4,
  "field": ["xyz789"],
  "message": "abc123"
}

MissingDataError

Description

User error indicating the loan is missing information required in order to successfully preapprove or price it

Fields
Field Name Description
code - String A stable error code for programmatic handling. Format: {DOMAIN}_{ERROR_NAME} (e.g., 'LOAN_CLOSED', 'AUS_NO_PRODUCT_PRICING').
errorId - ID! A unique identifier for this error instance, useful for tracking and debugging.
field - [String!] Path to the input field that caused the error (e.g., ['input', 'customer', 'email']). Null when not associated with a specific field.
message - String! A human-readable error message.
missingData - String!
Example
{
  "code": "abc123",
  "errorId": 4,
  "field": ["abc123"],
  "message": "xyz789",
  "missingData": "abc123"
}

MissingEmploymentStartDateError

Fields
Field Name Description
code - String A stable error code for programmatic handling. Format: {DOMAIN}_{ERROR_NAME} (e.g., 'LOAN_CLOSED', 'AUS_NO_PRODUCT_PRICING').
errorId - ID! A unique identifier for this error instance, useful for tracking and debugging.
field - [String!] Path to the input field that caused the error (e.g., ['input', 'customer', 'email']). Null when not associated with a specific field.
message - String! A human-readable error message.
Example
{
  "code": "xyz789",
  "errorId": "4",
  "field": ["abc123"],
  "message": "xyz789"
}

MissingFieldsForCreditPullInput

Description

Input for checking missing fields required for credit pull

Fields
Input Field Description
borrowerIds - [ID!]! Borrower ID(s) to check
loanApplicationId - ID! Loan application the borrowers belong to
Example
{
  "borrowerIds": [4],
  "loanApplicationId": "4"
}

MonetaryAmount

Description

An exact USD amount serialized as a canonical signed decimal string with exactly two fractional digits.

Example
MonetaryAmount

MoneyMarketFundAsset

Description

Money market fund asset

Fields
Field Name Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt! The cash or market value of the asset in dollars
assetReportId - ID ID of the latest asset report that verified this asset
borrowerIds - [ID!] Ids of borrowers that are account holders on this asset
id - ID! Node ID
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
notableActivities - [FinancialAccountActivity!]! Notable activities
qualifiedAmount - NonNegativeInt The qualified amount of the asset in dollars, used for underwriting. Null if no qualification has been computed.
verifiedAmount - NonNegativeInt The verified cash or market value of the asset in dollars, confirmed by a third-party source
Example
{
  "accountIdentifier": "xyz789",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "assetReportId": "4",
  "borrowerIds": ["4"],
  "id": 4,
  "institutionName": "xyz789",
  "nonBorrowerOwnerNames": ["xyz789"],
  "notableActivities": [FinancialAccountActivity],
  "qualifiedAmount": 123,
  "verifiedAmount": 123
}

MortgageCreditCertificateIncome

Description

Mortgage credit certificate income

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
percentageOfInterest - NonNegativeFloat The percentage of interest that the mortgage credit certificate will cover. This field is expressed as a percent. As an example, 50.1% is expressed as 50.1.
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "id": "4",
  "payPeriodFrequency": "ANNUALLY",
  "percentageOfInterest": 123.45,
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": "4"
}

MortgageDifferentialIncome

Description

Mortgage differential income

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "id": "4",
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": "4"
}

MutualFundAsset

Description

Mutual fund asset

Fields
Field Name Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt! The cash or market value of the asset in dollars
assetReportId - ID ID of the latest asset report that verified this asset
borrowerIds - [ID!] Ids of borrowers that are account holders on this asset
id - ID! Node ID
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
notableActivities - [FinancialAccountActivity!]! Notable activities
qualifiedAmount - NonNegativeInt The qualified amount of the asset in dollars, used for underwriting. Null if no qualification has been computed.
verifiedAmount - NonNegativeInt The verified cash or market value of the asset in dollars, confirmed by a third-party source
Example
{
  "accountIdentifier": "abc123",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "assetReportId": "4",
  "borrowerIds": ["4"],
  "id": "4",
  "institutionName": "abc123",
  "nonBorrowerOwnerNames": ["abc123"],
  "notableActivities": [FinancialAccountActivity],
  "qualifiedAmount": 123,
  "verifiedAmount": 123
}

NeighborhoodHousingType

Values
Enum Value Description

CONDOMINIUM

MANUFACTURED_HOME

SINGLE_FAMILY

TWO_TO_FOUR_FAMILY

Example
"CONDOMINIUM"

NetRentalIncome

Description

Net rental income

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "id": "4",
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": "4"
}

NoAusForProduct

Fields
Field Name Description
code - String A stable error code for programmatic handling. Format: {DOMAIN}_{ERROR_NAME} (e.g., 'LOAN_CLOSED', 'AUS_NO_PRODUCT_PRICING').
errorId - ID! A unique identifier for this error instance, useful for tracking and debugging.
field - [String!] Path to the input field that caused the error (e.g., ['input', 'customer', 'email']). Null when not associated with a specific field.
message - String! A human-readable error message.
Example
{
  "code": "xyz789",
  "errorId": "4",
  "field": ["abc123"],
  "message": "abc123"
}

NoLoanOfficerAssignedError

Fields
Field Name Description
code - String A stable error code for programmatic handling. Format: {DOMAIN}_{ERROR_NAME} (e.g., 'LOAN_CLOSED', 'AUS_NO_PRODUCT_PRICING').
errorId - ID! A unique identifier for this error instance, useful for tracking and debugging.
field - [String!] Path to the input field that caused the error (e.g., ['input', 'customer', 'email']). Null when not associated with a specific field.
message - String! A human-readable error message.
Example
{
  "code": "abc123",
  "errorId": "4",
  "field": ["abc123"],
  "message": "xyz789"
}

NoMilitaryService

Description

Borrower has indicated they have no military service.

Fields
Field Name Description
survivingSpouseIndicator - Boolean
Example
{"survivingSpouseIndicator": false}

NoProductPricingError

Fields
Field Name Description
code - String A stable error code for programmatic handling. Format: {DOMAIN}_{ERROR_NAME} (e.g., 'LOAN_CLOSED', 'AUS_NO_PRODUCT_PRICING').
errorId - ID! A unique identifier for this error instance, useful for tracking and debugging.
field - [String!] Path to the input field that caused the error (e.g., ['input', 'customer', 'email']). Null when not associated with a specific field.
message - String! A human-readable error message.
Example
{
  "code": "xyz789",
  "errorId": "4",
  "field": ["xyz789"],
  "message": "abc123"
}

NoStructurePresentBlocker

Description

No product structure is present on the loan

Fields
Field Name Description
type - String!
Example
{"type": "abc123"}

Node

Description

An entity uniquely identified by its id field

Fields
Field Name Description
id - ID! Node ID
Possible Types
Node Types

AccessoryUnitIncome

AlimonyIncome

Assertion

AssetTransaction

AutomobileAllowanceIncome

AutomobileAsset

BoarderIncome

BondAsset

BonusIncome

Borrower

BorrowerAddress

BorrowerEstimatedTotalMonthlyIncome

BridgeLoanNotDepositedAsset

CapitalGainsIncome

CashOnHandAsset

CertificateOfDepositTimeDepositAsset

CheckingAccountAsset

ChildSupportIncome

Citation

CommissionsIncome

ContractBasisIncome

CreditInquiry

CryptocurrencyAsset

DefinedContributionPlanIncome

DisabilityIncome

Dispute

DividendsInterestIncome

EmploymentRelatedAccountIncome

FosterCareIncome

GiftAsset

GrantAsset

HousingAllowanceIncome

HousingChoiceVoucherProgramIncome

IndividualDevelopmentAccountAsset

Liability

LifeInsuranceAsset

Loan

LoanContact

LoanDocument

MilitaryBasePayIncome

MilitaryClothesAllowanceIncome

MilitaryCombatPayIncome

MilitaryFlightPayIncome

MilitaryHazardPayIncome

MilitaryOverseasPayIncome

MilitaryPropPayIncome

MilitaryQuartersAllowanceIncome

MilitaryRationsAllowanceIncome

MilitaryVariableHousingAllowanceIncome

MiscellaneousIncome

MoneyMarketFundAsset

MortgageCreditCertificateIncome

MortgageDifferentialIncome

MutualFundAsset

NetRentalIncome

NonBorrowerContributionIncome

NonBorrowerHouseholdIncome

NonBorrowingOwner

NotesReceivableInstallmentIncome

OpenRequirement

OtherAsset

OtherIncome

OvertimeIncome

OwnedProperty

Party

PendingNetSaleProceedsFromRealEstateAsset

PensionIncome

ProceedsFromSaleOfNonRealEstateAsset

ProceedsFromSecuredLoanAsset

ProceedsFromUnsecuredLoanAsset

ProposedGrossRentForSubjectPropertyIncome

PublicAssistanceIncome

RealEstateOwnedGrossRentalIncome

RentalIncome

RetirementFundAsset

RetirementIncome

RoyaltiesIncome

SatisfiedRequirement

SavingsAccountAsset

SelfEmployment

SelfEmploymentIncome

SelfEmploymentLossIncome

SeparateMaintenanceIncome

SocialSecurityIncome

StandardEmployment

StandardEmploymentIncome

StockAsset

StockOptionsAsset

SubjectProperty

SubjectPropertyIntent

SubjectPropertyNetCashFlowIncome

TemporaryLeaveIncome

TipIncome

TrailingCoBorrowerIncome

TrustAccountAsset

TrustIncome

UnemploymentIncome

VaBenefitsNonEducationalIncome

WaivedRequirement

WorkersCompensationIncome

Example
{"id": "4"}

NodeChangedEvent

Fields
Field Name Description
id - ID! Node id
node - Node The node data, if available
type - NodeType! Node type
Example
{
  "id": "4",
  "node": Node,
  "type": "Asset"
}

NodeChangedEventBatch

Fields
Field Name Description
changed - [NodeChangedEvent!]! Array of changed entities (up to 20 items)
Example
{"changed": [NodeChangedEvent]}

NodeType

Description

The base types of all Node

Values
Enum Value Description

Asset

Borrower

Loan

Example
"Asset"

NonBorrowerContributionIncome

Description

Non-borrower contribution income

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "id": 4,
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": 4
}

NonBorrowerHouseholdIncome

Description

Non-borrower household income

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "id": "4",
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": "4"
}

NonBorrowingOwner

Fields
Field Name Description
id - ID!
personalInformation - PersonalInformation!
Example
{"id": 4, "personalInformation": PersonalInformation}

NonBorrowingOwnerMutations

Fields
Field Name Description
create - CreateNonBorrowingOwnerResponse Create a new non-borrowing owner
Arguments
delete - DeleteNonBorrowingOwnerResponse Delete a non-borrowing owner
Arguments
update - UpdateNonBorrowingOwnerResponse Update a NonBorrowingOwner. Fields with non-null values will be updated, the rest will be ignored.
Arguments
Example
{
  "create": CreateNonBorrowingOwnerResponse,
  "delete": DeleteNonBorrowingOwnerResponse,
  "update": UpdateNonBorrowingOwnerResponse
}

NonNegativeFloat

Description

Floats that will have a value of 0 or more.

Example
123.45

NonNegativeInt

Description

Integers that will have a value of 0 or more.

Example
123

NotesReceivableInstallmentIncome

Description

Notes receivable installment income

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "id": "4",
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": 4
}

NumberComparator

Description

Comparisons available on a numeric field.

Fields
Input Field Description
eq - Float
gt - Float
gte - Float
in - [Float!]
isNull - Boolean
lt - Float
lte - Float
neq - Float
nin - [Float!]
null - Boolean
Example
{
  "eq": 987.65,
  "gt": 987.65,
  "gte": 987.65,
  "in": [987.65],
  "isNull": true,
  "lt": 123.45,
  "lte": 987.65,
  "neq": 123.45,
  "nin": [123.45],
  "null": true
}

OfferedFile

Description

A file offered against a requirement via upload (a SUBMISSION evidence edge). Upload intent is recorded even when the file ends up satisfying nothing, and split children inherit the offer from their parent packet.

Fields
Field Name Description
extractionState - OfferedFileExtractionState!
file - LoanDocument! The offered file.
Example
{"extractionState": "EXTRACTED", "file": LoanDocument}

OfferedFileExtractionState

Description

Extraction progress of a file offered against a requirement: PENDING (uploaded, not yet extracted) or EXTRACTED (evidence exists).

Values
Enum Value Description

EXTRACTED

PENDING

Example
"EXTRACTED"

OpenLoanChangeRequestInput

Description

Input to the loan.openChangeRequest mutation.

Fields
Input Field Description
attachmentDocumentIds - [ID!] Loan documents to attach to the change-of-circumstance support ticket: ids returned by requestSupportDocumentUpload's file POST, or document ids from this loan's documents. Forwarded to Plain as-is and not recorded on the change request itself; ignored when change-request ticket filing is not enabled for the customer. At most 20.
changedCircumstanceReason - ChangeOfCircumstanceReason Why this change is a changed circumstance under §1026.19(e)(3)(iv) — the judgement that permits a redisclosure to reset a fee's tolerance baseline. Recorded on the request; a later rate lock rediscloses under it rather than asking again. Omit when no judgement has been made: an unstated reason is not the same as OTHER.
description - String! Detailed description about the change request
loanId - ID! The ID or friendly ID of the loan.
Example
{
  "attachmentDocumentIds": [4],
  "changedCircumstanceReason": "CHANGED_CIRCUMSTANCE_AFFECTING_ELIGIBILITY",
  "description": "abc123",
  "loanId": "4"
}

OpenLoanChangeRequestResponse

Description

Response of the loan.openChangeRequest mutation.

Fields
Field Name Description
changedCircumstanceReason - ChangeOfCircumstanceReason Why this change is a changed circumstance under §1026.19(e)(3)(iv), as stated when the request was opened. Null when none was stated, which is every request raised before the field existed.
id - ID! The ID of the loan change request
plainTicketId - ID Id of the change-of-circumstance support ticket filed in Plain for this request, when ticket filing is enabled for the customer; null otherwise.
status - LoanChangeRequestStatus! Current status of this change request
Example
{
  "changedCircumstanceReason": "CHANGED_CIRCUMSTANCE_AFFECTING_ELIGIBILITY",
  "id": 4,
  "plainTicketId": "4",
  "status": "APPROVED"
}

OpenRequirement

Description

A requirement that has not yet been fulfilled. Carries status, assignee, and fulfillment paths. Composite requirements list their children (each with its own phase) inside fulfillmentOptions.

Fields
Field Name Description
agentEvaluation - AusConditionAgentEvaluation The evaluation agent's latest assessment of this requirement (verdict, confidence, reasoning, cited passages). Only populated for automated-underwriting conditions the agent has evaluated; null otherwise.
assignee - RequirementAssigneeRole! The role responsible for fulfilling this requirement.
blockedBy - [Requirement!]! The open gate requirements this requirement waits on, per the readiness projection. Empty when nothing blocks it — including requirements written before the projection existed.
borrowerIds - [ID!]! Borrowers this requirement applies to; empty when the requirement is loan-level. A composite carries the union of its children's borrowers.
children - [Requirement!]! Child requirements of a composite, each with its own phase, recursing through nested composites so a deep tree renders as a tree. Empty for leaf requirements. Unlike fulfillmentOptions, present in every phase — a satisfied or waived composite still lists its children here.
description - String! Human-readable label for this requirement, e.g. "W2 for Acme Corp (2025)".
evidence - [Evidence!]! The requirement's ordered evidence log — assertions and dispute acts interleaved in creation order (offered → asserted → challenged → endorsed → waived).
fulfillmentOptions - [FulfillmentOption!]! Paths to satisfying this requirement. For composites, contains the child requirements.
id - ID! Node ID
offeredFiles - [OfferedFile!]! Files offered against this requirement via upload (SUBMISSION evidence edges), including split children of offered packets. A file appears here even when it ends up satisfying nothing.
openedAt - DateTimeISO! When this requirement (re)entered its current OPEN period. A removed and later restored requirement carries the restore time, not its original creation time.
phase - RequirementPhase! Current resolution phase. Redundant with __typename but useful for client-side filtering without fragment matching.
provenance - [ProvenanceSource!]! Why this requirement exists — rule evaluation, manual condition, or data dependency.
status - RequirementStatus! Current status of this requirement.
verdict - AssertionVerdict The folded evaluation outcome from the requirement's evidence log: UNFULFILLED or NEEDS_HUMAN (a FULFILLED fold satisfies the requirement, which then leaves the OPEN phase). Null means the requirement has never been evaluated.
Example
{
  "agentEvaluation": AusConditionAgentEvaluation,
  "assignee": "BORROWER",
  "blockedBy": [Requirement],
  "borrowerIds": [4],
  "children": [Requirement],
  "description": "abc123",
  "evidence": [Evidence],
  "fulfillmentOptions": [FulfillmentOption],
  "id": "4",
  "offeredFiles": [OfferedFile],
  "openedAt": "2007-12-03T10:15:30Z",
  "phase": "OPEN",
  "provenance": [ProvenanceSource],
  "status": "COMPLETED",
  "verdict": "FULFILLED"
}

OptForDefaultTitleVendorInput

Fields
Input Field Description
loanId - ID!
Example
{"loanId": "4"}

OptForDefaultTitleVendorResponse

Fields
Field Name Description
loanId - ID!
Example
{"loanId": 4}

OptimalStructure

Fields
Field Name Description
id - ID! Job ID
productBreakdown - [StructuringResult!]!
result - EligibleProductStructure
status - JobStatus! Job status
Example
{
  "id": 4,
  "productBreakdown": [EligibleProductStructure],
  "result": EligibleProductStructure,
  "status": "FAILED"
}

OptimizerUnsatisfied

Description

Represents a failed optimizer solve.

Fields
Field Name Description
_ - Boolean! A no-op field that should not be requested. It will always throw an error if requested. It only exists to allow empty objects and may be removed in the future. This field should not be requested. It only exists to allow empty objects and may be removed in the future if more fields are added to this type.
Example
{"_": true}

OrderAppraisalInput

Description

Input for ordering an appraisal.

Fields
Input Field Description
amcId - Int Optional AMC identifier to assign the order to a specific appraisal management company.
appraisalTypeId - Int! Type of appraisal to order.
loanId - ID! ID of the loan application to order the appraisal for.
Example
{
  "amcId": 987,
  "appraisalTypeId": 123,
  "loanId": "4"
}

OrderAppraisalResponse

Description

Response from ordering an appraisal.

Fields
Field Name Description
appraisalOrder - AppraisalOrder! The created appraisal order.
Example
{"appraisalOrder": AppraisalOrder}

OrderFloodInput

Description

Input for ordering a flood determination.

Fields
Input Field Description
loanId - ID! ID of the loan application to order the flood determination for.
productType - FloodProductType Type of flood product to order. Defaults to Life of Loan when omitted.
Example
{"loanId": "4", "productType": "Basic"}

OrderFloodResponse

Description

Response from ordering a flood determination.

Fields
Field Name Description
floodOrder - FloodOrder! The created flood order.
Example
{"floodOrder": FloodOrder}

OrderOut

Types
Union Types

Appraisal

Title

Example
Appraisal

Organization

Description

Organization

Fields
Field Name Description
apiAccessStatus - CustomerApiAccessStatus! Whether this organization's API access is active, paused, or inactive.
availableCustomers - [CustomerMembership!]! Organizations the requesting user has access to via a role relation, sorted alphabetically by companyName. Empty for non-org users; length 1 for single-customer users. Used by the org switcher.
borrowerPortalUrl - String Public origin of the organization's borrower intake portal, e.g. https://apply.example.com. Null when the organization has not configured one.
branding - OrganizationBranding! The organization's uploaded branding assets, as short-lived URLs for rendering. Always present; individual assets are null until uploaded.
companyAddress - Address The organization's company address.
companyLegalName - String
companyName - String!
companySupportEmail - String
concessionLimitPerLoan - Float
contacts - [Contact!] Contacts used or saved for this organization
costAbsorption - [CostAbsorption!]
customerShare - NonNegativeFloat! The share of the margin that the customer receives from the loan. Only available to internal Pylon administrators
customerSlug - String
defaultLoanChannel - LoanChannel The origination channel this customer's loans default to. Only available to internal Pylon administrators.
defaultPrimaryLoanContact - LoanContact The organization's default primary loan contact — the loan officer rendered on preapproval letters. Null when the organization has never set one; letters then fall back to the placeholder contact (see defaultPrimaryLoanContactFallbackEmail). Only available to internal Pylon administrators.
defaultPrimaryLoanContactFallbackEmail - String! Support mailbox standing in for the organization's default primary loan contact email while none has been set. Only available to internal Pylon administrators.
effectiveMargin - OrganizationMargin! The effective-dated margin breakdown (global, customer, Pylon take, and share) for the customer. Omit asOf for today's window; pass asOf for the window in effect on that date. Only available to internal Pylon administrators
Arguments
asOf - DateTime

Effective date to read the margin window at. Defaults to now when omitted.

electronicCommunicationsConsentUrl - String
emailDomains - [String!]
enableSso - Boolean! Indicates whether this customer's users will use SSO-based login in the command center
enabledLoanProducts - [PreapprovalProduct!]
enabledPlaidProducts - [EnabledPlaidProduct!]
id - ID!
margin - Float
Arguments
asOf - DateTime

Effective date to read the margin at. Defaults to now when omitted.

marginHistory - [OrganizationMargin!]! Every effective-dated (global margin, share) segment for the customer, newest-first. Type A windows are crossed with pay-schedule history so a share change mid-margin produces a distinct entry; Type B windows emit one entry per margin window. The segment active right now reports endsAt: null; closed segments report their real endsAt. Only available to internal Pylon administrators
masqueradableCustomers - [CustomerMembership!]! Every customer workspace in the environment being served — the set of valid masquerade targets — with real company names, sorted alphabetically by companyName. Only available to internal Pylon administrators; the org switcher renders it so admins see friendly customer names instead of slug-derived labels.
mersOrgId - Int The customer's MERS Organization ID (a 7-digit integer). Only available to internal Pylon administrators.
nmlsId - String
privacyPolicyUrl - String
share - Float
telephonicCommunicationsConsentEnabled - Boolean! Whether the borrower-facing consent screens link to a Telephonic Communications Consent document.
telephonicCommunicationsConsentUrl - String
termsOfServiceUrl - String
Example
{
  "apiAccessStatus": "ACTIVE",
  "availableCustomers": [CustomerMembership],
  "borrowerPortalUrl": "xyz789",
  "branding": OrganizationBranding,
  "companyAddress": Address,
  "companyLegalName": "xyz789",
  "companyName": "abc123",
  "companySupportEmail": "xyz789",
  "concessionLimitPerLoan": 987.65,
  "contacts": [Contact],
  "costAbsorption": [CostAbsorption],
  "customerShare": 123.45,
  "customerSlug": "xyz789",
  "defaultLoanChannel": "Broker",
  "defaultPrimaryLoanContact": LoanContact,
  "defaultPrimaryLoanContactFallbackEmail": "abc123",
  "effectiveMargin": OrganizationMargin,
  "electronicCommunicationsConsentUrl": "xyz789",
  "emailDomains": ["abc123"],
  "enableSso": false,
  "enabledLoanProducts": ["BayviewBayviewJumboAus"],
  "enabledPlaidProducts": ["ASSETS"],
  "id": 4,
  "margin": 987.65,
  "marginHistory": [OrganizationMargin],
  "masqueradableCustomers": [CustomerMembership],
  "mersOrgId": 123,
  "nmlsId": "abc123",
  "privacyPolicyUrl": "abc123",
  "share": 987.65,
  "telephonicCommunicationsConsentEnabled": false,
  "telephonicCommunicationsConsentUrl": "xyz789",
  "termsOfServiceUrl": "abc123"
}

OrganizationBranding

Description

An organization's uploaded branding assets.

Fields
Field Name Description
logoPngUrl - String Short-lived URL for rendering the uploaded PNG logo, or null when none has been uploaded. Mint a fresh one per page load rather than storing it.
logoSvgUrl - String Short-lived URL for rendering the uploaded SVG logo, or null when none has been uploaded. Mint a fresh one per page load rather than storing it.
Example
{
  "logoPngUrl": "xyz789",
  "logoSvgUrl": "abc123"
}

OrganizationContactRole

Description

Role of the contact in the context of an organization.

Values
Enum Value Description

ATTORNEY

BUYER_AGENT

HAZARD_INSURANCE_AGENT

HOMEOWNERS_ASSOCIATION

LISTING_AGENT

PROPERTY_SELLER

REAL_ESTATE_AGENT

TITLE_COMPANY

Example
"ATTORNEY"

OrganizationLicensing

Fields
Field Name Description
states - [OrganizationStateWithLicenses!]!
Example
{"states": [OrganizationStateWithLicenses]}

OrganizationMargin

Description

An effective-dated view of an organization's margin. All point values are expressed in points, where 1.5 means 1.5%. A segment is active from its activeAt (inclusive) until its endsAt (exclusive); the segment active right now reports endsAt: null.

Fields
Field Name Description
activeAt - DateTime! The instant this margin segment became active (inclusive).
customerMargin - NonNegativeFloat! The portion of the global margin the customer receives, in points (1.5 = 1.5%).
endsAt - DateTime The instant this margin segment stops being active (exclusive). Null for the segment active right now.
globalMargin - NonNegativeFloat! The full margin priced into the loan, in points (1.5 = 1.5%). Split between the customer and Pylon.
pylonTake - NonNegativeFloat! The portion of the global margin Pylon takes, in points (1.5 = 1.5%).
share - NonNegativeFloat The fraction of the global margin the customer receives (0-1), when the margin is share-based. Null when the split is not share- based (the customer margin and Pylon take are set directly).
Example
{
  "activeAt": "2007-12-03T10:15:30Z",
  "customerMargin": 123.45,
  "endsAt": "2007-12-03T10:15:30Z",
  "globalMargin": 123.45,
  "pylonTake": 123.45,
  "share": 123.45
}

OrganizationMutations

Description

Organization mutations

Fields
Field Name Description
addEmailDomains - AddEmailDomainsResponse Add email domains to the current organization. Domains are normalized to lowercase. Fails if any domain is already assigned to a different organization. Only available to internal Pylon administrators.
Arguments
createContact - CreateContactResponse Create and add a new contact to the current organization.
Arguments
createOrganizationRole - CreateOrganizationRoleResponse
Arguments
createOrganizationUser - CreateOrganizationUserResponse
Arguments
deleteOrganizationRole - DeleteOrganizationRoleResponse
Arguments
deleteOrganizationStateLicenses - DeleteOrganizationStateLicensesResponse Delete the current organization's state licenses
deleteOrganizationUser - DeleteOrganizationUserResponse
Arguments
removeEmailDomains - RemoveEmailDomainsResponse Remove email domains from the current organization. Only available to internal Pylon administrators.
Arguments
requestBrandingLogoUpload - RequestBrandingLogoUploadResponse Register a branding-logo upload for a customer and get the URL to POST the file to. The uploaded bytes replace the customer's logo of the declared file type. Only available to internal Pylon administrators.
resetOrganizationUserMfa - ResetOrganizationUserMfaResponse Reset a user's multi-factor authentication: their MFA enrollments are removed and their MFA-trusted browsers forgotten, so they set up MFA again at their next login.
Arguments
sendOrganizationUserInvitationEmail - SendOrganizationUserInvitationEmailResponse
setDefaultPrimaryLoanContact - SetDefaultPrimaryLoanContactResponse Set the current organization's default primary loan contact — the loan officer rendered on preapproval letters. Selects an existing loan contact by id, or creates a new one from the supplied fields, then repoints the organization at it. Only available to internal Pylon administrators.
setOrganizationApiAccessStatus - SetOrganizationApiAccessStatusResponse Set the current organization's API access status. Only available to internal Pylon administrators.
toggleEnabledLoanProduct - ToggleEnabledLoanProductResponse Enable or disable a loan product for the current customer. Only available to internal Pylon administrators
Arguments
togglePlaidProduct - TogglePlaidProductResponse Enable a Plaid product for the current customer. Only available to internal Pylon administrators
Arguments
updateContact - UpdateContactResponse Update an existing contact and returns the result.
Arguments
updateCostAbsorption - UpdateCostAbsorptionResponse Set the cost absorption points for a loan product on the current customer. Only available to internal Pylon administrators
Arguments
updateCustomerShare - UpdateCustomerShareResponse Updates the share of the margin that the current organization takes. Only available to internal Pylon administrators
Arguments
updateOrganization - UpdateOrganizationResponse Update the current organization
Arguments
updateOrganizationCustomerMargin - UpdateOrganizationCustomerMarginResponse Sets the customer margin (and optionally Pylon's take), in points, for an existing fixed-take agreement. Omitted Pylon take keeps its stored value. Share-based agreements must use total-margin and share updates instead. Only available to internal Pylon administrators
updateOrganizationLicensing - UpdateOrganizationLicensingResponse Update the current organization's state licensing
updateOrganizationMargin - UpdateOrganizationMarginResponse Updates the current organization's total margin, in points, preserving its contract type. Only available to internal Pylon administrators
Arguments
updateOrganizationOrigination - UpdateOrganizationOriginationResponse Updates the current organization's origination configuration (MERS Org ID and default loan channel). Only available to internal Pylon administrators
updateOrganizationRolePermissions - UpdateOrganizationRolePermissionsResponse
updateOrganizationUserDetails - UpdateOrganizationUserDetailsResponse Update an organization user's names, phone number, or individual NMLS id. Omitted fields are unchanged; a null phone number or NMLS id clears the value. Email and licenses are not editable here.
updateOrganizationUserRoles - UpdateOrganizationUserRolesResponse
Example
{
  "addEmailDomains": AddEmailDomainsResponse,
  "createContact": CreateContactResponse,
  "createOrganizationRole": CreateOrganizationRoleResponse,
  "createOrganizationUser": CreateOrganizationUserResponse,
  "deleteOrganizationRole": DeleteOrganizationRoleResponse,
  "deleteOrganizationStateLicenses": DeleteOrganizationStateLicensesResponse,
  "deleteOrganizationUser": DeleteOrganizationUserResponse,
  "removeEmailDomains": RemoveEmailDomainsResponse,
  "requestBrandingLogoUpload": RequestBrandingLogoUploadResponse,
  "resetOrganizationUserMfa": ResetOrganizationUserMfaResponse,
  "sendOrganizationUserInvitationEmail": SendOrganizationUserInvitationEmailResponse,
  "setDefaultPrimaryLoanContact": SetDefaultPrimaryLoanContactResponse,
  "setOrganizationApiAccessStatus": SetOrganizationApiAccessStatusResponse,
  "toggleEnabledLoanProduct": ToggleEnabledLoanProductResponse,
  "togglePlaidProduct": TogglePlaidProductResponse,
  "updateContact": UpdateContactResponse,
  "updateCostAbsorption": UpdateCostAbsorptionResponse,
  "updateCustomerShare": UpdateCustomerShareResponse,
  "updateOrganization": UpdateOrganizationResponse,
  "updateOrganizationCustomerMargin": UpdateOrganizationCustomerMarginResponse,
  "updateOrganizationLicensing": UpdateOrganizationLicensingResponse,
  "updateOrganizationMargin": UpdateOrganizationMarginResponse,
  "updateOrganizationOrigination": UpdateOrganizationOriginationResponse,
  "updateOrganizationRolePermissions": UpdateOrganizationRolePermissionsResponse,
  "updateOrganizationUserDetails": UpdateOrganizationUserDetailsResponse,
  "updateOrganizationUserRoles": UpdateOrganizationUserRolesResponse
}

OrganizationRole

Description

Organization user role

Fields
Field Name Description
description - String!
id - ID!
name - String!
permissions - [String!]
Example
{
  "description": "abc123",
  "id": 4,
  "name": "xyz789",
  "permissions": ["abc123"]
}

OrganizationRoleConnection

Fields
Field Name Description
edges - [OrganizationRoleEdge!]!
pageInfo - PageInfo!
Example
{
  "edges": [OrganizationRoleEdge],
  "pageInfo": PageInfo
}

OrganizationRoleEdge

Fields
Field Name Description
cursor - ID!
node - OrganizationRoleNode!
Example
{"cursor": 4, "node": OrganizationRoleNode}

OrganizationRoleNode

Fields
Field Name Description
description - String!
id - ID!
name - String!
Example
{
  "description": "abc123",
  "id": "4",
  "name": "xyz789"
}

OrganizationStateWithLicenses

Fields
Field Name Description
active - Boolean!
licenses - [StateLicense!]!
state - StateAbbreviated!
Example
{
  "active": true,
  "licenses": [StateLicense],
  "state": "AK"
}

OrganizationStateWithLicensesInput

Fields
Input Field Description
active - Boolean!
licenses - [StateLicenseInput!]
state - StateAbbreviated!
Example
{
  "active": true,
  "licenses": [StateLicenseInput],
  "state": "AK"
}

OrganizationUser

Description

Organization user object

Fields
Field Name Description
companyName - String Payee company name for processor-type roles. Synced to the closing cost as the fee-paid-to name.
email - String!
firstName - String!
id - ID!
individualNmlsId - String The user's individual NMLS identifier.
lastName - String!
licenses - [OrganizationUserLicense!] Individual state licenses read back from the user's licensed-user broker record (loan officers and admins). Null when the user has no such record. License expiration is not stored locally, so it is not returned here.
organizationRoles - [OrganizationRole!]
phoneNumber - String The user's phone number.
processorFeeAmount - Float Current processing fee in dollars, if the user has a processor-type role
Example
{
  "companyName": "abc123",
  "email": "abc123",
  "firstName": "abc123",
  "id": 4,
  "individualNmlsId": "abc123",
  "lastName": "xyz789",
  "licenses": [OrganizationUserLicense],
  "organizationRoles": [OrganizationRole],
  "phoneNumber": "xyz789",
  "processorFeeAmount": 123.45
}

OrganizationUserAccessType

Description

Whether a new organization user is provisioned with Command Center access (login + internal) or as an internal-only record.

Values
Enum Value Description

CommandCenterAccess

InternalOnly

Example
"CommandCenterAccess"

OrganizationUserConnection

Fields
Field Name Description
edges - [OrganizationUserEdge!]!
pageInfo - PageInfo!
totalCount - NonNegativeInt! The total number of users in the organization.
Example
{
  "edges": [OrganizationUserEdge],
  "pageInfo": PageInfo,
  "totalCount": 123
}

OrganizationUserEdge

Fields
Field Name Description
cursor - ID!
node - OrganizationUserNode!
Example
{
  "cursor": "4",
  "node": OrganizationUserNode
}

OrganizationUserLicense

Description

A state license held by an organization user, read back from the licensed-user broker record created alongside the user.

Fields
Field Name Description
licenseNumber - String The state-issued license number.
state - StateAbbreviated! The US state the license is held in.
Example
{"licenseNumber": "abc123", "state": "AK"}

OrganizationUserLicenseInput

Description

A state license held by an organization user. The expiration year defaults to December 31st of that year.

Fields
Input Field Description
expirationYear - PositiveInt! The year the license expires. The expiration date is set to December 31st of this year.
licenseNumber - String! The state-issued license number.
state - StateAbbreviated! The US state the license is held in.
Example
{
  "expirationYear": 123,
  "licenseNumber": "abc123",
  "state": "AK"
}

OrganizationUserNode

Fields
Field Name Description
email - String!
firstName - String!
id - ID!
lastName - String!
Example
{
  "email": "xyz789",
  "firstName": "xyz789",
  "id": "4",
  "lastName": "xyz789"
}

OtherAsset

Description

Asset of miscellaneous or unspecified type

Fields
Field Name Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt! The cash or market value of the asset in dollars
assetReportId - ID ID of the latest asset report that verified this asset
borrowerIds - [ID!] Ids of borrowers that are account holders on this asset
description - String Description of the asset
id - ID! Node ID
institutionName - String Institution name
isLiquid - Boolean Indicates whether or not the asset is liquid
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
notableActivities - [FinancialAccountActivity!]! Notable activities
qualifiedAmount - NonNegativeInt The qualified amount of the asset in dollars, used for underwriting. Null if no qualification has been computed.
verifiedAmount - NonNegativeInt The verified cash or market value of the asset in dollars, confirmed by a third-party source
Example
{
  "accountIdentifier": "xyz789",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "assetReportId": "4",
  "borrowerIds": ["4"],
  "description": "xyz789",
  "id": 4,
  "institutionName": "abc123",
  "isLiquid": true,
  "nonBorrowerOwnerNames": ["xyz789"],
  "notableActivities": [FinancialAccountActivity],
  "qualifiedAmount": 123,
  "verifiedAmount": 123
}

OtherIncome

Description

Income that does not fall into any of the predefined types

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
description - String Information about the income type
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "description": "xyz789",
  "id": "4",
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": "4"
}

OutOfPocketExceedsAssetsViolation

Description

The requested loan amount forces more cash to close than the borrower's available assets can cover.

Fields
Field Name Description
additionalAssetsNeeded - Float! Additional dollars of available assets the borrower needs to cover the required cash to close.
Example
{"additionalAssetsNeeded": 123.45}

OvertimeIncome

Description

Overtime income

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
employmentId - ID The employment this income is associated with
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "employmentId": "4",
  "id": "4",
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": 4
}

OwnedProperty

Description

Owned property

Fields
Field Name Description
address - Address US Address
currentUsageType - PropertyUsageType How the owner is using this property.
homeInsuranceMonthlyPayment - NonNegativeInt The dollar amount of monthly home insurance premium.
id - ID! Owned property ID
intendedDisposition - PropertyDisposition The intended disposition of the property. Indicates whether the borrowers will be retaining or selling (or sold) the property.
intendedUsageType - PropertyUsageType How the owner intends to use this property.
liabilities - [Liability!] Liabilities associated with an owned property
monthlyAssociationDues - NonNegativeInt Monthly association dues (in dollars)
mortgageInsuranceMonthlyPayment - NonNegativeInt The dollar amount of monthly mortgage insurance monthly premium.
neighborhoodHousingType - NeighborhoodHousingType The type of housing (e.g. single or multi-family)
nonBorrowingOwners - [NonBorrowingOwner!]!
pendingNetSaleProceedsAsset - Asset If the property is pending sale, the associated asset that represents the expected net proceeds from the sale.
propertyTaxMonthlyPayment - NonNegativeInt The dollar amount of property taxes due per month.
propertyValue - NonNegativeInt The estimated value of the owned property, in whole dollars
purchaseDate - Date The date when the property was originally purchased
rentalIncome - Income If the property is a rental property, the associated rental income entity.
sellDate - Date The date when the property was sold (or null if the borrower(s) still own the property).
Example
{
  "address": Address,
  "currentUsageType": "INVESTMENT",
  "homeInsuranceMonthlyPayment": 123,
  "id": 4,
  "intendedDisposition": "PENDING_SALE",
  "intendedUsageType": "INVESTMENT",
  "liabilities": [Liability],
  "monthlyAssociationDues": 123,
  "mortgageInsuranceMonthlyPayment": 123,
  "neighborhoodHousingType": "CONDOMINIUM",
  "nonBorrowingOwners": [NonBorrowingOwner],
  "pendingNetSaleProceedsAsset": Asset,
  "propertyTaxMonthlyPayment": 123,
  "propertyValue": 123,
  "purchaseDate": "2007-12-03",
  "rentalIncome": Income,
  "sellDate": "2007-12-03"
}

OwnedPropertyConnection

Fields
Field Name Description
edges - [OwnedPropertyEdge!]!
pageInfo - PageInfo!
Example
{
  "edges": [OwnedPropertyEdge],
  "pageInfo": PageInfo
}

OwnedPropertyEdge

Fields
Field Name Description
cursor - ID!
node - OwnedProperty!
Example
{"cursor": 4, "node": OwnedProperty}

OwnedPropertyMutations

Description

Owned property mutations

Fields
Field Name Description
attachLiabilities - AttachOwnedPropertyLiabilitiesResponse Attach liabilities to owned property.
attachNonBorrowingOwner - AttachOwnedPropertyNonBorrowingOwnerResponse Attach non-borrowing owner to owned property.
create - CreateOwnedPropertyResponse Create an OwnedProperty
Arguments
delete - DeleteOwnedPropertyResponse Delete an owned property
Arguments
detachLiabilities - DetachOwnedPropertyLiabilitiesResponse Detach the address from an owned property.
update - UpdateOwnedPropertyResponse Update an OwnedProperty. Fields with non-null values will be updated, the rest will be ignored.
Arguments
Example
{
  "attachLiabilities": AttachOwnedPropertyLiabilitiesResponse,
  "attachNonBorrowingOwner": AttachOwnedPropertyNonBorrowingOwnerResponse,
  "create": CreateOwnedPropertyResponse,
  "delete": DeleteOwnedPropertyResponse,
  "detachLiabilities": DetachOwnedPropertyLiabilitiesResponse,
  "update": UpdateOwnedPropertyResponse
}

PacificIslanderRace

Values
Enum Value Description

GUAMANIAN_OR_CHAMORRO

NATIVE_HAWAIIAN

OTHER

SAMOAN

Example
"GUAMANIAN_OR_CHAMORRO"

PageInfo

Fields
Field Name Description
endCursor - String!
hasNextPage - Boolean!
hasPreviousPage - Boolean!
startCursor - String!
Example
{
  "endCursor": "abc123",
  "hasNextPage": true,
  "hasPreviousPage": false,
  "startCursor": "xyz789"
}

PagePoint

Description

A vertex of a citation's polygon, in page coordinates.

Fields
Field Name Description
x - Float!
y - Float!
Example
{"x": 987.65, "y": 123.45}

PagePointInput

Description

A vertex of a drawn citation's polygon, in page coordinates.

Fields
Input Field Description
x - Float!
y - Float!
Example
{"x": 123.45, "y": 987.65}

PageRange

Fields
Field Name Description
from - PositiveInt!
to - PositiveInt!
Example
{"from": 123, "to": 123}

PaidTo

Fields
Field Name Description
legalEntity - LegalEntity
Example
{"legalEntity": LegalEntity}

Party

Fields
Field Name Description
address - Address
id - ID! The unique ID of the Party.
individual - PartyIndividual Details about the party, if the party is an individual (rather than a company)
legalEntity - PartyLegalEntity Details about the party, if the party is a legal entity
role - PartyRole Indicates the type of relationship between the party and the loan.
Example
{
  "address": Address,
  "id": "4",
  "individual": PartyIndividual,
  "legalEntity": PartyLegalEntity,
  "role": "APPRAISER"
}

PartyIndividual

Fields
Field Name Description
email - String The e-mail address of the individual associated with the loan.
name - PartyName The name of the individual associated with the loan.
telephoneNumber - String The phone number of the individual associated with the loan.
Example
{
  "email": "abc123",
  "name": PartyName,
  "telephoneNumber": "xyz789"
}

PartyIndividualInput

Fields
Input Field Description
email - String The e-mail address of the individual associated with the loan.
name - PartyNameInput The name of the individual associated with the loan.
telephoneNumber - String The phone number of the individual associated with the loan.
Example
{
  "email": "abc123",
  "name": PartyNameInput,
  "telephoneNumber": "abc123"
}

PartyLegalEntity

Fields
Field Name Description
legalEntityDetail - PartyLegalEntityDetail Details about the legal entity associated with the loan.
Example
{"legalEntityDetail": PartyLegalEntityDetail}

PartyLegalEntityDetail

Fields
Field Name Description
email - String
fullName - String The name of the legal entity associated with the loan.
Example
{
  "email": "xyz789",
  "fullName": "xyz789"
}

PartyLegalEntityDetailInput

Fields
Input Field Description
email - String
fullName - String The name of the legal entity associated with the loan.
Example
{
  "email": "abc123",
  "fullName": "xyz789"
}

PartyLegalEntityInput

Fields
Input Field Description
legalEntityDetail - PartyLegalEntityDetailInput Details about the legal entity associated with the loan.
Example
{"legalEntityDetail": PartyLegalEntityDetailInput}

PartyMutations

Fields
Field Name Description
create - CreatePartyResponse
Arguments
delete - DeletePartyResponse
Arguments
optForDefaultTitleVendor - OptForDefaultTitleVendorResponse
Arguments
update - UpdatePartyResponse
Arguments
Example
{
  "create": CreatePartyResponse,
  "delete": DeletePartyResponse,
  "optForDefaultTitleVendor": OptForDefaultTitleVendorResponse,
  "update": UpdatePartyResponse
}

PartyName

Fields
Field Name Description
firstName - String The first name of the party.
lastName - String The last name of the party.
middleName - String The middle name of the party.
Example
{
  "firstName": "abc123",
  "lastName": "abc123",
  "middleName": "abc123"
}

PartyNameInput

Fields
Input Field Description
firstName - String The first name of the party.
lastName - String The last name of the party.
middleName - String The middle name of the party.
Example
{
  "firstName": "abc123",
  "lastName": "abc123",
  "middleName": "xyz789"
}

PartyRole

Description

A designation for what type of Party is being represented.

Values
Enum Value Description

APPRAISER

ATTORNEY

FULFILLMENT_PARTY

HAZARD_INSURANCE_AGENT

HOMEOWNERS_ASSOCIATION

MANAGEMENT_COMPANY

NON_TITLE_SPOUSE

PROPERTY_SELLER

REAL_ESTATE_AGENT

TITLE_COMPANY

Example
"APPRAISER"

PayPeriodFrequency

Description

The frequency at which income is paid

Values
Enum Value Description

ANNUALLY

AS_OF

BI_WEEKLY

HOURLY

MONTHLY

ONE_TIME

QUARTERLY

SEMI_ANNUALLY

SEMI_MONTHLY

WEEKLY

Example
"ANNUALLY"

PendingNetSaleProceedsFromRealEstateAsset

Description

Pending net sale proceeds from a real estate asset. The amount is the expected proceeds and should be less than or equal to the salePrice.

Fields
Field Name Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt! The cash or market value of the asset in dollars
assetReportId - ID ID of the latest asset report that verified this asset
borrowerIds - [ID!] Ids of borrowers that are account holders on this asset
id - ID! Node ID
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
notableActivities - [FinancialAccountActivity!]! Notable activities
ownedProperty - OwnedProperty The property being sold
qualifiedAmount - NonNegativeInt The qualified amount of the asset in dollars, used for underwriting. Null if no qualification has been computed.
salePrice - NonNegativeInt Sale price of the property in dollars
verifiedAmount - NonNegativeInt The verified cash or market value of the asset in dollars, confirmed by a third-party source
Example
{
  "accountIdentifier": "abc123",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "assetReportId": "4",
  "borrowerIds": ["4"],
  "id": 4,
  "institutionName": "abc123",
  "nonBorrowerOwnerNames": ["xyz789"],
  "notableActivities": [FinancialAccountActivity],
  "ownedProperty": OwnedProperty,
  "qualifiedAmount": 123,
  "salePrice": 123,
  "verifiedAmount": 123
}

PensionIncome

Description

Pension income

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "id": 4,
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": "4"
}

PersonalInformation

Description

Personal information

Fields
Field Name Description
email - String!
firstName - String!
lastName - String!
middleName - String
suffix - String
Example
{
  "email": "abc123",
  "firstName": "abc123",
  "lastName": "xyz789",
  "middleName": "xyz789",
  "suffix": "xyz789"
}

PersonalInformationInput

Description

Personal information input

Fields
Input Field Description
email - String!
firstName - String!
lastName - String!
middleName - String
suffix - String
Example
{
  "email": "abc123",
  "firstName": "xyz789",
  "lastName": "xyz789",
  "middleName": "xyz789",
  "suffix": "xyz789"
}

PhoneNumberType

Description

Phone number type

Values
Enum Value Description

CELL

HOME

WORK

Example
"CELL"

PickLoanId

Fields
Field Name Description
id - ID! Node ID
Example
{"id": "4"}

PickSubjectPropertyId

Fields
Field Name Description
id - ID! Node ID
Example
{"id": "4"}

PipelineSummaryCounter

Fields
Input Field Description
filters - LoanApplicationAnalyticsFilters!
label - String!
Example
{
  "filters": LoanApplicationAnalyticsFilters,
  "label": "xyz789"
}

PipelineSummaryItem

Fields
Field Name Description
count - Float!
label - String!
Example
{"count": 987.65, "label": "xyz789"}

PipelineSummaryResponse

Fields
Field Name Description
counts - [PipelineSummaryItem!]!
totalCount - Float!
Example
{"counts": [PipelineSummaryItem], "totalCount": 123.45}

Pitia

Fields
Field Name Description
floodInsurance - NonNegativeFloat
hoaDues - NonNegativeFloat
homeownersInsurance - NonNegativeFloat
mortgageInsurance - NonNegativeFloat
principalAndInterest - NonNegativeFloat
qualifyingPrincipalAndInterest - NonNegativeFloat
taxes - NonNegativeFloat
Example
{
  "floodInsurance": 123.45,
  "hoaDues": 123.45,
  "homeownersInsurance": 123.45,
  "mortgageInsurance": 123.45,
  "principalAndInterest": 123.45,
  "qualifyingPrincipalAndInterest": 123.45,
  "taxes": 123.45
}

PlaceAddressComponent

Fields
Field Name Description
longText - String Full text of the component, e.g. "California"
shortText - String Abbreviated text of the component, e.g. "CA"
types - [String!]! Component types, e.g. "street_number", "route", "locality", "postal_code"
Example
{
  "longText": "xyz789",
  "shortText": "xyz789",
  "types": ["abc123"]
}

PlaceAutocompleteSuggestion

Fields
Field Name Description
mainText - String! Primary text of the suggestion, usually the street address
placeId - ID! Opaque place identifier; pass to the place field to fetch address components
secondaryText - String! Secondary text of the suggestion, usually city/state/country; "" when there is none
Example
{
  "mainText": "abc123",
  "placeId": 4,
  "secondaryText": "xyz789"
}

PlaceDetails

Fields
Field Name Description
addressComponents - [PlaceAddressComponent!]! Structured address components of the place
Example
{"addressComponents": [PlaceAddressComponent]}

PlaidExchangeMetadata

Description

Metadata from Plaid Link onSuccess callback

Fields
Input Field Description
institutionId - String! Institution ID
institutionName - String! Institution name
linkSessionId - String! Link session ID
Example
{
  "institutionId": "abc123",
  "institutionName": "xyz789",
  "linkSessionId": "abc123"
}

PlaidItemAccess

Description

Plaid token exchange success

Fields
Field Name Description
accessToken - String! Plaid access token
itemId - String! Plaid item ID
Example
{
  "accessToken": "xyz789",
  "itemId": "xyz789"
}

PlaidLayerItem

Description

A single item from a Plaid Layer session

Fields
Field Name Description
accessToken - String! Plaid access token
itemId - String! Plaid item ID
Example
{
  "accessToken": "abc123",
  "itemId": "abc123"
}

PlaidLinkToken

Description

Plaid link token for initializing widget

Fields
Field Name Description
linkToken - String! Link token for Plaid Link widget
Example
{"linkToken": "abc123"}

PositiveFloat

Description

Floats that will have a value greater than 0.

Example
123.45

PositiveInt

Description

Integers that will have a value greater than 0.

Example
123

PreApprovalMutations

Description

Pre-approval mutations

Fields
Field Name Description
createLoanPreApprovalLetter - CreateLoanPreApprovalLetterResponse Create a pre-approval letter for a loan that has already been pre-approved.
createMaxLoanPreApprovalLetter - CreateMaxLoanPreApprovalLetterResponse Create a pre-approval letter with the maximum pre-approved loan amount and purchase price for a loan that has already been pre-approved.
runLoanPreApproval - RunLoanPreApprovalResponse Create a pre-approval for a loan
Arguments
Example
{
  "createLoanPreApprovalLetter": CreateLoanPreApprovalLetterResponse,
  "createMaxLoanPreApprovalLetter": CreateMaxLoanPreApprovalLetterResponse,
  "runLoanPreApproval": RunLoanPreApprovalResponse
}

PreApprovalRun

Description

A pre-approval run

Fields
Field Name Description
id - ID!
Possible Types
PreApprovalRun Types

ApprovedPreApprovalRun

DeclinedPreApprovalRun

Example
{"id": 4}

PreQualification

Fields
Field Name Description
conventional - ConventionalPreQualification
Arguments
id - ID!
debug - [PreQualificationProductResult!]!
Example
{
  "conventional": ConventionalPreQualification,
  "debug": [PreQualificationProductResult]
}

PreQualificationBestEligibleResult

Fields
Field Name Description
apr - Float!
discountPointsTotal - Float!
discountPointsTotalAmount - Int!
loanAmount - NonNegativeInt!
ltv - Float!
product - Product! The loan product with the optimal prequalification result.
rate - Float!
salesContractAmount - NonNegativeInt!
Example
{
  "apr": 123.45,
  "discountPointsTotal": 987.65,
  "discountPointsTotalAmount": 123,
  "loanAmount": 123,
  "ltv": 987.65,
  "product": Product,
  "rate": 987.65,
  "salesContractAmount": 123
}

PreQualificationMutations

Description

Pre-qualification mutations

Fields
Field Name Description
conventional - ConventionalResponse Create a conventional pre-qualification
Example
{"conventional": ConventionalResponse}

PreQualificationProductResult

Fields
Field Name Description
product - Product!
result - ConventionalPreQualificationResult!
Example
{
  "product": Product,
  "result": EligiblePreQualification
}

PreapprovalProduct

Description

Loan products that can be enabled for a customer

Values
Enum Value Description

BayviewBayviewJumboAus

CitiCitiConforming

CitiCitiJumbo

OnslowBayExpandedPrimePlus

OnslowBaySharpAPlus

PennyMacFannieMaeConforming

PennyMacFreddieMacConforming

PlanetHomeFHAConforming

PlanetHomeFannieMaeConforming

PlanetHomeFannieMaeHomeReady

PlanetHomeFreddieMacConforming

PlanetHomeFreddieMacHomePossible

PremierLendingBamlJumbo

PremierLendingFHAConforming

PremierLendingFannieMaeConforming

PremierLendingFannieMaeConformingGenrae

PremierLendingFannieMaeHomeReady

PremierLendingFreddieMacConforming

PremierLendingFreddieMacConformingGenrae

PremierLendingFreddieMacHomePossible

PylonTestFannieMaeConforming

UwmUwmConfConv

Example
"BayviewBayviewJumboAus"

PrepaidItemType

Values
Enum Value Description

BOROUGH_PROPERTY_TAX

CITY_PROPERTY_TAX

CONDOMINIUM_ASSOCIATION_DUES

CONDOMINIUM_ASSOCIATION_SPECIAL_ASSESSMENT

COOPERATIVE_ASSOCIATION_DUES

COOPERATIVE_ASSOCIATION_SERVICE

COOPERATIVE_ASSOCIATION_SPECIAL_ASSESSMENT

COUNTY_PROPERTY_TAX

DISTRICT_PROPERTY_TAX

EARTHQUAKE_INSURANCE_PREMIUM

FLOOD_INSURANCE_PREMIUM

HAIL_INSURANCE_PREMIUM

HAZARD_INSURANCE_PREMIUM

HOMEOWNERS_ASSOCIATION_DUES

HOMEOWNERS_ASSOCIATION_SPECIAL_ASSESSMENT

HOMEOWNERS_INSURANCE_PREMIUM

MORTGAGE_INSURANCE_PREMIUM

OTHER

PREPAID_INTEREST

STATE_PROPERTY_TAX

TOWN_PROPERTY_TAX

USDA_RURAL_DEVELOPMENT_GUARANTEE_FEE

VA_FUNDING_FEE

VOLCANO_INSURANCE_PREMIUM

WIND_AND_STORM_INSURANCE_PREMIUM

Example
"BOROUGH_PROPERTY_TAX"

PrepaymentPenaltyAddedReason

Description

§1026.19(f)(2)(ii)(C).

Fields
Field Name Description
kind - DisclosureDriftReasonKind!
Example
{"kind": "APR_INACCURATE"}

Pricing

Fields
Field Name Description
dumpParameters - ProductPricingParameterDump
Arguments
loanId - ID!
fixedLoanAmountProductPricing - ProductPricingQuery Unlike productPricing, which calculates an optimal structure for a given scenario, fixedLoanAmountProductPricing pins the solver to a specific loan amount rather than deriving it from the loan's LTV and subject property value. Use this endpoint when the desired loan amount is known upfront (e.g. the borrower has requested a specific payoff amount on a refinance) but prefer productPricing for all other values
Arguments
amortizationTypes - [PricingAmortizationType!]

Restrict pricing to these amortization types. Omitted prices every amortization on the rate sheet (unlike scenario pricing, which defaults to fixed-only).

loanAmount - PositiveInt!

The desired loan amount in dollars. Pins the solver to this exact loan amount and the out-of-pocket cost is derived from it.

loanId - ID!

The ID of the loan to base calculations off of.

objectiveIntent - PricingObjectiveIntent

Configure the objective function to optimize against.

overrides - ProductPricingOverrides

Specify values to override on the loan application. This is an experimental field to assist with development not guaranteed to be on the final API.

pricingConstraints - FixedPricingConstraints

Configure constraints to run pricing under. Constraints are combined with BorrowerPreferences associated with a loan and overwrite them on conflict.

optimalStructure - OptimalStructure
Arguments
id - ID!

The ID of the OptimalStructureJob to retrieve. To enqueue a new job, use pricing { calculateOptimalStructure }.

productPricing - ProductPricingQuery
Arguments
amortizationTypes - [PricingAmortizationType!]

Restrict pricing to these amortization types. Omitted prices every amortization on the rate sheet (unlike scenario pricing, which defaults to fixed-only).

loanId - ID!

The ID of the loan to base calculations off of.

objectiveIntent - PricingObjectiveIntent

Configure the objective function to optimize against.

overrides - ProductPricingOverrides

Specify values to override on the loan application. This is an experimental field to assist with development not guaranteed to be on the final API.

pricingConstraints - PricingConstraints

Configure constraints to run pricing under. Constraints are combined with BorrowerPreferences associated with a loan and overwrite them on conflict.

Example
{
  "dumpParameters": ProductPricingParameterDump,
  "fixedLoanAmountProductPricing": ProductPricingQuery,
  "optimalStructure": OptimalStructure,
  "productPricing": ProductPricingQuery
}

PricingAmortizationType

Values
Enum Value Description

ADJUSTABLE_RATE

FIXED

Example
"ADJUSTABLE_RATE"

PricingConstraints

Fields
Input Field Description
applyOutOfPocketToLoan - Boolean Represents if Out Of Pocket cash will be applied to reduce loan cost
closingCosts - NonNegativeFloat The maximum allowable closing costs.
downPaymentAmount - NonNegativeFloat The down payment amount.
maxDiscountPoints - Float Limit number of rate point buys to not exceed this value.
maxLtv - NonNegativeFloat Max loan-to-value ratio allowed. Will not override takeout requirements.
maxOutOfPocket - NonNegativeFloat Out of pocket maximum in dollars.
monthlyPayment - NonNegativeFloat The maximum allowable monthly payment.
monthlyPaymentAsPercentageOfIncome - Boolean! Interpret monthly payment field as a percentage instead of dollar amount. Default = false
mortgageInsurance - Boolean Indicates whether mortgage insurance is required.
principal - NonNegativeFloat The maximum allowable principal amount.
rate - NonNegativeFloat The preferred interest rate as a percentage (e.g., 5.0 for 5%).
rollInClosingCosts - Boolean Represents if closing costs will be rolled into loan amount on a ReFi
totalCost - Float The cost of points for the loan.
totalPoints - NonNegativeFloat The number of points required for the loan.
Example
{
  "applyOutOfPocketToLoan": true,
  "closingCosts": 123.45,
  "downPaymentAmount": 123.45,
  "maxDiscountPoints": 123.45,
  "maxLtv": 123.45,
  "maxOutOfPocket": 123.45,
  "monthlyPayment": 123.45,
  "monthlyPaymentAsPercentageOfIncome": false,
  "mortgageInsurance": false,
  "principal": 123.45,
  "rate": 123.45,
  "rollInClosingCosts": true,
  "totalCost": 123.45,
  "totalPoints": 123.45
}

PricingMutations

Fields
Field Name Description
calculateOptimalStructure - CalculateOptimalStructureResponse
Example
{
  "calculateOptimalStructure": CalculateOptimalStructureResponse
}

PricingObjectiveIntent

Description

Configure the objective that the optimizer uses. E.g. minimize monthly cost or out of pocket.

Values
Enum Value Description

MIN_DOWN_PAYMENT

MIN_OUT_OF_POCKET

MIN_PITIA

Example
"MIN_DOWN_PAYMENT"

PrimaryIncomeHourlyPayError

Description

User error indicating that a preapproval was run with a borrower who is paid hourly, which is currently unsupported

Fields
Field Name Description
code - String A stable error code for programmatic handling. Format: {DOMAIN}_{ERROR_NAME} (e.g., 'LOAN_CLOSED', 'AUS_NO_PRODUCT_PRICING').
errorId - ID! A unique identifier for this error instance, useful for tracking and debugging.
field - [String!] Path to the input field that caused the error (e.g., ['input', 'customer', 'email']). Null when not associated with a specific field.
message - String! A human-readable error message.
Example
{
  "code": "abc123",
  "errorId": 4,
  "field": ["abc123"],
  "message": "xyz789"
}

PriorPropertyTitleType

Description

Specifies the ownership title type of the prior property.

Values
Enum Value Description

JOINT_WITH_OTHER_THAN_SPOUSE

JOINT_WITH_SPOUSE

SOLE

Example
"JOINT_WITH_OTHER_THAN_SPOUSE"

PriorPropertyUsageType

Description

Defines how the borrower's prior property was used.

Values
Enum Value Description

FHA_SECONDARY_RESIDENCE

INVESTMENT_PROPERTY

PRIMARY_RESIDENCE

SECOND_HOME

Example
"FHA_SECONDARY_RESIDENCE"

ProceedsFromSaleOfNonRealEstateAsset

Description

Proceeds from sale of non-real estate asset

Fields
Field Name Description
amount - NonNegativeInt! The cash or market value of the asset in dollars
assetReportId - ID ID of the latest asset report that verified this asset
borrowerIds - [ID!] Ids of borrowers that are account holders on this asset
id - ID! Node ID
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
qualifiedAmount - NonNegativeInt The qualified amount of the asset in dollars, used for underwriting. Null if no qualification has been computed.
verifiedAmount - NonNegativeInt The verified cash or market value of the asset in dollars, confirmed by a third-party source
Example
{
  "amount": 123,
  "assetReportId": "4",
  "borrowerIds": ["4"],
  "id": "4",
  "nonBorrowerOwnerNames": ["xyz789"],
  "qualifiedAmount": 123,
  "verifiedAmount": 123
}

ProceedsFromSecuredLoanAsset

Description

Proceeds from secured loan asset

Fields
Field Name Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt! The cash or market value of the asset in dollars
assetReportId - ID ID of the latest asset report that verified this asset
borrowerIds - [ID!] Ids of borrowers that are account holders on this asset
id - ID! Node ID
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
notableActivities - [FinancialAccountActivity!]! Notable activities
qualifiedAmount - NonNegativeInt The qualified amount of the asset in dollars, used for underwriting. Null if no qualification has been computed.
verifiedAmount - NonNegativeInt The verified cash or market value of the asset in dollars, confirmed by a third-party source
Example
{
  "accountIdentifier": "abc123",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "assetReportId": 4,
  "borrowerIds": ["4"],
  "id": "4",
  "institutionName": "xyz789",
  "nonBorrowerOwnerNames": ["xyz789"],
  "notableActivities": [FinancialAccountActivity],
  "qualifiedAmount": 123,
  "verifiedAmount": 123
}

ProceedsFromUnsecuredLoanAsset

Description

Proceeds from unsecured loan asset

Fields
Field Name Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt! The cash or market value of the asset in dollars
assetReportId - ID ID of the latest asset report that verified this asset
borrowerIds - [ID!] Ids of borrowers that are account holders on this asset
id - ID! Node ID
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
notableActivities - [FinancialAccountActivity!]! Notable activities
qualifiedAmount - NonNegativeInt The qualified amount of the asset in dollars, used for underwriting. Null if no qualification has been computed.
verifiedAmount - NonNegativeInt The verified cash or market value of the asset in dollars, confirmed by a third-party source
Example
{
  "accountIdentifier": "abc123",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "assetReportId": "4",
  "borrowerIds": [4],
  "id": "4",
  "institutionName": "xyz789",
  "nonBorrowerOwnerNames": ["abc123"],
  "notableActivities": [FinancialAccountActivity],
  "qualifiedAmount": 123,
  "verifiedAmount": 123
}

ProcessDocumentQueries

Description

Root type for process-document queries.

Fields
Field Name Description
status - ProcessDocumentStatusResponse! Status of a process-document (split) workflow, with the sections it produced once complete.
Arguments
Example
{"status": ProcessDocumentStatusResponse}

ProcessDocumentSection

Description

One section detected and classified within an uploaded document packet.

Fields
Field Name Description
documentId - ID! The document ID for this section. Query loanDocument(id) to read its extracted evidence. A single-section packet references the uploaded document itself.
extractionWorkflowId - ID The workflow ID for this section's extraction, or null when no extractor exists for this section. Poll the extraction workflow with this ID to track extraction progress.
kind - DocumentKind The extractable document kind this section routes to, or null when no extractor exists for its classification yet (recorded as OTHER_DOCUMENT for review).
observation - String! The splitter's explanation of why it classified the section.
Example
{
  "documentId": "4",
  "extractionWorkflowId": "4",
  "kind": "BANK_STATEMENT",
  "observation": "xyz789"
}

ProcessDocumentStatusInput

Description

Input for querying the status of a process-document (split) workflow.

Fields
Input Field Description
workflowId - ID! The workflow ID returned when the document packet was submitted.
Example
{"workflowId": "4"}

ProcessDocumentStatusResponse

Description

Status of a process-document (split) workflow, plus the sections it produced once complete.

Fields
Field Name Description
sections - [ProcessDocumentSection!]! Sections the packet was split into. Empty until the workflow succeeds.
status - JobStatus! Current status of the split workflow.
Example
{"sections": [ProcessDocumentSection], "status": "FAILED"}

Product

Fields
Field Name Description
description - String! A human-readable description of a loan product.
id - ID! An opaque ID identifiying a loan product.
type - String! One of Conforming, Jumbo, FHA, VA, Other
Example
{
  "description": "abc123",
  "id": "4",
  "type": "xyz789"
}

ProductPricing

Fields
Field Name Description
adjustableRateDetail - ProductPricingAdjustableRateDetail If non-null, this product represents an adjustable rate
id - ID The unique ID of this product pricing result.
lock - PositiveInt! The number of days this rate can be locked for.
product - Product! The product to which these calculations apply.
publishedAt - DateTimeISO! The date and time that rates for this product were published.
publishedOn - Date! The date that rates for this product were published. Use publishedAt for full timestamp precision.
term - PositiveInt! The term of the loan being considered in years.
Possible Types
ProductPricing Types

EligibleProductPricing

IneligibleProductPricing

Example
{
  "adjustableRateDetail": ProductPricingAdjustableRateDetail,
  "id": "4",
  "lock": 123,
  "product": Product,
  "publishedAt": "2007-12-03T10:15:30Z",
  "publishedOn": "2007-12-03",
  "term": 123
}

ProductPricingAdjustableRateDetail

Fields
Field Name Description
initialFixedPeriodEffectiveMonthsCount - NonNegativeInt! The number of months in the initial fixed period of a loan with an adjustable rate or payment
marginRatePercent - NonNegativeFloat! The number of percentage points to be added to the index to arrive at the new interest rate.
maximumIncreaseRatePercent - NonNegativeFloat! The maximum number of percentage points by which the interest rate can increase from the original interest rate over the life of the loan.
paymentsBetweenBaseRatesCount - NonNegativeInt! The number of payments between rate changes.
perChangeMaximumIncreaseRatePercent - NonNegativeFloat! The maximum number of percentage points by which the rate can increase from the previous interest rate.
periodicMaximumIncreaseRatePercent - NonNegativeFloat! The maximum number of percentage points by which the interest rate can increase from the Periodic Base Rate until the next base rate selection date.
Example
{
  "initialFixedPeriodEffectiveMonthsCount": 123,
  "marginRatePercent": 123.45,
  "maximumIncreaseRatePercent": 123.45,
  "paymentsBetweenBaseRatesCount": 123,
  "perChangeMaximumIncreaseRatePercent": 123.45,
  "periodicMaximumIncreaseRatePercent": 123.45
}

ProductPricingAdjustment

Fields
Field Name Description
description - String! A human-readable description of the adjustment.
id - ID! The ID of the adjustment.
points - Float! The number of points adjusted as a result of this adjustment.
Example
{
  "description": "xyz789",
  "id": 4,
  "points": 123.45
}

ProductPricingApor

Fields
Field Name Description
id - ID! The unique ID of the APOR.
rate - PositiveFloat! The average prime offer rate at the time of this pricing run for a comparible loan with the same term and amortization type.
Example
{"id": 4, "rate": 123.45}

ProductPricingErrorUnsetClosingDate

Fields
Field Name Description
code - String A stable error code for programmatic handling. Format: {DOMAIN}_{ERROR_NAME} (e.g., 'LOAN_CLOSED', 'AUS_NO_PRODUCT_PRICING').
errorId - ID! A unique identifier for this error instance, useful for tracking and debugging.
field - [String!] Path to the input field that caused the error (e.g., ['input', 'customer', 'email']). Null when not associated with a specific field.
message - String! A human-readable error message.
Example
{
  "code": "xyz789",
  "errorId": 4,
  "field": ["xyz789"],
  "message": "xyz789"
}

ProductPricingErrorUnsetEitherDownPaymentOrMaxAssetsToUse

Fields
Field Name Description
code - String A stable error code for programmatic handling. Format: {DOMAIN}_{ERROR_NAME} (e.g., 'LOAN_CLOSED', 'AUS_NO_PRODUCT_PRICING').
errorId - ID! A unique identifier for this error instance, useful for tracking and debugging.
field - [String!] Path to the input field that caused the error (e.g., ['input', 'customer', 'email']). Null when not associated with a specific field.
message - String! A human-readable error message.
Example
{
  "code": "abc123",
  "errorId": 4,
  "field": ["abc123"],
  "message": "abc123"
}

ProductPricingErrorUnsetPurchasePrice

Fields
Field Name Description
code - String A stable error code for programmatic handling. Format: {DOMAIN}_{ERROR_NAME} (e.g., 'LOAN_CLOSED', 'AUS_NO_PRODUCT_PRICING').
errorId - ID! A unique identifier for this error instance, useful for tracking and debugging.
field - [String!] Path to the input field that caused the error (e.g., ['input', 'customer', 'email']). Null when not associated with a specific field.
message - String! A human-readable error message.
Example
{
  "code": "xyz789",
  "errorId": 4,
  "field": ["abc123"],
  "message": "xyz789"
}

ProductPricingOverrides

Fields
Input Field Description
maximumAssetsToUse - NonNegativeInt Override the maximum asset amount to use toward upfront costs of the loan.
purchasePrice - PositiveInt Override the purchase price of the subject property.
Example
{"maximumAssetsToUse": 123, "purchasePrice": 123}

ProductPricingParameterDump

Fields
Field Name Description
serializedParameters - String
userErrors - [UserError!]!
Example
{
  "serializedParameters": "xyz789",
  "userErrors": [UserError]
}

ProductPricingQuery

Fields
Field Name Description
products - [ProductPricing!]
userErrors - [UserError!]!
Example
{
  "products": [ProductPricing],
  "userErrors": [UserError]
}

ProductPricingRate

Fields
Field Name Description
adjustableRateDetail - ProductPricingAdjustableRateDetail If non-null, this structure is an adjustable-rate mortgage. Braid prices a product once per adjustable term, so structures on the same product id are told apart by this detail.
adjustments - [ProductPricingAdjustment!]! All adjustments that apply to this product, rate, and deal.
apor - ProductPricingApor! The published APOR for a comparible mortgage at the time of this pricing run.
appliedMargin - AppliedMargin The customer margin applied when this rate was priced, derived on read from the effective-dated margin window active at the loan's pricing instant: the lock date when the loan's pricing is pinned by a rate lock, or now for unlocked loans. Identical for a loan's current product structure and for candidate rates of a pricing run on the same loan. Null for rates priced outside a loan context (e.g. scenarios).
apr - Float! The APR with this rate applied as a percentage.
breakEvenMonths - NonNegativeInt! The number of months before the interest savings surpases the points cost of this rate.
cashFromToBorrower - Float! The net change in cash from/to the borrower at closing.
cashOutAmount - NonNegativeFloat! The cash out amount.
cashOutType - RefinanceCashOutType! The cash out type.
closingCosts - Float! The closing costs for this rate. Currently, this is only an estimate-- things like title fees are difficult to correctly compute, but this should be a good approximation.
concessionPoints - NonNegativeFloat! The concessions being applied to the rate cost in this scenario, in points.
downPaymentAmount - NonNegativeFloat! The down payment on a property.
dti - NonNegativeFloat! The debt-to-income ratio of the borrowers with the PITIA for this rate taken into account.
floodInsurance - NonNegativeFloat! The cost of flood insurance.
id - ID The unique ID of this product pricing result.
increasedClosingCosts - NonNegativeFloat! The increased closing costs compared to the baseline preapproval rate.
ineligibilityDetails - [ProductStructureIneligibilityDetails!] Why this structure violates the product's guidelines, or null when the structure is eligible. A structure can be attached to a loan while ineligible, but not locked until every reason is resolved or overridden.
interest - PositiveInt! The total interest over the life of the loan, in dollars, with this rate applied.
lock - PositiveInt! The number of days this rate can be locked for.
ltv - Float! The ratio of the loan amount to the total value of the property, expressed as a percentage
monthlyPayment - NonNegativeFloat! The monthly mortgage payment (PITIA) of a loan at this rate.
monthlySavings - NonNegativeFloat! The increased savings month over month between this rate and the baseline preapproval rate.
mortgageInsurance - NonNegativeFloat! The cost of mandatory mortgage insurance each month.
pitia - Pitia! Breakdown of the monthly payment for this rate.
pointsCost - NonNegativeFloat! The cost, in dollars, to buy enough points in order to qualify for a better rate.
pointsNeeded - NonNegativeFloat! The number of additional points that must be purchased in order to qualify for this rate.
prepaidInterestDailyAmount - NonNegativeFloat! The amount of prepaid interest paid per day before closing,
prepaidInterestDaysPaid - NonNegativeFloat! The number of days' worth of prepaid interest to be paid at closing,
prepaidInterestTotalAmount - NonNegativeFloat! The total dollar amount of prepaid interest due at closing,
principal - PositiveFloat! The total principal, in dollars, of the loan with this rate applied.
product - Product! The product to which these calculations apply.
publishedAt - DateTimeISO! The date and time that rates for this product were published.
publishedOn - Date! The date that rates for this product were published. Use publishedAt for full timestamp precision.
rate - Float! The interest rate as a percentage.
rateId - ID! The ID of the rate.
ratePoints - Float! The cost, in points, of this rate.
term - PositiveInt! The term of the loan being considered in years.
totalCost - Float! The total cost after adjustments for this rate. Can be negative if the rate is below par.
totalPoints - Float! The total number of points after adjustments for this rate.
Example
{
  "adjustableRateDetail": ProductPricingAdjustableRateDetail,
  "adjustments": [ProductPricingAdjustment],
  "apor": ProductPricingApor,
  "appliedMargin": AppliedMargin,
  "apr": 987.65,
  "breakEvenMonths": 123,
  "cashFromToBorrower": 123.45,
  "cashOutAmount": 123.45,
  "cashOutType": "CASH_OUT",
  "closingCosts": 123.45,
  "concessionPoints": 123.45,
  "downPaymentAmount": 123.45,
  "dti": 123.45,
  "floodInsurance": 123.45,
  "id": 4,
  "increasedClosingCosts": 123.45,
  "ineligibilityDetails": [
    ConcessionExceedsCompensationViolation
  ],
  "interest": 123,
  "lock": 123,
  "ltv": 123.45,
  "monthlyPayment": 123.45,
  "monthlySavings": 123.45,
  "mortgageInsurance": 123.45,
  "pitia": Pitia,
  "pointsCost": 123.45,
  "pointsNeeded": 123.45,
  "prepaidInterestDailyAmount": 123.45,
  "prepaidInterestDaysPaid": 123.45,
  "prepaidInterestTotalAmount": 123.45,
  "principal": 123.45,
  "product": Product,
  "publishedAt": "2007-12-03T10:15:30Z",
  "publishedOn": "2007-12-03",
  "rate": 123.45,
  "rateId": 4,
  "ratePoints": 987.65,
  "term": 123,
  "totalCost": 987.65,
  "totalPoints": 987.65
}

ProductStructure

Fields
Field Name Description
adjustableRateDetail - ProductPricingAdjustableRateDetail If non-null, this product represents an adjustable rate mortgage
adjustments - [ProductPricingAdjustment!]! All adjustments that apply to this product, rate, and deal.
apor - ProductPricingApor! The published APOR for a comparible mortgage at the time of this pricing run.
appliedMargin - AppliedMargin The customer margin applied when this structure was priced, derived on read from the effective-dated margin window active at the loan's pricing instant: the lock date when the loan's pricing is pinned by a rate lock, or now for unlocked loans. Identical for a loan's current product structure and for candidate structures of a pricing run on the same loan. Null for structures priced outside a loan context (e.g. scenarios).
apr - Float! The APR with this rate applied as a percentage.
cashFromToBorrower - Float! The net change in cash from/to the borrower at closing.
cashOutAmount - NonNegativeFloat! The cash out amount.
cashOutType - RefinanceCashOutType! The cash out type.
closingCosts - Float! The closing costs for this rate. Currently, this is only an estimate-- things like title fees are difficult to correctly compute, but this should be a good approximation.
concessionPoints - NonNegativeFloat! The concessions being applied to the rate cost in this scenario, in points.
downPaymentAmount - NonNegativeFloat! The down payment on a property.
dti - NonNegativeFloat! The debt-to-income ratio of the borrowers with the PITIA for this rate taken into account.
floodInsurance - NonNegativeFloat! The cost of flood insurance.
id - ID The unique ID of this product pricing result.
interest - PositiveInt! The total interest over the life of the loan, in dollars, with this rate applied.
llpasWaived - Boolean! Whether LLPAs were waived for this rate due to low-income borrower eligibility
loanTermYears - PositiveInt! The term length of the loan, in years
lock - PositiveInt! The number of days this rate can be locked for.
ltv - Float! The ratio of the loan amount to the total value of the property, expressed as a percentage
monthlyPayment - NonNegativeFloat! The monthly mortgage payment (PITIA) of a loan at this rate.
mortgageInsurance - NonNegativeFloat! The cost of mandatory mortgage insurance each month.
pitia - Pitia! Breakdown of the monthly payment for this rate.
pointsCost - NonNegativeFloat! The cost, in dollars, to buy enough points in order to qualify for a better rate.
pointsNeeded - NonNegativeFloat! The number of additional points that must be purchased in order to qualify for this rate.
prepaidInterestDailyAmount - NonNegativeFloat! The amount of prepaid interest paid per day before closing,
prepaidInterestDaysPaid - NonNegativeFloat! The number of days' worth of prepaid interest to be paid at closing,
prepaidInterestTotalAmount - NonNegativeFloat! The total dollar amount of prepaid interest due at closing,
principal - PositiveFloat! The total principal, in dollars, of the loan with this rate applied.
product - Product! The product to which these calculations apply.
publishedAt - DateTimeISO! The date and time that rates for this product were published.
publishedOn - Date! The date that rates for this product were published. Use publishedAt for full timestamp precision.
rate - Float! The interest rate as a percentage.
rateId - ID! The ID of the rate.
ratePoints - Float! The cost, in points, of this rate.
totalCost - Float! The total cost after adjustments for this rate. Can be negative if the rate is below par.
totalPoints - Float! The total number of points after adjustments for this rate.
Possible Types
ProductStructure Types

EligibleProductStructure

IneligibleProductStructure

Example
{
  "adjustableRateDetail": ProductPricingAdjustableRateDetail,
  "adjustments": [ProductPricingAdjustment],
  "apor": ProductPricingApor,
  "appliedMargin": AppliedMargin,
  "apr": 987.65,
  "cashFromToBorrower": 987.65,
  "cashOutAmount": 123.45,
  "cashOutType": "CASH_OUT",
  "closingCosts": 123.45,
  "concessionPoints": 123.45,
  "downPaymentAmount": 123.45,
  "dti": 123.45,
  "floodInsurance": 123.45,
  "id": "4",
  "interest": 123,
  "llpasWaived": true,
  "loanTermYears": 123,
  "lock": 123,
  "ltv": 987.65,
  "monthlyPayment": 123.45,
  "mortgageInsurance": 123.45,
  "pitia": Pitia,
  "pointsCost": 123.45,
  "pointsNeeded": 123.45,
  "prepaidInterestDailyAmount": 123.45,
  "prepaidInterestDaysPaid": 123.45,
  "prepaidInterestTotalAmount": 123.45,
  "principal": 123.45,
  "product": Product,
  "publishedAt": "2007-12-03T10:15:30Z",
  "publishedOn": "2007-12-03",
  "rate": 123.45,
  "rateId": 4,
  "ratePoints": 987.65,
  "totalCost": 123.45,
  "totalPoints": 123.45
}

ProductStructureIneligibilityDetails

ProductStructureUnsatisfiabilityDetails

Example
GuidelineViolation

ProductStructureUnsatisfiabilityDetailsType

Description

Details about product structure unsatisfiability

Fields
Field Name Description
field - String! The field that could not be satisfied
reason - String! The reason for unsatisfiability
Example
{
  "field": "xyz789",
  "reason": "abc123"
}

PropertyDisposition

Description

Disposition of a property

Values
Enum Value Description

PENDING_SALE

RETAIN

SOLD

Example
"PENDING_SALE"

PropertyUsageType

Values
Enum Value Description

INVESTMENT

PRIMARY_RESIDENCE

SECOND_HOME

Example
"INVESTMENT"

PropertyValuationMethodType

Description

The method used to determine the property's value.

Values
Enum Value Description

AUTOMATED_VALUATION_MODEL

BROKER_PRICE_OPINION

DESKTOP_APPRAISAL

DRIVE_BY

FULL_APPRAISAL

NONE

OTHER

PRIOR_APPRAISAL_USED

TAX_VALUATION

Example
"AUTOMATED_VALUATION_MODEL"

ProposedGrossRentForSubjectPropertyIncome

Description

Proposed gross rent for subject property income

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "id": "4",
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": 4
}

ProvenanceSource

Description

A source explaining why a requirement exists — rule evaluation, manual condition, or data dependency.

Fields
Field Name Description
description - String! Human-readable explanation, e.g. "W2 required for employment income verification".
evidence - [GuidelineReference!]! Supporting evidence — guideline citations, document references, etc.
Example
{
  "description": "abc123",
  "evidence": [GuidelineReference]
}

ProvisionCustomerInput

Description

Input for provisioning a new customer.

Fields
Input Field Description
companyLegalName - String! Customer legal name.
companyName - String Customer display name. Defaults to the legal name when omitted.
customerSlug - String! Customer slug. Must be a known Pylon customer slug (registered in CustomerSlugs).
customerWebsite - String! Customer website URL.
emailDomains - [String!]! Allowed email domains for the customer.
friendlyCustomerId - String Optional friendly id prefix (1-4 uppercase letters) used for deal ids. Derived from the company name when omitted.
Example
{
  "companyLegalName": "xyz789",
  "companyName": "xyz789",
  "customerSlug": "xyz789",
  "customerWebsite": "abc123",
  "emailDomains": ["abc123"],
  "friendlyCustomerId": "abc123"
}

ProvisionCustomerResponse

Description

Result of provisioning a new customer.

Fields
Field Name Description
customerId - ID The id of the created customer, when provisioning succeeded.
oauthClientId - String The Auth0 OAuth client id created for direct API access, when provisioning succeeded.
userErrors - [GenericUserError!]! User errors that prevented provisioning (e.g. the slug is unknown or already taken). Empty when provisioning succeeded.
Example
{
  "customerId": 4,
  "oauthClientId": "xyz789",
  "userErrors": [GenericUserError]
}

PublicAssistanceIncome

Description

Public assistance income

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "id": 4,
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": "4"
}

PurchaseConsolidatedDebtNotAllowedError

Description

User error indicating that the loan has liabilities marked as 'pay at closing' which is not allowed for purchase loans.

Fields
Field Name Description
code - String A stable error code for programmatic handling. Format: {DOMAIN}_{ERROR_NAME} (e.g., 'LOAN_CLOSED', 'AUS_NO_PRODUCT_PRICING').
errorId - ID! A unique identifier for this error instance, useful for tracking and debugging.
field - [String!] Path to the input field that caused the error (e.g., ['input', 'customer', 'email']). Null when not associated with a specific field.
liabilityCount - Int!
message - String! A human-readable error message.
Example
{
  "code": "abc123",
  "errorId": 4,
  "field": ["abc123"],
  "liabilityCount": 123,
  "message": "abc123"
}

PurchasePricingInput

Fields
Input Field Description
amortizationTypes - [PricingAmortizationType!] The amortization types to price. Defaults to fixed-only; request ADJUSTABLE_RATE (typically in a separate sequential call) to price ARM products, so one request never solves both halves of the sheet at once. Default = [FIXED]
concessions - NonNegativeInt!
fipsCountyCode - String!
hoaDues - NonNegativeInt Monthly homeowners association dues in dollars. When omitted, pricing behaves as if the property has no HOA dues.
isBorrowerSelfEmployed - Boolean!
isFirstTimeHomeBuyer - Boolean!
loanTermYears - Float!
monthlyDebt - Float!
monthlyIncome - Float!
neighborhoodHousingType - NeighborhoodHousingType!
numberOfUnits - NonNegativeInt
objectiveIntent - PricingObjectiveIntent Configure the objective function to optimize against. Default = MIN_PITIA
outOfPocketMax - Float!
pricingConstraints - PricingConstraints
propertyTaxesAndInsuranceIncludedInPayment - Boolean Whether property taxes and insurance are included in the monthly payment (impounded). Defaults to impounded when omitted.
propertyUsageType - PropertyUsageType!
qualifyingFicoScore - Int
rateLockDays - Float!
salesContractAmount - NonNegativeInt! The amount of money that the property will be purchased for. Also called the purchase price.
Example
{
  "amortizationTypes": ["ADJUSTABLE_RATE"],
  "concessions": 123,
  "fipsCountyCode": "abc123",
  "hoaDues": 123,
  "isBorrowerSelfEmployed": true,
  "isFirstTimeHomeBuyer": false,
  "loanTermYears": 987.65,
  "monthlyDebt": 987.65,
  "monthlyIncome": 987.65,
  "neighborhoodHousingType": "CONDOMINIUM",
  "numberOfUnits": 123,
  "objectiveIntent": "MIN_DOWN_PAYMENT",
  "outOfPocketMax": 123.45,
  "pricingConstraints": PricingConstraints,
  "propertyTaxesAndInsuranceIncludedInPayment": false,
  "propertyUsageType": "INVESTMENT",
  "qualifyingFicoScore": 123,
  "rateLockDays": 987.65,
  "salesContractAmount": 123
}

PurchasePricingNoRestructureInput

Fields
Input Field Description
amortizationTypes - [PricingAmortizationType!] The amortization types to price. Defaults to fixed-only; request ADJUSTABLE_RATE (typically in a separate sequential call) to price ARM products, so one request never solves both halves of the sheet at once. Default = [FIXED]
concessions - NonNegativeInt!
downPayment - NonNegativeInt!
fipsCountyCode - String!
hoaDues - NonNegativeInt Monthly homeowners association dues in dollars. When omitted, pricing behaves as if the property has no HOA dues.
isBorrowerSelfEmployed - Boolean!
isFirstTimeHomeBuyer - Boolean!
loanAmount - NonNegativeInt!
loanTermYears - Float!
monthlyDebt - Float!
monthlyIncome - Float!
neighborhoodHousingType - NeighborhoodHousingType!
numberOfUnits - NonNegativeInt
objectiveIntent - PricingObjectiveIntent Configure the objective function to optimize against. Default = MIN_PITIA
pricingConstraints - PricingConstraints
propertyTaxesAndInsuranceIncludedInPayment - Boolean Whether property taxes and insurance are included in the monthly payment (impounded). Defaults to impounded when omitted.
propertyUsageType - PropertyUsageType!
qualifyingFicoScore - Int
rateLockDays - Float!
Example
{
  "amortizationTypes": ["ADJUSTABLE_RATE"],
  "concessions": 123,
  "downPayment": 123,
  "fipsCountyCode": "abc123",
  "hoaDues": 123,
  "isBorrowerSelfEmployed": false,
  "isFirstTimeHomeBuyer": true,
  "loanAmount": 123,
  "loanTermYears": 987.65,
  "monthlyDebt": 987.65,
  "monthlyIncome": 987.65,
  "neighborhoodHousingType": "CONDOMINIUM",
  "numberOfUnits": 123,
  "objectiveIntent": "MIN_DOWN_PAYMENT",
  "pricingConstraints": PricingConstraints,
  "propertyTaxesAndInsuranceIncludedInPayment": false,
  "propertyUsageType": "INVESTMENT",
  "qualifyingFicoScore": 123,
  "rateLockDays": 987.65
}

PylonTeam

Description

The loan's Pylon team as assigned in the loan system.

Fields
Field Name Description
accountManager - PylonTeamMember The primary account manager: the primary-role designation when the loan system provides one, else the sole member holding the Account Management role, else null (never guessed among several).
members - [PylonTeamMember!]! Every assigned team member (account managers, processor, closer, ...). Underwriters are withheld — see underwriter. Other roles flow through; empty until the loan's assignments have synced.
underwriter - UnderwriterScheduling Anonymous scheduling handle for the loan's underwriter: the primary-role designation when the loan system provides one, else the sole member holding the Underwriter role, else null (never guessed among several). The underwriter is never named.
Example
{
  "accountManager": PylonTeamMember,
  "members": [PylonTeamMember],
  "underwriter": UnderwriterScheduling
}

PylonTeamMember

Description

A member of the loan's Pylon team.

Fields
Field Name Description
email - String Email address.
name - String Full name.
nmlsId - String NMLS identifier, when the member is licensed.
roles - [String!]! Role names as configured in the loan system (e.g. "Account Management", "Underwriter").
schedulingUrl - String Booking link (e.g. Calendly) for this person, when one is on file.
Example
{
  "email": "xyz789",
  "name": "xyz789",
  "nmlsId": "xyz789",
  "roles": ["abc123"],
  "schedulingUrl": "xyz789"
}

QmFeeCapViolation

Description

Loan post-structuring violates QM fee cap.

Fields
Field Name Description
borrowerPaidFees - Float! Total Fees paid from borrower to lender, broker, and affiliates.
loanAmount - Float! Total Loan Amount from Sagittarius Structuring.
parRate - Float! Par rate of that specific structuring.
Example
{"borrowerPaidFees": 123.45, "loanAmount": 987.65, "parRate": 123.45}

Race

Values
Enum Value Description

AM_INDIAN_ALASKAN

ASIAN

BLACK

HAWAIIAN_PACIFIC

WHITE

Example
"AM_INDIAN_ALASKAN"

RateLockDetails

Description

Rate lock related fields

Fields
Field Name Description
comments - String Rate lock comments
expirationTime - DateTime The expiration time of the lock
lockedTime - DateTime The time when the rate was locked
period - NonNegativeInt The rate lock period in days
requestedTime - DateTime The time when the rate lock was requested
status - RateLockStatus Rate lock status
Example
{
  "comments": "abc123",
  "expirationTime": "2007-12-03T10:15:30Z",
  "lockedTime": "2007-12-03T10:15:30Z",
  "period": 123,
  "requestedTime": "2007-12-03T10:15:30Z",
  "status": "CANCELLED"
}

RateLockStatus

Description

Rate lock status

Values
Enum Value Description

CANCELLED

CONCESSION_REQUESTED

DENIED

EXPIRED

EXTENSION_REQUESTED

LOCKED

NOT_REQUESTED

PRICED

PRICED_WITH_EXPIRED_PRODUCT

RELOCK_REQUESTED

REPRICE_REQUESTED

REQUESTED

Example
"CANCELLED"

RateLockStatusComparator

Description

Comparisons available on the rate-lock status.

Fields
Input Field Description
eq - RateLockStatus
in - [RateLockStatus!]
isNull - Boolean
neq - RateLockStatus
nin - [RateLockStatus!]
null - Boolean
Example
{
  "eq": "CANCELLED",
  "in": ["CANCELLED"],
  "isNull": true,
  "neq": "CANCELLED",
  "nin": ["CANCELLED"],
  "null": true
}

Rates

Fields
Field Name Description
apor - Apor
Arguments
amortizationType - AporAmortizationType!

Specifies the amortization type (i.e. fixed or adjustable) of the mortgage.

date - DateTime

Specify the effective date to fetch APOR by. The latest date on which APORs were published earlier than this specified date will be returned. Defaults to now.

loanTermOrYearsToFirstAdjustment - PositiveInt!

Specify the term or number of years until the first adjustment to fetch the APOR by.

Example
{"apor": Apor}

ReadyToUnderwrite

Description

Readiness for the PROCESSING → UNDERWRITING transition. What's needed before submitting for underwriting?

Fields
Field Name Description
_ - Boolean! A no-op field that should not be requested. It will always throw an error if requested. It only exists to allow empty objects and may be removed in the future. This field should not be requested. It only exists to allow empty objects and may be removed in the future if more fields are added to this type.
allRequirements - [Requirement!]! Every requirement for this transition at any depth, flattened, optionally filtered by phase and by folded evaluation verdict. Use requirements for the tree: it returns roots and filters roots, so a phase or verdict that only ever lands on a leaf is invisible there. Use this to ask for the matching requirements themselves — verdict: [NEEDS_HUMAN] is every requirement on the loan waiting on a human. A verdict exists only on an OPEN requirement, so filtering by verdict never returns a satisfied or waived one; null verdict means never evaluated and matches no filter. Each match still renders its own subtree under children.
Arguments
requirements - [Requirement!]! All requirements for this transition, optionally filtered by phase. Omit the argument to get all requirements regardless of phase.
Arguments
Example
{
  "_": true,
  "allRequirements": [Requirement],
  "requirements": [Requirement]
}

RealEstateOwnedGrossRentalIncome

Description

Real estate owned gross rental income

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
propertyId - ID! The owned real estate associated with the income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "id": "4",
  "payPeriodFrequency": "ANNUALLY",
  "propertyId": "4",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": 4
}

ReappLoanInput

Description

Input for reapplying (duplicating) a loan.

Fields
Input Field Description
dryRun - Boolean! When true, return the generated plan (steps + warnings) without executing it.
loanId - ID! The loan application to duplicate.
Example
{"dryRun": true, "loanId": 4}

ReappLoanResponse

Description

The result of a reapp dry run or execution.

Fields
Field Name Description
friendlyLoanId - String The created loan's friendly id. Null on a dry run.
loanId - ID The id of the created loan. Null on a dry run.
steps - [ReappStepResult!]! The plan's steps, in execution order.
warnings - [String!]! Source data the plan does not recreate — review before executing.
Example
{
  "friendlyLoanId": "abc123",
  "loanId": 4,
  "steps": [ReappStepResult],
  "warnings": ["abc123"]
}

ReappMutations

Description

Root object for reapp mutations (internal use only).

Fields
Field Name Description
reappLoan - ReappLoanResponse Duplicate a loan by replaying its data through the API as a new application. Pass dryRun to review the plan first. Internal use only.
Arguments
input - ReappLoanInput!
Example
{"reappLoan": ReappLoanResponse}

ReappStepResult

Description

One step of a reapp plan or execution.

Fields
Field Name Description
label - String! The step's label.
operation - String! The operation the step performs.
Example
{
  "label": "abc123",
  "operation": "xyz789"
}

ReassignLoanOfficerTasksInput

Description

Input to the reassignLoanOfficerTasks mutation.

Fields
Input Field Description
loanId - ID! The ID or friendly ID of the loan.
Example
{"loanId": 4}

ReassignLoanOfficerTasksResponse

Description

Response of the reassignLoanOfficerTasks mutation.

Fields
Field Name Description
reassignedCount - NonNegativeInt! How many loan officer tasks were reassigned to the borrower
Example
{"reassignedCount": 123}

ReassignTaskInput

Description

Input to the reassignTask mutation.

Fields
Input Field Description
assigneeBorrowerId - ID The borrower that should own the task when assigning to a borrower
loanId - ID! The ID or friendly ID of the loan.
newAssignee - String! The new person that the task is assigned to
taskId - ID! The task id of the task to flip to loan officer
Example
{
  "assigneeBorrowerId": "4",
  "loanId": 4,
  "newAssignee": "abc123",
  "taskId": 4
}

ReassignTaskResponse

Description

Response of the reassignTask mutation.

Fields
Field Name Description
assignedTo - String! Who the task is now assigned to
assigneeBorrowerId - ID The borrower now assigned to the task, if any
Example
{
  "assignedTo": "abc123",
  "assigneeBorrowerId": 4
}

RecentlyViewedLoan

Description

A loan the current user recently viewed within their active organization, with thin display fields for list rows.

Fields
Field Name Description
contactPointFullName - String The full name of the primary contact on the loan
currentStage - String The current stage that the loan is in. Returned raw so clients can apply their own stage-visibility policy.
friendlyLoanId - String! The human-friendly ID of the loan
loanId - ID! The ID of the loan
loanNumber - String The loan number in the origination system
viewedAt - DateTimeISO! When the current user last viewed this loan
Example
{
  "contactPointFullName": "xyz789",
  "currentStage": "abc123",
  "friendlyLoanId": "abc123",
  "loanId": "4",
  "loanNumber": "abc123",
  "viewedAt": "2007-12-03T10:15:30Z"
}

RecomputeIncomeInput

Fields
Input Field Description
id - ID! ID of the income to recompute
Example
{"id": 4}

RecomputeIncomeResponse

Fields
Field Name Description
qualifiedAmount - NonNegativeFloat The recomputed qualified (and verified) monthly amount, present when recomputed is true.
recomputed - Boolean! False when the income has no paystub data to recompute from (e.g. a manual/stated income); no change was made.
Example
{"qualifiedAmount": 123.45, "recomputed": false}

RecordLoanViewInput

Fields
Input Field Description
loanId - ID!
Example
{"loanId": 4}

RecordLoanViewResponse

Fields
Field Name Description
success - Boolean! True when the view was recorded. False when the caller has no org-user identity to record against (e.g. machine tokens); such calls are a silent no-op rather than an error.
userErrors - [UserError!]!
Example
{"success": false, "userErrors": [UserError]}

RecordWireInInputsInput

Fields
Input Field Description
applyCredits - Boolean!
concessionAmount - MonetaryAmount Concession amount used by the approved purchase advice. Omit to retain the latest recorded amount, or use the selected loan terms on the first record. Provide null to resume the loan value.
escrowAtClosing - MonetaryAmount Escrow held at closing used by the approved purchase advice. Omit to retain the latest recorded amount, or use the loan value on the first record. Provide null to resume the loan value.
globalMarginPercent - NonNegativeFloat Global margin in percentage points: 2.75 means 2.75%, not 0.0275. Provide together with sellerMarginShare. Omit both to retain the latest recorded pair, or use the rate-lock margin on the first record. Provide null for both to resume the rate-lock margin.
loanId - ID!
monthlyEscrow - MonetaryAmount Monthly escrow used for a stripped payment. Omit to retain the latest recorded amount, or sum the loan components on the first record. Provide null to resume the loan components.
passthroughFees - MonetaryAmount Total pass-through fees used by the approved purchase advice. Omit to retain the latest recorded amount, or sum eligible loan fees on the first record. Provide null to resume the loan fees.
purchaseDate - Date!
sellerMarginShare - NonNegativeFloat Seller's fraction of the global margin, from 0 to 1: 0.8182 means 81.82%. Provide together with globalMarginPercent. Omit both to retain the latest recorded pair.
supersededReason - FundingFigureSupersededReason Why this input replaces the prior issued figure. Used only when a prior figure exists.
totalToleranceCures - MonetaryAmount Tolerance cures used by the approved purchase advice. Omit to retain the latest recorded amount, or use the loan value on the first record. Provide null to resume the loan value.
Example
{
  "applyCredits": true,
  "concessionAmount": MonetaryAmount,
  "escrowAtClosing": MonetaryAmount,
  "globalMarginPercent": 123.45,
  "loanId": "4",
  "monthlyEscrow": MonetaryAmount,
  "passthroughFees": MonetaryAmount,
  "purchaseDate": "2007-12-03",
  "sellerMarginShare": 123.45,
  "supersededReason": "CALCULATION_REVISION",
  "totalToleranceCures": MonetaryAmount
}

RecordWireInInputsResponse

Fields
Field Name Description
inputVersion - FundingWireInInputVersion!
Example
{"inputVersion": FundingWireInInputVersion}

RecordWireInRemittanceInput

Fields
Input Field Description
amount - MonetaryAmount! The positive amount Pylon sent through the bank.
figureId - ID! The issued wire-in figure used for the bank transfer.
fundsOrderedAt - DateTime! The time when Pylon placed the bank transfer.
idempotencyKey - String! A retry key unique to this loan's wire-in records.
loanId - ID! The loan Pylon sent funds for.
Example
{
  "amount": MonetaryAmount,
  "figureId": "4",
  "fundsOrderedAt": "2007-12-03T10:15:30Z",
  "idempotencyKey": "abc123",
  "loanId": 4
}

RecordWireInRemittanceResponse

Fields
Field Name Description
fundingSettlement - FundingSettlement!
remittance - FundingRemittance!
Example
{
  "fundingSettlement": FundingSettlement,
  "remittance": FundingRemittance
}

RecordWireOutRemittanceInput

Fields
Input Field Description
amount - MonetaryAmount! The positive amount ordered through the bank.
figureId - ID! The issued wire-out figure used for the bank order.
fundsOrderedAt - DateTime! The time when the reporting system placed the bank order.
idempotencyKey - String! A retry key unique to this loan's wire-out records.
loanId - ID! The loan whose wire was ordered.
Example
{
  "amount": MonetaryAmount,
  "figureId": 4,
  "fundsOrderedAt": "2007-12-03T10:15:30Z",
  "idempotencyKey": "abc123",
  "loanId": "4"
}

RecordWireOutRemittanceResponse

Fields
Field Name Description
fundingSettlement - FundingSettlement!
remittance - FundingRemittance!
Example
{
  "fundingSettlement": FundingSettlement,
  "remittance": FundingRemittance
}

RediscloseInput

Description

Input to the loan.redisclose mutation.

Fields
Input Field Description
changeDescription - String! The Change of Circumstances Request Form's "Change Requested" cell — what changed, in the requester's own words ('Flipping to Fannie'). Not derivable from the drift report: that is what Pylon detected, this is what a person intended.
changedCircumstanceReason - ChangeOfCircumstanceReason! Why this is a changed circumstance under §1026.19(e)(3)(iv). Required, unlike the column it lands in: it is the judgement that permits a revised Loan Estimate to reset a fee's tolerance baseline, and a send without one is refused.
loanId - ID! The ID or friendly ID of the loan.
supportingDocumentIds - [ID!] Documents on this loan that evidence the changed circumstance, printed under the form's supporting-documentation rows. Every id must belong to loanId; one that does not refuses the send. Omitted leaves the rows blank for a human to complete, which is the paper form.
Example
{
  "changeDescription": "xyz789",
  "changedCircumstanceReason": "CHANGED_CIRCUMSTANCE_AFFECTING_ELIGIBILITY",
  "loanId": 4,
  "supportingDocumentIds": [4]
}

RediscloseResponse

Description

Response of the loan.redisclose mutation.

Fields
Field Name Description
assessedReasonKinds - [DisclosureDriftReasonKind!]! What the drift report said at the moment of sending, which is what the package discloses. Not re-readable afterwards: a sent package becomes the new baseline, against which these reasons no longer stand.
changeOfCircumstanceForm - ChangeOfCircumstanceForm The Change of Circumstances Request Form filed on the loan for this request.
changeOfCircumstanceRequest - ChangeOfCircumstanceRequest The recorded change of circumstance — the §1026.19(e)(3)(iv) justification this send answers to. Null exactly when userErrors is non-empty.
disclosuresRun - DisclosuresRunStatus The disclosures run dispatched by this call — a revised Loan Estimate or a corrected Closing Disclosure, whichever the baseline owes. Generation is asynchronous, so a resolved run means the package was booked, not that the borrower has it; read its status for that.
userErrors - [UserError!]! A list of user errors that occurred while executing the loan.redisclose mutation.
Example
{
  "assessedReasonKinds": ["APR_INACCURATE"],
  "changeOfCircumstanceForm": ChangeOfCircumstanceForm,
  "changeOfCircumstanceRequest": ChangeOfCircumstanceRequest,
  "disclosuresRun": DisclosuresRunStatus,
  "userErrors": [UserError]
}

RefinanceCashOutType

Description

Refinance cash out type

Values
Enum Value Description

CASH_OUT

NO_OR_LIMITED

Example
"CASH_OUT"

RefinancePricingInput

Fields
Input Field Description
amortizationTypes - [PricingAmortizationType!] The amortization types to price. Defaults to fixed-only; request ADJUSTABLE_RATE (typically in a separate sequential call) to price ARM products, so one request never solves both halves of the sheet at once. Default = [FIXED]
cashOut - NonNegativeInt The amount of cash to be returned to the borrower from the equity. Default = 0
concessions - NonNegativeInt!
fipsCountyCode - String!
firstLienAmount - NonNegativeInt! The remaining balance on the first lien of the property
hoaDues - NonNegativeInt Monthly homeowners association dues in dollars. When omitted, pricing behaves as if the property has no HOA dues.
isBorrowerSelfEmployed - Boolean!
loanAmount - NonNegativeInt The desired loan amount in dollars. When provided, pins the solver to this exact loan amount and the out-of-pocket cost is derived from it. When omitted, the solver determines the optimal loan amount.
loanTermYears - Float!
monthlyDebt - Float!
monthlyIncome - Float!
neighborhoodHousingType - NeighborhoodHousingType!
numberOfUnits - NonNegativeInt
objectiveIntent - PricingObjectiveIntent Configure the objective function to optimize against. Default = MIN_PITIA
pricingConstraints - PricingConstraints
propertyTaxesAndInsuranceIncludedInPayment - Boolean Whether property taxes and insurance are included in the monthly payment (impounded). Defaults to impounded when omitted.
propertyUsageType - PropertyUsageType!
propertyValue - NonNegativeInt! The value of the property being refinanced in dollars.
qualifyingFicoScore - Int
rateLockDays - Float!
Example
{
  "amortizationTypes": ["ADJUSTABLE_RATE"],
  "cashOut": 123,
  "concessions": 123,
  "fipsCountyCode": "abc123",
  "firstLienAmount": 123,
  "hoaDues": 123,
  "isBorrowerSelfEmployed": false,
  "loanAmount": 123,
  "loanTermYears": 123.45,
  "monthlyDebt": 123.45,
  "monthlyIncome": 123.45,
  "neighborhoodHousingType": "CONDOMINIUM",
  "numberOfUnits": 123,
  "objectiveIntent": "MIN_DOWN_PAYMENT",
  "pricingConstraints": PricingConstraints,
  "propertyTaxesAndInsuranceIncludedInPayment": false,
  "propertyUsageType": "INVESTMENT",
  "propertyValue": 123,
  "qualifyingFicoScore": 123,
  "rateLockDays": 123.45
}

RefreshCreditReportInput

Description

Input to refresh an existing credit report

Fields
Input Field Description
creditPullId - ID! The ID of the completed credit pull to refresh
Example
{"creditPullId": 4}

RefreshCreditReportResponse

Description

Response from refreshing a credit report

Fields
Field Name Description
job - CreditPullJob Credit pull job for the refresh
userErrors - [String!] User errors preventing refresh
Example
{
  "job": CreditPullJob,
  "userErrors": ["abc123"]
}

RefreshLinkInput

Fields
Input Field Description
borrowerId - ID!
itemId - ID! The bank connection to refresh.
Example
{
  "borrowerId": "4",
  "itemId": "4"
}

RefreshLinkResponse

Fields
Field Name Description
expiresAt - DateTime!
hostedUrl - String The borrower-facing hosted link, null unless the link is pending and unexpired.
linkId - String!
status - AssetVerificationLinkStatus!
Example
{
  "expiresAt": "2007-12-03T10:15:30Z",
  "hostedUrl": "xyz789",
  "linkId": "xyz789",
  "status": "COMPLETED"
}

RejectDocumentInput

Fields
Input Field Description
archiveReasonNotes - String! Specified archive reason notes
borrowerId - ID ID of the borrower
documentId - ID! ID of the rejected Loan Document
loanId - ID! ID of the loan
Example
{
  "archiveReasonNotes": "xyz789",
  "borrowerId": "4",
  "documentId": "4",
  "loanId": "4"
}

RejectDocumentResponse

Description

Response of the rejected document mutation.

Fields
Field Name Description
taskId - ID! Success of the rejected task
Example
{"taskId": "4"}

RelativeDateTime

Description

An instant, given either absolutely as an RFC 3339 date-time ("2026-07-18T00:00:00Z") or relatively as an ISO 8601 duration from now ("P2W" is two weeks ahead, "-P30D" is thirty days ago). Durations are resolved on the server against a single reading of the clock, so a window built from two of them cannot straddle a tick.

Example
RelativeDateTime

RemoveEmailDomainsInput

Fields
Input Field Description
domains - [String!]! Email domains to remove from the organization.
Example
{"domains": ["xyz789"]}

RemoveEmailDomainsResponse

Fields
Field Name Description
emailDomains - [String!]!
Example
{"emailDomains": ["xyz789"]}

RemoveLoanAssignmentInput

Fields
Input Field Description
loanAssignmentId - ID!
Example
{"loanAssignmentId": 4}

RemoveLoanAssignmentResponse

Fields
Field Name Description
success - Boolean!
userErrors - [UserError!]!
Example
{"success": false, "userErrors": [UserError]}

RemoveManualRequirementInput

Fields
Input Field Description
requirementId - ID! The manual requirement to remove (a req_… id).
Example
{"requirementId": 4}

RemoveManualRequirementResponse

Description

Result of removing a manual requirement.

Fields
Field Name Description
evictedRequirementIds - [ID!]! The requirement ids this write evicted — normalized-cache eviction hints for the caller (ruling 2's counterpart when the row vanishes).
requirement - Requirement The affected requirement's post-reconcile subtree (adversarial-review ruling 2): every review mutation reconciles inline, so the caller can render the new phase without a refetch. Null when the requirement row no longer exists (evicted or not yet minted).
warnings - [UnderwritingReviewWarning!]! Non-fatal warnings about the write. Empty on a clean write.
Example
{
  "evictedRequirementIds": [4],
  "requirement": Requirement,
  "warnings": ["TARGET_SUPERSEDED"]
}

RentalIncome

Description

Rental income

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
id - ID! Node ID
ownedProperty - OwnedProperty! The associated owned property entity
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "id": "4",
  "ownedProperty": OwnedProperty,
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": 4
}

ReopenAssessmentInput

Fields
Input Field Description
assertionId - ID! The ACTIVE human assertion to reopen (an evid_… id). Rejected if it is not the requirement's current active human assertion.
reasoning - String! Why the assessment is being reopened.
Example
{"assertionId": 4, "reasoning": "abc123"}

ReopenAssessmentResponse

Description

Result of reopening an assessment.

Fields
Field Name Description
evidenceId - ID! The INVALIDATION act's content-addressed edge id.
requirement - Requirement The affected requirement's post-reconcile subtree (adversarial-review ruling 2): every review mutation reconciles inline, so the caller can render the new phase without a refetch. Null when the requirement row no longer exists (evicted or not yet minted).
warnings - [UnderwritingReviewWarning!]! Non-fatal warnings about the write. Empty on a clean write.
Example
{
  "evidenceId": "4",
  "requirement": Requirement,
  "warnings": ["TARGET_SUPERSEDED"]
}

ReportType

Description

Whether the liability was sourced from a credit report or self-reported

Values
Enum Value Description

CREDIT_REPORT

SELF_REPORTED

Example
"CREDIT_REPORT"

RequestBrandingLogoUploadInput

Description

Input for requesting a branding-logo upload URL.

Fields
Input Field Description
customerId - ID! The customer to set the logo for (internal administrators are cross-customer, so the target is named explicitly).
extension - BrandingLogoExtension! Declared file type of the logo that will be uploaded. The received bytes must match it.
Example
{"customerId": 4, "extension": "PNG"}

RequestBrandingLogoUploadResponse

Description

Response from requesting a branding-logo upload.

Fields
Field Name Description
upload - BrandingLogoUpload! The upload target.
Example
{"upload": BrandingLogoUpload}

RequestConcessionInput

Fields
Input Field Description
amount - NonNegativeInt
loanId - ID
reason - String
Example
{
  "amount": 123,
  "loanId": 4,
  "reason": "abc123"
}

RequestConcessionResponse

Fields
Field Name Description
concession - Concession
Example
{"concession": Concession}

RequestLinkInput

Fields
Input Field Description
borrowerId - ID!
Example
{"borrowerId": 4}

RequestLinkResponse

Fields
Field Name Description
expiresAt - DateTime!
hostedUrl - String The borrower-facing hosted link, null unless the link is pending and unexpired.
linkId - String!
status - AssetVerificationLinkStatus!
Example
{
  "expiresAt": "2007-12-03T10:15:30Z",
  "hostedUrl": "abc123",
  "linkId": "abc123",
  "status": "COMPLETED"
}

RequestOrderInput

Fields
Input Field Description
borrowerId - ID!
Example
{"borrowerId": 4}

RequestOrderResponse

Fields
Field Name Description
existingOrderReused - Boolean!
expiresAt - DateTime!
orderId - String!
shareUrl - String The borrower-facing verification link, null when the order has no usable link.
status - IncomeVerificationOrderStatus!
Example
{
  "existingOrderReused": false,
  "expiresAt": "2007-12-03T10:15:30Z",
  "orderId": "abc123",
  "shareUrl": "abc123",
  "status": "CANCELED"
}

RequestRateLockInput

Description

Input to the requestRateLock mutation.

Fields
Input Field Description
comments - String Rate lock comments
loanId - ID! The ID or friendly ID of the loan.
Example
{
  "comments": "xyz789",
  "loanId": "4"
}

RequestRateLockResponse

Description

Response of the requestRateLock mutation.

Fields
Field Name Description
loanId - ID! The ID or friendly ID of the loan.
Example
{"loanId": "4"}

RequestReconsiderationInput

Fields
Input Field Description
requirementId - ID! The requirement whose assessment the agent should revisit.
Example
{"requirementId": "4"}

RequestReconsiderationResponse

Description

Result of requesting agent reconsideration. The agent's answer arrives asynchronously as an AGENT assertion with outcome CONCUR or DEFER; it can never displace an active human assertion (author precedence is structural).

Fields
Field Name Description
requirement - Requirement The affected requirement's post-reconcile subtree (adversarial-review ruling 2): every review mutation reconciles inline, so the caller can render the new phase without a refetch. Null when the requirement row no longer exists (evicted or not yet minted).
warnings - [UnderwritingReviewWarning!]! Non-fatal warnings about the write. Empty on a clean write.
Example
{
  "requirement": Requirement,
  "warnings": ["TARGET_SUPERSEDED"]
}

RequestSupportDocumentUploadInput

Description

Input for requesting a support-document upload URL.

Fields
Input Field Description
fileName - String! Original file name (including extension).
loanApplicationId - ID! The loan the document belongs to: its Pylon id or friendly loan id. The stored document can be attached to support tickets and messages for this loan.
Example
{
  "fileName": "abc123",
  "loanApplicationId": 4
}

RequestSupportDocumentUploadResponse

Description

Response from requesting a document upload.

Fields
Field Name Description
upload - SupportDocumentUpload! The upload target.
Example
{"upload": SupportDocumentUpload}

Requirement

Description

A requirement that must be satisfied before the loan can progress.

Fields
Field Name Description
borrowerIds - [ID!]! Borrowers this requirement applies to; empty when the requirement is loan-level. A composite carries the union of its children's borrowers.
children - [Requirement!]! Child requirements of a composite, each with its own phase, recursing through nested composites so a deep tree renders as a tree. Empty for leaf requirements. Unlike fulfillmentOptions, present in every phase — a satisfied or waived composite still lists its children here.
description - String! Human-readable label for this requirement, e.g. "W2 for Acme Corp (2025)".
id - ID! Stable identifier for this requirement, resolvable via the root node(id) query.
openedAt - DateTimeISO! When this requirement (re)entered its current OPEN period. A removed and later restored requirement carries the restore time, not its original creation time.
phase - RequirementPhase! Current resolution phase. Redundant with __typename but useful for client-side filtering without fragment matching.
provenance - [ProvenanceSource!]! Why this requirement exists — rule evaluation, manual condition, or data dependency.
Possible Types
Requirement Types

OpenRequirement

SatisfiedRequirement

WaivedRequirement

Example
{
  "borrowerIds": ["4"],
  "children": [Requirement],
  "description": "xyz789",
  "id": "4",
  "openedAt": "2007-12-03T10:15:30Z",
  "phase": "OPEN",
  "provenance": [ProvenanceSource]
}

RequirementAssigneeRole

Description

The role responsible for fulfilling a requirement. MULTIPLE indicates a composite with mixed ownership. SYSTEM indicates a prerequisite resolved automatically. MANUAL_REVIEW indicates the requirement is pending a human reviewer's judgment rather than borrower action. THIRD_PARTY indicates an external party must provide the requirement input. UNASSIGNED indicates no honest assignee role is available for the current requirement state.

Values
Enum Value Description

BORROWER

LOAN_OFFICER

MANUAL_REVIEW

MULTIPLE

PROCESSOR

SYSTEM

THIRD_PARTY

UNASSIGNED

UNDERWRITER

Example
"BORROWER"

RequirementPhase

Description

The resolution phase of a requirement: OPEN (not yet fulfilled), SATISFIED (evidence or judgment demonstrates it's met), WAIVED (authorized actor explicitly waived it).

Values
Enum Value Description

OPEN

SATISFIED

WAIVED

Example
"OPEN"

RequirementStatus

Description

Status of a requirement: PENDING (not started), PROCESSING (in progress), REJECTED (needs re-attempt), COMPLETED (satisfied).

Values
Enum Value Description

COMPLETED

PENDING

PROCESSING

REJECTED

Example
"COMPLETED"

ReservesNotMetViolation

Description

Optimizer could not find a solution with sufficient reserves.

Fields
Field Name Description
additionalReserveRequirements - Float! Minimum additional dollars needed to meet the reserve requirements.
Example
{"additionalReserveRequirements": 987.65}

ResetOrganizationUserMfaInput

Fields
Input Field Description
id - ID!
Example
{"id": "4"}

ResetOrganizationUserMfaResponse

Fields
Field Name Description
userErrors - [GenericUserError!]!
Example
{"userErrors": [GenericUserError]}

RetirementFundAsset

Description

Retirement fund asset

Fields
Field Name Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt! The cash or market value of the asset in dollars
assetReportId - ID ID of the latest asset report that verified this asset
borrowerIds - [ID!] Ids of borrowers that are account holders on this asset
id - ID! Node ID
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
notableActivities - [FinancialAccountActivity!]! Notable activities
qualifiedAmount - NonNegativeInt The qualified amount of the asset in dollars, used for underwriting. Null if no qualification has been computed.
verifiedAmount - NonNegativeInt The verified cash or market value of the asset in dollars, confirmed by a third-party source
Example
{
  "accountIdentifier": "xyz789",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "assetReportId": 4,
  "borrowerIds": ["4"],
  "id": 4,
  "institutionName": "xyz789",
  "nonBorrowerOwnerNames": ["xyz789"],
  "notableActivities": [FinancialAccountActivity],
  "qualifiedAmount": 123,
  "verifiedAmount": 123
}

RetirementIncome

Description

Retirement income

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "id": 4,
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": "4"
}

RetryDocumentIntakeInput

Description

Ask for one uploaded file to be read again.

Fields
Input Field Description
documentId - ID! The uploaded file to re-read.
Example
{"documentId": 4}

RetryDocumentIntakeResponse

Description

The outcome of asking for a re-read. Resolves once the request is accepted, NOT once the file has been re-read — poll the status for that.

Fields
Field Name Description
accepted - Boolean! Whether a fresh read was started. False when the file was not in a state a re-read could improve, which is a refusal and not a failure.
attempt - Int! The attempt number now in flight. Unchanged when the request was refused.
Example
{"accepted": false, "attempt": 123}

RevokeConcessionInput

Fields
Input Field Description
id - ID!
revocationReason - ConcessionRevocationReason
Example
{
  "id": "4",
  "revocationReason": "BETTER_LOAN_STRUCTURE"
}

RevokeConcessionResponse

Fields
Field Name Description
concession - Concession
Example
{"concession": Concession}

RoyaltiesIncome

Description

Royalties income

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "id": "4",
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": 4
}

RuleProvenance

Description

Provenance from an SGR-evaluated rule. The requirement exists because a computed rule determined it was needed.

Fields
Field Name Description
description - String! Human-readable explanation of the rule.
evidence - [GuidelineReference!]! Supporting evidence.
ruleId - String! Machine-readable identifier of the SGR rule that produced this requirement.
Example
{
  "description": "abc123",
  "evidence": [GuidelineReference],
  "ruleId": "abc123"
}

RunLoanPreApprovalInput

Description

Input to the runLoanPreApproval mutation.

Fields
Input Field Description
loanId - ID! The ID or friendly ID of the loan.
Example
{"loanId": "4"}

RunLoanPreApprovalResponse

Description

Response of the runLoanPreApproval mutation.

Fields
Field Name Description
preApprovalRun - PreApprovalRun
userErrors - [UserError!]!
Example
{
  "preApprovalRun": PreApprovalRun,
  "userErrors": [UserError]
}

RunLoanScriptInput

Description

Input for replaying a stored loan-script scenario.

Fields
Input Field Description
scenarioId - String! The scenario_id of the stored loan-script spec to replay.
Example
{"scenarioId": "abc123"}

RunLoanScriptResponse

Description

The result of replaying a loan-script scenario.

Fields
Field Name Description
assertions - [LoanScriptAssertionResult!]! Outcomes of the script's assertions, evaluated after the last step. Empty when the script declares none.
loanId - ID The id of the loan created by the scenario, if any.
steps - [LoanScriptStepResult!]! The per-step results, in execution order.
Example
{
  "assertions": [LoanScriptAssertionResult],
  "loanId": "4",
  "steps": [LoanScriptStepResult]
}

SatisfiedRequirement

Description

A requirement that has been satisfied by evidence or judgment.

Fields
Field Name Description
borrowerIds - [ID!]! Borrowers this requirement applies to; empty when the requirement is loan-level. A composite carries the union of its children's borrowers.
children - [Requirement!]! Child requirements of a composite, each with its own phase, recursing through nested composites so a deep tree renders as a tree. Empty for leaf requirements. Unlike fulfillmentOptions, present in every phase — a satisfied or waived composite still lists its children here.
description - String! Human-readable label for this requirement, e.g. "W2 for Acme Corp (2025)".
id - ID! Node ID
openedAt - DateTimeISO! When this requirement (re)entered its current OPEN period. A removed and later restored requirement carries the restore time, not its original creation time.
phase - RequirementPhase! Current resolution phase. Redundant with __typename but useful for client-side filtering without fragment matching.
provenance - [ProvenanceSource!]! Why this requirement exists — rule evaluation, manual condition, or data dependency.
resolution - FulfillmentResolution! How this requirement was resolved, with pinned evidence hydrated on demand.
resolvedAt - DateTimeISO! When this requirement was satisfied.
stopgapCompletedSubrequirements - [Requirement!]! Children of a satisfied composite requirement, each with its own phase and resolution. Empty for non-composite (leaf) requirements. Superseded by the recursive children field on every requirement. Retained temporarily for already-shipped clients and removed after one release.
Example
{
  "borrowerIds": [4],
  "children": [Requirement],
  "description": "abc123",
  "id": "4",
  "openedAt": "2007-12-03T10:15:30Z",
  "phase": "OPEN",
  "provenance": [ProvenanceSource],
  "resolution": FulfillmentResolution,
  "resolvedAt": "2007-12-03T10:15:30Z",
  "stopgapCompletedSubrequirements": [Requirement]
}

SavingsAccountAsset

Description

Savings account asset

Fields
Field Name Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt! The cash or market value of the asset in dollars
assetReportId - ID ID of the latest asset report that verified this asset
borrowerIds - [ID!] Ids of borrowers that are account holders on this asset
id - ID! Node ID
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
notableActivities - [FinancialAccountActivity!]! Notable activities
qualifiedAmount - NonNegativeInt The qualified amount of the asset in dollars, used for underwriting. Null if no qualification has been computed.
verifiedAmount - NonNegativeInt The verified cash or market value of the asset in dollars, confirmed by a third-party source
Example
{
  "accountIdentifier": "abc123",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "assetReportId": 4,
  "borrowerIds": [4],
  "id": 4,
  "institutionName": "abc123",
  "nonBorrowerOwnerNames": ["abc123"],
  "notableActivities": [FinancialAccountActivity],
  "qualifiedAmount": 123,
  "verifiedAmount": 123
}

Scenario

Fields
Field Name Description
fixedLoanAmountPurchasePricing - ProductPricingQuery!
pricing - ProductPricingQuery!
Arguments
purchasePricing - ProductPricingQuery!
Arguments
purchasePricingNoRestructure - ProductPricingQuery!
refinancePricing - ProductPricingQuery!
Arguments
Example
{
  "fixedLoanAmountPurchasePricing": ProductPricingQuery,
  "pricing": ProductPricingQuery,
  "purchasePricing": ProductPricingQuery,
  "purchasePricingNoRestructure": ProductPricingQuery,
  "refinancePricing": ProductPricingQuery
}

SeedAusRunInput

Description

Input for seeding a demo AUS run onto a loan.

Fields
Input Field Description
loanId - ID! The loan to seed AUS conditions onto.
scenario - String! The scenario key (from ausConditionScenarios).
Example
{"loanId": 4, "scenario": "xyz789"}

SeedAusRunResponse

Description

The result of seeding a demo AUS run.

Fields
Field Name Description
ausRunId - ID! The id of the seeded SUCCEEDED AUS run.
conditionCount - Int! How many AUS conditions were seeded.
Example
{"ausRunId": "4", "conditionCount": 987}

SeedFromDocumentsInput

Description

Ask for a fresh application to be seeded from its uploads.

Fields
Input Field Description
loanApplicationId - ID! The loan whose uploaded documents to seed from. Must be effectively unfilled: nobody beyond the point-of-contact stub, and no prior seed.
Example
{"loanApplicationId": 4}

SeedFromDocumentsResponse

Description

The outcome of asking for a seed. Resolves once the seed has been STARTED, not once it has finished — poll seedOutcome for that. A loan that is not seed-eligible is refused through userErrors, never by silently accepting.

Fields
Field Name Description
userErrors - [GenericUserError!]! What made the loan ineligible to seed (already filled, already seeded, nothing uploaded). Empty when the seed started.
workflowId - String The started seed run's id. Null exactly when userErrors is non-empty.
Example
{
  "userErrors": [GenericUserError],
  "workflowId": "abc123"
}

SeedLoanFromDocumentsInput

Description

Ask for a loan to be seeded from an explicit set of its uploaded documents.

Fields
Input Field Description
documentIds - [ID!]! The uploaded documents to read — root files only, never discovered server-side. A call arriving while a prior seeding is still running on this loan cancels it (ending it CANCELLED) and starts fresh; there is no once-per-loan limit and no 'already filled' refusal — a value already on the application is held rather than overwritten, on every field, every run.
loanApplicationId - ID! The loan to seed.
Example
{
  "documentIds": [4],
  "loanApplicationId": "4"
}

SeedLoanFromDocumentsResponse

Description

The outcome of asking for a seeding. Resolves once the run has STARTED, not once it has finished — poll documentIntake.seeding for that.

Fields
Field Name Description
seeding - DocumentSeeding The started run, PENDING. Null exactly when userErrors is non-empty.
userErrors - [GenericUserError!]! Empty when the run started. Populated only when none of the given documentIds resolve to this loan's own uploads.
Example
{
  "seeding": DocumentSeeding,
  "userErrors": [GenericUserError]
}

SeedOutcomeInput

Description

Scope for a seed outcome read.

Fields
Input Field Description
loanApplicationId - ID! The loan whose seed outcome to report.
Example
{"loanApplicationId": "4"}

SeedOutcomeResponse

Description

What one loan's seed did — counts of field KEYS and a typed refusal, NEVER field values. This surface is deliberately narrow and must not grow into an audit trail: what landed where, with which citations, is the write-receipt record's to answer, not a polling endpoint's.

Fields
Field Name Description
appliedCount - Int! Fields written onto the application, counted across every seeded borrower. Zero until the seed settles.
coBorrowerCreated - Boolean! Whether the seed minted at least one co-borrower for a second person the documents named.
contestedCount - Int! Distinct fields the documents contradicted each other about, left for a person to settle.
contestedPersonCount - Int! People the packet named who read too much like an existing borrower to mint and not enough to match — left for a person to settle. Their documents are attached but joined to nobody.
heldCount - Int! Fields held by a loan freeze, counted across borrowers.
preexistingCount - Int! Fields already holding somebody's typed value, held rather than overwritten — typed values always win.
refusal - String The typed refusal code (e.g. SEED_NO_NAMED_DOCUMENTS). Null unless status is REFUSED.
status - SeedOutcomeStatus! Where the seed has got to.
unattributedDocumentCount - Int! Documents naming nobody the run could compare — a nameless paystub, a name outside the comparable alphabet. Attached to the loan, joined to no borrower; somebody should file them by hand.
withheldCount - Int! Distinct fields read and deliberately not written — income, today.
Example
{
  "appliedCount": 123,
  "coBorrowerCreated": false,
  "contestedCount": 123,
  "contestedPersonCount": 123,
  "heldCount": 987,
  "preexistingCount": 987,
  "refusal": "xyz789",
  "status": "FAILED",
  "unattributedDocumentCount": 987,
  "withheldCount": 987
}

SeedOutcomeStatus

Description

Where one loan's seed-from-documents run has got to. Unknown members should be read as PROCESSING.

Values
Enum Value Description

FAILED

NOT_STARTED

PROCESSING

REFUSED

SETTLED

Example
"FAILED"

SeedWireOutWorksheetCaseInput

Description

Input for seeding a synthetic wire-out worksheet case.

Fields
Input Field Description
loanId - ID! A fresh development loan to populate.
sourceRow - Int! The worksheet row to reproduce.
Example
{"loanId": "4", "sourceRow": 987}

SeedWireOutWorksheetCaseResponse

Description

The result of seeding a synthetic wire-out worksheet case.

Fields
Field Name Description
expectedWireOutAmount - MonetaryAmount! The authoritative wire-out amount expected from the API.
loanId - ID! The populated development loan.
sourceRow - Int! The reproduced worksheet row.
Example
{
  "expectedWireOutAmount": MonetaryAmount,
  "loanId": "4",
  "sourceRow": 987
}

SelfEmployment

Description

Self employment

Fields
Field Name Description
business - BorrowerBusiness The associated business
employmentClassification - EmploymentClassificationType! Whether this is the borrower's primary or secondary employer
endDate - Date End date. Will be null if the employment is current.
id - ID! Employment ID
isCurrentEmployment - Boolean! Is the employment current?
numberOfMonthsInLineOfWork - NonNegativeInt The total number of months the borrower has been employed in this line of work, regardless of employer
position - String A name or description of the employment position or job title
startDate - Date Start date
Example
{
  "business": BorrowerBusiness,
  "employmentClassification": "PRIMARY",
  "endDate": "2007-12-03",
  "id": 4,
  "isCurrentEmployment": true,
  "numberOfMonthsInLineOfWork": 123,
  "position": "xyz789",
  "startDate": "2007-12-03"
}

SelfEmploymentBusinessInput

Description

Self employment business input

Fields
Input Field Description
address - AddressInput! Address
name - String! Name
percentOwnership - NonNegativeFloat! Percent of the business that the borrower owns. This field is expressed as a percent. As an example, 50.1% is expressed as 50.1.
Example
{
  "address": AddressInput,
  "name": "abc123",
  "percentOwnership": 123.45
}

SelfEmploymentIncome

Description

Self-employment income

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
employment - SelfEmployment! The associated employment
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "employment": SelfEmployment,
  "id": 4,
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": "4"
}

SelfEmploymentLossIncome

Description

Self employment loss. Amounts are the magnitude of the loss and reduce qualifying income.

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
employment - Employment The self-employment this loss is associated with
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "employment": Employment,
  "id": 4,
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": 4
}

SendBorrowerPortalInviteInput

Fields
Input Field Description
borrowerId - ID! ID of the borrower to invite
dealId - ID! ID of the deal
Example
{
  "borrowerId": "4",
  "dealId": "4"
}

SendBorrowerPortalInviteResponse

Description

Response of the send borrower portal invite mutation.

Fields
Field Name Description
expiresAt - String! ISO-8601 instant after which the invite's claim link can no longer be redeemed
Example
{"expiresAt": "xyz789"}

SendMessageInput

Fields
Input Field Description
advisorSessionId - ID!
content - String!
Example
{"advisorSessionId": 4, "content": "abc123"}

SendMessageResponse

Fields
Field Name Description
advisorCompletionJob - AdvisorCompletionJob!
Example
{"advisorCompletionJob": AdvisorCompletionJob}

SendOrganizationUserInvitationEmailInput

Fields
Input Field Description
email - String!
Example
{"email": "abc123"}

SendOrganizationUserInvitationEmailResponse

Fields
Field Name Description
userErrors - [GenericUserError!]!
Example
{"userErrors": [GenericUserError]}

SeparateMaintenanceIncome

Description

Separate maintenance income

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "id": 4,
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": "4"
}

SetBorrowerEmailVerifiedInput

Fields
Input Field Description
emailVerified - Boolean! Email verified. Default = true
id - ID! ID of the borrower to update
Example
{"emailVerified": true, "id": "4"}

SetBorrowerEmailVerifiedResponse

Fields
Field Name Description
id - ID! ID of the borrower that was updated
Example
{"id": "4"}

SetDefaultPrimaryLoanContactInput

Description

Sets the organization's default primary loan contact — the loan officer rendered on preapproval letters. Either select an existing loan contact by loanContactId, or omit it to create a new contact from the detail fields (firstName and lastName are then required).

Fields
Input Field Description
email - String E-mail address.
firstName - String First name of the new contact. Required when creating.
lastName - String Last name of the new contact. Required when creating.
loanContactId - ID Select an existing loan contact to make the default primary contact. When set, the detail fields below are ignored. When omitted, a new loan contact is created from those fields.
middleName - String Middle name.
nmlsId - String NMLS ID.
phoneNumber - String Phone number.
title - String Title or position shown on the preapproval letter.
Example
{
  "email": "abc123",
  "firstName": "xyz789",
  "lastName": "abc123",
  "loanContactId": 4,
  "middleName": "xyz789",
  "nmlsId": "xyz789",
  "phoneNumber": "abc123",
  "title": "abc123"
}

SetDefaultPrimaryLoanContactResponse

Fields
Field Name Description
defaultPrimaryLoanContact - LoanContact! The organization's default primary loan contact after the update.
Example
{"defaultPrimaryLoanContact": LoanContact}

SetExclusionReasonInput

Description

Update a Liability. Fields with non-null values will be updated, the rest will be ignored.

Fields
Input Field Description
exclusionReason - LiabilityExclusionReason The reason why the liability is excluded
id - ID! Liability ID
Example
{"exclusionReason": "ASSIGNED_TO_ANOTHER_PARTY", "id": 4}

SetExclusionReasonResponse

Description

Response of the setExclusionReason mutation.

Fields
Field Name Description
liability - Liability! The updated Liability
Example
{"liability": Liability}

SetIntentInput

Description

Update a Liability. Fields with non-null values will be updated, the rest will be ignored.

Fields
Input Field Description
id - ID! Liability ID
intent - LiabilityIntent The intent regarding liability
Example
{"id": "4", "intent": "DO_NOTHING"}

SetIntentResponse

Description

Response of the setIntent mutation.

Fields
Field Name Description
liability - Liability! The updated Liability
Example
{"liability": Liability}

SetLoanOfficerSlugInput

Description

Input to the setLoanOfficerSlug mutation

Fields
Input Field Description
id - ID! The ID of the GlobalLoanOfficer to update
slug - String! The slug to set on the GlobalLoanOfficer.
Example
{"id": 4, "slug": "abc123"}

SetLoanOfficerSlugResponse

Description

Response of the setLoanOfficerSlug mutation

Fields
Field Name Description
globalLoanOfficer - GlobalLoanOfficer! The updated GlobalLoanOfficer.
Example
{"globalLoanOfficer": GlobalLoanOfficer}

SetOrganizationApiAccessStatusInput

Fields
Input Field Description
status - CustomerApiAccessStatus! The API access status to set for the current organization.
Example
{"status": "ACTIVE"}

SetOrganizationApiAccessStatusResponse

Fields
Field Name Description
apiAccessStatus - CustomerApiAccessStatus! The organization's API access status after the change.
Example
{"apiAccessStatus": "ACTIVE"}

SetSubjectPropertyFirstLienInput

Fields
Input Field Description
id - ID! The ID of the subject property
liabilityId - ID! The ID of first lien on the subject property
Example
{"id": "4", "liabilityId": 4}

SetSubjectPropertyFirstLienResponse

Fields
Field Name Description
subjectProperty - SubjectProperty! Updated subject property
Example
{"subjectProperty": SubjectProperty}

SetUseOwnTitleCompanyInput

Description

Input to the setUseOwnTitleCompany mutation.

Fields
Input Field Description
loanId - ID! The ID or friendly ID of the loan.
useOwnTitleCompany - Boolean! Whether the borrower wants to use their own title company. Default = false
Example
{"loanId": 4, "useOwnTitleCompany": false}

SetUseOwnTitleCompanyResponse

Description

Response of the setUseOwnTitleCompany mutation.

Fields
Field Name Description
loanId - ID! The ID or friendly ID of the loan.
useOwnTitleCompany - Boolean! Whether the borrower wants to use their own title company
Example
{"loanId": "4", "useOwnTitleCompany": false}

Sex

Values
Enum Value Description

FEMALE

MALE

Example
"FEMALE"

SocialSecurityIncome

Description

Social Security income

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "id": "4",
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": 4
}

SortDirection

Description

The direction in which to sort a collection of items (ascending or descending).

Values
Enum Value Description

ASC

DESC

Example
"ASC"

StandardEmployment

Description

Standard employment

Fields
Field Name Description
borrowerHasSpecialRelationshipWithEmployer - Boolean! When true, indicates that the borrower has a special relationship with the employer, such as familial ties
employer - Employer! The borrower's employer
employmentClassification - EmploymentClassificationType! Whether this is the borrower's primary or secondary employer
endDate - Date End date. Will be null if the employment is current.
id - ID! Node ID
incomePayType - IncomePayType The type of pay (hourly or salaried)
isCurrentEmployment - Boolean! Is the employment current?
numberOfMonthsInLineOfWork - NonNegativeInt The total number of months the borrower has been employed in this line of work, regardless of employer
position - String A name or description of the employment position or job title
startDate - Date Start date
Example
{
  "borrowerHasSpecialRelationshipWithEmployer": false,
  "employer": Employer,
  "employmentClassification": "PRIMARY",
  "endDate": "2007-12-03",
  "id": 4,
  "incomePayType": "HOURLY",
  "isCurrentEmployment": true,
  "numberOfMonthsInLineOfWork": 123,
  "position": "abc123",
  "startDate": "2007-12-03"
}

StandardEmploymentIncome

Description

Standard employment income

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
employment - StandardEmployment! The associated employment
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "employment": StandardEmployment,
  "id": 4,
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": "4"
}

StartAnalyticsExportJobInput

Fields
Input Field Description
format - AnalyticsExportFormat!
root - AnalyticsExportRoot!
Example
{"format": "CSV", "root": "LOAN_APPLICATIONS"}

StartAnalyticsExportJobResponse

Fields
Field Name Description
job - AnalyticsExportJob!
Example
{"job": AnalyticsExportJob}

StartBulkLoanDocumentsExportInput

Description

Input to the startBulkLoanDocumentsExport mutation.

Fields
Input Field Description
documentIds - [ID!]! Document IDs to export, as returned by Document.id.
includeDisclosurePackages - Boolean Whether to include disclosure packages in the export ZIP.
loanId - ID! The ID of the loan whose documents should be exported.
Example
{"documentIds": [4], "includeDisclosurePackages": false, "loanId": 4}

StartBulkLoanDocumentsExportResponse

Description

Response of the startBulkLoanDocumentsExport mutation.

Fields
Field Name Description
job - BulkLoanDocumentsExportJob! The created bulk loan documents export job.
Example
{"job": BulkLoanDocumentsExportJob}

StartIndividualCreditPullJobInput

Description

Input to start a hard credit pull job for an individual

Fields
Input Field Description
borrower - CreditPullBorrowerInput! Credit pull borrower
creditReportId - String Vendor case number of an existing credit report to import. When set, the job retrieves that report instead of placing a new credit order.
pullType - CreditPullType Type of credit to pull (soft or hard)
Example
{
  "borrower": CreditPullBorrowerInput,
  "creditReportId": "xyz789",
  "pullType": "HARD"
}

StartIndividualCreditPullJobResponse

Description

Response of the startIndividualHardCreditPullJob mutation

Fields
Field Name Description
job - CreditPullJob Credit pull job
userErrors - [String!] User errors preventing credit pull
Example
{
  "job": CreditPullJob,
  "userErrors": ["abc123"]
}

StartJointCreditPullJobInput

Description

Input to start a joint hard credit pull job for two co-borrowers on the same loan application

Fields
Input Field Description
borrower1 - CreditPullBorrowerInput! The first of two borrowers to be included in the joint credit report. Must be on the same loan application as borrower2.
borrower2 - CreditPullBorrowerInput! The second of two borrowers to be included in the joint credit report. Must be on the same loan application as borrower1.
creditReportId - String Vendor case number of an existing credit report to import. When set, the job retrieves that report instead of placing a new credit order.
pullType - CreditPullType Type of credit to pull (soft or hard)
Example
{
  "borrower1": CreditPullBorrowerInput,
  "borrower2": CreditPullBorrowerInput,
  "creditReportId": "xyz789",
  "pullType": "HARD"
}

StartJointCreditPullJobResponse

Description

Response of the startJointHardCreditPullJob mutation

Fields
Field Name Description
job - CreditPullJob Credit pull job
userErrors - [String!] User errors preventing credit pull
Example
{
  "job": CreditPullJob,
  "userErrors": ["abc123"]
}

StartLpaKnownRulesBackfillInput

Fields
Input Field Description
afterAusRunId - ID Cursor returned by the previous backfill execution.
maxRuns - PositiveInt! Maximum number of historical AUS runs to process.
Example
{"afterAusRunId": 4, "maxRuns": 123}

StartLpaKnownRulesBackfillResponse

Fields
Field Name Description
workflowId - String!
Example
{"workflowId": "xyz789"}

StateAbbreviated

Description

US state in two-letter abbreviated format

Values
Enum Value Description

AK

AL

AR

AZ

CA

CO

CT

DC

DE

FL

GA

HI

IA

ID

IL

IN

KS

KY

LA

MA

MD

ME

MI

MN

MO

MS

MT

NC

ND

NE

NH

NJ

NM

NV

NY

OH

OK

OR

PA

RI

SC

SD

TN

TX

UT

VA

VT

WA

WI

WV

WY

Example
"AK"

StateCodeComparator

Description

Comparisons available on a US state code.

Fields
Input Field Description
eq - String
in - [String!]
isNull - Boolean
neq - String
nin - [String!]
null - Boolean
Example
{
  "eq": "abc123",
  "in": ["xyz789"],
  "isNull": false,
  "neq": "abc123",
  "nin": ["abc123"],
  "null": false
}

StateLicense

Fields
Field Name Description
expirationDate - DateTime!
id - ID!
licenseNumber - String!
Example
{
  "expirationDate": "2007-12-03T10:15:30Z",
  "id": 4,
  "licenseNumber": "xyz789"
}

StateLicenseInput

Fields
Input Field Description
expirationDate - DateTime!
id - ID
licenseNumber - String!
Example
{
  "expirationDate": "2007-12-03T10:15:30Z",
  "id": "4",
  "licenseNumber": "xyz789"
}

StatusLpaKnownRulesBackfillInput

Fields
Input Field Description
workflowId - ID!
Example
{"workflowId": 4}

StatusLpaKnownRulesBackfillResponse

Fields
Field Name Description
hasMore - Boolean
nextCursor - ID
status - String!
totalCataloged - NonNegativeInt
totalErrors - NonNegativeInt
totalProcessed - NonNegativeInt
totalSkipped - NonNegativeInt
workflowId - ID!
Example
{
  "hasMore": false,
  "nextCursor": 4,
  "status": "abc123",
  "totalCataloged": 123,
  "totalErrors": 123,
  "totalProcessed": 123,
  "totalSkipped": 123,
  "workflowId": 4
}

StockAsset

Description

Stock asset

Fields
Field Name Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt! The cash or market value of the asset in dollars
assetReportId - ID ID of the latest asset report that verified this asset
borrowerIds - [ID!] Ids of borrowers that are account holders on this asset
id - ID! Node ID
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
notableActivities - [FinancialAccountActivity!]! Notable activities
qualifiedAmount - NonNegativeInt The qualified amount of the asset in dollars, used for underwriting. Null if no qualification has been computed.
verifiedAmount - NonNegativeInt The verified cash or market value of the asset in dollars, confirmed by a third-party source
Example
{
  "accountIdentifier": "xyz789",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "assetReportId": "4",
  "borrowerIds": [4],
  "id": 4,
  "institutionName": "abc123",
  "nonBorrowerOwnerNames": ["xyz789"],
  "notableActivities": [FinancialAccountActivity],
  "qualifiedAmount": 123,
  "verifiedAmount": 123
}

StockOptionsAsset

Description

Stock options asset

Fields
Field Name Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt! The cash or market value of the asset in dollars
assetReportId - ID ID of the latest asset report that verified this asset
borrowerIds - [ID!] Ids of borrowers that are account holders on this asset
id - ID! Node ID
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
notableActivities - [FinancialAccountActivity!]! Notable activities
qualifiedAmount - NonNegativeInt The qualified amount of the asset in dollars, used for underwriting. Null if no qualification has been computed.
verifiedAmount - NonNegativeInt The verified cash or market value of the asset in dollars, confirmed by a third-party source
Example
{
  "accountIdentifier": "xyz789",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "assetReportId": "4",
  "borrowerIds": ["4"],
  "id": 4,
  "institutionName": "abc123",
  "nonBorrowerOwnerNames": ["abc123"],
  "notableActivities": [FinancialAccountActivity],
  "qualifiedAmount": 123,
  "verifiedAmount": 123
}

StrawBuyerFraudConditionBlocker

Description

Straw buyer fraud condition detected

Fields
Field Name Description
type - String!
Example
{"type": "abc123"}

String

Description

The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.

Example
"xyz789"

StructureValidation

Fields
Field Name Description
experiment - StructureValidationDebugResult
Arguments
loanId - ID!
Example
{"experiment": StructureValidationDebugResult}

StructureValidationDebugResult

Fields
Field Name Description
newDti - Float
newLtv - Float
valid - Boolean!
Example
{"newDti": 987.65, "newLtv": 987.65, "valid": true}

StructureValidationOverride

Fields
Input Field Description
purchasePrice - PositiveInt
Example
{"purchasePrice": 123}

StructuringError

Fields
Field Name Description
loanTermYears - PositiveInt! The term length of the loan, in years
lock - PositiveInt! The number of days this rate can be locked for.
product - Product! The product to which these calculations apply.
publishedAt - DateTimeISO! The date and time that rates for this product were published.
publishedOn - Date! The date that rates for this product were published. Use publishedAt for full timestamp precision.
rate - Float! The interest rate as a percentage.
rateId - ID! The ID of the rate.
unsatisfiabilityDetails - [ProductStructureUnsatisfiabilityDetails!]!
Example
{
  "loanTermYears": 123,
  "lock": 123,
  "product": Product,
  "publishedAt": "2007-12-03T10:15:30Z",
  "publishedOn": "2007-12-03",
  "rate": 987.65,
  "rateId": "4",
  "unsatisfiabilityDetails": [GuidelineViolation]
}

StructuringResult

Example
EligibleProductStructure

SubjectProperty

Fields
Field Name Description
address - Address US Address
attachmentType - AttachmentEnum Whether the property is physically attached to neighboring units
avmEstimatedValue - NonNegativeInt The model estimated value of the property
avmProvider - String The model that provided estimated value of the property
borrowerSpecifiedMonthlyPropertyTaxes - NonNegativeInt The borrower-specified monthly property taxes
firstLienAmount - NonNegativeInt The remaining balance on the first lien of the property
firstLienLiabilityId - ID The ID of the first lien on the property
hoaDues - NonNegativeInt The monthly HOA dues of the property
homeInsuranceMonthlyAmount - NonNegativeInt The monthly home insurance premium associated with this property
homeInsuranceMonthlyAmountEstimate - PositiveFloat Pylon's own estimate of the monthly home insurance premium, derived from the purchase price on a purchase and the estimated value on a refinance. This is what Pylon prices and discloses against when homeInsuranceMonthlyAmount is null. Null when there is no value to derive it from.
id - ID! Node ID
isManufacturedHome - Boolean Marks a subject property as a manufactured home
isMixedUse - Boolean Marks a subject property as having a mixed-use character
isPlannedUnitDevelopment - Boolean Marks a subject property as being part of a planned unit development
liabilities - [Liability!]! The liabilities associated with the subject property
manuallyEstimatedValue - NonNegativeInt The manually estimated value of the property
neighborhoodHousingType - NeighborhoodHousingType The type of property
numberOfUnits - NonNegativeInt The number of dwelling units on the property
propertyTaxesAndInsuranceIncludedInPayment - Boolean Is Property taxes and insurance included in payment
rentalEstimatedGrossMonthlyRentAmount - NonNegativeInt The estimated gross monthly rent amount (for investment properties)
subjectPropertyIntent - SubjectPropertyIntent!
Example
{
  "address": Address,
  "attachmentType": "ATTACHED",
  "avmEstimatedValue": 123,
  "avmProvider": "xyz789",
  "borrowerSpecifiedMonthlyPropertyTaxes": 123,
  "firstLienAmount": 123,
  "firstLienLiabilityId": "4",
  "hoaDues": 123,
  "homeInsuranceMonthlyAmount": 123,
  "homeInsuranceMonthlyAmountEstimate": 123.45,
  "id": "4",
  "isManufacturedHome": true,
  "isMixedUse": true,
  "isPlannedUnitDevelopment": true,
  "liabilities": [Liability],
  "manuallyEstimatedValue": 123,
  "neighborhoodHousingType": "CONDOMINIUM",
  "numberOfUnits": 123,
  "propertyTaxesAndInsuranceIncludedInPayment": true,
  "rentalEstimatedGrossMonthlyRentAmount": 123,
  "subjectPropertyIntent": SubjectPropertyIntent
}

SubjectPropertyIntent

Description

SubjectPropertyIntent

Fields
Field Name Description
county - County The county in which the borrower(s) intend to purchase
id - ID! The ID of the SubjectPropertyIntent
isPlannedUnitDevelopment - Boolean Marks a subject property as being part of a planned unit development Use SubjectProperty to read and update this field
neighborhoodHousingType - NeighborhoodHousingType The type of housing
propertyUsageType - PropertyUsageType How the borrower(s) intend to use the property
state - StateAbbreviated Abbreviated US state name (including DC)
Example
{
  "county": County,
  "id": "4",
  "isPlannedUnitDevelopment": true,
  "neighborhoodHousingType": "CONDOMINIUM",
  "propertyUsageType": "INVESTMENT",
  "state": "AK"
}

SubjectPropertyMutations

Fields
Field Name Description
addSubjectPropertyIntent - AddSubjectPropertyIntentResponse Update a SubjectPropertyIntent. Fields with non-null values will be updated, the rest will be ignored.
Arguments
attachAddress - AttachSubjectPropertyAddressResponse Attaches street-level address to a subject property.
attachLiabilities - AttachSubjectPropertyLiabilitiesResponse Attach liabilities to the subject property.
create - CreateSubjectPropertyResponse Create a new subject property
Arguments
detachAddress - DetachSubjectPropertyAddressResponse Detach the address from a subject property.
detachLiabilities - DetachSubjectPropertyLiabilitiesResponse Detach liabilities from the subject property.
setFirstLien - SetSubjectPropertyFirstLienResponse Add first lien to a subject property.
unsetFirstLien - UnsetSubjectPropertyFirstLienResponse Remove first lien from a subject property.
update - UpdateSubjectPropertyResponse Update a SubjectProperty. Fields with non-null values will be updated, the rest will be ignored.
Arguments
updateSubjectPropertyIntent - UpdateSubjectPropertyIntentResponse Update a SubjectPropertyIntent. Fields with non-null values will be updated, the rest will be ignored.
Example
{
  "addSubjectPropertyIntent": AddSubjectPropertyIntentResponse,
  "attachAddress": AttachSubjectPropertyAddressResponse,
  "attachLiabilities": AttachSubjectPropertyLiabilitiesResponse,
  "create": CreateSubjectPropertyResponse,
  "detachAddress": DetachSubjectPropertyAddressResponse,
  "detachLiabilities": DetachSubjectPropertyLiabilitiesResponse,
  "setFirstLien": SetSubjectPropertyFirstLienResponse,
  "unsetFirstLien": UnsetSubjectPropertyFirstLienResponse,
  "update": UpdateSubjectPropertyResponse,
  "updateSubjectPropertyIntent": UpdateSubjectPropertyIntentResponse
}

SubjectPropertyNetCashFlowIncome

Description

Subject property net cash flow income

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "id": 4,
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": "4"
}

SubmitCounterAssessmentInput

Fields
Input Field Description
assertionId - String! Client-supplied per-act draft id (the draft-once model): held in client state while the underwriter drafts, sent unchanged on every retry of the same Save. Citation ids and the assertion's content-addressed edge id derive from it, so a double-click or network retry is a structural no-op; a revised payload under a new draft id is a new assertion.
citations - [CounterAssessmentCitationInput!]! Citations grounding the assessment. Required toward FULFILLED for kinds that argue from documents (gates and computed kinds are exempt).
reasoning - String! The underwriter's reasoning.
requirementId - ID! The requirement being assessed.
verdict - UnderwriterVerdict! The underwriter's verdict on the requirement.
Example
{
  "assertionId": "xyz789",
  "citations": [CounterAssessmentCitationInput],
  "reasoning": "xyz789",
  "requirementId": "4",
  "verdict": "FULFILLED"
}

SubmitCounterAssessmentResponse

Description

Result of submitting a counter-assessment.

Fields
Field Name Description
citationIds - [ID!]! The persisted citation ids, in input order — deterministic per (assertionId, ordinal), so a retry returns the identical ids.
evidenceId - ID! The underwriter assertion's content-addressed edge id.
requirement - Requirement The affected requirement's post-reconcile subtree (adversarial-review ruling 2): every review mutation reconciles inline, so the caller can render the new phase without a refetch. Null when the requirement row no longer exists (evicted or not yet minted).
warnings - [UnderwritingReviewWarning!]! Non-fatal warnings about the write. Empty on a clean write.
Example
{
  "citationIds": [4],
  "evidenceId": 4,
  "requirement": Requirement,
  "warnings": ["TARGET_SUPERSEDED"]
}

SubmitUnderwritingNotesInput

Description

Input to the submitUnderwritingNotes mutation.

Fields
Input Field Description
loanId - ID! The ID or friendly ID of the loan.
notes - String Notes submitted with the underwriting run (max 10000 characters, measured as UTF-8 bytes so accented characters and emoji count extra)
routeToUnderwriting - Boolean The explicit submit-for-underwriting action; routes the loan into Underwriting even from a later stage. Left unset by the document-upload dialog, whose notes must never move the stage backward.
taskGateOverride - UnderwritingTaskGateOverrideInput Submit despite an unmet task-completion gate. Only honored together with routeToUnderwriting; refused with LOAN_UNAUTHORIZED_ACCESS for callers without the internal administrator scope.
Example
{
  "loanId": "4",
  "notes": "xyz789",
  "routeToUnderwriting": true,
  "taskGateOverride": UnderwritingTaskGateOverrideInput
}

SubmitUnderwritingNotesResponse

Description

Response of the submitUnderwritingNotes mutation.

Fields
Field Name Description
jobId - ID Always null. The automatic conditional approval feature this job ID belonged to has been removed. The automatic conditional approval feature has been removed; this field is always null.
notes - String Notes submitted with the underwriting run
Example
{"jobId": 4, "notes": "abc123"}

SupportAdminIssueType

Description

An issue type as administrators see it: includes retired entries and the Plain link state hidden from customer-facing discovery.

Fields
Field Name Description
displayName - String! Human-readable issue type name.
isActive - Boolean! Retired issue types stay listed here but reject filing.
key - ID! Stable key filers pass as issueType.
vendorId - ID Backing support-system label type id; null until first use links it.
Example
{
  "displayName": "xyz789",
  "isActive": false,
  "key": 4,
  "vendorId": 4
}

SupportAdminMutations

Description

Root type for Pylon-internal support administration.

Fields
Field Name Description
addIssueType - AddIssueTypeResponse Register a new issue type (or reactivate a previously deleted one). The backing Plain label is linked lazily on first use.
Arguments
deleteIssueType - DeleteIssueTypeResponse Retire an issue type: it leaves discovery and filing rejects its key. Idempotent for an already-retired one; labels applied to existing threads are unaffected.
Arguments
importIssueType - ImportIssueTypeResponse Register an issue type from an existing Plain label type, linked immediately (no lazy sync).
Arguments
Example
{
  "addIssueType": AddIssueTypeResponse,
  "deleteIssueType": DeleteIssueTypeResponse,
  "importIssueType": ImportIssueTypeResponse
}

SupportAdminQueries

Description

Root type for Pylon-internal support administration queries.

Fields
Field Name Description
issueTypes - [SupportAdminIssueType!]! Every issue type, retired ones included, with its escalation and link state.
Example
{"issueTypes": [SupportAdminIssueType]}

SupportDocumentUpload

Description

A target for uploading a support document.

Fields
Field Name Description
expiresAt - String! When the upload slot expires if no file is posted (ISO-8601).
uploadUrl - String! URL to POST the file to as multipart/form-data (a single "files" field), authenticated the same way as this request. The response contains the stored document's id, which can then be attached to tickets and messages any number of times.
Example
{
  "expiresAt": "xyz789",
  "uploadUrl": "xyz789"
}

SupportIssueType

Description

An issue type available when filing a ticket.

Fields
Field Name Description
displayName - String! Human-readable issue type name.
id - ID! Stable key to pass as issueType when filing a ticket (e.g. PRE_LOCK).
Example
{
  "displayName": "xyz789",
  "id": "4"
}

SupportMessageAuthor

Description

Who posted a support-ticket message: a requester on the filing customer's side, or the support team.

Values
Enum Value Description

REQUESTER

SUPPORT

Example
"REQUESTER"

SupportMutations

Description

Root type for support mutations.

Fields
Field Name Description
addSupportMessage - AddSupportMessageResponse Add a message to an existing ticket's thread.
Arguments
createSupportTicket - CreateSupportTicketResponse File a loan-specific support ticket. Creates a Plain thread with the given label, requester identity, and question body.
Arguments
requestSupportDocumentUpload - RequestSupportDocumentUploadResponse Register a support-attachment upload and get the URL to POST the file to. Reference the returned uploadId in createSupportTicket.attachmentUploadIds once the file is uploaded.
Example
{
  "addSupportMessage": AddSupportMessageResponse,
  "createSupportTicket": CreateSupportTicketResponse,
  "requestSupportDocumentUpload": RequestSupportDocumentUploadResponse
}

SupportQueries

Description

Root type for support queries.

Fields
Field Name Description
issueTypes - [SupportIssueType!]! The set of issue types available when filing a ticket.
pylonTeam - PylonTeam! The loan's Pylon team as assigned in the loan system.
Arguments
loanApplicationId - ID!

The loan: its Pylon id or friendly loan id.

supportTicket - SupportTicket! Read a single ticket (with its current Plain status) by id.
Arguments
id - ID!
supportTicketMessages - [SupportTicketMessage!]! A ticket's conversation, oldest first: the messages filed through this API and the support team's replies.
Arguments
ticketId - ID!

The ticket id (Plain thread id).

supportTickets - SupportTicketConnection! A page of the calling customer's tickets, ordered by creation time (newest first unless sortDirection says otherwise).
Arguments
after - String

A cursor value that indicates the position after which items should be returned. Typically this should be the 'endCursor' of the previous page.

before - String

A cursor value that indicates the position before which items should be returned. Typically this should be the 'startCursor' of the following page.

first - Int

The number of items to be retrieved for forward pagination. Either 'first' or 'last' must be specified, but not both. This value must be between 1 and 50.

last - Int

The number of items to be retrieved for backward pagination. Either 'first' or 'last' must be specified, but not both. This value must be between 1 and 50.

sortDirection - SortDirection

The direction in which the results should be sorted. Defaults to DESC (newest tickets first).

supportTicketsForLoan - [SupportTicket!]! All tickets associated with a given loan.
Arguments
loanApplicationId - ID!

The loan: its Pylon id or friendly loan id.

Example
{
  "issueTypes": [SupportIssueType],
  "pylonTeam": PylonTeam,
  "supportTicket": SupportTicket,
  "supportTicketMessages": [SupportTicketMessage],
  "supportTickets": SupportTicketConnection,
  "supportTicketsForLoan": [SupportTicket]
}

SupportRecipient

Description

An extra email address copied on a support-ticket message.

Fields
Field Name Description
email - String! The recipient's email address.
name - String The recipient's display name, when known.
Example
{
  "email": "abc123",
  "name": "abc123"
}

SupportRecipientInput

Description

An extra email address to copy on a support-ticket message.

Fields
Input Field Description
email - String! The recipient's email address.
name - String The recipient's display name, shown on the email.
Example
{
  "email": "abc123",
  "name": "xyz789"
}

SupportTicket

Description

A support ticket. Backed by a Plain thread, which is the system of record.

Fields
Field Name Description
id - ID! Unique identifier of the ticket (the Plain thread id).
loanApplicationId - ID The loan application this ticket is about, if any.
lockedAt - DateTime When the support desk locked the ticket; null while it accepts replies. A lock is permanent and a locked ticket rejects addSupportMessage; open a new ticket instead.
reference - String Human-readable ticket reference (e.g. T-1234).
status - String! Ticket status, passed through from Plain as-is.
title - String! Ticket title.
Example
{
  "id": 4,
  "loanApplicationId": 4,
  "lockedAt": "2007-12-03T10:15:30Z",
  "reference": "abc123",
  "status": "abc123",
  "title": "xyz789"
}

SupportTicketConnection

Description

A page of the calling customer's support tickets.

Fields
Field Name Description
edges - [SupportTicketEdge!]!
pageInfo - PageInfo!
totalCount - Int! Total tickets matching the query, across all pages. Unaffected by first/last/after/before.
Example
{
  "edges": [SupportTicketEdge],
  "pageInfo": PageInfo,
  "totalCount": 123
}

SupportTicketEdge

Fields
Field Name Description
cursor - ID!
node - SupportTicket!
Example
{"cursor": 4, "node": SupportTicket}

SupportTicketMessage

Description

A message on a support ticket's thread.

Fields
Field Name Description
additionalRecipients - [SupportRecipient!]! Extra addresses copied on the message, beyond the support desk and the requester.
author - SupportMessageAuthor! Which side of the conversation posted the message.
authorEmail - String Email address the message was sent from, when known.
authorName - String Display name of the sender, when known.
id - ID! Unique identifier of the message.
sentAt - String! When the message was posted (ISO-8601).
text - String! The message body as plain text (empty for attachment-only messages).
Example
{
  "additionalRecipients": [SupportRecipient],
  "author": "REQUESTER",
  "authorEmail": "xyz789",
  "authorName": "xyz789",
  "id": 4,
  "sentAt": "xyz789",
  "text": "abc123"
}

SystemResolution

Description

Resolved by the system — stage gate completed, waiting period elapsed, or precondition met.

Fields
Field Name Description
assertions - [Assertion!]! The satisfying assertion(s) pinned at resolution time.
description - String! Human-readable summary.
method - String! Resolution method identifier. Superseded by assertions. Retained temporarily for already-shipped clients and removed after one release.
Example
{
  "assertions": [Assertion],
  "description": "abc123",
  "method": "xyz789"
}

TaskAssignee

Values
Enum Value Description

BORROWER

LOAN_OFFICER

PRIMARY_BORROWER

PROCESSOR

Example
"BORROWER"

TaskEntityDetails

Description

Details about the entity associated with a task. Deprecated for BorrowerTask: prefer BorrowerTask.relatedEntity, which resolves the associated entity as a Node whose own fields can be queried directly.

Fields
Field Name Description
borrowerId - ID The borrower ID associated with the task.
borrowerName - String The borrower nameassociated with the task.
entityDisplayName - String Display name of the entity associated with the task.
entityKind - String The type of entity associated with the task.
Example
{
  "borrowerId": "4",
  "borrowerName": "abc123",
  "entityDisplayName": "abc123",
  "entityKind": "abc123"
}

TaskStatus

Values
Enum Value Description

AutomaticallyCancelled

Completed

InProgress

ManuallyCancelled

NotStarted

Example
"AutomaticallyCancelled"

TaskType

Values
Enum Value Description

DataVerification

DocumentDiscrepancies

DocumentProcessing

DocumentRequired

IncomeReview

InputRequired

ScenarioChange

ServiceOrder

SimpleInstructions

Example
"DataVerification"

TaxIdentifierNumberType

Description

Tax identifier number type

Values
Enum Value Description

INDIVIDUAL_TAXPAYER_IDENTIFICATION_NUMBER

SOCIAL_SECURITY_NUMBER

Example
"INDIVIDUAL_TAXPAYER_IDENTIFICATION_NUMBER"

TemporaryLeaveIncome

Description

Temporary leave income

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "id": 4,
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": 4
}

TenPercentBucketExceededReason

Description

§1026.19(e)(3)(ii): the bucket total breached ten percent. The test is on the sum, so no single line is at fault.

Fields
Field Name Description
allowanceAmount - MonetaryAmount!
contributors - [DisclosureDriftFeeIdentity!]! The lines that moved.
currentTotalAmount - MonetaryAmount!
disclosedTotalAmount - MonetaryAmount!
excessAmount - MonetaryAmount!
kind - DisclosureDriftReasonKind!
Example
{
  "allowanceAmount": MonetaryAmount,
  "contributors": [DisclosureDriftFeeIdentity],
  "currentTotalAmount": MonetaryAmount,
  "disclosedTotalAmount": MonetaryAmount,
  "excessAmount": MonetaryAmount,
  "kind": "APR_INACCURATE"
}

TextComparator

Description

Comparisons available on a text field.

Fields
Input Field Description
contains - String
containsIgnoreCase - String
endsWith - String
eq - String
eqIgnoreCase - String
in - [String!]
isNull - Boolean
neq - String
neqIgnoreCase - String
nin - [String!]
notContains - String
notContainsIgnoreCase - String
notEndsWith - String
notStartsWith - String
null - Boolean
search - String
startsWith - String
startsWithIgnoreCase - String
Example
{
  "contains": "xyz789",
  "containsIgnoreCase": "xyz789",
  "endsWith": "xyz789",
  "eq": "xyz789",
  "eqIgnoreCase": "xyz789",
  "in": ["xyz789"],
  "isNull": false,
  "neq": "xyz789",
  "neqIgnoreCase": "xyz789",
  "nin": ["xyz789"],
  "notContains": "abc123",
  "notContainsIgnoreCase": "abc123",
  "notEndsWith": "abc123",
  "notStartsWith": "abc123",
  "null": false,
  "search": "abc123",
  "startsWith": "xyz789",
  "startsWithIgnoreCase": "xyz789"
}

ThawLoanInput

Description

Input to the thaw mutation.

Fields
Input Field Description
loanId - ID! The ID or friendly ID of the loan.
Example
{"loanId": 4}

ThawLoanResponse

Description

Response of the thaw mutation.

Fields
Field Name Description
loan - Loan! The loan
Example
{"loan": Loan}

TimeoutBlocker

Description

Timeout occurred during conditional approval check

Fields
Field Name Description
type - String!
Example
{"type": "abc123"}

TipIncome

Description

Tip income

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
employmentId - ID The employment this income is associated with
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "employmentId": "4",
  "id": 4,
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": 4
}

Title

Description

Information about the title associated with a loan.

Fields
Field Name Description
agents - [Contact!]! List of title agents.
clearedToCloseAt - Date Date the title was cleared to close.
commitmentReceivedAt - DateTime Date the title commitment was received from the title company.
documents - [Document!]! Documents associated with the title.
orderedAt - DateTime Date the title order was placed with the title company.
policyEffectiveAt - Date Effective date listed on the title insurance policy.
policyReceivedAt - Date Date the title insurance policy document was received.
Example
{
  "agents": [Contact],
  "clearedToCloseAt": "2007-12-03",
  "commitmentReceivedAt": "2007-12-03T10:15:30Z",
  "documents": [Document],
  "orderedAt": "2007-12-03T10:15:30Z",
  "policyEffectiveAt": "2007-12-03",
  "policyReceivedAt": "2007-12-03"
}

TitleVendor

Fields
Field Name Description
contactInfo - TitleVendorContactInfo! Contact information for the title vendor
name - String! The name of the title vendor company
relationType - TitleVendorRelationType! Type of services provided by this title vendor
Example
{
  "contactInfo": TitleVendorContactInfo,
  "name": "abc123",
  "relationType": "CLOSING_ONLY"
}

TitleVendorContactInfo

Fields
Field Name Description
address - String Street address of the title vendor
city - String City where the title vendor is located
email - String Email address of the title vendor
licenseNumber - String License number of the title vendor
pointOfContact - TitleVendorPointOfContact Point of contact information for the title vendor
state - StateAbbreviated State where the title vendor is located
website - String Website URL of the title vendor
zip - String ZIP code of the title vendor
Example
{
  "address": "xyz789",
  "city": "abc123",
  "email": "xyz789",
  "licenseNumber": "abc123",
  "pointOfContact": TitleVendorPointOfContact,
  "state": "AK",
  "website": "abc123",
  "zip": "xyz789"
}

TitleVendorPointOfContact

Fields
Field Name Description
contactName - String Contact person name at the title vendor
phone - String Phone number for the title vendor
Example
{
  "contactName": "xyz789",
  "phone": "abc123"
}

TitleVendorRelationType

Description

Type of services provided by the title vendor

Values
Enum Value Description

CLOSING_ONLY

Only provides closing/settlement/escrow service. A separate title agent would be necessary for title insurance.

FULL_SERVICE

Full service title agent. Provides closing/settlement/escrow services and title insurance. No other agent is necessary for a closing.

TITLE_ONLY

Title only. An escrow/closing/settlement agent will also be necessary.

UNKNOWN

Unknown or unspecified relation type.
Example
"CLOSING_ONLY"

TitleVendorsInput

Fields
Input Field Description
addressLine - String Property address
county - String! County where the property is located
purpose - LoanPurposeType! Purpose of the loan transaction
state - StateAbbreviated! State code where the property is located
township - String Township where the property is located
Example
{
  "addressLine": "abc123",
  "county": "abc123",
  "purpose": "PURCHASE",
  "state": "AK",
  "township": "xyz789"
}

ToggleCustomerCommsOptInInput

Fields
Input Field Description
commsId - ID!
optIn - Boolean!
Example
{"commsId": 4, "optIn": true}

ToggleCustomerCommsOptInResponse

Fields
Field Name Description
commsId - ID!
newOptIn - Boolean!
Example
{"commsId": "4", "newOptIn": false}

ToggleEnabledLoanProductInput

Fields
Input Field Description
enabled - Boolean!
product - PreapprovalProduct!
Example
{"enabled": true, "product": "BayviewBayviewJumboAus"}

ToggleEnabledLoanProductResponse

Fields
Field Name Description
enabledLoanProducts - [PreapprovalProduct!]!
Example
{"enabledLoanProducts": ["BayviewBayviewJumboAus"]}

TogglePlaidProductInput

Fields
Input Field Description
enabled - Boolean!
product - EnabledPlaidProduct!
Example
{"enabled": true, "product": "ASSETS"}

TogglePlaidProductResponse

Fields
Field Name Description
enabledPlaidProducts - [EnabledPlaidProduct!]!
Example
{"enabledPlaidProducts": ["ASSETS"]}

TrailingCoBorrowerIncome

Description

Trailing co-borrower income

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "id": "4",
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": "4"
}

TriggerAusRunInput

Fields
Input Field Description
loanId - ID!
Example
{"loanId": "4"}

TriggerAusRunResponse

Fields
Field Name Description
job - AusRunJob
userErrors - [AusUserError!]!
Example
{
  "job": AusRunJob,
  "userErrors": [MissingAttachmentTypeError]
}

TrustAccountAsset

Description

Trust account asset

Fields
Field Name Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt! The cash or market value of the asset in dollars
assetReportId - ID ID of the latest asset report that verified this asset
borrowerIds - [ID!] Ids of borrowers that are account holders on this asset
id - ID! Node ID
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
notableActivities - [FinancialAccountActivity!]! Notable activities
qualifiedAmount - NonNegativeInt The qualified amount of the asset in dollars, used for underwriting. Null if no qualification has been computed.
trusteeName - String The legal name of the trustee
verifiedAmount - NonNegativeInt The verified cash or market value of the asset in dollars, confirmed by a third-party source
Example
{
  "accountIdentifier": "xyz789",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "assetReportId": "4",
  "borrowerIds": [4],
  "id": 4,
  "institutionName": "xyz789",
  "nonBorrowerOwnerNames": ["xyz789"],
  "notableActivities": [FinancialAccountActivity],
  "qualifiedAmount": 123,
  "trusteeName": "xyz789",
  "verifiedAmount": 123
}

TrustIncome

Description

Trust income

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "id": "4",
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": 4
}

TruvBridgeToken

Description

TRUV bridge token for initializing widget

Fields
Field Name Description
bridgeToken - String! Bridge token for TRUV Bridge widget
Example
{"bridgeToken": "xyz789"}

TruvExchangeMetadata

Description

Metadata from Truv Bridge onSuccess callback

Fields
Input Field Description
employerName - String Employer name
taskId - String! Task ID from Truv
Example
{
  "employerName": "xyz789",
  "taskId": "abc123"
}

TruvLinkAccess

Description

TRUV token exchange success

Fields
Field Name Description
linkId - String! Truv task ID
Example
{"linkId": "abc123"}

TruvVerificationOutcome

Description

Outcome of a Truv verification task. PENDING until the task's income has been ingested or Truv reports no data or a failure; COMPLETE once its income has been ingested; NO_DATA when the payroll connection returned no income; FAILED when the connection failed for good, or when the task has gone ten minutes without any progress. Callers should still bound their own polling.

Values
Enum Value Description

COMPLETE

FAILED

NO_DATA

PENDING

Example
"COMPLETE"

TruvVerificationOutcomeInput

Description

Input for looking up a Truv verification task's outcome

Fields
Input Field Description
borrowerId - ID! ID of the borrower who owns the task
taskId - String! Truv task ID to look up
Example
{"borrowerId": 4, "taskId": "xyz789"}

UdnMonitorGql

Description

UDN monitor for a borrower

Fields
Field Name Description
borrowerId - ID!
createdOn - DateTime!
id - ID!
lastRetrievedDate - DateTime
monitoringStartDate - DateTime
notificationEmails - [String!]!
status - UdnMonitoringStatus!
Example
{
  "borrowerId": "4",
  "createdOn": "2007-12-03T10:15:30Z",
  "id": 4,
  "lastRetrievedDate": "2007-12-03T10:15:30Z",
  "monitoringStartDate": "2007-12-03T10:15:30Z",
  "notificationEmails": ["abc123"],
  "status": "ACTIVE"
}

UdnMonitoringStatus

Description

Status of UDN monitoring for a borrower

Values
Enum Value Description

ACTIVE

DEACTIVATED

DEACTIVATING

DEACTIVATION_TIMED_OUT

ERROR

ORDERING

Example
"ACTIVE"

UnattachedEmploymentIncomeError

Fields
Field Name Description
code - String A stable error code for programmatic handling. Format: {DOMAIN}_{ERROR_NAME} (e.g., 'LOAN_CLOSED', 'AUS_NO_PRODUCT_PRICING').
errorId - ID! A unique identifier for this error instance, useful for tracking and debugging.
field - [String!] Path to the input field that caused the error (e.g., ['input', 'customer', 'email']). Null when not associated with a specific field.
message - String! A human-readable error message.
Example
{
  "code": "xyz789",
  "errorId": "4",
  "field": ["xyz789"],
  "message": "xyz789"
}

UnderwriterScheduling

Description

Scheduling for the loan's underwriter. Deliberately anonymous: the underwriter's identity is withheld at the API layer, so this type carries no name, email, or other identifying fields.

Fields
Field Name Description
schedulingUrl - String Booking link (e.g. Calendly) for a meeting with the underwriter, when one resolves; null when the underwriter has no bookable link.
Example
{"schedulingUrl": "abc123"}

UnderwriterVerdict

Description

The verdict of an underwriter's assessment: FULFILLED (the requirement is met) or UNFULFILLED (it is not). Humans never emit NEEDS_HUMAN.

Values
Enum Value Description

FULFILLED

UNFULFILLED

Example
"FULFILLED"

UnderwritingBlockingTask

Description

A task that blocks submitting for underwriting, together with the condition it satisfies: category, entity and requested document type. Group blockers by these instead of parsing task titles.

Fields
Field Name Description
assignedTo - TaskAssignee! Who the task is waiting on. The gate only counts BORROWER and LOAN_OFFICER tasks.
conditionCategory - String Category of the underlying document condition, e.g. Borrower, Income, Asset, OwnedProperty, PurchaseInformation. Null when the task source does not carry one.
entity - UnderwritingBlockingTaskEntity The entity the requested evidence is about, when known.
requestedDocumentTypes - [String!]! Names of the document types that satisfy the task; any one of them completes it.
task - LoanOfficerDocumentTask! The task itself. Same ids as loanOfficerDocumentTasks.
Example
{
  "assignedTo": "BORROWER",
  "conditionCategory": "abc123",
  "entity": UnderwritingBlockingTaskEntity,
  "requestedDocumentTypes": ["xyz789"],
  "task": LoanOfficerDocumentTask
}

UnderwritingBlockingTaskEntity

Description

The loan entity a blocking task is collecting evidence about.

Fields
Field Name Description
displayName - String Human-readable name of the entity (e.g. the borrower's name or the account's institution), when the task source provides one.
id - ID! Identifier of the entity, stable across the tasks on this loan that are about the same borrower, account, employer or property.
type - String! Kind of entity, e.g. Borrower, Income, Asset, Property, Liability.
Example
{
  "displayName": "xyz789",
  "id": 4,
  "type": "abc123"
}

UnderwritingEvidenceEdge

Description

One underwriting evidence edge naming this document (fusion CUP-1151, GetDocumentEvidence) — where the upload landed: rejected by a requirement, satisfied one, or, absent any edge at all, matched nothing. A DIFFERENT, unrelated facet from LoanDocumentEvidence above (extraction evidence) — same document node, two independent evidence stories.

Fields
Field Name Description
createdAt - DateTimeISO When this edge was recorded.
id - ID! The evidence edge's unique identifier.
kind - String! The edge kind (SUBMISSION, ASSERTION, REJECTION, and so on).
reasoning - String The author's free-text reasoning for the verdict.
requirementId - ID! The requirement this edge feeds.
verdict - String The verdict (FULFILLED / UNFULFILLED / NEEDS_HUMAN), populated on ASSERTION edges only — null for every other kind.
Example
{
  "createdAt": "2007-12-03T10:15:30Z",
  "id": "4",
  "kind": "xyz789",
  "reasoning": "xyz789",
  "requirementId": "4",
  "verdict": "xyz789"
}

UnderwritingIntakeOutcome

Description

One intake-outcome recording for this document (fusion CUP-1266, GetIntakeOutcomes) — a single (documentKind, workflowRunId, outcome) row from the extraction orchestrator's per-run processing trace. The one queryable record for an upload that never minted an evidence edge at all (the drop-zone lane), which is exactly the case underwritingEvidence above answers empty for.

Fields
Field Name Description
detail - String The terminal failure message or the usability verdict's flag summary; null for RECEIVED and COMPLETED.
documentKind - String! The classified document kind (e.g. W2, PAYSTUB).
outcome - String! The recorded outcome (RECEIVED, COMPLETED, EXTRACTION_FAILED, and the rest of the classed terminal vocabulary).
recordedAt - DateTimeISO When this outcome was recorded.
workflowRunId - ID! The Temporal workflow run this recording belongs to — separates one dispatch's honest history from another's.
Example
{
  "detail": "xyz789",
  "documentKind": "abc123",
  "outcome": "abc123",
  "recordedAt": "2007-12-03T10:15:30Z",
  "workflowRunId": "4"
}

UnderwritingReviewMutations

Description

Underwriter review mutations namespace.

Fields
Field Name Description
addManualRequirement - AddManualRequirementResponse Mints an underwriter-added requirement, content-addressed on its slug (re-adding the same slug restores the same requirement).
Arguments
confirmAssessment - ConfirmAssessmentResponse Confirms a prior assessment by writing an endorsement assertion: same verdict, targetRef naming the endorsed edge. Warns (without blocking) when the target is no longer current.
Arguments
removeManualRequirement - RemoveManualRequirementResponse Removes an underwriter-added requirement (soft-remove; re-adding the same slug restores it).
Arguments
reopenAssessment - ReopenAssessmentResponse Reopens a human assessment by writing an INVALIDATION act against it. Rejected unless the target is the requirement's current active human assertion.
Arguments
requestReconsideration - RequestReconsiderationResponse Asks the agent lane to revisit its assessment of a requirement. The agent answers asynchronously with a CONCUR/DEFER assertion that can never displace an active human assertion.
Arguments
submitCounterAssessment - SubmitCounterAssessmentResponse Writes the underwriter's own assessment: citation rows plus one UNDERWRITER assertion pinning them. Retries of the same draft (same assertionId) are structural no-ops.
Arguments
Example
{
  "addManualRequirement": AddManualRequirementResponse,
  "confirmAssessment": ConfirmAssessmentResponse,
  "removeManualRequirement": RemoveManualRequirementResponse,
  "reopenAssessment": ReopenAssessmentResponse,
  "requestReconsideration": RequestReconsiderationResponse,
  "submitCounterAssessment": SubmitCounterAssessmentResponse
}

UnderwritingReviewWarning

Description

Non-fatal warning attached to a review write. TARGET_SUPERSEDED: the act targeted an assertion that is no longer current-in-slot (invalidated, disputed away, or superseded by a newer statement), so the write has no fold effect until re-targeted.

Values
Enum Value Description

TARGET_SUPERSEDED

Example
"TARGET_SUPERSEDED"

UnderwritingSubmissionGate

Description

Readiness of a loan for an explicit submit for underwriting: at least requiredCompletionPercent of the loan's borrower and loan-officer document tasks must be complete. The threshold is higher once the loan has already been in underwriting (see isResubmission). The same check the submit mutation enforces: while canSubmit is false the mutation fails with LOAN_UNDERWRITING_TASKS_INCOMPLETE.

Fields
Field Name Description
applicableTaskCount - NonNegativeInt! Borrower and loan-officer document tasks that count toward the threshold: completed plus open. Cancelled tasks are excluded. Zero when the gate is disabled.
blockingTasks - [UnderwritingBlockingTask!]! Open borrower and loan-officer tasks counting against the threshold, each with what it is asking for. Completing (or cancelling) any of them raises the completion percentage.
canSubmit - Boolean! True when the loan meets the completion threshold and can be submitted for underwriting.
completedTaskCount - NonNegativeInt! Borrower and loan-officer document tasks completed so far. Zero when the gate is disabled.
enabled - Boolean! Whether the gate is enforced for this loan's customer. When false, canSubmit is always true.
isResubmission - Boolean! True when the loan has already been in underwriting, so this submit would be a resubmission and every applicable task must be complete. False when the gate is disabled.
requiredCompletionPercent - NonNegativeInt! Percentage of applicableTaskCount that must be completed before submitting: 80 for a first submission, 100 for a resubmission.
Example
{
  "applicableTaskCount": 123,
  "blockingTasks": [UnderwritingBlockingTask],
  "canSubmit": false,
  "completedTaskCount": 123,
  "enabled": true,
  "isResubmission": false,
  "requiredCompletionPercent": 123
}

UnderwritingTaskGateOverrideInput

Description

A Pylon staff decision to submit the loan for underwriting although its task-completion gate is not met. Requires the internal administrator scope; the explanation is written to the loan's notes with the gate state it overrode.

Fields
Input Field Description
reason - String! Why the gate is being overridden; required and must not be blank (max 10000 characters, measured as UTF-8 bytes so accented characters and emoji count extra)
Example
{"reason": "xyz789"}

UnemploymentIncome

Description

Unemployment income

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "id": 4,
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": 4
}

UnmergeCreditReportInput

Description

Input to unmerge a joint credit report into individual reports

Fields
Input Field Description
creditPullId - ID! The ID of the completed joint credit pull to unmerge
Example
{"creditPullId": 4}

UnmergeCreditReportResponse

Description

Response from unmerging a credit report

Fields
Field Name Description
jobs - [CreditPullJob!] Credit pull jobs for the unmerge (one per borrower)
userErrors - [GenericUserError!] User errors preventing unmerge
Example
{
  "jobs": [CreditPullJob],
  "userErrors": [GenericUserError]
}

UnsatisfiableStructureBlocker

Description

The product structure cannot be satisfied

Fields
Field Name Description
type - String!
unsatisfiabilityDetails - [ProductStructureUnsatisfiabilityDetailsType!]! Details about the unsatisfiability
Example
{
  "type": "xyz789",
  "unsatisfiabilityDetails": [
    ProductStructureUnsatisfiabilityDetailsType
  ]
}

UnsetBorrowerMilitaryServiceInput

Description

Input to unset borrower military service.

Fields
Input Field Description
borrowerId - ID! ID of the borrower to update
Example
{"borrowerId": "4"}

UnsetBorrowerMilitaryServiceResponse

Description

Response of the unset borrower military service mutation

Fields
Field Name Description
militaryService - BorrowerMilitaryService The updated borrower military service
Example
{"militaryService": BorrowerMilitaryService}

UnsetSubjectPropertyFirstLienInput

Fields
Input Field Description
id - ID! The ID of the subject property
Example
{"id": 4}

UnsetSubjectPropertyFirstLienResponse

Fields
Field Name Description
subjectProperty - SubjectProperty! Updated subject property
Example
{"subjectProperty": SubjectProperty}

UnsupportedUsStateError

Description

User error indicating that Pylon is not configured to run in the specified US state

Fields
Field Name Description
code - String A stable error code for programmatic handling. Format: {DOMAIN}_{ERROR_NAME} (e.g., 'LOAN_CLOSED', 'AUS_NO_PRODUCT_PRICING').
errorId - ID! A unique identifier for this error instance, useful for tracking and debugging.
field - [String!] Path to the input field that caused the error (e.g., ['input', 'customer', 'email']). Null when not associated with a specific field.
message - String! A human-readable error message.
state - String!
Example
{
  "code": "xyz789",
  "errorId": 4,
  "field": ["xyz789"],
  "message": "abc123",
  "state": "xyz789"
}

UnverifiedAssetBlocker

Description

An asset has not been verified

Fields
Field Name Description
assetId - ID! The ID of the unverified asset
type - String!
Example
{
  "assetId": "4",
  "type": "abc123"
}

UnverifiedIncomeBlocker

Description

An income source has not been verified

Fields
Field Name Description
incomeId - ID! The ID of the unverified income
type - String!
Example
{
  "incomeId": "4",
  "type": "xyz789"
}

UpdateAnyAssetInput

Description

Input for updating an Asset of any type. Includes only Asset interface fields.

Fields
Input Field Description
amount - NonNegativeInt The cash or market value of the asset in dollars
id - ID! The ID of the asset to update
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
Example
{
  "amount": 123,
  "id": "4",
  "nonBorrowerOwnerNames": ["abc123"]
}

UpdateAnyIncomeInput

Description

Input for updating an Income of any type. Includes only Income interface fields.

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
id - ID! The ID of the income to update
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "id": "4",
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

UpdateAssetInput

Description

Input to the updateAsset mutation. This is a 'oneOf' type where exactly one field must be populated.

Fields
Input Field Description
any - UpdateAnyAssetInput Update an Asset of any type that implements the Asset interface
automobile - UpdateAutomobileAssetInput
bond - UpdateBondAssetInput
bridgeLoanNotDeposited - UpdateBridgeLoanNotDepositedAssetInput
cashOnHand - UpdateCashOnHandAssetInput
certificateOfDepositTimeDeposit - UpdateCertificateOfDepositTimeDepositAssetInput
checkingAccount - UpdateCheckingAccountAssetInput
cryptocurrency - UpdateCryptocurrencyAssetInput
gift - UpdateGiftAssetInput
grant - UpdateGrantAssetInput
individualDevelopmentAccount - UpdateIndividualDevelopmentAccountAssetInput
lifeInsurance - UpdateLifeInsuranceAssetInput
moneyMarketFund - UpdateMoneyMarketFundAssetInput
mutualFund - UpdateMutualFundAssetInput
other - UpdateOtherAssetInput
pendingNetSaleProceedsFromRealEstate - UpdatePendingNetSaleProceedsFromRealEstateAssetInput
proceedsFromSaleOfNonRealEstateAsset - UpdateProceedsFromSaleOfNonRealEstateAssetInput
proceedsFromSecuredLoan - UpdateProceedsFromSecuredLoanAssetInput
proceedsFromUnsecuredLoan - UpdateProceedsFromUnsecuredLoanAssetInput
retirementFund - UpdateRetirementFundAssetInput
savingsAccount - UpdateSavingsAccountAssetInput
stock - UpdateStockAssetInput
stockOptions - UpdateStockOptionsAssetInput
trustAccount - UpdateTrustAccountAssetInput
Example
{
  "any": UpdateAnyAssetInput,
  "automobile": UpdateAutomobileAssetInput,
  "bond": UpdateBondAssetInput,
  "bridgeLoanNotDeposited": UpdateBridgeLoanNotDepositedAssetInput,
  "cashOnHand": UpdateCashOnHandAssetInput,
  "certificateOfDepositTimeDeposit": UpdateCertificateOfDepositTimeDepositAssetInput,
  "checkingAccount": UpdateCheckingAccountAssetInput,
  "cryptocurrency": UpdateCryptocurrencyAssetInput,
  "gift": UpdateGiftAssetInput,
  "grant": UpdateGrantAssetInput,
  "individualDevelopmentAccount": UpdateIndividualDevelopmentAccountAssetInput,
  "lifeInsurance": UpdateLifeInsuranceAssetInput,
  "moneyMarketFund": UpdateMoneyMarketFundAssetInput,
  "mutualFund": UpdateMutualFundAssetInput,
  "other": UpdateOtherAssetInput,
  "pendingNetSaleProceedsFromRealEstate": UpdatePendingNetSaleProceedsFromRealEstateAssetInput,
  "proceedsFromSaleOfNonRealEstateAsset": UpdateProceedsFromSaleOfNonRealEstateAssetInput,
  "proceedsFromSecuredLoan": UpdateProceedsFromSecuredLoanAssetInput,
  "proceedsFromUnsecuredLoan": UpdateProceedsFromUnsecuredLoanAssetInput,
  "retirementFund": UpdateRetirementFundAssetInput,
  "savingsAccount": UpdateSavingsAccountAssetInput,
  "stock": UpdateStockAssetInput,
  "stockOptions": UpdateStockOptionsAssetInput,
  "trustAccount": UpdateTrustAccountAssetInput
}

UpdateAssetResponse

Description

Response of the updateAsset mutation.

Fields
Field Name Description
asset - Asset! The updated asset
Example
{"asset": Asset}

UpdateAutomobileAssetInput

Fields
Input Field Description
amount - NonNegativeInt The cash or market value of the asset in dollars
id - ID! The ID of the asset to update
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
Example
{
  "amount": 123,
  "id": "4",
  "nonBorrowerOwnerNames": ["xyz789"]
}

UpdateBondAssetInput

Fields
Input Field Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt The cash or market value of the asset in dollars
id - ID! The ID of the asset to update
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
Example
{
  "accountIdentifier": "xyz789",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "id": 4,
  "institutionName": "abc123",
  "nonBorrowerOwnerNames": ["xyz789"]
}

UpdateBorrowerConsentInput

Fields
Input Field Description
borrowerId - ID! ID of the borrower to update
hardCreditConsentDate - DateTime
hardCreditConsentType - CreditPullConsentType
softCreditConsentDate - DateTime
softCreditConsentType - CreditPullConsentType
Example
{
  "borrowerId": 4,
  "hardCreditConsentDate": "2007-12-03T10:15:30Z",
  "hardCreditConsentType": "ELECTRONIC",
  "softCreditConsentDate": "2007-12-03T10:15:30Z",
  "softCreditConsentType": "ELECTRONIC"
}

UpdateBorrowerConsentResponse

Description

Response of the update borrower consent mutation.

Fields
Field Name Description
borrowerId - ID! ID of the borrower to update
hardCreditConsentDate - DateTime
hardCreditConsentType - CreditPullConsentType
softCreditConsentDate - DateTime
softCreditConsentType - CreditPullConsentType
Example
{
  "borrowerId": "4",
  "hardCreditConsentDate": "2007-12-03T10:15:30Z",
  "hardCreditConsentType": "ELECTRONIC",
  "softCreditConsentDate": "2007-12-03T10:15:30Z",
  "softCreditConsentType": "ELECTRONIC"
}

UpdateBorrowerDependentsInput

Description

Input to the update borrower dependents mutation. Fields with non-null values will be updated, the rest will be ignored.

Fields
Input Field Description
borrowerId - ID! ID of the borrower to update
dependentAges - [Float!]! The updated borrower Dependents
Example
{
  "borrowerId": "4",
  "dependentAges": [123.45]
}

UpdateBorrowerDependentsResponse

Description

Response of the update borrower dependents mutation

Fields
Field Name Description
dependentAges - [Float!]! The updated borrower Dependents
Example
{"dependentAges": [123.45]}

UpdateBorrowerFinancialDeclarationsInput

Description

Input to the update borrower financial declarations mutation. Fields with non-null values will be updated, the rest will be ignored.

Fields
Input Field Description
bankruptcyChapterType - BankruptcyChapterType The type of bankruptcy filed, if any.
bankruptcyIndicator - Boolean Indicates if the borrower has filed for bankruptcy.
borrowerId - ID! ID of the borrower to update
homeownerPastThreeYears - Boolean Indicates if the borrower has been a homeowner in the past three years.
intentToOccupy - Boolean Indicates if the borrower intends to occupy the property.
outstandingJudgmentsIndicator - Boolean Indicates if the borrower has outstanding judgments.
partyToLawsuitIndicator - Boolean Indicates if the borrower is currently a party to a lawsuit.
presentlyDelinquentIndicator - Boolean Indicates if the borrower is presently delinquent on any obligations.
priorPropertyDeedInLieuConveyedIndicator - Boolean Indicates if the borrower has conveyed a prior property deed in lieu of foreclosure.
priorPropertyForeclosureCompletedIndicator - Boolean Indicates if the borrower has completed a prior property foreclosure.
priorPropertyShortSaleCompletedIndicator - Boolean Indicates if the borrower has completed a prior property short sale.
priorPropertyTitleType - PriorPropertyTitleType Indicates the type of title ownership for the borrower's prior property, such as sole ownership or joint ownership.
priorPropertyUsageType - PriorPropertyUsageType Specifies how the borrower's prior property was used, such as primary residence, investment, or second home.
undisclosedComakerOfNoteIndicator - Boolean Indicates if the borrower is an undisclosed co-maker of a note.
undisclosedCreditApplicationIndicator - Boolean Indicates if the borrower has an undisclosed credit application.
undisclosedMortgageApplicationIndicator - Boolean Indicates if the borrower has an undisclosed mortgage application.
Example
{
  "bankruptcyChapterType": "CHAPTER_ELEVEN",
  "bankruptcyIndicator": false,
  "borrowerId": "4",
  "homeownerPastThreeYears": true,
  "intentToOccupy": false,
  "outstandingJudgmentsIndicator": true,
  "partyToLawsuitIndicator": false,
  "presentlyDelinquentIndicator": false,
  "priorPropertyDeedInLieuConveyedIndicator": true,
  "priorPropertyForeclosureCompletedIndicator": true,
  "priorPropertyShortSaleCompletedIndicator": false,
  "priorPropertyTitleType": "JOINT_WITH_OTHER_THAN_SPOUSE",
  "priorPropertyUsageType": "FHA_SECONDARY_RESIDENCE",
  "undisclosedComakerOfNoteIndicator": false,
  "undisclosedCreditApplicationIndicator": false,
  "undisclosedMortgageApplicationIndicator": true
}

UpdateBorrowerFinancialDeclarationsResponse

Description

Response of the update borrower financial declarations mutation

Fields
Field Name Description
financialDeclarations - BorrowerFinancialDeclarations! The updated borrower declarations
Example
{"financialDeclarations": BorrowerFinancialDeclarations}

UpdateBorrowerInput

Fields
Input Field Description
id - ID! ID of the borrower to update
isFirstTimeHomeBuyer - Boolean
maritalStatus - MaritalStatusType
pointOfContact - Boolean
Example
{
  "id": 4,
  "isFirstTimeHomeBuyer": false,
  "maritalStatus": "DIVORCED",
  "pointOfContact": false
}

UpdateBorrowerMailingAddressInput

Fields
Input Field Description
city - String City
country - String Country
id - ID! ID of the borrower to update
line - String Street address line 1
line2 - String Street address line 2
state - StateAbbreviated Abbreviated US state name (including DC)
zipCode - String Zip code
Example
{
  "city": "xyz789",
  "country": "abc123",
  "id": 4,
  "line": "xyz789",
  "line2": "xyz789",
  "state": "AK",
  "zipCode": "xyz789"
}

UpdateBorrowerMailingAddressResponse

Fields
Field Name Description
borrower - Borrower! The borrower that was updated
Example
{"borrower": Borrower}

UpdateBorrowerMilitaryServiceInput

Description

Input to the update borrower military service mutation. Fields with non-null values will be updated, the rest will be ignored.

Fields
Input Field Description
borrowerId - ID! ID of the borrower to update
militaryServiceExpectedCompletionDate - Date
militaryStatusType - MilitaryStatusType
survivingSpouseIndicator - Boolean
Example
{
  "borrowerId": "4",
  "militaryServiceExpectedCompletionDate": "2007-12-03",
  "militaryStatusType": "ACTIVE_DUTY",
  "survivingSpouseIndicator": true
}

UpdateBorrowerMilitaryServiceResponse

Description

Response of the update borrower military service mutation

Fields
Field Name Description
militaryService - BorrowerMilitaryService The updated borrower military service
Example
{"militaryService": BorrowerMilitaryService}

UpdateBorrowerPersonalInformationInput

Fields
Input Field Description
aliases - [String!]
citizenshipResidencyType - CitizenshipResidencyType
dateOfBirth - Date
email - String
firstName - String
id - ID! ID of the borrower to update
lastName - String
middleName - String
suffix - String
taxIdentifierNumber - String Tax identifier number
taxIdentifierNumberType - TaxIdentifierNumberType Tax identifier number type
Example
{
  "aliases": ["abc123"],
  "citizenshipResidencyType": "NON_PERMANENT_RESIDENT_ALIEN",
  "dateOfBirth": "2007-12-03",
  "email": "abc123",
  "firstName": "xyz789",
  "id": 4,
  "lastName": "xyz789",
  "middleName": "abc123",
  "suffix": "xyz789",
  "taxIdentifierNumber": "abc123",
  "taxIdentifierNumberType": "INDIVIDUAL_TAXPAYER_IDENTIFICATION_NUMBER"
}

UpdateBorrowerPersonalInformationResponse

Fields
Field Name Description
borrower - Borrower! The borrower that was updated
Example
{"borrower": Borrower}

UpdateBorrowerPhoneNumberInput

Description

Input to upsert a borrower's phone number. Pass borrowerId to create-or-update the borrower's phone number; pass id (deprecated) to update a specific existing phone number record. Exactly one of borrowerId or id must be provided.

Fields
Input Field Description
borrowerId - ID ID of the borrower whose phone number should be created or updated.
number - String Phone Number
type - PhoneNumberType Phone number type
Example
{
  "borrowerId": 4,
  "number": "xyz789",
  "type": "CELL"
}

UpdateBorrowerPhoneNumberResponse

Fields
Field Name Description
phoneNumber - BorrowerPhoneNumber! The phone number that was updated
Example
{"phoneNumber": BorrowerPhoneNumber}

UpdateBorrowerPreferencesInput

Description

Input to the borrowerPreferences mutation.

Fields
Input Field Description
applyOutOfPocketToLoan - Boolean Represents if Out Of Pocket cash will be applied to reduce loan cost
closingCosts - NonNegativeFloat The maximum allowable closing costs.
downPaymentAmount - NonNegativeFloat The down payment amount.
loanId - ID! The loan ID for borrower preferences.
loanTermYears - NonNegativeInt The loan term in years. Default = 30
maxDiscountPoints - Float Limit number of rate point buys to not exceed this value.
maxLtv - NonNegativeFloat Max loan-to-value ratio allowed. Will not override takeout requirements.
maxOutOfPocket - NonNegativeFloat Out of pocket maximum in dollars.
monthlyPayment - NonNegativeFloat The maximum allowable monthly payment.
monthlyPaymentAsPercentageOfIncome - Boolean! Interpret monthly payment field as a percentage instead of dollar amount. Default = false
mortgageInsurance - Boolean Indicates whether mortgage insurance is required.
principal - NonNegativeFloat The maximum allowable principal amount.
rate - NonNegativeFloat The preferred interest rate as a percentage (e.g., 5.0 for 5%).
rateLockTerm - NonNegativeInt The rate lock period in days. Default = 30
rollInClosingCosts - Boolean Represents if closing costs will be rolled into loan amount on a ReFi
totalCost - Float The cost of points for the loan.
totalPoints - NonNegativeFloat The number of points required for the loan.
Example
{
  "applyOutOfPocketToLoan": true,
  "closingCosts": 123.45,
  "downPaymentAmount": 123.45,
  "loanId": "4",
  "loanTermYears": 123,
  "maxDiscountPoints": 123.45,
  "maxLtv": 123.45,
  "maxOutOfPocket": 123.45,
  "monthlyPayment": 123.45,
  "monthlyPaymentAsPercentageOfIncome": false,
  "mortgageInsurance": true,
  "principal": 123.45,
  "rate": 123.45,
  "rateLockTerm": 123,
  "rollInClosingCosts": true,
  "totalCost": 987.65,
  "totalPoints": 123.45
}

UpdateBorrowerPreferencesResponse

Description

Response of the updateBorrowerPreferences mutation.

Fields
Field Name Description
borrowerPreferences - BorrowerPreferences! Updated borrower preferences.
loanTermYears - NonNegativeInt! Updated loan term in years
rateLockTerm - NonNegativeInt! Updated rate lock period
Example
{
  "borrowerPreferences": BorrowerPreferences,
  "loanTermYears": 123,
  "rateLockTerm": 123
}

UpdateBorrowerPropertyDeclarationsInput

Description

Input to the update borrower property declarations mutation. Fields with non-null values will be updated, the rest will be ignored.

Fields
Input Field Description
borrowerId - ID! ID of the borrower to update
otherMortgageOnSubjectPropertyIndicator - Boolean Is there any other mortgage loan on the subject property?
propertySubjectToPriorityLienIndicator - Boolean Flag to indicate whether realtor tasks are complete on this loan
specialBorrowerSellerRelationshipIndicator - Boolean Flag to indicate whether realtor tasks are complete on this loan
undisclosedBorrowedFundsAmount - Float Flag to indicate whether realtor tasks are complete on this loan
undisclosedBorrowedFundsIndicator - Boolean Flag to indicate whether realtor tasks are complete on this loan
Example
{
  "borrowerId": "4",
  "otherMortgageOnSubjectPropertyIndicator": false,
  "propertySubjectToPriorityLienIndicator": true,
  "specialBorrowerSellerRelationshipIndicator": false,
  "undisclosedBorrowedFundsAmount": 987.65,
  "undisclosedBorrowedFundsIndicator": false
}

UpdateBorrowerPropertyDeclarationsResponse

Description

Response of the update borrower property declarations mutation

Fields
Field Name Description
propertyDeclarations - BorrowerPropertyDeclarations! The updated borrower declarations
Example
{"propertyDeclarations": BorrowerPropertyDeclarations}

UpdateBorrowerResponse

Description

Response of the update borrower mutation.

Fields
Field Name Description
borrower - Borrower! The borrower that was updated
Example
{"borrower": Borrower}

UpdateBridgeLoanNotDepositedAssetInput

Fields
Input Field Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt The cash or market value of the asset in dollars
id - ID! The ID of the asset to update
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
Example
{
  "accountIdentifier": "xyz789",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "id": "4",
  "institutionName": "xyz789",
  "nonBorrowerOwnerNames": ["xyz789"]
}

UpdateCashOnHandAssetInput

Fields
Input Field Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt The cash or market value of the asset in dollars
id - ID! The ID of the asset to update
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
Example
{
  "accountIdentifier": "xyz789",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "id": 4,
  "institutionName": "abc123",
  "nonBorrowerOwnerNames": ["abc123"]
}

UpdateCertificateOfDepositTimeDepositAssetInput

Fields
Input Field Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt The cash or market value of the asset in dollars
id - ID! The ID of the asset to update
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
Example
{
  "accountIdentifier": "xyz789",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "id": "4",
  "institutionName": "xyz789",
  "nonBorrowerOwnerNames": ["abc123"]
}

UpdateCheckingAccountAssetInput

Fields
Input Field Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt The cash or market value of the asset in dollars
id - ID! The ID of the asset to update
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
Example
{
  "accountIdentifier": "abc123",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "id": 4,
  "institutionName": "abc123",
  "nonBorrowerOwnerNames": ["abc123"]
}

UpdateCommsRecipientsInput

Fields
Input Field Description
commsId - ID!
recipients - [CommsRecipient!]! The role types that should receive this communication
Example
{"commsId": 4, "recipients": ["BORROWER"]}

UpdateCommsRecipientsResponse

Fields
Field Name Description
id - ID! The ID of comms template
name - String! Name of the comms template
recipients - [CommsRecipient!]! Role types that receive this communication
subject - String! Subject line of comms
template - String! Comms template
Example
{
  "id": 4,
  "name": "abc123",
  "recipients": ["BORROWER"],
  "subject": "abc123",
  "template": "abc123"
}

UpdateCommsSettingsInput

Fields
Input Field Description
autoSendBorrowerPortalInvite - Boolean! When on, creating a borrower or co-borrower in Command Center also emails that borrower their portal invite. Off by default, and the only gate on that auto-send — the borrower-portal-invite feature flag governs the explicit borrower.sendPortalInvite mutation, not this. Default = false
Example
{"autoSendBorrowerPortalInvite": true}

UpdateCommsSettingsResponse

Fields
Field Name Description
autoSendBorrowerPortalInvite - Boolean! When on, creating a borrower or co-borrower in Command Center also emails that borrower their portal invite. Off by default, and the only gate on that auto-send — the borrower-portal-invite feature flag governs the explicit borrower.sendPortalInvite mutation, not this.
customerId - ID!
Example
{"autoSendBorrowerPortalInvite": true, "customerId": 4}

UpdateCommsTemplateInput

Fields
Input Field Description
id - ID! The ID of comms template
template - String!
Example
{
  "id": "4",
  "template": "xyz789"
}

UpdateCommsTemplateResponse

Fields
Field Name Description
id - ID! The ID of comms template
name - String! Name of the comms template
recipients - [CommsRecipient!]! Role types that receive this communication
subject - String! Subject line of comms
template - String! Comms template
Example
{
  "id": 4,
  "name": "abc123",
  "recipients": ["BORROWER"],
  "subject": "abc123",
  "template": "abc123"
}

UpdateCompanyNameInput

Fields
Input Field Description
newCompanyName - String
roleId - ID!
userId - ID!
Example
{
  "newCompanyName": "xyz789",
  "roleId": 4,
  "userId": "4"
}

UpdateCompanyNameResponse

Fields
Field Name Description
blockedLoans - [BlockedLoan!]!
updatedLoanCount - Int!
userErrors - [UserError!]!
Example
{
  "blockedLoans": [BlockedLoan],
  "updatedLoanCount": 123,
  "userErrors": [UserError]
}

UpdateConcessionInput

Fields
Input Field Description
amount - NonNegativeInt
id - ID!
reason - String
Example
{
  "amount": 123,
  "id": "4",
  "reason": "abc123"
}

UpdateConcessionResponse

Fields
Field Name Description
concession - Concession
Example
{"concession": Concession}

UpdateContactInput

Fields
Input Field Description
address - AddressInput Optional U.S. address to create with the contact.
companyLicenseNumber - String License number of the company the contact represents
companyLicenseState - StateAbbreviated State where the company's license was issued
companyName - String Company which the contact is from
email - String Email address of the contact
firstName - String First name of the contact
hazardInsuranceCoverage - HazardInsuranceCoverageType Coverage provided by a hazard insurer
id - ID! ID of the contact to update.
individualLicenseNumber - String Professional license number of the individual contact
individualLicenseState - StateAbbreviated State where the individual's professional license was issued
lastName - String Last name of the contact
middleName - String Middle name of the contact
phoneNumber - String Phone number of the contact
role - OrganizationContactRole Contact's role, limited to currently supported values.
Example
{
  "address": AddressInput,
  "companyLicenseNumber": "abc123",
  "companyLicenseState": "AK",
  "companyName": "abc123",
  "email": "abc123",
  "firstName": "abc123",
  "hazardInsuranceCoverage": "EARTHQUAKE",
  "id": 4,
  "individualLicenseNumber": "xyz789",
  "individualLicenseState": "AK",
  "lastName": "xyz789",
  "middleName": "xyz789",
  "phoneNumber": "xyz789",
  "role": "ATTORNEY"
}

UpdateContactResponse

Fields
Field Name Description
updated - Contact! Updated contact details.
Example
{"updated": Contact}

UpdateContributorContactInfoInput

Fields
Input Field Description
email - String
firstName - String
lastName - String
phone - String
Example
{
  "email": "abc123",
  "firstName": "abc123",
  "lastName": "abc123",
  "phone": "abc123"
}

UpdateContributorInput

Fields
Input Field Description
contactInfo - UpdateContributorContactInfoInput
id - ID!
Example
{
  "contactInfo": UpdateContributorContactInfoInput,
  "id": "4"
}

UpdateContributorResponse

Fields
Field Name Description
contributor - Contributor!
Example
{"contributor": Contributor}

UpdateCostAbsorptionInput

Fields
Input Field Description
points - NonNegativeFloat!
product - PreapprovalProduct!
Example
{"points": 123.45, "product": "BayviewBayviewJumboAus"}

UpdateCostAbsorptionResponse

Fields
Field Name Description
costAbsorption - [CostAbsorption!]!
Example
{"costAbsorption": [CostAbsorption]}

UpdateCreditInquiryInput

Description

Input for updating a credit inquiry explanation

Fields
Input Field Description
creditInquiryId - ID! The credit inquiry ID
incurredNewCredit - ID If new credit was incurred, the ID of the associated liability
inquiringCreditor - String! The name of the creditor that made the inquiry
Example
{
  "creditInquiryId": 4,
  "incurredNewCredit": 4,
  "inquiringCreditor": "xyz789"
}

UpdateCreditInquiryResponse

Description

Response from updating a credit inquiry

Fields
Field Name Description
documentUploadId - ID! The document upload ID for tracking
downloadUrl - String! A temporary URL for downloading the generated PDF letter of explanation
Example
{
  "documentUploadId": 4,
  "downloadUrl": "xyz789"
}

UpdateCryptocurrencyAssetInput

Fields
Input Field Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt The cash or market value of the asset in dollars
description - String Description of the asset (e.g. coin and platform)
id - ID! The ID of the asset to update
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
Example
{
  "accountIdentifier": "xyz789",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "description": "abc123",
  "id": 4,
  "institutionName": "xyz789",
  "nonBorrowerOwnerNames": ["abc123"]
}

UpdateCurrentBorrowerAddressInput

Description

Current Borrower Address Input

Fields
Input Field Description
address - AddressInput US address to update
borrowerId - ID! Borrower ID
monthlyRentAmount - NonNegativeInt The monthly rental amount in dollars
moveInDate - Date Move in date
residencyBasis - BorrowerResidencyBasis The basis on which the borrower lives/lived at this address
Example
{
  "address": AddressInput,
  "borrowerId": "4",
  "monthlyRentAmount": 123,
  "moveInDate": "2007-12-03",
  "residencyBasis": "LIVING_RENT_FREE"
}

UpdateCurrentBorrowerAddressResponse

Fields
Field Name Description
address - Address! US Address
id - ID! Node ID
monthlyRentAmount - NonNegativeInt The monthly rental amount in dollars
moveInDate - Date Move in date
residencyBasis - BorrowerResidencyBasis The basis on which the borrower lives/lived at this address
Example
{
  "address": Address,
  "id": "4",
  "monthlyRentAmount": 123,
  "moveInDate": "2007-12-03",
  "residencyBasis": "LIVING_RENT_FREE"
}

UpdateCustomerShareInput

Fields
Input Field Description
customerShare - NonNegativeFloat!
Example
{"customerShare": 123.45}

UpdateCustomerShareResponse

Fields
Field Name Description
customerShare - NonNegativeFloat!
Example
{"customerShare": 123.45}

UpdateDemographicInfoInput

Fields
Input Field Description
asianOther - String
asianRace - [AsianRace!]
ethnicity - [Ethnicity!]
ethnicityNotDisclosed - Boolean
hispanicOrigin - [HispanicOrigin!]
hispanicOther - String
id - ID! ID of the borrower to update
pacificIslanderOther - String
pacificIslanderRace - [PacificIslanderRace!]
race - [Race!]
raceNotDisclosed - Boolean
sex - [Sex!]
sexNotDisclosed - Boolean
tribe - String
Example
{
  "asianOther": "xyz789",
  "asianRace": ["CHINESE"],
  "ethnicity": ["HISPANIC"],
  "ethnicityNotDisclosed": false,
  "hispanicOrigin": ["CUBA"],
  "hispanicOther": "abc123",
  "id": 4,
  "pacificIslanderOther": "xyz789",
  "pacificIslanderRace": ["GUAMANIAN_OR_CHAMORRO"],
  "race": ["AM_INDIAN_ALASKAN"],
  "raceNotDisclosed": false,
  "sex": ["FEMALE"],
  "sexNotDisclosed": false,
  "tribe": "abc123"
}

UpdateDemographicInfoResponse

Fields
Field Name Description
borrower - Borrower! The borrower
Example
{"borrower": Borrower}

UpdateFeeInput

Fields
Input Field Description
feeSpecifiedFixedAmount - NonNegativeInt If set, this field represents a fixed amount due at closing.
feeTotalPercent - NonNegativeInt If set, this field represents a fee as a percentage of the loan amount, due at closing.
id - ID!
payerShares - [FeePaymentInput!] Who pays this fee at closing, and how much each party pays. The shares' sum becomes the fee's fixed amount (a percentage-based fee becomes fixed), so feeTotalPercent cannot be sent alongside and feeSpecifiedFixedAmount, if sent, must equal the sum; a payer left out pays 0. Shares are paid-at-close amounts; anything already paid before closing stays as recorded. Omit to leave the existing split untouched.
Example
{
  "feeSpecifiedFixedAmount": 123,
  "feeTotalPercent": 123,
  "id": 4,
  "payerShares": [FeePaymentInput]
}

UpdateFeeResponse

Fields
Field Name Description
fee - Fee!
Example
{"fee": Fee}

UpdateGiftAssetInput

Fields
Input Field Description
amount - NonNegativeInt The cash or market value of the asset in dollars
dateOfTransfer - Date The date when the gift/grant funds were transferred into the borrower's account
donorEmployeeIdentificationNumber - String Employer Identification Number (EIN) of the gift/grant donor
donorName - String Full name of the person providing the gift/grant
donorPhoneNumber - String The phone number of the person providing the gift/grant
id - ID! The ID of the asset to update
isIncludedInAssetAccount - Boolean Indicates whether the gift/grant funds have already been included as part of an asset account considered for the loan
isSellerFunded - Boolean Indicates whether the gift/grant is funded by the seller
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
source - GiftSource Gift/Grant source
Example
{
  "amount": 123,
  "dateOfTransfer": "2007-12-03",
  "donorEmployeeIdentificationNumber": "abc123",
  "donorName": "abc123",
  "donorPhoneNumber": "abc123",
  "id": 4,
  "isIncludedInAssetAccount": true,
  "isSellerFunded": true,
  "nonBorrowerOwnerNames": ["xyz789"],
  "source": "COMMUNITY_NON_PROFIT"
}

UpdateGrantAssetInput

Fields
Input Field Description
amount - NonNegativeInt The cash or market value of the asset in dollars
dateOfTransfer - Date The date when the gift/grant funds were transferred into the borrower's account
donorEmployeeIdentificationNumber - String Employer Identification Number (EIN) of the gift/grant donor
donorName - String Full name of the person providing the gift/grant
donorPhoneNumber - String The phone number of the person providing the gift/grant
id - ID! The ID of the asset to update
isIncludedInAssetAccount - Boolean Indicates whether the gift/grant funds have already been included as part of an asset account considered for the loan
isSellerFunded - Boolean Indicates whether the gift/grant is funded by the seller
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
source - GiftSource Gift/Grant source
Example
{
  "amount": 123,
  "dateOfTransfer": "2007-12-03",
  "donorEmployeeIdentificationNumber": "abc123",
  "donorName": "abc123",
  "donorPhoneNumber": "abc123",
  "id": 4,
  "isIncludedInAssetAccount": true,
  "isSellerFunded": false,
  "nonBorrowerOwnerNames": ["xyz789"],
  "source": "COMMUNITY_NON_PROFIT"
}

UpdateIncomeInput

Description

Input to the updateIncome mutation. This is a 'oneOf' type where exactly one field must be populated.

Fields
Input Field Description
any - UpdateAnyIncomeInput Update an Income of any type that implements the Income interface
mortgageCreditCertificate - UpdateMortgageCreditCertificateIncomeInput
other - UpdateOtherIncomeInput
selfEmployment - UpdateSelfEmploymentIncomeInput
standardEmployment - UpdateStandardEmploymentIncomeInput
Example
{
  "any": UpdateAnyIncomeInput,
  "mortgageCreditCertificate": UpdateMortgageCreditCertificateIncomeInput,
  "other": UpdateOtherIncomeInput,
  "selfEmployment": UpdateSelfEmploymentIncomeInput,
  "standardEmployment": UpdateStandardEmploymentIncomeInput
}

UpdateIncomeResponse

Description

Response of the updateIncome mutation.

Fields
Field Name Description
income - Income! The updated income
Example
{"income": Income}

UpdateIndividualDevelopmentAccountAssetInput

Fields
Input Field Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt The cash or market value of the asset in dollars
id - ID! The ID of the asset to update
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
Example
{
  "accountIdentifier": "xyz789",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "id": 4,
  "institutionName": "xyz789",
  "nonBorrowerOwnerNames": ["abc123"]
}

UpdateLiabilityInput

Description

Update an updateLiability. Fields with non-null values will be updated, the rest will be ignored.

Fields
Input Field Description
accountIdentifier - String Account identifier
balance - NonNegativeFloat Unpaid balance
bankName - String Bank name
creditorName - String Creditor name
id - ID! Liability ID
monthlyPayment - NonNegativeFloat Monthly payment
type - LiabilityType The type of liability
Example
{
  "accountIdentifier": "abc123",
  "balance": 123.45,
  "bankName": "abc123",
  "creditorName": "xyz789",
  "id": "4",
  "monthlyPayment": 123.45,
  "type": "BORROWER_ESTIMATED_TOTAL_MONTHLY_LIABILITY_PAYMENT"
}

UpdateLiabilityResponse

Description

Response of the updateLiability mutation.

Fields
Field Name Description
liability - Liability The updated Liability, or null if the update was rejected
userErrors - [GenericUserError!]!
Example
{
  "liability": Liability,
  "userErrors": [GenericUserError]
}

UpdateLifeInsuranceAssetInput

Fields
Input Field Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt The cash or market value of the asset in dollars
id - ID! The ID of the asset to update
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
Example
{
  "accountIdentifier": "xyz789",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "id": "4",
  "institutionName": "abc123",
  "nonBorrowerOwnerNames": ["abc123"]
}

UpdateLoanInput

Description

Input to the updateLoan mutation.

Fields
Input Field Description
cashOutType - RefinanceCashOutType LO-set refinance/cash-out type (distinct from the pricing-derived value)
closingDate - Date The date that the purchase is set to close.
earnestMoneyDeposit - NonNegativeFloat The total amount of earnest money deposit
id - ID! The ID or friendly ID of the loan.
loanPurpose - LoanPurposeType The purpose for which the loan proceeds will be used.
loanTermYears - PositiveFloat The term of this loan in years.
outOfPocketMax - NonNegativeInt The maximum amount of assets (in dollars) to be used towards the loan.
purchasePrice - NonNegativeInt The actual purchase price (in dollars).
refinanceCashOutProceeds - NonNegativeInt Refinance cash out proceeds not used towards paying off existing liens.
sellerCredit - NonNegativeInt The total seller credit to be applied towards closing costs
Example
{
  "cashOutType": "CASH_OUT",
  "closingDate": "2007-12-03",
  "earnestMoneyDeposit": 123.45,
  "id": "4",
  "loanPurpose": "PURCHASE",
  "loanTermYears": 123.45,
  "outOfPocketMax": 123,
  "purchasePrice": 123,
  "refinanceCashOutProceeds": 123,
  "sellerCredit": 123
}

UpdateLoanResponse

Description

Response of the updateLoan mutation.

Fields
Field Name Description
loan - Loan! The updated loan.
Example
{"loan": Loan}

UpdateLoanScriptInput

Description

Input for updating a loan script.

Fields
Input Field Description
description - String New description.
scenarioId - String! The scenarioId of the script to update.
spec - JSONObject Replacement script payload. Validated against the strict loan-script schema.
Example
{
  "description": "abc123",
  "scenarioId": "abc123",
  "spec": {}
}

UpdateLoanScriptResponse

Description

Result of updating a loan script.

Fields
Field Name Description
loanScript - LoanScript! The updated script.
Example
{"loanScript": LoanScript}

UpdateMoneyMarketFundAssetInput

Fields
Input Field Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt The cash or market value of the asset in dollars
id - ID! The ID of the asset to update
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
Example
{
  "accountIdentifier": "xyz789",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "id": 4,
  "institutionName": "xyz789",
  "nonBorrowerOwnerNames": ["xyz789"]
}

UpdateMortgageCreditCertificateIncomeInput

Description

Input for updating a MortgageCreditCertificateIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
id - ID! The ID of the income to update
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
percentageOfInterest - NonNegativeFloat The percentage of interest that the mortgage credit certificate will cover. This field is expressed as a percent. As an example, 50.1% is expressed as 50.1.
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "id": 4,
  "payPeriodFrequency": "ANNUALLY",
  "percentageOfInterest": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

UpdateMutualFundAssetInput

Fields
Input Field Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt The cash or market value of the asset in dollars
id - ID! The ID of the asset to update
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
Example
{
  "accountIdentifier": "xyz789",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "id": 4,
  "institutionName": "xyz789",
  "nonBorrowerOwnerNames": ["xyz789"]
}

UpdateNonBorrowingOwnerInput

Fields
Input Field Description
id - ID!
personalInformation - PersonalInformationInput
Example
{"id": 4, "personalInformation": PersonalInformationInput}

UpdateNonBorrowingOwnerResponse

Fields
Field Name Description
nonBorrowingOwner - NonBorrowingOwner!
Example
{"nonBorrowingOwner": NonBorrowingOwner}

UpdateNotableActivityInput

Description

Input to the updateNotableActivity mutation.

Fields
Input Field Description
activityType - FinancialAccountActivityType Activity type
amount - Int The amount of money in dollars
date - Date The date when the activity occurred
description - String Description of the activity
id - ID! The ID of the FinancialAccountActivity
Example
{
  "activityType": "LARGE_DEPOSIT",
  "amount": 123,
  "date": "2007-12-03",
  "description": "abc123",
  "id": "4"
}

UpdateNotableActivityResponse

Description

Response of the updateNotableActivity mutation.

Fields
Field Name Description
activity - FinancialAccountActivity! The FinancialAccountActivity entity that was updated
Example
{"activity": FinancialAccountActivity}

UpdateOrganizationCustomerMarginInput

Fields
Input Field Description
customerMargin - NonNegativeFloat! The customer margin to store on an existing fixed-take agreement, in points (1.5 = 1.5%). Share-based agreements are not supported.
pylonTake - NonNegativeFloat Pylon's fixed take, in points (1.5 = 1.5%). When omitted, the current fixed-take window's stored take is kept.
Example
{"customerMargin": 123.45, "pylonTake": 123.45}

UpdateOrganizationCustomerMarginResponse

Fields
Field Name Description
customerMargin - NonNegativeFloat! The stored customer margin after the update, in points.
globalMargin - NonNegativeFloat! The full margin priced into the loan after the update (customer margin + Pylon take), in points.
pylonTake - NonNegativeFloat! Pylon's take after the update, in points.
Example
{"customerMargin": 123.45, "globalMargin": 123.45, "pylonTake": 123.45}

UpdateOrganizationInput

Fields
Input Field Description
companyAddress - AddressInput The organization's company address.
companyLegalName - String
companyName - String
companySupportEmail - String
electronicCommunicationsConsentUrl - String
nmlsId - String
privacyPolicyUrl - String
telephonicCommunicationsConsentEnabled - Boolean
telephonicCommunicationsConsentUrl - String
termsOfServiceUrl - String
Example
{
  "companyAddress": AddressInput,
  "companyLegalName": "xyz789",
  "companyName": "xyz789",
  "companySupportEmail": "abc123",
  "electronicCommunicationsConsentUrl": "xyz789",
  "nmlsId": "abc123",
  "privacyPolicyUrl": "abc123",
  "telephonicCommunicationsConsentEnabled": true,
  "telephonicCommunicationsConsentUrl": "xyz789",
  "termsOfServiceUrl": "abc123"
}

UpdateOrganizationLicensingInput

Fields
Input Field Description
states - [OrganizationStateWithLicensesInput!]!
Example
{"states": [OrganizationStateWithLicensesInput]}

UpdateOrganizationLicensingResponse

Fields
Field Name Description
licensing - OrganizationLicensing
userErrors - [GenericUserError!]!
Example
{
  "licensing": OrganizationLicensing,
  "userErrors": [GenericUserError]
}

UpdateOrganizationMarginInput

Fields
Input Field Description
margin - NonNegativeFloat! The total margin to store, in points (1.5 = 1.5%).
Example
{"margin": 123.45}

UpdateOrganizationMarginResponse

Fields
Field Name Description
margin - NonNegativeFloat!
Example
{"margin": 123.45}

UpdateOrganizationOriginationInput

Fields
Input Field Description
defaultLoanChannel - LoanChannel The origination channel this customer's loans default to. Pass null to reset it to the default channel (Wholesale).
mersOrgId - Int The customer's MERS Organization ID. Must be a 7-digit integer. Pass null to clear it.
Example
{"defaultLoanChannel": "Broker", "mersOrgId": 123}

UpdateOrganizationOriginationResponse

Fields
Field Name Description
defaultLoanChannel - LoanChannel
mersOrgId - Int
Example
{"defaultLoanChannel": "Broker", "mersOrgId": 123}

UpdateOrganizationResponse

Fields
Field Name Description
organization - Organization
Example
{"organization": Organization}

UpdateOrganizationRolePermissionsInput

Fields
Input Field Description
id - ID!
permissions - [String!]!
Example
{
  "id": "4",
  "permissions": ["abc123"]
}

UpdateOrganizationRolePermissionsResponse

Fields
Field Name Description
organizationRole - OrganizationRole
userErrors - [GenericUserError!]!
Example
{
  "organizationRole": OrganizationRole,
  "userErrors": [GenericUserError]
}

UpdateOrganizationUserDetailsInput

Description

Fields to change on an organization user. Omitted fields are left unchanged. Names cannot be cleared, so a null name is also left unchanged; a null phone number or individual NMLS id clears the value.

Fields
Input Field Description
firstName - String New first name. Omit or pass null to leave unchanged.
id - ID!
individualNmlsId - String New individual NMLS id. Omit to leave unchanged; pass null to clear.
lastName - String New last name. Omit or pass null to leave unchanged.
phoneNumber - String New phone number. Omit to leave unchanged; pass null to clear.
Example
{
  "firstName": "xyz789",
  "id": "4",
  "individualNmlsId": "xyz789",
  "lastName": "xyz789",
  "phoneNumber": "xyz789"
}

UpdateOrganizationUserDetailsResponse

Fields
Field Name Description
organizationUser - OrganizationUser
userErrors - [GenericUserError!]!
Example
{
  "organizationUser": OrganizationUser,
  "userErrors": [GenericUserError]
}

UpdateOrganizationUserRolesInput

Fields
Input Field Description
id - ID!
roles - [ID!]!
Example
{"id": "4", "roles": [4]}

UpdateOrganizationUserRolesResponse

Fields
Field Name Description
organizationUser - OrganizationUser
userErrors - [GenericUserError!]!
Example
{
  "organizationUser": OrganizationUser,
  "userErrors": [GenericUserError]
}

UpdateOtherAssetInput

Fields
Input Field Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt The cash or market value of the asset in dollars
description - String Description of the asset
id - ID! The ID of the asset to update
institutionName - String Institution name
isLiquid - Boolean Indicates whether or not the asset is liquid
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
Example
{
  "accountIdentifier": "abc123",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "description": "abc123",
  "id": "4",
  "institutionName": "abc123",
  "isLiquid": true,
  "nonBorrowerOwnerNames": ["abc123"]
}

UpdateOtherIncomeInput

Description

Input for updating an OtherIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
description - String Information about the income type
id - ID! The ID of the income to update
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "description": "xyz789",
  "id": "4",
  "payPeriodFrequency": "ANNUALLY",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

UpdateOwnedPropertyInput

Description

Input to the updateOwnedProperty mutation.

Fields
Input Field Description
address - AddressInput The address of the property
borrowingOwnerIds - [ID!] IDs of the borrowers who own this property. If this field is defined, it will replace the existing owner IDs.
currentUsageType - PropertyUsageType How the owner is using this property.
homeInsuranceMonthlyPayment - NonNegativeInt The dollar amount of monthly home insurance premium.
id - ID! The ID of the OwnedProperty
intendedDisposition - PropertyDisposition The intended disposition of the property. Indicates whether the borrowers will be retaining or selling (or sold) the property.
intendedUsageType - PropertyUsageType How the owner intends to use this property.
monthlyAssociationDues - NonNegativeInt Monthly association dues (in dollars)
monthlyRentalIncome - NonNegativeInt The expected monthly rental income (in dollars)
mortgageInsuranceMonthlyPayment - NonNegativeInt The dollar amount of monthly mortgage insurance monthly premium.
neighborhoodHousingType - NeighborhoodHousingType The type of housing (e.g. single or multi-family)
propertyTaxMonthlyPayment - NonNegativeInt The dollar amount of property taxes due per month.
propertyValue - NonNegativeInt The estimated value of the owned property, in whole dollars
purchaseDate - Date The date when the property was originally purchased.
sellDate - Date The date when the property was sold. Only relevant for previously owned properties.
Example
{
  "address": AddressInput,
  "borrowingOwnerIds": ["4"],
  "currentUsageType": "INVESTMENT",
  "homeInsuranceMonthlyPayment": 123,
  "id": 4,
  "intendedDisposition": "PENDING_SALE",
  "intendedUsageType": "INVESTMENT",
  "monthlyAssociationDues": 123,
  "monthlyRentalIncome": 123,
  "mortgageInsuranceMonthlyPayment": 123,
  "neighborhoodHousingType": "CONDOMINIUM",
  "propertyTaxMonthlyPayment": 123,
  "propertyValue": 123,
  "purchaseDate": "2007-12-03",
  "sellDate": "2007-12-03"
}

UpdateOwnedPropertyResponse

Description

Response of the updateOwnedProperty mutation.

Fields
Field Name Description
ownedProperty - OwnedProperty! The updated OwnedProperty
Example
{"ownedProperty": OwnedProperty}

UpdatePartyInput

Fields
Input Field Description
address - AddressInput US address to update. Fields with non-null values will be updated, the rest will be ignored.
id - ID! Node ID
individual - PartyIndividualInput Details about the individual associated with the party.
legalEntity - PartyLegalEntityInput Details about the party, if the party is a legal entity
role - PartyRole Indicates the type of relationship between the party and the loan.
Example
{
  "address": AddressInput,
  "id": "4",
  "individual": PartyIndividualInput,
  "legalEntity": PartyLegalEntityInput,
  "role": "APPRAISER"
}

UpdatePartyResponse

Fields
Field Name Description
party - Party
userErrors - [UserError!]!
Example
{
  "party": Party,
  "userErrors": [UserError]
}

UpdatePendingNetSaleProceedsFromRealEstateAssetInput

Fields
Input Field Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt The cash or market value of the asset in dollars
id - ID! The ID of the asset to update
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
ownedPropertyId - ID The ID of the associated OwnedProperty that is pending sale
salePrice - NonNegativeInt Sale price of the property in dollars
Example
{
  "accountIdentifier": "abc123",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "id": "4",
  "institutionName": "abc123",
  "nonBorrowerOwnerNames": ["xyz789"],
  "ownedPropertyId": "4",
  "salePrice": 123
}

UpdatePreviousBorrowerAddressInput

Description

Update previous borrower address input

Fields
Input Field Description
address - AddressInput US address to update
id - ID! Borrower Address ID
monthlyRentAmount - NonNegativeInt The monthly rental amount in dollars
moveInDate - Date Move in date
moveOutDate - Date Move out date
residencyBasis - BorrowerResidencyBasis The basis on which the borrower lives/lived at this address
Example
{
  "address": AddressInput,
  "id": "4",
  "monthlyRentAmount": 123,
  "moveInDate": "2007-12-03",
  "moveOutDate": "2007-12-03",
  "residencyBasis": "LIVING_RENT_FREE"
}

UpdatePreviousBorrowerAddressResponse

Fields
Field Name Description
address - Address! US Address
id - ID! Node ID
monthlyRentAmount - NonNegativeInt The monthly rental amount in dollars
moveInDate - Date Move in date
moveOutDate - Date Move out date
residencyBasis - BorrowerResidencyBasis The basis on which the borrower lives/lived at this address
Example
{
  "address": Address,
  "id": "4",
  "monthlyRentAmount": 123,
  "moveInDate": "2007-12-03",
  "moveOutDate": "2007-12-03",
  "residencyBasis": "LIVING_RENT_FREE"
}

UpdateProceedsFromSaleOfNonRealEstateAssetInput

Fields
Input Field Description
amount - NonNegativeInt The cash or market value of the asset in dollars
id - ID! The ID of the asset to update
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
Example
{
  "amount": 123,
  "id": "4",
  "nonBorrowerOwnerNames": ["xyz789"]
}

UpdateProceedsFromSecuredLoanAssetInput

Fields
Input Field Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt The cash or market value of the asset in dollars
id - ID! The ID of the asset to update
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
Example
{
  "accountIdentifier": "abc123",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "id": "4",
  "institutionName": "xyz789",
  "nonBorrowerOwnerNames": ["abc123"]
}

UpdateProceedsFromUnsecuredLoanAssetInput

Fields
Input Field Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt The cash or market value of the asset in dollars
id - ID! The ID of the asset to update
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
Example
{
  "accountIdentifier": "abc123",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "id": "4",
  "institutionName": "abc123",
  "nonBorrowerOwnerNames": ["xyz789"]
}

UpdateProcessorFeeInput

Fields
Input Field Description
newFeeAmount - Float!
roleId - ID!
userId - ID!
Example
{
  "newFeeAmount": 123.45,
  "roleId": "4",
  "userId": 4
}

UpdateProcessorFeeResponse

Fields
Field Name Description
blockedLoans - [BlockedLoan!]!
updatedLoanCount - Int!
userErrors - [UserError!]!
Example
{
  "blockedLoans": [BlockedLoan],
  "updatedLoanCount": 987,
  "userErrors": [UserError]
}

UpdateRetirementFundAssetInput

Fields
Input Field Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt The cash or market value of the asset in dollars
id - ID! The ID of the asset to update
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
Example
{
  "accountIdentifier": "xyz789",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "id": 4,
  "institutionName": "abc123",
  "nonBorrowerOwnerNames": ["xyz789"]
}

UpdateSavingsAccountAssetInput

Fields
Input Field Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt The cash or market value of the asset in dollars
id - ID! The ID of the asset to update
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
Example
{
  "accountIdentifier": "abc123",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "id": "4",
  "institutionName": "xyz789",
  "nonBorrowerOwnerNames": ["abc123"]
}

UpdateSelfEmploymentBusinessInput

Description

Input for updating a self employment business

Fields
Input Field Description
address - AddressInput
name - String Name
percentOwnership - NonNegativeFloat Percent of the business that the borrower owns. This field is expressed as a percent. As an example, 50.1% is expressed as 50.1.
Example
{
  "address": AddressInput,
  "name": "abc123",
  "percentOwnership": 123.45
}

UpdateSelfEmploymentIncomeInput

Description

Input for updating a SelfEmploymentIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerId - ID The borrower associated with the income
business - UpdateSelfEmploymentBusinessInput The associated self-employment business (if one exists)
employmentClassification - EmploymentClassificationType Whether this is the borrower's primary or secondary employer
endDate - Date End date. A value of null indicates that the employment is current.
externalId - String External ID from third-party services
id - ID! The ID of the income to update
isCurrentEmployment - Boolean Is the employment current?
numberOfMonthsInLineOfWork - NonNegativeInt The total number of months the borrower has been employed in this line of work, regardless of employer
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
position - String A name or description of the employment position or job title
startDate - Date Start date
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerId": 4,
  "business": UpdateSelfEmploymentBusinessInput,
  "employmentClassification": "PRIMARY",
  "endDate": "2007-12-03",
  "externalId": "xyz789",
  "id": "4",
  "isCurrentEmployment": false,
  "numberOfMonthsInLineOfWork": 123,
  "payPeriodFrequency": "ANNUALLY",
  "position": "abc123",
  "startDate": "2007-12-03",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

UpdateStandardEmploymentIncomeInput

Description

Input for updating a StandardEmploymentIncome

Fields
Input Field Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrowerHasSpecialRelationshipWithEmployer - Boolean When true, indicates that the borrower has a special relationship with the employer, such as familial ties. Default = false
borrowerId - ID The borrower associated with the income
employer - EmployerInput Employer details
employmentClassification - EmploymentClassificationType Whether this is the borrower's primary or secondary employer
endDate - Date End date. A value of null indicates that the employment is current.
externalId - String External ID from third-party services
id - ID! The ID of the income to update
incomePayType - IncomePayType The type of pay (hourly or salaried)
isCurrentEmployment - Boolean Is the employment current?
numberOfMonthsInLineOfWork - NonNegativeInt The total number of months the borrower has been employed in this line of work, regardless of employer
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income. Default = MONTHLY
position - String A name or description of the employment position or job title
startDate - Date Start date
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt Stated monthly income amount in dollars
Example
{
  "averageHoursPerWeek": 123,
  "borrowerHasSpecialRelationshipWithEmployer": true,
  "borrowerId": 4,
  "employer": EmployerInput,
  "employmentClassification": "PRIMARY",
  "endDate": "2007-12-03",
  "externalId": "abc123",
  "id": "4",
  "incomePayType": "HOURLY",
  "isCurrentEmployment": false,
  "numberOfMonthsInLineOfWork": 123,
  "payPeriodFrequency": "ANNUALLY",
  "position": "xyz789",
  "startDate": "2007-12-03",
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123
}

UpdateStockAssetInput

Fields
Input Field Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt The cash or market value of the asset in dollars
id - ID! The ID of the asset to update
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
Example
{
  "accountIdentifier": "abc123",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "id": 4,
  "institutionName": "xyz789",
  "nonBorrowerOwnerNames": ["xyz789"]
}

UpdateStockOptionsAssetInput

Fields
Input Field Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt The cash or market value of the asset in dollars
id - ID! The ID of the asset to update
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
Example
{
  "accountIdentifier": "xyz789",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "id": 4,
  "institutionName": "xyz789",
  "nonBorrowerOwnerNames": ["abc123"]
}

UpdateSubjectPropertyInput

Description

Input to the updateSubjectProperty mutation

Fields
Input Field Description
attachmentType - AttachmentEnum Whether the property is physically attached to neighboring units
borrowerSpecifiedMonthlyPropertyTaxes - NonNegativeInt The borrower-specified monthly property taxes
city - String City
country - String Country
fipsCountyCode - String County-level FIPS code
hoaDues - NonNegativeInt The monthly HOA dues of the property
homeInsuranceMonthlyAmount - NonNegativeInt The monthly home insurance premium associated with this property
id - ID! The ID of the SubjectProperty to update
isManufacturedHome - Boolean Marks a subject property as a manufactured home
isMixedUse - Boolean Marks a subject property as having a mixed-use character
isPlannedUnitDevelopment - Boolean Marks a subject property as being part of a planned unit development
line - String Street address line 1
line2 - String Street address line 2
manuallyEstimatedValue - NonNegativeInt The manually estimated value of the property
neighborhoodHousingType - NeighborhoodHousingType The type of property
numberOfUnits - NonNegativeInt The number of dwelling units on the property
propertyTaxesAndInsuranceIncludedInPayment - Boolean Is Property taxes and insurance included in payment
rentalEstimatedGrossMonthlyRentAmount - NonNegativeInt The estimated gross monthly rent amount (for investment properties)
zipCode - String Zip code
Example
{
  "attachmentType": "ATTACHED",
  "borrowerSpecifiedMonthlyPropertyTaxes": 123,
  "city": "abc123",
  "country": "abc123",
  "fipsCountyCode": "xyz789",
  "hoaDues": 123,
  "homeInsuranceMonthlyAmount": 123,
  "id": "4",
  "isManufacturedHome": false,
  "isMixedUse": false,
  "isPlannedUnitDevelopment": true,
  "line": "abc123",
  "line2": "abc123",
  "manuallyEstimatedValue": 123,
  "neighborhoodHousingType": "CONDOMINIUM",
  "numberOfUnits": 123,
  "propertyTaxesAndInsuranceIncludedInPayment": false,
  "rentalEstimatedGrossMonthlyRentAmount": 123,
  "zipCode": "abc123"
}

UpdateSubjectPropertyIntentInput

Description

Input to the updateSubjectPropertyIntent mutation

Fields
Input Field Description
fipsCountyCode - String County-level FIPS code
id - ID! The ID of the subject property intent to update
isPlannedUnitDevelopment - Boolean Marks a subject property as being part of a planned unit development
neighborhoodHousingType - NeighborhoodHousingType The type of housing
propertyUsageType - PropertyUsageType How the borrower(s) intend to use the property
state - StateAbbreviated Abbreviated US state name (including DC)
Example
{
  "fipsCountyCode": "abc123",
  "id": 4,
  "isPlannedUnitDevelopment": true,
  "neighborhoodHousingType": "CONDOMINIUM",
  "propertyUsageType": "INVESTMENT",
  "state": "AK"
}

UpdateSubjectPropertyIntentResponse

Description

Response of the updateSubjectPropertyIntent mutation

Fields
Field Name Description
subjectPropertyIntent - SubjectPropertyIntent! The updated SubjectPropertyIntent
Example
{"subjectPropertyIntent": SubjectPropertyIntent}

UpdateSubjectPropertyResponse

Description

Response of the updateSubjectProperty mutation

Fields
Field Name Description
subjectProperty - SubjectProperty! The SubjectProperty that was updated
Example
{"subjectProperty": SubjectProperty}

UpdateTaskNameInput

Description

Input to the updateTaskName mutation.

Fields
Input Field Description
loanId - ID! The ID or friendly ID of the loan.
newName - String The new name of the task
taskId - ID! The task id of the task to change the name of
Example
{
  "loanId": 4,
  "newName": "xyz789",
  "taskId": "4"
}

UpdateTaskNameResponse

Description

Response of the updateTaskName mutation.

Fields
Field Name Description
assignedTo - TaskAssignee! Who the task is assigned to
assigneeBorrowerId - ID The id of the borrower that this task is related to
completedAt - DateTime The timestamp of when the task was completed
createdOn - DateTime! The timestamp of when the task was created
customTaskName - String The custom name override of the task
deletedAt - DateTime An optional timestamp for when the task was deleted
details - TaskEntityDetails Details about the entity this task is associated with Use relatedEntity instead, which resolves the associated entity as a Node whose own fields can be queried directly.
documentRequiredCondition - [DocumentRequiredCondition!] The required document conditions on the task
dueDate - DateTime The due date of the task
id - ID! The Id of the task
priority - Int The priority level of the task
relatedEntity - Node The entity this task is about (e.g. the Asset for a bank-statement upload task, or the AssetTransaction for a large-deposit task), resolvable as a Node. Prefer this over the deprecated details field.
relatedEntityId - String The global id of the entity this task is about, resolvable via relatedEntity or the node(id) query. Use relatedEntity { id } instead — relatedEntity resolves the entity itself (its id plus all its other fields) in one query.
status - TaskStatus! The status of task
taskDescription - String The description of the task
taskName - String The name of the task
type - TaskType! The type of task
Example
{
  "assignedTo": "BORROWER",
  "assigneeBorrowerId": "4",
  "completedAt": "2007-12-03T10:15:30Z",
  "createdOn": "2007-12-03T10:15:30Z",
  "customTaskName": "abc123",
  "deletedAt": "2007-12-03T10:15:30Z",
  "details": TaskEntityDetails,
  "documentRequiredCondition": [
    DocumentRequiredCondition
  ],
  "dueDate": "2007-12-03T10:15:30Z",
  "id": "4",
  "priority": 987,
  "relatedEntity": Node,
  "relatedEntityId": "abc123",
  "status": "AutomaticallyCancelled",
  "taskDescription": "xyz789",
  "taskName": "abc123",
  "type": "DataVerification"
}

UpdateTrustAccountAssetInput

Fields
Input Field Description
accountIdentifier - String A unique alphanumeric string identifying the asset. Also known as 'Account Number'
accountOpenedDate - Date The date when financial account was opened
amount - NonNegativeInt The cash or market value of the asset in dollars
id - ID! The ID of the asset to update
institutionName - String Institution name
nonBorrowerOwnerNames - [String!] Full names of asset owners or account holders not included in the loan application
trusteeName - String The legal name of the trustee
Example
{
  "accountIdentifier": "xyz789",
  "accountOpenedDate": "2007-12-03",
  "amount": 123,
  "id": "4",
  "institutionName": "xyz789",
  "nonBorrowerOwnerNames": ["abc123"],
  "trusteeName": "xyz789"
}

UpdateUdnNotificationEmailsInput

Description

Input to update UDN notification emails

Fields
Input Field Description
monitorId - ID! The UDN monitor ID
notificationEmails - [String!]! New notification email addresses
Example
{
  "monitorId": 4,
  "notificationEmails": ["abc123"]
}

UpdateUdnNotificationEmailsResponse

Description

Response from updating UDN notification emails

Fields
Field Name Description
success - Boolean
userErrors - [String!]
Example
{"success": false, "userErrors": ["abc123"]}

UpgradeCreditReportInput

Description

Input to upgrade an existing credit report to tri-merge

Fields
Input Field Description
creditPullId - ID! The ID of the completed credit pull to upgrade
Example
{"creditPullId": "4"}

UpgradeCreditReportResponse

Description

Response from upgrading a credit report

Fields
Field Name Description
job - CreditPullJob Credit pull job for the upgrade
userErrors - [GenericUserError!] User errors preventing upgrade
Example
{
  "job": CreditPullJob,
  "userErrors": [GenericUserError]
}

UsCounty

Fields
Field Name Description
fipsCode - String! Five-digit FIPS code
name - String! Name
state - UsState! US State the county is in
Example
{
  "fipsCode": "xyz789",
  "name": "abc123",
  "state": UsState
}

UsState

Fields
Field Name Description
abbreviation - String! Two-letter abbreviation
counties - [UsCounty!]!
name - String!
Example
{
  "abbreviation": "xyz789",
  "counties": [UsCounty],
  "name": "abc123"
}

UserError

Description

User error interface

Fields
Field Name Description
code - String A stable error code for programmatic handling. Format: {DOMAIN}_{ERROR_NAME} (e.g., 'LOAN_CLOSED', 'AUS_NO_PRODUCT_PRICING').
errorId - ID! A unique identifier for this error instance, useful for tracking and debugging.
field - [String!] Path to the input field that caused the error (e.g., ['input', 'customer', 'email']). Null when not associated with a specific field.
message - String! A human-readable error message.
Example
{
  "code": "xyz789",
  "errorId": 4,
  "field": ["abc123"],
  "message": "xyz789"
}

VaBenefitsNonEducationalIncome

Description

Veteran's Association benefits that are not related to education

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "id": "4",
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": "4"
}

VendorName

Values
Enum Value Description

PLAID

TRUV

Example
"PLAID"

VerifyMutations

Description

Verification mutations namespace

Fields
Field Name Description
createInitializationToken - CreateInitializationTokenResponse
createUpdateModeToken - CreateUpdateModeTokenResponse
Arguments
exchangePublicToken - ExchangePublicTokenResponse
Arguments
getPlaidLayerSession - GetPlaidLayerSessionResponse
Arguments
Example
{
  "createInitializationToken": PlaidLinkToken,
  "createUpdateModeToken": CreateUpdateModeTokenResponse,
  "exchangePublicToken": PlaidItemAccess,
  "getPlaidLayerSession": GetPlaidLayerSessionResponse
}

VerifyQueries

Description

Verification queries namespace

Fields
Field Name Description
truvVerificationOutcome - TruvVerificationOutcome!
Arguments
Example
{"truvVerificationOutcome": "COMPLETE"}

WaivedRequirement

Description

A requirement that has been explicitly waived by an authorized actor.

Fields
Field Name Description
borrowerIds - [ID!]! Borrowers this requirement applies to; empty when the requirement is loan-level. A composite carries the union of its children's borrowers.
children - [Requirement!]! Child requirements of a composite, each with its own phase, recursing through nested composites so a deep tree renders as a tree. Empty for leaf requirements. Unlike fulfillmentOptions, present in every phase — a satisfied or waived composite still lists its children here.
description - String! Human-readable label for this requirement, e.g. "W2 for Acme Corp (2025)".
id - ID! Node ID
openedAt - DateTimeISO! When this requirement (re)entered its current OPEN period. A removed and later restored requirement carries the restore time, not its original creation time.
phase - RequirementPhase! Current resolution phase. Redundant with __typename but useful for client-side filtering without fragment matching.
provenance - [ProvenanceSource!]! Why this requirement exists — rule evaluation, manual condition, or data dependency.
reason - String! Reason the requirement was waived.
waivedAt - DateTimeISO! When this requirement was waived.
waivedBy - String! Identifier of the user who waived this requirement.
Example
{
  "borrowerIds": ["4"],
  "children": [Requirement],
  "description": "xyz789",
  "id": "4",
  "openedAt": "2007-12-03T10:15:30Z",
  "phase": "OPEN",
  "provenance": [ProvenanceSource],
  "reason": "abc123",
  "waivedAt": "2007-12-03T10:15:30Z",
  "waivedBy": "xyz789"
}

WarehousingCost

Fields
Field Name Description
points - Float The amount of warehouse margins on the product.
product - String The name of the product
Example
{"points": 123.45, "product": "xyz789"}

WarehousingCosts

Fields
Field Name Description
products - [WarehousingCost!] A list of products and their warehouse margins
Example
{"products": [WarehousingCost]}

WithdrawLoanInput

Description

Input to the withdrawLoan mutation.

Fields
Input Field Description
id - ID! ID of the loan to withdraw
Example
{"id": 4}

WithdrawLoanResponse

Example
LoanClosedError

WithdrawLoanSuccess

Description

A successful response after a loan has been archived.

Fields
Field Name Description
id - ID! ID of the withdrawn loan
Example
{"id": 4}

WorkersCompensationIncome

Description

Workers compensation income

Fields
Field Name Description
averageHoursPerWeek - NonNegativeInt The average number of hours worked per week
borrower - Borrower! The borrower associated with the income
id - ID! Node ID
payPeriodFrequency - PayPeriodFrequency The pay cycle frequency of this income
qualifiedAmount - NonNegativeFloat The qualified amount determined from this income
statedAmount - NonNegativeFloat The amount paid per cycle for this income
statedMonthlyAmount - NonNegativeInt! Stated monthly income amount in dollars Use statedAmount along with a payPeriodFrequency instead of this combined field
verifiedAmount - NonNegativeFloat The verified amount of this income
voieReportId - ID The external report if income has been verified
Example
{
  "averageHoursPerWeek": 123,
  "borrower": Borrower,
  "id": 4,
  "payPeriodFrequency": "ANNUALLY",
  "qualifiedAmount": 123.45,
  "statedAmount": 123.45,
  "statedMonthlyAmount": 123,
  "verifiedAmount": 123.45,
  "voieReportId": "4"
}

WriteDisputeInput

Fields
Input Field Description
kind - ApprovalProcessDisputeKind! The dispute action being recorded.
loanId - ID! Loan application id where the dispute evidence will be written.
reason - String Rejection rationale for REJECTION.
reasoning - String Reasoning narrative for CHALLENGE and WAIVE.
target - ID Target requirement id for WAIVE.
targetRef - ApprovalProcessEvidenceRefInput Target assertion-edge ref for CHALLENGE and REJECTION. Unused for WAIVE.
Example
{
  "kind": "CHALLENGE",
  "loanId": 4,
  "reason": "xyz789",
  "reasoning": "xyz789",
  "target": 4,
  "targetRef": ApprovalProcessEvidenceRefInput
}

WriteDisputeResponse

Fields
Field Name Description
evidenceId - ID! Id of the inserted dispute evidence row.
warnings - [UnderwritingReviewWarning!]! Non-fatal warnings about the write (the review verbs' warning vocabulary). Empty on a clean write.
Example
{
  "evidenceId": "4",
  "warnings": ["TARGET_SUPERSEDED"]
}

ZeroToleranceFeeIncreasedReason

Description

§1026.19(e)(3)(i): an individual zero-tolerance charge increased.

Fields
Field Name Description
currentAmount - MonetaryAmount!
disclosedAmount - MonetaryAmount!
fee - DisclosureDriftFeeIdentity!
increaseAmount - MonetaryAmount!
kind - DisclosureDriftReasonKind!
Example
{
  "currentAmount": MonetaryAmount,
  "disclosedAmount": MonetaryAmount,
  "fee": DisclosureDriftFeeIdentity,
  "increaseAmount": MonetaryAmount,
  "kind": "APR_INACCURATE"
}