HomeGuidesAPI Reference
Guides

Managing Debts

The API features described below can be used to add a consumer's debts to the Payitoff system in order to enable further actions like generating paydown schedules. You will also find ways to retrieve debts. Both debts created by this API and those created by our Javascript widget Nexus will be listed here.

Create a Debt

In addition to debts that are creating by linking, debts may be created via GraphQL mutations.

mutation($consumerId: UUID4!, $input: DebtInput!) {
  createDebt(consumerId: $consumerId, input: $input) {
    accountNumber
    apr
    balance
    balanceEnteringRepayment
    guarantor
    lastPaymentAmount
    lastPaymentOn
    lender
    minimumPayment
    openedOn
    originalPrincipal
    outstandingInterest
    paymentDueOn
    repaymentBeginDate
    studentLoanServicerName
    standing
    subType
    term
    type
    uuid
  }
}

The variables to create a debt should include the following example values:

{
  "consumerId": "98a24c00-9262-4fe7-9871-3fe354dcd574", 
  "input": {
    "accountNumber": "34657687263",
    "apr": 12.5,
    "balance": 50000.00,
    "balanceEnteringRepayment": 75000.00,
    "guarantor": "US Department of ED",
    "lastPaymentAmount": 473.43,
    "lastPaymentOn": "2024-02-26",
    "lender": "University of Learning",
    "minimumPayment": 150.00,
    "openedOn": "2019-08-03",
    "originalPrincipal": 63000.00,
    "outstandingInterest": 3265.49,
    "paymentDueOn": "2024-03-26",
    "repaymentBeginDate": "2024-01-26",
    "studentLoanServicerName": "Nelnet",
    "standing": "IN_REPAYMENT",
    "subType": "Direct Stafford Subsidized",
    "term": 120,
    "type": "STUDENT_LOAN"
  }
}

*Please note: studentLoanServicerName may only be set when type is set to STUDENT_LOAN. When working with student loans, in order to receive the best Guidance, we suggest using the following values for the subType field:

"Direct Stafford Subsidized (SULA Eligible)"  
"Direct Stafford Subsidized"  
"Direct Stafford Unsubsidized"  
"Direct PLUS for Graduate/Professional"  
"Direct PLUS Parent"  
"Direct Consolidation Unsubsidized"  
"Direct Consolidation Subsidized"  
"Direct Consolidation PLUS"  
"Direct Unsubsidized (TEACH)"  
"Direct Consolidation Subsidized (SULA Eligible)"  
"National Defense"  
"Perkins Expanded Lending"  
"Federally Insured Student (FISL)"  
"FFEL PLUS for Graduate/Professional"  
"Income-Contingent (ICL)"  
"National Direct Student (NDSL)"  
"FFEL PLUS Parent"  
"Federal Perkins"  
"FFEL Refinanced"  
"FFEL Stafford Subsidized"  
"Supplemental (SLS)"  
"FFEL Stafford Unsubsidized"  
"Private"

Update a Debt

Any debt may be updated via a mutation. Be aware that if a debt created by linking is updated via API, those updates may be overwritten the next time the debt is synced if conflicting data is received.

mutation($consumerId: UUID4!, $debtId: UUID4!, $input: DebtInput!) {
  updateDebt(consumerId: $consumerId, debtId: $debtId, input: $input) {
    accountNumber
    apr
    balance
    balanceEnteringRepayment
    guarantor
    lastPaymentAmount
    lastPaymentOn
    lender
    minimumPayment
    openedOn
    originalPrincipal
    outstandingInterest
    paymentDueOn
    repaymentBeginDate
    studentLoanServicerName
    standing
    subType
    term
    type
    uuid
  }
}

The variables to update a debt may include the following example values:

{
  "consumerId": "fff7ff9f-0f2b-4d99-89ec-40d237b95d4d", 
  "debtId": "908c2df0-70ec-42e0-ac21-bdf26b7c4419", 
   "input": {
    "accountNumber": "34657687263",
    "apr": 12.5,
    "balance": 50000.00,
    "balanceEnteringRepayment": 75000.00,
    "guarantor": "US Department of ED",
    "lastPaymentAmount": 473.43,
    "lastPaymentOn": "2024-02-26",
    "lender": "University of Learning",
    "minimumPayment": 150.00,
    "openedOn": "2019-08-03",
    "originalPrincipal": 63000.00,
    "outstandingInterest": 3265.49,
    "paymentDueOn": "2024-03-26",
    "repaymentBeginDate": "2024-01-26",
    "studentLoanServicerName": "Aidvantage",
    "standing": "IN_REPAYMENT",
    "subType": "Direct Stafford Subsidized",
    "term": 120,
    "type": "STUDENT_LOAN"
  }
}

Delete a Debt

Debts created via GraphQL can be deleted via GraphQL. Debts created via linking may not be deleted via GraphQL.

mutation($consumerId: UUID4!, $debtId: UUID4!) {
  deleteDebt(consumerId: $consumerId, debtId: $debtId) {
    apr
    balance
    minimumPayment
    term
    type
    uuid
  }
}

The variables to delete a debt should include the following example values:

{
  "consumerId": "fff7ff9f-0f2b-4d99-89ec-40d237b95d4d", 
  "debtId": "908c2df0-70ec-42e0-ac21-bdf26b7c4419"
}

List a Consumer's Debts

query($consumerId: UUID4!, $types: [DebtType]) {
  consumer(uuid: $consumerId) {
    debts(types: $types) {
      accountNumber
      amountPastDue
      apr
      balance
      balanceEnteringRepayment
      creditLimit
      estimatedMinimumPayment
      guarantor
      institutionName
      lastActivityOn
      lastPaymentAmount
      lastPaymentOn
      lender
      mask
      minimumPayment
      ninetyDayCounter
      openedOn
      originalPrincipal
      outstandingInterest
      paymentDueOn
      paymentFrequency
      payoffBalance
      payoffQuoteDate
      reportedOn
      responsibility
      repaymentBeginDate
      sixtyDayCounter
      standing
      studentLoanServicerName
      subType
      term
      thirtyDayCounter
      type
      uuid
    }
  }
}

Example variables:

{
  "consumerId": "df8f7e1b-62f0-4297-a6bc-042ac371ad72",
  "types": ["STUDENT_LOAN","CREDIT_CARD"]
}

Retrieving Linked Debts

When looking at Debts that have been linked via Nexus, please note that minimum_payment will never be populated from linking. However, the estimated_minimum_payment field may often contain an amount corresponding to the scheduled monthly payment for that debt.

Types 🚧

Explore our complete GraphQL schema in the GraphiQL UI available at https://payitoff-sandbox.io/api/graphql-playground (just click the "< Docs" tab at right).