Skip to main content

Class StartSessionResponse


Properties

NAMETYPEDESCRIPTIONEXAMPLES
ResponseCodeStringResponse status. For a successful response, the code will be “00”.

One of the more common error response codes experienced at the StartSession response is “E12” which means that no eligible accounts were found after applying account eligibility controls configured on the Ensenta side or that no accounts were sent in the request. See the AccountKeys parameter below for more details on account eligibility.

A subset of other possible response codes:
  • E51 = Session Timeout
  • E500 = Invalid Parameter
  • E97 = Institution Out of Service
  • E77 = Denylisted
  • E78 = Not on Allowlist


Note: There are many possible error response codes and the list will continue to grow over time. Whenever you receive a response code other than “00”, your app should have a generic screen for handling errors where you can display the End-User facing text specific to the error response code provided in the LocalizedMessageText parameter below.
<ResponseCode>00</ResponseCode>
ErrorResponseTextStringIf the ResponseCode value is not “00”, ErrorResponseText will be populated with the name of the response code. This is a developer/app level description and is intended to be internal facing only.<ErrorResponseText/>
LocalizedMessageTextStringIf the ResponseCode value is not “00”, LocalizedMessageText will be populated with messaging associated with the specific response code. The messaging for each error response code can be customized by the Financial Institution by request. This error message is intended to be external facing within the app.<LocalizedMessageText/>
SessionTokenStringThe value returned in this StartSession response is the session token that you will need to send in the SessionToken parameter for any future requests done within this session.<SessionToken>
1337417d-db57-4c17-8f37-41c12e5933cd
</SessionToken>
SessionStateIdStringThe value returned is the session state ID that you will need to send in the SessionStateID parameter for any future requests done within this session.<SessionStateId>
554196f0-02fb-438b-bd0a-9c07bed6f9f9
</SessionStateId>
SessionInfoSessionInfoContains the SessionInfo details.

Reference model links:
<SessionInfo>
...
</SessionInfo>
MiSnapLicenseBase64 StringThis element will only be present in the StartSession response if there is a valid MiSnap License Key listed for the PartnerId setup on the Ensenta platform. Otherwise, it will not appear in the response.<MiSnapLicense>
Base64 String
</MiSnapLicense>

SessionInfo

NAMETYPEDESCRIPTIONEXAMPLES
AccountKeysAccountKey[]Contains the AccountKeys details.

As outlined in the StartSession request for the Accounts parameter, Ensenta will compare the list of accounts sent from the request and enforce any account eligibility controls configured on the Ensenta side for the Financial Institution (FI) and return the eligible accounts in the following array.

There are two forms of account eligibility that Ensenta applies:
  • For all FIs: Ensenta will enable allowed account types defined by the FI during the initial implementation which match back to the AccountTypeCode values presented for each account within the StartSession request.
  • For Credit Unions posting in real time via Shared Branching: Upon receiving the StartSession request, Ensenta will reach out to the FI’s core system over a third-party vendor named CO-OP via their connection to the core; CO-OP refers to this connection to the core as the Shared Branching Network. The FI’s core will return to Ensenta a list of accounts that are marked as eligible to make deposits to over this network and Ensenta will only return the accounts to you where the AccountNumber and AccountTypeCode from the StartSession request match with what was sent by the core.


Reach out to your Ensenta PM if there are any questions regarding how account eligibility is enforced on the Ensenta side.
<AccountKeys>
<AccountKey>
<AccountNumberIndex>0</AccountNumberIndex>
<Description>Checking</Description>
<Tag>0</Tag>
</AccountKey>
<AccountKey>
<AccountNumberIndex>1</AccountNumberIndex>
<Description>Line Of Credit</Description>
<Tag>1</Tag>
</AccountKey>
</AccountKeys>
IsTermsAcceptanceRequiredBooleanIf terms of service are being leveraged with Ensenta and this value is returned as “true”, make sure to call GetTerms to retrieve the terms of service text to be presented to the End-User and subsequently the AcceptTerms method if the End-User accepts the terms.<IsTermsAcceptanceRequired>true</IsTermsAcceptanceRequired>
IsIntroPageEnabledBooleanNote: Not applicable for mobile. Ignore values.<IsIntroPageEnabled>false</IsIntroPageEnabled>
IsHelpEnabledStringNote: Not applicable for mobile. Ignore values.<IsHelpEnabled>false</IsHelpEnabled>
SkinCodeStringNote: Not applicable for mobile. Ignore values.<SkinCode>155</SkinCode>
StartPageStringNote: Not applicable for mobile. Ignore values.<StartPage>3</StartPage>
ReceiptEmailStringIf being leveraged, the Email last used to send an email receipt for this account holder. See the Email parameter from StartSession Request.<ReceiptEmail>robert@ensenta.com</ReceiptEmail>
CustomizableMessagesCustomizableMessage[]Contains the CustomizableMessages details.<CustomizableMessages>
<CustomizableMessage>
<MessageTextCd>ECP288</MessageTextCd>
<LocalizedText>$2000.00 $1997.89</LocalizedText>
</CustomizableMessage>
</CustomizableMessages>
AreAcctPermissionsEnabledBooleanNote: Not applicable for mobile. Ignore values.<AreAcctPermissionsEnabled>false</AreAcctPermissionsEnabled>
AcctPermissionsInt[]This will not be returned if the value returned in the AreAcctPermissionsEnabled parameter above is “false”.

Note: Not applicable for mobile. Ignore values.
<AcctPermissions>
<int>0</int>
</AcctPermissions>
IssuerPolicyIssuerPolicy[]Note: Not applicable for mobile. Ignore values.

Reference model links:
<IssuerPolicy> ... </IssuerPolicy>

AccountKey

NAMETYPEDESCRIPTIONEXAMPLES
AccountNumberIndexIntegerEnsenta does not pass back the AccountNumber as passed in the StartSession request and instead assigns an index number that you will use to represent the account the End-User selects to deposit into when you submit the CreateDepositBatch request in the DepositToAccountNumberIndex parameter.

The accounts are zero-indexed, so first the index number for the first account in the array is 0, second is 1, etc.
<AccountNumberIndex>0</AccountNumberIndex>
DescriptionStringDescription/name of account. This will pass back the description as sent in the StartSession request in the Description parameter but will remove the word “account” and will append the masked account number if there are any duplicate descriptions.<Description>Checking</Description>
TagStringThis will be the same value as was passed in the Tag parameter for this account within the StartSession request.<Tag>0</Tag>

CustomizableMessage

NAMETYPEDESCRIPTIONEXAMPLES
MessageTextCdStringIgnore values returned here and instead look at the CustomizableMessages parameter within the GetSessionInfo request.<MessageTextCd>ECP288</MessageTextCd>
LocalizedTextStringIgnore values returned here and instead look at the CustomizableMessages parameter within the GetSessionInfo request.<LocalizedText>$2000.00 | $1997.89</LocalizedText>

IssuerPolicy

NAMETYPEDESCRIPTIONEXAMPLES
IsPlainScannerAllowedNote: Not applicable for mobile. Ignore values.<IsPlainScannerAllowed>Y</IsPlainScannerAllowed>
IsCheckScannerAllowedNote: Not applicable for mobile. Ignore values.<IsCheckScannerAllowed>N</IsCheckScannerAllowed>
IsDepositDescrDisplayedNote: Not applicable for mobile. Ignore values.<IsDepositDescrDisplayed>N</IsDepositDescrDisplayed>
IsMultChecksPerTxnNote: Not applicable for mobile. Ignore values.<IsMultChecksPerTxn>N</IsMultChecksPerTxn>
IsHistoryAllowedNote: Not applicable for mobile. Ignore values.<IsHistoryAllowed>Y</IsHistoryAllowed>
IsIntroEnabledNote: Not applicable for mobile. Ignore values.<IsIntroEnabled>N</IsIntroEnabled>
IsHelpEnabledNote: Not applicable for mobile. Ignore values.<IsHelpEnabled>false</IsHelpEnabled>
ImageCaptureMethodNote: Not applicable for mobile. Ignore values.<ImageCaptureMethod>-1</ImageCaptureMethod>
IsBatchTotalAllowedNote: Not applicable for mobile. Ignore values.<IsBatchTotalAllowed>N</IsBatchTotalAllowed>
IsDepositConfirmEnabledNote: Not applicable for mobile. Ignore values.<IsDepositConfirmEnabled>N</IsDepositConfirmEnabled>
IsMicrDisplayEnabledNote: Not applicable for mobile. Ignore values.<IsMicrDisplayEnabled>N</IsMicrDisplayEnabled>
IsPlainScannerOptionalNote: Not applicable for mobile. Ignore values.<IsPlainScannerOptional>N</IsPlainScannerOptional>
IsCheckScannerOptionalNote: Not applicable for mobile. Ignore values.<IsCheckScannerOptional>N</IsCheckScannerOptional>
IsDepositDescrOptionalNote: Not applicable for mobile. Ignore values.<IsDepositDescrOptional>N</IsDepositDescrOptional>
IsMultChecksPerTxnOptionalNote: Not applicable for mobile. Ignore values.<IsMultChecksPerTxnOptional>N</IsMultChecksPerTxnOptional>
IsIntroOptionalNote: Not applicable for mobile. Ignore values.<IsIntroOptional>N</IsIntroOptional>
IsHelpOptionalNote: Not applicable for mobile. Ignore values.<IsHelpOptional>N</IsHelpOptional>
IsImageCaptureMethodOptionalNote: Not applicable for mobile. Ignore values.<IsImageCaptureMethodOptional>N</IsImageCaptureMethodOptional>
IsBatchTotalOptionalNote: Not applicable for mobile. Ignore values.<IsBatchTotalOptional>N</IsBatchTotalOptional>
IsDepositConfirmOptionalNote: Not applicable for mobile. Ignore values.<IsDepositConfirmOptional>N</IsDepositConfirmOptional>
IsMicrDisplayOptionalNote: Not applicable for mobile. Ignore values.<IsMicrDisplayOptional>N</IsMicrDisplayOptional>
MaxCheckPerTxnNote: Not applicable for mobile. Ignore values.<MaxCheckPerTxn>1</MaxCheckPerTxn>
IsSettingsEnabledNote: Not applicable for mobile. Ignore values.<IsSettingsEnabled>N</IsSettingsEnabled>
CheckGuaranteeMethodNote: Not applicable for mobile. Ignore values.<CheckGuaranteeMethod>-1</CheckGuaranteeMethod>
ImageCaptureTimeoutSecondsNote: Not applicable for mobile. Ignore values.<ImageCaptureTimeoutSeconds>30</ImageCaptureTimeoutSeconds>
ScanMethodsInt[]Note: Not applicable for mobile. Ignore values.<ScanMethods/>
AlertMethodsAlertMethod[]Note: Not applicable for mobile. Ignore values.<AlertMethods>
<AlertMethod
AlertMethodId="1"
IsRegisteredAddressUsed="Y"
IsExtraAddressAllowed="Y" />
</AlertMethods>
TerminalFirmwareMinVersionNote: Not applicable for mobile. Ignore values.<TerminalFirmwareMinVersion/>
TerminalFirmwareMaxVersionNote: Not applicable for mobile. Ignore values.<TerminalFirmwareMaxVersion/>
TerminalConfigMinVersionNote: Not applicable for mobile. Ignore values.<TerminalConfigMinVersion/>
TerminalConfigMaxVersionNote: Not applicable for mobile. Ignore values.<TerminalConfigMaxVersion/>

AlertMethod

NAMETYPEDESCRIPTIONEXAMPLES
AlertMethodThis parameter is handled uniquely across this API and will contain parameters with values inline.

Note: Not applicable for mobile. Ignore values.
<AlertMethod
AlertMethodId="1"
IsRegisteredAddressUsed="Y"
IsExtraAddressAllowed="Y"/>

Examples

<StartSessionResponse>
<StartSessionResult>
<ResponseCode>00</ResponseCode>
<ErrorResponseText/>
<LocalizedMessageText/>
<SessionToken>1337417d-db57-4c17-8f37-41c12e5933cd</SessionToken>
<SessionStateId>554196f0-02fb-438b-bd0a-9c07bed6f9f9</SessionStateId>
<SessionInfo>
<AccountKeys>
<AccountKey>
<AccountNumberIndex>0</AccountNumberIndex>
<Description>Checking</Description>
<Tag>0</Tag>
</AccountKey>
<AccountKey>
<AccountNumberIndex>1</AccountNumberIndex>
<Description>Line Of Credit</Description>
<Tag>1</Tag>
</AccountKey>
</AccountKeys>
<IsTermsAcceptanceRequired>false</IsTermsAcceptanceRequired>
<IsIntroPageEnabled>false</IsIntroPageEnabled>
<IsHelpEnabled>false</IsHelpEnabled>
<SkinCode>155</SkinCode>
<StartPage>3</StartPage>
<ReceiptEmail>robert@ensenta.com</ReceiptEmail>
<CustomizableMessages>
<CustomizableMessage>
<MessageTextCd>ECP288</MessageTextCd>
<LocalizedText>$2000.00|$1997.89</LocalizedText>
</CustomizableMessage>
</CustomizableMessages>
<AreAcctPermissionsEnabled>false</AreAcctPermissionsEnabled>
<IssuerPolicy>
<IsPlainScannerAllowed>Y</IsPlainScannerAllowed>
<IsCheckScannerAllowed>N</IsCheckScannerAllowed>
<IsDepositDescrDisplayed>N</IsDepositDescrDisplayed>
<IsMultChecksPerTxn>N</IsMultChecksPerTxn>
<IsHistoryAllowed>Y</IsHistoryAllowed>
<IsIntroEnabled>N</IsIntroEnabled>
<IsHelpEnabled>N</IsHelpEnabled>
<ImageCaptureMethod>-1</ImageCaptureMethod>
<IsBatchTotalAllowed>N</IsBatchTotalAllowed>
<IsDepositConfirmEnabled>N</IsDepositConfirmEnabled>
<IsMicrDisplayEnabled>N</IsMicrDisplayEnabled>
<IsPlainScannerOptional>N</IsPlainScannerOptional>
<IsCheckScannerOptional>N</IsCheckScannerOptional>
<IsDepositDescrOptional>N</IsDepositDescrOptional>
<IsMultChecksPerTxnOptional>N</IsMultChecksPerTxnOptional>
<IsIntroOptional>N</IsIntroOptional>
<IsHelpOptional>N</IsHelpOptional>
<IsImageCaptureMethodOptional>N</IsImageCaptureMethodOptional>
<IsBatchTotalOptional>N</IsBatchTotalOptional>
<IsDepositConfirmOptional>N</IsDepositConfirmOptional>
<IsMicrDisplayOptional>N</IsMicrDisplayOptional>
<MaxCheckPerTxn>1</MaxCheckPerTxn>
<IsSettingsEnabled>N</IsSettingsEnabled>
<CheckGuaranteeMethod>-1</CheckGuaranteeMethod>
<ImageCaptureTimeoutSeconds>30</ImageCaptureTimeoutSeconds>
<ScanMethods/>
<AlertMethods>
<AlertMethod AlertMethodId="1"
IsRegisteredAddressUsed="Y"
IsExtraAddressAllowed="Y"/>
</AlertMethods>
<TerminalFirmwareMinVersion/>
<TerminalFirmwareMaxVersion/>
<TerminalConfigMinVersion/>
<TerminalConfigMaxVersion/>
</IssuerPolicy>
</SessionInfo>
<MiSnapLicense> Base64 string </MiSnapLicense>
</StartSessionResult>
</StartSessionResponse>