---
title: "Notification Webhook"
method: POST
path: "notifications_notificationWebhook"
---

# Notification Webhook

`POST notifications_notificationWebhook` (webhook)

This is an outbound webhook for issuers to receive notifications from Kard.
Learn more about how to configure, ingest and trigger your notification
webhooks [here](/2024-10-01/api/notifications).

## Payload

- NotificationsNotificationPayload
  - `data` union, required
    - object
      - `type` 'earnedRewardApproved', required: Discriminator value: earnedRewardApproved
      - `id` string, required: The internal ID of the notification
      - `attributes` NotificationsEarnedRewardNotificationAttributes, required
        - `message` string, required: The display message associated to the notification
        - `name` string, required: The name of the merchant
        - `attributionUrl` string, required: The attribution URL to track user's interactions with the notification
        - `surveyUrl` string: Post experience survey URL, if available. This will be present for rewards associated with local offers.
        - `cardProductId` string: The ID of the card product
        - `transactionTimestamp` string, date-time: The timestamp of the originating transaction in ISO format
        - `transactionId` string, required: The transaction ID
        - `transactionAmountInCents` integer, required: The amount of the originating transaction in cents
        - `categoryName` string: The category of the offer, e.g. "Food & Dining"
        - `userReward` NotificationsUserReward, required
          - `type` 'FLAT' | 'PERCENT', required: Type of commission on offer (% or a flat $)
          - `value` number, double, required: The reward value
        - `assets` TransactionsMerchantAsset[]: Tracked asset images for the merchant. The asset URL is signed for attribution tracking and should be loaded as-is by the client.
          - `type` 'IMG_VIEW' | 'BANNER_VIEW', required
          - `url` string, required: Attribution-signed URL for loading the asset.
          - `alt` string: Alt text describing the asset for accessibility.
        - `purchaseChannel` CommonsPurchaseChannel[]: The purchase channels the offer applies to
      - `relationships` NotificationsEarnedRewardRelationships, required
        - `user` CommonsRelationshipSingle, required
          - `data` CommonsRelationshipData, required
            - `type` string, required: Type of document returned
            - `id` string, required: The ID of the related resource
        - `offer` CommonsRelationshipSingle, required
          - `data` CommonsRelationshipData, required
            - `type` string, required: Type of document returned
            - `id` string, required: The ID of the related resource
        - `transaction` CommonsRelationshipSingle, required
          - `data` CommonsRelationshipData, required
            - `type` string, required: Type of document returned
            - `id` string, required: The ID of the related resource
    - object
      - `type` 'earnedRewardSettled', required: Discriminator value: earnedRewardSettled
      - `id` string, required: The internal ID of the notification
      - `attributes` NotificationsEarnedRewardSettledAttributes, required
        - `message` string, required: The display message associated to the notification
        - `name` string, required: The name of the merchant
        - `attributionUrl` string, required: The attribution URL to track user's interactions with the notification
        - `surveyUrl` string: Post experience survey URL, if available. This will be present for rewards associated with local offers.
        - `cardProductId` string: The ID of the card product
        - `transactionTimestamp` string, date-time: The timestamp of the originating transaction in ISO format
        - `transactionId` string, required: The transaction ID
        - `transactionAmountInCents` integer, required: The amount of the originating transaction in cents
        - `categoryName` string: The category of the offer, e.g. "Food & Dining"
        - `userReward` NotificationsUserReward, required
          - `type` 'FLAT' | 'PERCENT', required: Type of commission on offer (% or a flat $)
          - `value` number, double, required: The reward value
        - `assets` TransactionsMerchantAsset[]: Tracked asset images for the merchant. The asset URL is signed for attribution tracking and should be loaded as-is by the client.
          - `type` 'IMG_VIEW' | 'BANNER_VIEW', required
          - `url` string, required: Attribution-signed URL for loading the asset.
          - `alt` string: Alt text describing the asset for accessibility.
        - `purchaseChannel` CommonsPurchaseChannel[]: The purchase channels the offer applies to
        - `commissionEarned` CommonsCommissionValue, required
          - `type` 'cents', required: The type of commission value
          - `value` integer, required: The commission value.
      - `relationships` NotificationsEarnedRewardRelationships, required
        - `user` CommonsRelationshipSingle, required
          - `data` CommonsRelationshipData, required
            - `type` string, required: Type of document returned
            - `id` string, required: The ID of the related resource
        - `offer` CommonsRelationshipSingle, required
          - `data` CommonsRelationshipData, required
            - `type` string, required: Type of document returned
            - `id` string, required: The ID of the related resource
        - `transaction` CommonsRelationshipSingle, required
          - `data` CommonsRelationshipData, required
            - `type` string, required: Type of document returned
            - `id` string, required: The ID of the related resource
    - object
      - `type` 'earnedRewardRejected', required: Discriminator value: earnedRewardRejected
      - `id` string, required: The internal ID of the notification
      - `attributes` NotificationsEarnedRewardRejectedAttributes, required
        - `reason` 'AGGREGATOR_CARD_OVERLAP' | 'MAX_REDEMPTION_LIMIT_REACHED' | 'SETTLEMENT_REJECTED' | 'USER_NOT_ENROLLED' | 'USER_NOT_IN_AUDIENCE_SEGMENT', required: The reason a matched transaction was rejected and did not result in a reward
        - `message` string, required: The display message associated to the notification
        - `transactionId` string, required: The transaction ID
        - `transactionAmountInCents` integer, required: The amount of the originating transaction in cents
        - `transactionTimestamp` string, date-time: The timestamp of the originating transaction in ISO format
      - `relationships` NotificationsRejectedTransactionRelationships, required
        - `user` CommonsRelationshipSingle, required
          - `data` CommonsRelationshipData, required
            - `type` string, required: Type of document returned
            - `id` string, required: The ID of the related resource
        - `transaction` CommonsRelationshipSingle, required
          - `data` CommonsRelationshipData, required
            - `type` string, required: Type of document returned
            - `id` string, required: The ID of the related resource
    - object
      - `type` 'auditUpdate', required: Discriminator value: auditUpdate
      - `id` string, required: The internal ID of the notification
      - `attributes` NotificationsAuditUpdateAttributes, required
        - `status` 'NEW' | 'IN_PROGRESS' | 'CLOSED', required
        - `auditCode` integer, required: Audit Code - Enum. Code to define audit. <ul> <li>`3005` : Customer is claiming cashback is incorrect - INCORRECT CASHBACK CLAIM</li> <li>`3006` : Transaction is missing the cashback award - MISSING CASHBACK AWARD</li> <li>`8001` : Other - check audit description</li> </ul>
        - `merchantName` string, required: The merchant name related to the transaction audit
        - `auditDescription` string, required: The description of the audit
        - `transactionId` string, required: The transaction ID associated with audit
        - `resolutionCode` integer: Resolution Code - Enum. field is available when audit is status CLOSED. <ul> <li>`5001` : Transaction will be deleted</li> <li>`5002` : Settlement amount will be adjusted</li> <li>`5003` : Return amount will be adjusted</li> <li>`5004` : Reward dispute resolved</li> <li>`5005` : Transaction will be marked for writeoff</li> <li>`5006` : Transaction will be marked as rejected</li> <li>`5007` : Transaction will be resent through webhook</li> <li>`5008` : Transaction will be resent through daily file</li> <li>`5009` : No change needed</li> <li>`9001` : Ineligible item in purchase</li> <li>`9002` : Return was made</li> <li>`9003` : User ineligible for offer (usually because of participation through another program)</li> <li>`9004` : Redemption limit hit (if offer has a set number of redemptions and it isn't handled programmatically)</li> <li>`9005` : Transaction not captured</li> </ul>
        - `resolutionDescription` string: The resolution description; field is available when audit is status CLOSED
        - `resolutionTimeStamp` string, date-time: The resolution timestamp of when the audit was marked as status CLOSED in ISO format; available when audit is closed.
      - `relationships` NotificationsAuditUpdateRelationships, required
        - `user` CommonsRelationshipSingle, required
          - `data` CommonsRelationshipData, required
            - `type` string, required: Type of document returned
            - `id` string, required: The ID of the related resource
        - `audit` CommonsRelationshipSingle, required
          - `data` CommonsRelationshipData, required
            - `type` string, required: Type of document returned
            - `id` string, required: The ID of the related resource
    - object
      - `type` 'fileProcessingResult', required: Discriminator value: fileProcessingResult
      - `id` string, required: The internal ID of the notification
      - `attributes` FilesFileMetadataAttribute, required
        - `fileName` string, required: The name of the file. Under `filter[fileType]=payoutReconciliationFile` it is the file name with extension and no path. Under `monthlyReconciliationFile`, the daily file types or no filter it is the full storage key, kept until the deprecated name is removed.
        - `sentAt` string, required: ISO 8601 timestamp (ISO8601) when the file was originally sent/created.
        - `lastModified` string, required: ISO 8601 timestamp (ISO8601) when the file was last modified.
        - `downloadUrl` string, required: Temporary URL that provides direct access to download the file for 30 minutes.
        - `periodStart` string: Start of the reporting period, inclusive (RFC 3339, UTC). Present only when a period was informed at upload.
        - `periodEnd` string: End of the reporting period, inclusive (RFC 3339, UTC). Present only when a period was informed at upload.
    - object
      - `type` 'pushNotificationPlacementFile', required: Discriminator value: pushNotificationPlacementFile
      - `id` string, required: The placement ID, also used as the notification resource ID
      - `attributes` NotificationsPushNotificationPlacementFileAttributes, required
        - `placementName` string, required: The display name of the placement
        - `availableSlots` integer, required: The number of offer slots available in the placement
        - `cadence` string, required: The delivery cadence of the placement (e.g. WEEKLY)
        - `downloadUrl` string, required: Presigned URL to download the generated placement file (gzipped JSONL)
      - `relationships` NotificationsPushNotificationPlacementFileRelationships, required
        - `placement` CommonsRelationshipSingle, required
          - `data` CommonsRelationshipData, required
            - `type` string, required: Type of document returned
            - `id` string, required: The ID of the related resource
        - `contentStrategy` CommonsRelationshipSingle
          - `data` CommonsRelationshipData, required
            - `type` string, required: Type of document returned
            - `id` string, required: The ID of the related resource
    - object
      - `type` 'emailNotificationPlacementFile', required: Discriminator value: emailNotificationPlacementFile
      - `id` string, required: The placement ID, also used as the notification resource ID
      - `attributes` NotificationsEmailNotificationPlacementFileAttributes, required
        - `name` string, required: The display name of the placement
        - `organizationId` string, required: The issuer organization ID the placement belongs to
        - `availableSlots` integer, required: The number of offer slots available in the placement
        - `cadence` string, required: The delivery cadence of the placement (e.g. MONTHLY)
        - `downloadUrl` string, required: Presigned URL to download the generated placement file (gzipped JSONL)
      - `relationships` NotificationsEmailNotificationPlacementFileRelationships, required
        - `placement` CommonsRelationshipSingle, required
          - `data` CommonsRelationshipData, required
            - `type` string, required: Type of document returned
            - `id` string, required: The ID of the related resource
        - `contentStrategy` CommonsRelationshipSingle
          - `data` CommonsRelationshipData, required
            - `type` string, required: Type of document returned
            - `id` string, required: The ID of the related resource
    - object
      - `type` 'payoutReconciliationFile', required: Discriminator value: payoutReconciliationFile
      - `id` string, required
      - `attributes` NotificationsPayoutReconciliationFileAttributes, required
        - `fileName` string, required
        - `periodStart` string, required
        - `periodEnd` string, required
        - `downloadUrl` string, required
        - `expiresIn` integer, required
      - `relationships` NotificationsPayoutReconciliationFileRelationships, required
        - `file` CommonsRelationshipSingle, required
          - `data` CommonsRelationshipData, required
            - `type` string, required: Type of document returned
            - `id` string, required: The ID of the related resource
  - `errors` CommonsErrorObject[]
    - `status` string, required: Status code returned from the request
    - `title` string, required: Name of error
    - `detail` string, required: Description of the specific occurance of the error
    - `source` CommonsErrorSource
      - `pointer` string: A JSON pointer to the value in the request document that caused the error
      - `parameter` string: A string indicating which URI query parameter caused the error
      - `header` string: A string indicating the name of a single request header which caused the error
    - `id` string: The id of the resource which caused the error. Always returned for multi-status errors.

## Acknowledgement `200`

Webhook received successfully

---

[API](https://skmtc.dev/getkard/apis/getkard-2.md) - [All operations](https://skmtc.dev/getkard/apis/getkard-2/llms.txt) - [OpenAPI document](https://skmtc.dev/getkard/apis/getkard-2/revisions/bd47764afa21?raw)
