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

# List portfolio accounts with funding

> Returns the WABAs in a Meta Business Portfolio that are visible to your project, each
with its funding status. Always cursor-paginated, ordered by creation time descending.

A listed account is not necessarily funded or currently reachable in Meta - evidence is
kept after disconnection.




## OpenAPI

````yaml /api/platform/v1/openapi-platform.yaml get /whatsapp/portfolios/{portfolio_id}/accounts
openapi: 3.1.0
info:
  title: Kapso Platform API
  version: 0.2.0
  description: >
    Build WhatsApp messaging into your product. Manage customers, connect phone
    numbers, send broadcasts, and handle conversations.
servers:
  - url: https://api.kapso.ai/platform/v1
    description: Production
security:
  - ApiKeyAuth: []
tags:
  - name: Customers
    description: Manage customer accounts
  - name: Setup Links
    description: WhatsApp onboarding via embedded signup
  - name: Phone Numbers
    description: Connect and manage WhatsApp numbers
  - name: Webhooks
    description: Subscribe to WhatsApp events
  - name: Display Names
    description: Update WhatsApp business display names
  - name: Broadcasts
    description: |
      Send template messages at scale

      **Alpha**: This API is in alpha and subject to change
  - name: Conversations
    description: Manage conversation state
  - name: Media
    description: Upload media files for WhatsApp messaging
  - name: Users
    description: Manage project team members
  - name: Inbox Embeds
    description: Create and manage embeddable inbox access links
  - name: Webhook Deliveries
    description: View webhook delivery attempts and their status
  - name: External API Logs
    description: View logs of external API calls made by the project
  - name: Log Search
    description: Search log events across API, Meta, workflow, and webhook sources
  - name: Events
    description: Emit and query project-scoped events
  - name: Provider Models
    description: List available AI provider models
  - name: WhatsApp Flows
    description: Build interactive WhatsApp Flows for surveys and forms
  - name: Contacts
    description: Manage WhatsApp contacts
  - name: Findings
    description: Detect recurring problems in conversations and investigate them with AI
  - name: Notifications
    description: >-
      Route project alerts to shared inboxes and Slack channels connected from
      the Kapso app
  - name: WhatsApp Funding
    description: >-
      Read Kapso funding status and recorded messaging and calling usage, and
      stop portfolio funding
paths:
  /whatsapp/portfolios/{portfolio_id}/accounts:
    get:
      tags:
        - WhatsApp Funding
      summary: List portfolio accounts with funding
      description: >
        Returns the WABAs in a Meta Business Portfolio that are visible to your
        project, each

        with its funding status. Always cursor-paginated, ordered by creation
        time descending.


        A listed account is not necessarily funded or currently reachable in
        Meta - evidence is

        kept after disconnection.
      operationId: listWhatsappPortfolioAccounts
      parameters:
        - name: portfolio_id
          in: path
          required: true
          description: Meta Business Portfolio ID.
          schema:
            type: string
        - name: limit
          in: query
          description: Maximum number of results per page.
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 20
        - name: after
          in: query
          description: Cursor for the next page. Pass `paging.next` unchanged.
          schema:
            type: string
        - name: before
          in: query
          description: Cursor for the previous page.
          schema:
            type: string
      responses:
        '200':
          description: Accounts with funding status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WhatsappFundingListResponse'
        '400':
          description: Invalid cursor or pagination parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '404':
          $ref: '#/components/responses/NotFoundError'
components:
  schemas:
    WhatsappFundingListResponse:
      type: object
      required:
        - data
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/WhatsappFunding'
        paging:
          $ref: '#/components/schemas/Paging'
    ErrorResponse:
      type: object
      required:
        - error
      properties:
        error:
          type: string
    WhatsappFunding:
      type: object
      required:
        - waba_id
        - business_portfolio_id
        - status
        - reason
        - message
        - currency
        - waba_currency
        - last_verified_at
        - last_checked_at
        - paid_messages
      properties:
        waba_id:
          type: string
          description: Meta WhatsApp Business Account ID.
          example: '4188880514714289'
        business_portfolio_id:
          type: string
          nullable: true
          description: Meta Business Portfolio ID that owns the WABA.
          example: '1991231921410797'
        status:
          type: string
          description: >
            Funding state derived from locally persisted evidence.


            - `funded`: funding is verified, the allocation is approved and
            observed funding IDs match.

            - `pending`: an initial funding operation is in progress.

            - `unknown`: previously verified, but current evidence cannot
            confirm funding.

            - `not_funded`: funding was never verified, including an attempt
            retired because the customer kept their existing Meta payment
            method.

            - `revoked`: Meta allocation evidence confirms the funding was
            deleted.
          enum:
            - funded
            - pending
            - unknown
            - not_funded
            - revoked
        reason:
          type: string
          nullable: true
          description: >-
            Machine-readable reason, `null` when `status` is `funded`. Treat as
            an extensible string; new values can be added.
          example: existing_payment_method
        message:
          type: string
          description: Display copy for `reason`. Do not parse.
          example: Existing Meta payment method kept.
        currency:
          type: string
          description: Kapso settlement currency.
          example: USD
        waba_currency:
          type: string
          nullable: true
          description: >-
            Funding snapshot currency, or the observed WABA currency when no
            funding attachment exists.
          example: USD
        last_verified_at:
          type: string
          format: date-time
          nullable: true
          description: Latest recorded transition into verified funding.
        last_checked_at:
          type: string
          format: date-time
          nullable: true
          description: Last funding check, including failed attempts.
        paid_messages:
          type: object
          description: >-
            Local billing pauses on this project's funding attachment. Not an
            authorization promise - balance, credentials and Meta restrictions
            can still block sending.
          required:
            - paused
            - reasons
          properties:
            paused:
              type: boolean
            reasons:
              type: array
              items:
                type: string
    Paging:
      type: object
      properties:
        cursors:
          $ref: '#/components/schemas/PaginationCursor'
        next:
          type: string
          nullable: true
        previous:
          type: string
          nullable: true
    PaginationCursor:
      type: object
      properties:
        before:
          type: string
          description: Cursor for previous page (Base64 encoded)
        after:
          type: string
          description: Cursor for next page (Base64 encoded)
  responses:
    UnauthorizedError:
      description: Missing or invalid API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    NotFoundError:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key

````