Kard transactions API

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

OpenAPI Specification

kard-transactions-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: API Reference attributions transactions API
  version: 1.0.0
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'
  /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'
  /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'
  /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'
  /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'
  /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'
  /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
components:
  schemas:
    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:RequestValidationErrorResponse:
      type: object
      properties:
        errors:
          type: array
          items:
            type: string
      required:
      - errors
      title: RequestValidationErrorResponse
    type_transactions:DirectionType:
      type: string
      enum:
      - DEBIT
      - CREDIT
      title: DirectionType
    type_transactions:CreateFileUploadAttributes:
      type: object
      properties:
        filename:
          type: string
          description: Name of the file to upload, including extension (e.g. "transaction_12345.jsonl")
      required:
      - filename
      title: CreateFileUploadAttributes
    type_transactions:CoreTransactionAttributes:
      type: object
      properties:
        userId:
          type: string
          description: The ID of the user as defined on the issuers system
        transactionId:
          type: string
          description: The transaction ID from the core banking system
        amount:
          type: integer
          description: Transaction amount in cents
        currency:
          type: string
          description: Currency of transaction in ISO 4217 alpha-3 format
        description:
          type: string
          description: Description of transaction - usually includes merchant and other key details on transaction
        direction:
          $ref: '#/components/schemas/type_transactions:DirectionType'
          description: The direction in which the funds flow - DEBIT or CREDIT
        status:
          type: string
          enum:
          - SETTLED
          description: Transaction status (always SETTLED for core transactions)
        settledDate:
          type: string
          format: date-time
          description: Timestamp when transaction was settled. 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 transaction authorization. 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
        financialInstitutionName:
          type: string
          description: Deprecated. Use `financialInstitutionId` instead. Name of the financial institution.
        financialInstitutionId:
          type: string
          description: Unique identifier of the financial institution
        cardLastFours:
          type: array
          items:
            type: string
          description: Last four digits of the card(s) that may have been used for the transaction. When the issuer cannot determine which specific card was used, multiple values are provided as candidates.
      required:
      - userId
      - transactionId
      - amount
      - currency
      - description
      - direction
      - status
      - settledDate
      - authorizationDate
      title: CoreTransactionAttributes
    type_transactions:RewardedTransactionStatus:
      type: string
      enum:
      - APPROVED
      - SETTLED
      title: RewardedTransactionStatus
    type_transactions:CreateAuditResponseBody:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/type_transactions:CreateAuditResponseDataUnion'
      required:
      - data
      title: CreateAuditResponseBody
    type_transactions:AuditResponseAttributes:
      type: object
      properties:
        transactionId:
          type: string
          description: Cardlinked Transaction ID
      required:
      - transactionId
      title: AuditResponseAttributes
    type_transactions:CreateIncomingTransactionRequestBody:
      type: array
      items:
        $ref: '#/components/schemas/type_transactions:IncomingTransactionRequest'
      title: CreateIncomingTransactionRequestBody
    type_transactions:TransactionsResponseData:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/type_commons:ResourceType'
        id:
          type: string
          description: The request id of the pending job
        attributes:
          $ref: '#/components/schemas/type_commons:Job'
      required:
      - type
      - id
      - attributes
      title: TransactionsResponseData
    type_transactions:FileUploadType:
      type: string
      enum:
      - incomingTransactionsFile
      - historicalTransactionsFile
      description: Specifies the category of transaction file being uploaded. Use `incomingTransactionsFile` for new, real-time transactions that need to be processed and matched as they arrive. Use `historicalTransactionsFile` for historical transaction ingestion.
      title: FileUploadType
    type_transactions:IncomingTransactionRequest:
      type: object
      properties:
        transactionId:
          type: string
          description: Transaction ID in issuer's system
        referringPartnerUserId:
          type: string
          description: Referring partner user ID from issuer associated with transaction
        amount:
          type: integer
          description: Transaction amount in cents
        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 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 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 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`
        merchantId:
          type: string
          description: Acquirer Merchant Identification Number (MID) — usually a 15 digit numerical identifier code. <b>Note, this field is REQUIRED for local offers. We HIGHLY RECOMMEND sending this field as it will be required in the near future.</b>
        merchantStoreId:
          type: string
          description: Merchant store ID where transaction originated from
        cardPresence:
          type: string
          description: Whether card was present at time of transaction
        merchantName:
          type: string
          description: Merchant name associated with transaction
        merchantAddrCity:
          type: string
          description: Merchant address city associated with transaction. <b>We HIGHLY RECOMMEND sending this field as it may be required in the near future.</b>
        merchantAddrState:
          $ref: '#/components/schemas/type_commons:State'
          description: Merchant address state associated with transaction. <b>We HIGHLY RECOMMEND sending this field as it may be required in the near future.</b>
        merchantAddrZipcode:
          type: string
          description: Merchant address zip code associated with transaction. <b>We HIGHLY RECOMMEND sending this field as it may be required in the near future.</b>
        merchantAddrCountry:
          type: string
          description: Merchant address country associated with transaction. <b>We HIGHLY RECOMMEND sending this field as it may be required in the near future.</b>
        merchantAddrStreet:
          type: string
          description: Merchant street address associated with transaction. <b>We HIGHLY RECOMMEND sending this field as it may be required in the near future.</b>
        merchantLat:
          type: string
          description: Merchant latitude geocoordinate associated with transaction. <b>We HIGHLY RECOMMEND sending this field as it may be required in the near future.</b>
        merchantLong:
          type: string
          description: Merchant longitude geocoordinate associated with transaction. <b>We HIGHLY RECOMMEND sending this field as it may be required in the near future.</b>
        panEntryMode:
          type: string
          description: PAN entry mode (usually a 2 digit numeric code)
        cardBIN:
          type: string
          description: Bank identification number (BIN). Must be a valid BIN of 6 digits. If over 6 digits, please send first 6. <b>Note, this field is REQUIRED for matching purposes.</b>
        cardLastFour:
          type: string
          description: Card last four digits. <b>Note, this field is REQUIRED for matching purposes.</b>
        googleId:
          type: string
          description: Google Id
        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
        isDeposit:
          type: boolean
          description: Transaction is a deposit
      required:
      - transactionId
      - referringPartnerUserId
      - amount
      - status
      - currency
      - description
      title: IncomingTransactionRequest
    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:RewardedTransactionRelationships:
      type: object
      properties:
        user:
          $ref: '#/components/schemas/type_commons:RelationshipSingle'
        merchant:
          $ref: '#/components/schemas/type_commons:RelationshipSingle'
        offer:
          $ref: '#/components/schemas/type_commons:RelationshipSingle'
      required:
      - user
      - merchant
      - offer
      title: RewardedTransactionRelationships
    type_transactions:States:
      type: string
      enum:
      - AL
      - AK
      - AS
      - AZ
      - AR
      - CA
      - CO
      - CT
      - DE
      - DC
      - FM
      - FL
      - GA
      - GU
      - HI
      - ID
      - IL
      - IN
      - IA
      - KS
      - KY
      - LA
      - ME
      - MH
      - MD
      - MA
      - MI
      - MN
      - MS
      - MO
      - MT
      - NE
      - NV
      - NH
      - NJ
      - NM
      - NY
      - NC
      - ND
      - MP
      - OH
      - OK
      - OR
      - PW
      - PA
      - PR
      - RI
      - SC
      - SD
      - TN
      - TX
      - UT
      - VT
      - VI
      - VA
      - WA
      - WV
      - WI
      - WY
      title: States
    type_transactions:CommissionEarnedDetails:
      type: object
      properties:
        user:
          $ref: '#/components/schemas/type_commons:CommissionValue'
      required:
      - user
      title: CommissionEarnedDetails
    type_transactions:TransactionOfferAttributes:
      type: object
      properties:
        purchaseChannel:
          type: array
          items:
            type: string
          description: Purchase channels
      required:
      - purchaseChannel
      title: TransactionOfferAttributes
    type_transactions:TransactionsMultiResponse:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/type_commons:ErrorObject'
        data:
          $ref: '#/components/schemas/type_transactions:TransactionsResponseData'
      required:
      - errors
      - data
      title: TransactionsMultiResponse
    type_transactions:Transactions:
      oneOf:
      - type: object
        properties:
          type:
            type: string
            enum:
            - transaction
            description: 'Discriminator value: transaction'
          id:
            type: string
            description: Unique identifier for the transaction event. This <b>must</b> be unique for each distinct event sent to the API.
          attributes:
            $ref: '#/components/schemas/type_transactions:TransactionsAttributes'
        required:
        - type
        - id
        - attributes
      - type: object
        properties:
          type:
            type: string
            enum:
            - matchedTransaction
            description: 'Discriminator value: matchedTransaction'
          id:
            type: string
            description: Unique identifier for the transaction event. This <b>must</b> be unique for each distinct event sent to the API.
          attributes:
            $ref: '#/components/schemas/type_transactions:MatchedTransactionsAttributes'
        required:
        - type
        - id
        - attributes
      - type: object
        properties:
          type:
            type: string
            

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