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

# List payout adjustments

> Retrieve a paginated list of payout adjustments for the shop.
**Merchant scope only**, requires the `admin:payouts` permission.




## OpenAPI

````yaml openapi-merchant.json GET /payouts/adjustments
openapi: 3.0.0
info:
  title: PuppetVendors Merchant API V2
  version: 2.0.0
  description: >-
    The endpoints reachable with a merchant API key (`mk_live_…`), minted from
    Settings → API Access in the PuppetVendors admin. A merchant key administers
    users and vendors, and renews its own token. Everything else in the V2 API,
    including orders, products, payouts, fulfillments and documents, stays on
    the v1 API token and is refused here with a 403. Keys are revealed once at
    creation; rotating one leaves the previous key working for a 24 hour grace
    window.
  contact:
    name: PuppetVendors Support
    url: https://puppetvendors.com
  license:
    name: Proprietary
servers:
  - url: https://production-api.puppetvendors.com
    description: Production
  - url: http://localhost:8082
    description: Local development
security:
  - bearerAuth: []
tags:
  - name: Auth
    description: Authentication endpoints for obtaining and refreshing API tokens
  - name: Portal - Auth
    description: Vendor portal authentication endpoints (vendor user login, token refresh)
  - name: Products
    description: Product management and synchronization
  - name: Orders
    description: Order retrieval and management
  - name: Payouts
    description: Vendor payout information
  - name: Fulfillments
    description: Order fulfillment operations
  - name: Reports
    description: Vendor sales reports and analytics
  - name: Vendors
    description: Vendor management operations
  - name: Settings
    description: Settings endpoints for vendor configuration and management
  - name: Users
    description: User account management
  - name: Shop
    description: Shop configuration and settings
  - name: Commissions
    description: Commission rate management
  - name: Integrations
    description: Vendor integration configuration endpoints
  - name: Line Items
    description: Order line item operations
paths:
  /payouts/adjustments:
    get:
      tags:
        - Payouts
      summary: List payout adjustments
      description: |
        Retrieve a paginated list of payout adjustments for the shop.
        **Merchant scope only**, requires the `admin:payouts` permission.
      operationId: listPayoutAdjustments
      parameters:
        - in: query
          name: vendorId
          schema:
            type: string
          description: Filter by vendor ObjectId
        - in: query
          name: status
          schema:
            type: string
            enum:
              - UNPAID
              - PAID
        - in: query
          name: dateFrom
          schema:
            type: string
            format: date-time
        - in: query
          name: dateTo
          schema:
            type: string
            format: date-time
        - in: query
          name: page
          schema:
            type: integer
            minimum: 1
            default: 1
        - in: query
          name: limit
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 20
      responses:
        '200':
          description: List of payout adjustments
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayoutAdjustmentListResponse'
        '400':
          description: Invalid query parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden - merchant scope with admin:payouts required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - bearerAuth: []
components:
  schemas:
    PayoutAdjustmentListResponse:
      type: object
      required:
        - success
        - data
      properties:
        success:
          type: boolean
          enum:
            - true
        data:
          type: object
          required:
            - items
            - total
            - page
            - limit
          properties:
            items:
              type: array
              items:
                $ref: '#/components/schemas/PayoutAdjustment'
            total:
              type: integer
              description: Total adjustments matching the filter, across all pages
            page:
              type: integer
              description: The page returned, 1-based
            limit:
              type: integer
              description: Page size used
    ErrorResponse:
      type: object
      required:
        - success
        - error
      properties:
        success:
          type: boolean
          enum:
            - false
          description: Indicates the request failed
        error:
          type: object
          required:
            - message
          properties:
            message:
              type: string
              description: Human-readable error message
              example: Resource not found
            code:
              type: string
              description: >-
                Stable machine-readable error code. The frontend uses this as
                its localisation key (e.g. errors.api.<code>). Server errors
                always report INTERNAL_SERVER_ERROR.
              example: NOT_FOUND
            errorId:
              type: string
              description: >-
                Correlation id for support/log lookup. Present on opaque 5xx
                responses so a user can quote a reference for the underlying
                (server-side logged) error.
              example: err_1783365360839_j281w7b
            details:
              type: object
              description: >-
                Additional client-error context (e.g. field-level validation
                errors). Never populated for server errors.
    PayoutAdjustment:
      type: object
      properties:
        _id:
          type: string
          description: Adjustment id
          example: 6aa7bfa25133067f0da9c0f1
        shopId:
          type: string
          description: The shop this adjustment belongs to
        vendorId:
          type: string
          description: The vendor whose payout this adjusts
        vendorName:
          type: string
          description: >-
            The vendor's name, copied onto the row when it is created. A later
            rename of the vendor does not rewrite it.
        amount:
          type: number
          description: >-
            SIGNED, and this is the field integrators most often get wrong. You
            always SEND a positive amount plus a type; what is stored and
            returned carries the sign taken from that type, so a DEDUCTION of 25
            reads back as -25 and an ADDITION of 25 as 25. Summing this field
            over a vendor gives the net effect on their payout with no further
            interpretation.
          example: -25
        type:
          type: string
          enum:
            - ADDITION
            - DEDUCTION
          description: >-
            Whether this adds to or deducts from the payout. Determines the sign
            of `amount`.
        status:
          type: string
          enum:
            - UNPAID
            - PAID
          description: >-
            Owned by the payout engine, never settable through this API. UNPAID
            until a payout batch includes it, PAID afterwards. A PAID adjustment
            is frozen: editing or deleting it returns 409.
        batchId:
          type: string
          description: >-
            The payout batch that paid this adjustment, or the string "NA" while
            it is still unpaid. Owned by the payout engine.
          example: NA
        customId:
          type: string
          description: >-
            Server-generated display reference, shown as the row identifier on
            payout statements and CSV exports. Generated per row and not
            settable by the caller.
          example: G6TTITU3S1
        comments:
          type: string
          description: Free-text note from the caller
        customItemDate:
          type: string
          format: date-time
          description: >-
            The date the adjustment applies to, which decides the payout period
            it falls in. Defaults to the moment of creation when omitted.
        ignoreInPayout:
          type: boolean
          description: >-
            Excludes the adjustment from payout totals. Not settable through
            this API.
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
  securitySchemes:
    bearerAuth:
      type: apiKey
      in: header
      name: x-access-token
      description: >-
        JWT minted from a merchant API key (`mk_live_…`) by POST /authenticate.
        Send the token value directly, with no "Bearer" prefix. Tokens last 14
        days and can be renewed at POST /refresh-token; revoking the key refuses
        the next request made with any token minted from it.

````