curl --request POST \
--url https://sandbox.api.byzantine.fi/v1/webhooks/deliveries/{delivery_id}/retry \
--header 'X-Pubkey: <x-pubkey>' \
--header 'X-Pubkey, X-Timestamp, X-Signature: <api-key>' \
--header 'X-Signature: <x-signature>' \
--header 'X-Timestamp: <x-timestamp>'import requests
url = "https://sandbox.api.byzantine.fi/v1/webhooks/deliveries/{delivery_id}/retry"
headers = {
"X-Pubkey": "<x-pubkey>",
"X-Timestamp": "<x-timestamp>",
"X-Signature": "<x-signature>",
"X-Pubkey, X-Timestamp, X-Signature": "<api-key>"
}
response = requests.post(url, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-Pubkey': '<x-pubkey>',
'X-Timestamp': '<x-timestamp>',
'X-Signature': '<x-signature>',
'X-Pubkey, X-Timestamp, X-Signature': '<api-key>'
}
};
fetch('https://sandbox.api.byzantine.fi/v1/webhooks/deliveries/{delivery_id}/retry', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"event": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"eventType": "<string>",
"sourceType": "<string>",
"sourceId": "<string>",
"payload": "<unknown>",
"payloadVersion": 123,
"createdAt": "2023-11-07T05:31:56Z",
"integratorId": "550e8400-e29b-41d4-a716-446655440000",
"accountId": "550e8400-e29b-41d4-a716-446655440000",
"userId": "550e8400-e29b-41d4-a716-446655440000",
"entityId": "550e8400-e29b-41d4-a716-446655440000",
"beneficiaryId": "550e8400-e29b-41d4-a716-446655440000",
"transactionId": "550e8400-e29b-41d4-a716-446655440000"
},
"delivery": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"subscriptionId": "550e8400-e29b-41d4-a716-446655440000",
"eventId": "550e8400-e29b-41d4-a716-446655440000",
"status": "pending",
"attemptCount": 123,
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"nextAttemptAt": "2023-11-07T05:31:56Z",
"terminalReason": "<string>",
"lastResponseSummary": null
},
"attempt": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"deliveryId": "550e8400-e29b-41d4-a716-446655440000",
"attemptNumber": 123,
"outcome": "succeeded",
"signedAt": "2023-11-07T05:31:56Z",
"signedTimestamp": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"signingKeyId": "550e8400-e29b-41d4-a716-446655440000",
"statusCode": 123,
"error": "<string>",
"latencyMs": 123,
"responseSummary": null,
"actor": "<string>"
}
}{
"error": "Resource not found",
"status": 404
}Retry a webhook delivery.
Manually retries a retryable webhook delivery owned by the authenticated integrator. Disabled subscriptions and terminal, succeeded, or in-flight deliveries are rejected.
curl --request POST \
--url https://sandbox.api.byzantine.fi/v1/webhooks/deliveries/{delivery_id}/retry \
--header 'X-Pubkey: <x-pubkey>' \
--header 'X-Pubkey, X-Timestamp, X-Signature: <api-key>' \
--header 'X-Signature: <x-signature>' \
--header 'X-Timestamp: <x-timestamp>'import requests
url = "https://sandbox.api.byzantine.fi/v1/webhooks/deliveries/{delivery_id}/retry"
headers = {
"X-Pubkey": "<x-pubkey>",
"X-Timestamp": "<x-timestamp>",
"X-Signature": "<x-signature>",
"X-Pubkey, X-Timestamp, X-Signature": "<api-key>"
}
response = requests.post(url, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-Pubkey': '<x-pubkey>',
'X-Timestamp': '<x-timestamp>',
'X-Signature': '<x-signature>',
'X-Pubkey, X-Timestamp, X-Signature': '<api-key>'
}
};
fetch('https://sandbox.api.byzantine.fi/v1/webhooks/deliveries/{delivery_id}/retry', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"event": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"eventType": "<string>",
"sourceType": "<string>",
"sourceId": "<string>",
"payload": "<unknown>",
"payloadVersion": 123,
"createdAt": "2023-11-07T05:31:56Z",
"integratorId": "550e8400-e29b-41d4-a716-446655440000",
"accountId": "550e8400-e29b-41d4-a716-446655440000",
"userId": "550e8400-e29b-41d4-a716-446655440000",
"entityId": "550e8400-e29b-41d4-a716-446655440000",
"beneficiaryId": "550e8400-e29b-41d4-a716-446655440000",
"transactionId": "550e8400-e29b-41d4-a716-446655440000"
},
"delivery": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"subscriptionId": "550e8400-e29b-41d4-a716-446655440000",
"eventId": "550e8400-e29b-41d4-a716-446655440000",
"status": "pending",
"attemptCount": 123,
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"nextAttemptAt": "2023-11-07T05:31:56Z",
"terminalReason": "<string>",
"lastResponseSummary": null
},
"attempt": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"deliveryId": "550e8400-e29b-41d4-a716-446655440000",
"attemptNumber": 123,
"outcome": "succeeded",
"signedAt": "2023-11-07T05:31:56Z",
"signedTimestamp": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"signingKeyId": "550e8400-e29b-41d4-a716-446655440000",
"statusCode": 123,
"error": "<string>",
"latencyMs": 123,
"responseSummary": null,
"actor": "<string>"
}
}{
"error": "Resource not found",
"status": 404
}Authorizations
Headers
Integrator's ECDSA public key (P-256 curve, compressed SEC1 format). Example: 0x038fedef7c12f93bbf342ad8943b7a825a3b41f61c9dc118b2c718efebabbf62fd
Unix timestamp in seconds (UTC). Must be within tolerance window (1 minute) to prevent replay attacks. Example: 1760375826
ECDSA signature (DER-encoded, hex with 0x prefix). Signs the message: {timestamp}{METHOD}{path_and_query}{json_body}. Example: 0x3045022100...
Response
Webhook manual retry attempted
Routing block of the public envelope: only the ids relevant to the event are set, the others
are null. Also persisted as typed columns on webhook_events for history filters.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes

