Skip to main content

RDA Enrollment Guide

Introduction

To submit deposits in the RDA web service it is required to have customer and account records enrolled in the RDA system first. All deposit batches, items, and history will be associated to the enrolled customers and their accounts.

Getting Started

Here’s what you’ll do in this guide

  • Enroll an RDA customer and a deposit account of that customer.

Prerequisites needed before continuing

  • You will need to obtain your test credentials to try any of the examples in this guide. You should have received these from your Implementation Coordinator or Technical Integrations.
  • Review the Authenticated Request Fields for an understanding on how to authenticate to the RDA Admin web service.
  • Download the RDA Admin Web Service WSDL file from the Downloads menu

RDA Enrollment Workflow

This workflow is intended for registering a customer in real time as the customer initiates a deposit and how to handle different scenarios. Typically, there will be some form of decision process outside of RDA to determine a customer’s eligibility to be enrolled in RDA for deposits. Eligible users will continue with the enrollment process as described below.

  • Step 1 Run the GetCustomers Web Service request – Use the results of GetCustomers to determine one of three statuses: Not enrolled, Enrolled and enabled, Enrolled and disabled.
caution

You may attempt to first authenticate the user if you believe them to already be enrolled as a returning customer (see the RDA Authentication guide), but if that authentication fails you will need to run GetCustomers to determine how to proceed.

  • Not enrolled = No results from GetCustomers. This is the status where enrollment will be needed.

  • Enrolled and enabled= The customer is returned from GetCustomers and the Enabled flag is set to True. If authentication is failing in this scenario it is not an enrollment issue and will be due to a different technical issue.

  • Enrolled and disabled = The customer is returned from GetCustomers and the Enabled flag is set to False.

    GetCustomers Request Example:

    {
    "RequestId": "85ac2876-347a-4cee-b071-13af3357a0c7",
    "RequestDate": "/Date(1629199027219-0000)/",
    "__type": "GetCustomersRequest:#JackHenry.Eps.Mobile.RDAAdmin",
    "Credentials": {
    "__type": "StoreCredentials:#JackHenry.Eps.Mobile.RDAAdmin",
    "StoreId": Your Store ID,
    "StoreKey": "Your Storekey",
    "EntityId": Your Entity ID
    },
    "Criteria": {
    "__type": "GetCustomersCriteriaHomeBankingId:#JackHenry.Eps.Mobile.RDAAdmin",
    "HomeBankingId": "test123"
    }
    }

    GetCustomers Response Example:

    {
    "RequestId" : "85ac2876-347a-4cee-b071-13af3357a0c7",
    "Result" : 1,
    "ResultCode" : null,
    "ResultMessage" : null,
    "ValidationResults" : [ ],
    "Customers" : [
    {
    "AddressLine1" : "123 Easy St",
    "AddressLine2" : "Ste 101",
    "City" : "Dallas",
    "CompanyName" : "TestRDADemo",
    "Country" : "US",
    "CustomerType" : 0,
    "EmailAddress" : "test@profitstars.com",
    "FirstName" : "Test",
    "HomeBankingId" : "test123",
    "IsDirectLoginEnabled" : false,
    "IsEnabled" : false,
    "LastName" : "User1",
    "PostalCode" : "75080",
    "State" : "TX",
    "Username" : null
    }
    ]
    }
  • Step 1a Not enrolled: In this scenario take the following two actions to enroll the new customer. If the enrollment is successful, you may then authenticate the user.

    • Go through your process to collect customer information, and then call AddCustomer to create the customer.

      AddCustomer request Example:

      {
      "__type":"AddCustomerRequest:#JackHenry.Eps.Mobile.RDAAdmin",
      "HomeBankingId":"test456",
      "CustomerType": 0,
      "FirstName":"Test",
      "LastName":"User2",
      "AddressLine1":"123 Easy St",
      "AddressLine2":"Ste 101",
      "City":"Dallas",
      "State":"TX",
      "PostalCode":"75080",
      "Country":"US",
      "EmailAddress":"test@profitstars.com",
      "IsDirectLoginEnabled":"false",
      "IsEnabled":"true",
      "Credentials": {
      "__type":"StoreCredentials:#JackHenry.Eps.Mobile.RDAAdmin",
      "StoreId": Your StoreID,
      "StoreKey": "Your StoreKey",
      "EntityId": Your EntityId
      },
      "RequestDate":"/Date(1624477777000)/",
      "RequestId": "e7c47b8c-5c18-4e18-bb1b-e3a89581b641"
      }

      AddCustomer Response Example:

      {
      "RequestId": "e7c47b8c-5c18-4e18-bb1b-e3a89581b641",
      "Result": 1,
      "ResultCode": null,
      "ResultMessage": null,
      "ValidationResults": []
      }
    • Call AddAccount to add accounts to the customer.

      Note: Credit Union Shares will need to be appended to the end of the member account number with no spaces or dashes in the AccountNumber field and will need to be padded with zeros to match the Credit Unions set shareID length. Not doing this properly will result in failure to process funds downstream and will affect RTP. For example:

      • Credit Union set share length: 4
      • Member account number: 12345
      • Share: 1
      • AccountNumber field value: 123450001

      AddAccount request Example:

      {
      "RequestId": "8f0683e5-fd81-4d45-8071-1dc9a405691b",
      "RequestDate": "/Date(1629199155201-0000)/",
      "__type": "AddAccountRequest:#JackHenry.Eps.Mobile.RDAAdmin",
      "Credentials": {
      "__type": "StoreCredentials:#JackHenry.Eps.Mobile.RDAAdmin",
      "StoreId": Your StoreId,
      "StoreKey": "Your StoreKey",
      "EntityId": Your EntityId
      },
      "AccountNumber": "123450001",
      "ReferenceID": "test7890",
      "HomeBankingId": "test456",
      "IsEnabled": true,
      "Name": "test456 checking",
      "RoutingNumber": "111903245",
      "Type": 0
      }

      AddAccount Response Example:

      {
      "RequestId": "8f0683e5-fd81-4d45-8071-1dc9a405691b",
      "Result": 1,
      "ResultCode": null,
      "ResultMessage": null,
      "ValidationResults": []
      }
  • Step 1b Enrolled and enabled: In this scenario, the customer is already enrolled and enabled so the user can be authenticated with AuthenticateSSO, refer to the RDA Authentication Guide. If the authentication is failing in this scenario, it is not an enrollment related issue, and you will need to reach out through your normal support channels.

    • To get a list of accounts that the user has access to deposit into, call GetAccounts.

      GetAccounts Request Example:

      {
      "__type": "GetAccountsRequest:#JackHenry.Eps.Mobile.RDAAdmin",
      "Criteria": {
      "__type":"GetAccountsCriteriaHomeBankingId:#JackHenry.Eps.Mobile.RDAAdmin",
      "HomeBankingId": "test456"
      },
      "Credentials": {
      "__type":"StoreCredentials:#JackHenry.Eps.Mobile.RDAAdmin"
      "StoreId": Your StoreId,
      "StoreKey": "Your StoreKey",
      "EntityId": Your EntityId
      },
      "RequestDate":"/Date(1580101333165)/",
      "RequestId": "123243"
      }

      GetAccounts Response Example:

      {
      "RequestId": "123243",
      "Result": 1,
      "ResultCode": null,
      "ResultMessage": null,
      "ValidationResults": [],
      "Accounts": [
      {
      "AccountNumber": "123450001",
      "IsEnabled": true,
      "Name": "test456 checking (7890)",
      "ReferenceId": "test7890",
      "RoutingNumber": "111903245",
      "Type": 0
      }
      ]
      }
  • Step 1c Enrolled and disabled: In this scenario, the customer is already enrolled however, the customer cannot submit deposits since the Enabled flag is set to False.The FI will need to be consulted if users should be automatically enabled in this scenario or be presented a message to contact the FI. - To enable the customer, call UpdateCustomer and then set the Enabled flag to True.

    UpdateCustomer request Example:

    {
    "RequestId": "48f566fb-ba7c-4463-aab8-b7d63fd4fb65",
    "RequestDate": "/Date(1629263344865-0000)/",
    "__type": "UpdateCustomerRequest:#JackHenry.Eps.Mobile.RDAAdmin",
    "AddressLine1": "456 Roundtree Rd",
    "AddressLDaline2": "",
    "City": "Allen",
    "EmailAddress":"test@profitstars.com",
    "FirstName": "Test",
    "LastName": "User1",
    "CustomerType": 0,
    "HomeBankingId": "test123",
    "PostalCode": "75252",
    "State": "TX",
    "Country":"US",
    "Username": "",
    "Credentials": {
    "__type": "StoreCredentials:#JackHenry.Eps.Mobile.RDAAdmin",
    "StoreId": Your StoreId,
    "StoreKey": "Your StoreKey",
    "EntityId": Your EntityId
    },
    "Criteria": {
    "__type": "UpdateCustomerCriteria:#JackHenry.Eps.Mobile.RDAAdmin",
    "HomeBankingId": "test123"
    },
    "IsDirectLoginEnabled": false,
    "IsEnabled": true
    }

    UpdateCustomer Response Example:

    {
    "RequestId" : "48f566fb-ba7c-4463-aab8-b7d63fd4fb65",
    "Result" : 1,
    "ResultCode" : null,
    "ResultMessage" : null,
    "ValidationResults" : [ ]
    }

    Here is how the enrollment process looks as a workflow diagram. Click on the method boxes to be taken to the specific API reference.

Handling Errors and Failed Requests

Not all requests will be successful, so we will need to run through a few common errors you should be ready to handle.

  • RDA Admin Credentials Failure - This error will indicate that something is wrong with your login credentials. These errors cannot be retried as multiple failures will result in a complete lockout. Check your credentials and verify nothing has changed on your end before proceeding. Login failures often require customer support assistance to resolve, so please reach out through your normal support channels should this occur.

    "Code" : "Auth-3101", "Message" : "Authentication failed"

  • RDA AuthenticateSSO Failure - This can happen for multiple reasons and the most common are a mismatched hash in the request, a timestamp that is out of sync, or the user is not enrolled. For any scenario other than not enrolled, please reach out through your normal support channels for assistance and refer to the RDA Authentication Guide in the RDA web service.

    "Code" : "Auth-1001", "Message" : "Authentication failed"

  • Duplicate Customer - Duplicate customer requests will be unsuccessful. Duplicate records are determined based on the HomeBankingId. This value must be unique within the RDA MID and if a duplicate is attempted you will receive a message in your response like shown below. To handle this situation, you must ensure uniqueness before sending another attempt.

    "Code" : "Cust-3221", "Message" : "The "Home Banking ID" and/or "Username" is already in use."

  • Duplicate Account - Duplicate account requests will be unsuccessful. Duplicate records are determined based on the ReferenceId. The combination of AccountNumber, Type, HomeBankingId will also be used to determine duplicate accounts. These values must be unique within the RDA MID and if a duplicate is attempted you will receive a message in your response like shown below. To handle this situation, you must ensure uniqueness before sending another attempt.

    "Code" : "Acct-2002", "Message" : "Cannot create a duplicate account using the provided Account Reference Id. Please correct and resubmit or contact Customer Support."

  • Timeout waiting for response - Systems should be designed to wait 5 seconds to receive a response before timing out. If a timeout occurs, you can attempt to retry registering the customer or account again. If you receive the unique constraint message in response to the retry, that will indicate that the original attempt was either successful or had already existed.

Next steps

  • Review the API Reference - This guide is just a starting point to show how to enroll an RDA customer and account information. Please review the API Reference to see all methods and their technical specifications.
  • Explore other guides - We have other guides to show how to leverage our APIs in other common use cases so if this one doesn’t cover what you are looking for, give another guide a try.
  • Get certified and move into production - Ready to put your new code into production use? Refer to this process guide that explains our certification steps and how to contact us to get started.