Kard transactions API

The transactions API from Kard — 7 operation(s) for transactions.

Operations 7

POST /v2/issuers/{organizationId}/transactions Create Incoming Transactions #
POST /v2/issuers/{organizationId}/transactions/uploads Create Bulk Transactions Upload URL #
POST /v2/issuers/{organizationId}/users/{userId}/audits Create Audits #
GET /v2/issuers/{organizationId}/users/{userId}/earned-rewards Get Earned Rewards #
POST /transactions/incoming Create Incoming Transaction #
POST /transactions/audit Create Audit #
GET /transactions/audit/{id} Get Audit Status #

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/kard-transactions-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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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

OpenAPI Specification

kard-transactions-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Kard Transactions API
  version: 1.0.0
  description: 'Operations tagged transactions across 2 of this provider''s published API definitions: kard-api-reference-openapi.yaml, kard-legacy-openapi.yaml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://rewards-api.getkard.com
  description: Production
- url: https://test-rewards-api.getkard.com
  description: Sandbox
tags:
- name: transactions
paths:
  /v2/issuers/{organizationId}/transactions:
    post:
      operationId: create
      summary: Create Incoming Transactions
      description: 'Call this endpoint to send all transactions made by all your enrolled users in your rewards program. The request body will depend on the transaction type.<br/>

        Please use the correct type when calling the endpoint:

        - `transaction`: These incoming transactions will be processed and matched by the Kard system. Learn more about the [Transaction CLO Matching](https://github.com/kard-financial/kard-postman#c-transaction-clo-matching) flow here.

        - `matchedTransaction`: For pre-matched transactions that need validation on match by the Kard system.

        - `coreTransaction`: For transactions from core banking systems with limited card-level data.<br/>


        <b>Required scopes:</b> `transaction:write`<br/>

        <b>Note:</b> `Maximum of 500 transactions can be created per request`.'
      tags:
      - transactions
      parameters:
      - name: organizationId
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/type_commons_OrganizationId'
      - name: Authorization
        in: header
        description: Bearer authentication
        required: true
        schema:
          type: string
      responses:
        '202':
          description: Response with status 202
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_transactions_TransactionsResponse'
        '207':
          description: Error response with status 207
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_transactions_TransactionsMultiResponse'
        '400':
          description: Error response with status 400
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_commons_ErrorResponse'
        '401':
          description: Error response with status 401
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_commons_ErrorResponse'
        '409':
          description: Error response with status 409
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_commons_ErrorResponse'
        '500':
          description: Error response with status 500
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_commons_ErrorResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/type_transactions_TransactionsRequestBody'
    servers:
    - url: https://rewards-api.getkard.com
      description: Production
    - url: https://test-rewards-api.getkard.com
      description: Sandbox
  /v2/issuers/{organizationId}/transactions/uploads:
    post:
      operationId: create-bulk-transactions-upload-url
      summary: Create Bulk Transactions Upload URL
      description: 'Generates up to 10 presigned PUT URLs for uploading JSONL transaction files (up to 5GB each) directly

        to storage. Each URL is valid for 15 minutes. Use the returned URL to upload the file via an HTTP PUT request with the

        binary file content as the body. If a URL expires before the upload completes, you must request a new one.

        Files can be uploaded as plain JSONL or as a gzip-compressed file.

        Supports both `incomingTransactionsFile` for daily transaction ingestion and `historicalTransactionsFile` for historical transaction ingestion. See the [Historical Transaction Uploads](/2024-10-01/api/integration-guides/historical-transaction-uploads) integration guide for details on the historical flow.

        <b>Required scopes:</b> `files:write`'
      tags:
      - transactions
      parameters:
      - name: organizationId
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/type_commons_OrganizationId'
      - name: Authorization
        in: header
        description: Bearer authentication
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Response with status 201
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_transactions_CreateFileUploadUrlResponse'
        '400':
          description: Error response with status 400
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_commons_ErrorResponse'
        '401':
          description: Error response with status 401
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_commons_ErrorResponse'
        '403':
          description: Error response with status 403
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_commons_ErrorResponse'
        '500':
          description: Error response with status 500
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_commons_ErrorResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/type_transactions_CreateFileUploadRequestBody'
    servers:
    - url: https://rewards-api.getkard.com
      description: Production
    - url: https://test-rewards-api.getkard.com
      description: Sandbox
  /v2/issuers/{organizationId}/users/{userId}/audits:
    post:
      operationId: create-audits
      summary: Create Audits
      description: 'Call this endpoint to request that a particular transaction be audited further by the Kard system, in the event of a missing cashback claim, incorrect cashback amount claim or other mis-match claims.<br/>

        <b>Required scopes:</b> `audit:write`'
      tags:
      - transactions
      parameters:
      - name: organizationId
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/type_commons_OrganizationId'
      - name: userId
        in: path
        description: The ID of the user as defined on the issuers system
        required: true
        schema:
          type: string
      - name: Authorization
        in: header
        description: Bearer authentication
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Response with status 201
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_transactions_CreateAuditResponseBody'
        '207':
          description: Error response with status 207
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_transactions_CreateAuditMultiStatusResponse'
        '400':
          description: Error response with status 400
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_commons_ErrorResponse'
        '401':
          description: Error response with status 401
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_commons_ErrorResponse'
        '404':
          description: Error response with status 404
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_commons_ErrorResponse'
        '409':
          description: Error response with status 409
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_commons_ErrorResponse'
        '500':
          description: Error response with status 500
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_commons_ErrorResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/type_transactions_CreateAuditRequestBody'
    servers:
    - url: https://rewards-api.getkard.com
      description: Production
    - url: https://test-rewards-api.getkard.com
      description: Sandbox
  /v2/issuers/{organizationId}/users/{userId}/earned-rewards:
    get:
      operationId: get-earned-rewards
      summary: Get Earned Rewards
      description: 'Retrieve rewarded transaction history for a specific user. By default this returns only SETTLED transactions within the last 12 months regardless of payment status. Pass `filter[paidInFullOnly]=true` to restrict the response to matched transactions that have been paid in full to the issuer (`paidToIssuer` is `PAID_IN_FULL`).

        <br/>

        <b>Required scopes:</b> `transaction:read`

        <br/>

        <b>Query Limit:</b> Maximum of 12 months of transaction data can be queried.'
      tags:
      - transactions
      parameters:
      - name: organizationId
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/type_commons_OrganizationId'
      - name: userId
        in: path
        description: The ID of the user as defined on the issuers system
        required: true
        schema:
          type: string
      - name: page[after]
        in: query
        description: Cursor for next page (base64-encoded timestamp + transaction ID)
        required: false
        schema:
          type: string
      - name: page[before]
        in: query
        description: Cursor for previous page (base64-encoded timestamp + transaction ID)
        required: false
        schema:
          type: string
      - name: page[size]
        in: query
        description: Number of results per page
        required: false
        schema:
          type: integer
      - name: filter[status]
        in: query
        description: Filter by transaction status. Supported values are `APPROVED` and `SETTLED`. Defaults to `SETTLED` when omitted. When `APPROVED` is specified, only approved transactions that do not yet have a corresponding settled transaction are returned.
        required: false
        schema:
          $ref: '#/components/schemas/type_transactions_RewardedTransactionStatus'
      - name: filter[paidInFullOnly]
        in: query
        description: When `true`, only return transactions that have been paid in full to the issuer (`paidToIssuer` is `PAID_IN_FULL`). By default (`false`), any matched transaction is returned regardless of payment status. This also controls whether unpaid transactions contribute to `lifetimeRewardsInCents`. Has no effect on `APPROVED` transactions, which are always returned when requested.
        required: false
        schema:
          type: boolean
      - name: include
        in: query
        description: Comma-separated list of related resources to include in the response. Supported values are `merchant` and `offer`.
        required: false
        schema:
          type: string
      - name: Authorization
        in: header
        description: Bearer authentication
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Response with status 200
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_transactions_GetEarnedRewardsResponse'
        '400':
          description: Error response with status 400
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_commons_ErrorResponse'
        '401':
          description: Error response with status 401
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_commons_ErrorResponse'
        '404':
          description: Error response with status 404
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_commons_ErrorResponse'
        '500':
          description: Error response with status 500
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_commons_ErrorResponse'
    servers:
    - url: https://rewards-api.getkard.com
      description: Production
    - url: https://test-rewards-api.getkard.com
      description: Sandbox
  /transactions/incoming:
    post:
      operationId: create-incoming-transaction
      summary: Create Incoming Transaction
      description: 'Call this endpoint to send all incoming transactions made by all enrolled users in your rewards program. These incoming transactions will be processed and matched by the Kard system. Learn more about the [Transaction CLO Matching](https://github.com/kard-financial/kard-postman#c-transaction-clo-matching) flow here.<br/>

        <b>Required scopes:</b> `transaction:write`'
      tags:
      - transactions
      parameters:
      - name: Authorization
        in: header
        description: Bearer authentication
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Response with status 201
          content:
            application/json:
              schema:
                type: string
        '400':
          description: Error response with status 400
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_commons_InvalidRequestUnion'
        '401':
          description: Error response with status 401
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_commons_UnauthorizedErrorBody'
        '500':
          description: Error response with status 500
          content:
            application/json:
              schema:
                type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/type_transactions_CreateIncomingTransactionRequestBody'
    servers:
    - url: https://rewards-api.getkard.com
      description: Production
    - url: https://test-rewards-api.getkard.com
      description: Sandbox
  /transactions/audit:
    post:
      operationId: create-audit
      summary: Create Audit
      description: 'Call this endpoint to request that a particular transaction be audited further by the Kard system, in the event of a missing cashback claim, incorrect cashback amount claim or other mis-match claims.<br/>

        <b>Required scopes:</b> `audit:write`'
      tags:
      - transactions
      parameters:
      - name: Authorization
        in: header
        description: Bearer authentication
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Response with status 201
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_transactions_CreateAuditResponse'
        '400':
          description: Error response with status 400
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_commons_InvalidRequestUnion'
        '401':
          description: Error response with status 401
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_commons_UnauthorizedErrorBody'
        '409':
          description: Error response with status 409
          content:
            application/json:
              schema:
                type: string
        '500':
          description: Error response with status 500
          content:
            application/json:
              schema:
                type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/type_transactions_CreateAuditRequestBody_2'
    servers:
    - url: https://rewards-api.getkard.com
      description: Production
    - url: https://test-rewards-api.getkard.com
      description: Sandbox
  /transactions/audit/{id}:
    get:
      operationId: get-audit-by-id
      summary: Get Audit Status
      description: 'Call this endpoint to retrieve an update on the status of a created transaction audit. Note, the resolutionCode, resolutionDescription and resolutionTimeStamp will not be available until the audit has a “CLOSED” status signifying its resolution. <br/>

        <b>Required scopes:</b> `audit:read`'
      tags:
      - transactions
      parameters:
      - name: id
        in: path
        description: The audit ID provided by Kard's system
        required: true
        schema:
          type: string
      - name: Authorization
        in: header
        description: Bearer authentication
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Response with status 200
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_transactions_GetAuditByIdResponse'
        '400':
          description: Error response with status 400
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_commons_InvalidRequestUnion'
        '401':
          description: Error response with status 401
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_commons_UnauthorizedErrorBody'
        '404':
          description: Error response with status 404
          content:
            application/json:
              schema:
                type: string
        '500':
          description: Error response with status 500
          content:
            application/json:
              schema:
                type: string
    servers:
    - url: https://rewards-api.getkard.com
      description: Production
    - url: https://test-rewards-api.getkard.com
      description: Sandbox
components:
  schemas:
    type_transactions_GetEarnedRewardsMeta:
      type: object
      properties:
        lifetimeRewardsInCents:
          type: integer
          description: Lifetime rewards earned by the user across matched transactions in cents. By default all matched transactions are included regardless of payment status; pass `filter[paidInFullOnly]=true` to restrict the total to transactions paid in full to the issuer (`paidToIssuer` is `PAID_IN_FULL`).
      required:
      - lifetimeRewardsInCents
      title: GetEarnedRewardsMeta
    type_commons_ResourceType:
      type: string
      description: Type of document returned
      title: ResourceType
    type_transactions_TransactionMerchantAttributes:
      type: object
      properties:
        name:
          type: string
          description: Merchant name
        assets:
          type: array
          items:
            $ref: '#/components/schemas/type_transactions_MerchantAsset'
          description: 'Tracked asset images for the merchant (logo, banner, etc.). Each asset

            URL is signed for attribution tracking and should be loaded as-is by the

            client.'
      required:
      - name
      title: TransactionMerchantAttributes
    type_transactions_FileUploadUrlData:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/type_transactions_FileUploadType'
        id:
          type: string
          description: Upload session ID for traceability
        attributes:
          $ref: '#/components/schemas/type_transactions_FileUploadUrlAttributes'
      required:
      - type
      - id
      - attributes
      title: FileUploadUrlData
    type_transactions_CommissionEarnedDetails:
      type: object
      properties:
        user:
          $ref: '#/components/schemas/type_commons_CommissionValue'
      required:
      - user
      title: CommissionEarnedDetails
    type_transactions_AuditAttributes:
      type: object
      properties:
        auditCode:
          type: integer
          description: "Audit Code - Enum. Please submit the code that is most relevant to your audit request.\n            <ul>\n              <li>`3005` : Customer is claiming cashback is incorrect - INCORRECT CASHBACK CLAIM</li>\n              <li>`3006` : Transaction is missing the cashback award - MISSING CASHBACK AWARD</li>\n              <li>`8001` : Other - check audit description</li>\n            </ul>"
        merchantName:
          type: string
          description: Merchant name related to the transaction audit
        auditDescription:
          type: string
          description: Audit Description. Please provide more details around the audit
        transactionId:
          type: string
          description: Transaction ID from issuer to audit
      required:
      - auditCode
      - merchantName
      - auditDescription
      - transactionId
      title: AuditAttributes
    type_transactions_CreateFileUploadUrlResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/type_transactions_FileUploadUrlData'
          description: List of created file upload sessions.
      required:
      - data
      title: CreateFileUploadUrlResponse
    type_transactions_TransactionsAttributes:
      type: object
      properties:
        userId:
          type: string
          description: The ID of the user as defined on the issuers system
        amount:
          type: integer
          description: Transaction amount in cents
        subtotal:
          type: integer
          description: The base amount in cents excluding additional charges (such as tips, taxes, and other fees).
        status:
          $ref: '#/components/schemas/type_transactions_TransactionStatus'
          description: Transaction status
        currency:
          type: string
          description: Currency of transaction
        description:
          type: string
          description: Description of transaction - usually includes merchant and other key details on transaction
        description2:
          type: string
          description: Description2 of transaction — usually includes other merchant identifying information
        mcc:
          type: string
          description: Merchant Category Code (usually a 4-digit numerical number). <b>Note, this field is REQUIRED for SOME national offers. We HIGHLY RECOMMEND sending this field as it will be required in the near future.</b>
        coreProviderId:
          type: string
          description: Name of processor associated with transaction
        transactionDate:
          type: string
          format: date-time
          description: Timestamp for <b>REVERSED, RETURNED, DECLINED</b> transaction events; <b>REQUIRED</b> for transactions with <b>REVERSED, RETURNED, DECLINED</b> status. Date string should be in ISO 8601 format i.e.`'YYYY-MM-DDThh:mm:ss.sTZD'` where TZD = time zone designator (Z or +hh:mm or -hh:mm) i.e. `1994-11-05T08:15:30-05:00` OR `1994-11-05T08:15:30Z`
        authorizationDate:
          type: string
          format: date-time
          description: Timestamp for <b>APPROVED</b> transaction event; <b>REQUIRED</b> for transactions with <b>APPROVED</b> status, and <b>HIGHLY RECOMMENDED</b> to include for transactions with a <b>SETTLED</b> status. Date string should be in ISO 8601 format i.e.`'YYYY-MM-DDThh:mm:ss.sTZD'` where TZD = time zone designator (Z or +hh:mm or -hh:mm) i.e. `1994-11-05T08:15:30-05:00 OR 1994-11-05T08:15:30Z`
        settledDate:
          type: string
          format: date-time
          description: Timestamp for <b>SETTLED</b> transaction event, <b>REQUIRED</b> for transactions with <b>SETTLED</b> status. Date string should be in ISO 8601 format i.e.`'YYYY-MM-DDThh:mm:ss.sTZD'` where TZD = time zone designator (Z or +hh:mm or -hh:mm) i.e. `1994-11-05T08:15:30-05:00` OR `1994-11-05T08:15:30Z`
        merchant:
          $ref: '#/components/schemas/type_transactions_Merchant'
          description: Merchant details
        cardPresence:
          type: string
          description: Whether card was present at time of transaction
        panEntryMode:
          type: string
          description: PAN entry mode
        cardBIN:
          type: string
          description: Bank identification number (BIN). Must be a valid BIN of 6 digits. If over 6 digits, please send first 6.
        cardLastFour:
          type: string
          description: Card last four digits.
        authorizationCode:
          type: string
          description: Transaction approval code
        retrievalReferenceNumber:
          type: string
          description: Retrieval Reference Number
        systemTraceAuditNumber:
          type: string
          description: System Trace Audit Number
        acquirerReferenceNumber:
          type: string
          description: Acquirer Reference Number
        direction:
          $ref: '#/components/schemas/type_transactions_DirectionType'
          description: The direction in which the funds flow - DEBIT or CREDIT
        paymentType:
          $ref: '#/components/schemas/type_transactions_TransactionPaymentType'
          description: The type of payment involved in the transaction.
        cardNetwork:
          $ref: '#/components/schemas/type_commons_CardNetwork'
          description: The card network associated with the transaction
        transactionId:
          type: string
          description: The transaction ID
        cardProductId:
          type: string
          description: The card product ID associated with the transaction
        userZipCode:
          type: string
          description: The zip code of the user who made the transaction
        processorMids:
          $ref: '#/components/schemas/type_transactions_ProcessorMid'
          description: Network specific merchant IDs (MIDs) associated with the transaction
        accountId:
          type: string
          description: An account identifier associated to transaction
      required:
      - userId
      - amount
      - status
      - currency
      - description
      - cardBIN
      - cardLastFour
      - direction
      - paymentType
      - transactionId
      title: TransactionsAttributes
    type_commons_RelationshipData:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/type_commons_ResourceType'
        id:
          type: string
          description: The ID of the related resource
      required:
      - type
      - id
      title: RelationshipData
    type_commons_CommissionValue:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/type_commons_CommissionValueType'
          description: The type of commission
        value:
          type: integer
          description: The commission value.
      required:
      - type
      - value
      title: CommissionValue
    type_transactions_AuditResponseAttributes:
      type: object
      properties:
        transactionId:
          type: string
          description: Cardlinked Transaction ID
      required:
      - transactionId
      title: AuditResponseAttributes
    type_commons_ErrorObject:
      type: object
      properties:
        status:
          type: string
          description: Status code returned from the request
        title:
          type: string
          description: Name of error
        detail:
          type: string
          description: Description of the specific occurance of the error
        source:
          $ref: '#/components/schemas/type_commons_ErrorSource'
          description: An object containing a reference to the primary source of the error
        id:
          type: string
          description: The id of the resource which caused the error. Always returned for multi-status errors.
      required:
      - status
      - title
      - detail
      title: ErrorObject
    type_transactions_FileUploadUrlAttributes:
      type: object
      properties:
        url:
          type: string
          description: 'Presigned PUT URL for uploading the file directly to storage.

            Use HTTP PUT with binary body. Expires after 15 minutes.'
        expiresIn:
          type: integer
          description: Time in seconds until the presigned URL expires (900)
      required:
      - url
      - expiresIn
      title: FileUploadUrlAttributes
    type_transactions_TransactionStatus:
      type: string
      enum:
      - APPROVED
      - SETTLED
      - REVERSED
      - RETURNED
      - DECLINED
      title: TransactionStatus
    type_transactions_CreateFileUploadRequestBody:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/type_transactions_CreateFileUploadData'
          description: List of file upload requests (1–10 items per request).
      required:
      - data
      title: CreateFileUploadRequestBody
    type_transactions_MerchantAssetType:
      type: string
      enum:
      - IMG_VIEW
      - BANNER_VIEW
      title: MerchantAssetType
    type_commons_RelationshipSingle:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/type_commons_RelationshipData'
      required:
      - data
      title: RelationshipSingle
    type_transactions_RewardedTransactionStatus:
      type: string
      enum:
      - APPROVED
      - SETTLED
      title: RewardedTransactionStatus
    type_transactions_VisaMidDetails:
      type: object
      properties:
        vmid:
          type: string
          description: Visa Merchant ID (VMID) associated with the transaction
        vsid:
          type: string
          description: Visa Store ID (VSID) associated with the transaction
      required:
      - vmid
      - vsid
      title: VisaMidDetails
    type_transactions_RewardedTransactionAttributes:
      type: object
      properties:
        status:
          type: string
          enum:
          - SETTLED
          description: Status of the rewarded transaction
        transactionId:
          type: string
          description: The transaction identifier
        transactionAmountInCents:
          type: integer
          description: Transaction amount in cents
        transactionTimestamp:
          type: string
          format: date-time
          description: Timestamp of the transaction in ISO 8601 format
        paidToIssuer:
          $ref: '#/components/schemas/type_transactions_PaymentStatus'
          description: Payment status to issuer
        commissionEarned:
          $ref: '#/components/schemas/type_transactions_CommissionEarnedDetails'
        payoutTimestamp:
          type: string
          format: date-time
          description: Timestamp representing the month when the transaction has been paid out to issuer
      required:
      - status
      - transactionId
      - transactionAmountInCents
      - transactionTimestamp
      - paidToIssuer
      - commissionEarned
      title: RewardedTransactionAttributes
    type_transactions_GetEarnedRewardsResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/type_transactions_RewardedTransactionUnion'
        links:
          $ref: '#/components/schemas/type_commons_Links'
        meta:
          $ref: '#/components/schemas/type_transactions_GetEarnedRewardsMeta'
          description: Additional metadata for the earned rewards response.
        included:
          type: array
          items:
            $ref: '#/components/schemas/type_transactions_TransactionIncludedResource'
          description: Additional resources referenced in the response
      required:
      - data
      - links
      - meta
      title: GetEa

# --- truncated at 32 KB (68 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/kard/refs/heads/main/openapi/kard-transactions-api-openapi.yml