# Update Dunning Settings

> Update the merchant division's dunning (failed payment recovery) settings. This replaces the full configuration; omitted fields are not merged with the previous settings.

Source: https://help.boltapp.com/api-reference/endpoints/subscriptions/updatedunningsettings

`PUT /v1/subscriptions/dunning_settings`

## OpenAPI definition

This endpoint as it appears in the OpenAPI document, with every schema it references included.

```json
{
  "openapi": "3.2.0",
  "info": {
    "version": "1.0.1",
    "title": "Bolt API Reference",
    "description": "Postman Collection:\n\n[![](https://run.pstmn.io/button.svg)](https://god.gw.postman.com/run-collection/9136127-55d2bde1-a248-473f-95b5-64cfd02fb445?action=collection%2Ffork&collection-url=entityId%3D9136127-55d2bde1-a248-473f-95b5-64cfd02fb445%26entityType%3Dcollection%26workspaceId%3D78beee89-4238-4c5f-bd1f-7e98978744b4#?env%5BBolt%20Sandbox%20Environment%5D=W3sia2V5IjoiYXBpX2Jhc2VfdXJsIiwidmFsdWUiOiJodHRwczovL2FwaS1zYW5kYm94LmJvbHQuY29tIiwidHlwZSI6ImRlZmF1bHQiLCJlbmFibGVkIjp0cnVlfSx7ImtleSI6InRrX2Jhc2UiLCJ2YWx1ZSI6Imh0dHBzOi8vc2FuZGJveC5ib2x0dGsuY29tIiwidHlwZSI6ImRlZmF1bHQiLCJlbmFibGVkIjp0cnVlfSx7ImtleSI6ImFwaV9rZXkiLCJ2YWx1ZSI6IjxyZXBsYWNlIHdpdGggeW91ciBCb2x0IFNhbmRib3ggQVBJIGtleT4iLCJ0eXBlIjoic2VjcmV0IiwiZW5hYmxlZCI6dHJ1ZX0seyJrZXkiOiJwdWJsaXNoYWJsZV9rZXkiLCJ2YWx1ZSI6IjxyZXBsYWNlIHdpdGggeW91ciBCb2x0IFNhbmRib3ggcHVibGlzaGFibGUga2V5PiIsInR5cGUiOiJkZWZhdWx0IiwiZW5hYmxlZCI6dHJ1ZX0seyJrZXkiOiJkaXZpc2lvbl9pZCIsInZhbHVlIjoiPHJlcGxhY2Ugd2l0aCB5b3VyIEJvbHQgU2FuZGJveCBwdWJsaWMgZGl2aXNpb24gSUQ+IiwidHlwZSI6ImRlZmF1bHQiLCJlbmFibGVkIjp0cnVlfV0=)\n\n## About\n A comprehensive Bolt API reference for interacting with Transactions, Orders, Product Catalog, Configuration, Testing, and much more.\n\n Note: You must also reference the [Merchant Callback API](/api-merchant) when building a managed checkout custom cart integration\n"
  },
  "servers": [
    {
      "url": "https://api.boltapp.com",
      "description": "The Production URL (Live Data)."
    },
    {
      "url": "https://api-sandbox.boltapp.com",
      "description": "The Sandbox URL (Test Data)."
    },
    {
      "url": "https://api-staging.boltapp.com",
      "description": "The Staging URL (Staged Data)."
    }
  ],
  "security": [
    {
      "X-API-Key": []
    },
    {
      "OAuth": [
        "bolt.account.manage",
        "bolt.account.view"
      ]
    }
  ],
  "paths": {
    "/v1/subscriptions/dunning_settings": {
      "put": {
        "description": "Update the merchant division's dunning (failed payment recovery) settings. This replaces the full configuration; omitted fields are not merged with the previous settings.",
        "operationId": "updateDunningSettings",
        "parameters": [
          {
            "$ref": "#/components/parameters/x_publishable_key_required"
          },
          {
            "$ref": "#/components/parameters/bolt_connect_seller_id_header"
          },
          {
            "$ref": "#/components/parameters/bolt_connect_seller_id_query"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/subscription_v2_dunning_settings"
              }
            }
          },
          "description": "Dunning Settings",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/subscription_v2_dunning_settings"
                }
              }
            },
            "description": "Success"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errors_bolt_api_response"
                }
              }
            },
            "description": "BAD REQUEST. Request is malformed or fails validation, e.g. `final_action` is not one of `cancel`/`pause`, `retry_schedule_hours` is not strictly increasing, or `reminder_lead_days` has more than 10 entries."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errors_bolt_api_response"
                }
              }
            },
            "description": "UNAUTHORIZED. Missing or invalid X-API-Key or X-Publishable-Key."
          }
        },
        "security": [
          {
            "X-API-Key": []
          }
        ],
        "summary": "Update Dunning Settings",
        "tags": [
          "Subscriptions"
        ]
      }
    }
  },
  "components": {
    "parameters": {
      "x_publishable_key_required": {
        "description": "The publicly viewable identifier used to identify a merchant division. This key is found in the Developer > API section of the Bolt Merchant Dashboard.",
        "in": "header",
        "name": "X-Publishable-Key",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "bolt_connect_seller_id_header": {
        "description": "For Bolt Connect marketplace integrations, the seller's external ID. When provided, the request acts on the seller's division rather than the caller's own division. Ignored if the `seller_id` query parameter is also set.",
        "in": "header",
        "name": "X-Bolt-Connect-Seller-Id",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "bolt_connect_seller_id_query": {
        "description": "For Bolt Connect marketplace integrations, the seller's external ID. When provided, the request acts on the seller's division rather than the caller's own division. Takes precedence over the `X-Bolt-Connect-Seller-Id` header if both are set.",
        "in": "query",
        "name": "seller_id",
        "required": false,
        "schema": {
          "type": "string"
        }
      }
    },
    "schemas": {
      "subscription_v2_dunning_settings": {
        "description": "A merchant division's dunning (failed payment recovery) configuration.",
        "properties": {
          "retry_schedule_hours": {
            "description": "Hour offsets from the initial payment failure at which Bolt retries the payment. Must be 1-10 strictly increasing, positive values, each at most 2160 (90 days).",
            "items": {
              "type": "integer"
            },
            "type": "array",
            "examples": [
              [
                24,
                72,
                168,
                336
              ]
            ]
          },
          "reminder_lead_days": {
            "description": "Days before a subscription's renewal at which Bolt sends the shopper a reminder. Must be 1-10 unique values between 1 and 90.",
            "items": {
              "type": "integer"
            },
            "type": "array",
            "examples": [
              [
                30,
                7,
                3
              ]
            ]
          },
          "final_action": {
            "description": "The action Bolt takes on a subscription once the retry schedule is exhausted without a successful payment.",
            "enum": [
              "cancel",
              "pause"
            ],
            "type": "string",
            "examples": [
              "cancel"
            ]
          },
          "sms_enabled": {
            "description": "Whether Bolt sends SMS reminders and payment-failure notifications to the shopper, in addition to email.",
            "type": "boolean",
            "examples": [
              false
            ]
          }
        },
        "required": [
          "retry_schedule_hours",
          "reminder_lead_days",
          "final_action",
          "sms_enabled"
        ],
        "title": "Dunning Settings",
        "type": "object"
      },
      "errors_bolt_api_response": {
        "properties": {
          "errors": {
            "$ref": "#/components/schemas/errors_bolt_api"
          },
          "result": {
            "$ref": "#/components/schemas/request_result"
          }
        },
        "type": "object"
      },
      "errors_bolt_api": {
        "items": {
          "$ref": "#/components/schemas/error_bolt_api"
        },
        "type": "array"
      },
      "error_bolt_api": {
        "properties": {
          "code": {
            "$ref": "#/components/schemas/code"
          },
          "message": {
            "$ref": "#/components/schemas/message"
          }
        },
        "type": "object",
        "description": "Error object containing custom error information"
      },
      "code": {
        "description": "Custom-defined Bolt error code. This can be used to programmatically react to specific errors.",
        "format": "int64",
        "type": "integer",
        "examples": [
          2001005
        ]
      },
      "message": {
        "description": "Human-readable description of the error for developers. Should not be shown to users and is not localized.",
        "type": "string",
        "examples": [
          "The input is missing a required parameter."
        ]
      },
      "request_result": {
        "description": "Custom-defined Bolt result object.",
        "properties": {
          "success": {
            "$ref": "#/components/schemas/request_failed"
          }
        },
        "type": "object"
      },
      "request_failed": {
        "type": "boolean",
        "description": "Indicates that the request failed. This value is always false.",
        "examples": [
          false
        ]
      }
    },
    "securitySchemes": {
      "OAuth": {
        "description": "Bolt utilizes the OAuth flow that developers can use to attain access to Bolt Account data via APIs.\nFor all APIs that require authorization, please provide your `access_token` returned from `/v1/oauth/token` via the basic auth bearer header `Authorization: bearer ${TOKEN}`.\n[Read more about the OAuth token endpoint.](/api-bolt/#tag/OAuth)\n",
        "flows": {
          "authorizationCode": {
            "authorizationUrl": "https://api.boltapp.com/v1/oauth/authorize",
            "refreshUrl": "https://api.boltapp.com/v1/oauth/token",
            "scopes": {
              "bolt.account.manage": "This scope grants permissions to perform read/edit/delete actions on Bolt Account data",
              "bolt.account.view": "This scope grants permissions to perform read only actions on Bolt Account data",
              "openid": "This scope grants permissions that enable Bolt SSO by granting an id token JWT that stores account data. Not used in v1/account endpoints"
            },
            "tokenUrl": "https://api.boltapp.com/v1/oauth/token"
          }
        },
        "type": "oauth2"
      },
      "X-API-Key": {
        "description": "Admins and Developers can obtain their Bolt API key from the Bolt Merchant Dashboard.",
        "in": "header",
        "name": "X-API-Key",
        "type": "apiKey"
      }
    }
  }
}
```
