Class StartSessionRequest
Properties
| NAME | TYPE | LENGTH | REQUIRED | DESCRIPTION | EXAMPLES |
|---|---|---|---|---|---|
| PartnerId | Integer | 9 | Yes | The 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> |
| LanguageId | Integer | 1 | Yes | Send integer 9 | <LanguageId>9</LanguageId> |
| DepositorIpAddress | String | 45 | Yes | IP 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> |
| DeviceIdentifier | String | N/A | Yes | The unique UUID generated for the phone. | <DeviceIdentifier> 21d182e6-10b1-48e2-8c53-1b72674836c1 </DeviceIdentifier> |
| LocalDateTime | String | N/A | Yes | Date and time where the device End-User is. For example:
Note: You must include the colon in the offset | <LocalDateTime> 2018-08-08T08:43:52.000-07:00 </LocalDateTime> |
| TimeZone | String | N/A | Yes | Time 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 -8:00 America/Redwood_Shores </TimeZone> |
| Attributes | Attribute[] | Yes | An 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> | |
| AccountHolderNumber | String | 20 | Yes | Unique identifier that typically represents the individual End-User or business/merchant. Banks:
Credit Unions:
The following is a sample list of functionalities that is tied to a unique Account Holder Number:
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> |
| AccountHolderName | String | N/A | Yes | The primary name associated with the account holder number.
The name provided here is used for two primary functions:
Additional names can be provided at the account level as described in the JointAccountHolderNames parameter listed below. | <AccountHolderName> Jane Doe </AccountHolderName> |
| Username | String | 50 | Yes |
| <Username>Jane2018</Username> |
| String | 100 | Yes |
Email notifications can optionally be configured to be sent to the provided email address based on the following deposit events:
| <Email>example@example.com</Email> | |
| Accounts | Account[] | Yes | An 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> | |
| AccountHolderAttributes | Attribute[] | Yes | An 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:
Recommended:
Optional:
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
| NAME | TYPE | LENGTH | REQUIRED | DESCRIPTION | EXAMPLES |
|---|---|---|---|---|---|
| Name | String | N/A | Yes | Not applicable, leave empty. | <Name></Name> |
| Value | String | N/A | Yes | Not applicable, leave empty. | <Value></Value> |
Account
| NAME | TYPE | LENGTH | REQUIRED | DESCRIPTION | EXAMPLES |
|---|---|---|---|---|---|
| AccountNumber | String | 20 | Yes | The 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:
| <AccountNumber>123456</AccountNumber> |
| Description | String | N/A | Yes | The description of the account as displayed to the End-User. Note: Emojis are not accepted. | <Description>Checking</Description> |
| AccountTypeCode | String | 12 | Yes | A code that identifies the type of account. Supported values:
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> |
| JointAccountHolderNames | String[] | Yes | Full 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.
Name of joint account holder as described in JointAccountHolderNames. | <JointAccountHolderNames> <string>John Doe</string> <string>Amy Doe</string> </JointAccountHolderNames> | |
| Tag | String | N/A | Yes | As 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 Name | Attribute Value Definition | Example Attribute Values | EXAMPLES |
|---|---|---|---|
| ECPhoneType | Type of Phone | iPhone, Android, Windows, etc. | <Name>ECPhoneType</Name> <Value>iPhone</Value> |
| ECPhoneOs | OS Used by Phone | iOS, Android, Windows, etc. | <Name>ECPhoneOs</Name> <Value>iOS</Value> |
| ECPhoneOsVersion | Version of the OS on the Phone | 11.0 (iOS), Oreo 8.0, etc. | <Name> ECPhoneOsVersion</Name> <Value>11.0</Value> |
| ECPartnerVersion | Version of the Mobile RDC application from Mobile App Vendor | Will vary based on implementation | <Name>ECPartnerVersion</Name> <Value>1.3</Value> |
| ECAppDeviceMake | Manufacturer of device. | Apple, Samsung, LG, etc. | <Name>ECAppDeviceMake</Name> <Value>Apple</Value> |
| ECAppDeviceModel | Model 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>2018-08-08T08:43:52.000-07:00</LocalDateTime>
<TimeZone>PST -8: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@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>