Skip to main content

Deposit Checks

Introduction

In this workflow guide, we will walk through how to create and submit a successful check deposit within web service from JHA SmartPay Remote Deposit Anywhere™ (referred to as Consumer Mobile or RDA).

Getting Started

Each step in the workflow diagram is a hyperlink that will take you to the API Reference information for the method being used.

Tasks covered in this guide

  • Step 1: Send Authenticate Request
  • Step 2: Send Get Accounts Request
  • Step 3: Send Get Batches Request
  • Step 4: Send Create Batch Request
  • Step 5: Send Add Item Request
  • Step 6: Send Get Items Request
  • Step 7: Send Update Batch Close Request
  • Step 8: Send Log Out Request

Required prerequisites before you continue

  • You are required to obtain Demo, non-processing credentials in order to perform testing within this workflow. You should receive these from the Integrations team near the start of your project.
  • Review the RDA Authentication Guide to understand how to authenticate to the JHA SmartPay Remote Deposit Anywhere™ (referred to as Consumer Mobile or RDA).
  • Download the RDAWebServices WSDL file under the Downloads page.
JHA SmartPay Remote Deposit Anywhere™ (referred to as Consumer Mobile or RDA) Deposit Check Workflow

Deposit Check Diagram

Integrator Mobile Deposit Flow
EPS RDA Mobile Deposit Flow

EPS Web Service

1.


2.


3.


4.


5.


6.


7.


8.


 

 

Creating a Check Deposit Batch

Step 1: Send Authenticate Request

Send an Authenticate Request with the necessary information.

  • Request ID
  • Request Date
  • Credentials
  • Device Tracking
  • PhoneKey
note

For more details on the required information above, see the Authenticate Request API reference page. Also, refer to the RDA Authentication Guide for a full explanation of the authentication components and parameters.

note

The newest security token is required to complete each subsequent request. You can get the newest security token from each web service response. If more than 15 minutes have passed between successful requests, a new authenticate request will need to be sent.

Authenticate Request Example

    {
"Credentials":{
"__type":"SSOCredentialsSHA256:#JackHenry.Eps.Mobile.RDA",
"FIIdentifier":"456789",
"Hash":"String Content",
"HomeBankingId":"1234",
"SaltValue":"xyz",
"Timestamp":"/Date(1560817240000-500)/",
"PhoneKey":"1"
},
"DeviceTracking":{
"AppBundleId":"testbundleid",
"AppVersion":"1.0",
"DeviceModel":"android",
"DeviceSystemName":"testuserandroid",
"DeviceSystemVersion":"1.0",
"Vendor":"Your Company Name Here"
},
"RequestDate":"/Date(1560817240000-500)/",
"RequestId":"123456789"
}

Authenticate Response Example

Log the following information from the AuthenticatedResponse for use in subsequent requests:

  • "SecurityToken"
{
"RequestId": "123456789",
"Result": 1,
"ResultCode": null,
"ResultMessage": null,
"ValidationResults": [],
"Credentials": {
"SecurityToken": "String Content"
},
"PromptTermsAndConditions": false
}

Step 2: Send Get Accounts Request

Send a GetAccounts Request

note
  • This pulls the list of associated accounts tied to the authenticated customer.

GetAccounts Request Example


{
"__type":"GetAccountsRequest:#JackHenry.Eps.Mobile.RDA",
"Credentials":{
"SecurityToken":"String Content",
"PhoneKey":"1"
},
"Request Date": "/Date(1685977560000-500)/",
"RequestId": "123456789"
}

GetAccounts Response Example

Log the following information from the GetAccountsResponse for use in subsequent requests:

  • "SecurityToken"
  • "Name" - Account info to display for customer to select which account to deposit into.
  • "Reference ID" = "AccountReference" - Associated account to use in subsequent requests.
{
"RequestId": "123456789",
"Result": 1,
"ResultCode": null,
"ResultMessage": null,
"ValidationResults": [],
"Credentials": {
"SecurityToken": "String Content"
},
"Accounts": [
{
"IsEnabled": true,
"Name": "Checking (0099)",
"ReferenceId": "ad4_qerqrbv33be",
"RoutingNumber": "String Content",
"Type": "Savings"
},
{
"IsEnabled": true,
"Name": "Mom's Checking (0000)",
"ReferenceId": "ad4_qerqrbqer34qervbv33be",
"RoutingNumber": "String Content",
"Type": "Savings"
},
{
"IsEnabled": true,
"Name": "Checking (0075)",
"ReferenceId": "ad4tbq24tb541eqfer51_qerqrbv33be",
"RoutingNumber": "String Content",
"Type": "Savings"
},
{
"IsEnabled": true,
"Name": "CHECKING (9001)",
"ReferenceId": "adfeb51541eqfer51e",
"RoutingNumber": "String Content",
"Type": "Savings"
}
]
}

Step 3: Send Get Batches Request

Send a GetBatches Request

note
  • This pulls any open batches tied to the authenticated customer.
note
  • If customers have open batches, it would be optimal for them to close or delete those old batches if they are not going to continue adding items to those batches. This step avoids more batches being left open and unprocessed in the system.

GetBatches Request Example


{
"__type":"GetBatchesRequest:#JackHenry.Eps.Mobile.RDA",
"Credentials":{
"SecurityToken":"String Content",
"PhoneKey":"1"
},
"RequestDate":"/Date(1685977560000-500)/",
"RequestId":"123456789"
}

GetBatches Response Example

Log the following information from the GetBatchesResponse for use in subsequent requests:

  • "SecurityToken"
  • "Batch Number"
  • "Batch Reference"
  • "Events"
  • "Status"
  • "StatusDescription"
  • "TotalAmount"
  • "TotalCount"
{
"RequestId": "123456789",
"Result": 1,
"ResultCode": null,
"ResultMessage": null,
"ValidationResults": [],
"Credentials": {
"SecurityToken": "String Content"
},
"Batches": [{
"__type":"Batch:#JackHenry.Eps.Mobile.RDA",
"LocationName":"String Content",
"BatchReference":"String Content",
"BatchNumber":"String Content",
"Status":"String Content",
"StatusDescription":"String Content",
"TotalAmount":12678967.54,
"TotalCount":12678967.54,
"Events":
}],
[{
"__type":"Batch:#JackHenry.Eps.Mobile.RDA",
"LocationName":"String Content",
"BatchReference":"String Content",
"BatchNumber":"String Content",
"Status":"String Content",
"StatusDescription":"String Content",
"TotalAmount":12678967.54,
"TotalCount":12678967.54,
"Events":
}]
}

Step 4: Send Create Batch Request

Send a CreateBatch Request

note
  • This creates an open batch so that the customer can begin adding items to it.
  • The "BatchNumber" field is a unique number that is required. This can be supplied by the financial institution's system or auto-generated by the EPS system. You will want to store this information for further deposit actions.

CreateBatch Request Example


{
"__type": "CreateBatchRequest:#JackHenry.Eps.Mobile.RDA",
"BatchNumber": "String Content",
"Credentials": {
"SecurityToken":"String Content",
"PhoneKey":"1"
},
"RequestDate": "/Date(1685977560000-500)/",
"RequestId": "123456789"
}

CreateBatch Response Example

Log the following information from the CreateBatchResponse for use in subsequent requests:

  • "SecurityToken"
  • "Batch Number"
  • "Batch Reference"
  • "Events"
  • "Status"
  • "StatusDescription"
  • "TotalAmount"
  • "TotalCount"
{
"RequestId": "123456789",
"Result": 1,
"ResultCode": null,
"ResultMessage": null,
"ValidationResults": [],
"Credentials": {
"SecurityToken": "String Content"
},
"Batch": {
"BatchNumber": "3d070b56-c241-432f-8656-189ecfe57aef",
"BatchReference": "B:P7XJ1V1",
"Events": [
{
"Date": "/Date(1706718440840-0600)/",
"Description": "Opened"
}
],
"LocationName": "Mobile Consumer Capture",
"Status": "BatchStatus05",
"StatusDescription": "Open For Scanning",
"TotalAmount": 0,
"TotalCount": 0
}
}
Adding/Viewing a Check Deposit Item in a Batch

Step 5: Send Add Item Request

Send an AddItem Request

note
  • This request creates/adds an item into an open batch.
  • The "BatchReference" refers to the unique "BatchID" for the open batch. It must be extracted from the "Create Batch Request" response.
  • The "AccountReference" is the number associated with the account to deposit the item into. This value was previously pulled in the "GetAccountsRequest" above.
  • The "Memo" field is an optional field for the depositor to provide deposit reference information. Example: Memo Line from check.

AddItem Request Example.

    {
"__type": "AddItemRequest:#JackHenry.Eps.Mobile.RDA",
"Credentials": {
"SecurityToken":"String Content",
"PhoneKey":"1"
},
"BatchReference":"String Content",
"AccountReference":"String Content",
"Amount":12678967.54,
"FrontImage":"String Content",
"RearImage":"String Content",
"Memo": "Test Deposit",
"RequestId": "123456789",
"RequestDate": "/Date(1685977560000-500)/"
}

AddItem Response Example

Log the following information from the AddItemResponse for use in subsequent requests:

  • "SecurityToken"
  • "Batch Number"
  • "Batch Reference"
  • "ItemReference"
  • "Events"
  • "Status"
  • "StatusDescription"
  • "Amount"
    {
"RequestId": null,
"Result": 1,
"ResultCode": null,
"ResultMessage": null,
"ValidationResults": [],
"Credentials": {
"SecurityToken": "String Content"
},
"CheckFaceInfo": {
"AccountNumber": "String Content",
"Amount": 5.00,
"CheckNumber": "10006",
"RoutingNumber": "123456789"
},
"Item": {
"AccountName": "Checking (0099)",
"AccountReferenceID": "String Content",
"Amount": 5.0000,
"BatchReference": "B:P7XJ1V1",
"Events": [
{
"Date": "/Date(1706718858853-0600)/",
"Description": "Check Decision Performed"
},
{
"Date": "/Date(1706718858853-0600)/",
"Description": "Created"
}
],
"IQAStatus": "Nothing",
"ItemReference": "I:7VYW0G5",
"Memo": null,
"ProcessingStatus": null,
"ProcessingStatusDescription": null,
"Status": "ItemStatus04",
"StatusDescription": "Created",
"TransactionReferenceNumber": null
}
}

Step 6: Send Get Items Request (Optional)

Send a GetItems Request

note
  • This is an optional step to pull items that have been added into a batch using the "Batch Reference" value.

GetItems Request Example


{
"__type": "GetItemsRequest:#JackHenry.Eps.Mobile.RDA",
"BatchReference": "String Content",
"Credentials": {
"SecurityToken":"String Content",
"PhoneKey":"1"
},
"RequestDate": "/Date(1685977560000-500)/",
"RequestId": "123456789"
}

GetItems Response Example

Log the following information from the GetItemsResponse for use in subsequent requests:

note
  • For more information on Item Status Descriptions, see the "Item []" link.
  • "SecurityToken"
  • "Batch Number"
  • "Batch Reference"
  • "ItemReference"
  • "Events"
  • "Status"
  • "StatusDescription"
  • "Amount"
  • "ItemReference"
  • "TransactionReferenceNumber"
{
"RequestId": null,
"Result": 1,
"ResultCode": null,
"ResultMessage": null,
"ValidationResults": [],
"Credentials": {
"SecurityToken": "String Content"
},
"Items": [
{
"AccountName": "Checking (0099)",
"AccountReferenceID": "String Content",
"Amount": 0.0000,
"BatchReference": "B:P7XJ1V1",
"Events": [
{
"Date": "/Date(1706718834237-0600)/",
"Description": "Rejected"
},
{
"Date": "/Date(1706718834080-0600)/",
"Description": "Created"
}
],
"IQAStatus": "Nothing",
"ItemReference": "I:T0YW0G5",
"Memo": null,
"ProcessingStatus": null,
"ProcessingStatusDescription": null,
"Status": "ItemStatus09",
"StatusDescription": "Rejected",
"TransactionReferenceNumber": null
},
{
"AccountName": "Trex Checking (0099)",
"Amount": 5.0000,
"BatchReference": "B:P7XJ1V1",
"Events": [
{
"Date": "/Date(1706718858853-0600)/",
"Description": "Check Decision Performed"
},
{
"Date": "/Date(1706718858853-0600)/",
"Description": "Created"
}
],
"IQAStatus": "Nothing",
"ItemReference": "I:7VYW0G5",
"Memo": null,
"ProcessingStatus": null,
"ProcessingStatusDescription": null,
"Status": "ItemStatus04",
"StatusDescription": "Created",
"TransactionReferenceNumber": null
}
]
}

Delete item from batch (Optional)

Send an UpdateItem (Delete) Request

note
  • This is an optional step to remove/delete an item from an open batch using the "Item Reference" value.
  • You will want to include the UpdateItemCriteriaDeleteItem to designate the delete parameter.

UpdateItem (Delete) Request Example

{
"__type": "UpdateItemRequest:#JackHenry.Eps.Mobile.RDA",
"Criteria": {
"__type": "UpdateItemCriteriaDeleteItem:#JackHenry.Eps.Mobile.RDA",
"ItemReference": "String Content"
},
"Credentials": {
"__type": "TokenCredentials:#JackHenry.Eps.Mobile.RDA",
"SecurityToken": "{{securityToken}}"
},
"RequestDate": "/Date(1685977560000-500)/",
"RequestId": "123456789"
}

UpdateItem (Delete) Response Example

	{
"__type":"UpdateItemResponse:#JackHenry.Eps.Mobile.RDA",
"Item":
{
"__type":"Item:#JackHenry.Eps.Mobile.RDA",
"ItemReference":"String Content",
"BatchReference":"String Content",
"TransactionReferenceNumber":"String Content",
"Status":"String Content",
"StatusDescription":"String Content",
"ProcessingStatus":"String Content",
"ProcessingStatusDescription":"String Content",
"Amount":12678967.54,
"IQAStatus":"String Content",
"Events":
[
],
"AccountName":"String Content",
"AccountReferenceID": "String Content",
"Memo":"String Content",
}
}
Closing the Batch and Logging Out

Step 7: Send Update Batch Criteria Close Request

Send an UpdateBatch (Close) Request

note
  • This step closes the open batch for processing. Once this is completed, the ability to add or remove an item will be closed.
  • You will want to include the UpdateBatchCriteriaCloseBatch to designate the close parameter.

UpdateBatch (Close) Request Example


{
"__type": "UpdateBatchRequest:#JackHenry.Eps.Mobile.RDA",
"Credentials": {
"SecurityToken":"String Content",
"PhoneKey":"1"
},
"Criteria": {
"__type": "UpdateBatchCriteriaCloseBatch:#JackHenry.Eps.Mobile.RDA",
"BatchReference": "String Content"
},
"RequestDate": "/Date(1685977560000-500)/",
"RequestId": "123456789"
}

UpdateBatch Close Response Example

Log the following information from the UpdateBatchResponse for use in subsequent requests:

  • "SecurityToken"
  • "Batch Number"
  • "Batch Reference"
  • "ItemReference"
  • "Events"
  • "Status"
  • "StatusDescription"
  • "Amount"
  • "ItemReference"
  • "TransactionReferenceNumber"
{
"RequestId": "123456789",
"Result": 1,
"ResultCode": null,
"ResultMessage": null,
"ValidationResults": [],
"Credentials": {
"SecurityToken": "String Content"
},
"Batch": {
"BatchNumber": "3d070b56-c241-432f-8656-189ecfe57aef",
"BatchReference": "B:P7XJ1V1",
"Events": [
{
"Date": "/Date(1706731703510-0600)/",
"Description": "Closed"
},
{
"Date": "/Date(1706718859027-0600)/",
"Description": "Updated"
},
{
"Date": "/Date(1706718834237-0600)/",
"Description": "Rejected items in batch"
},
{
"Date": "/Date(1706718440840-0600)/",
"Description": "Opened"
}
],
"LocationName": "Mobile Consumer Capture",
"Status": "BatchStatus08",
"StatusDescription": "Submitted",
"TotalAmount": 5.0000,
"TotalCount": 1
}
}

Step 8: Send Log Out Request

Send a Logout Request

note
  • This method is used to log out the user’s session token. Once the token is logged out, it cannot be used again.

Logout Request Example


{
"__type": "LogoutRequest:#JackHenry.Eps.Mobile.RDA",
"Credentials": {
"SecurityToken":"String Content",
"PhoneKey":"1"
},
"RequestDate": "/Date(1685977560000-500)/",
"RequestId": "123456789"
}

Logout Response Example

Log the following information from the UpdateBatchResponse for use in subsequent requests:

    {
"RequestId": "123456789",
"Result": 1,
"ResultCode": null,
"ResultMessage": null,
"ValidationResults": [],
"Credentials": {
"SecurityToken": "String Content"
}
}
Handling Errors and Failed Requests

Not all requests will be successful, so we will cover a couple of common error messages you should be ready to handle.

  • RDA AuthenticateSSO Failure - This can happen for multiple reasons, the most common being a mismatched hash in the request, a timestamp that is out of sync, or the user is not enrolled. For any scenario other than a user who is not enrolled, please reach out through your normal support channels for assistance and refer to the RDA Authenticate Guide in the RDA web service API Guides.
"Code" : "Auth-1001",
"Message" : "Authentication failed"
  • RDA AuthenticateSSO Invalid Hash Length Failure – This error response is returned if the hash being sent in the request is an invalid length. Check to make sure you are using the proper hashing algorithm that is compatible for the request type, either SHA 256 or SHA 512.
"Code" : "Cred 1232",
"Message" : "Hash Length is Invalid"
Next steps
  • Explore other Developer Guides - We have other guides to show how to leverage our APIs in other common use cases. If your situation or question is not covered in the current guide, consult another resource.
  • Review the API Reference section - This guide is a starting point to show common use case scenarios for making successful deposits. Please review the API Reference section to see all API methods and their technical specifications.
  • Review FAQ and Best Practices documents for general information for preperation.