> ## Documentation Index
> Fetch the complete documentation index at: https://docs.prava.space/llms.txt
> Use this file to discover all available pages before exploring further.

# List Events

> Recover retained events in the order Prava recorded them.

Returns up to 50 events per page, oldest first, in the order Prava recorded them. Use it to recover events your receiver missed. Events are kept for 30 days.

| Filter | Description |
| - | - |
| `type` | One event type, for example `payment.failed`. |
| `resource_id` | A payment (`txn_…`), session (`ses_…`), quote request (`qreq_…`) or mandate (`mdt_…`) ID, up to 120 characters. |
| `from` | Inclusive ISO 8601 timestamp with a time zone. |
| `to` | Exclusive ISO 8601 timestamp with a time zone. With `from`, the range must increase and span at most 30 days. |

Keep the same filters while you pass `next_cursor` as `cursor`. Events are scoped to the application and environment of your secret key. Queued test events are included, with `"test": true`.


## OpenAPI

````yaml api-reference/openapi.json GET /v1/events
openapi: 3.1.0
info:
  title: Prava Payments API
  description: >-
    Server-side REST API for Prava Payments. All requests are authenticated with
    your secret key (sk_test_* in sandbox, sk_live_* in production).
  version: 1.0.0
servers:
  - url: https://sandbox.api.prava.space
    description: Sandbox
  - url: https://api.prava.space
    description: Production
security:
  - bearerAuth: []
paths:
  /v1/events:
    get:
      tags:
        - Webhooks
      summary: GET /v1/events
      description: >-
        Gated preview; application and environment are derived from the secret
        key. See the Webhooks guide for delivery and signing contracts.
      parameters:
        - name: cursor
          in: query
          schema:
            type: string
          description: >-
            Return next_cursor unchanged. Events starts at 0; deliveries starts
            with no cursor.
        - name: type
          in: query
          description: Filter by event type
          schema:
            type: string
            enum:
              - payment.credentials_ready
              - payment.succeeded
              - payment.failed
              - card_enrollment.completed
              - card_enrollment.failed
              - card_enrollment.cancelled
              - card_enrollment.expired
              - mandate.created
              - mandate.creation_failed
              - mandate.creation_cancelled
              - mandate.creation_expired
              - mandate.paused
              - mandate.resumed
              - mandate.cancelled
              - mandate.expired
              - quote.request_failed
        - name: resource_id
          in: query
          description: Filter by resource ID
          schema:
            type: string
            pattern: ^(txn|ses|qreq|mdt)_[A-Za-z0-9_]+$
            maxLength: 120
        - name: from
          in: query
          description: Inclusive occurrence time
          schema:
            type: string
            format: date-time
        - name: to
          in: query
          description: Exclusive occurrence time; increasing paired range at most 30 days
          schema:
            type: string
            format: date-time
      responses:
        '200':
          description: >-
            Successful operation; endpoints never include stored signing
            secrets.
          content:
            application/json:
              schema:
                type: object
                required:
                  - events
                  - next_cursor
                properties:
                  events:
                    type: array
                    maxItems: 50
                    items:
                      $ref: '#/components/schemas/WebhookEvent'
                    description: In the order Prava recorded them, oldest first.
                  next_cursor:
                    type:
                      - string
                      - 'null'
                    description: >-
                      Pass as `cursor` for the next page. `null` on the last
                      page.
        '400':
          description: Invalid input or cursor
        '404':
          description: Resource not found in this application
        '409':
          description: Verification, idempotency, or endpoint state conflict
        '503':
          description: Preview disabled or temporarily unavailable
components:
  schemas:
    WebhookEvent:
      type: object
      required:
        - id
        - type
        - schema_version
        - occurred_at
        - environment
        - account_id
        - resource
        - data
      description: The event envelope, exactly as delivered to your endpoints.
      properties:
        id:
          type: string
          description: Event ID, starting with `evt_`.
        type:
          $ref: '#/components/schemas/WebhookEventType'
        schema_version:
          type: string
          examples:
            - '2026-10-08'
        occurred_at:
          type: string
          format: date-time
        environment:
          type: string
          enum:
            - sandbox
            - production
        account_id:
          type: string
          description: Your application's account ID, starting with `ma_`.
        test:
          type: boolean
          description: '`true` on test events. Absent otherwise.'
        resource:
          type: object
          required:
            - type
            - id
            - version
          properties:
            type:
              type: string
              examples:
                - payment
            id:
              type: string
              examples:
                - txn_example
            version:
              type: integer
              description: Increases with each event for this resource.
        data:
          type: object
          additionalProperties: true
          description: Event-specific fields. See [Event types](/webhooks/events).
    WebhookEventType:
      type: string
      enum:
        - payment.credentials_ready
        - payment.succeeded
        - payment.failed
        - card_enrollment.completed
        - card_enrollment.failed
        - card_enrollment.cancelled
        - card_enrollment.expired
        - mandate.created
        - mandate.creation_failed
        - mandate.creation_cancelled
        - mandate.creation_expired
        - mandate.paused
        - mandate.resumed
        - mandate.cancelled
        - mandate.expired
        - quote.request_failed
      description: A webhook event type.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Your secret key: sk_test_* (sandbox) or sk_live_* (production).'

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.