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

# List Punch Cards

> Getting all punch cards as paginated response



## OpenAPI

````yaml /openapi.yaml get /punch-cards
openapi: 3.1.1
info:
  title: MijnKlantportaal API
  version: v1
servers:
  - url: https://api.mijnklantportaal.nl/v1
security:
  - APIKey: []
tags:
  - name: Agreements API
  - name: Appointments API
  - name: Customers API
  - name: Customer Groups API
  - name: Customer Invoices API
  - name: Customer Offers API
  - name: Customer Subscriptions API
  - name: Customer Subscription Packages API
  - name: Files API
  - name: File Request API
  - name: File Share API
  - name: Invoices API
  - name: Payment Links API
  - name: Punch Cards API
  - name: Tickets API
  - name: Webhooks API
paths:
  /punch-cards:
    get:
      tags:
        - Punch Cards API
      summary: List Punch Cards
      description: Getting all punch cards as paginated response
      operationId: list-punch-cards
      responses:
        '200':
          description: Paginated response with punch cards
          content:
            application/json:
              schema:
                type: object
                properties:
                  current_page:
                    type: integer
                    example: 1
                    description: Current page of the response
                  data:
                    type: array
                    description: Array of Punch Cards objects
                    items:
                      $ref: '#/components/schemas/PunchCard'
                  first_page_url:
                    type: string
                    example: https://api.mijnklantportaal.nl/v1/punch-cards?page=1
                    description: Endpoint to go to the first page of objects
                  from:
                    type: integer
                    example: 1
                    description: Offset of the current page
                  next_page_url:
                    type: string
                    nullable: true
                    example: https://api.mijnklantportaal.nl/v1/punch-cards?page=2,
                    description: Endpoint to get the next batch of objects, if available
                  path:
                    type: string
                    example: https://api.mijnklantportaal.nl/v1/punch-cards
                    description: Current used endpoint
                  per_page:
                    type: integer
                    example: 15
                    description: Amount of object returned per page. Default is 15 objects
                  prev_page_url:
                    type: string
                    nullable: true
                    example: null
                    description: Endpoint to get the previous batch of object, if available
                  to:
                    type: integer
                    example: 15
                    description: Next offset of objects
        '426':
          description: Punch Cards are not available in the current license
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_ApiError'
components:
  schemas:
    PunchCard:
      type: object
      description: Punch Card
      properties:
        id:
          type: string
          example: pcd_abc12345def678
          description: ID of the punch card, always starting with `pcd_`.
        name:
          type: string
          example: Driving lessons
          descriptipn: Name of the punch card
        description:
          type: string
          example: Lessons in a BMW, Mon-Fri 09AM-05PM
          description: Description of the card. Will be shown in the portal
          nullable: true
        punches:
          type: integer
          example: 20
          description: Punch count for this card
        punchLabel:
          type: string
          example: lessons
          description: Type of punches
        forSale:
          type: boolean
          example: true
          description: >-
            Indicates if the punch card can be bought online in the customer
            portal
        price:
          type: string
          example: '229.95'
          description: >-
            Price, including VAT, of which this card will be sold for, in EUR.
            Will be `null` when the card is not for sale
          nullable: true
        vatRate:
          type: integer
          example: 21
          description: >-
            Percentage of VAT which is applied to the price. Can be `21`, `9` or
            `0`. Will be `null` when the card is not for sale
          nullable: true
        expiryValue:
          type: integer
          example: 3
          description: Number of units when this cards expires into the future
          nullabe: true
        expiryPeriode:
          type: string
          example: years
          description: >-
            Unit of when this cards expires into the future. Can be `days`,
            `months` or `years`.
          nullable: true
        createdAt:
          type: string
          example: '2025-11-19T21:00:00+02:00'
          description: Date and time when the card was created. Written in ATOM format.
    Error_ApiError:
      type: object
      properties:
        message:
          type: string
          description: Explanation what went wrong
  securitySchemes:
    APIKey:
      type: http
      scheme: bearer

````