Encompass Borrower Pair & Applications API
Manage borrower pairs (applications) within a loan file - list, create, read, update, and remove the borrower/co-borrower application entities that carry each borrower's data on a loan.
Manage borrower pairs (applications) within a loan file - list, create, read, update, and remove the borrower/co-borrower application entities that carry each borrower's data on a loan.
openapi: 3.0.3
info:
title: Encompass Developer Connect API
description: >-
Encompass Developer Connect is the ICE Mortgage Technology (formerly Ellie Mae)
REST API platform for the Encompass loan origination system (LOS). It lets partners
and lenders configure, customize, and administer loan information and resources
programmatically - loan manufacturing, loan pipeline, borrower pairs, contacts,
eFolder documents and attachments, milestones, conditions, users, and event
webhooks.
Access is partner/tenant-gated: every call is authenticated with an OAuth 2.0
bearer token issued for a specific Encompass instance. Credentials (Client ID and
secret / API key) are provisioned in the developer portal and distributed by an
Encompass user with the super administrator persona. The data and features a token
can reach are governed by the caller's assigned Encompass persona.
Versioning is path-based; v3 is current and v1/v2 are deprecated. This document
grounds endpoints in the public API reference at developer.icemortgagetechnology.com.
Endpoints tagged x-endpoint-status "confirmed" are read directly from the public
reference; those tagged "modeled" follow Encompass's documented, consistent path
conventions but were authored behind the login-gated request builder and should be
verified against the live reference before use.
version: '2026-07-04'
contact:
name: ICE Mortgage Technology - Encompass Developer Connect
url: https://developer.icemortgagetechnology.com/developer-connect/docs/welcome
x-lineage: >-
Encompass is a product of ICE Mortgage Technology, formerly Ellie Mae, acquired by
Intercontinental Exchange (ICE) in 2020. The API host api.elliemae.com reflects the
Ellie Mae lineage.
servers:
- url: https://api.elliemae.com
description: Encompass Developer Connect production API host (Ellie Mae lineage)
security:
- oAuth2: []
- bearerAuth: []
tags:
- name: Authentication
description: OAuth 2.0 token issuance.
- name: Loan Management
description: Create, read, update, and delete Encompass loan files and loan data.
- name: Loan Pipeline
description: Search loans and loan fields across the pipeline with cursor pagination.
- name: Borrower Pairs
description: Borrower/co-borrower application entities within a loan (modeled).
- name: Contacts
description: Borrower (consumer) and business contacts (modeled).
- name: eFolder
description: Documents and attachments in a loan's eFolder.
- name: Milestones
description: Loan workflow milestones and associates (modeled).
- name: Conditions
description: Underwriting, preliminary, and post-closing conditions (modeled).
- name: Users
description: Internal Encompass user administration (modeled).
- name: Webhooks
description: Event subscriptions, resources, events, and custom auth functions.
paths:
/oauth2/v1/token:
post:
operationId: getToken
tags:
- Authentication
summary: Request an OAuth 2.0 access token
description: >-
Exchange client credentials (client_credentials grant for server-to-server, or
authorization_code for user-delegated access) for a bearer access token scoped
to an Encompass instance.
x-endpoint-status: confirmed
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
grant_type:
type: string
example: client_credentials
client_id:
type: string
client_secret:
type: string
scope:
type: string
responses:
'200':
description: An access token.
content:
application/json:
schema:
type: object
properties:
access_token:
type: string
token_type:
type: string
example: Bearer
expires_in:
type: integer
'401':
$ref: '#/components/responses/Unauthorized'
/encompass/v3/loans:
post:
operationId: createLoan
tags:
- Loan Management
summary: Create a loan
description: Create a new Encompass loan file, optionally from a loan template set.
x-endpoint-status: confirmed
responses:
'201':
description: The created loan.
content:
application/json:
schema:
$ref: '#/components/schemas/Loan'
'401':
$ref: '#/components/responses/Unauthorized'
/encompass/v3/loans/{loanId}:
get:
operationId: getLoan
tags:
- Loan Management
summary: Retrieve a loan
description: Retrieve a loan file and its data by loan GUID.
x-endpoint-status: confirmed
parameters:
- $ref: '#/components/parameters/LoanId'
- name: entities
in: query
description: Comma-separated list of loan entities to include in the response.
schema:
type: string
responses:
'200':
description: The requested loan.
content:
application/json:
schema:
$ref: '#/components/schemas/Loan'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
patch:
operationId: updateLoan
tags:
- Loan Management
summary: Update a loan
description: Write values to loan data fields. Supports append/replace of collections.
x-endpoint-status: confirmed
parameters:
- $ref: '#/components/parameters/LoanId'
responses:
'200':
description: The updated loan.
'401':
$ref: '#/components/responses/Unauthorized'
delete:
operationId: deleteLoan
tags:
- Loan Management
summary: Delete a loan
description: Delete a loan file.
x-endpoint-status: confirmed
parameters:
- $ref: '#/components/parameters/LoanId'
responses:
'204':
description: Loan deleted.
'401':
$ref: '#/components/responses/Unauthorized'
/encompass/v3/loans/{loanId}/ucdFields:
get:
operationId: getLoanUcdFields
tags:
- Loan Management
summary: Retrieve UCD field definitions for a loan
description: Retrieve Uniform Closing Dataset (UCD) field definitions for a loan.
x-endpoint-status: confirmed
parameters:
- $ref: '#/components/parameters/LoanId'
responses:
'200':
description: UCD field definitions.
'401':
$ref: '#/components/responses/Unauthorized'
/encompass/v1/loans/{loanId}/moveToFolder:
patch:
operationId: moveLoanToFolder
tags:
- Loan Management
summary: Move a loan to a folder
description: Move a loan file into a different loan folder.
x-endpoint-status: confirmed
parameters:
- $ref: '#/components/parameters/LoanId'
responses:
'200':
description: Loan moved.
'401':
$ref: '#/components/responses/Unauthorized'
/encompass/v3/loanPipeline:
post:
operationId: viewPipeline
tags:
- Loan Pipeline
summary: Query the loan pipeline
description: >-
Search for loans and loan fields on the pipeline using canonical field names and
filter criteria (CanonicalName, Value, MatchType, Terms, Operator, Precision,
Include). Supports cursor-based pagination via the Cursor and Start/Limit query
parameters.
x-endpoint-status: confirmed
parameters:
- name: cursor
in: query
schema:
type: string
- name: start
in: query
schema:
type: integer
- name: limit
in: query
schema:
type: integer
responses:
'200':
description: Matching pipeline rows.
'401':
$ref: '#/components/responses/Unauthorized'
/encompass/v3/loanPipeline/cursor:
post:
operationId: createPipelineCursor
tags:
- Loan Pipeline
summary: Create a pipeline cursor
description: Create a cursor for a pipeline report to page through large result sets.
x-endpoint-status: confirmed
responses:
'200':
description: Cursor created.
'401':
$ref: '#/components/responses/Unauthorized'
/encompass/v3/loanPipeline/canonicalNames:
get:
operationId: getPipelineCanonicalNames
tags:
- Loan Pipeline
summary: Get canonical field names
description: Retrieve the list of canonical (queryable) field names for the pipeline.
x-endpoint-status: confirmed
responses:
'200':
description: List of canonical names.
'401':
$ref: '#/components/responses/Unauthorized'
/encompass/v3/loans/{loanId}/applications:
get:
operationId: listBorrowerPairs
tags:
- Borrower Pairs
summary: List borrower pairs (applications)
description: >-
List the borrower/co-borrower application entities (borrower pairs) on a loan.
x-endpoint-status: modeled
parameters:
- $ref: '#/components/parameters/LoanId'
responses:
'200':
description: A list of borrower pairs.
'401':
$ref: '#/components/responses/Unauthorized'
post:
operationId: createBorrowerPair
tags:
- Borrower Pairs
summary: Create a borrower pair
description: Add a new borrower pair (application) to a loan.
x-endpoint-status: modeled
parameters:
- $ref: '#/components/parameters/LoanId'
responses:
'201':
description: Borrower pair created.
'401':
$ref: '#/components/responses/Unauthorized'
/encompass/v3/loans/{loanId}/applications/{applicationId}:
get:
operationId: getBorrowerPair
tags:
- Borrower Pairs
summary: Retrieve a borrower pair
x-endpoint-status: modeled
parameters:
- $ref: '#/components/parameters/LoanId'
- $ref: '#/components/parameters/ApplicationId'
responses:
'200':
description: The borrower pair.
'401':
$ref: '#/components/responses/Unauthorized'
delete:
operationId: deleteBorrowerPair
tags:
- Borrower Pairs
summary: Delete a borrower pair
x-endpoint-status: modeled
parameters:
- $ref: '#/components/parameters/LoanId'
- $ref: '#/components/parameters/ApplicationId'
responses:
'204':
description: Borrower pair deleted.
'401':
$ref: '#/components/responses/Unauthorized'
/encompass/v1/borrowerContacts:
get:
operationId: listBorrowerContacts
tags:
- Contacts
summary: List borrower contacts
description: List consumer (borrower) contacts in the contact database.
x-endpoint-status: modeled
responses:
'200':
description: A list of borrower contacts.
'401':
$ref: '#/components/responses/Unauthorized'
post:
operationId: createBorrowerContact
tags:
- Contacts
summary: Create a borrower contact
x-endpoint-status: modeled
responses:
'201':
description: Borrower contact created.
'401':
$ref: '#/components/responses/Unauthorized'
/encompass/v1/borrowerContacts/{contactId}:
get:
operationId: getBorrowerContact
tags:
- Contacts
summary: Retrieve a borrower contact
x-endpoint-status: modeled
parameters:
- $ref: '#/components/parameters/ContactId'
responses:
'200':
description: The borrower contact.
'401':
$ref: '#/components/responses/Unauthorized'
patch:
operationId: updateBorrowerContact
tags:
- Contacts
summary: Update a borrower contact
x-endpoint-status: modeled
parameters:
- $ref: '#/components/parameters/ContactId'
responses:
'200':
description: The updated borrower contact.
'401':
$ref: '#/components/responses/Unauthorized'
/encompass/v1/businessContacts:
get:
operationId: listBusinessContacts
tags:
- Contacts
summary: List business contacts
description: List business (service provider / vendor) contacts.
x-endpoint-status: modeled
responses:
'200':
description: A list of business contacts.
'401':
$ref: '#/components/responses/Unauthorized'
post:
operationId: createBusinessContact
tags:
- Contacts
summary: Create a business contact
x-endpoint-status: modeled
responses:
'201':
description: Business contact created.
'401':
$ref: '#/components/responses/Unauthorized'
/encompass/v3/loans/{loanId}/documents:
get:
operationId: listEfolderDocuments
tags:
- eFolder
summary: List eFolder documents
description: List the documents (placeholders) in a loan's eFolder.
x-endpoint-status: confirmed
parameters:
- $ref: '#/components/parameters/LoanId'
responses:
'200':
description: A list of eFolder documents.
'401':
$ref: '#/components/responses/Unauthorized'
post:
operationId: createEfolderDocument
tags:
- eFolder
summary: Create an eFolder document
description: Create a document placeholder in a loan's eFolder.
x-endpoint-status: confirmed
parameters:
- $ref: '#/components/parameters/LoanId'
responses:
'201':
description: Document created.
'401':
$ref: '#/components/responses/Unauthorized'
/encompass/v3/loans/{loanId}/attachments:
get:
operationId: listEfolderAttachments
tags:
- eFolder
summary: List eFolder attachments
description: >-
List the attachments in a loan's eFolder. V3 returns cloud-storage URLs for
uploading and retrieving attachment media. (Several v1 attachment endpoints are
being deprecated in favor of v3.)
x-endpoint-status: confirmed
parameters:
- $ref: '#/components/parameters/LoanId'
responses:
'200':
description: A list of attachments.
'401':
$ref: '#/components/responses/Unauthorized'
/encompass/v3/loans/{loanId}/attachments/{attachmentId}:
get:
operationId: getEfolderAttachment
tags:
- eFolder
summary: Retrieve an eFolder attachment
description: Retrieve an attachment's metadata and cloud-storage retrieval URL.
x-endpoint-status: confirmed
parameters:
- $ref: '#/components/parameters/LoanId'
- $ref: '#/components/parameters/AttachmentId'
responses:
'200':
description: The attachment.
'401':
$ref: '#/components/responses/Unauthorized'
/encompass/v3/loans/{loanId}/milestones:
get:
operationId: listMilestones
tags:
- Milestones
summary: List loan milestones
description: List the milestones marking a loan's progress through origination.
x-endpoint-status: modeled
parameters:
- $ref: '#/components/parameters/LoanId'
responses:
'200':
description: A list of milestones.
'401':
$ref: '#/components/responses/Unauthorized'
/encompass/v3/loans/{loanId}/milestones/{milestoneId}:
patch:
operationId: updateMilestone
tags:
- Milestones
summary: Update / complete a milestone
description: Finish or update a milestone and its assigned associate.
x-endpoint-status: modeled
parameters:
- $ref: '#/components/parameters/LoanId'
- $ref: '#/components/parameters/MilestoneId'
responses:
'200':
description: The updated milestone.
'401':
$ref: '#/components/responses/Unauthorized'
/encompass/v3/loans/{loanId}/associates:
get:
operationId: listLoanAssociates
tags:
- Milestones
summary: List loan associates
description: List the associates (loan team members) assigned to a loan's milestones.
x-endpoint-status: modeled
parameters:
- $ref: '#/components/parameters/LoanId'
responses:
'200':
description: A list of associates.
'401':
$ref: '#/components/responses/Unauthorized'
/encompass/v1/loans/{loanId}/conditions/underwriting:
get:
operationId: listUnderwritingConditions
tags:
- Conditions
summary: List underwriting conditions
description: List the underwriting conditions tracked on a loan.
x-endpoint-status: modeled
parameters:
- $ref: '#/components/parameters/LoanId'
responses:
'200':
description: A list of underwriting conditions.
'401':
$ref: '#/components/responses/Unauthorized'
post:
operationId: createUnderwritingCondition
tags:
- Conditions
summary: Create an underwriting condition
x-endpoint-status: modeled
parameters:
- $ref: '#/components/parameters/LoanId'
responses:
'201':
description: Condition created.
'401':
$ref: '#/components/responses/Unauthorized'
/encompass/v1/loans/{loanId}/conditions/underwriting/{conditionId}:
patch:
operationId: updateUnderwritingCondition
tags:
- Conditions
summary: Update an underwriting condition
description: Update or clear an underwriting condition.
x-endpoint-status: modeled
parameters:
- $ref: '#/components/parameters/LoanId'
- $ref: '#/components/parameters/ConditionId'
responses:
'200':
description: The updated condition.
'401':
$ref: '#/components/responses/Unauthorized'
/encompass/v1/users:
get:
operationId: listUsers
tags:
- Users
summary: List Encompass users
description: List the internal Encompass users in the lender's instance.
x-endpoint-status: modeled
parameters:
- name: start
in: query
schema:
type: integer
- name: limit
in: query
schema:
type: integer
responses:
'200':
description: A list of users.
'401':
$ref: '#/components/responses/Unauthorized'
post:
operationId: createUser
tags:
- Users
summary: Create an Encompass user
x-endpoint-status: modeled
responses:
'201':
description: User created.
'401':
$ref: '#/components/responses/Unauthorized'
/encompass/v1/users/{userId}:
get:
operationId: getUser
tags:
- Users
summary: Retrieve an Encompass user
x-endpoint-status: modeled
parameters:
- $ref: '#/components/parameters/UserId'
responses:
'200':
description: The user.
'401':
$ref: '#/components/responses/Unauthorized'
patch:
operationId: updateUser
tags:
- Users
summary: Update an Encompass user
x-endpoint-status: modeled
parameters:
- $ref: '#/components/parameters/UserId'
responses:
'200':
description: The updated user.
'401':
$ref: '#/components/responses/Unauthorized'
/webhook/v1/subscriptions:
get:
operationId: listWebhookSubscriptions
tags:
- Webhooks
summary: Get all subscriptions
description: List all webhook subscriptions for the instance.
x-endpoint-status: confirmed
responses:
'200':
description: A list of subscriptions.
'401':
$ref: '#/components/responses/Unauthorized'
post:
operationId: createWebhookSubscription
tags:
- Webhooks
summary: Create a subscription
description: >-
Subscribe to resource events (for example loan.created, loan.updated,
loan.deleted, loan.locked, loan.unlocked) delivered to an HTTPS endpoint.
x-endpoint-status: confirmed
responses:
'201':
description: Subscription created.
'401':
$ref: '#/components/responses/Unauthorized'
/webhook/v1/subscriptions/{id}:
get:
operationId: getWebhookSubscription
tags:
- Webhooks
summary: Get a subscription
x-endpoint-status: confirmed
parameters:
- $ref: '#/components/parameters/SubscriptionId'
responses:
'200':
description: The subscription.
'401':
$ref: '#/components/responses/Unauthorized'
put:
operationId: updateWebhookSubscription
tags:
- Webhooks
summary: Update a subscription
x-endpoint-status: confirmed
parameters:
- $ref: '#/components/parameters/SubscriptionId'
responses:
'200':
description: The updated subscription.
'401':
$ref: '#/components/responses/Unauthorized'
delete:
operationId: deleteWebhookSubscription
tags:
- Webhooks
summary: Delete a subscription
x-endpoint-status: confirmed
parameters:
- $ref: '#/components/parameters/SubscriptionId'
responses:
'204':
description: Subscription deleted.
'401':
$ref: '#/components/responses/Unauthorized'
/webhook/v1/resources:
get:
operationId: listWebhookResources
tags:
- Webhooks
summary: Get all resources
description: List the resource types available for webhook subscriptions.
x-endpoint-status: confirmed
responses:
'200':
description: A list of resources.
'401':
$ref: '#/components/responses/Unauthorized'
/webhook/v1/resources/{id}/events:
get:
operationId: getWebhookResourceEvents
tags:
- Webhooks
summary: Get resource events
description: List the events available for a given webhook resource.
x-endpoint-status: confirmed
parameters:
- $ref: '#/components/parameters/ResourceId'
responses:
'200':
description: A list of resource events.
'401':
$ref: '#/components/responses/Unauthorized'
/webhook/v1/events:
get:
operationId: listWebhookEvents
tags:
- Webhooks
summary: Get all events
description: Query the history of webhook events delivered to your subscriptions.
x-endpoint-status: confirmed
responses:
'200':
description: A list of events.
'401':
$ref: '#/components/responses/Unauthorized'
/webhook/v1/events/{id}:
get:
operationId: getWebhookEvent
tags:
- Webhooks
summary: Get an event
x-endpoint-status: confirmed
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: The event.
'401':
$ref: '#/components/responses/Unauthorized'
components:
securitySchemes:
oAuth2:
type: oauth2
description: >-
OAuth 2.0 client credentials / authorization code issued per Encompass instance.
flows:
clientCredentials:
tokenUrl: https://api.elliemae.com/oauth2/v1/token
scopes: {}
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
parameters:
LoanId:
name: loanId
in: path
required: true
description: The loan GUID.
schema:
type: string
ApplicationId:
name: applicationId
in: path
required: true
description: The borrower pair (application) identifier.
schema:
type: string
ContactId:
name: contactId
in: path
required: true
description: The contact identifier.
schema:
type: string
AttachmentId:
name: attachmentId
in: path
required: true
description: The eFolder attachment identifier.
schema:
type: string
MilestoneId:
name: milestoneId
in: path
required: true
description: The milestone identifier.
schema:
type: string
ConditionId:
name: conditionId
in: path
required: true
description: The condition identifier.
schema:
type: string
UserId:
name: userId
in: path
required: true
description: The Encompass user identifier.
schema:
type: string
SubscriptionId:
name: id
in: path
required: true
description: The webhook subscription identifier.
schema:
type: string
ResourceId:
name: id
in: path
required: true
description: The webhook resource identifier.
schema:
type: string
responses:
Unauthorized:
description: Missing or invalid OAuth 2.0 bearer token.
NotFound:
description: The requested resource was not found.
schemas:
Loan:
type: object
description: An Encompass loan file. The full data model is large and persona-scoped.
properties:
id:
type: string
description: The loan GUID.
loanNumber:
type: string
loanFolder:
type: string
applications:
type: array
items:
type: object