> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.rushorder.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.rushorder.com/_mcp/server.

# Update a webhook subscription

PATCH https://dream.rushorder.com/api/webhooks/subscriptions/{id}
Content-Type: application/json

Webhooks are only available for certain clients. Contact your Rush Order representative to have them enabled. Creating or changing subscriptions with an API key must also be enabled for your account; otherwise this returns 403.

Changes only the fields you send; anything omitted or null is left as it is. To pause a subscription, send `{"Active": false}`.

Reference: https://docs.rushorder.com/api-reference/webhooks/update

## Authentication

- `Authorization` header (basic auth, required) — Basic authentication of the form `Basic <base64(username:password)>`.

## Request

### Path parameters

- `id` (integer, required) — The subscription ID.

### Headers

- `RushOrderMomCode` (string, required) — All requests require the header to contain RushOrderMomCode, a 3 character string that represents the client internally in Rush Order. This should be given to you by Rush Order.

### Body (application/json)

This endpoint expects an object.

- `Name` (string, optional) — Must be unique among your subscriptions.
- `TargetUrl` (string, optional) — Where deliveries are sent. Must use `https` on port 443, have a public host name that resolves only to public IP addresses, contain no user name or password, and be at most 2048 characters.
- `Description` (string, optional) — Send an empty string to clear it.
- `Active` (boolean, optional) — Set to false to pause the subscription.
- `EventTypes` (list of string, optional) — Replaces the current event types. Can't be empty. See [`GET /webhooks/event-types`](https://docs.rushorder.com/api-reference/webhooks/list-event-types) for the list.

## Response

### 200

Success

- `Id` (integer, optional)
- `Name` (string, optional)
- `TargetUrl` (string, optional)
- `Description` (string, optional, nullable)
- `Active` (boolean, optional) — Inactive subscriptions receive no deliveries.
- `CreatedAt` (datetime, optional)
- `ModifiedAt` (datetime, optional, nullable)
- `EventTypes` (list of string, optional)
- `PreviousSecretExpiresAt` (datetime, optional, nullable) — Set after a secret rotation while the previous secret is still signing deliveries.

## Errors

### 400 Bad Request Error

The request is not valid: a missing name or event type, an unknown event type, a duplicate name, or a destination URL that breaks the rules above.

- `any`

### 403 Forbidden Error

Webhooks are not enabled for this client, or managing them with this API key is not enabled.

- `any`

### 404 Not Found Error

No subscription with that ID.

- `any`

## Examples

**Request**

```json
{}
```

**Response**

```json
{
  "Id": 12,
  "Name": "Production",
  "TargetUrl": "https://example.com/webhooks/rush-order",
  "Description": "string",
  "Active": true,
  "CreatedAt": "2024-01-15T09:30:00Z",
  "ModifiedAt": "2024-01-15T09:30:00Z",
  "EventTypes": [
    "order.shipped"
  ],
  "PreviousSecretExpiresAt": "2024-01-15T09:30:00Z"
}
```

**SDK Code**

```python
import requests

url = "https://dream.rushorder.com/api/webhooks/subscriptions/12"

payload = {}
headers = {
    "RushOrderMomCode": "ABC"
    "Content-Type": "application/json"
}

response = requests.patch(url, json=payload, headers=headers, auth=("<username>", "<password>"))

print(response.json())
```

```javascript
const url = 'https://dream.rushorder.com/api/webhooks/subscriptions/12';
const credentials = btoa("<username>:<password>");

const options = {
  method: 'PATCH',
  headers: {
    RushOrderMomCode: 'ABC',
    Authorization: `Basic ${credentials}`,
    'Content-Type': 'application/json'
  },
  body: '{}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://dream.rushorder.com/api/webhooks/subscriptions/12"

	payload := strings.NewReader("{}")

	req, _ := http.NewRequest("PATCH", url, payload)

	req.Header.Add("RushOrderMomCode", "ABC")
	req.SetBasicAuth("<username>", "<password>")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://dream.rushorder.com/api/webhooks/subscriptions/12")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Patch.new(url)
request["RushOrderMomCode"] = 'ABC'
request.basic_auth("<username>", "<password>")
request["Content-Type"] = 'application/json'
request.body = "{}"

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.patch("https://dream.rushorder.com/api/webhooks/subscriptions/12")
  .header("RushOrderMomCode", "ABC")
  .basicAuth("<username>", "<password>")
  .header("Content-Type", "application/json")
  .body("{}")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('PATCH', 'https://dream.rushorder.com/api/webhooks/subscriptions/12', [
  'body' => '{}',
  'headers' => [
    'Content-Type' => 'application/json',
    'RushOrderMomCode' => 'ABC',
  ],
    'auth' => ['<username>', '<password>'],
]);

echo $response->getBody();
```

```csharp
using RestSharp;
using RestSharp.Authenticators;

var client = new RestClient("https://dream.rushorder.com/api/webhooks/subscriptions/12");
client.Authenticator = new HttpBasicAuthenticator("<username>", "<password>");
var request = new RestRequest(Method.PATCH);
request.AddHeader("RushOrderMomCode", "ABC");

request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let credentials = Data("<username>:<password>".utf8).base64EncodedString()

let headers = [
  "RushOrderMomCode": "ABC",
  "Authorization": "Basic \(credentials)",
  "Content-Type": "application/json"
]
let parameters = [] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://dream.rushorder.com/api/webhooks/subscriptions/12")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "PATCH"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```