import requests
url = "https://api.paywise.de/partner/v2/webhooks/{id}/"
payload = {
"companies": "*",
"description": "<string>",
"enabled": True,
"events": [],
"max_consecutive_failures": 500,
"url": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
companies: '*',
description: '<string>',
enabled: true,
events: [],
max_consecutive_failures: 500,
url: '<string>'
})
};
fetch('https://api.paywise.de/partner/v2/webhooks/{id}/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));HttpResponse<String> response = Unirest.patch("https://api.paywise.de/partner/v2/webhooks/{id}/")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"companies\": \"*\",\n \"description\": \"<string>\",\n \"enabled\": true,\n \"events\": [],\n \"max_consecutive_failures\": 500,\n \"url\": \"<string>\"\n}")
.asString();using RestSharp;
var options = new RestClientOptions("https://api.paywise.de/partner/v2/webhooks/{id}/");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
request.AddJsonBody("{\n \"companies\": \"*\",\n \"description\": \"<string>\",\n \"enabled\": true,\n \"events\": [],\n \"max_consecutive_failures\": 500,\n \"url\": \"<string>\"\n}", false);
var response = await client.PatchAsync(request);
Console.WriteLine("{0}", response.Content);
curl --request PATCH \
--url https://api.paywise.de/partner/v2/webhooks/{id}/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"companies": "*",
"description": "<string>",
"enabled": true,
"events": [],
"max_consecutive_failures": 500,
"url": "<string>"
}
'{
"auto_disabled": true,
"consecutive_failures": 123,
"created_at": "2023-11-07T05:31:56Z",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"last_failure_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"url": "<string>",
"companies": "*",
"description": "<string>",
"enabled": true,
"events": [
"*"
],
"max_consecutive_failures": 500
}{
"code": "validation_error",
"detail": "The request contains invalid data.",
"errors": [
{
"code": "invalid",
"field": "users[0].email",
"message": "Enter a valid email address."
}
]
}{
"code": "not_authenticated",
"detail": "Authentication credentials were not provided."
}{
"code": "<string>",
"detail": "<string>",
"errors": [
{
"code": "<string>",
"field": "<string>",
"message": "<string>"
}
]
}{
"code": "not_found",
"detail": "The requested resource was not found."
}{
"code": "<string>",
"detail": "<string>",
"errors": [
{
"code": "<string>",
"field": "<string>",
"message": "<string>"
}
]
}{
"code": "<string>",
"detail": "<string>",
"errors": [
{
"code": "<string>",
"field": "<string>",
"message": "<string>"
}
]
}{
"code": "<string>",
"detail": "<string>",
"errors": [
{
"code": "<string>",
"field": "<string>",
"message": "<string>"
}
]
}{
"code": "<string>",
"detail": "<string>",
"errors": [
{
"code": "<string>",
"field": "<string>",
"message": "<string>"
}
]
}Update webhook
import requests
url = "https://api.paywise.de/partner/v2/webhooks/{id}/"
payload = {
"companies": "*",
"description": "<string>",
"enabled": True,
"events": [],
"max_consecutive_failures": 500,
"url": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
companies: '*',
description: '<string>',
enabled: true,
events: [],
max_consecutive_failures: 500,
url: '<string>'
})
};
fetch('https://api.paywise.de/partner/v2/webhooks/{id}/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));HttpResponse<String> response = Unirest.patch("https://api.paywise.de/partner/v2/webhooks/{id}/")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"companies\": \"*\",\n \"description\": \"<string>\",\n \"enabled\": true,\n \"events\": [],\n \"max_consecutive_failures\": 500,\n \"url\": \"<string>\"\n}")
.asString();using RestSharp;
var options = new RestClientOptions("https://api.paywise.de/partner/v2/webhooks/{id}/");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
request.AddJsonBody("{\n \"companies\": \"*\",\n \"description\": \"<string>\",\n \"enabled\": true,\n \"events\": [],\n \"max_consecutive_failures\": 500,\n \"url\": \"<string>\"\n}", false);
var response = await client.PatchAsync(request);
Console.WriteLine("{0}", response.Content);
curl --request PATCH \
--url https://api.paywise.de/partner/v2/webhooks/{id}/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"companies": "*",
"description": "<string>",
"enabled": true,
"events": [],
"max_consecutive_failures": 500,
"url": "<string>"
}
'{
"auto_disabled": true,
"consecutive_failures": 123,
"created_at": "2023-11-07T05:31:56Z",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"last_failure_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"url": "<string>",
"companies": "*",
"description": "<string>",
"enabled": true,
"events": [
"*"
],
"max_consecutive_failures": 500
}{
"code": "validation_error",
"detail": "The request contains invalid data.",
"errors": [
{
"code": "invalid",
"field": "users[0].email",
"message": "Enter a valid email address."
}
]
}{
"code": "not_authenticated",
"detail": "Authentication credentials were not provided."
}{
"code": "<string>",
"detail": "<string>",
"errors": [
{
"code": "<string>",
"field": "<string>",
"message": "<string>"
}
]
}{
"code": "not_found",
"detail": "The requested resource was not found."
}{
"code": "<string>",
"detail": "<string>",
"errors": [
{
"code": "<string>",
"field": "<string>",
"message": "<string>"
}
]
}{
"code": "<string>",
"detail": "<string>",
"errors": [
{
"code": "<string>",
"field": "<string>",
"message": "<string>"
}
]
}{
"code": "<string>",
"detail": "<string>",
"errors": [
{
"code": "<string>",
"field": "<string>",
"message": "<string>"
}
]
}{
"code": "<string>",
"detail": "<string>",
"errors": [
{
"code": "<string>",
"field": "<string>",
"message": "<string>"
}
]
}Authorizations
Partner API Bearer key: Authorization: Bearer <key>. Keys are created only through authorized portal or staff flows.
Headers
Apply the change only while the current ETag matches one of the supplied validators (or *); otherwise the request fails with 412 precondition_failed and nothing is written.
Path Parameters
UUID of the webhook subscription in this request.
Body
Resource representation with a native UUID id.
Company selector for case and Mahnservice events: "*" includes every company with available partner case access, including companies added later; otherwise supply 1–500 accessible company UUIDs. Null makes the subscription lifecycle-only: no company case or Mahnservice events are delivered. Required for explicit case event types; omitted on PATCH preserves the selector.
* Optional single-line label for this webhook.
255Whether new deliveries can be sent to this endpoint. The endpoint is automatically disabled after its configured consecutive terminal-failure threshold is reached. Re-enable it after resolving the delivery problem.
Event types this endpoint receives. Omitted on creation, defaults to all Partner lifecycle events; omitted on PATCH, preserves the selection. Use ["*"] alone to subscribe to all event types, with case events delivered only when a companies selector is configured. Explicit case event types require companies.
*- *company.created- company.createdcompany.case_submission_readiness.changed- company.case_submission_readiness.changedcompany.access.confirmed- company.access.confirmedcompany.access.revoked- company.access.revokedcompany.access.restored- company.access.restoredcompany.user.added- company.user.addedcompany.user.revoked- company.user.revokedcompany.user.activated- company.user.activatedcompany.user.invite_expired- company.user.invite_expiredorder.submitted- order.submittedorder.withdrawn- order.withdrawnorder.rejected- order.rejectedorder.accepted- order.acceptedorder.expired- order.expiredmandate.created- mandate.createdmandate.state.changed- mandate.state.changedmandate.status_update.published- mandate.status_update.publishedmandate.balance_updated- mandate.balance_updatedorder.message.created- order.message.createdmandate.message.created- mandate.message.createdrequest_to_client.created- request_to_client.createdrequest_to_client.answered- request_to_client.answeredpayment.reported- payment.reportedstatement.published- statement.publishedstatement.cancelled- statement.cancelledsingle_mandate_statement.published- single_mandate_statement.publishedsingle_mandate_statement.cancelled- single_mandate_statement.cancelledinvoice.created- invoice.createdinvoice.paid- invoice.paidinvoice.cancelled- invoice.cancelledinvoice.written_off- invoice.written_offdunning.level_advanced- dunning.level_advanceddunning.handed_to_collection- dunning.handed_to_collection
*, company.created, company.case_submission_readiness.changed, company.access.confirmed, company.access.revoked, company.access.restored, company.user.added, company.user.revoked, company.user.activated, company.user.invite_expired, order.submitted, order.withdrawn, order.rejected, order.accepted, order.expired, mandate.created, mandate.state.changed, mandate.status_update.published, mandate.balance_updated, order.message.created, mandate.message.created, request_to_client.created, request_to_client.answered, payment.reported, statement.published, statement.cancelled, single_mandate_statement.published, single_mandate_statement.cancelled, invoice.created, invoice.paid, invoice.cancelled, invoice.written_off, dunning.level_advanced, dunning.handed_to_collection Automatically disables the endpoint when this many consecutive deliveries reach terminal failure. Retry attempts within one delivery do not each count.
1 <= x <= 1000Publicly reachable HTTPS URL that receives webhook POST deliveries. The URL must be unique among this partner's v2 webhook endpoints. Disabled endpoints still count toward the maximum of 20 endpoints per Partner.
1 - 2048Response
Resource representation with a native UUID id.
true when the endpoint was disabled automatically after reaching max_consecutive_failures; re-enable it with enabled: true once the destination is fixed.
Consecutive terminal delivery failures counted against this endpoint. A successful delivery resets the counter to zero.
Time at which the webhook subscription was created.
Stable identifier for this resource.
Time of the latest counted terminal delivery failure since the last success; null before any failure or after a successful delivery.
Time at which the webhook subscription was last updated.
Publicly reachable HTTPS URL that receives webhook POST deliveries. The URL must be unique among this partner's v2 webhook endpoints.
2048Company selector for case and Mahnservice events: "*" includes every company with available partner case access, including companies added later; otherwise supply 1–500 accessible company UUIDs. Null makes the subscription lifecycle-only: no company case or Mahnservice events are delivered. Required for explicit case event types; omitted on PATCH preserves the selector.
* Optional single-line label for this webhook.
255Whether deliveries are attempted. Re-enabling an endpoint resets its consecutive failure counter.
Event types this endpoint receives. Use ["*"] alone to subscribe to all event types, with case events delivered only when a companies selector is configured. Explicit case event types require companies.
*- *company.created- company.createdcompany.case_submission_readiness.changed- company.case_submission_readiness.changedcompany.access.confirmed- company.access.confirmedcompany.access.revoked- company.access.revokedcompany.access.restored- company.access.restoredcompany.user.added- company.user.addedcompany.user.revoked- company.user.revokedcompany.user.activated- company.user.activatedcompany.user.invite_expired- company.user.invite_expiredorder.submitted- order.submittedorder.withdrawn- order.withdrawnorder.rejected- order.rejectedorder.accepted- order.acceptedorder.expired- order.expiredmandate.created- mandate.createdmandate.state.changed- mandate.state.changedmandate.status_update.published- mandate.status_update.publishedmandate.balance_updated- mandate.balance_updatedorder.message.created- order.message.createdmandate.message.created- mandate.message.createdrequest_to_client.created- request_to_client.createdrequest_to_client.answered- request_to_client.answeredpayment.reported- payment.reportedstatement.published- statement.publishedstatement.cancelled- statement.cancelledsingle_mandate_statement.published- single_mandate_statement.publishedsingle_mandate_statement.cancelled- single_mandate_statement.cancelledinvoice.created- invoice.createdinvoice.paid- invoice.paidinvoice.cancelled- invoice.cancelledinvoice.written_off- invoice.written_offdunning.level_advanced- dunning.level_advanceddunning.handed_to_collection- dunning.handed_to_collection
*, company.created, company.case_submission_readiness.changed, company.access.confirmed, company.access.revoked, company.access.restored, company.user.added, company.user.revoked, company.user.activated, company.user.invite_expired, order.submitted, order.withdrawn, order.rejected, order.accepted, order.expired, mandate.created, mandate.state.changed, mandate.status_update.published, mandate.balance_updated, order.message.created, mandate.message.created, request_to_client.created, request_to_client.answered, payment.reported, statement.published, statement.cancelled, single_mandate_statement.published, single_mandate_statement.cancelled, invoice.created, invoice.paid, invoice.cancelled, invoice.written_off, dunning.level_advanced, dunning.handed_to_collection Automatically disables the endpoint when this many consecutive deliveries reach terminal failure. Retry attempts within one delivery do not each count.
1 <= x <= 1000