Skip to main content

Class StartSessionRequest


Properties

NAMETYPELENGTHREQUIREDDESCRIPTIONEXAMPLES
PartnerIdInteger9YesThe Partner ID is a unique ID assigned by Ensenta specific to each setup within Ensenta's platform and will be different for each environment (UAT and Production).

A Partner ID will be provided as part of the initial integration to Mobile Partner API3 for certification purposes and will be specific to the UAT environment only.

For onboarding a specific Financial Institution, a separate Partner ID will be assigned by Ensenta for each environment (UAT and Production).

Reach out to your Ensenta PM to discuss when the Partner ID for your integration will be provided.
<PartnerId>8257</PartnerId>
LanguageIdInteger1YesSend integer 9<LanguageId>9</LanguageId>
DepositorIpAddressString45YesIP address of End-User (NOT calling web service). IPv4 or IPv6 are accepted.

This is optionally used to enable Geolocation functionality. Reach out to your Ensenta PM if there are any questions regarding Geolocation.
<DepositorIpAddress>
203.0.113.0
</DepositorIpAddress>
DeviceIdentifierStringN/AYesThe unique UUID generated for the phone.<DeviceIdentifier>
21d182e6-10b1-48e2-8c53-1b72674836c1
</DeviceIdentifier>
LocalDateTimeStringN/AYesDate and time where the device End-User is. For example:
  • 2018-08-08T08:43:52.000-07:00


Note: You must include the colon in the offset
<LocalDateTime>
2019-05-28T15:17:54.0000885-07:00
</LocalDateTime>
TimeZoneStringN/AYesTime zone of End-User.

Required Format: Timezone{space}UTC offset{space} Area/Location

Example: PDT -07:00 America/Los_Angeles

Differentiate Day light savings, for ex, send PST (Pacific Standard Time) or PDT (Pacific Daylight Time).

Note: Area/Location is optional.
<TimeZone>
PST -7:00 America/Redwood_Shores
</TimeZone>
AttributesAttribute[]YesAn array containing attributes for utilizing miscellaneous optional functionality that may be added to over time.

Attributes are defined Name/Value pairs. This is to support potential future functionality to easily expand on your integration.

There is no functionality available for this parameter at this time; pass the Name and Value parameters below as empty.

Note: You may have heard Ensenta make references to Attributes in the past; there is another type of Attributes named Account Holder Attributes which does have functionality available and is described below within the StartSession request. For more details, look at the AccountHolderAttributes parameter in StartSession request.
<Attributes>
<Attribute>
<Name></Name>
<Value></Value>
</Attribute>
</Attributes>
AccountHolderNumberString20YesUnique identifier that typically represents the individual End-User or business/merchant.

Banks:
  • Business Mobile: Commonly used values are the Tax Identification Number (TIN) or Service Level Agreement (SLA) number from the Core system.
  • Consumer Mobile: Commonly used values are the Social Security Number (SSN) or Service Level Agreement (SLA) number from the Core system.


Credit Unions:
  • Business Mobile: Member Number is the most commonly used value (Especially if planning to use CO-OP Shared Branching for real-time posting).
  • Consumer Mobile: Member Number is the most commonly used value (Especially if planning to use CO-OP Shared Branching for real-time posting).


The following is a sample list of functionalities that is tied to a unique Account Holder Number:
  • End-User Eligibility via Deny/Allow Lists
  • Limits (apply to the End-User or business/merchant, not individual accounts)
  • Transaction History (if supported within App)
  • Tracking Terms of Service Acceptance (If Ensenta is hosting terms)


Reach out to your Ensenta PM if you have any questions regarding the Account Holder Number and what it is used for.
<AccountHolderNumber>
111222333
</AccountHolderNumber>
AccountHolderNameStringN/AYesThe primary name associated with the account holder number.
  • Business Mobile: Most commonly the name of the business (formatted as it should be written as on the payee field on the check)
  • Consumer Mobile: The full name of the account holder making the deposit


The name provided here is used for two primary functions:
  • To display within EZAdmin for reviewing the checks
  • To utilize Ensenta's payee risk factor where OCR will attempt to read the payee name on the check and flag any mismatches


Additional names can be provided at the account level as described in the JointAccountHolderNames parameter listed below.
<AccountHolderName>
Jane Doe
</AccountHolderName>
UsernameString50Yes
  • Business Mobile: Most commonly the username of the End-User making the deposit (not the business name) within the mobile app
  • Consumer Mobile: The username of the account holder within the mobile app
<Username>Jane2018</Username>
EmailString100Yes
  • Business Mobile: Most commonly the email on file for the business
  • Consumer Mobile: The email on file for the account holder


Email notifications can optionally be configured to be sent to the provided email address based on the following deposit events:
  • Deposit Submitted
  • Deposit Approved As-Is
  • Deposit Approved (Amount Adjusted Up)
  • Deposit Approved (Amount Adjusted Down)
  • Deposit Rejected
<Email>example_1@example.com</Email>
AccountsAccount[]YesAn array containing the account(s) the End-User can make a deposit into.

Before listing eligible accounts to the End-User to select from, wait for the StartSession Response to see which accounts Ensenta returns as eligible after applying account eligibility controls based on the Financial Institution's (FI) configuration with Ensenta and only display those accounts.

For more information regarding the account eligibility controls Ensenta is applying, see the AccountKeys parameter in StartSession Response.

Note: There is an upper limit to how many possible eligible accounts for an end-user can be sent in the StartSession request. (See Service Data Limits). We can't provide an exact number of accounts that can be supported within your integration as it depends on the specific details sent in your integration's payload for StartSession, but 120 accounts are generally observed as the upper limit.

Important! Ensenta does not support receiving duplicate accounts (specifically the AccountNumber parameter below) and logic should be added on your end to prevent duplicate account numbers from being passed to Ensenta.

If you are working with an FI that has duplicate account numbers (sometimes FIs differentiate by looking at the Account Type, but there may be other criteria), then you will need to work with the FI to define which of the duplicate accounts should have priority for being sent to Ensenta.

If duplicate accounts are sent to Ensenta, you may receive an error response or only receive one of the accounts as eligible in the StartSession response.

Contains the account details for a single account.
<Accounts>
<Account>
<AccountNumber>123456</AccountNumber>
<Description>Checking</Description>
<AccountTypeCode>1</AccountTypeCode>
<JointAccountHolderNames>
<string>John Doe</string>
<string>Amy Doe</string>
</JointAccountHolderNames>
<Tag>0</Tag>
</Account>
</Accounts>
AccountHolderAttributesAttribute[]YesAn array containing attributes related to the account holder and/or the mobile device. A list of required, recommended, and optional attributes are listed below within the Attribute parameter.

Attributes are defined Name/Value pairs which are used for few different purposes:

Required:
  • Supply details pertaining to the device the deposit was made from to assist with troubleshooting and analytics. Pre-defined required Name/Value pairs are listed in Required Attributes.


Recommended:
  • Identify a tier the account holder belongs to apply specific limits, risk factor settings, and hold codes (if applicable to Financial Institution's posting method).


Optional:
  • A way to provide additional data to Ensenta regarding the Account Holder that will be made available within EZAdmin to view alongside the deposit in certain logs
  • Apply an identification for transactions within the x9 file based on specific criteria (for specific use cases; not often used)


Reach out to your Ensenta PM if you have any questions regarding attributes and what they are used for.
<AccountHolderAttributes>
<Attribute>
<Name>ECPhoneType</Name>
<Value>Android</Value>
</Attribute>
<Attribute>
<Name>ECPhoneOs</Name>
<Value>Android</Value>
</Attribute>
<Attribute>
<Name>ECPhoneOsVersion</Name>
<Value>Oreo 8.1</Value>
</Attribute>
<Attribute>
<Name>ECPartnerVersion</Name>
<Value>1.0</Value>
</Attribute>
<Attribute>
<Name>ECAppDeviceMake</Name>
<Value>Samsung</Value>
</Attribute>
<Attribute>
<Name>ECAppDeviceModel</Name>
<Value>Galaxy S9</Value>
</Attribute>
</AccountHolderAttributes>

Attribute

NAMETYPELENGTHREQUIREDDESCRIPTIONEXAMPLES
NameStringN/AYesNot applicable, leave empty.<Name></Name>
ValueStringN/AYesNot applicable, leave empty.<Value></Value>

Account

NAMETYPELENGTHREQUIREDDESCRIPTIONEXAMPLES
AccountNumberString20YesThe format of the account number may need to be manipulated to support processing of the transaction.

If supporting multiple Financial Institutions (FI) with your app, make sure you have plenty of flexibility in manipulating the account number that you are pulling from the core as it may need to be formatted differently for downstream processing.

Ensenta will work with you to define the formatting requirements for each client's specific requirements.

Banks:

Banks are generally straight forward and typically match the account number as pulled from the core.

Credit Unions:

Credit Unions (CU) tend to have a wide variety of formatting requirements and is usually related to how they are posting their transactions through Ensenta. As an example of a couple formats commonly seen for CUs, if we had an End-User with member number 1234 trying to make a deposit to their checking account with the account suffix 10S:
  • Batch Posting: Typically requires a concatenation of the member number and account suffix with alpha characters removed. Using our example information above, the format would look like 123410
  • Real Time Posting: Typically requires a concatenation of the member number, followed by an equal sign, followed by the account suffix. Using our example information above, the format would look like 1234=10S
<AccountNumber>123456</AccountNumber>
DescriptionStringN/AYesThe description of the account as displayed to the End-User.

Note: Emojis are not accepted.
<Description>Checking</Description>
AccountTypeCodeString12YesA code that identifies the type of account.

Supported values:
  • 0 = Savings / Regular Share
  • 1 = Checking / Share Draft
  • 32 = Line of Credit
  • 64 = Credit Card
  • 128 = Installment Loan
  • 256 = Mortgage Loan


Note: Check with the Financial Institution (FI) how they define Money Market accounts as some FIs will handle them as Savings and some as Checking.
<AccountTypeCode>1</AccountTypeCode>
JointAccountHolderNamesString[]YesFull name of joint account holders that are also authorized to make deposits to this specific account. If no joint account holder names are available, send empty.
  • Business Mobile: Most commonly the full names of the business owners, individuals with the ability to transact on this account on behalf of the business, and other variations of the business' name that are acceptable as payee name on the check.
  • Consumer Mobile: Any additional individuals with the ability to transact on the account.


Name of joint account holder as described in JointAccountHolderNames.
<JointAccountHolderNames>
<string>John Doe</string>
<string>Amy Doe</string>
</JointAccountHolderNames>
TagStringN/AYesAs described in the Accounts parameter above, Ensenta will provide a list of accounts in the StartSession response that are allowed per any additional account eligibility controls being enforced on the Ensenta side see StartSession Response.

The accounts provided back in the AccountKey parameter from the StartSession response will include the Tag value that you have defined for each account you defined in the request, so you can match up accounts in the request with accounts in the response and display the full account descriptions you originally sent. Alternatively, Ensenta will pass back account descriptions in the StartSession response, but they will be slightly altered (we remove 'account' and if duplicate descriptions exist, we will append the masked account number at the end).
<Tag>0</Tag>

Required Attributes

The following is a list of attribute Name/Value pairs that are required as part of your mobile certification and are related to the device the deposit was made from.

Attribute NameAttribute Value DefinitionExample Attribute ValuesEXAMPLES
ECPhoneTypeType of PhoneiPhone, Android, Windows, etc.<Name>ECPhoneType</Name>
<Value>iPhone</Value>
ECPhoneOsOS Used by PhoneiOS, Android, Windows, etc.<Name>ECPhoneOs</Name>
<Value>iOS</Value>
ECPhoneOsVersionVersion of the OS on the Phone11.0 (iOS), Oreo 8.0, etc.<Name> ECPhoneOsVersion</Name>
<Value>11.0</Value>
ECPartnerVersionVersion of the Mobile RDC application from Mobile App VendorWill vary based on implementation<Name>ECPartnerVersion</Name>
<Value>1.3</Value>
ECAppDeviceMakeManufacturer of device.Apple, Samsung, LG, etc.<Name>ECAppDeviceMake</Name>
<Value>Apple</Value>
ECAppDeviceModelModel of device from manufacturer.iPhone X, iPhone 7 Plus, Galaxy S9, etc.<Name>ECAppDeviceModel</Name>
<Value>iPhone X</Value>

Examples

<StartSession>
<request>
<PartnerId>8257</PartnerId>
<LanguageId>9</LanguageId>
<DepositorIpAddress>203.0.113.0</DepositorIpAddress>
<DeviceIdentifier>21d182e6-10b1-48e2-8c53-1b72674836c1</DeviceIdentifier>
<LocalDateTime>2019-05-28T15:17:54.0000885-07:00</LocalDateTime>
<TimeZone>PST -7:00 America/Redwood_Shores</TimeZone>
<Attributes>
<Attribute>
<Name></Name>
<Value></Value>
</Attribute>
</Attributes>
<AccountHolderNumber>111222333</AccountHolderNumber>
<AccountHolderName>Jane Doe</AccountHolderName>
<Username>Jane2018</Username>
<Email>example_1@example.com</Email>
<Accounts>
<Account>
<AccountNumber>123456</AccountNumber>
<Description>Checking</Description>
<AccountTypeCode>1</AccountTypeCode>
<JointAccountHolderNames>
<string>John Doe</string>
<string>Amy Doe</string>
</JointAccountHolderNames>
<Tag>0</Tag>
</Account>
<Account>
<AccountNumber>654321</AccountNumber>
<Description>Line of Credit</Description>
<AccountTypeCode>32</AccountTypeCode>
<JointAccountHolderNames>
<string>John Doe</string>
</JointAccountHolderNames>
<Tag>1</Tag>
</Account>
</Accounts>
<AccountHolderAttributes>
<Attribute>
<Name>ECPhoneType</Name>
<Value>Android</Value>
</Attribute>
<Attribute>
<Name>ECPhoneOs</Name>
<Value>Android</Value>
</Attribute>
<Attribute>
<Name>ECPhoneOsVersion</Name>
<Value>Oreo 8.1</Value>
</Attribute>
<Attribute>
<Name>ECPartnerVersion</Name>
<Value>1.0</Value>
</Attribute>
<Attribute>
<Name>ECAppDeviceMake</Name>
<Value>Samsung</Value>
</Attribute>
<Attribute>
<Name>ECAppDeviceModel</Name>
<Value>Galaxy S9</Value>
</Attribute>
</AccountHolderAttributes>
</request>
</StartSession>