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

# Get dashboard stats

> Returns all data needed to render the merchant dashboard in a single call: KPI cards, daily revenue trend, gateway split, and fees vs net breakdown.

**Authentication:** Merchant JWT (`x-auth-token`). The `:storeId` in the path must be included in the JWT's `stores` array — otherwise the endpoint returns 401.

**Timezone:** All date parameters are interpreted in COT (UTC-5). `date_to` is inclusive end-of-day. Dates in the response are COT calendar dates.

**Currency filter:** Strict — a store with both COP and USD wallets that requests `currency=COP` will receive only COP data.

**Zero-days:** `daily_revenue` and `fees_vs_net` include an entry for every day in the range, including days with no transactions (`value: 0`, `fees: 0`, `net_to_merchant: 0`). This ensures chart libraries render a continuous line/bar without gaps.

**Delta calculations:** `delta_revenue_pct` and `delta_orders_pct` compare the requested window against the immediately preceding window of equal length. A 30-day request (Apr 1–Apr 30) compares against the 30 days prior (Mar 2–Mar 31). Returns `null` when the previous window has zero activity (avoids division by zero).

**Gateway split:** Only includes gateways for which fee data has been synced from the ledger (`Order_financials`). `pct` values sum to ~1.0 with floating-point tolerance.




## OpenAPI

````yaml /api-reference/openapi.yaml get /merchant/{storeId}/dashboard/stats
openapi: 3.0.3
info:
  title: Wava Public API
  description: >
    # Wava API Documentation


    Wava Technologies provides a unified payment processing platform for
    Colombian and Latin American digital payment methods. This documentation
    covers all integration options available to merchants and partners.


    ## Integration Options


    | Method | Description | Best For |

    |--------|-------------|----------|

    | **Direct API** | Full control over payment flow | Custom checkout
    experiences |

    | **Payment Links** | Shareable URLs for payment collection | Quick
    invoicing, social selling |

    | **Dynamic Links** | Payment links without fixed amount | Donations, tips,
    variable pricing |

    | **Partners API** | Manage stores and process payments on their behalf |
    Platforms, aggregators, resellers |

    | **E-commerce Plugins** | Pre-built integrations | Tiendanube, WooCommerce
    stores |

    | **Stripe Connect** | Card payments via connected Stripe accounts |
    Merchants wanting card acceptance |


    ## Authentication


    All API requests require authentication via a merchant key in the request
    header:


    ```

    merchant-key: YOUR_MERCHANT_KEY

    ```


    Partner API requests additionally require two headers for two-factor
    authentication:


    ```

    X-API-Key: YOUR_PARTNER_API_KEY

    X-API-Secret: YOUR_PARTNER_SECRET_KEY

    ```


    Contact Wava support to obtain your credentials and configure your store for
    API access.


    ## Environments


    | Environment | Base URL | Purpose |

    |------------|----------|---------|

    | **Production** | `https://api.wava.co/v1` | Live transactions |

    | **Development** | `https://api.dev.wava.co/v1` | Testing and development |


    ## Supported Payment Methods


    | Gateway | Description | Currency | Requirements | Flow |

    |---------|-------------|----------|--------------|------|

    | **Nequi** | Mobile wallet | COP | Phone number + National ID | Push
    notification approval |

    | **Daviplata** | Digital wallet | COP | National ID + Document type (CC,
    CE, TI only) | SMS OTP verification |

    | **Breb (Bre-B)** | Interbank transfer | COP | National ID + Document type
    (CC, CE, TI only) | QR code / transfer key |

    | **Stripe** | Card payments | Multiple | Connected Stripe account | Card
    form (not available via Direct API) |


    **Note:** All direct API orders require `id_number` and `id_type` in the
    shopper object, regardless of the payment gateway. This is required for
    compliance and buyer identification. The API also accepts
    `national_id_number` and `id_national_document_type` as aliases.


    ## Changes from v1


    - **New gateway: Breb** — Interbank transfers via QR code or transfer key

    - **Payment Links API** — Create shareable payment URLs programmatically

    - **Dynamic Links** — Payment links where the buyer enters the amount

    - **Partners API** — Platform partners can operate on behalf of onboarded
    stores

    - **Simplified field names**: `id_number` and `id_type` are the recommended
    shopper fields. Legacy names `national_id_number` and
    `id_national_document_type` are still accepted as aliases.
  version: 2.0.0
  contact:
    name: Wava API Support
    email: soporte@wava.co
    url: https://wava.co/contacto
servers:
  - url: https://api.wava.co/v1
    description: Production server
  - url: https://api.dev.wava.co/v1
    description: Development server
security:
  - MerchantKeyAuth: []
tags:
  - name: Payment Gateways
    description: >
      Discover available payment methods for your store. Use these endpoints to
      determine which gateways are active, their requirements, and supported
      currencies.


      Call this endpoint before creating orders to dynamically build your
      payment form based on each gateway's requirements.
  - name: Orders
    description: >
      Create and manage payment orders with direct API processing. This is the
      core integration for merchants who want full control over the checkout
      experience.


      **Supported flows:**

      - **Nequi**: Push notification → buyer approves in app → webhook
      confirmation

      - **Daviplata**: Order created → SMS OTP sent → submit OTP → confirmation

      - **Breb**: Order created → QR code + transfer key returned → buyer
      completes transfer → webhook confirmation


      **Order lifecycle:** `pending` → `processing` → `confirmed` / `cancelled`
      / `refunded`


      **Important:** All direct API orders require `id_number` and `id_type` in
      the shopper object for compliance purposes, regardless of the payment
      gateway.
  - name: Links
    description: >
      Create shareable payment URLs that redirect buyers to a hosted checkout
      page. Payment links are ideal for invoicing, social media selling, or any
      scenario where you want to collect payment without building a custom
      checkout.


      **Payment link types:**

      - **Standard link**: Fixed amount — buyer selects payment method and
      completes payment

      - **Dynamic link**: No fixed amount — buyer enters the amount before
      paying. Create by omitting the `amount` field.


      Links are accessed by buyers at `https://checkout.wava.co/{hash}`.
  - name: Partners
    description: >
      The Partners API allows approved platform partners to manage stores and
      process payments on their behalf. Partners can onboard merchants, create
      orders and payment links, and access transaction data for their portfolio
      of stores.


      **Authentication**: Partners include both the `X-API-Key` and
      `X-API-Secret` headers (partner two-factor authentication) plus the
      `merchant-key` (store identification). The partner credentials
      authenticate the partner, and the merchant key identifies which store the
      operation is for.


      Contact Wava to apply for partner access.
  - name: Utilities
    description: >
      Helper endpoints that provide reference data needed for payment
      processing, such as document types by country. Use these to build
      localized payment forms.
  - name: Integrations
    description: >
      Pre-built integrations for e-commerce platforms and third-party services.


      **Available integrations:**

      - **Tiendanube**: Automatic payment processing for Tiendanube stores

      - **WooCommerce**: WordPress plugin for WooCommerce checkout

      - **Stripe Connect**: Accept card payments through a connected Stripe
      account


      See the dedicated guide for each integration for setup instructions and
      configuration.
externalDocs:
  description: Full Documentation Portal
  url: https://docs.wava.co
paths:
  /merchant/{storeId}/dashboard/stats:
    get:
      tags:
        - Merchant Dashboard
      summary: Get dashboard stats
      description: >
        Returns all data needed to render the merchant dashboard in a single
        call: KPI cards, daily revenue trend, gateway split, and fees vs net
        breakdown.


        **Authentication:** Merchant JWT (`x-auth-token`). The `:storeId` in the
        path must be included in the JWT's `stores` array — otherwise the
        endpoint returns 401.


        **Timezone:** All date parameters are interpreted in COT (UTC-5).
        `date_to` is inclusive end-of-day. Dates in the response are COT
        calendar dates.


        **Currency filter:** Strict — a store with both COP and USD wallets that
        requests `currency=COP` will receive only COP data.


        **Zero-days:** `daily_revenue` and `fees_vs_net` include an entry for
        every day in the range, including days with no transactions (`value: 0`,
        `fees: 0`, `net_to_merchant: 0`). This ensures chart libraries render a
        continuous line/bar without gaps.


        **Delta calculations:** `delta_revenue_pct` and `delta_orders_pct`
        compare the requested window against the immediately preceding window of
        equal length. A 30-day request (Apr 1–Apr 30) compares against the 30
        days prior (Mar 2–Mar 31). Returns `null` when the previous window has
        zero activity (avoids division by zero).


        **Gateway split:** Only includes gateways for which fee data has been
        synced from the ledger (`Order_financials`). `pct` values sum to ~1.0
        with floating-point tolerance.
      operationId: getMerchantDashboardStats
      parameters:
        - name: storeId
          in: path
          required: true
          description: >-
            The store ID to fetch dashboard data for. Must be owned by the
            authenticated user.
          schema:
            type: integer
            example: 2366
        - name: currency
          in: query
          required: true
          description: 3-letter currency code (e.g. COP, USD).
          schema:
            type: string
            example: COP
            pattern: ^[A-Z]{3}$
        - name: date_from
          in: query
          required: true
          description: Start of the date range (YYYY-MM-DD, COT timezone, inclusive).
          schema:
            type: string
            format: date
            example: '2026-04-01'
        - name: date_to
          in: query
          required: true
          description: >-
            End of the date range (YYYY-MM-DD, COT timezone, inclusive
            end-of-day).
          schema:
            type: string
            format: date
            example: '2026-04-30'
      responses:
        '200':
          description: Dashboard stats
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    type: object
                    properties:
                      currency:
                        type: string
                        example: COP
                      date_from:
                        type: string
                        format: date
                        example: '2026-04-01'
                      date_to:
                        type: string
                        format: date
                        example: '2026-04-30'
                      total_revenue:
                        type: integer
                        description: >-
                          Total confirmed revenue in the period (minor units /
                          integer COP cents).
                        example: 12345678
                      total_orders:
                        type: integer
                        description: Number of confirmed orders in the period.
                        example: 142
                      conversion_rate:
                        type: number
                        format: float
                        description: >-
                          Confirmed orders / total attempted orders × 100. Null
                          when no attempts.
                        example: 85.5
                      delta_revenue_pct:
                        type: number
                        format: float
                        nullable: true
                        description: >-
                          Revenue change vs previous equal-length window (%).
                          Null when previous window is zero.
                        example: 12.5
                      delta_orders_pct:
                        type: number
                        format: float
                        nullable: true
                        description: >-
                          Order count change vs previous equal-length window
                          (%). Null when previous window is zero.
                        example: 8.3
                      daily_revenue:
                        type: array
                        description: >-
                          Daily revenue for the line chart. Includes every day
                          in the range (zero-padded).
                        items:
                          type: object
                          properties:
                            date:
                              type: string
                              format: date
                              example: '2026-04-01'
                            value:
                              type: integer
                              example: 50000
                      gateway_split:
                        type: array
                        description: >-
                          Revenue breakdown by payment gateway for the donut
                          chart.
                        items:
                          type: object
                          properties:
                            gateway:
                              type: string
                              example: breb
                            tpv:
                              type: integer
                              description: Total payment volume for this gateway.
                              example: 7000000
                            pct:
                              type: number
                              format: float
                              description: >-
                                Fraction of total TPV (0.0–1.0). All values sum
                                to ~1.0.
                              example: 0.7
                      fees_vs_net:
                        type: array
                        description: >-
                          Daily fee vs net breakdown for the stacked bar chart.
                          Same date range and zero-padding as daily_revenue.
                        items:
                          type: object
                          properties:
                            date:
                              type: string
                              format: date
                              example: '2026-04-01'
                            net_to_merchant:
                              type: integer
                              description: Amount credited to the merchant after fees.
                              example: 47500
                            fees:
                              type: integer
                              description: Wava fee deducted for the day.
                              example: 2500
              examples:
                success:
                  summary: Typical 30-day response
                  value:
                    result:
                      currency: COP
                      date_from: '2026-04-01'
                      date_to: '2026-04-30'
                      total_revenue: 10000000
                      total_orders: 142
                      conversion_rate: 85.5
                      delta_revenue_pct: 12.5
                      delta_orders_pct: 8.3
                      daily_revenue:
                        - date: '2026-04-01'
                          value: 50000
                        - date: '2026-04-02'
                          value: 0
                      gateway_split:
                        - gateway: breb
                          tpv: 7000000
                          pct: 0.7
                        - gateway: nequi
                          tpv: 2000000
                          pct: 0.2
                        - gateway: daviplata
                          tpv: 1000000
                          pct: 0.1
                      fees_vs_net:
                        - date: '2026-04-01'
                          net_to_merchant: 47500
                          fees: 2500
                        - date: '2026-04-02'
                          net_to_merchant: 0
                          fees: 0
        '400':
          description: Missing or invalid parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: JWT does not authorize access to this storeId
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation error (missing required params)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
        - MerchantJWTAuth: []
components:
  schemas:
    ErrorResponse:
      type: object
      required:
        - code
        - message
        - error
      properties:
        code:
          type: integer
          description: Numeric error code grouped by category. See Error Codes section.
          example: 4001
        api_code:
          type: string
          description: Machine-readable error identifier.
          example: PAYMENT_GATEWAY_REQUIRED
        message:
          type: string
          description: Human-readable error message.
          example: Payment gateway is required
        description:
          type: string
          description: Detailed explanation and resolution guidance.
          example: A payment gateway must be specified to process the order
        error:
          type: boolean
          example: true
        gateway_name:
          type: string
          description: Relevant payment gateway (included in gateway-specific errors).
          example: Nequi
        provided_currency:
          type: string
          description: Currency provided in request (included in currency errors).
          example: USD
        supported_currency:
          type: string
          description: Expected currency (included in currency errors).
          example: COP
        validation_errors:
          type: array
          description: Field-level validation errors.
          items:
            type: object
            properties:
              field:
                type: string
                example: phone_number
              message:
                type: string
                example: Phone number is required for Nequi payments
  responses:
    InternalServerError:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            internal_error:
              summary: Internal server error
              value:
                code: 7001
                api_code: INTERNAL_SERVER_ERROR
                message: Internal server error
                description: An unexpected error occurred while processing your request
                error: true
  securitySchemes:
    MerchantKeyAuth:
      type: apiKey
      in: header
      name: merchant-key
      description: |
        Merchant key for store identification. Required for all API requests.
        ```
        merchant-key: YOUR_MERCHANT_KEY
        ```

````