Skip to main content

# ITransaction

Provides your applications lender/borrower-facing view with the necessary handles to model your application's transactional interaction with the EPC platform. Allows access to an interactive session's origination context, create a new transaction, update an existing transaction, create events/messages for a transaction, and more.

## Extends​

- `IScriptingObject`

## Methods​

### _dispose()?​

    optional _dispose(): void;

#### Returns​

`void`

#### Inherited from​

`IScriptingObject`.`_dispose`

### _toJSON()​

    _toJSON(): RemotingScriptingObject;

#### Returns​

`RemotingScriptingObject`

#### Inherited from​

`IScriptingObject`.`_toJSON`

### cancel()​

    cancel(): Promise<void>;

Navigate your users back to where they left off in the host Encompass application, after they have canceled an interaction with your application's user-interface without having initiated a transaction request (or any other related task) that they were working on. This signals a cancelation outcome to the host Encompass application - how this is handled by the host upon user navigation can vary across applications

#### Returns​

`Promise`<`void`>

### close()​

    close(): Promise<void>;

Navigate your users back to where they left off in the host Encompass application, after they are done interacting with your application's user-interface

#### Returns​

`Promise`<`void`>

### create()​

    create(options: TransactionDetails): Promise<TransactionInfo>;

initiate a new transaction with your integration

#### Parameters​

##### options​

`TransactionDetails`

details of the transaction to be initiated

#### Returns​

`Promise`<`TransactionInfo`>

transaction id

### createEvent()​

    createEvent(options: TransactionEvent): Promise<TransactionInfo>;

Allow Lenders to initiate an event/message for the subject transaction with your integration

#### Parameters​

##### options​

`TransactionEvent`

details of the event/message to be initiated

#### Returns​

`Promise`<`TransactionInfo`>

transaction event id

### createResource()​

    createResource(options: ResourceOptions): Promise<ResourceDetails>;

Allow Lenders to use your integration to upload files from their local drive as an attachment to a new transaction. This method returns a URL and authorization token, which are to be used to stream the selected file as binary content to the EPC platform

#### Parameters​

##### options​

`ResourceOptions`

details of the resource to be uploaded

#### Returns​

`Promise`<`ResourceDetails`>

location and authorization header to upload the resource

### error()​

    error(): Promise<void>;

Navigate your users back to where they left off in the host Encompass application, after their has been an error (application error or workflow error) on your integrations user-interface. This signals an error outcome to the host Encompass application - how this is handled by the host upon user navigation can vary across applications

#### Returns​

`Promise`<`void`>

### get()​

    get(): Promise<TransactionInfo>;

Retrieve the transaction in whose context your integration is operating in, utilized by methods that operate on an existing transaction. The methods that currently fall into this category are: transaction.update transaction.createEvent Although integrations are free to set the transactional context they are operating in (using the transaction.set method) , which may be necessary when providing views that allow users to switch between and perform actions on multiple transactions, the host application implicitly alters the transactional context in certain scenarios:

Implicit transaction context setting! If your integration is launched by a user in the context of an existing transaction, such as from the services page on Loan Officer Connect, the document icon on the services side-nav in Encompass Desktop or on a loan application in Consumer Connect is set to said transaction. Every time a new transaction is created during a user's interaction with your integration, the context is set to the last created transaction. If the integration was initially launched in the context of an existing transaction, the transaction.getOrigin method will always return the original transactionId the integration was launched in the context of, no matter how many times the transaction is set in the current interaction. You can leverage this to track the initial transaction context for a user interaction

The current transactional context your integration operates in can be queried using the transaction.get method

#### Returns​

`Promise`<`TransactionInfo`>

transaction id details

### getOrigin()​

    getOrigin(): Promise<OriginDetails>;

Provide the necessary information for your application's user-interface to: Access transaction origination information and bootstrap its user interaction Know if it was launched in the context of an existing transaction, so it can present the relevant view

#### Returns​

`Promise`<`OriginDetails`>

transaction origination information

### refreshOrigin()​

    refreshOrigin(): Promise<OriginDetails>;

Refresh your application's transaction origination context - if your current one expires. This method returns a new originId and partnerAccessToken - which your application back-end can use to retrieve a refreshed transaction origin: A fresh snapshot of the loan data your application is entitled to receive in a transaction origin A a fresh snapshot of the user's credential set configured by their Administrator for use with your application

#### Returns​

`Promise`<`OriginDetails`>

transaction origination information

### set()​

    set(options: TransactionInfo): Promise<TransactionInfo>;

Set the transaction in whose context you want to invoke methods that operate on an existing transaction. The subject transaction must be one that was created for the current loan and EPC product. The methods that currently fall into this category are: transaction.update transaction.createEvent

Although integrations are free to set the transactional context they are operating in, which may be necessary when providing views that allow users to switch between and perform actions on multiple transactions, the host application implicitly alters the transactional context in certain scenarios:

Implicit transaction context setting! If your integration is launched by a user in the context of an existing transaction, such as from the services page on Loan Officer Connect, the document icon on the services side-nav in Encompass Desktop or when returning to a loan application in Consumer Connect, the transactional context is implicitly set to said transaction Every time a new transaction is created during a user's interaction with your integration, the context is set to the last created transaction If the integration was initially launched in the context of an existing transaction, transaction.getOrigin will always return the original transactionId the integration was launched in the context of, no matter how many times the transaction is set in the current interaction. You can leverage this to track the initial transaction context for a user interaction

The current transactional context that your integration is operating in can be queried using the transaction.get method.

#### Parameters​

##### options​

`TransactionInfo`

transaction details

#### Returns​

`Promise`<`TransactionInfo`>

transaction that has been set

### update()​

    update(options: TransactionDetails): Promise<TransactionInfo>;

Allow Lenders to update an existing transaction by attaching new resources or updating the request options associated with the transaction. A transaction update will trigger an updated webhook event on the urn:elli:epc:transaction REST resource, indicating an updated transaction request is ready for your application to retrieve. The updated transaction request will contain: An updated options object, if set in this method An updated resources array, with the resources set in this method appended to the previously attached set By default, a fresh snapshot of the loan data your application is entitled to receive in the transaction request By default, a fresh snapshot of the user's credential set configured by their Administrator for use with your application

Request type immutability The type for a lender initiated transaction request can not be updated once created. If you need to support the ability for a lender to change the request type for a transaction they have initiated, the initial transaction must be canceled via a transaction response status update (using the REST API), and the lender must initiate a new transaction request with the updated type

#### Parameters​

##### options​

`TransactionDetails`

transaction details

#### Returns​

`Promise`<`TransactionInfo`>

transaction id

## Properties​

### id​

    readonly id: string;

#### Inherited from​

`IScriptingObject`.`id`

### objectType​

    readonly objectType: string;

#### Inherited from​

`IScriptingObject`.`objectType`