---
title: "Update a transaction rule"
method: PATCH
path: "/transactionRules/{transactionRuleId}"
tags: ["Transaction rules"]
---

# Update a transaction rule

`PATCH /transactionRules/{transactionRuleId}`

Updates a transaction rule. 

* To update only the status of a transaction rule, send only the `status` parameter. All other parameters not provided in the request are left unchanged.

* When updating any other parameter, you need to send all existing resource parameters. If you omit a parameter in the request, that parameter is removed from the resource.

## Path parameters

- `transactionRuleId` string, required

## Request body

- TransactionRuleInfo
  - `amount` Amount
    - `currency` string, required — The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes#currency-codes) of the amount.
    - `value` integer, required — The numeric value of the amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes#minor-units).
  - `balancePlatformId` string — The unique identifier of the [balance platform](https://docs.adyen.com/api-explorer/#/balanceplatform/v1/get/balancePlatforms/{id}__queryParam_id) to which the rule applies.
  - `countries` string[] — List of countries to which the rule applies. For example: **["NL","US"]**.
  - `description` string, required — Your description for the transaction rule.
  - `endDate` string — The date when the rule will stop being evaluated, in ISO 8601 extended offset date-time format. For example, **2025-03-19T10:15:30+01:00**. If not provided, the rule will be evaluated until the rule status is set to **inactive**.
  - `entryModes` string[] — List of point-of-sale entry modes to which the rule applies. Possible values: **manual**, **chip**, **magstripe**, **contactless**, **cof**, **token**, **server**, **barcode**, **ocr**.
  - `interval` TransactionRuleInterval, required
    - `type` 'daily' | 'lifetime' | 'monthly' | 'perTransaction' | 'weekly', required — The [type of interval](https://docs.adyen.com/issuing/transaction-rules#time-intervals) during which the rule conditions and limits apply, and how often counters are reset. Possible values: * **perTransaction**: conditions are evaluated and the counters are reset for every transaction. * **daily**: the counters are reset daily at 00:00:00 UTC. * **weekly**: the counters are reset every Monday at 00:00:00 UTC. * **monthly**: the counters reset every first day of the month at 00:00:00 UTC. * **lifetime**: conditions are applied to the lifetime of the payment instrument.
  - `maxTransactions` integer — The maximum number of transactions that a payment instrument can be used for in the period specified in the `interval.type`.
  - `mccs` string[] — List of Merchant Category Codes (MCCs) to which the rule applies.
  - `paymentInstrumentGroupId` string — The unique identifier of the [payment instrument group](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/paymentInstrumentGroups__resParam_id) to which the rule applies.
  - `paymentInstrumentId` string — The unique identifier of the [payment instrument](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/paymentInstruments__resParam_id) to which the rule applies.
  - `processingTypes` string[] — List of processing types to which the rule applies. Possible values: **atmWithdraw**, **pos**, **ecommerce**, **moto**, **recurring**, **balanceInquiry**.
  - `reference` string, required — Your reference for the transaction rule.
  - `startDate` string — The date when the rule will start to be evaluated, in ISO 8601 extended offset date-time format. For example, **2025-03-19T10:15:30+01:00**. If not provided when creating a transaction rule, the `startDate` is set to the date when the rule status is set to **active**.
  - `status` 'active' | 'inactive' — The status of the transaction rule. If you provide a `startDate` in the request, the rule is automatically created with an **active** status. Possible values: **active**, **inactive**.
  - `type` 'allowList' | 'blockList' | 'maxUsage' | 'velocity', required — Type of conditions provided in the rule. Possible values: * **allowList**: The rule provides categories (such as country and MCC) where payments must be allowed. * **blockList**: The rule provides categories (such as country and MCC) where payments must be blocked. * **maxUsage**: The rule sets limits for the maximum amount or maximum number of transactions for the lifetime of the payment instrument. * **velocity**: The rule sets limits for the maximum amount or maximum number of transactions for a given time interval.

## Response `200`

OK - the request has succeeded.

- TransactionRule
  - `amount` Amount
    - `currency` string, required — The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes#currency-codes) of the amount.
    - `value` integer, required — The numeric value of the amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes#minor-units).
  - `balancePlatformId` string — The unique identifier of the [balance platform](https://docs.adyen.com/api-explorer/#/balanceplatform/v1/get/balancePlatforms/{id}__queryParam_id) to which the rule applies.
  - `countries` string[] — List of countries to which the rule applies. For example: **["NL","US"]**.
  - `description` string, required — Your description for the transaction rule.
  - `endDate` string — The date when the rule will stop being evaluated, in ISO 8601 extended offset date-time format. For example, **2025-03-19T10:15:30+01:00**. If not provided, the rule will be evaluated until the rule status is set to **inactive**.
  - `entryModes` string[] — List of point-of-sale entry modes to which the rule applies. Possible values: **manual**, **chip**, **magstripe**, **contactless**, **cof**, **token**, **server**, **barcode**, **ocr**.
  - `id` string — The unique identifier of the transaction rule.
  - `interval` TransactionRuleInterval, required
    - `type` 'daily' | 'lifetime' | 'monthly' | 'perTransaction' | 'weekly', required — The [type of interval](https://docs.adyen.com/issuing/transaction-rules#time-intervals) during which the rule conditions and limits apply, and how often counters are reset. Possible values: * **perTransaction**: conditions are evaluated and the counters are reset for every transaction. * **daily**: the counters are reset daily at 00:00:00 UTC. * **weekly**: the counters are reset every Monday at 00:00:00 UTC. * **monthly**: the counters reset every first day of the month at 00:00:00 UTC. * **lifetime**: conditions are applied to the lifetime of the payment instrument.
  - `maxTransactions` integer — The maximum number of transactions that a payment instrument can be used for in the period specified in the `interval.type`.
  - `mccs` string[] — List of Merchant Category Codes (MCCs) to which the rule applies.
  - `paymentInstrumentGroupId` string — The unique identifier of the [payment instrument group](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/paymentInstrumentGroups__resParam_id) to which the rule applies.
  - `paymentInstrumentId` string — The unique identifier of the [payment instrument](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/paymentInstruments__resParam_id) to which the rule applies.
  - `processingTypes` string[] — List of processing types to which the rule applies. Possible values: **atmWithdraw**, **pos**, **ecommerce**, **moto**, **recurring**, **balanceInquiry**.
  - `reference` string, required — Your reference for the transaction rule.
  - `startDate` string — The date when the rule will start to be evaluated, in ISO 8601 extended offset date-time format. For example, **2025-03-19T10:15:30+01:00**. If not provided when creating a transaction rule, the `startDate` is set to the date when the rule status is set to **active**.
  - `status` 'active' | 'inactive' — The status of the transaction rule. If you provide a `startDate` in the request, the rule is automatically created with an **active** status. Possible values: **active**, **inactive**.
  - `type` 'allowList' | 'blockList' | 'maxUsage' | 'velocity', required — Type of conditions provided in the rule. Possible values: * **allowList**: The rule provides categories (such as country and MCC) where payments must be allowed. * **blockList**: The rule provides categories (such as country and MCC) where payments must be blocked. * **maxUsage**: The rule sets limits for the maximum amount or maximum number of transactions for the lifetime of the payment instrument. * **velocity**: The rule sets limits for the maximum amount or maximum number of transactions for a given time interval.

## Other responses

- `400` — Bad Request - a problem reading or understanding the request.
- `401` — Unauthorized - authentication required.
- `403` — Forbidden - insufficient permissions to process the request.
- `422` — Unprocessable Entity - a request validation error.
- `500` — Internal Server Error - the server could not process the request.

## Changes

- **2026-07-20** (v1) `c3d956efeb4f` — 10 warning, 1 info
  - removed the optional property `response/paths` from the response with the `400` status
  - removed the optional property `response/paths` from the response with the `401` status
  - removed the optional property `response/paths` from the response with the `403` status
  - removed the optional property `response/paths` from the response with the `422` status
  - …7 more
- **2023-03-02** (v1) `05edbc423e82` — 31 breaking
  - the request's body type changed from no type to `object`
  - the `amount` request property type changed from no type to `object`
  - the `interval` request property type changed from no type to `object`
  - the response's body type changed from no type to `object` for status `200`
  - …27 more
- **2022-09-02** (v1) `e48afdf2a901` — 7 breaking, 7 info
  - removed the enum value `purchaseWithCashback` of the request property `processingTypes/items/`
  - removed the enum value `token` of the request property `entryModes/items/`
  - removed the required property `errorType` from the response with the `400` status
  - removed the required property `errorType` from the response with the `401` status
  - …10 more
- …earlier changes not shown

[Full history](https://skmtc.dev/adyen/apis/balanceplatformservice/changes/transactionRules/:transactionRuleId/patch.md)

---

[API](https://skmtc.dev/adyen/apis/balanceplatformservice.md) · [All operations](https://skmtc.dev/adyen/apis/balanceplatformservice/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/adyen/balanceplatformservice/revisions/c3d956efeb4f/schema)
