{
  "info": {
    "_postman_id": "0a17b9a0-0000-4000-8000-000000000000",
    "name": "Kard Rewards API (2024-10-01)",
    "description": "Kard Rewards API\n\nGenerated from OpenAPI by operations/openapi-transformer.\n\nSet the **baseUrl** collection variable to your target environment and **authToken** to your bearer token.\n\nServers:\n- https://rewards-api.getkard.com (Production)\n- https://test-rewards-api.getkard.com (Sandbox)",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "item": [
    {
      "name": "Transactions",
      "item": [
        {
          "name": "Create Incoming Transactions",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v2/issuers/:organizationId/transactions",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v2",
                "issuers",
                ":organizationId",
                "transactions"
              ],
              "variable": [
                {
                  "key": "organizationId",
                  "value": "",
                  "description": "Your issuer organization ID, provided by Kard (required)"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"data\": [\n    {\n      \"attributes\": {\n        \"accountId\": \"string\",\n        \"acquirerReferenceNumber\": \"string\",\n        \"amount\": 0,\n        \"authorizationCode\": \"string\",\n        \"authorizationDate\": \"2024-10-01T00:00:00.000Z\",\n        \"cardBIN\": \"string\",\n        \"cardLastFour\": \"string\",\n        \"cardNetwork\": \"VISA\",\n        \"cardPresence\": \"string\",\n        \"cardProductId\": \"string\",\n        \"coreProviderId\": \"string\",\n        \"currency\": \"string\",\n        \"description\": \"string\",\n        \"description2\": \"string\",\n        \"direction\": \"DEBIT\",\n        \"mcc\": \"string\",\n        \"merchant\": {\n          \"addrCity\": \"string\",\n          \"addrCountry\": \"string\",\n          \"addrState\": \"AL\",\n          \"addrStreet\": \"string\",\n          \"addrZipcode\": \"string\",\n          \"id\": \"string\",\n          \"latitude\": \"string\",\n          \"longitude\": \"string\",\n          \"name\": \"string\",\n          \"storeId\": \"string\"\n        },\n        \"panEntryMode\": \"string\",\n        \"paymentType\": \"CARD\",\n        \"processorMids\": {\n          \"mids\": {\n            \"vmid\": \"string\",\n            \"vsid\": \"string\"\n          },\n          \"processor\": \"VISA\"\n        },\n        \"retrievalReferenceNumber\": \"string\",\n        \"settledDate\": \"2024-10-01T00:00:00.000Z\",\n        \"status\": \"APPROVED\",\n        \"subtotal\": 0,\n        \"systemTraceAuditNumber\": \"string\",\n        \"transactionDate\": \"2024-10-01T00:00:00.000Z\",\n        \"transactionId\": \"string\",\n        \"userId\": \"string\",\n        \"userZipCode\": \"string\"\n      },\n      \"id\": \"string\",\n      \"type\": \"transaction\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "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.\u003cbr/\u003e\nPlease use the correct type when calling the endpoint:\n- `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.\n- `matchedTransaction`: For pre-matched transactions that need validation on match by the Kard system.\n- `coreTransaction`: For transactions from core banking systems with limited card-level data.\u003cbr/\u003e\n\n\u003cb\u003eRequired scopes:\u003c/b\u003e `transaction:write`\u003cbr/\u003e\n\u003cb\u003eNote:\u003c/b\u003e `Maximum of 500 transactions can be created per request`."
          },
          "response": []
        },
        {
          "name": "Create Bulk Transactions Upload URL",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v2/issuers/:organizationId/transactions/uploads",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v2",
                "issuers",
                ":organizationId",
                "transactions",
                "uploads"
              ],
              "variable": [
                {
                  "key": "organizationId",
                  "value": "",
                  "description": "Your issuer organization ID, provided by Kard (required)"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"data\": [\n    {\n      \"attributes\": {\n        \"filename\": \"string\"\n      },\n      \"type\": \"incomingTransactionsFile\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Generates up to 10 presigned PUT URLs for uploading JSONL transaction files (up to 5GB each) directly\nto storage. Each URL is valid for 15 minutes. Use the returned URL to upload the file via an HTTP PUT request with the\nbinary file content as the body. If a URL expires before the upload completes, you must request a new one.\nFiles can be uploaded as plain JSONL or as a gzip-compressed file.\nSupports 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.\n\u003cb\u003eRequired scopes:\u003c/b\u003e `files:write`"
          },
          "response": []
        },
        {
          "name": "Create Audits",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v2/issuers/:organizationId/users/:userId/audits",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v2",
                "issuers",
                ":organizationId",
                "users",
                ":userId",
                "audits"
              ],
              "variable": [
                {
                  "key": "organizationId",
                  "value": "",
                  "description": "Your issuer organization ID, provided by Kard (required)"
                },
                {
                  "key": "userId",
                  "value": "",
                  "description": "The ID of the user as defined on the issuers system (required)"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"data\": [\n    {\n      \"attributes\": {\n        \"auditCode\": 0,\n        \"auditDescription\": \"string\",\n        \"merchantName\": \"string\",\n        \"transactionId\": \"string\"\n      },\n      \"type\": \"audit\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "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.\u003cbr/\u003e\n\u003cb\u003eRequired scopes:\u003c/b\u003e `audit:write`"
          },
          "response": []
        },
        {
          "name": "Get Earned Rewards",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v2/issuers/:organizationId/users/:userId/earned-rewards",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v2",
                "issuers",
                ":organizationId",
                "users",
                ":userId",
                "earned-rewards"
              ],
              "variable": [
                {
                  "key": "organizationId",
                  "value": "",
                  "description": "Your issuer organization ID, provided by Kard (required)"
                },
                {
                  "key": "userId",
                  "value": "",
                  "description": "The ID of the user as defined on the issuers system (required)"
                }
              ],
              "query": [
                {
                  "key": "page[after]",
                  "value": "",
                  "description": "Cursor for next page (base64-encoded timestamp + transaction ID)",
                  "disabled": true
                },
                {
                  "key": "page[before]",
                  "value": "",
                  "description": "Cursor for previous page (base64-encoded timestamp + transaction ID)",
                  "disabled": true
                },
                {
                  "key": "page[size]",
                  "value": "",
                  "description": "Number of results per page",
                  "disabled": true
                },
                {
                  "key": "filter[status]",
                  "value": "",
                  "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. Enum: APPROVED, SETTLED",
                  "disabled": true
                },
                {
                  "key": "filter[paidInFullOnly]",
                  "value": "",
                  "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.",
                  "disabled": true
                },
                {
                  "key": "include",
                  "value": "",
                  "description": "Comma-separated list of related resources to include in the response. Supported values are `merchant` and `offer`.",
                  "disabled": true
                }
              ]
            },
            "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`).\n\u003cbr/\u003e\n\u003cb\u003eRequired scopes:\u003c/b\u003e `transaction:read`\n\u003cbr/\u003e\n\u003cb\u003eQuery Limit:\u003c/b\u003e Maximum of 12 months of transaction data can be queried."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Users",
      "item": [
        {
          "name": "Create Users",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v2/issuers/:organizationId/users",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v2",
                "issuers",
                ":organizationId",
                "users"
              ],
              "variable": [
                {
                  "key": "organizationId",
                  "value": "",
                  "description": "Your issuer organization ID, provided by Kard (required)"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"data\": [\n    {\n      \"attributes\": {\n        \"birthYear\": \"string\",\n        \"email\": \"string\",\n        \"enrolledRewards\": [\n          \"CARDLINKED\"\n        ],\n        \"hashedEmail\": \"string\",\n        \"historicalTransactionsSent\": false,\n        \"phoneNumber\": \"string\",\n        \"zipCode\": \"string\"\n      },\n      \"id\": \"string\",\n      \"type\": \"user\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Call this endpoint to enroll a specified user into your rewards program.\u003cbr/\u003e\n\n\u003cb\u003eRequired scopes:\u003c/b\u003e\u0026nbsp;\u0026nbsp;`user:write`\u003cbr/\u003e\n\u003cb\u003eNote:\u003c/b\u003e `Maximum of 100 users can be created per request`."
          },
          "response": []
        },
        {
          "name": "Update User",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v2/issuers/:organizationId/users/:userId",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v2",
                "issuers",
                ":organizationId",
                "users",
                ":userId"
              ],
              "variable": [
                {
                  "key": "organizationId",
                  "value": "",
                  "description": "Your issuer organization ID, provided by Kard (required)"
                },
                {
                  "key": "userId",
                  "value": "",
                  "description": "The ID of the user as defined on the issuers system (required)"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"data\": {\n    \"attributes\": {\n      \"birthYear\": \"string\",\n      \"email\": \"string\",\n      \"enrolledRewards\": [\n        \"CARDLINKED\"\n      ],\n      \"hashedEmail\": \"string\",\n      \"historicalTransactionsSent\": false,\n      \"phoneNumber\": \"string\",\n      \"zipCode\": \"string\"\n    },\n    \"id\": \"string\",\n    \"type\": \"user\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Call this endpoint to update the details on a specified user.\u003cbr/\u003e\n\n\u003cb\u003eRequired scopes:\u003c/b\u003e `user:update`"
          },
          "response": []
        },
        {
          "name": "Delete User",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v2/issuers/:organizationId/users/:userId",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v2",
                "issuers",
                ":organizationId",
                "users",
                ":userId"
              ],
              "variable": [
                {
                  "key": "organizationId",
                  "value": "",
                  "description": "Your issuer organization ID, provided by Kard (required)"
                },
                {
                  "key": "userId",
                  "value": "",
                  "description": "The ID of the user as defined on the issuers system (required)"
                }
              ]
            },
            "description": "Call this endpoint to delete a specified enrolled user from the rewards program and Kard's system. Users can be re-enrolled into rewards by calling the [Create User](/2024-10-01/api/users/create) endpoint using the same `id` from before.\u003cbr/\u003e\n\n\u003cb\u003eRequired scopes:\u003c/b\u003e `user:delete`"
          },
          "response": []
        },
        {
          "name": "Get User By ID",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v2/issuers/:organizationId/users/:userId",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v2",
                "issuers",
                ":organizationId",
                "users",
                ":userId"
              ],
              "variable": [
                {
                  "key": "organizationId",
                  "value": "",
                  "description": "Your issuer organization ID, provided by Kard (required)"
                },
                {
                  "key": "userId",
                  "value": "",
                  "description": "The ID of the user as defined on the issuers system (required)"
                }
              ]
            },
            "description": "Call this endpoint to fetch the details on a specified user.\u003cbr/\u003e\n\u003cbr/\u003e\n\u003cb\u003eRequired scopes:\u003c/b\u003e\u0026nbsp;\u0026nbsp;`user:read`"
          },
          "response": []
        }
      ]
    },
    {
      "name": "Rewards",
      "item": [
        {
          "name": "Get Offers By User",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v2/issuers/:organizationId/users/:userId/offers",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v2",
                "issuers",
                ":organizationId",
                "users",
                ":userId",
                "offers"
              ],
              "variable": [
                {
                  "key": "organizationId",
                  "value": "",
                  "description": "Your issuer organization ID, provided by Kard (required)"
                },
                {
                  "key": "userId",
                  "value": "",
                  "description": "The ID of the user as defined on the issuers system (required)"
                }
              ],
              "query": [
                {
                  "key": "page[size]",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "page[after]",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "page[before]",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "filter[search]",
                  "value": "",
                  "description": "Case-insensitive substring search. Returns offers whose offer name or category name contains the search string.",
                  "disabled": true
                },
                {
                  "key": "filter[purchaseChannel]",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "filter[category]",
                  "value": "",
                  "description": "Category of merchant. Please use URL Encode for non single word categories. (Food \u0026 Beverage should be Food%20%26%20Beverage) Enum: Arts \u0026 Entertainment, Baby, Kids \u0026 Toys, Books \u0026 Digital Media, Clothing, Shoes \u0026 Accessories, Computers, Electronics \u0026 Software, Convenience, Gas, Department Stores, Food \u0026 Beverage, Health \u0026 Beauty, Home \u0026 Garden, Miscellaneous, Occasions \u0026 Gifts, Pets, Sports \u0026 Outdoors, Supplies \u0026 Services, Travel",
                  "disabled": true
                },
                {
                  "key": "filter[isTargeted]",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "sort",
                  "value": "",
                  "description": "If provided, response will be sorted by the specified fields",
                  "disabled": true
                },
                {
                  "key": "include",
                  "value": "",
                  "description": "CSV list of included resources in the response (e.g \"categories\"). Allowed value is `categories`.",
                  "disabled": true
                },
                {
                  "key": "supportedComponents",
                  "value": "",
                  "description": "UI component types to include in the response.",
                  "disabled": true
                }
              ]
            },
            "description": "Retrieve national brand offers that a specified user is eligible for. Call this endpoint to build out your\n[targeted offers UX experience](/2024-10-01/api/getting-started#b-discover-a-lapsed-customer-clo). Local offers details\ncan be found by calling the [Get Eligible Locations](/2024-10-01/api/rewards/locations).\u003cbr/\u003e\n\u003cb\u003eRequired scopes:\u003c/b\u003e `rewards:read`"
          },
          "response": []
        },
        {
          "name": "Get Locations By User",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v2/issuers/:organizationId/users/:userId/locations",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v2",
                "issuers",
                ":organizationId",
                "users",
                ":userId",
                "locations"
              ],
              "variable": [
                {
                  "key": "organizationId",
                  "value": "",
                  "description": "Your issuer organization ID, provided by Kard (required)"
                },
                {
                  "key": "userId",
                  "value": "",
                  "description": "The ID of the user as defined on the issuers system (required)"
                }
              ],
              "query": [
                {
                  "key": "page[size]",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "page[after]",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "page[before]",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "filter[name]",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "filter[city]",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "filter[zipCode]",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "filter[state]",
                  "value": "",
                  "description": "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",
                  "disabled": true
                },
                {
                  "key": "filter[category]",
                  "value": "",
                  "description": "Category of merchant. Please use URL Encode for non single word categories. (Food \u0026 Beverage should be Food%20%26%20Beverage) Enum: Arts \u0026 Entertainment, Baby, Kids \u0026 Toys, Books \u0026 Digital Media, Clothing, Shoes \u0026 Accessories, Computers, Electronics \u0026 Software, Convenience, Gas, Department Stores, Food \u0026 Beverage, Health \u0026 Beauty, Home \u0026 Garden, Miscellaneous, Occasions \u0026 Gifts, Pets, Sports \u0026 Outdoors, Supplies \u0026 Services, Travel",
                  "disabled": true
                },
                {
                  "key": "filter[longitude]",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "filter[latitude]",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "filter[radius]",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "sort",
                  "value": "",
                  "description": "If provided, response will be sorted by the specified fields",
                  "disabled": true
                },
                {
                  "key": "include",
                  "value": "",
                  "description": "CSV list of included resources in the response (e.g \"offers,categories\"). Allowed values are `offers` and `categories`.",
                  "disabled": true
                },
                {
                  "key": "supportedComponents",
                  "value": "",
                  "description": "UI component types to include in included offers.",
                  "disabled": true
                }
              ]
            },
            "description": "Retrieve national and local geographic locations that a specified user has eligible in-store offers at. Use this endpoint to build\nout your [map-specific UX experiences](/2024-10-01/api/getting-started#c-discover-clos-near-you-map-view). Please note\nthat Longitude and Latitude fields are prioritized over State, City and Zipcode and are the recommended search\npattern.\u003cbr/\u003e\n\u003cbr/\u003e\n\u003cb\u003eRequired scopes:\u003c/b\u003e `rewards:read`"
          },
          "response": []
        }
      ]
    },
    {
      "name": "Notifications",
      "item": [
        {
          "name": "Notifications",
          "item": [
            {
              "name": "List Notifications",
              "request": {
                "method": "GET",
                "header": [],
                "url": {
                  "raw": "{{baseUrl}}/v2/issuers/:organizationId/notifications",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v2",
                    "issuers",
                    ":organizationId",
                    "notifications"
                  ],
                  "variable": [
                    {
                      "key": "organizationId",
                      "value": "",
                      "description": "Your issuer organization ID, provided by Kard (required)"
                    }
                  ],
                  "query": [
                    {
                      "key": "page[after]",
                      "value": "",
                      "description": "Represents a cursor value, and if provided, returns the next page of results",
                      "disabled": true
                    },
                    {
                      "key": "page[before]",
                      "value": "",
                      "description": "Represents a cursor value, and if provided, returns the previous page of results",
                      "disabled": true
                    },
                    {
                      "key": "page[size]",
                      "value": "",
                      "description": "Maximum number of records to be returned [1 - 200], (default = 200)",
                      "disabled": true
                    },
                    {
                      "key": "filter[eventName]",
                      "value": "",
                      "description": "Return only notifications for this event name. Enum: earnedRewardApproved, earnedRewardSettled, earnedRewardRejected, validTransaction, failedTransaction, clawback, auditUpdate, fileProcessingResult, pushNotificationPlacementFile, emailNotificationPlacementFile",
                      "disabled": true
                    },
                    {
                      "key": "filter[status]",
                      "value": "",
                      "description": "Return only notifications with this delivery status. Enum: pending, delivered, delivery_failed",
                      "disabled": true
                    },
                    {
                      "key": "filter[after]",
                      "value": "",
                      "description": "Return only notifications created strictly after this timestamp (ISO 8601).",
                      "disabled": true
                    },
                    {
                      "key": "filter[before]",
                      "value": "",
                      "description": "Return only notifications created strictly before this timestamp (ISO 8601).",
                      "disabled": true
                    }
                  ]
                },
                "description": "Lists notifications previously dispatched to the issuer, most recent\nfirst.\n\nResults are filterable by event name, delivery status, and a\n`created_at` time range.\u003cbr/\u003e\n\u003cb\u003eRequired scopes:\u003c/b\u003e `notifications:read`"
              },
              "response": []
            },
            {
              "name": "Replay Notification",
              "request": {
                "method": "POST",
                "header": [],
                "url": {
                  "raw": "{{baseUrl}}/v2/issuers/:organizationId/notifications/:eventId/replay",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v2",
                    "issuers",
                    ":organizationId",
                    "notifications",
                    ":eventId",
                    "replay"
                  ],
                  "variable": [
                    {
                      "key": "organizationId",
                      "value": "",
                      "description": "Your issuer organization ID, provided by Kard (required)"
                    },
                    {
                      "key": "eventId",
                      "value": "",
                      "description": "The event ID of the notification to replay. (required)"
                    }
                  ]
                },
                "description": "Re-enqueues a previously dispatched notification so it is redelivered to\nthe issuer's currently configured webhook for that event. Returns 409\nwhen the issuer has no enabled subscription for the event.\u003cbr/\u003e\n\u003cb\u003eRequired scopes:\u003c/b\u003e `notifications:write`"
              },
              "response": []
            },
            {
              "name": "Simulate Test Notification",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/v2/issuers/:organizationId/notifications",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v2",
                    "issuers",
                    ":organizationId",
                    "notifications"
                  ],
                  "variable": [
                    {
                      "key": "organizationId",
                      "value": "",
                      "description": "Your issuer organization ID, provided by Kard (required)"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"data\": [\n    {\n      \"attributes\": {\n        \"eventName\": \"earnedRewardApproved\",\n        \"transactionId\": \"string\",\n        \"userId\": \"string\"\n      },\n      \"type\": \"simulateTestTransaction\"\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "description": "Sends a simulated earned-reward notification to the issuer's configured\nwebhook for the given event, without requiring a real transaction. Provide\nthe `userId` and `transactionId` to include in the simulated transaction;\noffer information is sourced from an existing offer in sandbox, so the\npayload matches a production notification and is HMAC-signed like any other.\n\nA fresh `eventId` is generated on each call, so the triggered notification\nis listable and replayable just like a real one. Returns `409` when the\nissuer has no enabled subscription for the requested event.\n\n\u003cb\u003eSandbox environment only.\u003c/b\u003e This endpoint is available only in Kard's\ntest (sandbox) environment. It does not exist in production.\u003cbr/\u003e\n\u003cb\u003eRequired scopes:\u003c/b\u003e `notifications:write`"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Subscriptions",
          "item": [
            {
              "name": "Get Subscriptions",
              "request": {
                "method": "GET",
                "header": [],
                "url": {
                  "raw": "{{baseUrl}}/v2/issuers/:organizationId/subscriptions",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v2",
                    "issuers",
                    ":organizationId",
                    "subscriptions"
                  ],
                  "variable": [
                    {
                      "key": "organizationId",
                      "value": "",
                      "description": "Your issuer organization ID, provided by Kard (required)"
                    }
                  ],
                  "query": [
                    {
                      "key": "filter[eventName]",
                      "value": "",
                      "description": "Enum: earnedRewardApproved, earnedRewardSettled, earnedRewardRejected, validTransaction, failedTransaction, clawback, auditUpdate, fileProcessingResult, pushNotificationPlacementFile, emailNotificationPlacementFile",
                      "disabled": true
                    }
                  ]
                },
                "description": "Call this endpoint to fetch the subscriptions of the provided issuer.\u003cbr/\u003e\n\u003cb\u003eRequired scopes:\u003c/b\u003e `notifications:read`"
              },
              "response": []
            },
            {
              "name": "Create Subscription",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/v2/issuers/:organizationId/subscriptions",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v2",
                    "issuers",
                    ":organizationId",
                    "subscriptions"
                  ],
                  "variable": [
                    {
                      "key": "organizationId",
                      "value": "",
                      "description": "Your issuer organization ID, provided by Kard (required)"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"data\": [\n    {\n      \"attributes\": {\n        \"enabled\": false,\n        \"eventName\": \"earnedRewardApproved\",\n        \"webhookUrl\": \"string\"\n      },\n      \"type\": \"subscription\"\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "description": "Call this endpoint to subscribe to notification events.\u003cbr/\u003e\n\u003cb\u003eRequired scopes:\u003c/b\u003e `notifications:write`"
              },
              "response": []
            },
            {
              "name": "Update Subscription",
              "request": {
                "method": "PATCH",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/v2/issuers/:organizationId/subscriptions/:subscriptionId",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v2",
                    "issuers",
                    ":organizationId",
                    "subscriptions",
                    ":subscriptionId"
                  ],
                  "variable": [
                    {
                      "key": "organizationId",
                      "value": "",
                      "description": "Your issuer organization ID, provided by Kard (required)"
                    },
                    {
                      "key": "subscriptionId",
                      "value": "",
                      "description": "The ID of the subscription (required)"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"data\": {\n    \"attributes\": {\n      \"enabled\": false,\n      \"eventName\": \"earnedRewardApproved\",\n      \"webhookUrl\": \"string\"\n    },\n    \"type\": \"subscription\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "description": "Call this endpoint to update existing notification subscriptions.\u003cbr/\u003e\n\u003cb\u003eRequired scopes:\u003c/b\u003e `notifications:write`"
              },
              "response": []
            }
          ]
        }
      ]
    },
    {
      "name": "Attributions",
      "item": [
        {
          "name": "Create Attribution Events",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v2/issuers/:organizationId/users/:userId/attributions",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v2",
                "issuers",
                ":organizationId",
                "users",
                ":userId",
                "attributions"
              ],
              "variable": [
                {
                  "key": "organizationId",
                  "value": "",
                  "description": "Your issuer organization ID, provided by Kard (required)"
                },
                {
                  "key": "userId",
                  "value": "",
                  "description": "The ID of the user as defined on the issuers system (required)"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"data\": [\n    {\n      \"attributes\": {\n        \"entityId\": \"string\",\n        \"eventCode\": \"IMPRESSION\",\n        \"eventDate\": \"2024-10-01T00:00:00.000Z\",\n        \"medium\": \"BROWSE\",\n        \"state\": {\n          \"filters\": [\n            {\n              \"name\": \"string\",\n              \"value\": \"string\"\n            }\n          ],\n          \"placementId\": \"string\",\n          \"rank\": 0,\n          \"slotId\": \"string\"\n        }\n      },\n      \"type\": \"offerAttribution\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Call this endpoint to send attribution events made by a single enrolled user for processing. A maximum of 100 events can be included in a single request.\n\n\u003cb\u003eRequired scopes:\u003c/b\u003e `attributions:write`"
          },
          "response": []
        },
        {
          "name": "Activate Offer",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v2/issuers/:organizationId/users/:userId/offers/:offerId/activate",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v2",
                "issuers",
                ":organizationId",
                "users",
                ":userId",
                "offers",
                ":offerId",
                "activate"
              ],
              "variable": [
                {
                  "key": "organizationId",
                  "value": "",
                  "description": "Your issuer organization ID, provided by Kard (required)"
                },
                {
                  "key": "userId",
                  "value": "",
                  "description": "The ID of the user as defined on the issuers system (required)"
                },
                {
                  "key": "offerId",
                  "value": "",
                  "description": "The unique identifier of the offer being activated (required)"
                }
              ],
              "query": [
                {
                  "key": "supportedComponents",
                  "value": "",
                  "description": "UI component types to include in the offer response (when include=offer).",
                  "disabled": true
                },
                {
                  "key": "include",
                  "value": "",
                  "description": "Related resources to include in the response. Allowed value is `offer`.",
                  "disabled": true
                }
              ]
            },
            "description": "Record when a user activates an offer. Creates an attribution event with eventCode=ACTIVATE and medium=CTA.\nOptionally include the offer data by passing `include=offer`."
          },
          "response": []
        },
        {
          "name": "Boost Offer",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v2/issuers/:organizationId/users/:userId/offers/:offerId/boost",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v2",
                "issuers",
                ":organizationId",
                "users",
                ":userId",
                "offers",
                ":offerId",
                "boost"
              ],
              "variable": [
                {
                  "key": "organizationId",
                  "value": "",
                  "description": "Your issuer organization ID, provided by Kard (required)"
                },
                {
                  "key": "userId",
                  "value": "",
                  "description": "The ID of the user as defined on the issuers system (required)"
                },
                {
                  "key": "offerId",
                  "value": "",
                  "description": "The unique identifier of the offer being boosted (required)"
                }
              ],
              "query": [
                {
                  "key": "supportedComponents",
                  "value": "",
                  "description": "UI component types to include in the offer response (when include=offer).",
                  "disabled": true
                },
                {
                  "key": "include",
                  "value": "",
                  "description": "Related resources to include in the response. Allowed value is `offer`.",
                  "disabled": true
                }
              ]
            },
            "description": "Record when a user boosts an offer. Creates an attribution event with eventCode=BOOST and medium=CTA.\nOptionally include the offer data by passing `include=offer`."
          },
          "response": []
        },
        {
          "name": "Activate Placement Slot",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v2/issuers/:organizationId/users/:userId/placements/:placementId/slot/:slotId/activate",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v2",
                "issuers",
                ":organizationId",
                "users",
                ":userId",
                "placements",
                ":placementId",
                "slot",
                ":slotId",
                "activate"
              ],
              "variable": [
                {
                  "key": "organizationId",
                  "value": "",
                  "description": "Your issuer organization ID, provided by Kard (required)"
                },
                {
                  "key": "userId",
                  "value": "",
                  "description": "The ID of the user as defined on the issuers system (required)"
                },
                {
                  "key": "placementId",
                  "value": "",
                  "description": "Unique identifier of the placement (UUID v7) (required)"
                },
                {
                  "key": "slotId",
                  "value": "",
                  "description": "Stable identifier for the slot within the placement (required)"
                }
              ]
            },
            "description": "Record when a user activates a batch-activation placement slot. Writes a slot-level\n`placementSlotAttribution` ACTIVATE event and fans out a per-offer\n`offerAttribution` ACTIVATE event for every offer resolved by the slot's content\nstrategy. The slot-level event id and the resolved `offerIds` are returned so the\npartner can render the batch immediately without an extra round-trip to re-fetch\nthe placement content.\n\n\u003cb\u003eRequired scopes:\u003c/b\u003e `attributions:write`"
          },
          "response": []
        }
      ]
    },
    {
      "name": "Files",
      "item": [
        {
          "name": "Get Files",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v2/issuers/:organizationId/files/metadata",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v2",
                "issuers",
                ":organizationId",
                "files",
                "metadata"
              ],
              "variable": [
                {
                  "key": "organizationId",
                  "value": "",
                  "description": "Your issuer organization ID, provided by Kard (required)"
                }
              ],
              "query": [
                {
                  "key": "filter[dateFrom]",
                  "value": "",
                  "description": "Start date for filtering files (format ISO8601). If not provided, defaults to current date minus 1 month.",
                  "disabled": true
                },
                {
                  "key": "filter[dateTo]",
                  "value": "",
                  "description": "End date for filtering files (format ISO8601). If not provided, defaults to current date.",
                  "disabled": true
                },
                {
                  "key": "filter[fileType]",
                  "value": "",
                  "description": "The document file type. Enum: earnedRewardApprovedDailyReconciliationFile, earnedRewardSettledDailyReconciliationFile, validatedTransactionDailyReconciliationFile, monthlyReconciliationFile",
                  "disabled": true
                },
                {
                  "key": "page[size]",
                  "value": "",
                  "description": "Number of items per page. Defaults to 10 if not specified and maximum value allowed 100 items per page.",
                  "disabled": true
                },
                {
                  "key": "page[after]",
                  "value": "",
                  "description": "Cursor for forward pagination (next page).",
                  "disabled": true
                },
                {
                  "key": "page[before]",
                  "value": "",
                  "description": "Cursor for backward pagination (previous page).",
                  "disabled": true
                },
                {
                  "key": "sort",
                  "value": "",
                  "description": "If provided, response will be sorted by the specified fields. Defaults to descending sentDate, equivalent to \"-sentDate\"",
                  "disabled": true
                }
              ]
            },
            "description": "Retrieves metadata for files associated with a specific issuer/organization.\nThis endpoint supports pagination and sorting options to efficiently navigate \nthrough potentially large sets of file metadata.\n\u003cb\u003eRequired scopes:\u003c/b\u003e `files.read`"
          },
          "response": []
        }
      ]
    },
    {
      "name": "WebView",
      "item": [
        {
          "name": "Get WebView Token",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v2/auth/issuers/:organizationId/users/:userId/token",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v2",
                "auth",
                "issuers",
                ":organizationId",
                "users",
                ":userId",
                "token"
              ],
              "variable": [
                {
                  "key": "organizationId",
                  "value": "",
                  "description": "Your issuer organization ID, provided by Kard (required)"
                },
                {
                  "key": "userId",
                  "value": "",
                  "description": "The ID of the user as defined on the issuers system (required)"
                }
              ]
            },
            "description": "Retrieves an OAuth token for webview authentication."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Organizations",
      "item": [
        {
          "name": "Get",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v2/issuer",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v2",
                "issuer"
              ]
            },
            "description": "Retrieve organization details for the authenticated issuer"
          },
          "response": []
        },
        {
          "name": "Children",
          "item": [
            {
              "name": "List",
              "request": {
                "method": "GET",
                "header": [],
                "url": {
                  "raw": "{{baseUrl}}/v2/issuers/:organizationId/children",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v2",
                    "issuers",
                    ":organizationId",
                    "children"
                  ],
                  "variable": [
                    {
                      "key": "organizationId",
                      "value": "",
                      "description": "Unique identifier of the parent organization (required)"
                    }
                  ],
                  "query": [
                    {
                      "key": "page[after]",
                      "value": "",
                      "description": "Cursor value for the next page of results",
                      "disabled": true
                    },
                    {
                      "key": "page[size]",
                      "value": "",
                      "description": "Maximum number of records to return [1 - 200] (default = 200)",
                      "disabled": true
                    }
                  ]
                },
                "description": "List child organizations belonging to the authenticated issuer"
              },
              "response": []
            },
            {
              "name": "Create",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/v2/issuers/:organizationId/children",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v2",
                    "issuers",
                    ":organizationId",
                    "children"
                  ],
                  "variable": [
                    {
                      "key": "organizationId",
                      "value": "",
                      "description": "Unique identifier of the parent organization (required)"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"data\": {\n    \"attributes\": {\n      \"bins\": [\n        \"string\"\n      ],\n      \"externalId\": \"string\",\n      \"name\": \"string\"\n    },\n    \"type\": \"organization\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "description": "Create a child organization by cloning the parent and overriding specified fields. An 8-digit numeric ID is generated automatically. The name is required, must contain at least one letter, and may contain only letters and spaces."
              },
              "response": []
            },
            {
              "name": "Get",
              "request": {
                "method": "GET",
                "header": [],
                "url": {
                  "raw": "{{baseUrl}}/v2/issuers/:organizationId/children/:childId",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v2",
                    "issuers",
                    ":organizationId",
                    "children",
                    ":childId"
                  ],
                  "variable": [
                    {
                      "key": "organizationId",
                      "value": "",
                      "description": "Unique identifier of the parent organization (required)"
                    },
                    {
                      "key": "childId",
                      "value": "",
                      "description": "Unique identifier of the child organization (required)"
                    }
                  ]
                },
                "description": "Retrieve a specific child organization"
              },
              "response": []
            },
            {
              "name": "Update",
              "request": {
                "method": "PATCH",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/v2/issuers/:organizationId/children/:childId",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v2",
                    "issuers",
                    ":organizationId",
                    "children",
                    ":childId"
                  ],
                  "variable": [
                    {
                      "key": "organizationId",
                      "value": "",
                      "description": "Unique identifier of the parent organization (required)"
                    },
                    {
                      "key": "childId",
                      "value": "",
                      "description": "Unique identifier of the child organization (required)"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"data\": {\n    \"attributes\": {\n      \"bins\": [\n        \"string\"\n      ],\n      \"externalId\": \"string\",\n      \"name\": \"string\"\n    },\n    \"type\": \"organization\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "description": "Update a child organization. Only the name can be changed."
              },
              "response": []
            },
            {
              "name": "Delete",
              "request": {
                "method": "DELETE",
                "header": [],
                "url": {
                  "raw": "{{baseUrl}}/v2/issuers/:organizationId/children/:childId",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v2",
                    "issuers",
                    ":organizationId",
                    "children",
                    ":childId"
                  ],
                  "variable": [
                    {
                      "key": "organizationId",
                      "value": "",
                      "description": "Unique identifier of the parent organization (required)"
                    },
                    {
                      "key": "childId",
                      "value": "",
                      "description": "Unique identifier of the child organization (required)"
                    }
                  ]
                },
                "description": "Delete a child organization"
              },
              "response": []
            }
          ]
        }
      ]
    },
    {
      "name": "Ping",
      "item": [
        {
          "name": "Ping",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v2/ping",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v2",
                "ping"
              ]
            },
            "description": "Call this endpoint to verify network connectivity and service availability.",
            "auth": {
              "type": "noauth"
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Get Session Token",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/v2/auth/token",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "v2",
            "auth",
            "token"
          ]
        },
        "description": "Kard Authentication API v2 — OAuth2.0 client credentials flow.\n\nUses HTTP **Basic auth**: set the username to your `client_id` and the password to your `client_secret` (both provided by Kard). Sent as `Content-Type: application/json`.\n\nReturns an access token; set the collection's `authToken` variable to it so the other requests authenticate with `Bearer {{authToken}}`.",
        "auth": {
          "type": "basic",
          "basic": [
            {
              "key": "username",
              "value": "\u003cclient_id\u003e",
              "type": "string"
            },
            {
              "key": "password",
              "value": "\u003cclient_secret\u003e",
              "type": "string"
            }
          ]
        }
      },
      "response": []
    }
  ],
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{authToken}}",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://test-rewards-api.getkard.com",
      "type": "string"
    },
    {
      "key": "authToken",
      "value": "",
      "type": "string"
    }
  ]
}
