Funding Methods Settings

Enabling a bank customer with access to automatic funding methods to manage their funding methods

Relevant bank customers can register to any of the following funding method:

  • SS - smart savings
  • RU - round ups
  • PYF - pay yourself first

The customer can switch methods anytime.

Switch Automatic Funding Method

Customer registered to an automatically funded program, has decided to change the program:

Two setProgramSettings requests are sent: the first, unenrolling from the current program; the second, enrolling into the new program.

Example:

{
    "type": "setProgramSettings",
    "protocolVersion": "2.6",
    "settings": {
        "programId": "[ID of Enrolled Program – either SS, RU or PYF]",
        "userOptIn": false,
        "fundingAccountId": "101000008952932",
 "accountOptIn": false,
 "transferPreferences": [
            {
                "transferId": "[existing transfer ID]",
                "active": false,
            }
        ]
    }
}
{
    "type": "setProgramSettings",
    "protocolVersion": "2.6",
    "settings": {
        "programId": "[ID of new program]",
        "userOptIn": true,
        "fundingAccountId": "[ID of new funding account]",
        "accountOptIn": true,
        "transferPreferences": [
            {
                "transferId": "",
                "targetAccountId": "[existing target account for goals from enrolledTargetAcocuntGoals fact]",
                "transferType": "[transferType of new program]",
                "active": true,
                "transferTrigger": "[transferTrigger of new program]",
                "transferValue": "[value from user if PYF or RU is selected. Value not sent for smartSave]"
            }
        ]
    }
}
 

Update Funding Source

{
    "type": "setGoalSettings",
    "protocolVersion": "2.6",
    "settings": {
        "goals": [{
            "goalId": "[ID of goal 1]",
            "fundingSource": "[ID of new program]"
        }]
    }
}

{
    "type": "setGoalSettings",
    "protocolVersion": "2.6",
    "settings": {
        "goals": [{
            "goalId": "[ID of Goal 1]",
            "fundingSource": "[ID of new program]"
        },
        {
            "goalId": "[ID of Goal n]",
            "fundingSource": "[ID of new program]"
        }]
    }

Enroll in a Funding Method

setProgramSettings for enrolling in a funding program – this involves:

  • enrolling them in the new funding program
  • updating the fundingSource of their goals via setGoalSettings

Enroll in a New Funding Method

setProgramSettings for enrolling in a new program:

{
    "type": "setProgramSettings",
    "protocolVersion": "2.6",
    "settings": {
        "programId": "[programId for selected program]",
        "userOptIn": true,
        "fundingAccountId": "101000008952932",
        "accountOptIn": true,
        "transferPreferences": [
            {
                "transferId": "",
                "targetAccountId": "101000000214480",
                "transferType": "[transferType for program selected]",
                "active": true,
                "transferTrigger": "[transferTrigger for program selected]",
                "transferValue": "[Value defined by user for PYF or RU. Not sent for SS]"
            }
        ]
    }
}

Update Funding Source

setProgramSettings to update the funding source, for a single goal or for multiple goals:

{
    "type": "setGoalSettings",
    "protocolVersion": "2.6",
    "settings": {
        "goals": [{
            "goalId": "[ID of goal 1]",
            "fundingSource": "[ID of new program]"
        }]
    }
}
{
    "type": "setGoalSettings",
    "protocolVersion": "2.6",
    "settings": {
        "goals": [{
            "goalId": "[ID of Goal 1]",
            "fundingSource": "[ID of new program]"
        },
        {
            "goalId": "[ID of Goal n]",
            "fundingSource": "[ID of new program]"
        }]
    }

Pausing a Funding Method

setProgramSettings, to pause the funding method either for a defined end-date, or indefinitely.

{
    "type": "setProgramSettings",
    "protocolVersion": "2.6",
    "settings": {
"programId": "[ID of enrolled program]",
"fundingAccountId": "[ID of enrolled funding account]",
        	"pauseStart": "[Current date]",
        	"pauseEnd": "12/31/2020 12:00:00"
 }
}
{
    "type": "setProgramSettings",
    "protocolVersion": "2.6",
    "settings": {
"programId": "[ID of enrolled program]",
"fundingAccountId": "[ID of enrolled funding account]",
        	"pauseStart": "[current date]",
        	"pauseEnd": "12/31/2999 12:00:00"
 }
}

Resuming a Funding Program

setProgramSettings to resume the paused funding method.

{
    "type": "setProgramSettings",
    "protocolVersion": "2.6",
    "settings": {
"programId": "[ID of enrolled program]",
"fundingAccountId": "[ID of enrolled funding account]",
        	"pauseStart": "",
        	"pauseEnd": ""
 }
}

Stopping a Funding Program

In this scenario, the customer unenrolls from their current funding method. Two definitions are required:

  • Step-1: setProgramSettings to stop the funding method.
  • Step-2: setGoalSettings to clear the funding source of the existing goals. This can be done for a single or multiple goals.
{
    "type": "setProgramSettings",
    "protocolVersion": "2.6",
    "settings": {
        "programId": "[ID of enrolled program]",
        "userOptIn": false,
        "fundingAccountId": "[ID of enrolled funding account}",
        "accountOptIn": false,
 "maxMonthlyAmount": 0,
        "minBalance": 0,
        "pauseStart": "",
        "pauseEnd": "",
        "transferPreferences": [
            {
                "transferId": "[existing transfer ID]",
                "active": false,
            }
        ]
    }
}

{
    "type": "setGoalSettings",
    "protocolVersion": "2.6",
    "settings": {
        "goals": [{
            "goalId": "[ID of Goal]",
            "fundingSource": ""
        }
    }

{
    "type": "setGoalSettings",
    "protocolVersion": "2.6",
    "settings": {
        "goals": [{
            "goalId": "[ID of Goal]",
            "fundingSource": ""
        },
        {
            "goalId": "[ID of Goal]",
            "fundingSource": ""
        }]
    }

Transfer Preferences

setProgramSettings to define transfer preferences as follows:

  • maxMonthlyAmount and minMonthlyAmountLimitations - RU, and SS
  • maxMonthlyAmount limitation - RU, SS
  • minMonthlyAmount limitation - PYF, RU, SS

setProgramSettings to set transfer preferences.

{
    "type": "setProgramSettings",
    "protocolVersion": "2.6",
    "settings": {
        "programId": "[ID of enrolled program]",
        "fundingAccountId": "[ID of enrolled funding account]",
        "maxMonthlyAmount": 1000,
        "minBalance": 10
        }
    }
{
    "type": "setProgramSettings",
    "protocolVersion": "2.6",
    "settings": {
        "programId": "[ID of enrolled program]",
        "fundingAccountId": "[ID of enrolled funding account]",
        "maxMonthlyAmount": 1000
        }
    }
{
    "type": "setProgramSettings",
    "protocolVersion": "2.6",
    "settings": {
        "programId": "[ID of enrolled program]",
        "fundingAccountId": "[ID of enrolled funding account]",
        "minBalance": 10
        }
    }

Booster Value

setProgramSettings to change booster value for RU, as follows:

{
    "type": "setProgramSettings",
    "protocolVersion": "2.6",
    "settings": {
        "programId": "RU",
        "fundingAccountId": "[ID of enrolled funding account]",
        "transferPreferences": [{
            "transferId": "[transfer ID]",
            "targetAccountId": "[ID of enrolled target account]",
            "transferType": "RU",
            "transferValue": "[value of booster provided by the user]"
        }]
    }
}

PYF Amount

setProgramSettings to update PYF requested amount. The PYF current amount can be set to a fixed amount of a recurring income, or a percentage of a recurring income.

{
    "type": "setProgramSettings",
    "protocolVersion": "2.6",
    "settings": {
        "programId": "PYF",
        "fundingAccountId": "[ID of enrolled funding account]",
        "transferPreferences": [{
            "transferId": "[transfer ID]",
            "transferValue": "[fixed value provided by the user]"
        }]
    }
}
{
    "type": "setProgramSettings",
    "protocolVersion": "2.6",
    "settings": {
        "programId": "PYF",
        "fundingAccountId": "[ID of enrolled funding account]",
        "transferPreferences": [{
            "transferId": "[transfer ID]",
            "transferValue": "[percent value provided by the user]"
        }]
    }
}