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

# Get Chargebacks

> Get a list of your chargebacks, newest first.



## OpenAPI

````yaml /openapi.json get /api/v1/chargebacks
openapi: 3.0.0
info:
  title: Authentication API
  description: API for user authentication and token generation
  version: 1.0.0
servers:
  - url: https://api.retailreadyai.com
    description: Production server
  - url: https://stg.retailreadyai.com
    description: Staging server
security: []
paths:
  /api/v1/chargebacks:
    get:
      tags:
        - Chargebacks
      summary: Get Chargebacks
      description: Get a list of your chargebacks, newest first.
      parameters:
        - name: page
          in: query
          schema:
            type: integer
            default: 1
            minimum: 1
          description: Page number (1-indexed). Defaults to 1.
        - name: page_size
          in: query
          schema:
            type: integer
            default: 50
            minimum: 1
            maximum: 100
          description: >-
            Number of items per page. Defaults to 50, and must be between 1 and
            100.
        - name: retailer_id
          in: query
          schema:
            type: string
            format: uuid
          description: >-
            Filter by retailer. Must be a retailer your brand is or was
            associated with.
        - name: po_number
          in: query
          schema:
            type: string
          description: Filter by purchase order number. Matched exactly.
        - name: chargeback_id
          in: query
          schema:
            type: string
          description: >-
            Filter by the retailer's chargeback number. Retailers assign these,
            so more than one chargeback can share a number.
        - name: start_date
          in: query
          schema:
            type: string
            format: date
          description: >-
            Only chargebacks the retailer issued on or after this date
            (YYYY-MM-DD).
        - name: end_date
          in: query
          schema:
            type: string
            format: date
          description: >-
            Only chargebacks the retailer issued on or before this date
            (YYYY-MM-DD).
        - name: dispute_status
          in: query
          schema:
            type: string
            enum:
              - Won
              - Lost
              - Pending Review
              - Not Disputed
              - Ready to Dispute
              - Generating Proposal
              - Submitting
              - Submission Failed
              - Expired
          description: >-
            Filter by dispute status. Comma-separate to match several, e.g.
            `Won,Lost`.
        - name: closed
          in: query
          schema:
            type: boolean
          description: Filter to settled chargebacks (`true`) or ones still open (`false`).
      responses:
        '200':
          description: Chargebacks retrieved successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Chargebacks retrieved successfully
                  data:
                    type: object
                    properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/Chargeback'
                      total_count:
                        type: integer
                        description: >-
                          Total chargebacks matching your filters, across all
                          pages
                        example: 1342
                      page:
                        type: integer
                        example: 1
                      page_size:
                        type: integer
                        example: 50
              example:
                message: Chargebacks retrieved successfully
                data:
                  items:
                    - id: 9f2bc4e1-77a3-4c10-b0d2-1a5e9f3b8c31
                      chargeback_id: CB-88213
                      po_number: '4500912233'
                      matched_orders:
                        - order_id: 7c4e1b90-2f8d-4a61-9c33-5b0e77d41a02
                          picksheet_code: RR-8891
                      retailer_id: 3a1f9c22-6b4e-4f8a-9d17-2c5b8e0a79de
                      retailer: Ulta
                      amount: 1250.5
                      amount_won_back: 400
                      retailer_chargeback_code: COMP-104
                      category: Damaged/Defective Item
                      description: Cartons received with crushed corners
                      chargeback_date: '2026-06-14'
                      uploaded_at: '2026-06-15T02:11:04Z'
                      dispute_deadline: '2026-07-14'
                      dispute_status: Pending Review
                      is_expired: false
                      closed: false
                  total_count: 1342
                  page: 1
                  page_size: 50
        '400':
          description: A query parameter was not recognised or could not be read
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                  error:
                    type: object
                    properties:
                      code:
                        type: string
              example:
                message: Invalid date for start_date. Expected YYYY-MM-DD
                error:
                  code: INVALID_REQUEST
        '401':
          description: Authentication failed, or your user is not a brand admin
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                  error:
                    type: object
                    properties:
                      code:
                        type: string
              example:
                message: Unauthorized
                error:
                  code: UNAUTHORIZED
        '404':
          description: >-
            retailer_id was provided but your brand has no association with that
            retailer
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                  error:
                    type: object
                    properties:
                      code:
                        type: string
              example:
                message: Retailer not found
                error:
                  code: NOT_FOUND
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                  error:
                    type: object
                    properties:
                      code:
                        type: string
              example:
                message: Error fetching chargebacks
                error:
                  code: INTERNAL_SERVER_ERROR
      security:
        - bearerAuth: []
components:
  schemas:
    Chargeback:
      type: object
      description: >-
        A single chargeback. Money fields are US dollars; dates the retailer
        works in are calendar dates, and uploaded_at is a UTC timestamp.
      properties:
        id:
          type: string
          description: >-
            RetailReady's ID for this chargeback. Always unique — use it to
            reference the chargeback.
          example: 9f2bc4e1-77a3-4c10-b0d2-1a5e9f3b8c31
        chargeback_id:
          type: string
          nullable: true
          description: >-
            The retailer's own chargeback number. Retailers assign these, so it
            can repeat across chargebacks.
          example: CB-88213
        po_number:
          type: string
          nullable: true
          description: Purchase order the chargeback was raised against.
          example: '4500912233'
        matched_orders:
          type: array
          description: >-
            Your orders in RetailReady with this PO number. Empty means we hold
            no matching order, so there is no shipment evidence to dispute with.
          items:
            $ref: '#/components/schemas/MatchedOrder'
        retailer_id:
          type: string
          format: uuid
          nullable: true
          example: 3a1f9c22-6b4e-4f8a-9d17-2c5b8e0a79de
        retailer:
          type: string
          nullable: true
          description: Retailer that issued the chargeback.
          example: Ulta
        amount:
          type: number
          nullable: true
          description: Amount the retailer deducted, in dollars.
          example: 1250.5
        amount_won_back:
          type: number
          nullable: true
          description: Amount recovered, in dollars.
          example: 400
        retailer_chargeback_code:
          type: string
          nullable: true
          description: The retailer's code for why they issued the chargeback.
          example: COMP-104
        category:
          type: string
          nullable: true
          description: Your category for this chargeback, if you have set one.
          example: Damaged/Defective Item
        description:
          type: string
          nullable: true
          description: The retailer's description of the issue.
          example: Cartons received with crushed corners
        chargeback_date:
          type: string
          format: date
          nullable: true
          description: Date the retailer issued the chargeback.
          example: '2026-06-14'
        uploaded_at:
          type: string
          format: date-time
          nullable: true
          description: When the chargeback was added to RetailReady (UTC).
          example: '2026-06-15T02:11:04Z'
        dispute_deadline:
          type: string
          format: date
          nullable: true
          description: >-
            Last day the retailer accepts a dispute. Null when the retailer sets
            no deadline.
          example: '2026-07-14'
        dispute_status:
          type: string
          enum:
            - Won
            - Lost
            - Pending Review
            - Not Disputed
            - Ready to Dispute
            - Generating Proposal
            - Submitting
            - Submission Failed
            - Expired
          description: Where the dispute stands.
          example: Pending Review
        is_expired:
          type: boolean
          description: >-
            Whether the window to dispute has closed. Evaluated in the
            retailer's own timezone, so use this rather than comparing
            dispute_deadline yourself.
          example: false
        closed:
          type: boolean
          description: Whether the chargeback is settled.
          example: false
    MatchedOrder:
      type: object
      description: An order in RetailReady sharing the chargeback's PO number.
      properties:
        order_id:
          type: string
          description: Pass to `GET /api/v1/orders/{order_id}` for the full order.
          example: 7c4e1b90-2f8d-4a61-9c33-5b0e77d41a02
        picksheet_code:
          type: string
          nullable: true
          description: The order's picksheet code.
          example: RR-8891
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````