Update credit data

Credit reporting integrations in EPC must use a custom Transaction Result action to populate the Encompass loan with liabilities, credit scores, and FACTA data. This is accomplished by patching the transaction with a response result object that specifies the UPDATE_CREDIT_DATA action.

Prerequisites

Credit technology provider IDs for Fannie Mae (CreditCompanyCode) and Freddie Mac (CreditProviderCode and CreditAffiliateCode) must be registered with the product. These IDs are assigned to credit reporting agencies by Fannie Mae and Freddie Mac and are used in underwriting submissions to enable support for credit reissue requests.

The codes used in the sample below are for illustration purposes only and accommodate variations in code length as assigned by Fannie Mae and Freddie Mac:

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

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

Products can be granted this entitlement by adding UPDATE_CREDIT_DATA action to the response.results array of the specific request type within $.entitlements.data.transaction.

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

Loan data that is not included in the UPDATE_CREDIT_DATA action can still be entitled at the product level and patched normally by including the "loan" payload in the transaction update call.

{
    "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 (EPC) Platform uses $.result.format and $.result.action to correctly process the action details provided in the transaction PATCH payload. Ensure that you use the following values:

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

The details object in the result is required to control how key credit data is processed when it is sourced from the referenced credit response file. These fields are defined below:

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 for the Update Credit Data action details is defined in the JSON-schema object below. You can use online resources (such as JSON Schema Validator) to manually validate contents of the resultdetails object.

{
  "$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": {
        "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
                }
            }
        }
    }
}