> ## Documentation Index
> Fetch the complete documentation index at: https://omniflow-vpn.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Get v1panelreportspayments

> Requires finance.read. Settlement, latency, and webhook intake per payment adapter, so an acquirer that starts refusing is a number that moved rather than a growing stuck-payment queue.
Two rates, because a customer abandoning a checkout and a gateway refusing a card are not the same event and only the second is the provider's: `settlementRate` is settled over settled plus failed, and `completionRate` adds abandoned. Intents still in flight appear in neither denominator — one created five minutes ago has not failed. Both rates are absent rather than zero when nothing reached a decision, because "nobody paid" and "everybody failed" are opposite facts.



## OpenAPI

````yaml https://raw.githubusercontent.com/kewldan/omniflow/main/api/openapi.yaml get /v1/panel/reports/payments
openapi: 3.0.3
info:
  title: Omniflow API
  version: 1.0.0
  description: >-
    Customer, commerce, payment, wallet, fulfillment, and operations API for
    Omniflow.
servers: []
security: []
paths:
  /v1/panel/reports/payments:
    get:
      tags:
        - panel
      description: >-
        Requires finance.read. Settlement, latency, and webhook intake per
        payment adapter, so an acquirer that starts refusing is a number that
        moved rather than a growing stuck-payment queue.

        Two rates, because a customer abandoning a checkout and a gateway
        refusing a card are not the same event and only the second is the
        provider's: `settlementRate` is settled over settled plus failed, and
        `completionRate` adds abandoned. Intents still in flight appear in
        neither denominator — one created five minutes ago has not failed. Both
        rates are absent rather than zero when nothing reached a decision,
        because "nobody paid" and "everybody failed" are opposite facts.
      operationId: getPanelPaymentHealth
      parameters:
        - $ref: '#/components/parameters/ReportSince'
        - $ref: '#/components/parameters/ReportUntil'
        - $ref: '#/components/parameters/ReportTimezone'
      responses:
        '200':
          description: Payment health
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PanelPaymentHealth'
        '403':
          $ref: '#/components/responses/Problem'
        '422':
          $ref: '#/components/responses/Problem'
components:
  parameters:
    ReportSince:
      in: query
      name: since
      schema:
        type: string
        format: date-time
      description: Start of the period, inclusive. Defaults to thirty days before `until`.
    ReportUntil:
      in: query
      name: until
      schema:
        type: string
        format: date-time
      description: End of the period, exclusive. Defaults to now.
    ReportTimezone:
      in: query
      name: timezone
      schema:
        type: string
        default: UTC
      description: >-
        The zone the day boundaries are computed in. "Sales on the third" means
        the operator's third, and a report bucketed in UTC puts an evening sale
        several hours east on the wrong day.
  schemas:
    PanelPaymentHealth:
      type: object
      required:
        - since
        - until
        - timezone
        - providers
        - byDay
        - webhooks
        - generatedAt
      properties:
        since:
          type: string
          format: date-time
        until:
          type: string
          format: date-time
        timezone:
          type: string
        providers:
          type: array
          items:
            $ref: '#/components/schemas/PanelProviderHealthLine'
        byDay:
          type: array
          items:
            $ref: '#/components/schemas/PanelProviderHealthDay'
        webhooks:
          type: array
          items:
            $ref: '#/components/schemas/PanelWebhookHealthLine'
        generatedAt:
          type: string
          format: date-time
    PanelProviderHealthLine:
      type: object
      required:
        - provider
        - currency
        - intents
        - settled
        - failed
        - abandoned
        - stillOpen
        - settledMinor
        - medianSettleSeconds
        - p95SettleSeconds
        - oldestOpenSeconds
      properties:
        provider:
          type: string
        currency:
          type: string
        intents:
          type: integer
          format: int64
        settled:
          type: integer
          format: int64
        failed:
          type: integer
          format: int64
          description: The provider refused or errored.
        abandoned:
          type: integer
          format: int64
          description: >-
            Cancelled or expired — the customer's decision, not the acquirer's
            performance.
        stillOpen:
          type: integer
          format: int64
          description: In neither rate's denominator.
        settledMinor:
          type: integer
          format: int64
        medianSettleSeconds:
          type: integer
          format: int64
          description: >-
            Measured from the settlement event, not from updated_at, which a
            later reconciliation would move.
        p95SettleSeconds:
          type: integer
          format: int64
        oldestOpenSeconds:
          type: integer
          format: int64
          description: >-
            Age of the oldest intent still waiting: the stuck-payment queue as a
            number.
        settlementRate:
          type: number
          description: >-
            settled / (settled + failed). Absent when nothing reached a
            decision.
        completionRate:
          type: number
          description: settled / (settled + failed + abandoned).
    PanelProviderHealthDay:
      type: object
      required:
        - day
        - provider
        - intents
        - settled
        - failed
      properties:
        day:
          type: string
          format: date
        provider:
          type: string
        intents:
          type: integer
          format: int64
        settled:
          type: integer
          format: int64
        failed:
          type: integer
          format: int64
    PanelWebhookHealthLine:
      type: object
      required:
        - provider
        - received
        - rejected
        - failed
        - processed
      properties:
        provider:
          type: string
        received:
          type: integer
          format: int64
        rejected:
          type: integer
          format: int64
          description: Failed signature verification.
        failed:
          type: integer
          format: int64
        processed:
          type: integer
          format: int64
    Problem:
      type: object
      required:
        - type
        - title
        - status
      properties:
        type:
          type: string
          format: uri
        title:
          type: string
        status:
          type: integer
        detail:
          type: string
        request_id:
          type: string
  responses:
    Problem:
      description: Request failed
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'

````

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