# List Webhook Endpoints

Your tenant's webhook endpoints, without their secrets, and every event type an endpoint may ask for.

## Overview

- An endpoint is one more address for your events, beside the [webhook of each environment](https://docs.aureahub.com/docs/tenant-webhooks-list.md): up to **10 per environment**, each with its own URL, secret, event types, label and status. How deliveries work: [Webhooks & Events](https://docs.aureahub.com/docs/guide-events.md).
- Production endpoints first, then sandbox, oldest first; `environment` keeps one of the two. The secret is never returned: `secretHint` is the four characters before its final `=`.
- `eventTypes` in the answer lists every type an endpoint may ask for, each with the version of its body and the name of the schema that describes it in the [OpenAPI document](https://api.aureahub.com/v1/docs/json) (`components.schemas`).
- An endpoint's own `eventTypes` are the types it receives. Empty: the five `ramp.*` types only — every other type, `earn.*` included, reaches it only when it names it ([Event Types](https://docs.aureahub.com/docs/guide-events.md)).
- `mtls`, on each endpoint, only where your tenant has mutual TLS on deliveries [Coming soon, upon request](https://docs.aureahub.com/docs/feature-availability.md): whether its deliveries present Aurea's client certificate ([Mutual TLS](https://docs.aureahub.com/docs/guide-events.md)).
- For a tenant role that reads the webhooks — `owner`, `tenantadmin`, `non_signing_admin`, `auditor`, `security_admin` or `security_auditor` ([Roles](https://docs.aureahub.com/docs/authentication.md)), on its own tenant. `404` `Tenant not found` when the tenant doesn't exist.

## Endpoint

### `GET /v1/admin/tenants/{id}/webhook-endpoints`

Authentication: bearer token required.

Lists the tenant's webhook endpoints, without secrets, and the event types they may ask for.

**Path parameters**

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | yes | Tenant UUID |

**Query parameters**

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `environment` | string | no | `production` or `sandbox`; both when left out |

**Responses**

`200` OK

```json
{
  "endpoints": [
    {
      "id": "8a3c5e71-2b4d-4f60-9e1a-7c2d4b6f8e01",
      "environment": "production",
      "url": "https://ledger.example.com/aurea/events",
      "description": "Ledger service",
      "eventTypes": ["ramp.deposit.updated", "ramp.transaction.updated"],
      "status": "active",
      "secretHint": "Zt4w",
      "secretRotatedAt": "2026-10-06T08:12:40.511Z",
      "createdAt": "2026-10-06T08:12:40.511Z",
      "updatedAt": "2026-10-06T08:12:40.511Z"
    }
  ],
  "eventTypes": [
    { "type": "ramp.kyc.updated", "version": 1, "summary": "A user's verification with the bank ramp changed", "schema": "#/components/schemas/WebhookEvent.ramp.kyc.updated.v1" },
    { "type": "ramp.deposit.updated", "version": 1, "summary": "A fiat deposit to a user's virtual account changed", "schema": "#/components/schemas/WebhookEvent.ramp.deposit.updated.v1" },
    { "type": "ramp.payout.updated", "version": 1, "summary": "A user's payout to a bank account changed status", "schema": "#/components/schemas/WebhookEvent.ramp.payout.updated.v1" },
    { "type": "ramp.transaction.updated", "version": 1, "summary": "A bank ramp transaction of a user changed", "schema": "#/components/schemas/WebhookEvent.ramp.transaction.updated.v1" },
    { "type": "ramp.card_session.updated", "version": 1, "summary": "A card onramp session changed status", "schema": "#/components/schemas/WebhookEvent.ramp.card_session.updated.v1" },
    { "type": "earn.operation.updated", "version": 1, "summary": "An earn deposit or withdrawal changed state", "schema": "#/components/schemas/WebhookEvent.earn.operation.updated.v1" },
    { "type": "earn.redemption.updated", "version": 1, "summary": "A redemption an earn provider queued changed state", "schema": "#/components/schemas/WebhookEvent.earn.redemption.updated.v1" },
    { "type": "operation.created", "version": 1, "summary": "An operation was recorded (a send, an approval, a swap, a signature…), in the state its first step left it", "schema": "#/components/schemas/WebhookEvent.operation.created.v1" },
    { "type": "operation.state_changed", "version": 1, "summary": "An operation moved: a new state, or a new sub-state of the same one", "schema": "#/components/schemas/WebhookEvent.operation.state_changed.v1" },
    { "type": "operation.completed", "version": 1, "summary": "An operation completed (its final state COMPLETED)", "schema": "#/components/schemas/WebhookEvent.operation.completed.v1" },
    { "type": "operation.failed", "version": 1, "summary": "An operation failed (its final state FAILED)", "schema": "#/components/schemas/WebhookEvent.operation.failed.v1" },
    { "type": "server_credential.revoked", "version": 1, "summary": "One of the tenant's server credentials was revoked: its tokens are refused from the next request (the credential as the API answers it)", "schema": "#/components/schemas/WebhookEvent.server_credential.revoked.v1" },
    { "type": "account.created", "version": 1, "summary": "An account was created (one call, or one of a bulk creation)", "schema": "#/components/schemas/WebhookEvent.account.created.v1" },
    { "type": "account.updated", "version": 1, "summary": "An account's name, tags, visibility, users or customerRefId changed", "schema": "#/components/schemas/WebhookEvent.account.updated.v1" },
    { "type": "account.wallet_added", "version": 1, "summary": "A wallet was made for an account, or put in it", "schema": "#/components/schemas/WebhookEvent.account.wallet_added.v1" }
  ]
}
```

`403` Another tenant

```json
{ "statusCode": 403, "error": "ForbiddenError", "message": "Admin access required or you can only access your own tenant." }
```

---

Web version: https://docs.aureahub.com/#webhook-endpoints-list
