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

# List batches

> Every batch for the calling org — paginated, unlike the Sender/Beneficiary lists (a batch count can grow indefinitely). Returns bare batch rows only, no orders — use Get a batch for one batch's full detail.



## OpenAPI

````yaml openapi-payouts-v2-0-0.json get /api/v2/payouts
openapi: 3.0.3
info:
  title: Mansa Payout API — v2
  description: >
    API for registering Senders and Beneficiaries and for creating, funding, and
    tracking cross-border payout batches.


    ## Rate Limiting

    - 100 requests per minute per API key

    - Specific endpoints may have additional limits


    ## Security

    - All endpoints require authentication

    - Sender and Beneficiary profiles must clear KYC/KYB review (`status:
    "ready"`) before they can be used on an order


    ## Error Handling

    This API returns Nest's default error shape rather than a custom envelope.


    - **2xx** — The request succeeded.

    - **4xx** — The request failed due to a problem with the information
    provided.

    - **5xx** — A problem occurred on our servers or with an upstream
    dependency.


    Most errors have the shape:


    ```json

    {
      "statusCode": 400,
      "message": "..."
    }

    ```


    A `422` from a validation failure returns an array of per-field messages
    instead of one string:


    ```json

    {
      "statusCode": 422,
      "message": ["legal_name should not be empty", "country_code must be a valid ISO 3166-1 alpha-2 code"]
    }

    ```
  version: v2
  contact:
    name: Mansa API Support
    email: api-support@mansa.io
    url: https://docs.mansa.io
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
servers:
  - url: https://api.mansa.xyz
    description: Production server
  - url: https://sandbox-api.mansa.xyz
    description: Sandbox server
security:
  - ApiKeyAuth: []
    BearerAuth: []
tags:
  - name: Organizations
    description: Product entitlement checks
  - name: Senders
    description: Registering and verifying the org's own paying entities
  - name: Beneficiaries
    description: Registering and verifying who gets paid
  - name: Funding
    description: The org's USDT funding address and balance
  - name: Payouts
    description: Creating, funding, and tracking payout batches and orders
paths:
  /api/v2/payouts:
    get:
      tags:
        - Payouts
      summary: List batches
      description: >-
        Every batch for the calling org — paginated, unlike the
        Sender/Beneficiary lists (a batch count can grow indefinitely). Returns
        bare batch rows only, no orders — use Get a batch for one batch's full
        detail.
      operationId: listBatches
      parameters:
        - name: status
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/BatchStatus'
        - name: page
          in: query
          required: false
          schema:
            type: integer
            default: 1
            minimum: 1
        - name: limit
          in: query
          required: false
          description: Sent to core-api as `size`.
          schema:
            type: integer
            default: 20
            minimum: 1
            maximum: 100
      responses:
        '200':
          description: List of batches
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchListResponse'
              examples:
                default:
                  value:
                    items:
                      - id: ...
                        status: AWAITING_CONFIRMATION
                        total_count: 1
                        completed_count: 0
                        failed_count: 0
                        client_reference: null
                        created_at: '2026-08-28T09:00:00.000Z'
                        updated_at: '2026-08-28T09:00:00.000Z'
                    meta:
                      page: 1
                      limit: 20
                      total: 42
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
        '500':
          $ref: '#/components/responses/ServerError'
components:
  schemas:
    BatchStatus:
      type: string
      enum:
        - AWAITING_CONFIRMATION
        - IN_PROGRESS
        - COMPLETED
        - PARTIALLY_COMPLETED
        - FAILED
        - CANCELLED_EXPIRED
      description: >-
        AWAITING_CONFIRMATION: every order still DRAFT · IN_PROGRESS: at least
        one order confirmed, none terminal yet · COMPLETED: every order
        COMPLETED · PARTIALLY_COMPLETED: mix of completed and failed/cancelled ·
        FAILED: every order failed or cancelled, none completed ·
        CANCELLED_EXPIRED: rare, batch-level expiry.
    BatchListResponse:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/Batch'
        meta:
          $ref: '#/components/schemas/BatchListMeta'
      required:
        - items
        - meta
    Batch:
      type: object
      properties:
        id:
          type: string
          format: uuid
        status:
          $ref: '#/components/schemas/BatchStatus'
        total_count:
          type: integer
        completed_count:
          type: integer
        failed_count:
          type: integer
          description: Includes cancelled orders.
        client_reference:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
      required:
        - id
        - status
        - total_count
        - completed_count
        - failed_count
        - created_at
        - updated_at
    BatchListMeta:
      type: object
      properties:
        page:
          type: integer
        limit:
          type: integer
        total:
          type: integer
          description: Total batches matching the filter, across all pages.
      required:
        - page
        - limit
        - total
    NestErrorResponse:
      type: object
      description: Nest's default error envelope
      properties:
        statusCode:
          type: integer
          example: 400
        message:
          type: string
          example: sender not found
      required:
        - statusCode
        - message
      example:
        statusCode: 400
        message: sender not found
  responses:
    Unauthorized:
      description: Authentication required or invalid credentials
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/NestErrorResponse'
          examples:
            default:
              value:
                statusCode: 401
                message: Unauthorized
    RateLimited:
      description: Rate limit exceeded
      headers:
        X-RateLimit-Limit:
          description: Request limit per window
          schema:
            type: integer
        X-RateLimit-Remaining:
          description: Remaining requests in window
          schema:
            type: integer
        X-RateLimit-Reset:
          description: UNIX epoch seconds when the rate limit resets
          schema:
            type: integer
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/NestErrorResponse'
          examples:
            default:
              value:
                statusCode: 429
                message: Too many requests
    ServerError:
      description: Internal server or upstream error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/NestErrorResponse'
          examples:
            default:
              value:
                statusCode: 500
                message: Internal server error
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: API key for authentication
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        ES256 JWT signed by the private key registered to the API key above.
        Claims: sub (=API key), uri, nbf, iat, exp, and bodyHash (HMAC-SHA512 of
        uri + rawBody + nbf using a shared secret, base64).

````