Auto Money Movement

Auto Money Movement APIs can be used for managing Auto Money Movement rules.

Overview

Auto Money Movement APIs can be used for managing Auto Money Movement rules.

Stopping Auto Money Movement Rules

When goals are met, AMM rules stop automatically, leaving money in the account’s available balance.

ConditionsAmountsResult
• Account has purse • Purse has goal set • Purse has AMM rulePurse balance > = Goal AmountAMM rule is deactivated. AMM stops.
• Account has purse • Purse has goal set • Purse has AMM rule • Goal has already been met prior to transfer to another pursePurse balance < Goal Amount after transferAMM rule is reactivated. AMM resumes.
• Account has purse • Purse has goal set • Purse has AMM rule • AMM rule contains maxCapAmount • User wants to actively pause or delete rulePurse Balance > Goal amount after transferAMM occurs as normal.

How It Works

Auto Money Movement API Endpoints

Create New AMM Rule

This endpoint allows the addition of a new Auto Money Movement (AMM) rule to an account. After a rule is applied to an account, money can be automatically moved based on the rule parameters.

API Call Structure

POST /programs/{programCode}/accounts/{accountIdentifier}/ammRule

API Call Structure Parameters

FieldFormatRequired/OptionalType
X-GD-RequestIdHeaderRequiredString
accountIdentifierPathRequiredString
programCodePathRequiredString

Sample Request Bodies

Sample Request Body – Date Driven (Move money to savings purse monthly):-
{
   "requestHeader":{
      "requestId":"05e853a6-4087-4f69-af95-6c9008321c72"
   },
   "ruleType":"DateDriven",
   "ruleFrequency":"monthly",
   "ammRuleName":"Primary to savings",
   "startDate":"2019-06-16T17:33:32.146Z",
   "endDate":"2020-06-16T17:33:32.146Z",
   "qualifyAmount":100,
   "maxCapAmount":100,
   "targetPurseId":"d46d6c6c-a8d3-4187-9689-09bfe082b79b",
   "targetHandle":"",
   "handleType":"phone",
   "rulePriority":1,
   "category":[
      1
   ],
   "fixedTransferAmount":50,
   "transferPecentage":0,
   "isRoundUpTransfer":false,
   "scheduleDay":17,
   "note":"Test Monthly",
   "programCode":"test"
}

Sample Request Body – Purchase (round-up):-
{
   "requestHeader":{
      "requestId":"05e853a6-4087-4f69-af95-6c9008321c72"
   },
   "ruleType":"purchase",
   "ruleFrequency":"realTime",
   "ammRuleName":"Round up my purchase",
   "startDate":"2019-06-16T17:33:32.146Z",
   "endDate":"2020-06-16T17:33:32.146Z",
   "qualifyAmount":100,
   "maxCapAmount":1000,
   "targetPurseId":"d46d6c6c-a8d3-4187-9689-09bfe082b79b",
   "targetHandle":"",
   "handleType":"phone",
   "rulePriority":1,
   "category":[
      1
   ],
   "fixedTransferAmount":0,
   "transferPecentage":0,
   "isRoundUpTransfer":true,
   "scheduleDay":0,
   "note":"Round Up Rule - Test",
   "programCode":"test"
}

Sample Request – P2P (Default source purse to primary if not provided):-
{
   "requestHeader":{
      "requestId":"07486ff6-b364-4338-aadd-925693dec8ce"
   },
   "transferIdentifier":"f8664804-3187-4313-b0a0-ceae6ed42b0f",
   "transferType":"purse",
   "transferAuthorizationType":"execute",
   "initiator":"D2CC3A98-F16E-478E-BDE7-FFECAEA5E574",
   "transferRoute":{
      "transactionAmount":10.00,
      "sourceTransferEndpoint":{
         "transferEndpointType":"purse",
         "identifier":"",
         "currency":"USD"
      },
      "targetTransferEndpoint":{
         "transferEndpointType":"purse",
         "identifier":"17C5C5FD-3886-4D77-939A-6583C10E55BA",
         "currency":"USD"
      }
   }
}


Sample Request – Recurring Payment to Secured Credit Product:-
{
   "ruleType":"DateDriven",
   "ruleFrequency":"Weekly",
   "ammRuleName":"SCCPaymentRule132",
   "startDate":"2021-03-07T15:34:37.628Z",
   "endDate":"2022-03-07T15:33:37.628Z",
   "transferType":"SCCPayment",
   "paymentAmountOption":"MinimumPayment",
   "sourceOption":"DDA",
   "qualifyAmount":0,
   "targetAccountID":"a9730199-e188-42dc-bc5d-600bd70a2607",
   "targetHandle":"",
   "handleType":"None",
   "rulePriority":1,
   "category":,
   "fixedTransferAmount":0,
   "transferPercentage":0,
   "isRoundUpTransfer":false,
   "scheduleDay":"1",
   "note":"TestWeekly"
}

Request Parameters

FieldRequired/OptionalDescription
requestIdRequiredUnique identifier for the request.
ruleTypeRequiredThe type of rule being created. Options: • purchase • achIn • dateDriven
ruleFrequencyRequiredHow often the rule or transfer is scheduled to occur. Options: • realTime • oneTime • weekly • monthly
ammRuleNameOptionalName assigned to the rule. Example – Primary to savings
startDateRequiredDate the rule will start.
endDateOptionalDate the rule will end.
qualifyAmountRequiredAmount of transfer.
maxCapAmountOptionalDefault – no limit
targetPurseIdOptionalUnique identifier for the purse the transfer is going to.
targetHandleOptionalOptions:
• phoneNumber
• email
• username
• depending on handleType
handleTypeRequiredOptions:
• userName
• phoneNumber
• userName
rulePriorityOptional
categoryOptional
fixedTransferAmountAt least one of these values is required.Amount of transfer.
transferPercentageAt least one of these values is required.Percentage of direct deposit amount to be transferred. Only applies to direct deposits.
isroundupTransferAt least one of these values is required.Amount to round purchases.
scheduleDayOptionalIf selected, ruleFrequency must be included as well. Example - scheduleDay: 2, ruleFrequency: weekly scheduleDay Options: • weekly – 1-7 ONLY • monthly – 1-31 ONLY
noteOptionalDescription
programCodeRequiredPartner’s program code
sourceOptionOptionalFor Secured Credit products, see Source Option for AMM rule
paymentAmountOptionOptionalFor Secured Credit Products, see Payment Amount Option for AMM rule

Response Bodies

Sample Response – Happy Path:-
{
   "ruleEnrollmentKey":0,
   "responseDetails":[
      {
         "code":0,
         "subCode":0,
         "description":"Success",
         "url":"http://tbd"
      }
   ]
}

Sample Response - P2P:-
{
   "responseHeader":{
      "responseId":"07486ff6-b364-4338-aadd-925693dec8ce",
      "statusCode":0,
      "subStatusCode":0,
      "message":"Success"
   },
   "transferIdentifier":"f8664804-3187-4313-b0a0-ceae6ed42b0f",
   "transferStatus":"completed",
   "accounts":[
      {
         "accountIdentifier":"D2CC3A98-F16E-478E-BDE7-FFECAEA5E574",
         "purses":[
            {
               "purseIdentifier":"c4d9fb38-3b0e-4f6f-84c3-e2252b8e54e3",
               "purseType":"primary",
               "availableBalance":9970.0000,
               "ledgerBalance":9970.0000,
               "availableBalanceAsOfDateTime":"2019-05-29T14:00:35",
               "ledgerBalanceAsOfDateTime":"2019-05-29T14:00:35"
            },
            {
               "purseIdentifier":"17c5c5fd-3886-4d77-939a-6583c10e55ba",
               "purseType":"savings",
               "availableBalance":30.0000,
               "ledgerBalance":30.0000,
               "availableBalanceAsOfDateTime":"2019-05-28T17:15:08.650467",
               "ledgerBalanceAsOfDateTime":"2019-05-28T17:15:08.650467"
            }
         ]
      }
   ]
}

Update an AMM Rule

This endpoint allows the ammRuleName, maxCapAmount and fixedTransferAmount to be changed for a specific Auto Money Movement (AMM) rule based on ruleId.

API Call Structure

PUT /programs/{programCode}/accounts/{accountIdentifier}/ammRule/{ruleId}

Request Parameters

NameRequired/OptionalSchema
ammRuleNameOptionalstring
endDateOptionalstring (date-time)
fixedTransferAmountOptionalnumber
maxCapAmountOptionalnumber
ruleIdOptionalinteger (int64)
rulePriorityOptionalinteger (int64)
scheduleDayOptionalinteger (int64)
startDateOptionalstring (date-time)
transferPercentageOptionalnumber

Sample Request Body

{
   "ruleId":"570",
   "ammRuleName":"Change Name Testing to Change",
   "startDate":"2019-06-27T22:45:48.503Z",
   "endDate":"2020-06-27T22:45:48.503Z",
   "maxCapAmount":"1000",
   "rulePriority":"",
   "fixedTransferAmount":"10",
   "transferPercentage":"",
   "scheduleDay":"0"
}

Sample Response Body

"updatedRule":{
   "ruleId":571,
   "accountID":"d8cbad68-1052-443b-9b60-a198d81a5136",
   "ruleType":3,
   "ruleFrequency":2,
   "ammRuleName":"Change Name Testing to Change",
   "startDate":"2019-06-27T15:45:48.503Z",
   "endDate":"2020-06-27T15:45:48.503Z",
   "qualifyAmount":100.0000,
   "maxCapAmount":1000.0000,
   "targetPurseID":"00000000-0000-0000-0000-000000000000",
   "targetHandle":"6039445232",
   "handleType":1,
   "rulePriority":1,
   "category":[
      1,
      3,
      8,
      9
   ],
   "fixedTransferAmount":10.0000,
   "transferPercentage":0.00,
   "isRoundUpTransfer":false,
   "enrollmentDate":"2019-06-27T15:45:48.800Z",
   "lastModifiedDate":"2019-06-27T08:53:23.910Z",
   "scheduleDay":6,
   "note":"Date Driven Rule - Test"
},
"responseDetails":[
   {
      "code":0,
      "subCode":0,
      "description":"Success",
      "url":"http://tbd"
   }
]
}

Update an AMM Rule Status

This endpoint is used to update the status of an AMM rule.

API Call Structure

PUT /programs/{programCode}/accounts/{accountIdentifier}/ammRuleStatus/{ruleId}

API Call Structure Parameters

NameTypeRequired?Schema
programCodePathYString
accountIdentifierPathYString
ruleIDPathYInteger($int64)
x-GD-REQUESTIdHeaderYString

Request Body

{
    "ruleStatus": "active",
    "endDate": "2022-08-31T13:08:16.119Z"
}

Response Body

{
  "responseDetails": [
    {
      "code": 0,
      "subCode": 0,
      "description": "string",
      "url": "string"
    }
  ]
}

End Old AMM Rule and Start New One

PUT /accounts/{accountIdentifier}/ammRule/{ruleId} can also be used to end an old rule by setting the ruleStatus to inActive. The rule will then be recreated with the updated attributes and a new active ruleStatus.

Sample Request Body

{
   "ruleId":"14792",
   "ammRuleName":"Change ammRuleName",
   "startDate":"2019-11-16T00:41:33.262Z",
   "endDate":"2020-11-16T00:41:33.262Z",
   "maxCapAmount":"1000",
   "rulePriority":"2",
   "fixedTransferAmount":"10.00",
   "transferPercentage":"",
   "scheduleDay":""
}

Sample Response Body

{
   "updatedRule":{
      "ruleID":14793,
      "accountId":"9365096e-3962-4cd2-8dc9-eab3a9565aee",
      "ruleType":"ACHIn",
      "ruleFrequency":"Realtime",
      "ammRuleName":"Change ammRuleName",
      "startDate":"2019-11-15T16:41:33.263Z",
      "endDate":"2020-11-15T16:41:33.263Z",
      "qualifyAmount":1.0,
      "maxCapAmount":1000.0,
      "targetPurseID":"00000000-0000-0000-0000-000000000000",
      "targetAccountID":"af786af6-9ea8-453f-a22f-e1d259116d3e",
      "contactName":"",
      "targetHandle":"6333777651",
      "handleType":"Phone",
      "rulePriority":2,
      "category":[
         1,
         3,
         8,
         9
      ],
      "fixedTransferAmount":10.0,
      "transferPercentage":0.0,
      "isRoundUpTransfer":false,
      "enrollmentDate":"2019-11-15T16:41:33.447Z",
      "lastModifiedDate":"2019-11-15T16:41:34.150Z",
      "scheduleDay":0,
      "note":"ACHIn Rule - Test",
      "ruleStatus":"Active"
   },
   "responseDetails":[
      {
         "code":0,
         "subCode":0,
         "description":"Success",
         "url":"http://tbd"
      }
   ]
}

Response Codes

CodesubCode
100
1010
5030
4000
2000
40

Update AMM Rule Priorities

This endpoint allows all Auto Money Movement (AMM) rule priorities for a specific account to be updated all at one time.

API Call Structure

PUT /programs/{programCode}/accounts/{accountIdentifier}/ammRulePriority

Request Parameters

NameTypeRequired/OptionalSchema
X-GD-RequestIdHeaderRequiredString
accountIdentifierPathRequiredString
programCodePathRequiredString

Sample Request Body

{
 "rulePriorities”: [
{
“ruleId”: “1148”,
"rulePriority": "2",
“ruleId”: “1149”,
"rulePriority": "3",
“ruleId”: “1150”,
"rulePriority": "1",
}
]

Sample Response Body

{
   "responseDetails":[
      {
         "code":0,
         "subCode":0,
         "description":"Success",
         "url":"http://tbd"
      }
   ]
}

Response Codes

CodesubCode
100
1010
5030
4000
2000
40

Delete AMM Rule

This endpoint is used to delete an Auto Money Movement (AMM) rule based on accountIdentifier and ruleId.

Structure of API Call:

DELETE /programs/{programCode}/accounts/{accountIdentifier}/ammRule

API Call Structure Parameters

NameTypeRequired/OptionalSchema
X-GD-RequestIdHeaderRequiredString
accountIdentifierPathRequiredString
programCodePathRequiredString
ruleIdRequiredInteger (int64)

Sample Request Body

{
   "ruleId":13913
}

Sample Response Body

{
   "responseDetails":[
      {
         "code":0,
         "subCode":0,
         "description":"Success",
         "url":"http://tbd"
      }
   ]
}

Response Codes

codesubCode
100
1010
5030
4000
2000
40

Obtain List of AMM Rules for Account

This endpoints is used to obtain a list of active Auto Money Movement (AMM) rules for a specific account.

API Call Structure

GET /programs/{programCode}/accounts/{accountIdentifier}/ammRule/{ruleStatus}

API Call Structure Parameters

NameTypeRequired/OptionalSchema
X-GD-RequestIdHeaderRequiredString
accountIdentifierPathRequiredString
programCodePathRequiredString
ruleStatusPathRequiredString

Request

Call GET /ammRule/{ruleStatus} and include the accountIdentifier, programCode and ruleStatus.

Response Bodies

Sample Response:-
{
   "rules":[
      {
         "ruleID":72958,
         "accountID":"dd723adb-a4c1-4fa1-989f-83a2597acc92",
         "ruleType":"DateDriven",
         "ruleFrequency":"Weekly",
         "ammRuleName":"SCCPaymentRule132",
         "startDate":"2021-03-07T15:34:37.627Z",
         "endDate":"2022-03-07T15:33:37.627Z",
         "qualifyAmount":0.0,
         "maxCapAmount":0.0,
         "targetPurseID":"00000000-0000-0000-0000-000000000000",
         "targetAccountID":"a9730199-e188-42dc-bc5d-600bd70a2607",
         "contactName":"",
         "targetHandle":"",
         "handleType":"None",
         "rulePriority":1,
         "fixedTransferAmount":0.0,
         "transferPercentage":0.0,
         "isRoundUpTransfer":false,
         "enrollmentDate":"2021-03-07T14:33:38.163Z",
         "lastModifiedDate":"2021-03-07T14:33:38.163Z",
         "scheduleDay":1,
         "note":"TestWeekly",
         "ruleStatus":"active",
         "paymentAmountOption":"minimumPayment",
         "sourceOption":"dda"
      }
   ],
   "responseDetails":[
      {
         "code":0,
         "subCode":0,
         "description":"Success",
         "url":"http://tbd"
      }
   ]
}

Sample Response – External Account:-
{
   "rules":[
      {
         "ruleID":73002,
         "accountID":"0bf0ac44-f059-4a47-8ef2-47ab9acd0795",
         "ruleType":"DateDriven",
         "ruleFrequency":"Monthly",
         "ammRuleName":"SCCPaymentRule844",
         "startDate":"2021-03-08T08:13:12.040Z",
         "endDate":"2022-03-08T08:12:12.040Z",
         "qualifyAmount":0,
         "maxCapAmount":0,
         "targetPurseID":"00000000-0000-0000-0000-000000000000",
         "targetAccountID":"e5209b0e-1dd4-4d2c-8f2b-2eb80ed33a58",
         "contactName":"",
         "targetHandle":"",
         "handleType":"None",
         "rulePriority":1,
         "fixedTransferAmount":0,
         "transferPercentage":0,
         "isRoundUpTransfer":false,
         "enrollmentDate":"2021-03-08T07:12:12.490Z",
         "lastModifiedDate":"2021-03-08T07:12:12.490Z",
         "scheduleDay":7,
         "note":"TestMonthly",
         "ruleStatus":"active",
         "paymentAmountOption":"currentBalance",
         "sourceOption":"achPull"
      }
   ],
   "responseDetails":[
      {
         "code":0,
         "subCode":0,
         "description":"Success",
         "url":"http://tbd"
      }
   ]
}

Response Parameters

NameRequired/OptionalSchema
ruleStatusOptionalstring
accountIdOptionalstring (uuid)
ammRuleNameOptionalstring
categoryOptionalinteger (int32)
contactNameOptionalstring
endDateOptionalstring (date-time)
enrollmentDateOptionalstring (date-time)
fixedTransferAmountOptionalnumber
handleTypeOptionalstring
isRoundUpTransferOptionalboolean
lastModifiedDateOptionalstring (date-time)
maxCapAmountOptionalnumber
noteOptionalstring
qualifyAmountOptionalnumber
ruleFrequencyOptionalstring
ruleIdOptionalinteger (int64)
rulePriorityOptionalinteger (int32)
ruleTypeOptionalstring
scheduleDayOptionalinteger (int32)
startDateOptionalstring (date-time)
targetAccountIdOptionalstring (uuid)
targetHandleOptionalstring
targetPurseIdOptionalstring (uuid)
transferPercentageOptionalnumber
paymentAmountOptionOptionalstring
sourceOptionOptionalstring

Response Codes

CodesubCode
100
5030
4000
2000

Obtain AMM Rule

Access the AMM rule from the RuleID through via the ruleID key in the queryString. If the Gateway or partner passes the value for this key, the system returns the AMM rule by the specific RuleId, provided it belongs to the current account identifier.

API Call Structure

GET /programs/{programCode}/accounts/{accountIdentifier}/ammRuleByTargetAccount/{ruleStatus}?ruleKey=XXXX

GetWhenResult
AMM Rule by RuleKeyRuleKey belongs to current accountReturn AMM rule
AMM Rule by RuleIDRuleID does not belong to current accountReturn Status code 10, Subcode 0

Response Details

439e-a674-944795c8f5c9/ammRuleByTargetAccount/Active?transferType=SCCPayment&includeTransactions=true&rule
Ids=75249 HTTP/1.1
Accept-Encoding: gzip,deflate
Authorization: Bearer HhtsQWTX3GqruJiHNxLLWg==
X-GD-RequestId: ba11a062-8ab4-4622-94x5-6b4b32c38e9b
Content-Length: 0
Host: bospard.qa.uw2.gdotawxxp.com
Connection: go-Alive
User-Agent: Apache-HttpClient/4.5.2 (Java/1.8.0_181)

Response Body

{
   "rules":[
      {
         "ruleID":75249,
         "accountID":"bb4caae1-cc59-4b60-a154e-64a96179f50d",
         "ruleType":"DateDriven",
         "ruleFrequency":"Monthly",
         "ammRuleName":"SCCPaymentRule146",
         "startDate":"2021-04-14T11:00:31.757Z",
         "endDate":"2022-04-14T10:59:31.757Z",
         "qualifyAmount":0.0,
         "maxCapAmount":0.0,
         "targetPurseID":"00000000-0000-0000-0000-000000000000",
         "targetAccountID":"b1691115-6450-430e-a454-944455c8f5c9",
         "contactName":"",
         "targetHandle":"",
         "handleType":"None",
         "rulePriority":1,
         "fixedTransferAmount":0.0,
         "transferPercentage":0.0,
         "isRoundUpTransfer":false,
         "enrollmentDate":"2021-04-14T45:59:31.944Z",
         "lastModifiedDate":"2021-04-14T44:59:31.967Z",
         "scheduleDay":14,
         "note":"TestMonthly",
         "ruleStatus":"active",
         "transactions":[
            
         ],
         "paymentAmountOption":"currentBalance",
         "sourceOption":"achPull",
         "transferType":"SccPayment",
         "nextExecutionDate":"2044-04-14T44:00:31.000Z"
      }
   ],
   "responseDetails":[
      {
         "code":0,
         "subCode":0,
         "description":"Success",
         "url":"http://abc"
      }
   ]
}

Pause/Unpause Auto Money Movement

This API gives the Flex accountholder the option to pause and unpause money movement without deleting the Auto Money Movement (AMM) rule established for their account.

How It Works

When an AMM rule is:

  • Paused (default), no money movement occurs.
  • Unpaused, money movement resumes.
  • Paused or unpaused multiple times consecutively, no action or errors occur.

Affected APIs:

PUT /programs/{programCode}/accounts/{accountIdentifier}/ammRule/{ruleId}

POST /programs/{programCode}/accounts/{accountIdentifier}/ammRule

GET /programs/{programCode}/accounts/{accountIdentifier}/ammRuleByTargetAccount/{ruleStatus}

GET /programs/{programCode}/accounts/{accountIdentifier}/ammRule/{ruleStatus}

NOTE: When a rule is retrieved via GET, the following occurs:

  • The rule state (paused/unpaused) is also returned.
  • Paused rules are returned with active rules.
  • Inactive rules are not retrieved.

When Money Movement Is Tied to a Goal

When a goal is set for a purse, the following conditions determine whether money movement stops and when it resumes.

ConditionsAmountsResult
• Account has purse
• Purse has goal set
• Purse has AMM rule
Purse balance >= Goal AmountAMM rule is deactivated. AMM stops.
• Account has purse
• Purse has goal set
• Purse has AMM rule
• Goal has already been met prior to transfer to another purse
Purse balance < Goal Amount after transferAMM rule is reactivated. AMM resumes.
• Account has purse
• Purse has goal set
• Purse has AMM rule
• AMM rule contains maxCapAmount
• User wants to actively pause or delete rule
Purse Balance > Goal amount after transferAMM occurs as normal.

Checking Next Execution Date of the AMM Rule

Returned:When:Conditions:
nextExecutionDateResult has active / expiring ruleGateway call GetRulesByTargetAccountId "programs/ {programCode}/accounts/{accountIdentifier}/ammRuleByTar getAccount/{ruleStatus}"
transferTypeResponse includes recordsGateway call GetRulesByTargetAccountId "programs/{programCode} /accounts/ {accountIdentifier}/ammRule/{ruleStatus}" or Gateway call GetRulesByTargetAccountId "programs/{programCode}/accounts/{accountIdentifier} /ammRuleByTargetAccount/ {ruleStatus}

Error Codes

HTTP CodeCodesubCodeDescription
350201
5030
4000
2000
3800
3801
3802
3501101Invalid RuleId.
1011102EndDate cannot be in the past.
1011104Either RuleStatus or EndDate must be provided.
1105At least one of the following needs to be set: • TargetPurseID • TargetAccountID
1106TargetAccountID is required for transferType SccPayment.
1107PaymentAmountOption and SourceOption should be null when transferType is not sccpayment.
4003501108FixedTransferAmount should be greater than 0 when: • paymentAmountOption is not provided, or • paymentAmountOption is provided with otherAmount
4003501109FixedTransferAmount should be 0 when paymentAmountOption is not otherAmount.
1110HandleType is required for specific cases.
1111Spend Category is required for specific cases.
1112Invalid Spend Category.
1113TargetAccountID is required for specific cases.
1114TargetHandle is required for specific cases.
1115One of the following needs to be set: • FixedTransferAmount • TransferPercentage • IsRoundUpTransfer
1117If rule is DateDriven, scheduleday must be greater than 0.
1118If rule is DateDriven, frequency cannot be RealTime.
1119If rule frequency is weekly or every2weeks, scheduleday must be 1-7.
1120If rule frequency is monthly, scheduleday must be 1-31.
1121Invalid EndDate.
1122A valid StartDate is required.
1011124EndDate cannot be modified for one-time Amm Rule.

What’s Next

Please refer to the AMM Rule API References for technical details.