curl --request GET \
--url https://api.services.payward.com/v1/webhooks/{webhook_id}/attempts \
--header 'API-Key: <api-key>' \
--header 'API-Nonce: <api-key>' \
--header 'API-Sign: <api-key>'import requests
url = "https://api.services.payward.com/v1/webhooks/{webhook_id}/attempts"
headers = {
"API-Key": "<api-key>",
"API-Sign": "<api-key>",
"API-Nonce": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'API-Key': '<api-key>', 'API-Sign': '<api-key>', 'API-Nonce': '<api-key>'}
};
fetch('https://api.services.payward.com/v1/webhooks/{webhook_id}/attempts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.services.payward.com/v1/webhooks/{webhook_id}/attempts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"API-Key: <api-key>",
"API-Nonce: <api-key>",
"API-Sign: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.services.payward.com/v1/webhooks/{webhook_id}/attempts"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("API-Key", "<api-key>")
req.Header.Add("API-Sign", "<api-key>")
req.Header.Add("API-Nonce", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.services.payward.com/v1/webhooks/{webhook_id}/attempts")
.header("API-Key", "<api-key>")
.header("API-Sign", "<api-key>")
.header("API-Nonce", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.services.payward.com/v1/webhooks/{webhook_id}/attempts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["API-Key"] = '<api-key>'
request["API-Sign"] = '<api-key>'
request["API-Nonce"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "<string>",
"webhook_id": "<string>",
"message_id": "<string>",
"url": "<string>",
"status": "success",
"response_status_code": 123,
"response_duration_ms": 123,
"trigger_type": "scheduled",
"timestamp": "2023-11-07T05:31:56Z"
}
],
"next_page_token": "<string>"
}{
"error": {
"type": "<string>",
"status": 400,
"instance": "<string>",
"code": "bad_request",
"doc_url": "<string>",
"causes": [
{
"field": "<string>",
"message": "<string>"
}
]
}
}{
"error": {
"type": "<string>",
"status": 401,
"instance": "<string>",
"code": "unauthenticated",
"doc_url": "<string>",
"causes": [
{}
]
}
}{
"error": {
"type": "<string>",
"status": 403,
"instance": "<string>",
"code": "forbidden",
"doc_url": "<string>",
"causes": [
{}
]
}
}{
"error": {
"type": "<string>",
"status": 404,
"instance": "<string>",
"code": "webhook_not_found",
"doc_url": "<string>",
"causes": [
{}
]
}
}{
"error": {
"type": "<string>",
"status": 429,
"instance": "<string>",
"code": "resource_exhausted",
"doc_url": "<string>",
"causes": [
{}
]
}
}{
"error": {
"type": "<string>",
"status": 500,
"instance": "<string>",
"code": "internal",
"doc_url": "<string>",
"causes": [
{}
]
}
}{
"error": {
"type": "<string>",
"status": 501,
"instance": "<string>",
"code": "unimplemented",
"doc_url": "<string>",
"causes": [
{}
]
}
}{
"error": {
"type": "<string>",
"status": 503,
"instance": "<string>",
"code": "unavailable",
"doc_url": "<string>",
"causes": [
{}
]
}
}{
"error": {
"type": "<string>",
"status": 504,
"instance": "<string>",
"code": "deadline_exceeded",
"doc_url": "<string>",
"causes": [
{}
]
}
}List webhook attempts
Lists delivery attempts made to this webhook, most recent first.
A delivery attempt is one HTTP POST to the webhook’s destination URL.
Because deliveries are retried on failure, a single emitted event can
produce several attempts against the same webhook: the first is
scheduled, and each subsequent retry is another scheduled attempt
until the event is delivered or the retry schedule is exhausted; a
partner-initiated resend produces a manual attempt. Every attempt is
listed, so a successful delivery and the failed tries that preceded it
all appear as separate entries sharing the same message_id.
curl --request GET \
--url https://api.services.payward.com/v1/webhooks/{webhook_id}/attempts \
--header 'API-Key: <api-key>' \
--header 'API-Nonce: <api-key>' \
--header 'API-Sign: <api-key>'import requests
url = "https://api.services.payward.com/v1/webhooks/{webhook_id}/attempts"
headers = {
"API-Key": "<api-key>",
"API-Sign": "<api-key>",
"API-Nonce": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'API-Key': '<api-key>', 'API-Sign': '<api-key>', 'API-Nonce': '<api-key>'}
};
fetch('https://api.services.payward.com/v1/webhooks/{webhook_id}/attempts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.services.payward.com/v1/webhooks/{webhook_id}/attempts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"API-Key: <api-key>",
"API-Nonce: <api-key>",
"API-Sign: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.services.payward.com/v1/webhooks/{webhook_id}/attempts"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("API-Key", "<api-key>")
req.Header.Add("API-Sign", "<api-key>")
req.Header.Add("API-Nonce", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.services.payward.com/v1/webhooks/{webhook_id}/attempts")
.header("API-Key", "<api-key>")
.header("API-Sign", "<api-key>")
.header("API-Nonce", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.services.payward.com/v1/webhooks/{webhook_id}/attempts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["API-Key"] = '<api-key>'
request["API-Sign"] = '<api-key>'
request["API-Nonce"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "<string>",
"webhook_id": "<string>",
"message_id": "<string>",
"url": "<string>",
"status": "success",
"response_status_code": 123,
"response_duration_ms": 123,
"trigger_type": "scheduled",
"timestamp": "2023-11-07T05:31:56Z"
}
],
"next_page_token": "<string>"
}{
"error": {
"type": "<string>",
"status": 400,
"instance": "<string>",
"code": "bad_request",
"doc_url": "<string>",
"causes": [
{
"field": "<string>",
"message": "<string>"
}
]
}
}{
"error": {
"type": "<string>",
"status": 401,
"instance": "<string>",
"code": "unauthenticated",
"doc_url": "<string>",
"causes": [
{}
]
}
}{
"error": {
"type": "<string>",
"status": 403,
"instance": "<string>",
"code": "forbidden",
"doc_url": "<string>",
"causes": [
{}
]
}
}{
"error": {
"type": "<string>",
"status": 404,
"instance": "<string>",
"code": "webhook_not_found",
"doc_url": "<string>",
"causes": [
{}
]
}
}{
"error": {
"type": "<string>",
"status": 429,
"instance": "<string>",
"code": "resource_exhausted",
"doc_url": "<string>",
"causes": [
{}
]
}
}{
"error": {
"type": "<string>",
"status": 500,
"instance": "<string>",
"code": "internal",
"doc_url": "<string>",
"causes": [
{}
]
}
}{
"error": {
"type": "<string>",
"status": 501,
"instance": "<string>",
"code": "unimplemented",
"doc_url": "<string>",
"causes": [
{}
]
}
}{
"error": {
"type": "<string>",
"status": 503,
"instance": "<string>",
"code": "unavailable",
"doc_url": "<string>",
"causes": [
{}
]
}
}{
"error": {
"type": "<string>",
"status": 504,
"instance": "<string>",
"code": "deadline_exceeded",
"doc_url": "<string>",
"causes": [
{}
]
}
}Authorizations
Your public API key. Identifies the partner making the request.
HMAC signature over the request, computed with your private key.
Monotonically increasing nonce included in the request signature.
Path Parameters
Unique identifier for the webhook
"WHTEST-XXXXX-EXAMPLE"
Query Parameters
Maximum number of attempts to return. Defaults to 20 when omitted.
1 <= x <= 25Opaque token returned by a previous response. Omit to start from the most recent attempt.
1 - 256Response
Successful response
Delivery attempts for the requested page, most recent first. Always present; serialized as an empty array when the webhook has no recorded attempts.
Show child attributes
Show child attributes
Opaque token for the next page. Absent when there are no more results.
1 - 256