---
agentTools:
  projectIndex: https://docs.concept.partner.elliemae.com/llms.txt
---

# How does EPC work?

EPC provides a comprehensive **Application Programming Interface** (API) to Lender and Partner applications, which facilitates a governed exchange of data, documents, and transactional events - enabling simple and intuitive transactional workflows between Lenders and their Partner service providers.

<hr />
<br />

[block:image]
{
  "images": [
    {
      "image": [
        "https://files.readme.io/1304095-EPC_diagram.png",
        "EPC_diagram.png",
        848
      ],
      "align": "center",
      "sizing": "smart"
    }
  ]
}
[/block]

<br />

At its core, EPC provides the following features to Partner integrators:

1. **Product Configuration**: EPC manages metadata and configuration settings for Partner-integrated products, which govern the products' access/listing, routing, entitlements, and more.

2. **Transaction Origination**: When a transaction is being originated on an integration's user-interface, EPC provides contextual information about the subject loan and originating user.

3. **Transactional management**: EPC facilitates service transactions on behalf of Lenders and enables Partners to fulfill transactions via its API.

4. **Asynchronous Notifications**: EPC notifies Partners of transactional events such as creation/updates, and exceptions in processing responses via Webhooks (HTTP callbacks), so that Partners can take appropriate actions when necessary.

5. **Usage and Billing**: EPC keeps track of transactions, accounting, and operational statistics for Lenders and Partners.

<br />

## Under the Hood ⚙️

<hr />

![](https://files.readme.io/e323571-EPC_2.0_Architecture.png "EPC 2.0 Architecture.png")

<br />

EPC is designed to be generic, and is purposefully loosely bound to the notion of a mortgage transaction. The benefit of this architectural approach is reusability. The same integration can be reused in many different applications. For example, a credit integration can retrieve a borrower's credit history where needed in a business process, be it an application for a residential mortgage or an auto loan.

Consequently, EPC must rely on an extended platform to read and affect mortgage applications: the **Encompass Orchestration Services** (EOS). EOS is comprised of a group of independent services that handle Encompass specific processes such as:

1. Updating the loan file with Partner transaction response data

2. Updating a loan's eFolder with documents attached to a Partner's transaction response

3. Managing Lender user accounts/credentials so that Lenders can place transaction requests without needing to enter their credentials every time

<hr />
<br />

## Multiple Channels of Origination...

Lenders are able to create new transactions with a Partner integration in multiple ways:

1. **Interactive ordering** via Encompass applications. An integration's user-interface is embedded within an IMT lender-facing application, such as Encompass (Web or Desktop edition). The lender interacts with this user-interface to manually initiate a new service request with, and receive updates from, the Partner integration.

2. **Headless ordering** via the Encompass Developer Connect (EDC) API. A user-interface is not involved. Lenders can invoke a service ordering API published on EDC, supplying the necessary data inputs for a Partner integration to contextualize and fulfill an order. Lenders use these APIs to build proprietary automated workflows in their loan processing ecosystem.

3. **1-click/Automated Ordering** via the Encompass workflow engine. An integration's administrator-facing user-interface allows Lender administrators to create transactional templates. Once saved, these order templates are associated with certain business conditions in a loan. When those conditions are met, a transaction begins via a single click by a user, or via an automation engine using the template created by the lender administrator.

<br />

## ...But a Generic Approach to Fulfillment

The EPC Partner API enables (and encourages) Partner integrations to be indifferent to a transaction's mode of origination. Notifications for all new transaction requests are received via the same mechanism (an HTTP callback), and can be similarly processed and fulfilled. This allows a single integration implementation to serve the breadth of interactive, 1-click, API based and automated ordering use-cases - enabling lenders to build powerful and intelligent service ordering workflows. The following developer guides will dig deeper into this important idea.