List webhook deliveries
/webhooks/{webhookId}/deliveriescurl -X GET https://api.tst.au.apgpay.dev/webhooks/{webhookId}/deliveries \
-H "Authorization: Bearer $API_KEY"Return a page of this subscription's deliveries, newest first. Filter by status to find the ones that did not arrive, and by event to follow one event type. Each entry carries the attempt count and the last HTTP status your endpoint answered with.
Permissions
webhookSubscriptions:queryRequires the `query` action on `webhookSubscriptions` for the supplied runtime context
Path parameters
webhookIdstringQuery parameters
qstringSearch. Matches a delivery id, or exactly the event type, the id of the entity the event is about, the idempotency key or the request id. An id, an email address, a phone number and any value listed as matched exactly match exactly; any other term matches without regard to case from the start of a value (or of any word in it, beside a longer word of the term), or anywhere in it from three characters, every word of it somewhere; a term that matches nothing so is read again with typos tolerated. Matches come newest first unless sort is given.
pageinteger (int32)Offset pagination: 1-based page number. Mutually exclusive with the cursor parameters.
startingAfterstringCursor pagination, moving forward: the id of the last item on the current page. Mutually exclusive with page.
endingBeforestringCursor pagination, moving backward: the id of the first item on the current page. Mutually exclusive with page.
limitinteger (int32)Maximum items per page.
sortarray of WebhookDeliverySortFields to sort by, comma-delimited, in priority order. Prefix a field with - for descending.
statusstringFilter to deliveries in one state. Failed is the one a dashboard usually wants.
eventWebhookEventTypeFilter to one event type.
MerchantCreatedMerchantActivatedMerchantSuspendedMerchantAvailableBalanceUpdatedMerchantBankAccountAddedMerchantPrimaryBankAccountUpdatedPayPlanCreatedPayPlanActivatedPayPlanCompletedPayPlanInDefault+27 moreShow fewer
PayInFullCreated, PayInFullAccepted, PayInFullAuthorised, PayInFullCompleted, TransactionPaid, TransactionFailed, DisputeCreated, DisputeUpdated, PayoutCreated, PayoutPending, PayoutFailed, PayoutPaid, PayoutReversed, InvoiceIssued, InvoiceDue, InvoicePaymentFailed, InvoicePaid, PaymentSourceCreated, PaymentSourceMethodUpdated, PaymentSourceDeleted, LoanCreated, LoanStatementCreated, LoanStatementIssued, LoanStatementDue, LoanStatementPaid, LoanPaymentFailed, Unknown
Responses
The response is a tagged shape: type is always "WebhookDeliveryPageAttributes". Switch on it; subtypes can be added, and a client that already reads it will not break.
typetype = "WebhookDeliveryPageAttributes"typeenumrequiredWebhookDeliveryViewAttributeswebhookDeliveryIdWebhookDeliveryIdrequiredIdentifier of one webhook delivery.
Example whdlv_9f2Kd8QpLzXw
webhookIdWebhookIdrequiredIdentifier of a webhook subscription.
Example webhook_9f2Kd8QpLzXw
eventWebhookEventTyperequiredThe event type delivered.
MerchantCreatedMerchantActivatedMerchantSuspendedMerchantAvailableBalanceUpdatedMerchantBankAccountAddedMerchantPrimaryBankAccountUpdatedPayPlanCreatedPayPlanActivatedPayPlanCompletedPayPlanInDefault+27 moreShow fewer
PayInFullCreated, PayInFullAccepted, PayInFullAuthorised, PayInFullCompleted, TransactionPaid, TransactionFailed, DisputeCreated, DisputeUpdated, PayoutCreated, PayoutPending, PayoutFailed, PayoutPaid, PayoutReversed, InvoiceIssued, InvoiceDue, InvoicePaymentFailed, InvoicePaid, PaymentSourceCreated, PaymentSourceMethodUpdated, PaymentSourceDeleted, LoanCreated, LoanStatementCreated, LoanStatementIssued, LoanStatementDue, LoanStatementPaid, LoanPaymentFailed, Unknown
statusWebhookDeliveryStatusrequiredPendingPendingRetryDeliveredFailedAbandonedObservedUnknownattemptsinteger (int32)requiredHow many times we have tried this delivery. Some attempts do not reach your endpoint at all, such as those made while the subscription is suspended; lastError says when that is why.
Example 1250
lastStatusCodeinteger (int32)The HTTP status your endpoint answered with on the most recent attempt.
Example 1250
lastErrorstringWhy the most recent attempt did not succeed, when the reason was not an HTTP status, or what to do about a redirect, which is not followed: update the subscription url to its location.
lastAttemptAtstring (date-time)When we most recently called your endpoint.
Example 2026-08-19T04:21:07Z
lastSentTostringThe url we most recently sent this to. It is read from the subscription at the moment of the call, so correcting the url and redelivering sends the same event to the new one.
lastResponseBodystringThe start of what your endpoint answered with on the most recent attempt, success included, cut at 500 bytes. Absent when that attempt got no answer or an empty one.
Who answered the most recent attempt, from the response headers that identify a server, CDN or firewall. Absent when that attempt got no answer, or an answer carrying none of them.
typeenumrequiredWebhookResponseHeadersAttributesserverstringviastringcfRaystringcf-ray: present when Cloudflare answered, or sits in front of your endpoint.
amznRequestIdstringx-amzn-requestid: present when an AWS service such as API Gateway answered.
amznTraceIdstringx-amzn-trace-id: present when an AWS load balancer passed the call on.
requestIdstringx-request-id.
cachestringx-cache: present when a CDN answered.
locationstringWhere a redirect pointed. We do not follow redirects, so this is the url to subscribe instead.
deliveredAtstring (date-time)When your endpoint accepted it.
Example 2026-08-19T04:21:07Z
idempotencyKeystringrequiredThe identity of this delivery, stable across retries and redeliveries. Use it to make your handler idempotent: the same key is the same event for the same subscription.
eventPublishedAtstring (date-time)requiredWhen the event itself happened. Compare it with createdAt to see how long we took to pick the event up, and with lastAttemptAt for the whole journey.
Example 2026-08-19T04:21:07Z
createdAtstring (date-time)requiredWhen we queued this delivery. Not when the event happened, which for a redelivery may be much earlier.
Example 2026-08-19T04:21:07Z
updatedAtstring (date-time)requiredExample 2026-08-19T04:21:07Z
hasMorebooleanrequiredWhether further items exist after this page.
Example true
nextStartingAfterstringId to pass as startingAfter to fetch the next page. Present in cursor mode only.
totalCountinteger (int64)Total items matching the query.
Example 42
pageinteger (int32)The 1-based page returned. Present in offset mode only.
Example 1250
totalPagesinteger (int32)Total pages available. Present in offset mode only.
Example 1250
{
"type": "WebhookDeliveryPageAttributes",
"data": [
{
"type": "WebhookDeliveryViewAttributes",
"webhookDeliveryId": "whdlv_9f2Kd8QpLzXw",
"webhookId": "webhook_9f2Kd8QpLzXw",
"event": "MerchantCreated",
"status": "Pending",
"attempts": 1250,
"lastStatusCode": 1250,
"lastError": "string",
"lastAttemptAt": "2026-08-19T04:21:07Z",
"lastSentTo": "string",
"lastResponseBody": "string",
"lastResponseHeaders": {
"type": "WebhookResponseHeadersAttributes",
"server": "string",
"via": "string",
"cfRay": "string",
"amznRequestId": "string",
"amznTraceId": "string",
"requestId": "string",
"cache": "string",
"location": "string"
},
"deliveredAt": "2026-08-19T04:21:07Z",
"idempotencyKey": "string",
"eventPublishedAt": "2026-08-19T04:21:07Z",
"createdAt": "2026-08-19T04:21:07Z",
"updatedAt": "2026-08-19T04:21:07Z"
}
],
"hasMore": true,
"nextStartingAfter": "string",
"totalCount": 42,
"page": 1250,
"totalPages": 1250
}Error responses
statusCodeinteger (int32)requiredHTTP status code for this error
errorCodestringrequiredAn APG Pay code providing a brief explanation of the underlying error. Use this if you wish to provide custom behaviour based on the error type.
messagestringrequiredHuman readable description of the error
tracerstringAn unique identifier for the request. Provide this to the support team if you wish to query a particular error.
detailstringOptional additional details for the error.
errorTypeDescriptionstringA description of the category of errors for the given statusCode.
metadataobjectOptional key value list of metadata
{
"statusCode": 100,
"errorCode": "string",
"message": "string",
"tracer": "string",
"detail": "string",
"errorTypeDescription": "string"
}statusCodeinteger (int32)requiredHTTP status code for this error
errorCodestringrequiredAn APG Pay code providing a brief explanation of the underlying error. Use this if you wish to provide custom behaviour based on the error type.
messagestringrequiredHuman readable description of the error
tracerstringAn unique identifier for the request. Provide this to the support team if you wish to query a particular error.
detailstringOptional additional details for the error.
errorTypeDescriptionstringA description of the category of errors for the given statusCode.
metadataobjectOptional key value list of metadata
{
"statusCode": 100,
"errorCode": "string",
"message": "string",
"tracer": "string",
"detail": "string",
"errorTypeDescription": "string"
}statusCodeinteger (int32)requiredHTTP status code for this error
errorCodestringrequiredAn APG Pay code providing a brief explanation of the underlying error. Use this if you wish to provide custom behaviour based on the error type.
messagestringrequiredHuman readable description of the error
tracerstringAn unique identifier for the request. Provide this to the support team if you wish to query a particular error.
detailstringOptional additional details for the error.
errorTypeDescriptionstringA description of the category of errors for the given statusCode.
metadataobjectOptional key value list of metadata
{
"statusCode": 100,
"errorCode": "string",
"message": "string",
"tracer": "string",
"detail": "string",
"errorTypeDescription": "string"
}statusCodeinteger (int32)requiredHTTP status code for this error
errorCodestringrequiredAn APG Pay code providing a brief explanation of the underlying error. Use this if you wish to provide custom behaviour based on the error type.
messagestringrequiredHuman readable description of the error
tracerstringAn unique identifier for the request. Provide this to the support team if you wish to query a particular error.
detailstringOptional additional details for the error.
errorTypeDescriptionstringA description of the category of errors for the given statusCode.
metadataobjectOptional key value list of metadata
{
"statusCode": 100,
"errorCode": "string",
"message": "string",
"tracer": "string",
"detail": "string",
"errorTypeDescription": "string"
}statusCodeinteger (int32)requiredHTTP status code for this error
errorCodestringrequiredAn APG Pay code providing a brief explanation of the underlying error. Use this if you wish to provide custom behaviour based on the error type.
messagestringrequiredHuman readable description of the error
tracerstringAn unique identifier for the request. Provide this to the support team if you wish to query a particular error.
detailstringOptional additional details for the error.
errorTypeDescriptionstringA description of the category of errors for the given statusCode.
metadataobjectOptional key value list of metadata
{
"statusCode": 100,
"errorCode": "string",
"message": "string",
"tracer": "string",
"detail": "string",
"errorTypeDescription": "string"
}statusCodeinteger (int32)requiredHTTP status code for this error
errorCodestringrequiredAn APG Pay code providing a brief explanation of the underlying error. Use this if you wish to provide custom behaviour based on the error type.
messagestringrequiredHuman readable description of the error
tracerstringAn unique identifier for the request. Provide this to the support team if you wish to query a particular error.
detailstringOptional additional details for the error.
errorTypeDescriptionstringA description of the category of errors for the given statusCode.
metadataobjectOptional key value list of metadata
{
"statusCode": 100,
"errorCode": "string",
"message": "string",
"tracer": "string",
"detail": "string",
"errorTypeDescription": "string"
}statusCodeinteger (int32)requiredHTTP status code for this error
errorCodestringrequiredAn APG Pay code providing a brief explanation of the underlying error. Use this if you wish to provide custom behaviour based on the error type.
messagestringrequiredHuman readable description of the error
tracerstringAn unique identifier for the request. Provide this to the support team if you wish to query a particular error.
detailstringOptional additional details for the error.
errorTypeDescriptionstringA description of the category of errors for the given statusCode.
metadataobjectOptional key value list of metadata
{
"statusCode": 100,
"errorCode": "string",
"message": "string",
"tracer": "string",
"detail": "string",
"errorTypeDescription": "string"
}statusCodeinteger (int32)requiredHTTP status code for this error
errorCodestringrequiredAn APG Pay code providing a brief explanation of the underlying error. Use this if you wish to provide custom behaviour based on the error type.
messagestringrequiredHuman readable description of the error
tracerstringAn unique identifier for the request. Provide this to the support team if you wish to query a particular error.
detailstringOptional additional details for the error.
errorTypeDescriptionstringA description of the category of errors for the given statusCode.
metadataobjectOptional key value list of metadata
{
"statusCode": 100,
"errorCode": "string",
"message": "string",
"tracer": "string",
"detail": "string",
"errorTypeDescription": "string"
}statusCodeinteger (int32)requiredHTTP status code for this error
errorCodestringrequiredAn APG Pay code providing a brief explanation of the underlying error. Use this if you wish to provide custom behaviour based on the error type.
messagestringrequiredHuman readable description of the error
tracerstringAn unique identifier for the request. Provide this to the support team if you wish to query a particular error.
detailstringOptional additional details for the error.
errorTypeDescriptionstringA description of the category of errors for the given statusCode.
metadataobjectOptional key value list of metadata
{
"statusCode": 100,
"errorCode": "string",
"message": "string",
"tracer": "string",
"detail": "string",
"errorTypeDescription": "string"
}statusCodeinteger (int32)requiredHTTP status code for this error
errorCodestringrequiredAn APG Pay code providing a brief explanation of the underlying error. Use this if you wish to provide custom behaviour based on the error type.
messagestringrequiredHuman readable description of the error
tracerstringAn unique identifier for the request. Provide this to the support team if you wish to query a particular error.
detailstringOptional additional details for the error.
errorTypeDescriptionstringA description of the category of errors for the given statusCode.
metadataobjectOptional key value list of metadata
{
"statusCode": 100,
"errorCode": "string",
"message": "string",
"tracer": "string",
"detail": "string",
"errorTypeDescription": "string"
}statusCodeinteger (int32)requiredHTTP status code for this error
errorCodestringrequiredAn APG Pay code providing a brief explanation of the underlying error. Use this if you wish to provide custom behaviour based on the error type.
messagestringrequiredHuman readable description of the error
tracerstringAn unique identifier for the request. Provide this to the support team if you wish to query a particular error.
detailstringOptional additional details for the error.
errorTypeDescriptionstringA description of the category of errors for the given statusCode.
metadataobjectOptional key value list of metadata
{
"statusCode": 100,
"errorCode": "string",
"message": "string",
"tracer": "string",
"detail": "string",
"errorTypeDescription": "string"
}statusCodeinteger (int32)requiredHTTP status code for this error
errorCodestringrequiredAn APG Pay code providing a brief explanation of the underlying error. Use this if you wish to provide custom behaviour based on the error type.
messagestringrequiredHuman readable description of the error
tracerstringAn unique identifier for the request. Provide this to the support team if you wish to query a particular error.
detailstringOptional additional details for the error.
errorTypeDescriptionstringA description of the category of errors for the given statusCode.
metadataobjectOptional key value list of metadata
{
"statusCode": 100,
"errorCode": "string",
"message": "string",
"tracer": "string",
"detail": "string",
"errorTypeDescription": "string"
}