25.0.0 - 2026-06-01

  • feat!: restructure batch-activation placement slots as JSON:API relationships
  • Refactor the batch-activation placement model to follow JSON:API conventions.
  • Slots are no longer embedded directly in BatchActivationPlacementAttributes;
  • they are now exposed via a relationships.slots to-many relationship on
  • BatchActivationPlacementData, with full slot detail available in the
  • included array when ?include=slots (or a deeper path) is requested.
  • The BatchActivationSlot type is removed and replaced by a richer set of
  • JSON:API resource types (BatchActivationSlotInclusion, BatchActivationSlotAttributes,
  • BatchActivationSlotRelationships). The included field on PlacementResource
  • and PlacementListResponse now carries the new discriminated-union type
  • IncludedResource instead of ContentStrategyResponse[]. Slot creation and
  • update inputs replace contentStrategyId with placementId.
  • Key changes:
  • BREAKING BatchActivationPlacementAttributes.slots field removed; slot data now lives in relationships.slots on BatchActivationPlacementData
  • BREAKING BatchActivationSlot interface deleted; replaced by BatchActivationSlotInclusion, BatchActivationSlotAttributes, and BatchActivationSlotRelationships
  • BREAKING PlacementResource.included and PlacementListResponse.included type changed from ContentStrategyResponse[] to IncludedResource[]
  • BREAKING CreateBatchActivationSlot.contentStrategyId and UpdateBatchActivationSlot.contentStrategyId renamed to placementId
  • Added new JSON:API relationship types: BatchActivationPlacementRelationships, PlacementRelationships, ToOneRelationship, ToManyRelationship, ResourceIdentifier, ContentStrategyInclusion, IncludedResource
  • 🌿 Generated with Fern

23.0.1 - 2026-05-28

  • chore: update child organization name validation docs
  • Update JSDoc comments and inline documentation to reflect the relaxed
  • name validation rules for child organizations. The name field no longer
  • requires uppercase-only with no spaces; it now accepts any string
  • containing at least one letter, with letters and spaces allowed.
  • Key changes:
  • Update ChildOrganizationAttributes.name JSDoc from “uppercase, no spaces” to “at least one letter; letters and spaces only”
  • Update CreateChildAttributes.name JSDoc and example from "ACMECHILDBANK" to "Acme Child Bank"
  • Update UpdateChildAttributes.name JSDoc and example from "NEWCHILDNAME" to "New Child Name"
  • Update ChildrenClient.create() method JSDoc to reflect new name validation rules
  • 🌿 Generated with Fern

22.4.1 - 2026-05-27

  • chore: update JSDoc links in UploadsClient to versioned API paths
  • Update deprecated endpoint documentation in UploadsClient to use
  • versioned API URL paths, ensuring links point to the correct 2024-10-01
  • versioned documentation for the Create Upload and Add Upload Part
  • endpoints.
  • Key changes:
  • Update “Add Upload Part” link from /api/uploads/create-upload-part to /2024-10-01/api/transactions/uploads/create-part
  • Update “Create Upload” link from /api/uploads/create-upload to /2024-10-01/api/transactions/uploads/create
  • 🌿 Generated with Fern

16.1.3 - 2026-05-07

  • chore: correct required scope in createBulkTransactionsUploadUrl JSDoc
  • Update the <b>Required scopes:</b> annotation in the
  • TransactionsClient JSDoc from transaction:write to files:write,
  • reflecting the actual OAuth scope required by the endpoint.
  • Key changes:
  • Fix required scope annotation from transaction:write to files:write in createBulkTransactionsUploadUrl JSDoc
  • 🌿 Generated with Fern

16.1.2 - 2026-04-30

  • chore: deprecate uploads endpoints and update bulk upload docs
  • Mark the three UploadsClient endpoints (create upload, add upload
  • part, update upload) as @deprecated in favour of the bulk transactions
  • upload URL flow. Also expand the createBulkTransactionsUploadUrl JSDoc
  • to document historicalTransactionsFile support and add a second usage
  • example. The FileUploadType enum description is tightened for clarity.
  • Key changes:
  • Add @deprecated JSDoc tags to UploadsClient.createUpload, createUploadPart, and updateUpload, pointing consumers to createBulkTransactionsUploadUrl
  • Expand createBulkTransactionsUploadUrl JSDoc to document historicalTransactionsFile support and add a second @example block
  • Tighten FileUploadType enum description for historicalTransactionsFile
  • 🌿 Generated with Fern

16.1.1 - 2026-04-28

  • chore: update asset URL examples in rewards type JSDoc comments
  • Refresh the inline code example URLs in LocationsResponseObject and
  • OffersResponseObject TSDoc blocks to use the current attribution URL
  • format with proper JWT tokens. The old placeholder asset URLs have been
  • replaced with realistic attribution-service URLs, and example field
  • ordering has been normalised (url → alt → type).
  • Key changes:
  • Replace placeholder asset URLs in LocationsResponseObject TSDoc examples with attribution-service URLs
  • Replace placeholder asset URLs in OffersResponseObject TSDoc examples with attribution-service URLs
  • Reorder asset object properties in examples (url, alt, type)
  • 🌿 Generated with Fern

15.0.0 - 2026-04-17

  • feat!: remove MerchantNetwork types, change organizations.get() signature, and update child org response types
  • Several breaking changes are introduced in this SDK regeneration:
  • organizations.get() no longer accepts an organizationId parameter and now
  • calls GET /v2/issuer instead of GET /v2/issuers/{organizationId}.
  • ChildrenClient.create(), get(), and update() now return
  • ChildOrganizationResponse instead of ExternalOrganizationResponse.
  • ChildOrganizationListResponse.data now typed as ChildOrganizationResponse[]
  • instead of ExternalOrganizationResponse[].
  • MerchantNetwork and MerchantNetworkName exported types have been removed.
  • ExternalOrganizationAttributes has had multiple fields removed
  • (externalId, parentOrganizationId, merchantNetworks, nationalOffers,
  • localOffers, useAttribution, createdAt, updatedAt) and three new
  • required fields added (affiliateCommissionSplit, cardlinkedCommissionSplit,
  • cardlinkedUserCommissionSplit).
  • Key changes:
  • Remove MerchantNetwork and MerchantNetworkName exported types
  • Change OrganizationsClient.get() to take no organizationId parameter, targeting GET /v2/issuer
  • Replace ExternalOrganizationResponse with new ChildOrganizationResponse type on all children client methods
  • Add new ChildOrganizationResponse and ChildOrganizationAttributes types
  • Slim down ExternalOrganizationAttributes, removing 7 fields and adding 3 required commission-split fields
  • 🌿 Generated with Fern

12.4.0 - 2026-04-14

  • [12.4.0] - 2025

  • Changed

  • BaseClientOptions — refactored to compose auth credentials via OAuthAuthProvider.AuthOptions instead of top-level clientId and clientSecret fields; update options objects to conform to the new intersection type.
  • Added

  • KardApiClient.fetch() — passthrough method for making arbitrary HTTP requests that automatically inherit the client’s configured authentication, retry, logging, and timeout settings.
  • OAuthTokenOverrideAuthProvider — new auth provider that accepts a pre-issued bearer token directly as an alternative to the client-credentials flow.
  • OAuthAuthProvider.createInstance() — factory method that automatically selects the appropriate auth provider based on supplied options, along with new exported types OAuthAuthProvider.ClientCredentials, OAuthAuthProvider.TokenOverride, and OAuthAuthProvider.AuthOptions.
  • makePassthroughRequest function and PassthroughRequest namespace — exported from the SDK core to allow arbitrary HTTP requests that inherit the client’s auth, base URL, retry logic, and logging.
  • KardApiError and KardApiTimeoutError — now expose an optional cause property and correctly capture stack traces for easier root-cause tracing.
  • Fetcher.TimeoutError and Fetcher.UnknownError — now include an optional cause field exposing the underlying error for improved debugging and error chaining.
  • Fixed

  • UploadPartMultiStatus — now correctly sets its prototype chain using new.target.prototype and captures a proper stack trace, ensuring instanceof checks and stack traces work reliably in transpiled environments.
  • BasicAuth — credentials are now optional; encoding is skipped when both username and password are empty strings, preventing malformed Authorization headers.

12.3.0 - 2026-04-10

  • The getEarnedRewards method now accepts an optional include parameter, allowing callers to request related resources such as merchant and offer data in a single response. Pass a comma-separated string (e.g. "merchant,offer") via the include field on GetEarnedRewardsRequest.

12.2.1 - 2026-04-10

  • refactor: move CardNetwork type from transactions to commons
  • The CardNetwork enum has been relocated from
  • src/api/resources/transactions/types/ to
  • src/api/resources/commons/types/ and is now re-exported from the
  • commons index. The transactions index no longer exports it directly.
  • Key changes:
  • Moved CardNetwork definition to commons/types/CardNetwork.ts
  • Added CardNetwork export to commons/types/index.ts
  • Removed CardNetwork re-export from transactions/types/index.ts
  • Added JSDoc comment describing supported card networks
  • 🌿 Generated with Fern

12.2.0 - 2026-04-07

  • The SDK now exports two new types, AttributionFilter and AttributionState, to represent placement context for attribution events. The NotificationAttributionAttributes and OfferAttributionAttributes interfaces gain a new optional state field of type AttributionState, which carries the rank position and active filters present when a user viewed an offer.

12.1.0 - 2026-04-07

  • The SDK now exports a FileUploadType enum (IncomingTransactionsFile, HistoricalTransactionsFile) to represent the category of transaction file being uploaded. The type field on CreateFileUploadData and FileUploadUrlData has been widened to accept any FileUploadType value, enabling uploads of historical/back-filled transaction data in addition to real-time incoming transactions.

12.0.0 - 2026-04-06

  • The offer, merchant, location, and userOffer notification types have been removed from the SDK. The NotificationType enum no longer includes Offer, Merchant, Location, or UserOffer values, and the corresponding variants have been removed from NotificationDataUnion. All associated exported types — including WebhookOfferData, WebhookMerchantData, WebhookLocationsData, WebhookUserOfferData, BrokerAmount, BrokerAsset, BrokerReward, LocationAddress, LocationCoordinates, TimePeriod, OfferStatus, OfferType, UserOfferStatus, MerchantSource, LocationStatus, and related enums — have also been removed. Update any code that references these types or handles these notification variants.

11.0.1 - 2026-04-03

  • docs: remove deprecated financialInstitutionName from examples
  • Remove the deprecated financialInstitutionName field from JSDoc
  • example snippets in the transactions client and request body type.
  • This reflects the ongoing deprecation of financialInstitutionName
  • in favor of financialInstitutionId and keeps documentation
  • consistent with the current recommended API usage.
  • Key changes:
  • Removed financialInstitutionName from the example in TransactionsClient JSDoc
  • Removed financialInstitutionName from the example in TransactionsRequestBody JSDoc
  • 🌿 Generated with Fern

11.0.0 - 2026-04-03

  • The financialInstitutionName field in CoreTransactionAttributes is now optional (string | undefined), down from a previously required string. This reflects its deprecation in favor of financialInstitutionId. Existing code that accesses financialInstitutionName without an undefined check will need to be updated — for example, replace attrs.financialInstitutionName.toUpperCase() with attrs.financialInstitutionName?.toUpperCase().

10.1.0 - 2026-04-02

  • The CoreTransactionAttributes type now includes an optional financialInstitutionId field, providing a unique identifier for the financial institution associated with a transaction. The financialInstitutionName field has been deprecated in favor of financialInstitutionId.

10.0.1 - 2026-04-01

  • docs: update example message in NotificationPayload
  • Update the example notification message string in the
  • NotificationPayload type documentation to reflect the latest
  • wording used for earned reward notifications.
  • Key changes:
  • Replaced the example message value in the NotificationPayload
  • JSDoc from “You have earned a 72 cent reward…” to the updated
  • “Thanks for shopping at McDonald’s! We’re checking to see if your
  • purchase qualifies for cash back.”
  • 🌿 Generated with Fern

10.0.0 - 2026-03-30

  • The cardLastFour property in CoreTransactionAttributes has been replaced with cardLastFours as an array of strings. Existing code accessing cardLastFour will need to be updated to use cardLastFours[0] for the first card number, or handle the array appropriately when multiple candidate cards are provided.

9.0.0 - 2026-03-27

  • The X-Kard-Target-Issuer header configuration has been moved from client initialization options to a request-specific field. For token requests, pass the X-Kard-Target-Issuer value directly in the GetTokenRequest object instead of the client options or request options.

8.1.0 - 2026-03-25

  • The CoreTransactionAttributes interface now includes an optional cardLastFour property that provides the last four digits of the card used for transactions.