Rentle Webhooks API
This section describes API endpoints you can use to configure webhooks. Check the [webhook events section](#tag/WebhooksOverview) for more inforation regarding the webhooks events that Twice delivers to your system.
This section describes API endpoints you can use to configure webhooks. Check the [webhook events section](#tag/WebhooksOverview) for more inforation regarding the webhooks events that Twice delivers to your system.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/rentle:rentle-webhooks-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Twice Admin Webhooks API
description: API documentation for Twice Admin API
version: '2023-02-01'
contact: {}
x-logo:
url: https://firebasestorage.googleapis.com/v0/b/rentle-prod.appspot.com/o/logos%2Ftwice-logo-outline-black-padded.png?alt=media&token=c6731aba-03c9-4ce9-a9f0-a68478924fe0
servers:
- url: https://api.twicecommerce.com/admin
description: Production API
tags:
- name: Webhooks
description: This section describes API endpoints you can use to configure webhooks. Check the webhook events section for more inforation regarding the webhooks events that Twice delivers to your system.
paths:
/webhooks/{id}:
get:
operationId: webhooks_get
parameters:
- name: id
required: true
in: path
description: The id of the webhook to retrieve
schema:
type: string
- name: x-rentle-version
in: header
description: API Version, e.g `2023-02-01`. See [versioning](/#tag/versioning) page for more details.
required: true
schema:
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookDTO'
'400':
description: Bad request.
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestExceptionDTO'
'403':
description: Forbidden.
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenExceptionDTO'
'404':
description: Not found.
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundExceptionDTO'
'409':
description: Conflict.
content:
application/json:
schema:
$ref: '#/components/schemas/ConflictExceptionDTO'
'429':
description: Quota exceeded.
content:
application/json:
schema:
$ref: '#/components/schemas/QuotaExceededExceptionDTO'
'500':
description: Internal server error.
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerErrorExceptionDTO'
summary: Get webhook
tags:
- Webhooks
delete:
operationId: webhooks_remove
parameters:
- name: id
required: true
in: path
schema:
type: string
- name: x-rentle-version
in: header
description: API Version, e.g `2023-02-01`. See [versioning](/#tag/versioning) page for more details.
required: true
schema:
type: string
responses:
'200':
description: ''
'400':
description: Bad request.
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestExceptionDTO'
'403':
description: Forbidden.
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenExceptionDTO'
'404':
description: Not found.
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundExceptionDTO'
'409':
description: Conflict.
content:
application/json:
schema:
$ref: '#/components/schemas/ConflictExceptionDTO'
'429':
description: Quota exceeded.
content:
application/json:
schema:
$ref: '#/components/schemas/QuotaExceededExceptionDTO'
'500':
description: Internal server error.
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerErrorExceptionDTO'
summary: Delete webhook
tags:
- Webhooks
/webhooks:
get:
operationId: webhooks_list
parameters:
- name: limit
required: false
in: query
description: How many objects to retrieve.
schema:
minimum: 1
maximum: 100
type: integer
- name: pageToken
required: false
in: query
description: Token to retrieve the next page of results. This is returned in the paged response.
schema:
minLength: 1
type: string
- name: x-rentle-version
in: header
description: API Version, e.g `2023-02-01`. See [versioning](/#tag/versioning) page for more details.
required: true
schema:
type: string
responses:
'200':
description: Paginated list of webhooks
content:
application/json:
schema:
$ref: '#/components/schemas/PagedWebhooksDTO'
'400':
description: Bad request.
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestExceptionDTO'
'403':
description: Forbidden.
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenExceptionDTO'
'404':
description: Not found.
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundExceptionDTO'
'409':
description: Conflict.
content:
application/json:
schema:
$ref: '#/components/schemas/ConflictExceptionDTO'
'429':
description: Quota exceeded.
content:
application/json:
schema:
$ref: '#/components/schemas/QuotaExceededExceptionDTO'
'500':
description: Internal server error.
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerErrorExceptionDTO'
summary: Get all webhooks
tags:
- Webhooks
post:
operationId: webhooks_create
parameters:
- name: x-rentle-version
in: header
description: API Version, e.g `2023-02-01`. See [versioning](/#tag/versioning) page for more details.
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateWebhookDTO'
responses:
'201':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookDTO'
'400':
description: Bad request.
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestExceptionDTO'
'403':
description: Forbidden.
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenExceptionDTO'
'404':
description: Not found.
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundExceptionDTO'
'409':
description: Conflict.
content:
application/json:
schema:
$ref: '#/components/schemas/ConflictExceptionDTO'
'429':
description: Quota exceeded.
content:
application/json:
schema:
$ref: '#/components/schemas/QuotaExceededExceptionDTO'
'500':
description: Internal server error.
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerErrorExceptionDTO'
summary: Create webhook
tags:
- Webhooks
components:
schemas:
NotFoundExceptionDTO:
type: object
properties:
error:
type: object
properties:
status:
description: HTTP status code of the response.
type: number
code:
description: Internal text code that represents the type of error.
type: string
message:
description: Human-friendly description of the error
type: string
details:
description: Details about errors in the request body
type: array
items:
type: object
properties:
path:
description: Path to the key in the request body, splitted by parts.
type: array
items:
type: string
message:
description: Specific errors in the value of the field.
type: string
required:
- path
- message
required:
- status
- code
- message
required:
- error
title: Not Found
example:
error:
status: 404
code: NOT_FOUND
message: Object not found
ConflictExceptionDTO:
type: object
properties:
error:
type: object
properties:
status:
description: HTTP status code of the response.
type: number
code:
description: Internal text code that represents the type of error.
type: string
message:
description: Human-friendly description of the error
type: string
details:
description: Details about errors in the request body
type: array
items:
type: object
properties:
path:
description: Path to the key in the request body, splitted by parts.
type: array
items:
type: string
message:
description: Specific errors in the value of the field.
type: string
required:
- path
- message
required:
- status
- code
- message
required:
- error
title: Conflict
example:
error:
status: 409
code: CONFLICT
message: Conflict error
PagedWebhooksDTO:
type: object
properties:
data:
description: List of returned resources
type: array
items:
anyOf:
- title: Legacy webhook
example:
id: fI96xYaRpQh8sbQYCFtG
label: New order
urls:
- https://example.com/webhook
event: ORDER_CREATED
createdAt: '2026-07-19T01:04:28.188Z'
type: object
properties:
id:
description: ID of the Webhook
type: string
label:
description: Label of the Webhook
type: string
urls:
description: URLs to send the Webhook to
type: array
items:
type: string
format: uri
event:
description: Webhook event
type: string
enum:
- ORDER_CREATED
- ORDER_UPDATED
- ORDER_PREPARED
- ORDER_STARTED
- ORDER_RETURNED
- PRODUCT_CREATED
- PRODUCT_UPDATED
- PRODUCT_DELETED
createdAt:
title: ISO 8601 date-time
description: Date when the Webhook was created
type: string
required:
- id
- label
- urls
- event
- createdAt
- title: Webhook
example:
id: sLaxZ6ol44b8wxQaObD7
label: New order
urls:
- https://example.com/webhook
event: order/created
apiVersion: '2023-02-01'
createdAt: '2026-07-19T01:04:28.190Z'
type: object
properties:
id:
description: ID of the Webhook
type: string
label:
description: Label of the Webhook
type: string
urls:
description: URLs to send the Webhook to
type: array
items:
type: string
format: uri
event:
description: Webhook event
type: string
enum:
- order/created
- order/updated
- order/prepared
- order/started
- order/returned
- order/returning-soon
- product/created
- product/updated
- product/deleted
apiVersion:
description: API version used in the Webhook payload
type: string
enum:
- '2023-02-01'
createdAt:
title: ISO 8601 date-time
description: Date when the Webhook was created
type: string
configuration:
type: object
properties:
triggerBeforeMinutes:
type: number
required:
- triggerBeforeMinutes
required:
- id
- label
- urls
- event
- apiVersion
- createdAt
count:
description: Number of returned resources
type: number
total:
description: Total number of resources
type: number
nextPageToken:
description: This can be used in the next request to retrieve the next page of results.
type: string
required:
- data
- count
- total
title: Paginated list of webhooks
InternalServerErrorExceptionDTO:
type: object
properties:
error:
type: object
properties:
status:
description: HTTP status code of the response.
type: number
code:
description: Internal text code that represents the type of error.
type: string
message:
description: Human-friendly description of the error
type: string
details:
description: Details about errors in the request body
type: array
items:
type: object
properties:
path:
description: Path to the key in the request body, splitted by parts.
type: array
items:
type: string
message:
description: Specific errors in the value of the field.
type: string
required:
- path
- message
required:
- status
- code
- message
required:
- error
title: Internal Server Error
example:
error:
status: 500
code: INTERNAL_SERVER_ERROR
message: An unexpected error occurred. Please try again later.
BadRequestExceptionDTO:
type: object
properties:
error:
type: object
properties:
status:
description: HTTP status code of the response.
type: number
code:
description: Internal text code that represents the type of error.
type: string
message:
description: Human-friendly description of the error
type: string
details:
description: Details about errors in the request body
type: array
items:
type: object
properties:
path:
description: Path to the key in the request body, splitted by parts.
type: array
items:
type: string
message:
description: Specific errors in the value of the field.
type: string
required:
- path
- message
required:
- status
- code
- message
required:
- error
title: Bad Request
example:
error:
status: 400
code: INVALID_ARGUMENTS
details:
- path:
- startDate
message: Required
- path:
- duration
message: Required
message: Your request contained invalid arguments
QuotaExceededExceptionDTO:
type: object
properties:
error:
type: object
properties:
status:
description: HTTP status code of the response.
type: number
code:
description: Internal text code that represents the type of error.
type: string
message:
description: Human-friendly description of the error
type: string
details:
description: Details about errors in the request body
type: array
items:
type: object
properties:
path:
description: Path to the key in the request body, splitted by parts.
type: array
items:
type: string
message:
description: Specific errors in the value of the field.
type: string
required:
- path
- message
required:
- status
- code
- message
required:
- error
title: Quota Exceeded
example:
error:
status: 429
code: RATE_LIMIT_HIT
message: Your API key has exceeded the rate limit. Please wait a moment before making new requests.
CreateWebhookDTO:
type: object
properties:
label:
description: Label of the Webhook
type: string
urls:
description: URLs to send the Webhook to
type: array
items:
type: string
format: uri
event:
description: Webhook event
type: string
enum:
- order/created
- order/updated
- order/prepared
- order/started
- order/returned
- order/returning-soon
- product/created
- product/updated
- product/deleted
apiVersion:
description: API version used in the Webhook payload
type: string
enum:
- '2023-02-01'
configuration:
type: object
properties:
triggerBeforeMinutes:
type: number
required:
- triggerBeforeMinutes
required:
- label
- urls
- event
- apiVersion
WebhookDTO:
anyOf:
- title: Legacy webhook
example:
id: fI96xYaRpQh8sbQYCFtG
label: New order
urls:
- https://example.com/webhook
event: ORDER_CREATED
createdAt: '2026-07-19T01:04:28.188Z'
type: object
properties:
id:
description: ID of the Webhook
type: string
label:
description: Label of the Webhook
type: string
urls:
description: URLs to send the Webhook to
type: array
items:
type: string
format: uri
event:
description: Webhook event
type: string
enum:
- ORDER_CREATED
- ORDER_UPDATED
- ORDER_PREPARED
- ORDER_STARTED
- ORDER_RETURNED
- PRODUCT_CREATED
- PRODUCT_UPDATED
- PRODUCT_DELETED
createdAt:
title: ISO 8601 date-time
description: Date when the Webhook was created
type: string
required:
- id
- label
- urls
- event
- createdAt
- title: Webhook
example:
id: sLaxZ6ol44b8wxQaObD7
label: New order
urls:
- https://example.com/webhook
event: order/created
apiVersion: '2023-02-01'
createdAt: '2026-07-19T01:04:28.190Z'
type: object
properties:
id:
description: ID of the Webhook
type: string
label:
description: Label of the Webhook
type: string
urls:
description: URLs to send the Webhook to
type: array
items:
type: string
format: uri
event:
description: Webhook event
type: string
enum:
- order/created
- order/updated
- order/prepared
- order/started
- order/returned
- order/returning-soon
- product/created
- product/updated
- product/deleted
apiVersion:
description: API version used in the Webhook payload
type: string
enum:
- '2023-02-01'
createdAt:
title: ISO 8601 date-time
description: Date when the Webhook was created
type: string
configuration:
type: object
properties:
triggerBeforeMinutes:
type: number
required:
- triggerBeforeMinutes
required:
- id
- label
- urls
- event
- apiVersion
- createdAt
ForbiddenExceptionDTO:
type: object
properties:
error:
type: object
properties:
status:
description: HTTP status code of the response.
type: number
code:
description: Internal text code that represents the type of error.
type: string
message:
description: Human-friendly description of the error
type: string
details:
description: Details about errors in the request body
type: array
items:
type: object
properties:
path:
description: Path to the key in the request body, splitted by parts.
type: array
items:
type: string
message:
description: Specific errors in the value of the field.
type: string
required:
- path
- message
required:
- status
- code
- message
required:
- error
title: Forbidden
example:
error:
status: 403
code: FORBIDDEN
message: You are do not have permission to perform this action. The problem could be missing API scopes or an expired/invalid API token.
x-tagGroups:
- name: Introduction
tags:
- Introduction
- Versioning
- Authentication
- RateLimiting
- Responses
- Feedback
- name: Operations
tags:
- OperationsOverview
- API Keys
- Categories
- Customers
- Discount Codes
- Inventory Articles
- Inventory SKUs
- Merchant
- Orders
- Products
- Stores
- Webhooks
- name: Webhooks
tags:
- WebhooksOverview
- Order
- Product
- name: Models
tags:
- ModelsOverview
- ApiKeyDTO
- CategoryDTO
- CustomerDTO
- DiscountCodeDTO
- InventoryArticleDTO
- MerchantDTO
- OrderDTO
- OrderWebhookDTO
- PagedCategoriesDTO
- PagedCustomersDTO
- PagedDiscountCodesDTO
- PagedInventoryArticlesDTO
- PagedOrdersDTO
- PagedProductsDTO
- PagedSkusDTO
- PagedStoresDTO
- PagedWebhooksDTO
- ProductDTO
- ProductWebhookDTO
- SkuDTO
- StoreDTO
- name: Errors
tags:
- ErrorsOverview
- BadRequestExceptionDTO
- ConflictExceptionDTO
- ForbiddenExceptionDTO
- InternalServerErrorExceptionDTO
- NotFoundExceptionDTO
- QuotaExceededExceptionDTO
x-provenance:
method: harvested
publisher: Rentle
source: https://api.rentle.io/admin/swagger.json
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)