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

# List events

> Every event from the last 30 days, newest first, whether or not an endpoint was subscribed to it. Use it to catch up after downtime.




## OpenAPI

````yaml /api-reference/openapi.yaml get /events
openapi: 3.1.0
info:
  title: Infinity API
  version: v1
  description: >
    Send cross-border payouts from your USD balance to payees' bank accounts.


    - **Hosts:** `https://sandbox-api.infinityapp.in/v1` for testing and
    `https://api.infinityapp.in/v1` for live money.

    - **Auth:** `Authorization: Bearer sk_test_…` on the sandbox, `sk_live_…` on
    live.

    - **JSON:** field names are snake_case. Amounts are decimal strings
    (`"500.00"`), currency codes are lowercase ISO 4217 (`"eur"`), countries are
    uppercase ISO 3166 alpha-2 (`"NL"`), and timestamps are ISO 8601 in UTC.

    - **Fixed shapes:** every documented response field is always present. It's
    `null` when there's no value, and `metadata` is `{}` when empty.

    - **Strict input:** an unknown field or query parameter gets a `400
    unknown_parameter`, and a number where a string is expected gets a `400
    type_mismatch`.

    - **Lists:** `limit` (1–100, default 20) and `starting_after` (the last id
    you saw). Responses are `{ "data": [...], "has_more": true }`, newest first.

    - **Idempotency:** the `Idempotency-Key` header is required on money-moving
    creates and optional on the others. The same key with the same body within
    24 hours returns the original response.

    - **Request ID:** every response has a `Request-Id` header. Quote it to
    support.

    - **Rate limits:** 20 requests per second per key, with bursts up to 40.
    Over that gets a `429` with `Retry-After`.

    - **Versioning:** `/v1` only grows. New fields, endpoints, enum values,
    event types and error codes can be added at any time, so ignore what you
    don't recognise.
servers:
  - url: https://sandbox-api.infinityapp.in/v1
    description: Sandbox (sk_test_ keys)
  - url: https://api.infinityapp.in/v1
    description: Live (sk_live_ keys)
security:
  - apiKey: []
tags:
  - name: Account
    description: Your account profile and settings.
  - name: Wallets
    description: >-
      Funds held for you, one wallet per currency. Every payout names the wallet
      that pays for it.
  - name: Funding addresses
    description: Bank details you send money to, to fund your balance.
  - name: Deposits
    description: Money credited to your balance.
  - name: Currencies
    description: The currencies we support and which ones you can pay out in.
  - name: Exchange rates
    description: Indicative rates. A quote is the price.
  - name: Payees
    description: The people and businesses you pay.
  - name: Payee addresses
    description: >-
      A payee's bank account, sent by you instead of the payee filling in our
      hosted form.
  - name: Bank requirements
    description: The fields each currency and rail needs.
  - name: Quotes
    description: Price payouts before you send them. Nothing is saved.
  - name: Payouts
    description: Create 1 to 100 payouts in one call, then track, update or cancel them.
  - name: Batches
    description: The set of payouts created by one Create payouts call.
  - name: Webhook endpoints
    description: URLs we notify when something changes.
  - name: Events
    description: Every change from the last 30 days, to catch up on missed webhooks.
paths:
  /events:
    get:
      tags:
        - Events
      summary: List events
      description: >
        Every event from the last 30 days, newest first, whether or not an
        endpoint was subscribed to it. Use it to catch up after downtime.
      operationId: listEvents
      parameters:
        - $ref: '#/components/parameters/Limit'
        - $ref: '#/components/parameters/StartingAfter'
        - name: type
          in: query
          description: One exact event type.
          schema:
            $ref: '#/components/schemas/EventType'
        - $ref: '#/components/parameters/CreatedGte'
        - $ref: '#/components/parameters/CreatedLte'
      responses:
        '200':
          description: Events, newest first.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventList'
        '400':
          description: >-
            `invalid_event_request` (a bad list parameter or an unknown `type`),
            `unknown_parameter`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimited'
        5XX:
          $ref: '#/components/responses/ServerError'
components:
  parameters:
    Limit:
      name: limit
      in: query
      description: How many to return.
      schema:
        type: integer
        minimum: 1
        maximum: 100
        default: 20
    StartingAfter:
      name: starting_after
      in: query
      description: The last id of the previous page. Returns the items after it.
      schema:
        type: string
    CreatedGte:
      name: created[gte]
      in: query
      description: Created at or after this time.
      schema:
        type: string
        format: date-time
        example: '2026-10-01T00:00:00Z'
    CreatedLte:
      name: created[lte]
      in: query
      description: Created at or before this time.
      schema:
        type: string
        format: date-time
        example: '2026-10-31T23:59:59Z'
  schemas:
    EventType:
      type: string
      enum:
        - payout.created
        - payout.updated
        - payout.awaiting_funds
        - payout.pending
        - payout.processing
        - payout.paid
        - payout.failed
        - payout.returned
        - payout.canceled
        - payout.expired
        - batch.created
        - batch.processing
        - batch.awaiting_funds
        - batch.awaiting_payees
        - batch.completed
        - batch.partially_completed
        - batch.failed
        - batch.canceled
        - payee.created
        - payee.details_pending
        - payee.verifying
        - payee.active
        - payee.inactive
        - deposit.created
    EventList:
      type: object
      required:
        - data
        - has_more
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Event'
        has_more:
          type: boolean
          example: false
    ErrorResponse:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - type
            - code
            - message
            - param
            - request_id
            - timestamp
          properties:
            type:
              type: string
              enum:
                - invalid_request_error
                - authentication_error
                - permission_error
                - rate_limit_error
                - api_error
              description: The class of error, from the HTTP status.
            code:
              type: string
              description: >-
                What went wrong. Branch on this. New codes can be added, so
                handle an unknown one by its HTTP status.
              example: invalid_payout_request
            message:
              type: string
              description: For a developer to read. It can change, so never parse it.
              example: amount has more than 2 decimals for eur.
            param:
              type:
                - string
                - 'null'
              description: >-
                The field at fault, with its path: `amount`,
                `items[3].payee_id`, `beneficiary_address.postal_code` or
                `Idempotency-Key`.
              example: amount
            request_id:
              type: string
              description: The same as the `Request-Id` header.
              example: req_4f4b2bjc4mamxuxm
            timestamp:
              type: string
              format: date-time
              example: '2026-10-29T10:00:00Z'
    Event:
      description: >-
        The start of `type` says which object `data.object` is. It's a snapshot
        from when the event happened.
      oneOf:
        - $ref: '#/components/schemas/PayoutEvent'
        - $ref: '#/components/schemas/BatchEvent'
        - $ref: '#/components/schemas/PayeeEvent'
        - $ref: '#/components/schemas/DepositEvent'
    PayoutEvent:
      allOf:
        - $ref: '#/components/schemas/EventEnvelope'
        - type: object
          properties:
            type:
              type: string
              example: payout.paid
            data:
              type: object
              required:
                - object
              properties:
                object:
                  $ref: '#/components/schemas/Payout'
    BatchEvent:
      allOf:
        - $ref: '#/components/schemas/EventEnvelope'
        - type: object
          properties:
            type:
              type: string
              example: batch.completed
            data:
              type: object
              required:
                - object
              properties:
                object:
                  $ref: '#/components/schemas/Batch'
    PayeeEvent:
      allOf:
        - $ref: '#/components/schemas/EventEnvelope'
        - type: object
          properties:
            type:
              type: string
              example: payee.active
            data:
              type: object
              required:
                - object
              properties:
                object:
                  $ref: '#/components/schemas/Payee'
    DepositEvent:
      allOf:
        - $ref: '#/components/schemas/EventEnvelope'
        - type: object
          properties:
            type:
              type: string
              example: deposit.created
            data:
              type: object
              required:
                - object
              properties:
                object:
                  $ref: '#/components/schemas/Deposit'
    EventEnvelope:
      type: object
      required:
        - id
        - type
        - created_at
        - api_version
        - environment
        - data
      properties:
        id:
          type: string
          description: Also sent as the `webhook-id` header.
          example: event_2wq8n5hkd7xm3rpa
        type:
          $ref: '#/components/schemas/EventType'
        created_at:
          type: string
          format: date-time
          description: When the change happened, not when it was delivered.
          example: '2026-10-26T10:05:30Z'
        api_version:
          type: string
          enum:
            - v1
        environment:
          type: string
          enum:
            - live
            - sandbox
          example: sandbox
    Payout:
      type: object
      required:
        - id
        - batch_id
        - wallet_id
        - payee_id
        - amount
        - currency
        - debit_amount
        - debit_currency
        - fee
        - fee_bearer
        - rate
        - payee_amount
        - payee_currency
        - status
        - failure_code
        - failure_message
        - hold_expires_at
        - description
        - reference
        - metadata
        - created_at
        - updated_at
      properties:
        id:
          type: string
          example: payout_4kz9xq7m2w8dn3ra
        batch_id:
          type: string
          example: batch_fcb4cuwtd6fcbmwr
        wallet_id:
          type: string
          description: The wallet that paid.
          example: wallet_7t4m9k2qx8d3hn5r
        payee_id:
          type: string
          example: payee_c8pnahcrxqzd3z8d
        amount:
          type: string
          description: What you entered.
          example: '500.00'
        currency:
          type: string
          description: The currency of `amount`. `usd` on INR accounts.
          example: eur
        debit_amount:
          type:
            - string
            - 'null'
          description: What left your balance, fee included.
          example: '568.35'
        debit_currency:
          type: string
          description: The currency of the paying wallet.
          example: usd
        fee:
          type:
            - string
            - 'null'
          description: In `debit_currency`.
          example: '10.00'
        fee_bearer:
          type: string
          enum:
            - account
            - payee
        rate:
          type:
            - string
            - 'null'
          description: >-
            From `debit_currency` to `payee_currency`. `null` until it's known
            (INR before settlement).
          example: '0.8955'
        payee_amount:
          type:
            - string
            - 'null'
          description: >-
            What the payee receives. An estimate until `paid`, then the actual.
            On INR payouts it's `null` until `paid`.
          example: '500.00'
        payee_currency:
          type: string
          example: eur
        status:
          $ref: '#/components/schemas/PayoutStatus'
        failure_code:
          $ref: '#/components/schemas/FailureCode'
        failure_message:
          type:
            - string
            - 'null'
          description: A fixed sentence for each `failure_code`.
          example: null
        hold_expires_at:
          type:
            - string
            - 'null'
          format: date-time
          description: Set if the payout was ever held.
          example: null
        description:
          type:
            - string
            - 'null'
          description: Shared by every payout in a batch.
          example: October invoice
        reference:
          type:
            - string
            - 'null'
          example: inv-1042
        metadata:
          $ref: '#/components/schemas/Metadata'
        created_at:
          type: string
          format: date-time
          example: '2026-10-26T10:05:00Z'
        updated_at:
          type: string
          format: date-time
          example: '2026-10-26T10:05:00Z'
    Batch:
      type: object
      required:
        - id
        - number
        - name
        - description
        - status
        - wallet_id
        - debit_currency
        - total_debit
        - total_fee
        - payee_count
        - payout_summary
        - payouts
        - reference
        - metadata
        - created_at
        - updated_at
      properties:
        id:
          type: string
          example: batch_fcb4cuwtd6fcbmwr
        number:
          type: string
          description: Your account's running count, as on the dashboard.
          example: PB-2026-21
        name:
          type: string
          description: >-
            The name sent on creation, or `API batch` plus the UTC date and
            time.
          example: October invoices
        description:
          type:
            - string
            - 'null'
          example: October invoices
        status:
          $ref: '#/components/schemas/BatchStatus'
        wallet_id:
          type: string
          description: The wallet that paid.
          example: wallet_7t4m9k2qx8d3hn5r
        debit_currency:
          type: string
          description: The currency of the paying wallet.
          example: usd
        total_debit:
          type: string
          description: The sum of its payouts' `debit_amount`.
          example: '1136.70'
        total_fee:
          type:
            - string
            - 'null'
          example: '20.00'
        payee_count:
          type: integer
          example: 2
        payout_summary:
          $ref: '#/components/schemas/PayoutSummary'
        payouts:
          type: array
          description: The batch's payouts in request order.
          items:
            $ref: '#/components/schemas/Payout'
        reference:
          type:
            - string
            - 'null'
          example: run-2026-10
        metadata:
          $ref: '#/components/schemas/Metadata'
        created_at:
          type: string
          format: date-time
          example: '2026-10-26T10:05:00Z'
        updated_at:
          type: string
          format: date-time
          example: '2026-10-26T10:05:00Z'
    Payee:
      type: object
      required:
        - id
        - first_name
        - last_name
        - email
        - currency
        - status
        - send_invite
        - onboarding_url
        - reference
        - metadata
        - created_at
        - updated_at
      properties:
        id:
          type: string
          example: payee_c8pnahcrxqzd3z8d
        first_name:
          type: string
          example: Maria
        last_name:
          type: string
          example: Lopez
        email:
          type: string
          example: maria@example.com
        currency:
          type:
            - string
            - 'null'
          description: >-
            The payee's payout currency once it's known: set by their address,
            or by their first payout on hold. Always `inr` on accounts enabled
            for India.
          example: eur
        status:
          $ref: '#/components/schemas/PayeeStatus'
        send_invite:
          type: boolean
          description: '`false` means we never email this payee.'
          example: false
        onboarding_url:
          type:
            - string
            - 'null'
          description: >-
            The link where the payee enters their own bank details. Only in the
            create and resend-invite responses, and only when `send_invite` is
            `false`.
          example: https://…
        reference:
          type:
            - string
            - 'null'
          example: vendor-829
        metadata:
          $ref: '#/components/schemas/Metadata'
        created_at:
          type: string
          format: date-time
          example: '2026-10-26T10:00:00Z'
        updated_at:
          type: string
          format: date-time
          example: '2026-10-26T10:00:00Z'
    Deposit:
      type: object
      required:
        - id
        - wallet_id
        - amount
        - currency
        - rail
        - description
        - created_at
      properties:
        id:
          type: string
          example: deposit_9hr9t3wfre5ebpk2
        wallet_id:
          type: string
          description: The wallet that was credited.
          example: wallet_7t4m9k2qx8d3hn5r
        amount:
          $ref: '#/components/schemas/Amount'
        currency:
          type: string
          example: usd
        rail:
          type:
            - string
            - 'null'
          enum:
            - ach
            - wire
            - swift
            - sepa
            - faster_payments
            - spei
            - null
          description: >-
            How it arrived. `null` for a manual credit, including sandbox test
            deposits.
          example: wire
        description:
          type:
            - string
            - 'null'
          example: Top-up October
        created_at:
          type: string
          format: date-time
          description: When it was credited.
          example: '2026-10-23T09:00:00Z'
    PayoutStatus:
      type: string
      description: >
        - `awaiting_payee`: money reserved, waiting for the payee to finish
        onboarding.

        - `awaiting_funds`: the payee is ready, but the balance was too low at
        release.

        - `pending`: created and handed to the payout network.

        - `processing`: accepted and on its way.

        - `paid`: delivered.

        - `failed`: not delivered; `failure_code` says why.

        - `returned`: delivered, then sent back by the payee's bank.

        - `canceled`: canceled by you while held.

        - `expired`: the hold ran out before the payee was ready.
      enum:
        - awaiting_payee
        - awaiting_funds
        - pending
        - processing
        - paid
        - failed
        - returned
        - canceled
        - expired
      example: pending
    FailureCode:
      type:
        - string
        - 'null'
      description: Why a payout `failed` or was `returned`. New codes can be added.
      enum:
        - below_minimum
        - insufficient_funds
        - bank_account_missing
        - bank_details_invalid
        - rate_changed
        - returned_by_bank
        - undeliverable
        - refunded
        - refund_failed
        - canceled
        - processing_error
        - null
      example: null
    Metadata:
      type: object
      description: >-
        Up to 20 key-value pairs of your own. Keys up to 40 characters, values
        up to 500, strings only.
      maxProperties: 20
      additionalProperties:
        type: string
        maxLength: 500
      example:
        invoice: inv-1042
    BatchStatus:
      type: string
      description: Worked out from the batch's payouts, so it can move more than once.
      enum:
        - pending
        - processing
        - completed
        - partially_completed
        - failed
        - awaiting_payees
        - awaiting_funds
        - canceled
      example: processing
    PayoutSummary:
      type: object
      description: How many of the batch's payouts are in each status.
      required:
        - total
        - pending
        - processing
        - paid
        - failed
        - returned
        - awaiting_payee
        - awaiting_funds
        - canceled
        - expired
      properties:
        total:
          type: integer
          example: 2
        pending:
          type: integer
          example: 0
        processing:
          type: integer
          example: 1
        paid:
          type: integer
          example: 0
        failed:
          type: integer
          example: 0
        returned:
          type: integer
          example: 0
        awaiting_payee:
          type: integer
          example: 1
        awaiting_funds:
          type: integer
          example: 0
        canceled:
          type: integer
          example: 0
        expired:
          type: integer
          example: 0
    PayeeStatus:
      type: string
      description: |
        - `invited`: created; hasn't signed up yet.
        - `details_pending`: signed up; hasn't sent bank details yet.
        - `verifying`: details sent; checks are running.
        - `active`: can be paid.
        - `inactive`: can't be paid.
      enum:
        - invited
        - details_pending
        - verifying
        - active
        - inactive
      example: invited
    Amount:
      type: string
      description: A decimal string with at most the currency's `decimals`.
      pattern: ^[0-9]+(\.[0-9]+)?$
      example: '500.00'
  responses:
    Unauthorized:
      description: >-
        `missing_authorization`, `invalid_api_key` (no such key, or it's
        revoked), `wrong_environment` (a test key on live, or a live key on the
        sandbox).
      headers:
        Request-Id:
          $ref: '#/components/headers/RequestId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              type: authentication_error
              code: wrong_environment
              message: This is a live key. Use it on api.infinityapp.in.
              param: null
              request_id: req_4f4b2bjc4mamxuxm
              timestamp: '2026-10-29T10:00:00Z'
    Forbidden:
      description: '`account_inactive`: the account behind this key isn''t active.'
      headers:
        Request-Id:
          $ref: '#/components/headers/RequestId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    RateLimited:
      description: >-
        `rate_limited`: over 20 requests per second for this key. Wait for
        `Retry-After` and try again.
      headers:
        Retry-After:
          $ref: '#/components/headers/RetryAfter'
        Request-Id:
          $ref: '#/components/headers/RequestId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    ServerError:
      description: >-
        `internal_server_error` (500, our fault) or `service_unavailable` (503,
        something we depend on is down). Safe to retry with the same
        `Idempotency-Key`.
      headers:
        Request-Id:
          $ref: '#/components/headers/RequestId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  headers:
    RequestId:
      description: This call's id. Quote it to support.
      schema:
        type: string
        example: req_4f4b2bjc4mamxuxm
    RetryAfter:
      description: Seconds to wait before retrying.
      schema:
        type: integer
        example: 1
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
      description: >
        Your secret key: `sk_test_…` on the sandbox host, `sk_live_…` on live. A
        key on the wrong host gets a `401 wrong_environment`.

        Keys are secret. Keep them on your server, never in a browser or app.

````

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