# Update dormancy configuration Updates a dormancy configuration for a division or program. This endpoint generates a [Dormancy configuration updated](https://developers.pismo.io/events/docs/corporate-dormancy-config-change-1) event. See [Data and reporting](doc:data-reporting-overview) for more information about events and setting up event notifications. # OpenAPI definition ```json { "openapi": "3.0.0", "info": { "title": "Banking - Transaction banking", "version": "0.9.0", "description": "Transaction banking API", "contact": { "name": "API Support", "url": "https://developers.pismo.io/support/" }, "license": { "name": "Copyright Pismo" } }, "servers": [ { "url": "https://sandbox.pismolabs.io", "description": "Sandbox API server for testing" } ], "security": [ { "BearerAuth": [] } ], "tags": [ { "name": "Dormancy", "description": "Dormancy endpoints" } ], "components": { "parameters": { "DormancyConfigIdPath": { "name": "dormancyConfigId", "in": "path", "description": "Dormancy configuration ID. This is the ID that the Pismo platform generates when you use [Create dormancy configuration](https://developers.pismo.io/pismo-docs/reference/post-dormancy-config-v2) to set up dormancy.", "schema": { "type": "string" }, "required": true, "example": "1234" } }, "schemas": { "AccountStatus": { "type": "string", "minLength": 1, "maxLength": 9, "description": "Account status
\n`minLength: 1`\n`maxLength: 9`\n", "example": "DORMANT" }, "CurrentReasonExternalID": { "type": "string", "description": "The custom reason ID related to the `current_reason_id` specified in the dormancy restrictions.\nThe dormancy configuration checks to see whether the current `reason_external_id` matches the one in the configuration. If yes, the new `reason_external_id` is the `new_reason_external_id`.\n", "example": "CREDIT_ONLY" }, "DenyForcedTransactionReactivation": { "type": "boolean", "description": "Whether an account under that dormancy configuration should be reactivated when a forced transaction is made to that account (`true`) or not (`false`).", "example": true, "default": false }, "DormancyCheckTime": { "type": "string", "format": "time", "description": "Dormancy check time
\nNote: The timezone is inherited from the customer's divisions or programs.\n", "pattern": "^(?:([01]?\\d|2[0-3]):([0-5]?\\d):)?([0-5]?\\d)$", "example": "09:00:00", "maxLength": 8 }, "DormancyExceptionField": { "type": "string", "minLength": 1, "maxLength": 100, "description": "Specifies which transaction attribute is checked in order to determine whether a transaction is exempt from reactivating a dormant account.", "example": "soft_descriptor" }, "DormancyExceptionValues": { "type": "array", "description": "Lists the values that, when present in the specified field, prevent the account from being reactivated by that transaction.", "maxItems": 30, "items": { "$ref": "#/components/schemas/ValidExceptionValue" } }, "DormancyRestrictionsv2": { "type": "array", "description": "Objects that contain the information related to account dormancy restrictions.\n", "items": { "type": "object", "properties": { "current_reason_external_id": { "$ref": "#/components/schemas/CurrentReasonExternalID" }, "new_reason_external_id": { "$ref": "#/components/schemas/NewReasonExternalID" } } } }, "DormantProcessingCodes": { "type": "array", "description": "List of processing codes that prevent account reactivation. If there are financial transactions in an account that were made with any of these codes, the account cannot be reactivated.", "items": { "$ref": "#/components/schemas/ValidProcessingCode" } }, "ErrorCode": { "description": "Error code\n`minLength: 1`\n`maxLength: 12`\n", "type": "string", "minLength": 1, "maxLength": 12, "example": "WPMT0017" }, "ErrorMessage": { "description": "Error message\n`minLength: 1`\n`maxLength: 1000`\n", "type": "string", "minLength": 1, "maxLength": 1000, "example": "Invalid JSON payload received: Error unmarshalling request" }, "ErrorResponse": { "type": "object", "properties": { "code": { "$ref": "#/components/schemas/ErrorCode" }, "message": { "$ref": "#/components/schemas/ErrorMessage" } } }, "InactivityDays": { "type": "integer", "format": "int32", "description": "Days the account must be inactive before it is transitioned to the specified status.", "example": 19 }, "NewReasonExternalID": { "type": "string", "description": "The custom reason ID related to the `new_reason_id` specified in the dormancy restrictions.\n", "example": "DEBIT_ONLY" }, "ReactivationWithLastRestriction": { "type": "boolean", "description": "Whether the account should be reactivated to `normal` with its last manual change restriction (`true`) or not (`false`).", "example": false }, "ReactivationExceptionsConfig": { "type": "object", "description": "Specifies configuration rules that allow certain transactions to bypass dormancy reactivation based on defined transaction attributes and their corresponding values.", "properties": { "field": { "$ref": "#/components/schemas/DormancyExceptionField" }, "values": { "$ref": "#/components/schemas/DormancyExceptionValues" } }, "required": [ "field", "values" ] }, "StatusReasonExternalID": { "type": "string", "description": "Custom reason ID for the specified status. This field is unique within the organization and is related to the `reason_id` field.", "example": "CREDIT ONLY" }, "UpdateDormancyConfigRequestv2": { "description": "Update dormancy-config payload request object", "type": "object", "properties": { "check_time": { "$ref": "#/components/schemas/DormancyCheckTime" }, "statuses": { "type": "array", "description": "List of objects containing information related to an organization's valid account status", "maxItems": 3, "items": { "type": "object", "properties": { "status": { "$ref": "#/components/schemas/AccountStatus" }, "days": { "$ref": "#/components/schemas/InactivityDays" }, "reason_external_id": { "$ref": "#/components/schemas/StatusReasonExternalID" }, "reactivation_with_last_restriction": { "$ref": "#/components/schemas/ReactivationWithLastRestriction" }, "restrictions": { "$ref": "#/components/schemas/DormancyRestrictionsv2" } }, "required": [ "status", "days", "reason_external_id" ] } }, "dormant_processing_codes": { "$ref": "#/components/schemas/DormantProcessingCodes" }, "deny_forced_transaction_reactivation": { "$ref": "#/components/schemas/DenyForcedTransactionReactivation" }, "reactivation_exceptions_config": { "$ref": "#/components/schemas/ReactivationExceptionsConfig" } } }, "ValidExceptionValue": { "type": "string", "description": "Transaction attribute values that exempt the transaction from reactivating a dormant account", "minLength": 1, "maxLength": 100, "example": "001" }, "ValidProcessingCode": { "type": "string", "description": "Valid processing code used in transactions", "minLength": 1, "maxLength": 6, "example": "220040" } }, "responses": { "204NoContent": { "description": "No Content" }, "401Unauthorized": { "description": "Access token is missing or invalid" }, "403Forbidden": { "description": "The request has been lost" }, "500InternalServer": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" }, "examples": { "Generic internal error": { "value": { "code": "ECMN9999", "message": "Internal error" } } } } } } }, "securitySchemes": { "BearerAuth": { "type": "http", "scheme": "bearer", "bearerFormat": "JWT" } } }, "paths": { "/corporate/v2/dormancy-config/{dormancyConfigId}": { "patch": { "summary": "Update dormancy configuration", "description": "Updates a dormancy configuration for a division or program.\n\nThis endpoint generates a [Dormancy configuration updated](https://developers.pismo.io/events/docs/corporate-dormancy-config-change-1) event.\nSee [Data and reporting](https://developers.pismo.io/pismo-docs/docs/data-reporting-overview) for more information about events and setting up event notifications.\n", "operationId": "patch-dormancy-config-v2", "parameters": [ { "$ref": "#/components/parameters/DormancyConfigIdPath" } ], "tags": [ "Dormancy" ], "requestBody": { "description": "Dormancy configuration request body", "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateDormancyConfigRequestv2" }, "examples": { "New dormancy-config": { "value": { "check_time": "22:00:01", "statuses": [ { "status": "INACTIVE", "days": 60, "reason_id": 3, "reason_external_id": "03", "restrictions": [ { "current_reason_id": 13 }, { "new_reason_id": 16 } ], "reactivation_with_last_restriction": true }, { "status": "UNCLAIMED", "days": 120, "reason_id": 2, "reason_external_id": "02", "reactivation_with_last_restriction": false }, { "status": "DORMANT", "days": 180, "reason_id": 1, "reason_external_id": "01", "reactivation_with_last_restriction": false } ], "dormant_processing_codes": [ "100000", "100001" ], "deny_forced_transaction_reactivation": true, "reactivation_exceptions_config": { "field": "soft_descriptor", "values": [ "001", "002", "003" ] } } } } } } }, "responses": { "204": { "$ref": "#/components/responses/204NoContent" }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" }, "examples": { "Invalid JSON payload": { "value": { "code": "WDOR0001", "message": "Invalid JSON payload received: Error unmarshalling request" } }, "check_time required": { "value": { "code": "WDOR0002", "message": "check_time is a required field" } }, "check_time invalid format": { "value": { "code": "WDOR0002", "message": "check_time has invalid format" } }, "statuses.status must be unique": { "value": { "code": "WDOR0002", "message": "statuses.status must be unique in the statuses list" } }, "statuses.days must be unique": { "value": { "code": "WDOR0002", "message": "statuses.days must be unique in the statuses list" } }, "statuses.days must be greater than 0": { "value": { "code": "WDOR0002", "message": "statuses.days must be greater than 0" } }, "statuses should have at least 1 item": { "value": { "code": "WDOR0002", "message": "statuses should have at least 1 item" } }, "dormant_processing_codes[i] must be at least 1 character in length": { "value": { "code": "WDOR0002", "message": "dormant_processing_codes[i] must be at least 1 character in length" } }, "dormant_processing_codes[i] must be a maximum of 6 characters in length": { "value": { "code": "WDOR0002", "message": "dormant_processing_codes[i] must be a maximum of 6 characters in length" } }, "dormant_processing_codes must contain only unique values": { "value": { "code": "WDOR0002", "message": "dormant_processing_codes must contain only unique values" } }, "Invalid Restrictions.current_reason_external_id field": { "value": { "code": "WDOR0010", "message": "Invalid current_reason_external_id, the current_reason_external_id you entered does not exist." } }, "Invalid Restrictions.new_reason_external_id field": { "value": { "code": "WDOR0011", "message": "Invalid new_reason_external_d, the new_reason_external_id you entered does not exist." } }, "statuses.status invalid status": { "value": { "code": "WDOR0005", "message": "Invalid status {status}" } }, "statuses.reason_external_id invalid reason": { "value": { "code": "WDOR0006", "message": "Invalid reason_external_id {reason_id}" } }, "Invalid dormant processing code": { "value": { "code": "WDOR0009", "message": "Invalid dormant processing code [{dormant_processing_code}]" } }, "Invalid timezone origin": { "value": { "code": "WDOR0002", "message": "check_timezone_origin must be one of [DIVISION PROGRAM]" } }, "Invalid statuses.days": { "value": { "code": "WDOR0002", "message": "statuses.days must be less than or equal to 2147483647" } }, "Invalid restrictions.current_reason_external_id": { "value": { "code": "WDOR0002", "message": "statuses.restrictions.current_reason_external_id must be unique in the restrictions list" } }, "reactivation_exceptions_config.field must be soft_descriptor or metadata.*": { "value": { "code": "WDOR0002", "message": "reactivation_exceptions_config.field must be soft_descriptor or metadata.*" } } } } } }, "401": { "$ref": "#/components/responses/401Unauthorized" }, "403": { "$ref": "#/components/responses/403Forbidden" }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" }, "examples": { "DormancyConfig not found": { "value": { "code": "WDOR0007", "message": "Dormancy configuration with ID {dormancyConfigId} not found" } } } } } }, "500": { "$ref": "#/components/responses/500InternalServer" } } } } } } ```