Skip to main content

Replay webhook delivery

POST /webhook-subscriptions/{id}/deliveries/{deliveryId}/replay

Requires webhooks:write, public API access and webhook access for the organisation.

Authorization​

X-API-Key required

Parameters​

NameLocationTypeRequiredDescription
idpathstringYesRemyPass resource _id
deliveryIdpathstringYesRemyPass delivery record _id, distinct from the payload event ID

The subscription must be active. Only success, failed and cancelled deliveries can be replayed. The original payload and event ID are preserved, attempts reset to zero and replayCount increases. Delivery uses the current URL, headers and signing secret. Deduplicate by payload.id. A 200 response means queued, not delivered.

Request Examples​

curl -X POST "https://api.remypass.com/api/v1/public/webhook-subscriptions/507f1f77bcf86cd799439011/deliveries/507f1f77bcf86cd799439011/replay" \
  -H "Accept: application/json" \
  -H "X-API-Key: YOUR_API_KEY"

Responses​

StatusDescription
200Delivery queued again
400Bad request. The top-level message explains what is invalid and, where applicable, the errors array contains structured field details.
401Missing or invalid API key.
403The caller is not allowed to access this resource.
404Resource not found.
409Delivery is missing, belongs to another subscription, or is already pending/processing
429Rate limit exceeded.
500Server error.

200 Response Example​

{
"success": true,
"message": "Success",
"data": {
"_id": "507f1f77bcf86cd799439011",
"subscription": "507f1f77bcf86cd799439011",
"eventId": "example",
"event": "example",
"payload": {
"id": "evt_example",
"event": "member.created",
"timestamp": "2026-10-06T12:00:00.000Z",
"organisation_id": "507f1f77bcf86cd799439011",
"schema_version": "1",
"source": "api",
"test": true,
"data": {
"member": {
"id": "507f1f77bcf86cd799439011",
"company": "507f1f77bcf86cd799439010",
"memberId": "MEM001",
"name": "Example Member",
"email": "member@example.com",
"status": "active"
}
}
},
"status": "pending",
"attempts": 0,
"replayCount": 0,
"nextAttemptAt": "2026-10-06T12:00:00.000Z",
"statusCode": 1,
"errorMessage": "example",
"deliveredAt": "2026-10-06T12:00:00.000Z",
"expiresAt": "2026-10-06T12:00:00.000Z",
"createdAt": "2026-10-06T12:00:00.000Z",
"updatedAt": "2026-10-06T12:00:00.000Z"
}
}

Response Fields​

FieldTypeDescriptionAttributes
successboolean
messagestring
dataobject
Show child attributes
  • _id: string — RemyPass record _id
  • subscription: string — Related RemyPass record _id
  • eventId: string — event Id
  • event: string — event
  • payload: object
    Show child attributes
    • id: string — Stable event ID reused for retries and replay; may be a SHA-256 hash or UUID
    • event: scan.created, member.created, member.updated, member.status_changed, member.deleted, membership.created, membership.updated, membership.activated, membership.renewed, membership.expiring, membership.expired, membership.cancellation_scheduled, membership.cancellation_revoked, membership.cancelled, membership.payment_succeeded, membership.payment_failed, membership.refund_created, membership.refund_succeeded, membership.refund_failed, membership_type.created, membership_type.updated, membership_type.archived, membership_type.deleted, event.created, event.updated, event.published, event.unpublished, event.visibility_changed, event.cancelled, event.deleted, event_registration.created, event_registration.confirmed, event_registration.updated, event_registration.cancelled, event_registration.checked_in, event_order.created, event_order.confirmed, event_order.cancelled, event_order.payment_succeeded, event_order.payment_failed, event_order.refund_created, event_order.refund_succeeded, event_order.refund_failed, donation.created, donation.payment_succeeded, donation.payment_failed, donation.refund_created, donation.refund_succeeded, donation.refund_failed, donation.dispute_opened, donation.dispute_closed, donation_subscription.created, donation_subscription.activated, donation_subscription.updated, donation_subscription.past_due, donation_subscription.cancellation_scheduled, donation_subscription.cancellation_revoked, donation_subscription.cancelled, donation_campaign.created, donation_campaign.updated, donation_campaign.published, donation_campaign.unpublished, donation_campaign.deleted
    • timestamp: string (date-time)
    • organisation_id: string
    • schema_version: 1
    • source: string — Origin of the event
    • test: boolean
    • data: object — Event-specific data; consult the catalogue samples
  • status: pending, processing, success, failed, cancelled — status
  • attempts: number — attempts
  • replayCount: number — replay Count
  • nextAttemptAt: string (date-time) — next Attempt At
  • statusCode: number — status Code
  • errorMessage: string — error Message
  • deliveredAt: string (date-time) — delivered At
  • expiresAt: string (date-time) — expires At
  • createdAt: string (date-time) — created At
  • updatedAt: string (date-time) — updated At