mirror of
https://gh.wpcy.net/https://github.com/woocommerce/woocommerce-rest-api-docs.git
synced 2026-04-25 04:52:16 +08:00
1077 lines
42 KiB
Markdown
1077 lines
42 KiB
Markdown
# Webhooks #
|
|
|
|
The webhooks API allows you to create, view, update, and delete individual, or a batch, of webhooks.
|
|
|
|
Webhooks can be managed via the WooCommerce settings screen or by using the REST API endpoints. The `WC_Webhook` class manages all data storage and retrieval of the webhook custom post type, as well as enqueuing webhook actions and processing/delivering/logging webhooks. On `woocommerce_init`, active webhooks are loaded.
|
|
|
|
Each webhook has:
|
|
|
|
* `status`: active (delivers payload), paused (delivery paused by admin), disabled (delivery paused by failure).
|
|
* `topic`: determines which resource events the webhook is triggered for.
|
|
* `delivery URL`: URL where the payload is delivered, must be HTTP or HTTPS.
|
|
* `secret`: an optional secret key that is used to generate a HMAC-SHA256 hash of the request body so the receiver can verify authenticity of the webhook.
|
|
* `hooks`: an array of hook names that are added and bound to the webhook for processing.
|
|
|
|
### Topics ###
|
|
|
|
The topic is a combination resource (e.g. order) and event (e.g. created) and maps to one or more hook names (e.g. `woocommerce_checkout_order_processed`). Webhooks can be created using the topic name and the appropriate hooks are automatically added.
|
|
|
|
Core topics are:
|
|
|
|
* Coupons: `coupon.created`, `coupon.updated` and `coupon.deleted`.
|
|
* Customers: `customer.created`, `customer.updated` and `customer.deleted`.
|
|
* Orders: `order.created`, `order.updated` and `order.deleted`.
|
|
* Products: `product.created`, `product.updated` and `product.deleted`.
|
|
|
|
Custom topics can also be used which map to a single hook name, for example you could add a webhook with topic `action.woocommerce_add_to_cart` that is triggered on that event. Custom topics pass the first hook argument to the payload, so in this example the `cart_item_key` would be included in the payload.
|
|
|
|
### Delivery/payload ###
|
|
|
|
Delivery is performed using `wp_remote_post()` (HTTP POST) and processed in the background by default using wp-cron. A few custom headers are added to the request to help the receiver process the webhook:
|
|
|
|
* `X-WC-Webhook-Source`: `http://example.com/`.
|
|
* `X-WC-Webhook-Topic` - e.g. `order.updated`.
|
|
* `X-WC-Webhook-Resource` - e.g. `order`.
|
|
* `X-WC-Webhook-Event` - e.g. `updated`.
|
|
* `X-WC-Webhook-Signature` - a base64 encoded HMAC-SHA256 hash of the payload.
|
|
* `X-WC-Webhook-ID` - webhook's post ID.
|
|
* `X-WC-Webhook-Delivery-ID` - delivery log ID (a comment).
|
|
|
|
The payload is JSON encoded and for API resources (coupons, customers, orders, products), the response is exactly the same as if requested via the REST API.
|
|
|
|
### Logging ###
|
|
|
|
Requests/responses are logged as comments on the webhook custom post type. Each delivery log includes:
|
|
|
|
* Request duration.
|
|
* Request URL, method, headers, and body.
|
|
* Response Code, message, headers, and body.
|
|
|
|
Only the 25 most recent delivery logs are kept in order to reduce comment table bloat.
|
|
|
|
After 5 consecutive failed deliveries (as defined by a non HTTP 2xx response code), the webhook is disabled and must be edited via the REST API to re-enable.
|
|
|
|
Delivery logs can be fetched through the REST API endpoint or in code using `WC_Webhook::get_delivery_logs()`.
|
|
|
|
### Visual interface ###
|
|
|
|
You can find the Webhooks interface going to "WooCommerce" > "Settings" > "API" > "Webhooks", see our [Visual Webhooks docs](https://docs.woocommerce.com/document/webhooks/) for more details.
|
|
|
|
## Webhook properties ##
|
|
|
|
| Attribute | Type | Description |
|
|
| ------------------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
| `id` | integer | Unique identifier for the resource. <i class="label label-info">read-only</i> |
|
|
| `name` | string | A friendly name for the webhook. |
|
|
| `status` | string | Webhook status. Options: `active`, `paused` and `disabled`. Default is `active`. |
|
|
| `topic` | string | Webhook topic. <i class="label label-info">mandatory</i> |
|
|
| `resource` | string | Webhook resource. <i class="label label-info">read-only</i> |
|
|
| `event` | string | Webhook event. <i class="label label-info">read-only</i> |
|
|
| `hooks` | array | WooCommerce action names associated with the webhook. <i class="label label-info">read-only</i> |
|
|
| `delivery_url` | string | The URL where the webhook payload is delivered. <i class="label label-info">read-only</i> <i class="label label-info">mandatory</i> |
|
|
| `secret` | string | Secret key used to generate a hash of the delivered webhook and provided in the request headers. This will default is a MD5 hash from the current user's ID|username if not provided. <i class="label label-info">write-only</i> <i class="label label-info">mandatory</i> |
|
|
| `date_created` | date-time | The date the webhook was created, in the site's timezone. <i class="label label-info">read-only</i> |
|
|
| `date_created_gmt` | date-time | The date the webhook was created, as GMT. <i class="label label-info">read-only</i> |
|
|
| `date_modified` | date-time | The date the webhook was last modified, in the site's timezone. <i class="label label-info">read-only</i> |
|
|
| `date_modified_gmt` | date-time | The date the webhook was last modified, as GMT. <i class="label label-info">read-only</i> |
|
|
|
|
### Webhook delivery properties ###
|
|
|
|
| Attribute | Type | Description |
|
|
| ------------------ | --------- | --------------------------------------------------------------------------------------------------------------------------------- |
|
|
| `id` | integer | Unique identifier for the resource. <i class="label label-info">read-only</i> |
|
|
| `duration` | string | The delivery duration, in seconds. <i class="label label-info">read-only</i> |
|
|
| `summary` | string | A friendly summary of the response including the HTTP response code, message, and body. <i class="label label-info">read-only</i> |
|
|
| `request_url` | string | The URL where the webhook was delivered. <i class="label label-info">read-only</i> |
|
|
| `request_headers` | array | Request headers. <i class="label label-info">read-only</i> |
|
|
| `request_body` | string | Request body. <i class="label label-info">read-only</i> |
|
|
| `response_code` | string | The HTTP response code from the receiving server. <i class="label label-info">read-only</i> |
|
|
| `response_message` | string | The HTTP response message from the receiving server. <i class="label label-info">read-only</i> |
|
|
| `response_headers` | array | Array of the response headers from the receiving server. <i class="label label-info">read-only</i> |
|
|
| `response_body` | string | The response body from the receiving server. <i class="label label-info">read-only</i> |
|
|
| `date_created` | date-time | The date the webhook delivery was logged, in the site's timezone. <i class="label label-info">read-only</i> |
|
|
| `date_created_gmt` | date-time | The date the webhook delivery was logged, GMT. <i class="label label-info">read-only</i> |
|
|
|
|
#### Request header properties ####
|
|
|
|
| Attribute | Type | Description |
|
|
|----------------------------|---------|--------------------------------------------------------------------------------------------------------------------------------------|
|
|
| `User-Agent` | string | The request user agent, default is "WooCommerce/{version} Hookshot (WordPress/{version})". <i class="label label-info">read-only</i> |
|
|
| `Content-Type` | string | The request content-type, default is "application/json". <i class="label label-info">read-only</i> |
|
|
| `X-WC-Webhook-Source` | string | The webhook source. <i class="label label-info">read-only</i> |
|
|
| `X-WC-Webhook-Topic` | string | The webhook topic. <i class="label label-info">read-only</i> |
|
|
| `X-WC-Webhook-Resource` | string | The webhook resource. <i class="label label-info">read-only</i> |
|
|
| `X-WC-Webhook-Event` | string | The webhook event. <i class="label label-info">read-only</i> |
|
|
| `X-WC-Webhook-Signature` | string | A base64 encoded HMAC-SHA256 hash of the payload. <i class="label label-info">read-only</i> |
|
|
| `X-WC-Webhook-ID` | integer | The webhook's ID. <i class="label label-info">read-only</i> |
|
|
| `X-WC-Webhook-Delivery-ID` | integer | The delivery ID. <i class="label label-info">read-only</i> |
|
|
|
|
## Create a webhook ##
|
|
|
|
This API helps you to create a new webhook.
|
|
|
|
### HTTP request ###
|
|
|
|
<div class="api-endpoint">
|
|
<div class="endpoint-data">
|
|
<i class="label label-post">POST</i>
|
|
<h6>/wp-json/wc/v2/webhooks</h6>
|
|
</div>
|
|
</div>
|
|
|
|
```shell
|
|
curl -X POST https://example.com/wp-json/wc/v2/webhooks \
|
|
-u consumer_key:consumer_secret \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"name": "Order updated",
|
|
"topic": "order.updated",
|
|
"delivery_url": "http://requestb.in/1g0sxmo1"
|
|
}'
|
|
```
|
|
|
|
```javascript
|
|
const data = {
|
|
name: "Order updated",
|
|
topic: "order.updated",
|
|
delivery_url: "http://requestb.in/1g0sxmo1"
|
|
};
|
|
|
|
WooCommerce.post("webhooks", data)
|
|
.then((response) => {
|
|
console.log(response.data);
|
|
})
|
|
.catch((error) => {
|
|
console.log(error.response.data);
|
|
});
|
|
```
|
|
|
|
```php
|
|
<?php
|
|
$data = [
|
|
'name' => 'Order updated',
|
|
'topic' => 'order.updated',
|
|
'delivery_url' => 'http://requestb.in/1g0sxmo1'
|
|
];
|
|
|
|
print_r($woocommerce->post('webhooks', $data));
|
|
?>
|
|
```
|
|
|
|
```python
|
|
data = {
|
|
"name": "Order updated",
|
|
"topic": "order.updated",
|
|
"delivery_url": "http://requestb.in/1g0sxmo1"
|
|
}
|
|
|
|
print(wcapi.post("webhooks", data).json())
|
|
```
|
|
|
|
```ruby
|
|
data = {
|
|
name: "Order updated",
|
|
topic: "order.updated",
|
|
delivery_url: "http://requestb.in/1g0sxmo1"
|
|
}
|
|
|
|
woocommerce.post("webhooks", data).parsed_response
|
|
```
|
|
|
|
> JSON response example:
|
|
|
|
```json
|
|
{
|
|
"id": 142,
|
|
"name": "Order updated",
|
|
"status": "active",
|
|
"topic": "order.updated",
|
|
"resource": "order",
|
|
"event": "updated",
|
|
"hooks": [
|
|
"woocommerce_process_shop_order_meta",
|
|
"woocommerce_api_edit_order",
|
|
"woocommerce_order_edit_status",
|
|
"woocommerce_order_status_changed"
|
|
],
|
|
"delivery_url": "http://requestb.in/1g0sxmo1",
|
|
"date_created": "2016-05-15T23:17:52",
|
|
"date_created_gmt": "2016-05-15T20:17:52",
|
|
"date_modified": "2016-05-15T23:17:52",
|
|
"date_modified_gmt": "2016-05-15T20:17:52",
|
|
"_links": {
|
|
"self": [
|
|
{
|
|
"href": "https://example.com/wp-json/wc/v2/webhooks/142"
|
|
}
|
|
],
|
|
"collection": [
|
|
{
|
|
"href": "https://example.com/wp-json/wc/v2/webhooks"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
```
|
|
|
|
## Retrieve a webhook ##
|
|
|
|
This API lets you retrieve and view a specific webhook.
|
|
|
|
### HTTP request ###
|
|
|
|
<div class="api-endpoint">
|
|
<div class="endpoint-data">
|
|
<i class="label label-get">GET</i>
|
|
<h6>/wp-json/wc/v2/webhooks/<id></h6>
|
|
</div>
|
|
</div>
|
|
|
|
```shell
|
|
curl https://example.com/wp-json/wc/v2/webhooks/142 \
|
|
-u consumer_key:consumer_secret
|
|
```
|
|
|
|
```javascript
|
|
WooCommerce.get("webhooks/142")
|
|
.then((response) => {
|
|
console.log(response.data);
|
|
})
|
|
.catch((error) => {
|
|
console.log(error.response.data);
|
|
});
|
|
```
|
|
|
|
```php
|
|
<?php print_r($woocommerce->get('webhooks/142')); ?>
|
|
```
|
|
|
|
```python
|
|
print(wcapi.get("webhooks/142").json())
|
|
```
|
|
|
|
```ruby
|
|
woocommerce.get("webhooks/142").parsed_response
|
|
```
|
|
|
|
> JSON response example:
|
|
|
|
```json
|
|
{
|
|
"id": 142,
|
|
"name": "Order updated",
|
|
"status": "active",
|
|
"topic": "order.updated",
|
|
"resource": "order",
|
|
"event": "updated",
|
|
"hooks": [
|
|
"woocommerce_process_shop_order_meta",
|
|
"woocommerce_api_edit_order",
|
|
"woocommerce_order_edit_status",
|
|
"woocommerce_order_status_changed"
|
|
],
|
|
"delivery_url": "http://requestb.in/1g0sxmo1",
|
|
"date_created": "2016-05-15T23:17:52",
|
|
"date_created_gmt": "2016-05-15T20:17:52",
|
|
"date_modified": "2016-05-15T23:17:52",
|
|
"date_modified_gmt": "2016-05-15T20:17:52",
|
|
"_links": {
|
|
"self": [
|
|
{
|
|
"href": "https://example.com/wp-json/wc/v2/webhooks/142"
|
|
}
|
|
],
|
|
"collection": [
|
|
{
|
|
"href": "https://example.com/wp-json/wc/v2/webhooks"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
```
|
|
|
|
## List all webhooks ##
|
|
|
|
This API helps you to view all the webhooks.
|
|
|
|
### HTTP request ###
|
|
|
|
<div class="api-endpoint">
|
|
<div class="endpoint-data">
|
|
<i class="label label-get">GET</i>
|
|
<h6>/wp-json/wc/v2/webhooks</h6>
|
|
</div>
|
|
</div>
|
|
|
|
```shell
|
|
curl https://example.com/wp-json/wc/v2/webhooks \
|
|
-u consumer_key:consumer_secret
|
|
```
|
|
|
|
```javascript
|
|
WooCommerce.get("webhooks")
|
|
.then((response) => {
|
|
console.log(response.data);
|
|
})
|
|
.catch((error) => {
|
|
console.log(error.response.data);
|
|
});
|
|
```
|
|
|
|
```php
|
|
<?php print_r($woocommerce->get('webhooks')); ?>
|
|
```
|
|
|
|
```python
|
|
print(wcapi.get("webhooks").json())
|
|
```
|
|
|
|
```ruby
|
|
woocommerce.get("webhooks").parsed_response
|
|
```
|
|
|
|
> JSON response example:
|
|
|
|
```json
|
|
[
|
|
{
|
|
"id": 143,
|
|
"name": "Customer created",
|
|
"status": "active",
|
|
"topic": "customer.created",
|
|
"resource": "customer",
|
|
"event": "created",
|
|
"hooks": [
|
|
"user_register",
|
|
"woocommerce_created_customer",
|
|
"woocommerce_api_create_customer"
|
|
],
|
|
"delivery_url": "http://requestb.in/1g0sxmo1",
|
|
"date_created": "2016-05-15T23:17:52",
|
|
"date_created_gmt": "2016-05-15T20:17:52",
|
|
"date_modified": "2016-05-15T23:17:52",
|
|
"date_modified_gmt": "2016-05-15T20:17:52",
|
|
"_links": {
|
|
"self": [
|
|
{
|
|
"href": "https://example.com/wp-json/wc/v2/webhooks/143"
|
|
}
|
|
],
|
|
"collection": [
|
|
{
|
|
"href": "https://example.com/wp-json/wc/v2/webhooks"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"id": 142,
|
|
"name": "Order updated",
|
|
"status": "active",
|
|
"topic": "order.updated",
|
|
"resource": "order",
|
|
"event": "updated",
|
|
"hooks": [
|
|
"woocommerce_process_shop_order_meta",
|
|
"woocommerce_api_edit_order",
|
|
"woocommerce_order_edit_status",
|
|
"woocommerce_order_status_changed"
|
|
],
|
|
"delivery_url": "http://requestb.in/1g0sxmo1",
|
|
"date_created": "2016-05-15T23:17:52",
|
|
"date_created_gmt": "2016-05-15T20:17:52",
|
|
"date_modified": "2016-05-15T23:17:52",
|
|
"date_modified_gmt": "2016-05-15T20:17:52",
|
|
"_links": {
|
|
"self": [
|
|
{
|
|
"href": "https://example.com/wp-json/wc/v2/webhooks/142"
|
|
}
|
|
],
|
|
"collection": [
|
|
{
|
|
"href": "https://example.com/wp-json/wc/v2/webhooks"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
```
|
|
|
|
#### Available parameters ####
|
|
|
|
| Parameter | Type | Description |
|
|
| --------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------- |
|
|
| `context` | string | Scope under which the request is made; determines fields present in response. Options: `view` and `edit`. Default is `view`. |
|
|
| `page` | integer | Current page of the collection. Default is `1`. |
|
|
| `per_page` | integer | Maximum number of items to be returned in result set. Default is `10`. |
|
|
| `search` | string | Limit results to those matching a string. |
|
|
| `after` | string | Limit response to resources published after a given ISO8601 compliant date. |
|
|
| `before` | string | Limit response to resources published before a given ISO8601 compliant date. |
|
|
| `dates_are_gmt` | boolean | Interpret `after` and `before` as UTC dates when `true`. |
|
|
| `exclude` | array | Ensure result set excludes specific IDs. |
|
|
| `include` | array | Limit result set to specific ids. |
|
|
| `offset` | integer | Offset the result set by a specific number of items. |
|
|
| `order` | string | Order sort attribute ascending or descending. Options: `asc` and `desc`. Default is `desc`. |
|
|
| `orderby` | string | Sort collection by object attribute. Options: `date`, `id`, `include`, `title` and `slug`. Default is `date`. |
|
|
| `status` | string | Limit result set to webhooks assigned a specific status. Options: `all`, `active`, `paused` and `disabled`. Default is `all`. |
|
|
|
|
## Update a webhook ##
|
|
|
|
This API lets you make changes to a webhook.
|
|
|
|
### HTTP request ###
|
|
|
|
<div class="api-endpoint">
|
|
<div class="endpoint-data">
|
|
<i class="label label-put">PUT</i>
|
|
<h6>/wp-json/wc/v2/webhook/<id></h6>
|
|
</div>
|
|
</div>
|
|
|
|
```shell
|
|
curl -X PUT https://example.com/wp-json/wc/v2/webhook/142 \
|
|
-u consumer_key:consumer_secret \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"status": "paused"
|
|
}'
|
|
```
|
|
|
|
```javascript
|
|
const data = {
|
|
status: "paused"
|
|
}
|
|
|
|
WooCommerce.put("webhooks/142", data)
|
|
.then((response) => {
|
|
console.log(response.data);
|
|
})
|
|
.catch((error) => {
|
|
console.log(error.response.data);
|
|
});
|
|
```
|
|
|
|
```php
|
|
<?php
|
|
$data = [
|
|
'status' => 'paused'
|
|
];
|
|
|
|
print_r($woocommerce->put('webhooks/142', $data));
|
|
?>
|
|
```
|
|
|
|
```python
|
|
data = {
|
|
"status": "paused"
|
|
}
|
|
|
|
print(wcapi.put("webhooks/142", data).json())
|
|
```
|
|
|
|
```ruby
|
|
data = {
|
|
status: "paused"
|
|
}
|
|
|
|
woocommerce.put("webhooks/142", data).parsed_response
|
|
```
|
|
|
|
> JSON response example:
|
|
|
|
```json
|
|
{
|
|
"id": 142,
|
|
"name": "Order updated",
|
|
"status": "paused",
|
|
"topic": "order.updated",
|
|
"resource": "order",
|
|
"event": "updated",
|
|
"hooks": [
|
|
"woocommerce_process_shop_order_meta",
|
|
"woocommerce_api_edit_order",
|
|
"woocommerce_order_edit_status",
|
|
"woocommerce_order_status_changed"
|
|
],
|
|
"delivery_url": "http://requestb.in/1g0sxmo1",
|
|
"date_created": "2016-05-15T23:17:52",
|
|
"date_created_gmt": "2016-05-15T20:17:52",
|
|
"date_modified": "2016-05-15T17:30:12",
|
|
"date_modified_gmt": "2016-05-15T20:30:12",
|
|
"_links": {
|
|
"self": [
|
|
{
|
|
"href": "https://example.com/wp-json/wc/v2/webhooks/142"
|
|
}
|
|
],
|
|
"collection": [
|
|
{
|
|
"href": "https://example.com/wp-json/wc/v2/webhooks"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
```
|
|
|
|
## Delete a webhook ##
|
|
|
|
This API helps you delete a webhook.
|
|
|
|
### HTTP request ###
|
|
|
|
<div class="api-endpoint">
|
|
<div class="endpoint-data">
|
|
<i class="label label-delete">DELETE</i>
|
|
<h6>/wp-json/wc/v2/webhooks/<id></h6>
|
|
</div>
|
|
</div>
|
|
|
|
```shell
|
|
curl -X DELETE https://example.com/wp-json/wc/v2/webhooks/142 \
|
|
-u consumer_key:consumer_secret
|
|
```
|
|
|
|
```javascript
|
|
WooCommerce.delete("webhooks/142")
|
|
.then((response) => {
|
|
console.log(response.data);
|
|
})
|
|
.catch((error) => {
|
|
console.log(error.response.data);
|
|
});
|
|
```
|
|
|
|
```php
|
|
<?php print_r($woocommerce->delete('webhooks/142')); ?>
|
|
```
|
|
|
|
```python
|
|
print(wcapi.delete("webhooks/142").json())
|
|
```
|
|
|
|
```ruby
|
|
woocommerce.delete("webhooks/142").parsed_response
|
|
```
|
|
|
|
> JSON response example:
|
|
|
|
```json
|
|
{
|
|
"id": 142,
|
|
"name": "Order updated",
|
|
"status": "paused",
|
|
"topic": "order.updated",
|
|
"resource": "order",
|
|
"event": "updated",
|
|
"hooks": [
|
|
"woocommerce_process_shop_order_meta",
|
|
"woocommerce_api_edit_order",
|
|
"woocommerce_order_edit_status",
|
|
"woocommerce_order_status_changed"
|
|
],
|
|
"delivery_url": "http://requestb.in/1g0sxmo1",
|
|
"date_created": "2016-05-15T23:17:52",
|
|
"date_created_gmt": "2016-05-15T20:17:52",
|
|
"date_modified": "2016-05-15T23:30:12",
|
|
"date_modified_gmt": "2016-05-15T20:30:12",
|
|
"_links": {
|
|
"self": [
|
|
{
|
|
"href": "https://example.com/wp-json/wc/v2/webhooks/142"
|
|
}
|
|
],
|
|
"collection": [
|
|
{
|
|
"href": "https://example.com/wp-json/wc/v2/webhooks"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
```
|
|
|
|
#### Available parameters ####
|
|
|
|
| Parameter | Type | Description |
|
|
|-----------|--------|----------------------------------------------------------------------------|
|
|
| `force` | string | Use `true` whether to permanently delete the webhook, Default is `false`. |
|
|
|
|
## Batch update webhooks ##
|
|
|
|
This API helps you to batch create, update and delete multiple webhooks.
|
|
|
|
<aside class="notice">
|
|
Note: By default it's limited to up to 100 objects to be created, updated or deleted.
|
|
</aside>
|
|
|
|
### HTTP request ###
|
|
|
|
<div class="api-endpoint">
|
|
<div class="endpoint-data">
|
|
<i class="label label-post">POST</i>
|
|
<h6>/wp-json/wc/v2/webhooks/batch</h6>
|
|
</div>
|
|
</div>
|
|
|
|
```shell
|
|
curl -X POST https://example.com//wp-json/wc/v2/webhooks/batch \
|
|
-u consumer_key:consumer_secret \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"create": [
|
|
{
|
|
"name": "Coupon created",
|
|
"topic": "coupon.created",
|
|
"delivery_url": "http://requestb.in/1g0sxmo1"
|
|
},
|
|
{
|
|
"name": "Customer deleted",
|
|
"topic": "customer.deleted",
|
|
"delivery_url": "http://requestb.in/1g0sxmo1"
|
|
}
|
|
],
|
|
"delete": [
|
|
143
|
|
]
|
|
}'
|
|
```
|
|
|
|
```javascript
|
|
const data = {
|
|
create: [
|
|
{
|
|
name: "Round toe",
|
|
topic: "coupon.created",
|
|
delivery_url: "http://requestb.in/1g0sxmo1"
|
|
},
|
|
{
|
|
name: "Customer deleted",
|
|
topic: "customer.deleted",
|
|
delivery_url: "http://requestb.in/1g0sxmo1"
|
|
}
|
|
],
|
|
delete: [
|
|
143
|
|
]
|
|
};
|
|
|
|
WooCommerce.post("webhooks/batch", data)
|
|
.then((response) => {
|
|
console.log(response.data);
|
|
})
|
|
.catch((error) => {
|
|
console.log(error.response.data);
|
|
});
|
|
```
|
|
|
|
```php
|
|
<?php
|
|
$data = [
|
|
'create' => [
|
|
[
|
|
'name' => 'Round toe',
|
|
'topic' => 'coupon.created',
|
|
'delivery_url' => 'http://requestb.in/1g0sxmo1'
|
|
],
|
|
[
|
|
'name' => 'Customer deleted',
|
|
'topic' => 'customer.deleted',
|
|
'delivery_url' => 'http://requestb.in/1g0sxmo1'
|
|
]
|
|
],
|
|
'delete' => [
|
|
143
|
|
]
|
|
];
|
|
|
|
print_r($woocommerce->post('webhooks/batch', $data));
|
|
?>
|
|
```
|
|
|
|
```python
|
|
data = {
|
|
"create": [
|
|
{
|
|
"name": "Round toe",
|
|
"topic": "coupon.created",
|
|
"delivery_url": "http://requestb.in/1g0sxmo1"
|
|
},
|
|
{
|
|
"name": "Customer deleted",
|
|
"topic": "customer.deleted",
|
|
"delivery_url": "http://requestb.in/1g0sxmo1"
|
|
}
|
|
],
|
|
"delete": [
|
|
143
|
|
]
|
|
}
|
|
|
|
print(wcapi.post("webhooks/batch", data).json())
|
|
```
|
|
|
|
```ruby
|
|
data = {
|
|
create: [
|
|
{
|
|
name: "Round toe",
|
|
topic: "coupon.created",
|
|
delivery_url: "http://requestb.in/1g0sxmo1"
|
|
},
|
|
{
|
|
name: "Customer deleted",
|
|
topic: "customer.deleted",
|
|
delivery_url: "http://requestb.in/1g0sxmo1"
|
|
}
|
|
],
|
|
delete: [
|
|
143
|
|
]
|
|
}
|
|
|
|
woocommerce.post("webhooks/batch", data).parsed_response
|
|
```
|
|
|
|
> JSON response example:
|
|
|
|
```json
|
|
{
|
|
"create": [
|
|
{
|
|
"id": 146,
|
|
"name": "Coupon created",
|
|
"status": "active",
|
|
"topic": "coupon.created",
|
|
"resource": "coupon",
|
|
"event": "created",
|
|
"hooks": [
|
|
"woocommerce_process_shop_coupon_meta",
|
|
"woocommerce_api_create_coupon"
|
|
],
|
|
"delivery_url": "http://requestb.in/1g0sxmo1",
|
|
"date_created": "2016-05-25T01:56:26",
|
|
"date_created_gmt": "2016-05-24T22:56:26",
|
|
"date_modified": "2016-05-25T01:56:26",
|
|
"date_modified_gmt": "2016-05-24T22:56:26",
|
|
"_links": {
|
|
"self": [
|
|
{
|
|
"href": "https://example.com/wp-json/wc/v2/webhooks/146"
|
|
}
|
|
],
|
|
"collection": [
|
|
{
|
|
"href": "https://example.com/wp-json/wc/v2/webhooks"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"id": 147,
|
|
"name": "Customer deleted",
|
|
"status": "active",
|
|
"topic": "customer.deleted",
|
|
"resource": "customer",
|
|
"event": "deleted",
|
|
"hooks": [
|
|
"delete_user"
|
|
],
|
|
"delivery_url": "http://requestb.in/1g0sxmo1",
|
|
"date_created": "2016-05-25T01:56:30",
|
|
"date_created_gmt": "2016-05-24T22:56:30",
|
|
"date_modified": "2016-05-25T01:56:30",
|
|
"date_modified_gmt": "2016-05-24T22:56:30",
|
|
"_links": {
|
|
"self": [
|
|
{
|
|
"href": "https://example.com/wp-json/wc/v2/webhooks/147"
|
|
}
|
|
],
|
|
"collection": [
|
|
{
|
|
"href": "https://example.com/wp-json/wc/v2/webhooks"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"delete": [
|
|
{
|
|
"id": 143,
|
|
"name": "Webhook created on May 24, 2016 @ 03:20 AM",
|
|
"status": "active",
|
|
"topic": "customer.created",
|
|
"resource": "customer",
|
|
"event": "created",
|
|
"hooks": [
|
|
"user_register",
|
|
"woocommerce_created_customer",
|
|
"woocommerce_api_create_customer"
|
|
],
|
|
"delivery_url": "http://requestb.in/1g0sxmo1",
|
|
"date_created": "2016-05-15T23:17:52",
|
|
"date_created_gmt": "2016-05-15T20:17:52",
|
|
"date_modified": "2016-05-15T23:17:52",
|
|
"date_modified_gmt": "2016-05-15T20:17:52",
|
|
"_links": {
|
|
"self": [
|
|
{
|
|
"href": "https://example.com/wp-json/wc/v2/webhooks/143"
|
|
}
|
|
],
|
|
"collection": [
|
|
{
|
|
"href": "https://example.com/wp-json/wc/v2/webhooks"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
## Retrieve webhook delivery ##
|
|
|
|
This API lets you retrieve and view a specific webhook delivery.
|
|
|
|
### HTTP request ###
|
|
|
|
<div class="api-endpoint">
|
|
<div class="endpoint-data">
|
|
<i class="label label-get">GET</i>
|
|
<h6>/wp-json/wc/v2/webhooks/<id>/deliveries/<delivery_id></h6>
|
|
</div>
|
|
</div>
|
|
|
|
```shell
|
|
curl https://example.com/wp-json/wc/v2/webhooks/142/deliveries/54 \
|
|
-u consumer_key:consumer_secret
|
|
```
|
|
|
|
```javascript
|
|
WooCommerce.get("webhooks/142/deliveries/54")
|
|
.then((response) => {
|
|
console.log(response.data);
|
|
})
|
|
.catch((error) => {
|
|
console.log(error.response.data);
|
|
});
|
|
```
|
|
|
|
```php
|
|
<?php print_r($woocommerce->get('webhooks/142/deliveries/54')); ?>
|
|
```
|
|
|
|
```python
|
|
print(wcapi.get("webhooks/142/deliveries/54").json())
|
|
```
|
|
|
|
```ruby
|
|
woocommerce.get("webhooks/142/deliveries/54").parsed_response
|
|
```
|
|
|
|
> JSON response example:
|
|
|
|
```json
|
|
{
|
|
"id": 54,
|
|
"duration": "0.40888",
|
|
"summary": "HTTP 200 OK: ok",
|
|
"request_method": "POST",
|
|
"request_url": "http://requestb.in/1g0sxmo1",
|
|
"request_headers": {
|
|
"User-Agent": "WooCommerce/2.6.0 Hookshot (WordPress/4.5.2)",
|
|
"Content-Type": "application/json",
|
|
"X-WC-Webhook-Source": "http://example.com/",
|
|
"X-WC-Webhook-Topic": "order.updated",
|
|
"X-WC-Webhook-Resource": "order",
|
|
"X-WC-Webhook-Event": "updated",
|
|
"X-WC-Webhook-Signature": "J72iu7hL93aUt2dFnyOBoBypwbmP6nt6Aor33nnOHxU=",
|
|
"X-WC-Webhook-ID": 142,
|
|
"X-WC-Webhook-Delivery-ID": 54
|
|
},
|
|
"request_body": "{\"order\":{\"id\":118,\"order_number\":118,\"order_key\":\"wc_order_5728e9a347a2d\",\"created_at\":\"2016-05-03T18:10:00Z\",\"updated_at\":\"2016-05-16T03:30:30Z\",\"completed_at\":\"2016-05-16T03:29:19Z\",\"status\":\"completed\",\"currency\":\"BRL\",\"total\":\"14.00\",\"subtotal\":\"4.00\",\"total_line_items_quantity\":2,\"total_tax\":\"0.00\",\"total_shipping\":\"10.00\",\"cart_tax\":\"0.00\",\"shipping_tax\":\"0.00\",\"total_discount\":\"0.00\",\"shipping_methods\":\"Flat Rate\",\"payment_details\":{\"method_id\":\"bacs\",\"method_title\":\"Direct Bank Transfer\",\"paid\":true},\"billing_address\":{\"first_name\":\"John\",\"last_name\":\"Doe\",\"company\":\"\",\"address_1\":\"969 Market\",\"address_2\":\"\",\"city\":\"San Francisco\",\"state\":\"CA\",\"postcode\":\"94103\",\"country\":\"US\",\"email\":\"john.doe@claudiosmweb.com\",\"phone\":\"(555) 555-5555\"},\"shipping_address\":{\"first_name\":\"John\",\"last_name\":\"Doe\",\"company\":\"\",\"address_1\":\"969 Market\",\"address_2\":\"\",\"city\":\"San Francisco\",\"state\":\"CA\",\"postcode\":\"94103\",\"country\":\"US\"},\"note\":\"\",\"customer_ip\":\"127.0.0.1\",\"customer_user_agent\":\"curl/7.47.0\",\"customer_id\":0,\"view_order_url\":\"http://example.com/my-account/view-order/118\",\"line_items\":[{\"id\":8,\"subtotal\":\"4.00\",\"subtotal_tax\":\"0.00\",\"total\":\"4.00\",\"total_tax\":\"0.00\",\"price\":\"2.00\",\"quantity\":2,\"tax_class\":null,\"name\":\"Woo Single #2\",\"product_id\":99,\"sku\":\"12345\",\"meta\":[]}],\"shipping_lines\":[{\"id\":9,\"method_id\":\"flat_rate\",\"method_title\":\"Flat Rate\",\"total\":\"10.00\"}],\"tax_lines\":[],\"fee_lines\":[],\"coupon_lines\":[],\"is_vat_exempt\":false,\"customer\":{\"id\":0,\"email\":\"john.doe@claudiosmweb.com\",\"first_name\":\"John\",\"last_name\":\"Doe\",\"billing_address\":{\"first_name\":\"John\",\"last_name\":\"Doe\",\"company\":\"\",\"address_1\":\"969 Market\",\"address_2\":\"\",\"city\":\"San Francisco\",\"state\":\"CA\",\"postcode\":\"94103\",\"country\":\"US\",\"email\":\"john.doe@claudiosmweb.com\",\"phone\":\"(555) 555-5555\"},\"shipping_address\":{\"first_name\":\"John\",\"last_name\":\"Doe\",\"company\":\"\",\"address_1\":\"969 Market\",\"address_2\":\"\",\"city\":\"San Francisco\",\"state\":\"CA\",\"postcode\":\"94103\",\"country\":\"US\"}}}}",
|
|
"response_code": "200",
|
|
"response_message": "OK",
|
|
"response_headers": {
|
|
"connection": "close",
|
|
"server": "gunicorn/19.3.0",
|
|
"date": "Tue, 16 May 2016 03:30:31 GMT",
|
|
"content-type": "text/html; charset=utf-8",
|
|
"content-length": "2",
|
|
"sponsored-by": "https://www.runscope.com",
|
|
"via": "1.1 vegur"
|
|
},
|
|
"response_body": "ok",
|
|
"date_created": "2016-05-16T06:30:31",
|
|
"date_created_gmt": "2016-05-16T03:30:31",
|
|
"_links": {
|
|
"self": [
|
|
{
|
|
"href": "https://example.com/wp-json/wc/v2/webhooks/142/deliveries/54"
|
|
}
|
|
],
|
|
"collection": [
|
|
{
|
|
"href": "https://example.com/wp-json/wc/v2/webhooks/142/deliveries"
|
|
}
|
|
],
|
|
"up": [
|
|
{
|
|
"href": "https://example.com/wp-json/wc/v2/webhooks/142"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
```
|
|
|
|
<aside class="notice">
|
|
View the <a href="#webhooks-delivery-properties">Webhooks Delivery properties</a> for more details on this response.
|
|
</aside>
|
|
|
|
## List all webhook deliveries ##
|
|
|
|
This API helps you to view all deliveries from a specific webhooks.
|
|
|
|
### HTTP request ###
|
|
|
|
<div class="api-endpoint">
|
|
<div class="endpoint-data">
|
|
<i class="label label-get">GET</i>
|
|
<h6>/wp-json/wc/v2/webhooks/<id>/deliveries</h6>
|
|
</div>
|
|
</div>
|
|
|
|
```shell
|
|
curl https://example.com/wp-json/wc/v2/webhooks/142/deliveries \
|
|
-u consumer_key:consumer_secret
|
|
```
|
|
|
|
```javascript
|
|
WooCommerce.get("webhooks/142/deliveries")
|
|
.then((response) => {
|
|
console.log(response.data);
|
|
})
|
|
.catch((error) => {
|
|
console.log(error.response.data);
|
|
});
|
|
```
|
|
|
|
```php
|
|
<?php print_r($woocommerce->get('webhooks/142/deliveries')); ?>
|
|
```
|
|
|
|
```python
|
|
print(wcapi.get("webhooks/142/deliveries").json())
|
|
```
|
|
|
|
```ruby
|
|
woocommerce.get("webhooks/142/deliveries").parsed_response
|
|
```
|
|
|
|
> JSON response example:
|
|
|
|
```json
|
|
[
|
|
{
|
|
"id": 54,
|
|
"duration": "0.40888",
|
|
"summary": "HTTP 200 OK: ok",
|
|
"request_method": "POST",
|
|
"request_url": "http://requestb.in/1g0sxmo1",
|
|
"request_headers": {
|
|
"User-Agent": "WooCommerce/2.6.0 Hookshot (WordPress/4.5.2)",
|
|
"Content-Type": "application/json",
|
|
"X-WC-Webhook-Source": "http://example.com/",
|
|
"X-WC-Webhook-Topic": "order.updated",
|
|
"X-WC-Webhook-Resource": "order",
|
|
"X-WC-Webhook-Event": "updated",
|
|
"X-WC-Webhook-Signature": "J72iu7hL93aUt2dFnyOBoBypwbmP6nt6Aor33nnOHxU=",
|
|
"X-WC-Webhook-ID": 142,
|
|
"X-WC-Webhook-Delivery-ID": 54
|
|
},
|
|
"request_body": "{\"order\":{\"id\":118,\"order_number\":118,\"order_key\":\"wc_order_5728e9a347a2d\",\"created_at\":\"2016-05-03T18:10:00Z\",\"updated_at\":\"2016-05-16T03:30:30Z\",\"completed_at\":\"2016-05-16T03:29:19Z\",\"status\":\"completed\",\"currency\":\"BRL\",\"total\":\"14.00\",\"subtotal\":\"4.00\",\"total_line_items_quantity\":2,\"total_tax\":\"0.00\",\"total_shipping\":\"10.00\",\"cart_tax\":\"0.00\",\"shipping_tax\":\"0.00\",\"total_discount\":\"0.00\",\"shipping_methods\":\"Flat Rate\",\"payment_details\":{\"method_id\":\"bacs\",\"method_title\":\"Direct Bank Transfer\",\"paid\":true},\"billing_address\":{\"first_name\":\"John\",\"last_name\":\"Doe\",\"company\":\"\",\"address_1\":\"969 Market\",\"address_2\":\"\",\"city\":\"San Francisco\",\"state\":\"CA\",\"postcode\":\"94103\",\"country\":\"US\",\"email\":\"john.doe@claudiosmweb.com\",\"phone\":\"(555) 555-5555\"},\"shipping_address\":{\"first_name\":\"John\",\"last_name\":\"Doe\",\"company\":\"\",\"address_1\":\"969 Market\",\"address_2\":\"\",\"city\":\"San Francisco\",\"state\":\"CA\",\"postcode\":\"94103\",\"country\":\"US\"},\"note\":\"\",\"customer_ip\":\"127.0.0.1\",\"customer_user_agent\":\"curl/7.47.0\",\"customer_id\":0,\"view_order_url\":\"http://example.com/my-account/view-order/118\",\"line_items\":[{\"id\":8,\"subtotal\":\"4.00\",\"subtotal_tax\":\"0.00\",\"total\":\"4.00\",\"total_tax\":\"0.00\",\"price\":\"2.00\",\"quantity\":2,\"tax_class\":null,\"name\":\"Woo Single #2\",\"product_id\":99,\"sku\":\"12345\",\"meta\":[]}],\"shipping_lines\":[{\"id\":9,\"method_id\":\"flat_rate\",\"method_title\":\"Flat Rate\",\"total\":\"10.00\"}],\"tax_lines\":[],\"fee_lines\":[],\"coupon_lines\":[],\"is_vat_exempt\":false,\"customer\":{\"id\":0,\"email\":\"john.doe@claudiosmweb.com\",\"first_name\":\"John\",\"last_name\":\"Doe\",\"billing_address\":{\"first_name\":\"John\",\"last_name\":\"Doe\",\"company\":\"\",\"address_1\":\"969 Market\",\"address_2\":\"\",\"city\":\"San Francisco\",\"state\":\"CA\",\"postcode\":\"94103\",\"country\":\"US\",\"email\":\"john.doe@claudiosmweb.com\",\"phone\":\"(555) 555-5555\"},\"shipping_address\":{\"first_name\":\"John\",\"last_name\":\"Doe\",\"company\":\"\",\"address_1\":\"969 Market\",\"address_2\":\"\",\"city\":\"San Francisco\",\"state\":\"CA\",\"postcode\":\"94103\",\"country\":\"US\"}}}}",
|
|
"response_code": "200",
|
|
"response_message": "OK",
|
|
"response_headers": {
|
|
"connection": "close",
|
|
"server": "gunicorn/19.3.0",
|
|
"date": "Tue, 16 May 2016 03:30:31 GMT",
|
|
"content-type": "text/html; charset=utf-8",
|
|
"content-length": "2",
|
|
"sponsored-by": "https://www.runscope.com",
|
|
"via": "1.1 vegur"
|
|
},
|
|
"response_body": "ok",
|
|
"date_created": "2016-05-16T06:30:31",
|
|
"date_created_gmt": "2016-05-16T03:30:31",
|
|
"_links": {
|
|
"self": [
|
|
{
|
|
"href": "https://example.com/wp-json/wc/v2/webhooks/142/deliveries/54"
|
|
}
|
|
],
|
|
"collection": [
|
|
{
|
|
"href": "https://example.com/wp-json/wc/v2/webhooks/142/deliveries"
|
|
}
|
|
],
|
|
"up": [
|
|
{
|
|
"href": "https://example.com/wp-json/wc/v2/webhooks/142"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"id": 53,
|
|
"duration": "0.7615",
|
|
"summary": "HTTP 200 OK: ok",
|
|
"request_method": "POST",
|
|
"request_url": "http://requestb.in/1g0sxmo1",
|
|
"request_headers": {
|
|
"User-Agent": "WooCommerce/2.6.0 Hookshot (WordPress/4.5.2)",
|
|
"Content-Type": "application/json",
|
|
"X-WC-Webhook-Source": "http://example.com/",
|
|
"X-WC-Webhook-Topic": "order.updated",
|
|
"X-WC-Webhook-Resource": "order",
|
|
"X-WC-Webhook-Event": "updated",
|
|
"X-WC-Webhook-Signature": "Z996ccyueeoqdXZFq2ND2ETpsPGrXmWKj+yvQ0c2N1w=",
|
|
"X-WC-Webhook-ID": 142,
|
|
"X-WC-Webhook-Delivery-ID": 53
|
|
},
|
|
"request_body": "{\"order\":{\"id\":118,\"order_number\":118,\"order_key\":\"wc_order_5728e9a347a2d\",\"created_at\":\"2016-05-03T18:10:00Z\",\"updated_at\":\"2016-05-16T03:29:13Z\",\"completed_at\":\"2016-05-16T03:29:19Z\",\"status\":\"completed\",\"currency\":\"BRL\",\"total\":\"14.00\",\"subtotal\":\"4.00\",\"total_line_items_quantity\":2,\"total_tax\":\"0.00\",\"total_shipping\":\"10.00\",\"cart_tax\":\"0.00\",\"shipping_tax\":\"0.00\",\"total_discount\":\"0.00\",\"shipping_methods\":\"Flat Rate\",\"payment_details\":{\"method_id\":\"bacs\",\"method_title\":\"Direct Bank Transfer\",\"paid\":true},\"billing_address\":{\"first_name\":\"John\",\"last_name\":\"Doe\",\"company\":\"\",\"address_1\":\"969 Market\",\"address_2\":\"\",\"city\":\"San Francisco\",\"state\":\"CA\",\"postcode\":\"94103\",\"country\":\"US\",\"email\":\"john.doe@claudiosmweb.com\",\"phone\":\"(555) 555-5555\"},\"shipping_address\":{\"first_name\":\"John\",\"last_name\":\"Doe\",\"company\":\"\",\"address_1\":\"969 Market\",\"address_2\":\"\",\"city\":\"San Francisco\",\"state\":\"CA\",\"postcode\":\"94103\",\"country\":\"US\"},\"note\":\"\",\"customer_ip\":\"127.0.0.1\",\"customer_user_agent\":\"curl/7.47.0\",\"customer_id\":0,\"view_order_url\":\"http://example.com/my-account/view-order/118\",\"line_items\":[{\"id\":8,\"subtotal\":\"4.00\",\"subtotal_tax\":\"0.00\",\"total\":\"4.00\",\"total_tax\":\"0.00\",\"price\":\"2.00\",\"quantity\":2,\"tax_class\":null,\"name\":\"Woo Single #2\",\"product_id\":99,\"sku\":\"12345\",\"meta\":[]}],\"shipping_lines\":[{\"id\":9,\"method_id\":\"flat_rate\",\"method_title\":\"Flat Rate\",\"total\":\"10.00\"}],\"tax_lines\":[],\"fee_lines\":[],\"coupon_lines\":[],\"is_vat_exempt\":false,\"customer\":{\"id\":0,\"email\":\"john.doe@claudiosmweb.com\",\"first_name\":\"John\",\"last_name\":\"Doe\",\"billing_address\":{\"first_name\":\"John\",\"last_name\":\"Doe\",\"company\":\"\",\"address_1\":\"969 Market\",\"address_2\":\"\",\"city\":\"San Francisco\",\"state\":\"CA\",\"postcode\":\"94103\",\"country\":\"US\",\"email\":\"john.doe@claudiosmweb.com\",\"phone\":\"(555) 555-5555\"},\"shipping_address\":{\"first_name\":\"John\",\"last_name\":\"Doe\",\"company\":\"\",\"address_1\":\"969 Market\",\"address_2\":\"\",\"city\":\"San Francisco\",\"state\":\"CA\",\"postcode\":\"94103\",\"country\":\"US\"}}}}",
|
|
"response_code": "200",
|
|
"response_message": "OK",
|
|
"response_headers": {
|
|
"connection": "close",
|
|
"server": "gunicorn/19.3.0",
|
|
"date": "Tue, 16 May 2016 03:29:20 GMT",
|
|
"content-type": "text/html; charset=utf-8",
|
|
"content-length": "2",
|
|
"sponsored-by": "https://www.runscope.com",
|
|
"via": "1.1 vegur"
|
|
},
|
|
"response_body": "ok",
|
|
"date_created": "2016-05-16T06:29:19",
|
|
"date_created_gmt": "2016-05-16T03:29:19",
|
|
"_links": {
|
|
"self": [
|
|
{
|
|
"href": "https://example.com/wp-json/wc/v2/webhooks/142/deliveries/53"
|
|
}
|
|
],
|
|
"collection": [
|
|
{
|
|
"href": "https://example.com/wp-json/wc/v2/webhooks/142/deliveries"
|
|
}
|
|
],
|
|
"up": [
|
|
{
|
|
"href": "https://example.com/wp-json/wc/v2/webhooks/142"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
```
|