Skip to content

updateApplicantEligibility

Mutation

Update debts on an existing underwriting document. Used to overwrite auto generated underwriting results and update debts by either removing, adding or editing them. Underwriting is run against the updated input.

When to Use This Mutation

Use updateApplicantEligibility when you need to:

  • ✅ Modify fields on existing debts (balance, creditor, selection status, etc.)
  • ✅ Add new manual debts that weren’t on the credit report
  • ✅ Remove manual debts (⚠ Only MANUAL debts can be removed)
  • ✅ Update applicant contact information
  • ✅ Update payment plan or budget details
  • ✅ Add exceptions to override underwriting rules for specific debts
  • ✅ Re-run underwriting with updated information

Mutation Signature

mutation {
updateApplicantEligibility(applicationType: ApplicationTypeInput!, updatedUWFields: UwResultUpdateInput!): EligibilityResponse!
}

Critical Debt Management Rules

Understanding Debt Sources

Every debt in the underwriting document has a source field that determines what operations are allowed:

SourceOriginCan Update?Can Remove?
CREDIT_REPORTPulled from credit bureau✅ Yes❌ No
MANUALAdded manually via API✅ Yes✅ Yes

How Debt Updates Work

The API handles debts differently based on their source:

Credit Report Debts (source: "CREDIT_REPORT"):

  • Not included in update: Debt remains unchanged - no action needed
  • Included with updates: Only the specified fields are updated
  • Included without changes: You can include unchanged credit report debts - they will simply remain as-is
  • ✅ You only need to include credit report debts you want to modify (but including unchanged ones is fine)
  • Cannot be removed from the underwriting result

Manual Debts (source: "MANUAL"):

  • Not included in update: Debt is REMOVED from the underwriting result
  • Included in update: Debt is retained with any updated fields
  • Included without changes: You can include unchanged manual debts to retain them
  • ✅ You must include manual debts you want to keep
  • ✅ Can be removed by simply not including them in the update

Summary Table:

Debt SourceIncluded in UpdateNot Included in Update
CREDIT_REPORT✅ Fields updated✅ No change (remains as-is)
MANUAL✅ Fields updated & retainedREMOVED from document

Example Requests

mutation UpdateApplicantEligibility($applicationType: ApplicationTypeInput!, $updatedUWFields: UwResultUpdateInput!) {
updateApplicantEligibility(applicationType: $applicationType, updatedUWFields: $updatedUWFields) {
# Add fields you want to retrieve
}
}

Example 1: Update Credit Report Debt and Selection

Scenario: Modify debt fields and selection status for existing credit report debts. Only need to include debts you want to change.

Variables:

{
"applicationType": "SINGLE",
"updatedUWFields": {
"id": "<your-uw-result-id>",
"revision": 1,
"updatedBy": "agent-123",
"leadId": "lead-456",
"applicantContactInfo": {
"applicantState": "CA",
"firstName": "John",
"lastName": "Doe",
"email": "john.doe@example.com",
"phone": "5551234567",
"ssn": "123456789",
"dob": "1985-06-15"
},
"applicantUwResult": {
"debts": [
{
"id": "debt-abc-123",
"isSelected": true,
"currentBalance": 5800,
"creditorName": "Capital One Updated"
},
{
"id": "debt-xyz-789",
"isSelected": false
}
]
}
}
}

What Happens:

  • debt-abc-123: Updated balance and creditor name
  • Use isSelected: true to include a debt in the program (even if it’s not eligible)
  • Use isSelected: false to exclude a debt from the program (even if it’s eligible)
  • All other credit report debts remain unchanged
  • ⚠️ All manual debts NOT included will be REMOVED

Response:

{
"data": {
"updateApplicantEligibility": {
"data": {
"id": "<your-uw-result-id>",
"revision": 2,
"applicationUwResult": {
"applicantPrequalified": true,
"totalDebt": 5800,
"totalEligibleDebt": 5800
},
"applicantUwResult": {
"debts": [
{
"id": "debt-abc-123",
"source": "CREDIT_REPORT",
"isSelected": true,
"eligibilityStatus": "INELIGIBLE",
"creditorName": "Capital One Updated",
"currentBalance": 5800
},
{
"id": "debt-xyz-789",
"source": "CREDIT_REPORT",
"isSelected": false,
"eligibilityStatus": "ELIGIBLE",
"creditorName": "Chase Bank",
"currentBalance": 12500
}
]
}
},
"errors": null
}
}
}

Example 2: Add a New Manual Debt

Scenario: Add a manual debt that wasn’t on the credit report. Remember to include any existing manual debts you want to keep.

Variables:

{
"applicationType": "SINGLE",
"updatedUWFields": {
"id": "<your-uw-result-id>",
"revision": 2,
"updatedBy": "agent-123",
"applicantContactInfo": {
"applicantState": "CA",
"firstName": "John",
"lastName": "Doe",
"email": "john.doe@example.com",
"phone": "5551234567",
"ssn": "123456789",
"dob": "1985-06-15"
},
"applicantUwResult": {
"debts": [
{
"creditorName": "Medical Collections LLC",
"creditorId": "creditor-med-001",
"accountNumber": "MED123456",
"currentBalance": 2500,
"originalBalance": 2500,
"accountType": "MEDICAL_BILL",
"creditorType": "COLLECTION_AGENCY",
"portfolioType": "INSTALLMENT",
"notes": [
"Manually added medical debt"
]
},
{
"id": "existing-manual-debt-id"
}
]
}
}
}

What Happens:

  • New manual debt is created with source: MANUAL
  • existing-manual-debt-id is retained
  • All credit report debts remain unchanged
  • ⚠️ Any other manual debts NOT included will be removed

Response:

{
"data": {
"updateApplicantEligibility": {
"data": {
"id": "<your-uw-result-id>",
"revision": 3,
"applicantUwResult": {
"debts": [
{
"id": "new-manual-debt-id",
"source": "MANUAL",
"isSelected": true,
"eligibilityStatus": "ELIGIBLE",
"accountType": "MEDICAL_BILL",
"accountNumber": "MED123456",
"creditorName": "Medical Collections LLC",
"creditorType": "COLLECTION_AGENCY",
"currentBalance": 2500,
"originalBalance": 2500,
"portfolioType": "INSTALLMENT",
"notes": [
"Manually added medical debt"
]
},
{
"id": "existing-manual-debt-id",
"source": "MANUAL",
"isSelected": true,
"eligibilityStatus": "ELIGIBLE"
}
]
}
},
"errors": null
}
}
}

Example 3: Remove a Manual Debt

Scenario: Remove a manual debt by simply not including it in the update. Keep other manual debts by including them.

Variables:

{
"applicationType": "SINGLE",
"updatedUWFields": {
"id": "<your-uw-result-id>",
"revision": 3,
"updatedBy": "agent-123",
"applicantContactInfo": {
"applicantState": "CA",
"firstName": "John",
"lastName": "Doe",
"email": "john.doe@example.com",
"phone": "5551234567",
"ssn": "123456789",
"dob": "1985-06-15"
},
"applicantUwResult": {
"debts": [
{
"id": "manual-debt-to-keep",
"isSelected": true
}
]
}
}
}

What Happens:

  • manual-debt-to-keep is retained
  • The omitted manual debt is removed from the document
  • All credit report debts remain unchanged

Response:

{
"data": {
"updateApplicantEligibility": {
"data": {
"id": "<your-uw-result-id>",
"revision": 4,
"applicantUwResult": {
"debts": [
{
"id": "manual-debt-to-keep",
"source": "MANUAL",
"isSelected": true
}
]
}
},
"errors": null
}
}
}

Example 4: Update Only Applicant Information

Scenario: Update applicant contact info without modifying any debts. ⚠️ Important: If you have manual debts, you must include them to keep them.

Variables:

{
"applicationType": "SINGLE",
"updatedUWFields": {
"id": "<your-uw-result-id>",
"revision": 4,
"updatedBy": "agent-123",
"applicantContactInfo": {
"applicantState": "TX",
"firstName": "John",
"lastName": "Doe",
"email": "john.new@example.com",
"phone": "5559999999",
"ssn": "123456789",
"dob": "1985-06-15",
"homeAddress": "456 New Street, Austin, TX 78701",
"hardship": "Loss of employment"
},
"budget": {
"totalMonthlyIncome": 5000,
"totalMonthlyExpense": 3500
}
}
}

What Happens:

  • Applicant state changed to TX
  • Email and phone updated
  • Address and hardship added
  • Budget information added
  • All credit report debts remain unchanged
  • ⚠️ All manual debts will be REMOVED (not included in update)

Response:

{
"data": {
"updateApplicantEligibility": {
"data": {
"id": "<your-uw-result-id>",
"revision": 5,
"applicantUwResult": {
"applicantInfo": {
"applicantContactInfo": {
"applicantState": "TX",
"email": "john.new@example.com",
"phone": "5559999999",
"homeAddress": "456 New Street, Austin, TX 78701",
"hardship": "Loss of employment"
},
"budget": {
"totalMonthlyIncome": 5000,
"totalMonthlyExpense": 3500
}
}
}
},
"errors": null
}
}
}

Example 5: JOINT Application Update

Scenario: Update a joint application with debts from both applicants and joint debts.

Variables:

{
"applicationType": "JOINT",
"updatedUWFields": {
"id": "<your-uw-result-id>",
"revision": 1,
"updatedBy": "agent-456",
"leadId": "joint-lead-789",
"applicantContactInfo": {
"applicantState": "NY",
"firstName": "Alice",
"lastName": "Johnson",
"email": "alice.j@example.com",
"phone": "5551112222",
"ssn": "111223333",
"dob": "1988-07-10",
"isMarriedToCoApplicant": true
},
"coApplicantContactInfo": {
"applicantState": "NY",
"firstName": "Bob",
"lastName": "Johnson",
"email": "bob.j@example.com",
"phone": "5553334444",
"ssn": "444556666",
"dob": "1986-09-25"
},
"applicantUwResult": {
"debts": [
{
"id": "debt-alice-001",
"isSelected": true
}
]
},
"coApplicantUwResult": {
"debts": [
{
"id": "debt-bob-001",
"isSelected": true
}
]
},
"jointUwResult": {
"debts": [
{
"id": "debt-joint-001",
"isSelected": true,
"coApplicantIsSelected": true
}
]
},
"budget": {
"totalMonthlyIncome": 8500,
"totalMonthlyExpense": 4200
},
"plan": {
"frequency": "BIWEEKLY",
"firstPaymentAmount": 450,
"secondPaymentAmount": 450,
"programTerm": 48,
"feePercentage": 27
}
}
}

What Happens:

  • Both applicantContactInfo and coApplicantContactInfo are required for JOINT applications
  • coApplicantIsSelected (for joint debts only): When true, the co-applicant has also selected this debt for the program. Both isSelected and coApplicantIsSelected must be true for the joint debt to be enrolled
  • Debt Placement: Always place debts in the same section as returned by checkApplicantEligibility:
    • applicantUwResult.debts → Debts belonging only to the primary applicant
    • coApplicantUwResult.debts → Debts belonging only to the co-applicant
    • jointUwResult.debts → Debts shared between both applicants
  • ⚠️ Warning: If you place a joint debt under applicantUwResult instead of jointUwResult, it will be treated as the primary applicant’s individual debt, resulting in incorrect eligibility status

Response:

{
"data": {
"updateApplicantEligibility": {
"data": {
"id": "<your-uw-result-id>",
"revision": 2,
"applicationUwResult": {
"applicantPrequalified": true,
"applicationType": "JOINT",
"totalDebt": 35000,
"totalEligibleDebt": 35000
},
"applicantUwResult": {
"debts": [
{
"id": "debt-alice-001",
"source": "CREDIT_REPORT",
"isSelected": true,
"eligibilityStatus": "ELIGIBLE"
}
]
},
"coApplicantUwResult": {
"debts": [
{
"id": "debt-bob-001",
"source": "CREDIT_REPORT",
"isSelected": true,
"eligibilityStatus": "ELIGIBLE"
}
]
},
"jointUwResult": {
"debts": [
{
"id": "debt-joint-001",
"isSelected": true,
"coApplicantIsSelected": true,
"eligibilityStatus": "ELIGIBLE"
}
]
},
"maxTerm": 48
},
"errors": null
}
}
}

Example 6: Add Exception Override

Scenario: Override underwriting rules for a specific debt. Note: The exceptions field is for documentation and does not affect the underwriting result.

Variables:

{
"applicationType": "SINGLE",
"updatedUWFields": {
"id": "<your-uw-result-id>",
"revision": 5,
"updatedBy": "agent-123",
"applicantContactInfo": {
"applicantState": "CA",
"firstName": "John",
"lastName": "Doe",
"email": "john.doe@example.com",
"phone": "5551234567",
"ssn": "123456789",
"dob": "1985-06-15"
},
"applicantUwResult": {
"debts": [
{
"id": "debt-ineligible-001",
"isSelected": true,
"exceptions": [
"Manager approved: Customer provided hardship documentation",
"Special circumstances: Payment plan verified"
]
}
]
}
}
}

What Happens:

  • Debt marked with exception reasons
  • isOverridden flag indicates debt is being overridden. For example, if a debt is not eligible but you want to include it in the program, you can set isSelected to be true to override the selection status.
  • exceptions field documents the reason (for audit trail)

Response:

{
"data": {
"updateApplicantEligibility": {
"data": {
"id": "<your-uw-result-id>",
"revision": 6,
"applicantUwResult": {
"debts": [
{
"id": "debt-ineligible-001",
"isSelected": true,
"eligibilityStatus": "ELIGIBLE",
"isOverridden": true,
"exceptions": [
"Manager approved: Customer provided hardship documentation",
"Special circumstances: Payment plan verified"
]
}
]
}
},
"errors": null
}
}
}

Arguments

ArgumentTypeDescription
applicationTypeApplicationTypeInput!Application type for underwriting
updatedUWFieldsUwResultUpdateInput!Input for updating an existing underwriting result. Contains the UW result ID, revision, and fields to update.

Input Types

ApplicationTypeInput

Application type for underwriting

ValueDescription
JOINTJoint application with primary applicant and co-applicant
SINGLESingle applicant application

UwResultUpdateInput

Input for updating an existing underwriting result. Contains the UW result ID, revision, and fields to update.

Required Fields:

FieldTypeDescription
idID!Underwriting document ID that is being updated
revisionInt!Revision number that is being updated. Revision is used to track the changes made to the underwriting document. Can be used to start a new revision based any previous revision.
updatedByID!Agent userId set by the integrating CRM to identify the agent in its system.
applicantContactInfoApplicantContactInfoUpdateInput!Applicant contact information

Optional Fields:

FieldTypeDescription
leadIdStringLead ID set by the integrating CRM to identify the lead in its system.
applicantUwResultUwResultUpdateFieldsInputApplicant debts (tradelines). Used to add/remove manual debts for the applicant. Used to update credit report debts for the applicant.
coApplicantUwResultUwResultUpdateFieldsInputCo-applicant debts (tradelines). Used to add/remove manual debts for the co-applicant. Used to update credit report debts for the co-applicant.
jointUwResultJointUwResultUpdateFieldsInputJoint debts (tradelines). Used to add/remove manual joint debts. Used to update credit report joint debts.
coApplicantContactInfoApplicantContactInfoUpdateInputCo-applicant contact information. Required for JOINT application.
agentAssignedStringAgent userId set by the integrating CRM to identify the agent in its system.
planPlanInputEnrollment payment plan
budgetBudgetInputBudget
additionalInfoAdditionalInfoInputAdditional info

UwResultUpdateFieldsInput

Input for updating SINGLE or JOINT_APPLICANT underwriting

Optional Fields:

FieldTypeDescription
debts[UwResultDebtUpdateInput]Application debts
UwResultDebtUpdateInput

Input for updating underwriting individual debts.

Minimum required field:

  • id

Optional fields:

  • all fields are optional. Provide the entire debt object or just the changed fields.

Optional Fields:

FieldTypeDescription
idIDDebt ID. Required for updating existing debts. Leave empty when adding new manual debts.
creditorIdStringForthPay creditor ID.
isSelectedBooleanTrue/False flag to identify if this debt is selected for program enrollment
coApplicantIsSelectedBooleanIdentify if this debt is selected by the co-applicant for program enrollment. Only applicable to JOINT debt. Values: - true - false
exceptions[String]Optional field to add reasons why debt was selected for program enrollment even after failing the underwriting checks. IMPORTANT: This field does not affect the underwriting result.
externalDebtIdStringThis is replaced by accountNumber @deprecated Use accountNumber instead
accountNumberStringDebt account number
externalCrmIdStringOptional field set by the integrating CRM to identify the debt in its system. IMPORTANT: This field does not affect the underwriting result.
creditorNameStringForthPay creditor name
originalCreditorNameStringOriginal creditor name from credit report.
creditorTypeStringCreditor Type Values: - LEASE_/_RENT - MEDICAL_COLLECTION_AGENCY - FED_STUDENT_LOAN - ORIGINATOR_LEGAL - UTILITY - PAY_DAY_LOAN - DEPARTMENT_STORE - STUDENT_LOAN - DECEASED_COLLECTIONS - CREDIT_UNI…
ecoaCodeStringECOA Code Values: - “I” (Individual) - “M” (Maker) - “C” (Comaker) - “J” (Joint) - “A” (AuthorizedUser) - “S” (OnBehalfOf) - “P” (JointParticipating) - “U” (Undesignated) - “T” (Terminated) - “X” (…
accountTypeStringAccount type Values: - AUTO_LOAN - CHARGE_ACCOUNT - COLLECTIONS - CREDIT_CARD - FLEXIBLE_SPENDING_CREDIT_CARD - INSTALLMENT - INSTALLMENT_SALES_CONTRACT - LEASE - LINE_OF_CREDIT - MEDICAL_BILL - MO…
portfolioTypeStringPortfolio type Values: - OPEN - REVOLVING - CREDIT_LINE - INSTALLMENT
debtTypeStringDebt type IMPORTANT: This field does not affect the underwriting result.
openDateStringDebt open date in YYYY-MM-DD format IMPORTANT: This field does not affect the underwriting result.
lastPaymentDateStringDate of last payment in YYYY-MM-DD format
currentBalanceFloatCurrent balance
originalBalanceFloatOriginal balance as of the date the credit report was originally pulled
hasLastPaymentBooleanIdentify if this debts most recent payment was made. Values: - true - false
narrativeCodes[String]Narrative codes that might include bankcruptcy codes. These values come from the credit report and are different from vendor to vendor.
bankruptcyDateFiledStringBankruptcy Record Date in YYYY-MM-DD format
remarks[String]Remarks IMPORTANT: This field does not affect the underwriting result.
nawSignedDateDateThe date when the non-applicant waiver has been signed in YYYY-MM-DD format. Only applicable to JOINT debt. IMPORTANT: This field does not affect the underwriting result.
nawUrlStringURL to the non-applicant waiver document’s file Only applicable to JOINT debt. IMPORTANT: This field does not affect the underwriting result.
hasProofOfLiabilityBooleanIdentify if proof of liability has been provided for the debt. Values: - true - false IMPORTANT: This field does not affect the underwriting result.
isCollectionBooleanIdentify if the debt is in collection. Values: - true - false
delinquencyStringaccount rating /delinquency value IMPORTANT: This field does not affect the underwriting result.
monthlyPaymentFloatMonthly payment
notes[String]Notes IMPORTANT: This field does not affect the underwriting result.

UwResultUpdateFieldsInput

Input for updating SINGLE or JOINT_APPLICANT underwriting

Optional Fields:

FieldTypeDescription
debts[UwResultDebtUpdateInput]Application debts
UwResultDebtUpdateInput

Input for updating underwriting individual debts.

Minimum required field:

  • id

Optional fields:

  • all fields are optional. Provide the entire debt object or just the changed fields.

Optional Fields:

FieldTypeDescription
idIDDebt ID. Required for updating existing debts. Leave empty when adding new manual debts.
creditorIdStringForthPay creditor ID.
isSelectedBooleanTrue/False flag to identify if this debt is selected for program enrollment
coApplicantIsSelectedBooleanIdentify if this debt is selected by the co-applicant for program enrollment. Only applicable to JOINT debt. Values: - true - false
exceptions[String]Optional field to add reasons why debt was selected for program enrollment even after failing the underwriting checks. IMPORTANT: This field does not affect the underwriting result.
externalDebtIdStringThis is replaced by accountNumber @deprecated Use accountNumber instead
accountNumberStringDebt account number
externalCrmIdStringOptional field set by the integrating CRM to identify the debt in its system. IMPORTANT: This field does not affect the underwriting result.
creditorNameStringForthPay creditor name
originalCreditorNameStringOriginal creditor name from credit report.
creditorTypeStringCreditor Type Values: - LEASE_/_RENT - MEDICAL_COLLECTION_AGENCY - FED_STUDENT_LOAN - ORIGINATOR_LEGAL - UTILITY - PAY_DAY_LOAN - DEPARTMENT_STORE - STUDENT_LOAN - DECEASED_COLLECTIONS - CREDIT_UNI…
ecoaCodeStringECOA Code Values: - “I” (Individual) - “M” (Maker) - “C” (Comaker) - “J” (Joint) - “A” (AuthorizedUser) - “S” (OnBehalfOf) - “P” (JointParticipating) - “U” (Undesignated) - “T” (Terminated) - “X” (…
accountTypeStringAccount type Values: - AUTO_LOAN - CHARGE_ACCOUNT - COLLECTIONS - CREDIT_CARD - FLEXIBLE_SPENDING_CREDIT_CARD - INSTALLMENT - INSTALLMENT_SALES_CONTRACT - LEASE - LINE_OF_CREDIT - MEDICAL_BILL - MO…
portfolioTypeStringPortfolio type Values: - OPEN - REVOLVING - CREDIT_LINE - INSTALLMENT
debtTypeStringDebt type IMPORTANT: This field does not affect the underwriting result.
openDateStringDebt open date in YYYY-MM-DD format IMPORTANT: This field does not affect the underwriting result.
lastPaymentDateStringDate of last payment in YYYY-MM-DD format
currentBalanceFloatCurrent balance
originalBalanceFloatOriginal balance as of the date the credit report was originally pulled
hasLastPaymentBooleanIdentify if this debts most recent payment was made. Values: - true - false
narrativeCodes[String]Narrative codes that might include bankcruptcy codes. These values come from the credit report and are different from vendor to vendor.
bankruptcyDateFiledStringBankruptcy Record Date in YYYY-MM-DD format
remarks[String]Remarks IMPORTANT: This field does not affect the underwriting result.
nawSignedDateDateThe date when the non-applicant waiver has been signed in YYYY-MM-DD format. Only applicable to JOINT debt. IMPORTANT: This field does not affect the underwriting result.
nawUrlStringURL to the non-applicant waiver document’s file Only applicable to JOINT debt. IMPORTANT: This field does not affect the underwriting result.
hasProofOfLiabilityBooleanIdentify if proof of liability has been provided for the debt. Values: - true - false IMPORTANT: This field does not affect the underwriting result.
isCollectionBooleanIdentify if the debt is in collection. Values: - true - false
delinquencyStringaccount rating /delinquency value IMPORTANT: This field does not affect the underwriting result.
monthlyPaymentFloatMonthly payment
notes[String]Notes IMPORTANT: This field does not affect the underwriting result.

JointUwResultUpdateFieldsInput

Input for updating JOINT underwriting

Optional Fields:

FieldTypeDescription
debts[UwResultDebtUpdateInput]Application debts
UwResultDebtUpdateInput

Input for updating underwriting individual debts.

Minimum required field:

  • id

Optional fields:

  • all fields are optional. Provide the entire debt object or just the changed fields.

Optional Fields:

FieldTypeDescription
idIDDebt ID. Required for updating existing debts. Leave empty when adding new manual debts.
creditorIdStringForthPay creditor ID.
isSelectedBooleanTrue/False flag to identify if this debt is selected for program enrollment
coApplicantIsSelectedBooleanIdentify if this debt is selected by the co-applicant for program enrollment. Only applicable to JOINT debt. Values: - true - false
exceptions[String]Optional field to add reasons why debt was selected for program enrollment even after failing the underwriting checks. IMPORTANT: This field does not affect the underwriting result.
externalDebtIdStringThis is replaced by accountNumber @deprecated Use accountNumber instead
accountNumberStringDebt account number
externalCrmIdStringOptional field set by the integrating CRM to identify the debt in its system. IMPORTANT: This field does not affect the underwriting result.
creditorNameStringForthPay creditor name
originalCreditorNameStringOriginal creditor name from credit report.
creditorTypeStringCreditor Type Values: - LEASE_/_RENT - MEDICAL_COLLECTION_AGENCY - FED_STUDENT_LOAN - ORIGINATOR_LEGAL - UTILITY - PAY_DAY_LOAN - DEPARTMENT_STORE - STUDENT_LOAN - DECEASED_COLLECTIONS - CREDIT_UNI…
ecoaCodeStringECOA Code Values: - “I” (Individual) - “M” (Maker) - “C” (Comaker) - “J” (Joint) - “A” (AuthorizedUser) - “S” (OnBehalfOf) - “P” (JointParticipating) - “U” (Undesignated) - “T” (Terminated) - “X” (…
accountTypeStringAccount type Values: - AUTO_LOAN - CHARGE_ACCOUNT - COLLECTIONS - CREDIT_CARD - FLEXIBLE_SPENDING_CREDIT_CARD - INSTALLMENT - INSTALLMENT_SALES_CONTRACT - LEASE - LINE_OF_CREDIT - MEDICAL_BILL - MO…
portfolioTypeStringPortfolio type Values: - OPEN - REVOLVING - CREDIT_LINE - INSTALLMENT
debtTypeStringDebt type IMPORTANT: This field does not affect the underwriting result.
openDateStringDebt open date in YYYY-MM-DD format IMPORTANT: This field does not affect the underwriting result.
lastPaymentDateStringDate of last payment in YYYY-MM-DD format
currentBalanceFloatCurrent balance
originalBalanceFloatOriginal balance as of the date the credit report was originally pulled
hasLastPaymentBooleanIdentify if this debts most recent payment was made. Values: - true - false
narrativeCodes[String]Narrative codes that might include bankcruptcy codes. These values come from the credit report and are different from vendor to vendor.
bankruptcyDateFiledStringBankruptcy Record Date in YYYY-MM-DD format
remarks[String]Remarks IMPORTANT: This field does not affect the underwriting result.
nawSignedDateDateThe date when the non-applicant waiver has been signed in YYYY-MM-DD format. Only applicable to JOINT debt. IMPORTANT: This field does not affect the underwriting result.
nawUrlStringURL to the non-applicant waiver document’s file Only applicable to JOINT debt. IMPORTANT: This field does not affect the underwriting result.
hasProofOfLiabilityBooleanIdentify if proof of liability has been provided for the debt. Values: - true - false IMPORTANT: This field does not affect the underwriting result.
isCollectionBooleanIdentify if the debt is in collection. Values: - true - false
delinquencyStringaccount rating /delinquency value IMPORTANT: This field does not affect the underwriting result.
monthlyPaymentFloatMonthly payment
notes[String]Notes IMPORTANT: This field does not affect the underwriting result.

ApplicantContactInfoUpdateInput

Applicant contact and personal information for eligibility update

Required Fields:

FieldTypeDescription
applicantStateString!Applicant state. Must be a valid U.S. state. Sample Values: - AL - AK - AZ - AR - CA - CO

Optional Fields:

FieldTypeDescription
employerNameStringEmployer name
isMarriedToCoApplicantBooleanIdentify if the applicant is married to the co-applicant. Values: - true - false
homeAddressStringApplicant home address
ssnStringApplicant SSN must be 9 digits long.
dobStringApplicant date of birth must be in the format YYYY-MM-DD.
phoneStringApplicant phone number must be U.S. phone number in E.164 format.
cellPhoneStringApplicant cell phone number must be U.S. phone number in E.164 format.
firstNameStringApplicant first name must be 2-20 characters long.
lastNameStringApplicant last name must be 2-20 characters long.
jobTitleStringApplicant job title must be 2-20 characters long.
emailStringApplicant email must be a valid email address.
hardshipStringApplicant hardship reason. Sample Values: - Significant decrease in income. - Loss of employment. - Significant medical expenses.
filedBankruptcyStringHas the applicant filed bankruptcy. Values: - YES - NO
routingNumberStringApplicant routing number.
bankNameStringApplicant bank name.
bankAccountNumberStringApplicant bank account number.
bankAccountHolderNameStringApplicant bank account holder name
bankAccountTypeStringApplicant bank account type
eligibilityReqMilitaryStringAn answer must be provided for Question: Are you in the military, work in law enforcement, work for a Financial institution or have security clearance? Values: - YES - NO
eligibilityReqCreditCounsellingStringAn answer must be provided for Question: Are you currently enrolled in a credit counseling program? Values: - YES - NO
eligibilityReqBankruptcyStringAn answer must be provided for Question: Are you currently involved in a Bankruptcy proceeding? Values: - YES - NO
eligibilityReqFederalGovDebtStringAn answer must be provided for Question: Are any of the accounts being submitted for enrollment backed by the U.S. Federal government? Values: - YES - NO
eligibilityReqSecuredDebtStringAn answer must be provided for Question: Are any of the accounts being submitted for enrollment secured by any type of collateral? Values: - YES - NO
belongsToCompanyIdStringThe Forth Pay company ID that the applicant belongs to.

ApplicantContactInfoUpdateInput

Applicant contact and personal information for eligibility update

Required Fields:

FieldTypeDescription
applicantStateString!Applicant state. Must be a valid U.S. state. Sample Values: - AL - AK - AZ - AR - CA - CO

Optional Fields:

FieldTypeDescription
employerNameStringEmployer name
isMarriedToCoApplicantBooleanIdentify if the applicant is married to the co-applicant. Values: - true - false
homeAddressStringApplicant home address
ssnStringApplicant SSN must be 9 digits long.
dobStringApplicant date of birth must be in the format YYYY-MM-DD.
phoneStringApplicant phone number must be U.S. phone number in E.164 format.
cellPhoneStringApplicant cell phone number must be U.S. phone number in E.164 format.
firstNameStringApplicant first name must be 2-20 characters long.
lastNameStringApplicant last name must be 2-20 characters long.
jobTitleStringApplicant job title must be 2-20 characters long.
emailStringApplicant email must be a valid email address.
hardshipStringApplicant hardship reason. Sample Values: - Significant decrease in income. - Loss of employment. - Significant medical expenses.
filedBankruptcyStringHas the applicant filed bankruptcy. Values: - YES - NO
routingNumberStringApplicant routing number.
bankNameStringApplicant bank name.
bankAccountNumberStringApplicant bank account number.
bankAccountHolderNameStringApplicant bank account holder name
bankAccountTypeStringApplicant bank account type
eligibilityReqMilitaryStringAn answer must be provided for Question: Are you in the military, work in law enforcement, work for a Financial institution or have security clearance? Values: - YES - NO
eligibilityReqCreditCounsellingStringAn answer must be provided for Question: Are you currently enrolled in a credit counseling program? Values: - YES - NO
eligibilityReqBankruptcyStringAn answer must be provided for Question: Are you currently involved in a Bankruptcy proceeding? Values: - YES - NO
eligibilityReqFederalGovDebtStringAn answer must be provided for Question: Are any of the accounts being submitted for enrollment backed by the U.S. Federal government? Values: - YES - NO
eligibilityReqSecuredDebtStringAn answer must be provided for Question: Are any of the accounts being submitted for enrollment secured by any type of collateral? Values: - YES - NO
belongsToCompanyIdStringThe Forth Pay company ID that the applicant belongs to.

PlanInput

Enrollment payment plan configuration

Optional Fields:

FieldTypeDescription
frequencyStringPayment frequency. Ex: Monthly, Bi-Weekly
firstPaymentAmountFloatFirst payment amount. Ex: 100, 123.45,
secondPaymentAmountFloatSecond payment amount. Ex: 100, 123.45,
firstPaymentDateStringFirst payment date.
firstDraftExceptionStringFirst draft exception.
programTermIntProgram term.
feePercentageFloatFee percentage. Ex: 27
epfReductionStringEPF reduction. Ex: YES, NO
secondPaymentDateStringSecond payment date.
planIdStringEnrollment plan ID.

BudgetInput

Applicant budget information for affordability calculations

Optional Fields:

FieldTypeDescription
totalMonthlyIncomeFloatTotal monthly income.
totalMonthlyExpenseFloatTotal monthly expenses.

AdditionalInfoInput

Additional underwriting configuration options and exceptions

Optional Fields:

FieldTypeDescription
debtAmountExceptionStringDebt amount exception
includeUnacceptableCreditorBooleanInclude unacceptable creditor
termExtensionExceptionFloatTerm extension exception value
standaloneDebtsExceptionBooleanStandalone debts exception
eomFirstDraftDateExceptionBooleanEOM first draft date exception

Response Type

Returns: EligibilityResponse!

EligibilityResponse

Response from eligibility check or update operations

FieldTypeDescription
dataUwEligibilityResultThe underwriting eligibility result data
errors[EligibilityResponseError]List of errors or warnings from underwriting checks

UwEligibilityResult

FieldTypeDescription
idID!Underwriting document ID
revisionInt!Revision number of this underwriting document. Each time the document is edited the revision number is incremented
applicationUwResultApplicationUwResultUnderwriting result for the application as a whole.
applicantUwResultUwResultApplicant’s debts (tradeline) specific underwriting results
coApplicantUwResultUwResultCo-applicant’s debts (tradeline) specific underwriting results. Only applicable to JOINT application.
jointUwResultJointUwResultJoint debts (tradeline) specific underwriting results. Only applicable to JOINT application.
tradelineMetadataTradelineMetadataAdditional metadata about UW application
maxTermIntMaximum term (in months) calculated for this underwriting application
createdAtDateDate and time this underwriting document revision was created
ApplicationUwResult
FieldTypeDescription
applicantPrequalifiedBoolean!True/False flag to identify if this application passed all underwriting criteria
applicationTypeStringType of application can be SINGLE or JOINT
rootFiltersApplicationRootFilters!Application level filters
totalDebtFloatTotal selected debts balance
totalEligibleDebtFloatTotal eligible and selected debts balance
tradelineMetadataTradelineMetadataAdditional metadata about UW application
ApplicationRootFilters
FieldTypeDescription
totalDebtValueCheckBooleanTrue/False flag to identify if this underwriting check passed
tenPercentRuleCheckBooleanTrue/False flag to identify if this underwriting check passed
agentAssignedCheckBooleanTrue/False flag to identify if this underwriting check passed
creditReport30DaysCheckBooleanTrue/False flag to identify if this underwriting check passed
psStateServiceCheckBooleanTrue/False flag to identify if this underwriting check passed
uniqueEmailPhoneCheckBooleanTrue/False flag to identify if this underwriting check passed
programTermCheckBooleanTrue/False flag to identify if this underwriting check passed
budgetHardshipCheckBooleanTrue/False flag to identify if this underwriting check passed
TradelineMetadata
FieldTypeDescription
enrolledUpstartDebtAccountNumbers[String]List of externalDebtsId’s that belong to selected Upstart debts, if empty then none
enrolledCapitalOneDebtAccountNumbers[String]List of externalDebtsId’s that belong to selected Catipal One debts, if empty then none
enrolledDiscoverDebtAccountNumbers[String]List of externalDebtsId’s that belong to selected Discover debts, if empty then none
UwResult
FieldTypeDescription
idID!Underwriting document ID
uwOrgIdStringThe organization underwriting rules used for this application. Values: - ALV - GLG
reqOrgIdStringRequesting organization ID. Based on the credentials of the system making the request.
revisionInt!Document revision number. Each time the document is edited the revision number is incremented
reqOrgContactIdStringRequesting organization contact ID
creditReportIdStringApplicant normalized credit report ID from the credit report service
coCreditReportIdStringCo-Applicant normalized credit report ID from the credit report service
leadIdStringApplicant leadId set by the integrating CRM to identify the lead in its system.
applicationTypeStringType of application can be SINGLE or JOINT
applicantInfoApplicantInfo!Applicant information.
rootFiltersApplicantRootFilters!Root level filters (All underwriting filters that are not specific to a debt)
debts[UwResultDebt]!List of debts. Each debt will have additional underwriting pass/fail information
creditReportSourceString!Credit report source Values: - SPINWHEEL - CRS_TRANSUNION - CRS_EQUIFAX
rootHistory[UwResultHistory]Audit history of edits applied to the top level fields of this application
createdAtDateDate and time this underwriting document revision was created
ApplicantInfo
FieldTypeDescription
publicRecords[PublicRecord]Public records from the credit report.
applicantContactInfoApplicantContactInfoApplicant’s contact information
coApplicantContactInfoApplicantContactInfoCo-applicant’s contact information
agentAssignedStringAgent userId set by the integrating CRM to identify the agent in its system.
planPlanEnrollment plan.
budgetBudgetBudget.
additionalInfoAdditionalInfoAdditional info
PublicRecord

Public Record

FieldTypeDescription
bankruptcyCodeString!Bankcrupty code
bankruptcyDateFiledStringBankcrupty date filed
bankruptcyDispositionTypeStringBankcrupty disposition type
ApplicantContactInfo
FieldTypeDescription
employerNameStringApplicant employer name
isMarriedToCoApplicantBooleanTrue/False flag to identify if the applicant is married to the co-applicant
homeAddressStringApplicant home address.
applicantStateString!Applicant state.
ssnStringApplicant SSN.
dobStringApplicant date of birth.
phoneStringApplicant phone number.
cellPhoneStringApplicant cell phone number.
firstNameStringApplicant first name.
lastNameStringApplicant last name.
jobTitleStringApplicant job title.
emailStringApplicant email.
hardshipStringApplicant hardship reason.
filedBankruptcyStringHas the applicant filed bankruptcy.
routingNumberStringApplicant routing number.
bankNameStringApplicant bank name.
bankAccountNumberStringApplicant bank account number.
bankAccountHolderNameStringApplicant bank account holder name.
bankAccountTypeStringApplicant bank account type.
eligibilityReqMilitaryStringApplicant eligibility requirement for military.
eligibilityReqCreditCounsellingStringApplicant eligibility requirement for credit counselling.
eligibilityReqBankruptcyStringApplicant eligibility requirement for bankruptcy.
eligibilityReqFederalGovDebtStringApplicant eligibility requirement for federal government debt.
eligibilityReqSecuredDebtStringApplicant eligibility requirement for secured debt.
belongsToCompanyIdStringThe Forth Pay company ID that the applicant belongs to.
ApplicantContactInfo
FieldTypeDescription
employerNameStringApplicant employer name
isMarriedToCoApplicantBooleanTrue/False flag to identify if the applicant is married to the co-applicant
homeAddressStringApplicant home address.
applicantStateString!Applicant state.
ssnStringApplicant SSN.
dobStringApplicant date of birth.
phoneStringApplicant phone number.
cellPhoneStringApplicant cell phone number.
firstNameStringApplicant first name.
lastNameStringApplicant last name.
jobTitleStringApplicant job title.
emailStringApplicant email.
hardshipStringApplicant hardship reason.
filedBankruptcyStringHas the applicant filed bankruptcy.
routingNumberStringApplicant routing number.
bankNameStringApplicant bank name.
bankAccountNumberStringApplicant bank account number.
bankAccountHolderNameStringApplicant bank account holder name.
bankAccountTypeStringApplicant bank account type.
eligibilityReqMilitaryStringApplicant eligibility requirement for military.
eligibilityReqCreditCounsellingStringApplicant eligibility requirement for credit counselling.
eligibilityReqBankruptcyStringApplicant eligibility requirement for bankruptcy.
eligibilityReqFederalGovDebtStringApplicant eligibility requirement for federal government debt.
eligibilityReqSecuredDebtStringApplicant eligibility requirement for secured debt.
belongsToCompanyIdStringThe Forth Pay company ID that the applicant belongs to.
Plan
FieldTypeDescription
frequencyStringFrequency of the enrollment plan. Ex: Monthly, Bi-Weekly
firstPaymentAmountFloatFirst payment amount. Ex: 100, 123.45,
secondPaymentAmountFloatSecond payment amount. Ex: 100, 123.45,
firstPaymentDateStringFirst payment date.
secondPaymentDateStringSecond payment date.
firstDraftExceptionStringFirst draft exception.
programTermIntProgram term.
feePercentageFloatFee percentage.
epfReductionStringEPF reduction. Ex: YES, NO
planIdStringEnrollment plan ID.
Budget
FieldTypeDescription
totalMonthlyIncomeFloatTotal monthly income.
totalMonthlyExpenseFloatTotal monthly expenses.
AdditionalInfo
FieldTypeDescription
debtAmountExceptionStringDebt amount exception
includeUnacceptableCreditorBooleanInclude unacceptable creditor
termExtensionExceptionFloatTerm extension exception value
standaloneDebtsExceptionBooleanStandalone debts exception
eomFirstDraftDateExceptionBooleanEOM first draft date exception
ApplicantRootFilters
FieldTypeDescription
stateServiceCheckBooleanTrue/False flag to identify if this underwriting check passed
bankruptcyCheckBooleanTrue/False flag to identify if this underwriting check passed
ssnCheckBooleanTrue/False flag to identify if this underwriting check passed
dobCheckBooleanTrue/False flag to identify if this underwriting check passed
phoneCheckBooleanTrue/False flag to identify if this underwriting check passed
firstNameCheckBooleanTrue/False flag to identify if this underwriting check passed
lastNameCheckBooleanTrue/False flag to identify if this underwriting check passed
applicantEmployerCheckBooleanTrue/False flag to identify if this underwriting check passed
jobTitleCheckBooleanTrue/False flag to identify if this underwriting check passed
addressCheckBooleanTrue/False flag to identify if this underwriting check passed
emailCheckBooleanTrue/False flag to identify if this underwriting check passed
coApplicantFirstNameCheckBooleanTrue/False flag to identify if this underwriting check passed
coApplicantLastNameCheckBooleanTrue/False flag to identify if this underwriting check passed
coApplicantEmployerCheckBooleanTrue/False flag to identify if this underwriting check passed
coApplicantJobTitleCheckBooleanTrue/False flag to identify if this underwriting check passed
coApplicantSsnCheckBooleanTrue/False flag to identify if this underwriting check passed
coApplicantDobCheckBooleanTrue/False flag to identify if this underwriting check passed
coApplicantPhoneCheckBooleanTrue/False flag to identify if this underwriting check passed
coApplicantCellPhoneCheckBooleanTrue/False flag to identify if this underwriting check passed
hardshipCheckBooleanTrue/False flag to identify if this underwriting check passed
duplicateSsnCheckBooleanTrue/False flag to identify if this underwriting check passed
duplicateCoApplicantSsnCheckBooleanTrue/False flag to identify if this underwriting check passed
routingNumberCheckBooleanTrue/False flag to identify if this underwriting check passed
bankNameCheckBooleanTrue/False flag to identify if this underwriting check passed
bankAccountNumberCheckBooleanTrue/False flag to identify if this underwriting check passed
bankAccountHolderNameCheckBooleanTrue/False flag to identify if this underwriting check passed
bankAccountTypeCheckBooleanTrue/False flag to identify if this underwriting check passed
debtsBackedByUsFedGovCheckBooleanTrue/False flag to identify if this underwriting check passed
eligibilityReqMilitaryCheckBooleanTrue/False flag to identify if this underwriting check passed
eligibilityReqCreditCounsellingCheckBooleanTrue/False flag to identify if this underwriting check passed
eligibilityReqBankruptcyCheckBooleanTrue/False flag to identify if this underwriting check passed
eligibilityReqFederalGovDebtCheckBooleanTrue/False flag to identify if this underwriting check passed
eligibilityReqSecuredDebtCheckBooleanTrue/False flag to identify if this underwriting check passed
frequencyMinimumPaymentCheckBooleanTrue/False flag to identify if this underwriting check passed
budgetAffordabilityCheckBooleanTrue/False flag to identify if this underwriting check passed
firstDraftDateCheckBooleanTrue/False flag to identify if this underwriting check passed
feeValidationCheckBooleanTrue/False flag to identify if this underwriting check passed
secondDraftDateCheckBooleanTrue/False flag to identify if this underwriting check passed
companyIsAuthorizedCheckBooleanTrue/False flag to identify if this underwriting check passed
enrollmentPlanCheckBooleanTrue/False flag to identify if this underwriting check passed
termExtensionExceptionCheckBooleanTrue/False flag to identify if this underwriting check passed
caStateFileCheckBooleanTrue/False flag to identify if the co-applicant has ssn when state is CA and application type is JOINT
UwResultDebt

Debt information with underwriting check results

FieldTypeDescription
idID!Unique identifier for the debt
applicantIdStringPrimary applicant ID
coApplicantIdStringSecondary applicant ID, if applicable (For JOINT application only)
externalDebtIdIDThis is replaced by accountNumber @deprecated Use accountNumber instead
accountNumberStringDebt account number
externalCrmIdStringOptional field to identify the debt in the requesting CRM
isSelectedBoolean!True/False flag to identify if this debt is selected for program enrollment
coApplicantIsSelectedBooleanOnly applicable to JOINT debt. True/False flag to identify if this debt is selected by the co-applicant
eligibilityStatusEligibilityStatus!Identify the eligibility status
isOverriddenBooleanTrue/False flag to identify if the eligiblity status is being overriden
exceptions[String]List of reasons the eligibility status is being overridden
history[UwResultDebtHistory]History of all the updates made to this debt
sourceString!Source of the debt entry can be MANUAL or CREDIT_REPORT
creditorNameStringcreditor name
parentCreditorNameStringParent creditor name
parentCreditorIdStringParent creditor ID
originalCreditorNameStringOriginal creditor name
creditorIdIDCreditor ID from Forth
creditorTypeStringcreditor type
ecoaCodeStringECOA Code
accountTypeStringAccount type
portfolioTypeStringPortfolio type
debtTypeStringDebt type
openDateStringDate debt was opened
lastPaymentDateStringDate of the last payment
hasLastPaymentBooleanTrue/False flag to identify if last payment was amde
narrativeCodes[String]Narrative codes that might include bankcruptcy codes
bankruptcyDateFiledStringBankruptcy Record Date. This come from the credit report and does not need to be updated.
currentBalanceFloatCurrent debt balance
originalBalanceFloatOriginal debt balance
nawSignedDateDateOnly applicable to JOINT debt. The date when the non-applicant waiver has been signed.
nawUrlStringOnly applicable to JOINT debt. The url to the non-applicant waiver document’s file
hasProofOfLiabilityBooleanHas provided proof of liability
forthDebtTypeIdStringForth Debt Type ID
remarks[String]Remarks
isCollectionBooleanFlag to show if the debt is in collection
approvedAccountTypeCheckBooleanTrue/False flag to identify if this underwriting check passed
unacceptableCreditorCheckBooleanTrue/False flag to identify if this underwriting check passed
creditUnionAndStateCheckBooleanTrue/False flag to identify if this underwriting check passed
debtOwnershipCheckBooleanTrue/False flag to identify if this underwriting check passed
minimumDebtValueCheckBooleanTrue/False flag to identify if this underwriting check passed
duplicateDebtsCheckBooleanTrue/False flag to identify if this debt is selected and a duplicate debt
multipleCreditUnionCheckBooleanTrue/False flag to identify if this underwriting check passed
paymentHistoryCheckBooleanTrue/False flag to identify if this underwriting check passed
unsecuredDebtCheckBooleanTrue/False flag to identify if this underwriting check passed
bankruptcyCheckBooleanTrue/False flag to identify if this underwriting check passed
employerIsCreditorCheckBooleanTrue/False flag to identify if the creditor is the same as employer
standaloneDebtsCheckBooleanTrue/False flag to identify if the creditor is a standalone debt
coApplicantCheckBooleanOnly applicable to JOINT debt. True/False flag to identify if this underwriting check passed
currAndOgBalanceCheckBooleanCurrent and original balance check
proofOfLiabilityCheckBooleanProof of liability
delinquencyStringaccount rating /delinquency value
monthlyPaymentFloatMonthly payment
notes[String]Debt Notes
UwResultDebtHistory

Historical record of changes made to a debt

FieldTypeDescription
isSelectedBooleanWhether the debt was selected for enrollment at this revision
coApplicantIsSelectedBooleanWhether the co-applicant had selected this debt at this revision
exceptions[String]Exceptions applied to the debt at this revision
sourceStringSource of the debt (MANUAL or CREDIT_REPORT)
creditorNameStringCreditor name at this revision
originalCreditorNameStringOriginal creditor name at this revision
creditorTypeStringCreditor type at this revision
ecoaCodeStringECOA code at this revision
accountTypeStringAccount type at this revision
portfolioTypeStringPortfolio type at this revision
debtTypeStringDebt type at this revision
openDateStringOpen date at this revision
lastPaymentDateStringLast payment date at this revision
hasLastPaymentBooleanWhether last payment was made at this revision
currentBalanceFloatCurrent balance at this revision
originalBalanceFloatOriginal balance at this revision
narrativeCodes[String]Narrative codes at this revision
bankruptcyDateFiledStringBankruptcy date filed at this revision
nawSignedDateDateNon-applicant waiver signed date at this revision
nawUrlStringNon-applicant waiver URL at this revision
hasProofOfLiabilityBooleanWhether proof of liability was provided at this revision
isCollectionBooleanWhether the debt was in collection at this revision
remarks[String]Remarks at this revision
monthlyPaymentFloatMonthly payment at this revision
updatedByIDUser ID who made this update
fromRevisionIntThe revision number this history entry was created from
UwResultHistory

Historical record of changes made to the underwriting result

FieldTypeDescription
applicantInfoApplicantInfoApplicant information at this revision
leadIdStringLead ID at this revision
updatedByIDUser ID who made this update
fromRevisionIntThe revision number this history entry was created from
ApplicantInfo
FieldTypeDescription
publicRecords[PublicRecord]Public records from the credit report.
applicantContactInfoApplicantContactInfoApplicant’s contact information
coApplicantContactInfoApplicantContactInfoCo-applicant’s contact information
agentAssignedStringAgent userId set by the integrating CRM to identify the agent in its system.
planPlanEnrollment plan.
budgetBudgetBudget.
additionalInfoAdditionalInfoAdditional info
PublicRecord

Public Record

FieldTypeDescription
bankruptcyCodeString!Bankcrupty code
bankruptcyDateFiledStringBankcrupty date filed
bankruptcyDispositionTypeStringBankcrupty disposition type
ApplicantContactInfo
FieldTypeDescription
employerNameStringApplicant employer name
isMarriedToCoApplicantBooleanTrue/False flag to identify if the applicant is married to the co-applicant
homeAddressStringApplicant home address.
applicantStateString!Applicant state.
ssnStringApplicant SSN.
dobStringApplicant date of birth.
phoneStringApplicant phone number.
cellPhoneStringApplicant cell phone number.
firstNameStringApplicant first name.
lastNameStringApplicant last name.
jobTitleStringApplicant job title.
emailStringApplicant email.
hardshipStringApplicant hardship reason.
filedBankruptcyStringHas the applicant filed bankruptcy.
routingNumberStringApplicant routing number.
bankNameStringApplicant bank name.
bankAccountNumberStringApplicant bank account number.
bankAccountHolderNameStringApplicant bank account holder name.
bankAccountTypeStringApplicant bank account type.
eligibilityReqMilitaryStringApplicant eligibility requirement for military.
eligibilityReqCreditCounsellingStringApplicant eligibility requirement for credit counselling.
eligibilityReqBankruptcyStringApplicant eligibility requirement for bankruptcy.
eligibilityReqFederalGovDebtStringApplicant eligibility requirement for federal government debt.
eligibilityReqSecuredDebtStringApplicant eligibility requirement for secured debt.
belongsToCompanyIdStringThe Forth Pay company ID that the applicant belongs to.
ApplicantContactInfo
FieldTypeDescription
employerNameStringApplicant employer name
isMarriedToCoApplicantBooleanTrue/False flag to identify if the applicant is married to the co-applicant
homeAddressStringApplicant home address.
applicantStateString!Applicant state.
ssnStringApplicant SSN.
dobStringApplicant date of birth.
phoneStringApplicant phone number.
cellPhoneStringApplicant cell phone number.
firstNameStringApplicant first name.
lastNameStringApplicant last name.
jobTitleStringApplicant job title.
emailStringApplicant email.
hardshipStringApplicant hardship reason.
filedBankruptcyStringHas the applicant filed bankruptcy.
routingNumberStringApplicant routing number.
bankNameStringApplicant bank name.
bankAccountNumberStringApplicant bank account number.
bankAccountHolderNameStringApplicant bank account holder name.
bankAccountTypeStringApplicant bank account type.
eligibilityReqMilitaryStringApplicant eligibility requirement for military.
eligibilityReqCreditCounsellingStringApplicant eligibility requirement for credit counselling.
eligibilityReqBankruptcyStringApplicant eligibility requirement for bankruptcy.
eligibilityReqFederalGovDebtStringApplicant eligibility requirement for federal government debt.
eligibilityReqSecuredDebtStringApplicant eligibility requirement for secured debt.
belongsToCompanyIdStringThe Forth Pay company ID that the applicant belongs to.
Plan
FieldTypeDescription
frequencyStringFrequency of the enrollment plan. Ex: Monthly, Bi-Weekly
firstPaymentAmountFloatFirst payment amount. Ex: 100, 123.45,
secondPaymentAmountFloatSecond payment amount. Ex: 100, 123.45,
firstPaymentDateStringFirst payment date.
secondPaymentDateStringSecond payment date.
firstDraftExceptionStringFirst draft exception.
programTermIntProgram term.
feePercentageFloatFee percentage.
epfReductionStringEPF reduction. Ex: YES, NO
planIdStringEnrollment plan ID.
Budget
FieldTypeDescription
totalMonthlyIncomeFloatTotal monthly income.
totalMonthlyExpenseFloatTotal monthly expenses.
AdditionalInfo
FieldTypeDescription
debtAmountExceptionStringDebt amount exception
includeUnacceptableCreditorBooleanInclude unacceptable creditor
termExtensionExceptionFloatTerm extension exception value
standaloneDebtsExceptionBooleanStandalone debts exception
eomFirstDraftDateExceptionBooleanEOM first draft date exception
UwResult
FieldTypeDescription
idID!Underwriting document ID
uwOrgIdStringThe organization underwriting rules used for this application. Values: - ALV - GLG
reqOrgIdStringRequesting organization ID. Based on the credentials of the system making the request.
revisionInt!Document revision number. Each time the document is edited the revision number is incremented
reqOrgContactIdStringRequesting organization contact ID
creditReportIdStringApplicant normalized credit report ID from the credit report service
coCreditReportIdStringCo-Applicant normalized credit report ID from the credit report service
leadIdStringApplicant leadId set by the integrating CRM to identify the lead in its system.
applicationTypeStringType of application can be SINGLE or JOINT
applicantInfoApplicantInfo!Applicant information.
rootFiltersApplicantRootFilters!Root level filters (All underwriting filters that are not specific to a debt)
debts[UwResultDebt]!List of debts. Each debt will have additional underwriting pass/fail information
creditReportSourceString!Credit report source Values: - SPINWHEEL - CRS_TRANSUNION - CRS_EQUIFAX
rootHistory[UwResultHistory]Audit history of edits applied to the top level fields of this application
createdAtDateDate and time this underwriting document revision was created
ApplicantInfo
FieldTypeDescription
publicRecords[PublicRecord]Public records from the credit report.
applicantContactInfoApplicantContactInfoApplicant’s contact information
coApplicantContactInfoApplicantContactInfoCo-applicant’s contact information
agentAssignedStringAgent userId set by the integrating CRM to identify the agent in its system.
planPlanEnrollment plan.
budgetBudgetBudget.
additionalInfoAdditionalInfoAdditional info
PublicRecord

Public Record

FieldTypeDescription
bankruptcyCodeString!Bankcrupty code
bankruptcyDateFiledStringBankcrupty date filed
bankruptcyDispositionTypeStringBankcrupty disposition type
ApplicantContactInfo
FieldTypeDescription
employerNameStringApplicant employer name
isMarriedToCoApplicantBooleanTrue/False flag to identify if the applicant is married to the co-applicant
homeAddressStringApplicant home address.
applicantStateString!Applicant state.
ssnStringApplicant SSN.
dobStringApplicant date of birth.
phoneStringApplicant phone number.
cellPhoneStringApplicant cell phone number.
firstNameStringApplicant first name.
lastNameStringApplicant last name.
jobTitleStringApplicant job title.
emailStringApplicant email.
hardshipStringApplicant hardship reason.
filedBankruptcyStringHas the applicant filed bankruptcy.
routingNumberStringApplicant routing number.
bankNameStringApplicant bank name.
bankAccountNumberStringApplicant bank account number.
bankAccountHolderNameStringApplicant bank account holder name.
bankAccountTypeStringApplicant bank account type.
eligibilityReqMilitaryStringApplicant eligibility requirement for military.
eligibilityReqCreditCounsellingStringApplicant eligibility requirement for credit counselling.
eligibilityReqBankruptcyStringApplicant eligibility requirement for bankruptcy.
eligibilityReqFederalGovDebtStringApplicant eligibility requirement for federal government debt.
eligibilityReqSecuredDebtStringApplicant eligibility requirement for secured debt.
belongsToCompanyIdStringThe Forth Pay company ID that the applicant belongs to.
ApplicantContactInfo
FieldTypeDescription
employerNameStringApplicant employer name
isMarriedToCoApplicantBooleanTrue/False flag to identify if the applicant is married to the co-applicant
homeAddressStringApplicant home address.
applicantStateString!Applicant state.
ssnStringApplicant SSN.
dobStringApplicant date of birth.
phoneStringApplicant phone number.
cellPhoneStringApplicant cell phone number.
firstNameStringApplicant first name.
lastNameStringApplicant last name.
jobTitleStringApplicant job title.
emailStringApplicant email.
hardshipStringApplicant hardship reason.
filedBankruptcyStringHas the applicant filed bankruptcy.
routingNumberStringApplicant routing number.
bankNameStringApplicant bank name.
bankAccountNumberStringApplicant bank account number.
bankAccountHolderNameStringApplicant bank account holder name.
bankAccountTypeStringApplicant bank account type.
eligibilityReqMilitaryStringApplicant eligibility requirement for military.
eligibilityReqCreditCounsellingStringApplicant eligibility requirement for credit counselling.
eligibilityReqBankruptcyStringApplicant eligibility requirement for bankruptcy.
eligibilityReqFederalGovDebtStringApplicant eligibility requirement for federal government debt.
eligibilityReqSecuredDebtStringApplicant eligibility requirement for secured debt.
belongsToCompanyIdStringThe Forth Pay company ID that the applicant belongs to.
Plan
FieldTypeDescription
frequencyStringFrequency of the enrollment plan. Ex: Monthly, Bi-Weekly
firstPaymentAmountFloatFirst payment amount. Ex: 100, 123.45,
secondPaymentAmountFloatSecond payment amount. Ex: 100, 123.45,
firstPaymentDateStringFirst payment date.
secondPaymentDateStringSecond payment date.
firstDraftExceptionStringFirst draft exception.
programTermIntProgram term.
feePercentageFloatFee percentage.
epfReductionStringEPF reduction. Ex: YES, NO
planIdStringEnrollment plan ID.
Budget
FieldTypeDescription
totalMonthlyIncomeFloatTotal monthly income.
totalMonthlyExpenseFloatTotal monthly expenses.
AdditionalInfo
FieldTypeDescription
debtAmountExceptionStringDebt amount exception
includeUnacceptableCreditorBooleanInclude unacceptable creditor
termExtensionExceptionFloatTerm extension exception value
standaloneDebtsExceptionBooleanStandalone debts exception
eomFirstDraftDateExceptionBooleanEOM first draft date exception
ApplicantRootFilters
FieldTypeDescription
stateServiceCheckBooleanTrue/False flag to identify if this underwriting check passed
bankruptcyCheckBooleanTrue/False flag to identify if this underwriting check passed
ssnCheckBooleanTrue/False flag to identify if this underwriting check passed
dobCheckBooleanTrue/False flag to identify if this underwriting check passed
phoneCheckBooleanTrue/False flag to identify if this underwriting check passed
firstNameCheckBooleanTrue/False flag to identify if this underwriting check passed
lastNameCheckBooleanTrue/False flag to identify if this underwriting check passed
applicantEmployerCheckBooleanTrue/False flag to identify if this underwriting check passed
jobTitleCheckBooleanTrue/False flag to identify if this underwriting check passed
addressCheckBooleanTrue/False flag to identify if this underwriting check passed
emailCheckBooleanTrue/False flag to identify if this underwriting check passed
coApplicantFirstNameCheckBooleanTrue/False flag to identify if this underwriting check passed
coApplicantLastNameCheckBooleanTrue/False flag to identify if this underwriting check passed
coApplicantEmployerCheckBooleanTrue/False flag to identify if this underwriting check passed
coApplicantJobTitleCheckBooleanTrue/False flag to identify if this underwriting check passed
coApplicantSsnCheckBooleanTrue/False flag to identify if this underwriting check passed
coApplicantDobCheckBooleanTrue/False flag to identify if this underwriting check passed
coApplicantPhoneCheckBooleanTrue/False flag to identify if this underwriting check passed
coApplicantCellPhoneCheckBooleanTrue/False flag to identify if this underwriting check passed
hardshipCheckBooleanTrue/False flag to identify if this underwriting check passed
duplicateSsnCheckBooleanTrue/False flag to identify if this underwriting check passed
duplicateCoApplicantSsnCheckBooleanTrue/False flag to identify if this underwriting check passed
routingNumberCheckBooleanTrue/False flag to identify if this underwriting check passed
bankNameCheckBooleanTrue/False flag to identify if this underwriting check passed
bankAccountNumberCheckBooleanTrue/False flag to identify if this underwriting check passed
bankAccountHolderNameCheckBooleanTrue/False flag to identify if this underwriting check passed
bankAccountTypeCheckBooleanTrue/False flag to identify if this underwriting check passed
debtsBackedByUsFedGovCheckBooleanTrue/False flag to identify if this underwriting check passed
eligibilityReqMilitaryCheckBooleanTrue/False flag to identify if this underwriting check passed
eligibilityReqCreditCounsellingCheckBooleanTrue/False flag to identify if this underwriting check passed
eligibilityReqBankruptcyCheckBooleanTrue/False flag to identify if this underwriting check passed
eligibilityReqFederalGovDebtCheckBooleanTrue/False flag to identify if this underwriting check passed
eligibilityReqSecuredDebtCheckBooleanTrue/False flag to identify if this underwriting check passed
frequencyMinimumPaymentCheckBooleanTrue/False flag to identify if this underwriting check passed
budgetAffordabilityCheckBooleanTrue/False flag to identify if this underwriting check passed
firstDraftDateCheckBooleanTrue/False flag to identify if this underwriting check passed
feeValidationCheckBooleanTrue/False flag to identify if this underwriting check passed
secondDraftDateCheckBooleanTrue/False flag to identify if this underwriting check passed
companyIsAuthorizedCheckBooleanTrue/False flag to identify if this underwriting check passed
enrollmentPlanCheckBooleanTrue/False flag to identify if this underwriting check passed
termExtensionExceptionCheckBooleanTrue/False flag to identify if this underwriting check passed
caStateFileCheckBooleanTrue/False flag to identify if the co-applicant has ssn when state is CA and application type is JOINT
UwResultDebt

Debt information with underwriting check results

FieldTypeDescription
idID!Unique identifier for the debt
applicantIdStringPrimary applicant ID
coApplicantIdStringSecondary applicant ID, if applicable (For JOINT application only)
externalDebtIdIDThis is replaced by accountNumber @deprecated Use accountNumber instead
accountNumberStringDebt account number
externalCrmIdStringOptional field to identify the debt in the requesting CRM
isSelectedBoolean!True/False flag to identify if this debt is selected for program enrollment
coApplicantIsSelectedBooleanOnly applicable to JOINT debt. True/False flag to identify if this debt is selected by the co-applicant
eligibilityStatusEligibilityStatus!Identify the eligibility status
isOverriddenBooleanTrue/False flag to identify if the eligiblity status is being overriden
exceptions[String]List of reasons the eligibility status is being overridden
history[UwResultDebtHistory]History of all the updates made to this debt
sourceString!Source of the debt entry can be MANUAL or CREDIT_REPORT
creditorNameStringcreditor name
parentCreditorNameStringParent creditor name
parentCreditorIdStringParent creditor ID
originalCreditorNameStringOriginal creditor name
creditorIdIDCreditor ID from Forth
creditorTypeStringcreditor type
ecoaCodeStringECOA Code
accountTypeStringAccount type
portfolioTypeStringPortfolio type
debtTypeStringDebt type
openDateStringDate debt was opened
lastPaymentDateStringDate of the last payment
hasLastPaymentBooleanTrue/False flag to identify if last payment was amde
narrativeCodes[String]Narrative codes that might include bankcruptcy codes
bankruptcyDateFiledStringBankruptcy Record Date. This come from the credit report and does not need to be updated.
currentBalanceFloatCurrent debt balance
originalBalanceFloatOriginal debt balance
nawSignedDateDateOnly applicable to JOINT debt. The date when the non-applicant waiver has been signed.
nawUrlStringOnly applicable to JOINT debt. The url to the non-applicant waiver document’s file
hasProofOfLiabilityBooleanHas provided proof of liability
forthDebtTypeIdStringForth Debt Type ID
remarks[String]Remarks
isCollectionBooleanFlag to show if the debt is in collection
approvedAccountTypeCheckBooleanTrue/False flag to identify if this underwriting check passed
unacceptableCreditorCheckBooleanTrue/False flag to identify if this underwriting check passed
creditUnionAndStateCheckBooleanTrue/False flag to identify if this underwriting check passed
debtOwnershipCheckBooleanTrue/False flag to identify if this underwriting check passed
minimumDebtValueCheckBooleanTrue/False flag to identify if this underwriting check passed
duplicateDebtsCheckBooleanTrue/False flag to identify if this debt is selected and a duplicate debt
multipleCreditUnionCheckBooleanTrue/False flag to identify if this underwriting check passed
paymentHistoryCheckBooleanTrue/False flag to identify if this underwriting check passed
unsecuredDebtCheckBooleanTrue/False flag to identify if this underwriting check passed
bankruptcyCheckBooleanTrue/False flag to identify if this underwriting check passed
employerIsCreditorCheckBooleanTrue/False flag to identify if the creditor is the same as employer
standaloneDebtsCheckBooleanTrue/False flag to identify if the creditor is a standalone debt
coApplicantCheckBooleanOnly applicable to JOINT debt. True/False flag to identify if this underwriting check passed
currAndOgBalanceCheckBooleanCurrent and original balance check
proofOfLiabilityCheckBooleanProof of liability
delinquencyStringaccount rating /delinquency value
monthlyPaymentFloatMonthly payment
notes[String]Debt Notes
UwResultDebtHistory

Historical record of changes made to a debt

FieldTypeDescription
isSelectedBooleanWhether the debt was selected for enrollment at this revision
coApplicantIsSelectedBooleanWhether the co-applicant had selected this debt at this revision
exceptions[String]Exceptions applied to the debt at this revision
sourceStringSource of the debt (MANUAL or CREDIT_REPORT)
creditorNameStringCreditor name at this revision
originalCreditorNameStringOriginal creditor name at this revision
creditorTypeStringCreditor type at this revision
ecoaCodeStringECOA code at this revision
accountTypeStringAccount type at this revision
portfolioTypeStringPortfolio type at this revision
debtTypeStringDebt type at this revision
openDateStringOpen date at this revision
lastPaymentDateStringLast payment date at this revision
hasLastPaymentBooleanWhether last payment was made at this revision
currentBalanceFloatCurrent balance at this revision
originalBalanceFloatOriginal balance at this revision
narrativeCodes[String]Narrative codes at this revision
bankruptcyDateFiledStringBankruptcy date filed at this revision
nawSignedDateDateNon-applicant waiver signed date at this revision
nawUrlStringNon-applicant waiver URL at this revision
hasProofOfLiabilityBooleanWhether proof of liability was provided at this revision
isCollectionBooleanWhether the debt was in collection at this revision
remarks[String]Remarks at this revision
monthlyPaymentFloatMonthly payment at this revision
updatedByIDUser ID who made this update
fromRevisionIntThe revision number this history entry was created from
UwResultHistory

Historical record of changes made to the underwriting result

FieldTypeDescription
applicantInfoApplicantInfoApplicant information at this revision
leadIdStringLead ID at this revision
updatedByIDUser ID who made this update
fromRevisionIntThe revision number this history entry was created from
ApplicantInfo
FieldTypeDescription
publicRecords[PublicRecord]Public records from the credit report.
applicantContactInfoApplicantContactInfoApplicant’s contact information
coApplicantContactInfoApplicantContactInfoCo-applicant’s contact information
agentAssignedStringAgent userId set by the integrating CRM to identify the agent in its system.
planPlanEnrollment plan.
budgetBudgetBudget.
additionalInfoAdditionalInfoAdditional info
PublicRecord

Public Record

FieldTypeDescription
bankruptcyCodeString!Bankcrupty code
bankruptcyDateFiledStringBankcrupty date filed
bankruptcyDispositionTypeStringBankcrupty disposition type
ApplicantContactInfo
FieldTypeDescription
employerNameStringApplicant employer name
isMarriedToCoApplicantBooleanTrue/False flag to identify if the applicant is married to the co-applicant
homeAddressStringApplicant home address.
applicantStateString!Applicant state.
ssnStringApplicant SSN.
dobStringApplicant date of birth.
phoneStringApplicant phone number.
cellPhoneStringApplicant cell phone number.
firstNameStringApplicant first name.
lastNameStringApplicant last name.
jobTitleStringApplicant job title.
emailStringApplicant email.
hardshipStringApplicant hardship reason.
filedBankruptcyStringHas the applicant filed bankruptcy.
routingNumberStringApplicant routing number.
bankNameStringApplicant bank name.
bankAccountNumberStringApplicant bank account number.
bankAccountHolderNameStringApplicant bank account holder name.
bankAccountTypeStringApplicant bank account type.
eligibilityReqMilitaryStringApplicant eligibility requirement for military.
eligibilityReqCreditCounsellingStringApplicant eligibility requirement for credit counselling.
eligibilityReqBankruptcyStringApplicant eligibility requirement for bankruptcy.
eligibilityReqFederalGovDebtStringApplicant eligibility requirement for federal government debt.
eligibilityReqSecuredDebtStringApplicant eligibility requirement for secured debt.
belongsToCompanyIdStringThe Forth Pay company ID that the applicant belongs to.
ApplicantContactInfo
FieldTypeDescription
employerNameStringApplicant employer name
isMarriedToCoApplicantBooleanTrue/False flag to identify if the applicant is married to the co-applicant
homeAddressStringApplicant home address.
applicantStateString!Applicant state.
ssnStringApplicant SSN.
dobStringApplicant date of birth.
phoneStringApplicant phone number.
cellPhoneStringApplicant cell phone number.
firstNameStringApplicant first name.
lastNameStringApplicant last name.
jobTitleStringApplicant job title.
emailStringApplicant email.
hardshipStringApplicant hardship reason.
filedBankruptcyStringHas the applicant filed bankruptcy.
routingNumberStringApplicant routing number.
bankNameStringApplicant bank name.
bankAccountNumberStringApplicant bank account number.
bankAccountHolderNameStringApplicant bank account holder name.
bankAccountTypeStringApplicant bank account type.
eligibilityReqMilitaryStringApplicant eligibility requirement for military.
eligibilityReqCreditCounsellingStringApplicant eligibility requirement for credit counselling.
eligibilityReqBankruptcyStringApplicant eligibility requirement for bankruptcy.
eligibilityReqFederalGovDebtStringApplicant eligibility requirement for federal government debt.
eligibilityReqSecuredDebtStringApplicant eligibility requirement for secured debt.
belongsToCompanyIdStringThe Forth Pay company ID that the applicant belongs to.
Plan
FieldTypeDescription
frequencyStringFrequency of the enrollment plan. Ex: Monthly, Bi-Weekly
firstPaymentAmountFloatFirst payment amount. Ex: 100, 123.45,
secondPaymentAmountFloatSecond payment amount. Ex: 100, 123.45,
firstPaymentDateStringFirst payment date.
secondPaymentDateStringSecond payment date.
firstDraftExceptionStringFirst draft exception.
programTermIntProgram term.
feePercentageFloatFee percentage.
epfReductionStringEPF reduction. Ex: YES, NO
planIdStringEnrollment plan ID.
Budget
FieldTypeDescription
totalMonthlyIncomeFloatTotal monthly income.
totalMonthlyExpenseFloatTotal monthly expenses.
AdditionalInfo
FieldTypeDescription
debtAmountExceptionStringDebt amount exception
includeUnacceptableCreditorBooleanInclude unacceptable creditor
termExtensionExceptionFloatTerm extension exception value
standaloneDebtsExceptionBooleanStandalone debts exception
eomFirstDraftDateExceptionBooleanEOM first draft date exception
JointUwResult

Joint underwriting result containing shared debts between applicants

FieldTypeDescription
idID!Unique identifier for the joint underwriting result
primaryApplicantUwResultApplicantUwResultInfoPrimary applicant uw result id
coApplicantUwResultApplicantUwResultInfoCo-applicant uw result id
uwOrgIdStringThe organization underwriting rules used for this application. For example alv or glg
reqOrgIdStringRequesting organization ID
revisionInt!Document revision number. Each time the document is edited the revision number is incremented
leadIdStringSigma lead ID
creditReportIdStringPrimary applicant credit report ID
coCreditReportIdStringSecondary applicant credit report ID, if applicable (For JOINT application only)
applicantInfoJointUwApplicantInfo!Applicant information needed for the root filters
debts[UwResultDebt]!List of debts. Each debt will have additional underwriting pass/fail information
creditReportSourceString!Source can be SPINWHEEL, CRS_TRANSUNION, or CRS_EQUIFAX
rootHistory[JointUwResultHistory]History of edits applied to the top level fields of this application
createdAtDateDate and time this joint underwriting result was created
ApplicantUwResultInfo

Reference information for an applicant’s underwriting result

FieldTypeDescription
idIDUnderwriting result ID
revisionIntCurrent revision number of the underwriting result
ApplicantUwResultInfo

Reference information for an applicant’s underwriting result

FieldTypeDescription
idIDUnderwriting result ID
revisionIntCurrent revision number of the underwriting result
JointUwApplicantInfo
FieldTypeDescription
applicantContactInfoApplicantContactInfoApplicant’s contact information
coApplicantContactInfoApplicantContactInfoCo-applicant’s contact information
ApplicantContactInfo
FieldTypeDescription
employerNameStringApplicant employer name
isMarriedToCoApplicantBooleanTrue/False flag to identify if the applicant is married to the co-applicant
homeAddressStringApplicant home address.
applicantStateString!Applicant state.
ssnStringApplicant SSN.
dobStringApplicant date of birth.
phoneStringApplicant phone number.
cellPhoneStringApplicant cell phone number.
firstNameStringApplicant first name.
lastNameStringApplicant last name.
jobTitleStringApplicant job title.
emailStringApplicant email.
hardshipStringApplicant hardship reason.
filedBankruptcyStringHas the applicant filed bankruptcy.
routingNumberStringApplicant routing number.
bankNameStringApplicant bank name.
bankAccountNumberStringApplicant bank account number.
bankAccountHolderNameStringApplicant bank account holder name.
bankAccountTypeStringApplicant bank account type.
eligibilityReqMilitaryStringApplicant eligibility requirement for military.
eligibilityReqCreditCounsellingStringApplicant eligibility requirement for credit counselling.
eligibilityReqBankruptcyStringApplicant eligibility requirement for bankruptcy.
eligibilityReqFederalGovDebtStringApplicant eligibility requirement for federal government debt.
eligibilityReqSecuredDebtStringApplicant eligibility requirement for secured debt.
belongsToCompanyIdStringThe Forth Pay company ID that the applicant belongs to.
ApplicantContactInfo
FieldTypeDescription
employerNameStringApplicant employer name
isMarriedToCoApplicantBooleanTrue/False flag to identify if the applicant is married to the co-applicant
homeAddressStringApplicant home address.
applicantStateString!Applicant state.
ssnStringApplicant SSN.
dobStringApplicant date of birth.
phoneStringApplicant phone number.
cellPhoneStringApplicant cell phone number.
firstNameStringApplicant first name.
lastNameStringApplicant last name.
jobTitleStringApplicant job title.
emailStringApplicant email.
hardshipStringApplicant hardship reason.
filedBankruptcyStringHas the applicant filed bankruptcy.
routingNumberStringApplicant routing number.
bankNameStringApplicant bank name.
bankAccountNumberStringApplicant bank account number.
bankAccountHolderNameStringApplicant bank account holder name.
bankAccountTypeStringApplicant bank account type.
eligibilityReqMilitaryStringApplicant eligibility requirement for military.
eligibilityReqCreditCounsellingStringApplicant eligibility requirement for credit counselling.
eligibilityReqBankruptcyStringApplicant eligibility requirement for bankruptcy.
eligibilityReqFederalGovDebtStringApplicant eligibility requirement for federal government debt.
eligibilityReqSecuredDebtStringApplicant eligibility requirement for secured debt.
belongsToCompanyIdStringThe Forth Pay company ID that the applicant belongs to.
UwResultDebt

Debt information with underwriting check results

FieldTypeDescription
idID!Unique identifier for the debt
applicantIdStringPrimary applicant ID
coApplicantIdStringSecondary applicant ID, if applicable (For JOINT application only)
externalDebtIdIDThis is replaced by accountNumber @deprecated Use accountNumber instead
accountNumberStringDebt account number
externalCrmIdStringOptional field to identify the debt in the requesting CRM
isSelectedBoolean!True/False flag to identify if this debt is selected for program enrollment
coApplicantIsSelectedBooleanOnly applicable to JOINT debt. True/False flag to identify if this debt is selected by the co-applicant
eligibilityStatusEligibilityStatus!Identify the eligibility status
isOverriddenBooleanTrue/False flag to identify if the eligiblity status is being overriden
exceptions[String]List of reasons the eligibility status is being overridden
history[UwResultDebtHistory]History of all the updates made to this debt
sourceString!Source of the debt entry can be MANUAL or CREDIT_REPORT
creditorNameStringcreditor name
parentCreditorNameStringParent creditor name
parentCreditorIdStringParent creditor ID
originalCreditorNameStringOriginal creditor name
creditorIdIDCreditor ID from Forth
creditorTypeStringcreditor type
ecoaCodeStringECOA Code
accountTypeStringAccount type
portfolioTypeStringPortfolio type
debtTypeStringDebt type
openDateStringDate debt was opened
lastPaymentDateStringDate of the last payment
hasLastPaymentBooleanTrue/False flag to identify if last payment was amde
narrativeCodes[String]Narrative codes that might include bankcruptcy codes
bankruptcyDateFiledStringBankruptcy Record Date. This come from the credit report and does not need to be updated.
currentBalanceFloatCurrent debt balance
originalBalanceFloatOriginal debt balance
nawSignedDateDateOnly applicable to JOINT debt. The date when the non-applicant waiver has been signed.
nawUrlStringOnly applicable to JOINT debt. The url to the non-applicant waiver document’s file
hasProofOfLiabilityBooleanHas provided proof of liability
forthDebtTypeIdStringForth Debt Type ID
remarks[String]Remarks
isCollectionBooleanFlag to show if the debt is in collection
approvedAccountTypeCheckBooleanTrue/False flag to identify if this underwriting check passed
unacceptableCreditorCheckBooleanTrue/False flag to identify if this underwriting check passed
creditUnionAndStateCheckBooleanTrue/False flag to identify if this underwriting check passed
debtOwnershipCheckBooleanTrue/False flag to identify if this underwriting check passed
minimumDebtValueCheckBooleanTrue/False flag to identify if this underwriting check passed
duplicateDebtsCheckBooleanTrue/False flag to identify if this debt is selected and a duplicate debt
multipleCreditUnionCheckBooleanTrue/False flag to identify if this underwriting check passed
paymentHistoryCheckBooleanTrue/False flag to identify if this underwriting check passed
unsecuredDebtCheckBooleanTrue/False flag to identify if this underwriting check passed
bankruptcyCheckBooleanTrue/False flag to identify if this underwriting check passed
employerIsCreditorCheckBooleanTrue/False flag to identify if the creditor is the same as employer
standaloneDebtsCheckBooleanTrue/False flag to identify if the creditor is a standalone debt
coApplicantCheckBooleanOnly applicable to JOINT debt. True/False flag to identify if this underwriting check passed
currAndOgBalanceCheckBooleanCurrent and original balance check
proofOfLiabilityCheckBooleanProof of liability
delinquencyStringaccount rating /delinquency value
monthlyPaymentFloatMonthly payment
notes[String]Debt Notes
UwResultDebtHistory

Historical record of changes made to a debt

FieldTypeDescription
isSelectedBooleanWhether the debt was selected for enrollment at this revision
coApplicantIsSelectedBooleanWhether the co-applicant had selected this debt at this revision
exceptions[String]Exceptions applied to the debt at this revision
sourceStringSource of the debt (MANUAL or CREDIT_REPORT)
creditorNameStringCreditor name at this revision
originalCreditorNameStringOriginal creditor name at this revision
creditorTypeStringCreditor type at this revision
ecoaCodeStringECOA code at this revision
accountTypeStringAccount type at this revision
portfolioTypeStringPortfolio type at this revision
debtTypeStringDebt type at this revision
openDateStringOpen date at this revision
lastPaymentDateStringLast payment date at this revision
hasLastPaymentBooleanWhether last payment was made at this revision
currentBalanceFloatCurrent balance at this revision
originalBalanceFloatOriginal balance at this revision
narrativeCodes[String]Narrative codes at this revision
bankruptcyDateFiledStringBankruptcy date filed at this revision
nawSignedDateDateNon-applicant waiver signed date at this revision
nawUrlStringNon-applicant waiver URL at this revision
hasProofOfLiabilityBooleanWhether proof of liability was provided at this revision
isCollectionBooleanWhether the debt was in collection at this revision
remarks[String]Remarks at this revision
monthlyPaymentFloatMonthly payment at this revision
updatedByIDUser ID who made this update
fromRevisionIntThe revision number this history entry was created from
JointUwResultHistory

Historical record of changes made to a joint underwriting result

FieldTypeDescription
applicantInfoJointUwApplicantInfoApplicant information at this revision
leadIdStringLead ID at this revision
updatedByIDUser ID who made this update
fromRevisionIntThe revision number this history entry was created from
JointUwApplicantInfo
FieldTypeDescription
applicantContactInfoApplicantContactInfoApplicant’s contact information
coApplicantContactInfoApplicantContactInfoCo-applicant’s contact information
ApplicantContactInfo
FieldTypeDescription
employerNameStringApplicant employer name
isMarriedToCoApplicantBooleanTrue/False flag to identify if the applicant is married to the co-applicant
homeAddressStringApplicant home address.
applicantStateString!Applicant state.
ssnStringApplicant SSN.
dobStringApplicant date of birth.
phoneStringApplicant phone number.
cellPhoneStringApplicant cell phone number.
firstNameStringApplicant first name.
lastNameStringApplicant last name.
jobTitleStringApplicant job title.
emailStringApplicant email.
hardshipStringApplicant hardship reason.
filedBankruptcyStringHas the applicant filed bankruptcy.
routingNumberStringApplicant routing number.
bankNameStringApplicant bank name.
bankAccountNumberStringApplicant bank account number.
bankAccountHolderNameStringApplicant bank account holder name.
bankAccountTypeStringApplicant bank account type.
eligibilityReqMilitaryStringApplicant eligibility requirement for military.
eligibilityReqCreditCounsellingStringApplicant eligibility requirement for credit counselling.
eligibilityReqBankruptcyStringApplicant eligibility requirement for bankruptcy.
eligibilityReqFederalGovDebtStringApplicant eligibility requirement for federal government debt.
eligibilityReqSecuredDebtStringApplicant eligibility requirement for secured debt.
belongsToCompanyIdStringThe Forth Pay company ID that the applicant belongs to.
ApplicantContactInfo
FieldTypeDescription
employerNameStringApplicant employer name
isMarriedToCoApplicantBooleanTrue/False flag to identify if the applicant is married to the co-applicant
homeAddressStringApplicant home address.
applicantStateString!Applicant state.
ssnStringApplicant SSN.
dobStringApplicant date of birth.
phoneStringApplicant phone number.
cellPhoneStringApplicant cell phone number.
firstNameStringApplicant first name.
lastNameStringApplicant last name.
jobTitleStringApplicant job title.
emailStringApplicant email.
hardshipStringApplicant hardship reason.
filedBankruptcyStringHas the applicant filed bankruptcy.
routingNumberStringApplicant routing number.
bankNameStringApplicant bank name.
bankAccountNumberStringApplicant bank account number.
bankAccountHolderNameStringApplicant bank account holder name.
bankAccountTypeStringApplicant bank account type.
eligibilityReqMilitaryStringApplicant eligibility requirement for military.
eligibilityReqCreditCounsellingStringApplicant eligibility requirement for credit counselling.
eligibilityReqBankruptcyStringApplicant eligibility requirement for bankruptcy.
eligibilityReqFederalGovDebtStringApplicant eligibility requirement for federal government debt.
eligibilityReqSecuredDebtStringApplicant eligibility requirement for secured debt.
belongsToCompanyIdStringThe Forth Pay company ID that the applicant belongs to.
TradelineMetadata
FieldTypeDescription
enrolledUpstartDebtAccountNumbers[String]List of externalDebtsId’s that belong to selected Upstart debts, if empty then none
enrolledCapitalOneDebtAccountNumbers[String]List of externalDebtsId’s that belong to selected Catipal One debts, if empty then none
enrolledDiscoverDebtAccountNumbers[String]List of externalDebtsId’s that belong to selected Discover debts, if empty then none

EligibilityResponseError

Includes a list of reasons why the underwriting did not pass

Possible reason are Ineligible, Condition, and Update Needed.

If an error does not include a debtId then it is an application level error.

FieldTypeDescription
debtIdStringThe debtId of the debt that caused the error.
filterNameStringThe name of the underwriting check that caused the error.
message[String]The list of reasons why the underwriting check did not pass.

Additional Enums

EligibilityStatus

Eligibility status for a debt

ValueDescription
ELIGIBLEDebt meets all underwriting criteria and can be enrolled
INELIGIBLEDebt does not meet underwriting criteria and cannot be enrolled
CONDITIONALDebt requires additional conditions to be met before enrollment
UPDATE_NEEDEDDebt requires additional information to determine eligibility
UNABLE_TO_PROCESSUnable to process the debt eligibility check

Error Types

The response may include the following error types:

EligibilityResponseError

Includes a list of reasons why the underwriting did not pass

Possible reason are Ineligible, Condition, and Update Needed.

If an error does not include a debtId then it is an application level error.

FieldTypeDescription
debtIdStringThe debtId of the debt that caused the error.
filterNameStringThe name of the underwriting check that caused the error.
message[String]The list of reasons why the underwriting check did not pass.

Common Errors

Error CodeDescriptionResolution
VALIDATION_ERRORInput validation failedCheck required fields and formats
UNAUTHORIZEDInvalid or expired tokenRe-authenticate and retry
NOT_FOUNDResource not foundVerify the ID or reference

Common Error Scenarios and Troubleshooting

1. Validation Errors

Error: INVALID_SSN, INVALID_DOB, INVALID_PHONE, INVALID_EMAIL, INVALID_CELL_PHONE

Cause: Input data doesn’t meet format requirements

Solution:

  • SSN: Exactly 9 digits (e.g., "123456789")
  • DOB: YYYY-MM-DD format (e.g., "1985-06-15")
  • Phone/CellPhone: Valid US phone - 10 digits (e.g., "5551234567")
  • Email: Valid email format

2. Document Not Found (404)

Error: 404 Not Found

Cause: - UW Result ID or the revision doesn’t exist

  • Using credentials that don’t own the uw result

Solution:

  • Verify UW Result ID and the revision are correct
  • Ensure you’re using credentials that own the uw result

3. Missing Co-Applicant State for JOINT

Error: CO_APPLICANT_INVALID_STATE

Cause: JOINT application missing applicantState in coApplicantContactInfo

Solution:

Always include applicantState in both applicantContactInfo and coApplicantContactInfo for JOINT applications

4. Accidental Manual Debt Removal

Error: Manual debts disappeared after update

Cause: Manual debts were not included in the update payload

Solution:

Always include manual debts you want to keep.

Prevention Pattern:

async function safeUpdate(documentId, updates) {
// Fetch current debts first
const current = await getUwResult(documentId);
// Get existing manual debts to retain
const manualDebtsToKeep = current.applicantUwResult.debts
.filter(d => d.source === 'MANUAL')
.filter(d => !updates.debtsToRemove?.includes(d.id))
.map(d => ({ id: d.id, isSelected: d.isSelected }));
// Combine with your updates
const allDebts = [
...manualDebtsToKeep,
...updates.creditReportDebtsToModify,
...updates.newManualDebts
];
return await updateApplicantEligibility({
...updates,
applicantUwResult: { debts: allDebts }
});
}

5. Zero Balance Debts Filtered

Error: New debts with currentBalance: 0 are automatically excluded

Cause: System filters out zero-balance debts automatically

Solution:

Ensure new manual debts have a positive balance

6. Underwriting Check Failures

Error: Various filter failures

Cause: Debts or application don’t meet underwriting requirements

Solution:

Understanding Error Response:

  • debtId: null → Application-level error
  • debtId: "xxx" → Debt-specific error
  • filterName → Which rule failed
  • message → Why it failed

Common Failures:

7. Incorrect Debt Placement in JOINT Applications

Error: Debts showing incorrect eligibility status or not being processed correctly

Cause: Debts placed in the wrong section (applicantUwResult, coApplicantUwResult, or jointUwResult) for JOINT application type

Solution:

Use the checkApplicantEligibility response as a reference to determine which section each debt belongs to:

  • applicantUwResult.debts → Debts that belong to the primary applicant only
  • coApplicantUwResult.debts → Debts that belong to the co-applicant only
  • jointUwResult.debts → Debts that are shared between both applicants

Important: When calling updateApplicantEligibility with applicationType: JOINT, ensure each debt is placed in the same section as it appears in the checkApplicantEligibility response. Placing a debt in the wrong section may lead to:

  • Incorrect eligibility status calculations
  • Unexpected underwriting filter failures
  • Incorrect total debt calculations

When to intentionally move a debt to a different section:

  • Only move a debt to a different section if it is intentional, such as when the ECOA code has been updated
  • Example: A debt originally in applicantUwResult may need to be moved to jointUwResult if the ECOA code changed to indicate joint ownership

Best Practice: Always reference the original checkApplicantEligibility response to verify debt placement before submitting updates.

Best Practices

1. Understand the Debt Removal Rule

CREDIT_REPORT debts: Not included = No change (safe)
MANUAL debts: Not included = REMOVED (be careful!)

2. Always Fetch Before Updating

If you have manual debts and want to keep them:

// Fetch current state first
const current = await getUwResult(documentId);
const manualDebts = current.applicantUwResult.debts
.filter(d => d.source === 'MANUAL');
// Include these in your update