ParasendDocs
Sign in Start free

Webhook endpoints

Parasend tells your system about events by sending a small JSON payload to your HTTPS endpoint; fetch the resource for its full state. Every request is signed with HMAC-SHA256 over timestamp.body in the Parasend-Signature header; refuse a timestamp more than 5 minutes old. Failed attempts are retried with exponential backoff for up to 3 days. An endpoint may also require Parasend to authenticate (auth.mode): none (the signature only, the default), static_bearer, or oauth2_client_credentials against your own identity provider. The signature is sent whatever the mode. Parasend connects from fixed IP addresses, so you can allow-list them.

Endpoints

The WebhookEndpoint object

  • idstring

    The webhook endpoint's ID, starting whk_.

  • objectstring

    Always webhook_endpoint.

  • urlstring

    The address Parasend posts events to: HTTPS, on port 443, on a public host.

  • event_typesarray of string
    One of delivery.created delivery.rejected delivery.notified delivery.opened delivery.email_opened delivery.auth_failed delivery.confirmed delivery.downloaded delivery.delivered delivery.reminded delivery.bounced delivery.expired delivery.revoked delivery.consignment_failed delivery.evidence_sealed delivery.evidence_timestamp_deferred delivery.evidence_timestamp_recovered delivery.paper_pending_approval delivery.paper_dispatched delivery.paper_failed document.previewed batch.finalized batch.completed lookup.completed consent.granted consent.withdrawn invitation.sent link.opened otp.sent otp.verified otp.locked secret.attached secret.available secret.revealed secret.copied secret.expired secret.exhausted secret.revoked request.sent request.opened request.fulfilled request.expired request.closed request.reopened deletion.scheduled recipient_domain.verified recipient_domain.degraded recipient_domain.failed member.suspended member.restored member.removed batch.cancelled batch.policy_changed delivery.policy_changed email_sender.verified email_sender.degraded email_sender.failed email_sender.restored
  • secretstring · nullable

    HMAC signing secret. Present only in the creation response.

  • authobject

    How Parasend authenticates to your endpoint, in addition to the HMAC signature, which is always sent. Secrets are write-only: accepted on create and update, never returned. The endpoint shows mode, the settings that are not secret, and whether a secret is set.

    3 fields of auth
    • auth.modestringrequired

      none = HMAC only. static_bearer = an Authorization header carrying Bearer <token> with a customer-supplied token. oauth2_client_credentials = a token obtained from the customer's IdP by the client-credentials grant, cached until expiry, sent as the bearer.

      One of none static_bearer oauth2_client_credentials
      Default "none"
    • auth.static_bearerobject · nullable

      With mode: static_bearer: the token Parasend sends as Authorization: Bearer <token>, at most 4,096 characters (write-only; responses show token_set). null for any other mode.

      1 field of static_bearer
    • auth.oauth2object · nullable

      With mode: oauth2_client_credentials: your token endpoint (token_url, HTTPS), client_id, client_secret (write-only; responses show client_secret_set), optional scope and audience, and auth_style. null for any other mode.

      6 fields of oauth2
  • statusstring

    enabled: events are sent to it. disabled: paused; new events are not queued for it, and pending retries are cancelled when they come due.

    One of enabled disabled
  • createdstring · date-time

    When it was created, in ISO 8601 (UTC).

  • livemodeboolean

    true in live mode, false in test mode.

  • descriptionstring · nullable

    Your own note about the endpoint.

  • created_byobject · nullable

    Who created the endpoint: a person, or the holder of the API key used. null for endpoints created before this was recorded.

    3 fields of created_by
  • Events that ran out of retries and have not been replayed successfully. More than 0 marks the endpoint in the portal.

  • last_exhausted_atstring · date-time · nullable

    When an event last ran out of retries on this endpoint, in ISO 8601 (UTC); null if none ever has.

  • Events with at least one failed attempt whose retries are still running.

  • last_attemptobject · nullable

    The endpoint's latest attempt, in brief; null before the first.

  • previous_secret_expires_atstring · date-time · nullable

    Set for 24 hours after a roll; null otherwise.

  • delivery_sourcesobject · nullable

    null: every delivery's events.