Talon.One Loyalty cards API

Represents loyalty cards. [Loyalty cards](https://docs.talon.one/docs/product/loyalty-programs/card-based/card-based-overview) allow your customers to collect and spend loyalty points within a card-based loyalty program.

Operations 19

POST /v2/loyalty_programs/{loyaltyProgramId}/cards/{loyaltyCardId}/link_profile Link customer profile to card #
POST /v2/loyalty_programs/{loyaltyProgramId}/cards/{loyaltyCardId}/unlink_profile Unlink customer profile from a loyalty card #
GET /v1/loyalty_programs/{loyaltyProgramId}/cards/{loyaltyCardId}/balances Get card's point balances #
GET /v1/loyalty_programs/{loyaltyProgramId}/cards/{loyaltyCardId}/transactions List card's transactions #
GET /v1/loyalty_programs/{loyaltyProgramId}/cards/{loyaltyCardId}/points List card's unused loyalty points #
POST /v1/loyalty_programs/{loyaltyProgramId}/cards Generate loyalty card #
GET /v1/loyalty_programs/{loyaltyProgramId}/cards List loyalty cards #
POST /v1/loyalty_programs/{loyaltyProgramId}/import_cards Import loyalty cards #
POST /v1/loyalty_programs/{loyaltyProgramId}/cards/batch Create loyalty cards #
GET /v1/loyalty_programs/{loyaltyProgramId}/export_card_balances Export all card transaction logs #
GET /v1/loyalty_programs/{loyaltyProgramId}/cards/export Export loyalty cards #
DELETE /v1/loyalty_programs/{loyaltyProgramId}/cards/{loyaltyCardId} Delete loyalty card #
PUT /v1/loyalty_programs/{loyaltyProgramId}/cards/{loyaltyCardId} Update loyalty card #
GET /v1/loyalty_programs/{loyaltyProgramId}/cards/{loyaltyCardId} Get loyalty card #
PUT /v1/loyalty_programs/{loyaltyProgramId}/cards/{loyaltyCardId}/add_points Add points to card #
PUT /v1/loyalty_programs/{loyaltyProgramId}/cards/{loyaltyCardId}/deduct_points Deduct points from card #
GET /v1/loyalty_programs/{loyaltyProgramId}/cards/{loyaltyCardId}/export_log Export card's ledger log #
GET /v1/loyalty_programs/{loyaltyProgramId}/cards/{loyaltyCardId}/logs List card's transactions (Management API) #
PUT /v1/loyalty_programs/{loyaltyProgramId}/cards/{loyaltyCardId}/transfer Transfer card data #

Documentation

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/talon-one-loyalty-cards-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

talon-one-loyalty-cards-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Talon One Loyalty cards API
  version: ''
  description: 'Operations tagged Loyalty cards across 2 of this provider''s published API definitions: talon-one-integration-api-openapi.yml, talon-one-management-api-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://yourbaseurl.talon.one
tags:
- name: Loyalty cards
  description: 'Represents loyalty cards.


    [Loyalty cards](https://docs.talon.one/docs/product/loyalty-programs/card-based/card-based-overview) allow your customers to collect and spend loyalty points within a card-based loyalty program.

    '
paths:
  /v2/loyalty_programs/{loyaltyProgramId}/cards/{loyaltyCardId}/link_profile:
    post:
      operationId: linkLoyaltyCardToProfile
      summary: Link customer profile to card
      description: '[Loyalty cards](https://docs.talon.one/docs/product/loyalty-programs/card-based/card-based-overview)

        allow customers to collect and spend loyalty points within a [card-based loyalty

        program](https://docs.talon.one/docs/product/loyalty-programs/overview#loyalty-program-types).


        They are useful to gamify loyalty programs and can be used with or without

        customer profiles linked to them.


        Link a customer profile to a given loyalty card for the card to be set as

        **Registered**.


        This affects how it can be used. See the

        [docs](https://docs.talon.one/docs/product/loyalty-programs/card-based/managing-loyalty-cards#linking-customer-profiles-to-a-loyalty-card).


        > [!note] You can link as many customer profiles to a given loyalty card as the

        > [**card user limit**](https://docs.talon.one/docs/product/loyalty-programs/card-based/creating-cb-programs)

        > allows.

        '
      tags:
      - Loyalty cards
      security:
      - api_key_v1: []
      parameters:
      - name: loyaltyProgramId
        in: path
        description: 'Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with

          the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint.

          '
        example: 33
        required: true
        schema:
          type: integer
      - name: loyaltyCardId
        in: path
        description: 'Identifier of the loyalty card. You can get the identifier with

          the [List loyalty

          cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards)

          endpoint.


          **Important**: The loyalty card ID requires [URL

          encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it

          contains special characters. For example, you must encode `NewCard2026%`

          as `NewCard2026%25`.

          '
        example: summer-loyalty-card-0543
        required: true
        schema:
          type: string
          minLength: 4
          maxLength: 108
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LoyaltyCardRegistration'
        description: body
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LoyaltyCard'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseWithStatus'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseWithStatus'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseWithStatus'
    servers:
    - url: https://yourbaseurl.talon.one
  /v2/loyalty_programs/{loyaltyProgramId}/cards/{loyaltyCardId}/unlink_profile:
    post:
      operationId: unlinkLoyaltyCardFromProfile
      summary: Unlink customer profile from a loyalty card
      description: 'Unlink a customer profile from a [registered](https://docs.talon.one/docs/product/loyalty-programs/card-based/managing-loyalty-cards#linking-customer-profiles-to-a-loyalty-card) loyalty card.


        To get the `integrationId` of a customer profile, you can use the

        [Update customer session](https://docs.talon.one/integration-api#tag/Customer-sessions/operation/updateCustomerSessionV2)

        endpoint.

        '
      tags:
      - Loyalty cards
      security:
      - api_key_v1: []
      parameters:
      - name: loyaltyProgramId
        in: path
        description: 'The identifier of the card-based loyalty program containing the loyalty card. You can get this ID using the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint.

          '
        example: 33
        required: true
        schema:
          type: integer
      - name: loyaltyCardId
        in: path
        description: 'The identifier of the loyalty card. You can get this ID using the [List loyalty

          cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards)

          endpoint.


          **Important**: The loyalty card ID requires [URL

          encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it

          contains special characters. For example, you must encode `NewCard2026%`

          as `NewCard2026%25`.

          '
        example: summer-loyalty-card-0543
        required: true
        schema:
          type: string
          minLength: 4
          maxLength: 108
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LoyaltyCardRegistration'
        description: body
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LoyaltyCard'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseWithStatus'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseWithStatus'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseWithStatus'
    servers:
    - url: https://yourbaseurl.talon.one
  /v1/loyalty_programs/{loyaltyProgramId}/cards/{loyaltyCardId}/balances:
    get:
      operationId: getLoyaltyCardBalances
      summary: Get card's point balances
      description: 'Retrieve loyalty balances for the given loyalty card in the specified loyalty program with filtering options applied.

        If no filtering options are applied, all loyalty balances for the given loyalty card are returned.

        '
      security:
      - api_key_v1: []
      tags:
      - Loyalty cards
      parameters:
      - name: loyaltyProgramId
        in: path
        description: 'Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with

          the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint.

          '
        example: 33
        required: true
        schema:
          type: integer
      - name: loyaltyCardId
        in: path
        description: 'Identifier of the loyalty card. You can get the identifier with

          the [List loyalty

          cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards)

          endpoint.


          **Important**: The loyalty card ID requires [URL

          encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it

          contains special characters. For example, you must encode `NewCard2026%`

          as `NewCard2026%25`.

          '
        example: summer-loyalty-card-0543
        required: true
        schema:
          type: string
          minLength: 4
          maxLength: 108
      - name: endDate
        in: query
        required: false
        description: 'Used to return expired, active, and pending loyalty balances before this

          timestamp. You can enter any past, present, or future timestamp value.


          > [!note] **Note**

          > - This must be an RFC3339 timestamp string.

          > - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting

          >   considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered.

          '
        example: '2024-05-29T15:04:05+07:00'
        schema:
          type: string
          format: date-time
      - name: subledgerId
        in: query
        required: false
        description: Filter results by one or more subledger IDs. Must be exact match.
        example:
        - subledger1
        - subledger2
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LoyaltyCardBalances'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseWithStatus'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseWithStatus'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseWithStatus'
    servers:
    - url: https://yourbaseurl.talon.one
  /v1/loyalty_programs/{loyaltyProgramId}/cards/{loyaltyCardId}/transactions:
    get:
      operationId: getLoyaltyCardTransactions
      summary: List card's transactions
      description: 'Retrieve loyalty transaction logs for the given loyalty card in the specified loyalty program with filtering options applied.

        If no filtering options are applied, the last 50 loyalty transactions for the given loyalty card are returned.

        '
      security:
      - api_key_v1: []
      tags:
      - Loyalty cards
      parameters:
      - name: loyaltyProgramId
        in: path
        description: 'Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with

          the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint.

          '
        example: 33
        required: true
        schema:
          type: integer
      - name: loyaltyCardId
        in: path
        description: 'Identifier of the loyalty card. You can get the identifier with

          the [List loyalty

          cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards)

          endpoint.


          **Important**: The loyalty card ID requires [URL

          encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it

          contains special characters. For example, you must encode `NewCard2026%`

          as `NewCard2026%25`.

          '
        example: summer-loyalty-card-0543
        required: true
        schema:
          type: string
          minLength: 4
          maxLength: 108
      - name: subledgerId
        in: query
        required: false
        description: Filter results by one or more subledger IDs. Must be exact match.
        example:
        - subledger1
        - subledger2
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: loyaltyTransactionType
        in: query
        required: false
        description: 'Filter results by loyalty transaction type:

          - `manual`: Loyalty transaction that was done manually.

          - `session`: Loyalty transaction that resulted from a customer session.

          - `import`: Loyalty transaction that was imported from a CSV file.

          '
        example: manual
        schema:
          type: string
          enum:
          - manual
          - session
          - import
      - name: startDate
        in: query
        required: false
        description: 'Date and time from which results are returned. Results are filtered by

          transaction creation date.


          > [!note] **Note**

          > - This must be an RFC3339 timestamp string.

          > - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting

          >   considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered.

          '
        example: '2024-05-29T15:04:05+07:00'
        schema:
          type: string
          format: date-time
      - name: endDate
        in: query
        required: false
        description: 'Date and time by which results are returned. Results are filtered by

          transaction creation date.


          > [!note] **Note**

          > - This must be an RFC3339 timestamp string.

          > - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting

          >   considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered.

          '
        example: '2024-05-29T15:04:05+07:00'
        schema:
          type: string
          format: date-time
      - name: customerSessionIDs
        in: query
        required: false
        description: 'Filter the results by a list of customer session IDs.


          To include multiple IDs, repeat the parameter for each one, for example,

          `?customerSessionIDs=id1&customerSessionIDs=id2`.


          The response contains only data associated with the specified sessions.

          '
        example:
        - session_integration_id_1
        - session_integration_id_1
        schema:
          type: array
          items:
            type: string
      - name: transactionUUIDs
        in: query
        required: false
        description: 'Filter the results by a list of transaction UUIDs.


          To include multiple IDs, repeat the parameter for each one, for example,

          `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`.


          The response contains only data associated with the specified transactions.

          '
        example:
        - dc608634-0100-40d9-b371-e964476bbe0f
        - 9e829590-05cf-407b-b4c0-5f28468a81e1
        schema:
          type: array
          items:
            type: string
      - name: pageSize
        in: query
        required: false
        description: The number of items in the response.
        example: 50
        schema:
          type: integer
          minimum: 1
          maximum: 1000
          default: 50
      - $ref: '#/components/parameters/skip'
      - name: awaitsActivation
        in: query
        required: false
        description: 'If `true`: Filters results to include only point transactions that have action-based activation and have not expired.


          If `false`: Returns a `400` response.

          '
        example: true
        schema:
          type: boolean
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - hasMore
                - data
                properties:
                  hasMore:
                    type: boolean
                    example: true
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/CardLedgerTransactionLogEntryIntegrationAPI'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseWithStatus'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseWithStatus'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseWithStatus'
    servers:
    - url: https://yourbaseurl.talon.one
  /v1/loyalty_programs/{loyaltyProgramId}/cards/{loyaltyCardId}/points:
    get:
      operationId: getLoyaltyCardPoints
      summary: List card's unused loyalty points
      description: 'Get paginated results of loyalty points for a given loyalty card identifier in a card-based loyalty program. This endpoint returns only the balances of unused points on a loyalty card.


        You can filter points by status:

        - `active`: Points ready to be redeemed.

        - `pending`: Points with a start date in the future.

        - `expired`: Points with an expiration date in the past.

        '
      security:
      - api_key_v1: []
      tags:
      - Loyalty cards
      parameters:
      - name: loyaltyProgramId
        in: path
        description: 'Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with

          the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint.

          '
        example: 33
        required: true
        schema:
          type: integer
      - name: loyaltyCardId
        in: path
        description: 'Identifier of the loyalty card. You can get the identifier with

          the [List loyalty

          cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards)

          endpoint.


          **Important**: The loyalty card ID requires [URL

          encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it

          contains special characters. For example, you must encode `NewCard2026%`

          as `NewCard2026%25`.

          '
        example: summer-loyalty-card-0543
        required: true
        schema:
          type: string
          minLength: 4
          maxLength: 108
      - name: status
        in: query
        required: false
        description: Filter points based on their status.
        example: active
        schema:
          type: string
          enum:
          - active
          - pending
          - expired
          default: active
      - name: subledgerId
        in: query
        required: false
        description: Filter results by one or more subledger IDs. Must be exact match.
        example:
        - subledger1
        - subledger2
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: customerSessionIDs
        in: query
        required: false
        description: 'Filter the results by a list of customer session IDs.


          To include multiple IDs, repeat the parameter for each one, for example,

          `?customerSessionIDs=id1&customerSessionIDs=id2`.


          The response contains only data associated with the specified sessions.

          '
        example:
        - session_integration_id_1
        - session_integration_id_1
        schema:
          type: array
          items:
            type: string
      - name: transactionUUIDs
        in: query
        required: false
        description: 'Filter the results by a list of transaction UUIDs.


          To include multiple IDs, repeat the parameter for each one, for example,

          `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`.


          The response contains only data associated with the specified transactions.

          '
        example:
        - dc608634-0100-40d9-b371-e964476bbe0f
        - 9e829590-05cf-407b-b4c0-5f28468a81e1
        schema:
          type: array
          items:
            type: string
      - name: pageSize
        in: query
        required: false
        description: The number of items in the response.
        example: 50
        schema:
          type: integer
          minimum: 1
          maximum: 1000
          default: 50
      - $ref: '#/components/parameters/skip'
      - name: sort
        in: query
        required: false
        description: 'The field by which results should be sorted. You can enter one of the following values:


          - `startDate`: Sorts the results by the start date of the points.

          - `expiryDate`: Sorts the results by the expiry date of the points.


          By default, results are sorted in ascending order.

          To sort them in descending order, prefix the field name with `-`.


          **Note:** You can only sort by one field at a time.

          '
        example: startDate
        schema:
          type: string
          enum:
          - startDate
          - expiryDate
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - hasMore
                - data
                properties:
                  hasMore:
                    type: boolean
                    example: true
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/CardLedgerPointsEntryIntegrationAPI'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseWithStatus'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseWithStatus'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseWithStatus'
    servers:
    - url: https://yourbaseurl.talon.one
  /v1/loyalty_programs/{loyaltyProgramId}/cards:
    post:
      operationId: generateLoyaltyCard
      summary: Generate loyalty card
      description: 'Generate a loyalty card in a specified [card-based loyalty

        program](https://docs.talon.one/docs/product/loyalty-programs/card-based/card-based-overview).


        To link the card to one or more customer profiles, use the

        `customerProfileIds` parameter in the request body.


        > [!note] **Note**

        > - The number of customer profiles linked to the loyalty card cannot exceed

        >   the loyalty program''s `usersPerCardLimit`. To find the program''s limit, use

        >   the [Get loyalty program](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyProgram)

        >   endpoint.

        > - If the loyalty program has a defined code format, it will be used for the

        >   loyalty card identifier.

        '
      security:
      - api_key_v1: []
      tags:
      - Loyalty cards
      parameters:
      - name: loyaltyProgramId
        in: path
        description: 'Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with

          the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint.

          '
        example: 33
        required: true
        schema:
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenerateLoyaltyCard'
        description: body
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LoyaltyCard'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseWithStatus'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseWithStatus'
    get:
      operationId: getLoyaltyCards
      summary: List loyalty cards
      description: '> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.


        For the given card-based loyalty program, list the loyalty cards that match your filter criteria.

        '
      tags:
      - Loyalty cards
      parameters:
      - $ref: '#/components/parameters/pageSize'
      - $ref: '#/components/parameters/skip'
      - $ref: '#/components/parameters/sort'
      - name: loyaltyProgramId
        in: path
        description: 'Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with

          the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint.

          '
        example: 33
        required: true
        schema:
          type: integer
      - name: identifier
        description: 'The card code by which to filter loyalty cards in the response.


          **Important**: The loyalty card ID requires [URL

          encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it

          contains special characters. For example, you must encode `NewCard2026%`

          as `NewCard2026%25`.

          '
        example: summer-loyalty-card-054
        in: query
        required: false
        schema:
          type: string
          minLength: 4
      - name: profileId
        in: query
        description: Filter results by customer profile ID.
        example: 44
        required: false
        schema:
          type: integer
          minimum: 1
      - name: batchId
        in: query
        description: Filter results by loyalty card batch ID.
        example: UY83CTT4
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - hasMore
                - data
                properties:
                  hasMore:
                    type: boolean
                    example: true
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/LoyaltyCard'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseWithStatus'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseWithStatus'
      security:
      - api_key_v1: []
    servers:
    - url: https://yourbaseurl.talon.one
  /v1/loyalty_programs/{loyaltyProgramId}/import_cards:
    post:
      operationId: importLoyaltyCards
      summary: Import loyalty cards
      description: '> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.


        Upload a CSV file containing the loyalty cards that you want to use in your

        card-based loyalty program.


        Send the file as multipart data.


        It contains the following columns for each card:


        - `identifier` (required): The identifier of the loyalty card,

        which must match the regular expression `^[A-Za-z0-9._%+@-]+$`.

        - `state` (required): The state of the loyalty card. It can be `active` or

        `inactive`.

        - `customerprofileids` (optional): An array of strings representing the

        identifiers of the customer profiles linked to the loyalty card. The

        identifiers should be separated with a semicolon (;).

        - `attributes` (optional): A JSON object that contains the loyalty card''s custom

        attributes and their values. These attributes must be created and connected to this

        loyalty program before they can be assigned to the cards through this endpoint.


        > [!note] Your CSV file must contain less than 500,000 rows. Requests time out after 30 seconds.


        ## Example


        ```csv

        identifier,state,customerprofileids,attributes

        123-456-789AT,active,Alexa001;UserA,''{""my_attributes"": ""10_off""}"

        ```

        '
      tags:
      - Loyalty cards
      parameters:
      - name: loyaltyProgramId
        in: path
        description: 'Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with

          the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint.

          '
        example: 33
        required: true
        schema:
          type: integer
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                upFile:
                  description: The CSV file containing the data that is being imported.
                  type: string
                  format: binary
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Import'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseWithStatus'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseWithStatus'
      security:
      - manager_auth: []
      - management_key: []
    servers:
    - url: https://yourbaseurl.talon.one
  /v1/loyalty_programs/{loyaltyProgramId}/cards/batch:
    post:
      operationId: createBatchLoyaltyCards
      summary: Create loyalty cards
      description: '> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.


        Create a batch of loyalty cards in a specified [card-based loyalty

        program](https://docs.talon.one/docs/product/loyalty-programs/overview#loyalty-program-types).


        Customers can use loyalty cards to collect and spend loyalty points.


        > [!important] **Note**

        > - The specified card-based loyalty program must have a defined card code

        >   format that is used to generate the loyalty card codes.

        > - Trying to create more than 20,000 loyalty cards in a single request

        >   returns an error message with a `400` status code.

        '
      tags:
      - Loyalty cards
      parameters:
      - name: loyaltyProgramId
        in: path
        description: 'Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with

          the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint.

          '
        example: 33
        required: true
        schema:
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LoyaltyCardBatch'
        description: body
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LoyaltyCardBatchResponse'
        '400':
          description: Bad request
        

# --- truncated at 32 KB (99 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/talon-one/refs/heads/main/openapi/talon-one-loyalty-cards-api-openapi.yml