Talon.One Coupons API

Represents unique codes belonging to a particular campaign. Coupons don't define any behavior on their own. Instead the campaign ruleset can include rules that validate coupons and carry out particular effects. See the [docs](https://docs.talon.one/docs/product/campaigns/coupons/coupon-page-overview).

Operations 17

POST /v1/coupon_reservations/{couponValue} Create coupon reservation #
DELETE /v1/coupon_reservations/{couponValue} Delete coupon reservations #
GET /v1/coupon_reservations/customerprofiles/{couponValue} List customers that have this coupon reserved #
POST /v1/applications/{applicationId}/campaigns/{campaignId}/coupons Create coupons #
PUT /v1/applications/{applicationId}/campaigns/{campaignId}/coupons Update coupons #
DELETE /v1/applications/{applicationId}/campaigns/{campaignId}/coupons Delete coupons #
POST /v1/applications/{applicationId}/campaigns/{campaignId}/coupons_with_recipients Create coupons for multiple recipients #
POST /v1/applications/{applicationId}/campaigns/{campaignId}/coupons_async Create coupons asynchronously #
POST /v1/applications/{applicationId}/campaigns/{campaignId}/coupons_deletion_jobs Creates a coupon deletion job #
GET /v1/applications/{applicationId}/campaigns/{campaignId}/coupons/no_total List coupons #
PUT /v1/applications/{applicationId}/campaigns/{campaignId}/coupons/{couponId} Update coupon #
DELETE /v1/applications/{applicationId}/campaigns/{campaignId}/coupons/{couponId} Delete coupon #
POST /v1/applications/{applicationId}/campaigns/{campaignId}/coupons_search_advanced/no_total List coupons that match the given attributes in campaign (without total count) #
POST /v1/applications/{applicationId}/coupons_search_advanced/no_total List coupons that match the given attributes (without total count) #
POST /v1/applications/{applicationId}/campaigns/{campaignId}/import_coupons Import coupons #
GET /v1/applications/{applicationId}/export_coupons Export coupons #
GET /v1/coupon_rejections Summarize coupon redemption failures in session #

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-coupons-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-coupons-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Talon One Coupons API
  version: ''
  description: 'Operations tagged Coupons 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: Coupons
  description: 'Represents unique codes belonging to a particular campaign. Coupons don''t define any behavior on their own.

    Instead the campaign ruleset can include rules that validate coupons and carry out particular effects.


    See the [docs](https://docs.talon.one/docs/product/campaigns/coupons/coupon-page-overview).

    '
paths:
  /v1/coupon_reservations/{couponValue}:
    post:
      operationId: createCouponReservation
      summary: Create coupon reservation
      description: 'Create a coupon reservation for the specified customer profiles on the

        specified coupon.


        You can also create a reservation via the Campaign Manager using the

        [Create coupon code

        reservation](https://docs.talon.one/docs/product/rules/effects/using-effects#reserving-a-coupon-code)

        effect.


        > [!note] **Note**

        > - If the **Reservation mandatory** option was selected when creating the

        >   specified coupon, the endpoint creates a **hard** reservation, meaning only users who have

        >   this coupon code reserved can redeem it.

        >

        >   Otherwise, the endpoint creates a **soft** reservation, meaning the coupon

        >   is associated with the specified customer profiles (they show up when using

        >   the [List customer data](https://docs.talon.one/integration-api#tag/Customer-profiles/operation/getCustomerInventory)

        >   endpoint), but any user can redeem it.

        >

        >   This can be useful, for example, to display a _coupon wallet_ for customers

        >   when they visit your store.

        > - If the **Coupon visibility** option was selected when creating the

        >   specified coupon, the coupon code is implicitly soft-reserved for all customers, and the code

        >   will be returned for all customer profiles in the [List customer

        >   data](https://docs.talon.one/integration-api#tag/Customer-profiles/operation/getCustomerInventory) endpoint.

        > - This endpoint overrides the coupon reservation limit set when

        >   [the coupon is created](https://docs.talon.one/docs/product/campaigns/coupons/creating-coupons).


        To ensure that coupons cannot be reserved after the reservation limit is

        reached, use the [Create coupon code

        reservation](https://docs.talon.one/docs/product/rules/effects/using-effects#reserving-a-coupon-code)

        effect in the Rule Builder and the [Update customer session](https://docs.talon.one/integration-api#tag/Customer-sessions/operation/updateCustomerSessionV2)

        endpoint.


        To delete a reservation, use the

        [Delete reservation](https://docs.talon.one/integration-api#tag/Coupons/operation/deleteCouponReservation) endpoint.

        '
      security:
      - api_key_v1: []
      tags:
      - Coupons
      parameters:
      - name: couponValue
        in: path
        description: 'The code of the coupon.


          **Important:** The coupon code requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp)

          if it contains special characters.

          For example, you must encode `SUMMER25%OFF` as `SUMMER25%25OFF`.

          '
        example: SUMMER10
        required: true
        schema:
          type: string
      requestBody:
        $ref: '#/components/requestBodies/CouponReservations'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Coupon'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseWithStatus'
        '401':
          description: Unauthorized - Invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseWithStatus'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseWithStatus'
    delete:
      operationId: deleteCouponReservation
      summary: Delete coupon reservations
      description: 'Remove all the coupon reservations from the provided customer profile integration IDs and the provided

        coupon code.

        '
      security:
      - api_key_v1: []
      tags:
      - Coupons
      parameters:
      - name: couponValue
        in: path
        description: 'The code of the coupon.


          **Important:** The coupon code requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp)

          if it contains special characters.

          For example, you must encode `SUMMER25%OFF` as `SUMMER25%25OFF`.

          '
        example: SUMMER10
        required: true
        schema:
          type: string
      requestBody:
        $ref: '#/components/requestBodies/CouponReservations'
      responses:
        '204':
          description: No Content
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseWithStatus'
        '401':
          description: Unauthorized - Invalid API key
          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/coupon_reservations/customerprofiles/{couponValue}:
    get:
      operationId: getReservedCustomers
      summary: List customers that have this coupon reserved
      description: 'Return all customers that have this coupon marked as reserved. This includes hard and soft reservations.

        '
      security:
      - api_key_v1: []
      tags:
      - Coupons
      parameters:
      - name: couponValue
        in: path
        description: "The code of the coupon.\n\n**Important:** The coupon code requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) \nif it contains special characters.\nFor example, you must encode `SUMMER25%OFF` as `SUMMER25%25OFF`.\n"
        example: SUMMER10
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - totalResultSize
                - data
                properties:
                  totalResultSize:
                    type: integer
                    example: 1
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/CustomerProfile'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseWithStatus'
        '401':
          description: Unauthorized - Invalid API key
          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/applications/{applicationId}/campaigns/{campaignId}/coupons:
    post:
      operationId: createCoupons
      summary: Create coupons
      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 coupons according to some pattern. Up to 20.000 coupons can be created without a unique prefix. When a unique prefix is provided, up to 200.000 coupons can be created.'
      tags:
      - Coupons
      parameters:
      - name: silent
        in: query
        description: 'Possible values: `yes` or `no`.

          - `yes`: Increases the performance of the API call by returning a 204 response.

          - `no`: Returns a 200 response that contains the updated customer profiles.

          '
        example: 'yes'
        required: false
        schema:
          type: string
          default: 'yes'
      - $ref: '#/components/parameters/applicationId'
      - $ref: '#/components/parameters/campaignId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NewCoupons'
        description: body
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - totalResultSize
                - data
                properties:
                  totalResultSize:
                    type: integer
                    example: 1
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Coupon'
        '204':
          description: No Content
      security:
      - manager_auth: []
      - management_key: []
    put:
      operationId: updateCouponBatch
      summary: Update coupons
      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.


        Update all coupons or a specific batch of coupons in the given campaign.


        You can find the `batchId` on the **Coupons** page of your campaign in the

        Campaign Manager, or you can use [List coupons](#tag/Coupons/operation/getCouponsWithoutTotalCount).


        > [!note] **Note**

        > - Only send sequential requests to this endpoint.

        > - Requests to this endpoint time out after 30 minutes. If you hit a timeout, contact our support team.

        > - With this `PUT` endpoint, if you do not explicitly set a value for the `startDate` and `expiryDate` properties in your request, it is automatically set to `null`.


        To update a specific coupon, use [Update coupon](#tag/Coupons/operation/updateCoupon).

        '
      tags:
      - Coupons
      parameters:
      - $ref: '#/components/parameters/applicationId'
      - $ref: '#/components/parameters/campaignId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateCouponBatch'
        description: body
        required: true
      responses:
        '204':
          description: No Content
      security:
      - manager_auth: []
      - management_key: []
    delete:
      operationId: deleteCoupons
      summary: Delete coupons
      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.


        Deletes all the coupons matching the specified criteria.'
      tags:
      - Coupons
      parameters:
      - $ref: '#/components/parameters/applicationId'
      - $ref: '#/components/parameters/campaignId'
      - name: value
        in: query
        description: Filter results performing case-insensitive matching against the coupon code. Both the code and the query are folded to remove all non-alpha-numeric characters.
        example: SUMMER10
        required: false
        schema:
          type: string
      - name: createdBefore
        in: query
        description: Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally.
        required: false
        example: '2024-05-29T15:04:05+07:00'
        schema:
          type: string
          format: date-time
      - name: createdAfter
        in: query
        description: Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally.
        required: false
        example: '2024-05-29T15:04:05+07:00'
        schema:
          type: string
          format: date-time
      - name: startsAfter
        in: query
        description: Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally.
        required: false
        example: '2024-05-29T15:04:05+07:00'
        schema:
          type: string
          format: date-time
      - name: startsBefore
        in: query
        description: Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally.
        required: false
        example: '2024-05-29T15:04:05+07:00'
        schema:
          type: string
          format: date-time
      - name: expiresAfter
        in: query
        description: Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally.
        required: false
        example: '2024-05-29T15:04:05+07:00'
        schema:
          type: string
          format: date-time
      - name: expiresBefore
        in: query
        description: Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally.
        required: false
        example: '2024-05-29T15:04:05+07:00'
        schema:
          type: string
          format: date-time
      - name: valid
        in: query
        description: '- `expired`: Matches coupons in which the expiration date is set and in the past.

          - `validNow`: Matches coupons in which start date is null or in the past and expiration date is null or in the future.

          - `validFuture`: Matches coupons in which start date is set and in the future.

          '
        example: validNow
        required: false
        schema:
          type: string
          enum:
          - expired
          - validNow
          - validFuture
      - name: batchId
        in: query
        description: Filter results by batches of coupons
        example: nfinccze
        required: false
        schema:
          type: string
      - name: usable
        in: query
        description: '- `true`: only coupons where `usageCounter < usageLimit` will be returned.

          - `false`: only coupons where `usageCounter >= usageLimit` will be returned.

          '
        example: 'false'
        schema:
          type: string
          enum:
          - 'true'
          - 'false'
      - name: referralId
        in: query
        description: Filter the results by matching them with the ID of a referral. This filter shows the coupons created by redeeming a referral code.
        example: 47
        required: false
        schema:
          type: integer
      - name: recipientIntegrationId
        in: query
        description: 'Filter results by match with a profile ID specified in the coupon''s `RecipientIntegrationId` field.

          '
        example: customer1
        required: false
        schema:
          type: string
      - name: exactMatch
        in: query
        description: Filter results to an exact case-insensitive matching against the coupon code
        example: false
        required: false
        schema:
          type: boolean
          default: false
      responses:
        '204':
          description: No Content
      security:
      - manager_auth: []
      - management_key: []
    servers:
    - url: https://yourbaseurl.talon.one
  /v1/applications/{applicationId}/campaigns/{campaignId}/coupons_with_recipients:
    post:
      operationId: createCouponsForMultipleRecipients
      summary: Create coupons for multiple recipients
      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 coupons according to some pattern for up to 1000 recipients.'
      tags:
      - Coupons
      parameters:
      - name: silent
        in: query
        description: 'Possible values: `yes` or `no`.

          - `yes`: Increases the performance of the API call by returning a 204 response.

          - `no`: Returns a 200 response that contains the updated customer profiles.

          '
        example: 'yes'
        required: false
        schema:
          type: string
          default: 'yes'
      - $ref: '#/components/parameters/applicationId'
      - $ref: '#/components/parameters/campaignId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NewCouponsForMultipleRecipients'
        description: body
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - totalResultSize
                - data
                properties:
                  totalResultSize:
                    type: integer
                    example: 1
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Coupon'
        '204':
          description: No Content
      security:
      - manager_auth: []
      - management_key: []
    servers:
    - url: https://yourbaseurl.talon.one
  /v1/applications/{applicationId}/campaigns/{campaignId}/coupons_async:
    post:
      operationId: createCouponsAsync
      summary: Create coupons asynchronously
      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 up to 5,000,000 coupons asynchronously. You should typically use this enpdoint when you create at least 20,001 coupons. You receive an email when the creation is complete.


        If you want to create less than 20,001 coupons, you can use the [Create coupons](https://docs.talon.one/management-api#tag/Coupons/operation/createCoupons) endpoint.

        '
      tags:
      - Coupons
      parameters:
      - $ref: '#/components/parameters/applicationId'
      - $ref: '#/components/parameters/campaignId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NewCouponCreationJob'
        description: body
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AsyncCouponCreationResponse'
      security:
      - manager_auth: []
      - management_key: []
    servers:
    - url: https://yourbaseurl.talon.one
  /v1/applications/{applicationId}/campaigns/{campaignId}/coupons_deletion_jobs:
    post:
      operationId: createCouponsDeletionJob
      summary: Creates a coupon deletion job
      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.


        This endpoint handles creating a job to delete coupons asynchronously.

        '
      tags:
      - Coupons
      parameters:
      - $ref: '#/components/parameters/applicationId'
      - $ref: '#/components/parameters/campaignId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NewCouponDeletionJob'
        description: body
        required: true
      responses:
        '202':
          description: The deletion request has been accepted and will be processed asynchronously
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AsyncCouponDeletionJobResponse'
      security:
      - manager_auth: []
      - management_key: []
    servers:
    - url: https://yourbaseurl.talon.one
  /v1/applications/{applicationId}/campaigns/{campaignId}/coupons/no_total:
    get:
      operationId: getCouponsWithoutTotalCount
      summary: List coupons
      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.


        List all the coupons matching the specified criteria.

        '
      tags:
      - Coupons
      parameters:
      - $ref: '#/components/parameters/pageSize'
      - $ref: '#/components/parameters/skip'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/applicationId'
      - $ref: '#/components/parameters/campaignId'
      - name: value
        in: query
        description: Filter results performing case-insensitive matching against the coupon code. Both the code and the query are folded to remove all non-alpha-numeric characters.
        example: SUMMER10
        required: false
        schema:
          type: string
      - name: createdBefore
        in: query
        description: Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally.
        required: false
        example: '2024-05-29T15:04:05+07:00'
        schema:
          type: string
          format: date-time
      - name: createdAfter
        in: query
        description: Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally.
        required: false
        example: '2024-05-29T15:04:05+07:00'
        schema:
          type: string
          format: date-time
      - name: valid
        in: query
        description: 'Either "expired", "validNow", or "validFuture". The first option matches coupons in which the expiration date is set and in the past. The second matches coupons in which start date is null or in the past and expiration date is null or in the future, the third matches coupons in which start date is set and in the future.

          '
        example: validNow
        required: false
        schema:
          type: string
          enum:
          - expired
          - validNow
          - validFuture
      - name: usable
        in: query
        description: 'Either "true" or "false". If "true", only coupons where `usageCounter < usageLimit` will be returned, "false" will return only coupons where `usageCounter >= usageLimit`.

          '
        example: 'false'
        schema:
          type: string
          enum:
          - 'true'
          - 'false'
      - name: redeemed
        in: query
        description: '- `true`: only coupons where `usageCounter > 0` will be returned.

          - `false`: only coupons where `usageCounter = 0` will be returned.

          - This field cannot be used in conjunction with the `usable` query parameter.

          '
        example: 'false'
        schema:
          type: string
          enum:
          - 'true'
          - 'false'
      - name: referralId
        in: query
        description: Filter the results by matching them with the ID of a referral. This filter shows the coupons created by redeeming a referral code.
        example: 47
        required: false
        schema:
          type: integer
      - name: recipientIntegrationId
        in: query
        description: Filter results by match with a profile ID specified in the coupon's RecipientIntegrationId field.
        example: customer1
        required: false
        schema:
          type: string
      - name: batchId
        in: query
        description: Filter results by batches of coupons
        example: nfinccze
        required: false
        schema:
          type: string
      - name: exactMatch
        in: query
        description: Filter results to an exact case-insensitive matching against the coupon code.
        example: false
        required: false
        schema:
          type: boolean
          default: false
      - name: expiresBefore
        in: query
        description: Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally.
        required: false
        example: '2024-05-29T15:04:05+07:00'
        schema:
          type: string
          format: date-time
      - name: expiresAfter
        in: query
        description: Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally.
        required: false
        example: '2024-05-29T15:04:05+07:00'
        schema:
          type: string
          format: date-time
      - name: startsBefore
        in: query
        description: Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally.
        required: false
        example: '2024-05-29T15:04:05+07:00'
        schema:
          type: string
          format: date-time
      - name: startsAfter
        in: query
        description: Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally.
        required: false
        example: '2024-05-29T15:04:05+07:00'
        schema:
          type: string
          format: date-time
      - name: valuesOnly
        in: query
        description: Filter results to only return the coupon codes (`value` column) without the associated coupon data.
        example: false
        required: false
        schema:
          type: boolean
          default: false
      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/Coupon'
      security:
      - manager_auth: []
      - management_key: []
    servers:
    - url: https://yourbaseurl.talon.one
  /v1/applications/{applicationId}/campaigns/{campaignId}/coupons/{couponId}:
    put:
      operationId: updateCoupon
      summary: Update coupon
      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.


        Update the specified coupon.


        > [!note]

        > With this `PUT` endpoint, if you do not explicitly set a value for the `startDate`, `expiryDate`,

        > and `recipientIntegrationId` properties in your request, it is automatically set to `null`.

        '
      tags:
      - Coupons
      parameters:
      - $ref: '#/components/parameters/applicationId'
      - $ref: '#/components/parameters/campaignId'
      - name: couponId
        in: path
        description: 'The internal ID of the coupon code. You can find this value in the `id` property from the

          [List coupons](https://docs.talon.one/management-api#tag/Coupons/operation/getCouponsWithoutTotalCount) endpoint response.

          '
        example: '1194'
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateCoupon'
        description: body
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Coupon'
      security:
      - manager_auth: []
      - management_key: []
    delete:
      operationId: deleteCoupon
      summary: Delete coupon
      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.


        Delete the specified coupon.'
      tags:
      - Coupons
      parameters:
      - $ref: '#/components/parameters/applicationId'
      - $ref: '#/components/parameters/campaignId'
      - name: couponId
        in: path
        description: 'The internal ID of the coupon code. You can find this value in the `id` property from the

          [List coupons](https://docs.talon.one/management-api#tag/Coupons/operation/getCouponsWithoutTotalCount) endpoint response.

          '
        example: '1194'
        required: true
        schema:
          type: string
      responses:
        '204':
          description: No Content
      security:
      - manager_auth: []
      - management_key: []
    servers:
    - url: https://yourbaseurl.talon.one
  /v1/applications/{applicationId}/campaigns/{campaignId}/coupons_search_advanced/no_total:
    post:
      operationId: searchCouponsAdvancedWithoutTotalCount
      summary: List coupons that match the given attributes in campaign (without total count)
      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.


        List the coupons whose attributes match the query criteria in the given campaign.


        The match is successful if all the attributes of the request are found in a

        coupon, even if the coupon has more attributes that are not present on the request.


        > [!note] The total count is not included in the response.

        '
      tags:
      - Coupons
      parameters:
      - $ref: '#/components/parameters/pageSize'
      - $ref: '#/components/parameters/skip'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/applicationId'
      - $ref: '#/components/parameters/campaignId'
      - name: value
        in: query
        description: Filter results performing case-insensitive matching against the coupon code. Both the code and the query are folded to remove all non-alpha-numeric characters.
        example: SUMMER10
        required: false
        schema:
          type: string
      - name: createdBefore
        in: query
        description: Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally.
        required: false
        example: '2024-05-29T15:04:05+07:00'
        schema:
          type: string
          format: date-time
      - name: createdAfter
        in: query
        description: Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally.
        required: false
        example: '2024-05-29T15:04:05+07:00'
        schema:
          type: string
          format: date-time
      - name: valid
        in: query
        description: 'Either "expired", 

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