Select a Type

Check for Pending Switches

Before we get started selecting the type of switch we need to first check the switches that have already been submitted or may be incomplete for the customer we just set up or updated in the previous step.

Create Customer

In order to do this we need to hit the following API resource:

API Endpoint: Switches

METHOD ENDPOINT
GET /customers/{customerKey}/switches

Example Response Object

{
  "apiVersion": "3.0.1",
  "context": "testing",
  "id": 12345,
  "data": {
    "kind": "switch",
    "currentItemCount": 2,
    "items": [
      {
        "index": 1,
        "type": "Deposit",
        "name": "Acme Trucking",
        "status": "Submitted",
        "actions": [
          "Cancel"
        ]
      },
      {
        "index": 2,
        "type": "Payment",
        "name": "Xcel Energy",
        "status": "Ready",
        "actions": [
          "HTTP-PUT",
          "Cancel",
          "Submit"
        ]
      }
    ]
  }
}

Selecting a Type

Now the user needs to determine if they are trying to perform a deposit switch or a payment switch. In the screenshot below, the "Get Started!" button at the bottom would indicate they want to proceed with a deposit switch. The reason the UI is weighted this way is because most institutions will want to help users bring more money into their new account first. However, if the users clicks on "Switch Payments" then you would start down the path for payments.

Create Customer

Selecting Additional Account Holders (optional)

The only instance where you should need this is if your app does not have any context around the account holder(s) you are performing switches for. In this case you could get account holder data from the ClickSWITCH endpoint below:

METHOD ENDPOINT
GET /customers/{customerKey}

Parameter reference

PARAMETER DESCRIPTION
customerKey*
string
A unique identifier for the customer. Can be any string between 1 and 64 characters. It is case sensitive.
context
string
The context value to be returned in the response. This is supplied initially by your app and is returned from the API in the response so that responses can be correlated with requests in JSON-P and batch situations. (This is not required)
*Required field

Example Response Object

{
  "apiVersion": "3.0.0",
  "context": "testing",
  "id": "1",
  "data": {
    "kind": "customer",
    "item": {
      "customerKey": "1283938",
      "email": "joe@gmail.com",
      "metadata": {
        "employee_id": "jsmith",
        "branch": "21"
      },
      "phoneNumber": "string",
      "accountHolders": [
        {
          "firstName": "John",
          "middleInitial": "J",
          "lastName": "Doe"
        },
        {
          "firstName": "Jane",
          "middleInitial": "M",
          "lastName": "Doe"
        }
      ],
      "accounts": [
        {
          "number": "21234567890",
          "type": "checking",
          "name": "Free Checking",
          "routingNumber": "12713873"
        },
        {
          "number": "123123123",
          "type": "savings",
          "name": "Awesome Savings",
          "routingNumber": "12713873"
        }
      ],
      "addresses": [
        {
          "line1": "129 Main St.",
          "line2": "Apt. 1",
          "line3": "Attn. John",
          "city": "Metropolis",
          "zip": "37484",
          "state": "DE",
          "country": "US"
        }
      ]
    }
  }
}

Now that you've selected the type of switch and determined which account holder the switch is for you can move on to the next step: selecting a target.