Update credit data

A credit integration can update credit data on a loan by patching a transaction with a response result object with the action UPDATE_CREDIT_DATA.

📘

Prerequisites

Credit technology provider IDs for Fannie (CreditCompanyCode) and Freddie (CreditProviderCode and CreditAffiliateCode) have to be registered on the product.

    "additionalInfo": [
        {
            "key": "DUCreditProvider",
            "metadata": {
                "code":" "
            }
        },
        {
            "key": "LPACreditProvider",
            "metadata": {
                "code":" "
            }
        },
        {
            "key": "LPACreditAffiliate",
            "metadata": {
                "code":" "
            }
        }
    ]

Product has to be entitled to UPDATE_CREDIT_DATA action in order to use it via transaction patch.

A product can be entitled to CREATE_SERVICE_EVENTS action by adding it in the response.results array of the specific request type within $.entitlements.data.transaction.

          {
            "action": "UPDATE_CREDIT_DATA",
            "formats": [
              "application/vnd.task.update-1.0.0.json"
            ]
          }

The specific fields that are sent as part of the response loan data follow the standard data entitlement model and process.

{
    "status": "processing",
    "loanFormat": "application/vnd.plm-2.0.0+json",
    "loan": {
        ... // Additional loan data, sent as part of standard transaction loan update
    },
    "result": {
        "action": "UPDATE_CREDIT_DATA",
        "format": "application/vnd.credit-data-update-1.0.0.json",
        "details": {
            ... // update credit data action details
        }
    },
    "partnerStatus": "partner status"
}

📘

format and action

The Encompass Partner Connect Platform (EPC) uses $.result.format and $.result.action to properly handle the action details sent in the transaction PATCH payload. Make sure you use:

"format": "application/vnd.credit-data-update-1.0.0.json"
"action": "UPDATE_CREDIT_DATA"

List of fields to be :

FieldsAdditional Information
$.result.details.resource.idSkyDrive file Id uploaded by partner for raw response.
$.result.details.resource.typeMISMO Credit XML format. Note MISMO 3.4 will be supported in a future release.
Sample: urn:ice:epc:partner:credit:report:version:V2.3.1.
$.result.details.importOptions.creditReportTypeNormalized credit report type used to update [4750] and [5006] and drive AUS underwriting flows.

Enumerated: (Merge | Prequal | Preapproval).
$.result.details.importOptions.creditReportTypeDescUser friendly description of the credit order; displayed to user in AUS flow.
$.result.details.importOptions.liabilityDetails.importLiabilitiesIf true, liabilities from the included raw response file will be imported to the loan application associated with the order.
$.result.details.importOptions.liabilityDetails.deleteLiabilityRecordsRequired if importLiabilities = true

If true, all liabilities on the loan application associated with the order will be deleted before the import is executed.

Note: importing liabilities does not support updates to existing liability records in this release; a request with importLiabilities = true and deleteLiabilityRecords = false will add liability records to the application and will not remove duplicates.
$.result.details.importOptions.liabilityDetails.excludeZeroBalanceLiabilitiesRequired if importLiabilities = true

If true, all liabilities with zero balances will be skipped during the import.

The complete list of supported fields in the update credit data action details is captured in the JSON-schema object definition below. You can use online resources such as JSON Schema Validator to manually validate result details objects content.

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "description": "Schema for credit import options",
  "validationMessage": {
    "invalid-string": "a valid String. Please provide a valid string."
  },
  "additionalProperties": false,
  "required": [
    "resource",
    "importOptions"
  ],
  "properties": {
    "resource": {
      "$ref": "#/definitions/resource"
    },
    "importOptions": {
      "$ref": "#/definitions/importOptions"
    }
  },
  "definitions": {
    "non-empty-string": {
      "type": "string",
      "pattern": "^(?!\\s*$).+",
      "validationMessage": {
        "$ref": "#/validationMessage/invalid-string"
      }
    },
    "resource": {
      "type": "object",
      "description": "Details about the resource being imported",
      "additionalProperties": false,
      "required": [
        "id",
        "type"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Unique identifier for the resource",
          "$ref": "#/definitions/non-empty-string"
        },
        "type": {
          "type": "string",
          "description": "Type of the resource, following a specific URN format",
          "$ref": "#/definitions/non-empty-string"
        }
      }
    },
    "importOptions": {
      "type": "object",
      "description": "Options for importing credit data",
      "additionalProperties": false,
      "required": [
        "creditReportType",
        "liabilityDetails"
      ],
      "properties": {
        "creditReportType": {
          "type": "string",
          "enum": [
            "Merge",
            "Prequal",
            "PreApproval"
          ],
          "description": "Type of credit report to import"
        },
        "creditReportTypeDesc": {
          "type": "string",
          "description": "Description of the credit report type"
        },
        "liabilityDetails": {
          "$ref": "#/definitions/liabilityDetails"
        }
      }
    },
    "liabilityDetails": {
      "type": "object",
      "description": "Details about liabilities to be imported",
      "additionalProperties": false,
      "required": [
        "importLiabilities",
        "deleteLiabilityRecords",
        "excludeZeroBalanceLiabilities"
      ],
      "properties": {
        "importLiabilities": {
          "type": "boolean",
          "description": "Flag to indicate if liabilities should be imported"
        },
        "deleteLiabilityRecords": {
          "type": "boolean",
          "description": "Flag to indicate if existing liability records should be deleted"
        },
        "excludeZeroBalanceLiabilities": {
          "type": "boolean",
          "description": "Flag to exclude liabilities with zero balance"
        }
      }
    }
  }
}

Sample update credit data request payload with most of the fields supported:

{
    "status": "Completed",
    "loanFormat": "application/vnd.plm-2.0.0+json",
    "retry": {
        "interval": "1",
        "duration": 10
    },
    "loan": {
        "borrowerRequestedLoanAmount": 250003,
        "mortgageType": "mortgagePartnerUpdated",
        "requestedInterestRatePercent": 3,
        "loanAmortizationType": "AdjustableRatePartnerUpdated",
        "propertyAppraisedValueAmount": 250003,
        "fees": [
            {
                "feeType": "CreditReportFee",
                "paidToName": "test provider",
                "borPaidAmount": "50.00"
            }
        ]
    },
    "resources": [
        {
            "id": "B2.be11172646KS*515ed6d5-3ec8-40f5-82fa-5a1f8894ac1cKS*liability-_borrower1-725217050482315.xml",
            "name": "liability-_borrower1-725217050482315.xml",
            "mimeType": "application/xml"
        }
    ],
    "result": {
        "format": "application/vnd.credit-data-update-1.0.0.json",
        "action": "UPDATE_CREDIT_DATA",
        "details": {
            "resource": {
                "id": "B2.be11172646KS*515ed6d5-3ec8-40f5-82fa-5a1f8894ac1cKS*liability-_borrower1-725217050482315.xml",
                "type": "urn:ice:epc:partner:credit:report:version:V2.3.1"
            },
            "importOptions": {
                "creditReportType": "Merge",
                "creditReportTypeDesc": "Hard pull",
                "liabilityDetails": {
                    "importLiabilities": true,
                    "deleteLiabilityRecords": true,
                    "excludeZeroBalanceLiabilities": true
                }
            }
        }
    }
}