Push Delivery
Push delivery is the recommended way to receive webhooks from Transyt. When an event is ingested, Transyt immediately POSTs it to your configured delivery_url.
How It Works
Section titled “How It Works”- A webhook arrives at Transyt from a provider
- Transyt verifies the signature and deduplicates the event
- If a
delivery_urlis configured, Transyt POSTs the event to your app - Your app returns a
2xxstatus code to acknowledge receipt - If delivery fails, Transyt retries with exponential backoff
Delivery Request
Section titled “Delivery Request”Transyt sends a POST request with:
Headers:
Content-Type: application/jsonX-Gateway-Signature: {HMAC-SHA256 hex digest}X-Gateway-Timestamp: {unix timestamp}Body:
{ "event_id": "550e8400-e29b-41d4-a716-446655440000", "provider": "stripe", "account_slug": "my-app", "event_type": "charge.succeeded", "external_id": "evt_1234567890", "payload": { "...full original webhook payload..." }}Success Responses
Section titled “Success Responses”Transyt considers delivery successful when your app returns any of these status codes:
200 OK201 Created202 Accepted204 No Content
Any other status code (or a connection error) triggers a retry.
Delivery URL Cascading
Section titled “Delivery URL Cascading”You can set delivery URLs at two levels:
- Account-level
delivery_url— Specific to this provider account (takes precedence) - Project-level
project_delivery_url— Shared fallback across accounts in the same project
The same cascading applies to delivery secrets (delivery_secret vs project_delivery_secret).
This lets you configure a single delivery URL for all providers in a project, while overriding it for specific accounts that need different handling.
Timeout
Section titled “Timeout”Delivery requests have a 30-second timeout. If your app doesn’t respond within 30 seconds, the delivery is marked as failed and will be retried.
Signature Verification
Section titled “Signature Verification”Always verify the X-Gateway-Signature header. See Verifying Signatures for implementation details.