Skip to navigation

v26.1.1 - 2026-10-06

  • chore: update child organization name validation docs
  • Update the godoc comments and method documentation to reflect the
  • revised name validation rules for child organizations: names now require
  • at least two letters or numbers (previously at least one letter) and may
  • contain letters, numbers, and spaces (previously letters and spaces only).
  • Key changes:
  • ChildOrganizationAttributes.Name field comment updated to reflect new validation rules
  • CreateChildAttributes.Name field comment updated to reflect new validation rules
  • UpdateChildAttributes.Name field comment updated to reflect new validation rules
  • Client.Create method godoc updated to match new name requirements
  • 🌿 Generated with Fern

v26.1.0 - 2026-09-25

Added

  • RejectedReasonMaxRedemptionLimitReached β€” new RejectedReason constant ("MAX_REDEMPTION_LIMIT_REACHED") added to represent cases where a user has reached the maximum redemption limit for a reward.

v26.0.0 - 2026-09-21

Breaking Changes

  • RewardNotificationAttributes β€” the exported struct and all its associated methods (GetMessage, GetName, GetAttributionUrl, GetSurveyUrl, GetCardProductId, GetTransactionTimestamp, GetTransactionId, GetTransactionAmountInCents, and all Set* variants) have been removed. Remove any references to this type and its methods from your code.
  • EarnedRewardNotificationAttributes.UserReward and EarnedRewardSettledAttributes.UserReward β€” the UserReward field JSON tag no longer uses omitempty; the field is now always included in serialized output even when nil. Update any JSON parsing or comparison logic that relied on this field being absent when nil.

v25.1.0 - 2026-09-15

Added

  • DisplayName optional field added to CreateStandardAttributes, PlacementAttributes, and UpdateStandardAttributes; use GetDisplayName() to read and SetDisplayName() to write the cardholder-facing section title for a placement.

v25.0.1 - 2026-09-10

  • chore: update Sort field documentation in GetLocationsByUserRequest
  • Improve the godoc comment on the Sort field of GetLocationsByUserRequest
  • to clarify the default sort behavior and how it interacts with latitude/longitude
  • filters. No functional or API surface changes are introduced.
  • Key changes:
  • Expanded the Sort field comment to document the default sort order (newest first, descending createdDate)
  • Clarified that when filter[latitude]/filter[longitude] are provided, results are ordered by ascending distance first, then newest first
  • 🌿 Generated with Fern

v25.0.0 - 2026-08-31

Breaking Changes

  • LocationAttributes.PriceLevel β€” type changed from *int to *string; price range is now expressed as dollar-sign strings ("$" through "$$$$") instead of integers 1–4. Update all reads, writes, and SetPriceLevel calls to use *string values.
  • LocationAttributes.GetPriceLevel() β€” return type changed from *int to *string; update any code that dereferences or compares the returned value as an integer.
  • LocationAttributes.SetPriceLevel() β€” parameter type changed from *int to *string; pass a string pointer instead of an integer pointer when setting the price level.

v24.0.0 - 2026-08-31

Breaking Changes

  • users.Client.Uploads β€” the Uploads field has been removed from the users.Client struct; remove any references to client.Users.Uploads and migrate upload operations to the bulk upload flow.
  • uploads.Client / uploads.RawClient β€” the entire users/uploads package has been deleted, including NewClient(), NewRawClient(), Create(), CreatePart(), and Update(); update import paths and migrate to the Create Bulk Transactions Upload URL endpoint.
  • UploadPartMultiStatus β€” the exported error type and its UnmarshalJSON, MarshalJSON, and Unwrap methods have been deleted; replace type-assertions on this error with handling of raw APIError responses.
  • users.ErrorCodes β€” HTTP 207 and 409 error code handlers have been removed; callers that relied on typed error mappings must now handle raw APIError responses instead.
  • Upload request/response types β€” CreateUploadPartDataUnion, CreateUploadPartMultiStatusResponse, CreateUploadRequestObject, CreateUploadResponseData, UpdateUploadRequestObject, UpdateUploadResponseData, StartHistoricalUploadNoData, HistoricalTransactionCompleteNoData, and all related union/visitor types have been removed from the users package; remove all references to these types.

v23.0.0 - 2026-08-27

Breaking Changes

  • FileTypeValidatedTransactionDailyReconciliationFile β€” the exported FileType constant and its corresponding "validatedTransactionDailyReconciliationFile" case in NewFileTypeFromString have been removed; update any code that references this constant or handles this file type string.

v22.0.0 - 2026-08-25

Breaking Changes

  • BatchActivationPlacementAttributes β€” Status field and GetStatus()/SetStatus() methods removed; callers that read or set placement status on this type must be updated.
  • GroupPlacementAttributes and PlacementAttributes β€” Status field and GetStatus()/SetStatus() methods removed; update any code that accessed placement status through these response types.
  • CreateBatchActivationAttributes, CreateGroupAttributes, and CreateStandardAttributes β€” optional Status *PlacementStatus field and its accessors removed; remove any SetStatus calls when constructing create requests.
  • UpdateBatchActivationAttributes, UpdateGroupAttributes, and UpdateStandardAttributes β€” optional Status *PlacementStatus field and its accessors removed; remove any SetStatus calls when constructing update requests.

Changed

  • PlacementStatus, EmailPlacementAttributes.Status, and PushNotificationPlacementAttributes.Status β€” documentation updated to clarify that INACTIVE pauses scheduled deliveries only and has no effect on content serving.

v21.2.0 - 2026-08-24

Added

  • PlacementStatus β€” new string enum type with constants PlacementStatusActive and PlacementStatusInactive, plus NewPlacementStatusFromString() constructor and Ptr() helper, representing whether a placement actively serves content.
  • Status field on response attribute types β€” BatchActivationPlacementAttributes, EmailPlacementAttributes, GroupPlacementAttributes, PlacementAttributes, and PushNotificationPlacementAttributes now expose a required Status PlacementStatus field with GetStatus() and SetStatus() accessors.
  • Status field on create/update attribute types β€” all Create*Attributes and Update*Attributes structs gain an optional Status *PlacementStatus field (omitted from the request when nil); defaults to ACTIVE on create and preserves the current value when omitted on update.

v21.1.0 - 2026-08-18

Added

  • CuisineOption β€” new string enum type in the root package with 130+ constants covering food, beverage, and entertainment venue categories (e.g. CuisineOptionPizza, CuisineOptionSushi, CuisineOptionBrewery), plus NewCuisineOptionFromString() constructor and Ptr() helper.
  • LocationRating β€” new struct in the users package representing a customer rating with a Value float64 (1–5 scale) and optional Count *int (number of ratings), with full getter, setter, marshal, and unmarshal support.
  • LocationAttributes.Cuisine, LocationAttributes.Rating, and LocationAttributes.PriceLevel β€” three new optional fields on LocationAttributes exposing venue category, customer rating, and price level (1–4) respectively, each with typed getters and setters.

v21.0.1 - 2026-08-07

  • chore: add godoc comments to GetLocationsByUserRequest filter fields
  • Improve developer experience by documenting the filter fields on
  • GetLocationsByUserRequest with precise behavioral descriptions. Also
  • update the Locations method godoc to remove outdated guidance about
  • field prioritization.
  • Key changes:
  • Add inline godoc comments to FilterCity, FilterZipCode, FilterState,
  • FilterLongitude, FilterLatitude, and FilterRadius explaining exact-match
  • vs. substring semantics and how radius search interacts with lat/long
  • Remove stale comment stating longitude/latitude are prioritized over
  • state, city, and zip code from the Locations client method
  • 🌿 Generated with Fern

v21.0.0 - 2026-08-05

Breaking Changes

  • ExternalOrganizationAttributes.CardNetworks β€” field type changed from []CardNetwork to []OrganizationCardNetwork; update all read and write sites to use the new type.
  • ExternalOrganizationAttributes.GetCardNetworks() β€” return type changed from []CardNetwork to []OrganizationCardNetwork; update all callers.
  • ExternalOrganizationAttributes.SetCardNetworks() β€” parameter type changed from []CardNetwork to []OrganizationCardNetwork; update all callers.

Added

  • OrganizationCardNetwork β€” new string enum type with constants OrganizationCardNetworkVisa, OrganizationCardNetworkMastercard, OrganizationCardNetworkAmericanExpress, and OrganizationCardNetworkDiscover, plus NewOrganizationCardNetworkFromString() constructor and Ptr() helper.

v20.0.0 - 2026-08-05

Breaking Changes

  • OfferComponents, CtaAction, CtaComponent, ButtonStyle β€” removed from the users package; update all references to use the root kardgosdk package types (e.g. *kardgosdk.OfferComponents).
  • LogoFlare, LogoFlareBadge, LogoFlareBadgePosition, LogoFlareBorderColor β€” removed from the users package; update all references to use the root kardgosdk package types.
  • ProgressBar and all related progress bar types (ProgressBarLabels, ProgressBarSegments, etc.) β€” removed from the users package; update all references to use the root kardgosdk package types.
  • PlacementContentResponse β€” removed from the users package entirely; remove all references and usages.

Added

  • OfferComponents, CtaAction, CtaComponent, and ButtonStyle β€” new root-package types for composing and styling offer UI components including CTA buttons and their actions.
  • LogoFlare, LogoFlareBadge, LogoFlareBorderColor, and LogoFlareBadgePosition β€” new root-package types and enums for configuring logo border and badge decorations on offer cards.
  • ProgressBar and related types β€” new root-package types for rendering and tracking segmented offer redemption progress bars.
  • RewardedTransactionAttributes.Components β€” new optional *OfferComponents field (with getter and setter) carrying UI component data such as progress bars for progressive and punch-card offers.

v19.0.0 - 2026-08-04

Breaking Changes

  • ClawbackData β€” type and all its getter/setter methods have been removed; remove all references and usages.
  • FailedTransactionData, FailedTransactionAttributes, and FailedTransactionRelationships β€” types and all their getter/setter methods have been removed; remove all references and usages.
  • ValidTransactionData, ValidTransactionAttributes, ValidTransactionCommissionEarned, and TransactionRelationships β€” types and all their getter/setter methods have been removed; remove all references and usages.
  • NotificationDataUnion β€” the ValidTransaction, FailedTransaction, and Clawback fields and their corresponding GetValidTransaction(), GetFailedTransaction(), and GetClawback() methods have been removed; update any code reading or writing these fields.
  • NotificationDataUnionVisitor β€” VisitValidTransaction(), VisitFailedTransaction(), and VisitClawback() have been removed from the interface; remove these methods from all implementations of the interface.

v18.0.0 - 2026-08-04

Breaking Changes

  • MatchedTransactionsAttributes and MatchedTransactionsRequest β€” both types and all their getter/setter methods have been removed; migrate pre-matched transaction submissions to the transaction or coreTransaction variants of the Transactions union.
  • Transactions.MatchedTransaction field and GetMatchedTransaction() method β€” removed from the Transactions struct; update any code reading or writing this field.
  • TransactionsVisitor.VisitMatchedTransaction() β€” removed from the TransactionsVisitor interface; remove this method from all implementations of the interface.
  • PaymentType β€” enum type and all constants (PaymentTypeCard, PaymentTypeCash, PaymentTypeUnknown) removed; remove all references and usages.
  • ReceiptMediumType β€” enum type and all constants (ReceiptMediumTypeElectronic, ReceiptMediumTypePhysical) removed; remove all references and usages.

v17.0.0 - 2026-08-03

Breaking Changes

  • NotificationTypeValidTransaction, NotificationTypeFailedTransaction, and NotificationTypeClawback β€” these three NotificationType enum constants have been removed; update any switch statements, comparisons, or assignments referencing these values, and remove handling for "validTransaction", "failedTransaction", and "clawback" strings passed to NewNotificationTypeFromString.
  • TransactionsRequestBody β€” the matchedTransaction variant is no longer a supported discriminator value in the Data union; callers submitting pre-matched transactions should migrate to the transaction or coreTransaction types as appropriate.

v16.1.0 - 2026-08-03

Added

  • NotificationMediumEmail β€” new NotificationMedium enum constant ("EMAIL") representing email as a notification delivery channel; NewNotificationMediumFromString now recognizes "EMAIL" as a valid input.

v16.0.0 - 2026-07-29

Breaking Changes

  • EarnedRewardRejectedAttributes.Reason β€” type changed from string to RejectedReason; update all assignments, comparisons, and variables typed as string to use RejectedReason (e.g. RejectedReasonUserNotEnrolled) or NewRejectedReasonFromString.
  • EarnedRewardRejectedAttributes.GetReason() and SetReason() β€” return/parameter type updated to RejectedReason; callers must update their type assertions and assignments accordingly.

Added

  • RejectedReason β€” new string enum type representing the reason a matched transaction was rejected; includes constants RejectedReasonAggregatorCardOverlap, RejectedReasonSettlementRejected, RejectedReasonUserNotEnrolled, and RejectedReasonUserNotInAudienceSegment, plus a NewRejectedReasonFromString constructor and Ptr() helper.

v15.2.0 - 2026-07-28

Added

  • EarnedRewardsRange β€” new string enum type representing the time window for earned rewards queries; includes constants EarnedRewardsRangeLast12Months ("12M"), EarnedRewardsRangeLast6Months ("6M"), EarnedRewardsRangeLast3Months ("3M"), and EarnedRewardsRangeYearToDate ("YTD"), plus a NewEarnedRewardsRangeFromString constructor and Ptr() helper.
  • GetEarnedRewardsRequest.FilterRange β€” new optional *EarnedRewardsRange field (and corresponding SetFilterRange() method) that maps to the filter[range] query parameter, scoping both the returned transactions and lifetimeRewardsInCents to the chosen window.

v15.1.0 - 2026-07-15

Added

  • ContentStrategyFilters β€” new struct consolidating offer-filtering options (Categories, CategoryExclusions, MerchantExclusions, OfferFeatures) for content strategies, with full getter, setter, and JSON marshal/unmarshal support.
  • Filters field on ContentStrategyAttributes, CreateContentStrategyAttributes, and UpdateContentStrategyAttributes β€” exposes a *ContentStrategyFilters value with corresponding GetFilters() and SetFilters() methods.
  • OfferFeatures β€” new string enum type representing offer features that can be used to filter offers in a content strategy; includes the OfferFeaturesInteractive constant and NewOfferFeaturesFromString constructor.

v15.0.0 - 2026-07-15

Breaking Changes

  • EarnedRewardApprovedData.Attributes β€” type changed from *RewardNotificationAttributes to *EarnedRewardNotificationAttributes; update all type references and any variables typed as *RewardNotificationAttributes to use *EarnedRewardNotificationAttributes instead.
  • EarnedRewardApprovedData.GetAttributes() and SetAttributes() β€” return/parameter type updated to *EarnedRewardNotificationAttributes; callers must update their type assertions and assignments.

Added

  • EarnedRewardNotificationAttributes β€” new struct replacing RewardNotificationAttributes for approved-reward notifications, carrying message, merchant name, attribution URL, transaction details, category, user reward, assets, and purchase channels.
  • UserReward β€” new struct representing the commission type (CommissionType) and value (float64) for an offer reward, surfaced on both EarnedRewardNotificationAttributes and EarnedRewardSettledAttributes.
  • EarnedRewardSettledAttributes β€” four new optional fields added: CategoryName, UserReward, Assets, and PurchaseChannel, with corresponding getters and setters.

v14.0.0 - 2026-07-15

Breaking Changes

  • NotificationDataUnionVisitor β€” new required method VisitEarnedRewardRejected(*EarnedRewardRejectedData) error added to the interface; all existing implementations must add this method to continue compiling.

Added

  • NotificationTypeEarnedRewardRejected β€” new NotificationType enum constant ("earnedRewardRejected") recognized by NewNotificationTypeFromString.
  • EarnedRewardRejectedAttributes β€” new struct carrying the reason code, display message, transaction ID, amount, and optional timestamp for a rejected reward notification.
  • EarnedRewardRejectedData β€” new struct wrapping EarnedRewardRejectedAttributes and RejectedTransactionRelationships, surfaced as the EarnedRewardRejected field on NotificationDataUnion.
  • RejectedTransactionRelationships β€” new struct linking the user and transaction relationship references for a rejected-reward notification.

v13.4.0 - 2026-07-10

Added

  • ContentStrategySortOffersNearYou β€” new ContentStrategySort enum value ("OFFERS_NEAR_YOU") representing a location-based offers sort; recognized by NewContentStrategySortFromString for round-trip serialization.

v13.3.0 - 2026-07-02

Added

  • ProgressBarSegmentProgress β€” new type representing the fill state of a single progress bar segment node, with Completed and Total integer fields and full JSON serialization support.
  • ProgressBarSegments.Progress β€” new field ([]*ProgressBarSegmentProgress) exposing per-segment fill state, index-aligned with the segment nodes array; accessible via GetProgress and SetProgress.

v13.2.1 - 2026-07-02

  • chore: update User-Agent header placeholder and clarify FilterSearch doc
  • Update the User-Agent header value to the Fern version placeholder and
  • improve the godoc comment for the FilterSearch field on
  • GetOffersByUserRequest to more accurately describe its matching behavior.
  • Key changes:
  • Replace versioned User-Agent string with β€œ0.0.0-fern-placeholder” in request_option.go
  • Clarify FilterSearch comment: now documents substring matching on offer name or category name, not just merchant name
  • 🌿 Generated with Fern

v13.2.0 - 2026-06-29

Added

  • OfferMediumPush β€” new OfferMedium enum value ("PUSH") representing the push channel; recognized by NewOfferMediumFromString for round-trip serialization.

v13.1.0 - 2026-06-23

Added

  • BatchesMeta β€” new type representing metadata about a batch placement, with PlacementName field and getter/setter methods.
  • BatchesResponseObject.Meta β€” new optional field of type BatchesMeta providing placement metadata in batch responses.
  • OffersMeta.PlacementName β€” new optional field exposing the display name of the placement resolved server-side; populated on the Get Placement Content endpoint.

v13.0.0 - 2026-06-23

Breaking Changes

  • Client.PlacementOffers and Client.PlacementBatches methods (and their RawClient counterparts) have been removed; migrate to the unified Client.PlacementContent endpoint, which resolves the placement type server-side and returns either offers or batches automatically.
  • GetOffersByPlacementRequest and GetBatchesByPlacementRequest types have been removed; use GetPlacementContentRequest with PlacementContent instead.
  • PlacementContentData union type and PlacementContentDataVisitor interface have been removed and replaced by PlacementContentResponse (a union of OffersResponseObject / BatchesResponseObject) and PlacementContentResponseVisitor (with VisitOffersResponseObject / VisitBatchesResponseObject methods); update all type assertions, visitor implementations, and Accept call sites accordingly.

v12.2.0 - 2026-06-22

Added

  • Client.PlacementContent β€” new method that retrieves placement content for a given organization, user, and placement ID; the server resolves the placement type automatically, returning standardOffer resources for standard placements and placementBatch slot resources for batch-activation or group placements.
  • GetPlacementContentRequest β€” new request type with optional Include and SupportedComponents fields (and SetInclude/SetSupportedComponents setters) used to parameterize the PlacementContent call.
  • PlacementContentData β€” new union type that wraps either an OfferDataUnion or a PlacementBatchData resource, with GetOfferDataUnion(), GetPlacementBatchData(), and Accept(PlacementContentDataVisitor) for exhaustive dispatch.
  • PlacementContentResponse β€” new JSON:API response envelope with Data, Links, Included, and Meta fields, mirroring the shape of the existing offers and batches responses.

v12.1.0 - 2026-06-17

Added

  • TransactionsAttributes.AccountId β€” new optional *string field representing an account identifier associated with a transaction, accessible via GetAccountId() and settable via SetAccountId().

v12.0.0 - 2026-06-11

  • feat!: rename MainPage/BatchActivationRelationships types and add email/group placement support
  • This release introduces two new placement types (email and group), renames
  • the placementMainPage discriminant to placement across all union types,
  • and replaces several MainPage-prefixed types with more generic equivalents.
  • Existing implementations of CreatePlacementDataUnionVisitor,
  • UpdatePlacementDataUnionVisitor, PlacementFormatUnionVisitor, and
  • IncludedResourceVisitor must be updated to satisfy the revised interfaces.
  • Key changes:
  • Removed BatchActivationPlacementRelationships; replaced by new SlottedPlacementRelationships (used by both batch-activation and group placements)
  • Renamed MainPagePlacementAttributes β†’ PlacementAttributes, MainPagePlacementData β†’ PlacementData, CreateMainPageAttributes β†’ CreateStandardAttributes, CreateMainPagePlacementData β†’ CreateStandardPlacementData, UpdateMainPageAttributes β†’ UpdateStandardAttributes, UpdateMainPagePlacementData β†’ UpdateStandardPlacementData
  • Renamed visitor methods VisitPlacementMainPage β†’ VisitPlacement and union fields PlacementMainPage β†’ Placement across CreatePlacementDataUnion, UpdatePlacementDataUnion, PlacementFormatUnion, and IncludedResource
  • Added new placementEmail and placementGroup placement types with full create/update/read type families (CreateEmailAttributes, CreateEmailPlacementData, EmailPlacementAttributes, EmailPlacementData, UpdateEmailAttributes, UpdateEmailPlacementData, CreateGroupAttributes, CreateGroupPlacementData, GroupPlacementAttributes, GroupPlacementData, UpdateGroupAttributes, UpdateGroupPlacementData)
  • Added PlacementTypeFilterPlacementEmail and PlacementTypeFilterPlacementGroup constants; renamed PlacementTypeFilterPlacementMainPage β†’ PlacementTypeFilterPlacement
  • 🌿 Generated with Fern

v11.0.0 - 2026-06-10

Breaking Changes

  • NotificationDataUnionVisitor β€” two new required methods VisitPushNotificationPlacementFile(*PushNotificationPlacementFileData) error and VisitEmailNotificationPlacementFile(*EmailNotificationPlacementFileData) error have been added to the interface; all existing implementations must add these methods to continue compiling.

Added

  • NotificationTypePushNotificationPlacementFile and NotificationTypeEmailNotificationPlacementFile β€” new NotificationType constants for placement file webhook notifications.
  • PushNotificationPlacementFileData, PushNotificationPlacementFileAttributes, and PushNotificationPlacementFileRelationships β€” new types representing a push-notification placement file notification payload, including presigned download URL, cadence, and available slot count.
  • EmailNotificationPlacementFileData, EmailNotificationPlacementFileAttributes, and EmailNotificationPlacementFileRelationships β€” new types representing an email placement file notification payload, including organization ID, presigned download URL, cadence, and available slot count.
  • NotificationDataUnion.PushNotificationPlacementFile and NotificationDataUnion.EmailNotificationPlacementFile β€” new union fields with corresponding GetPushNotificationPlacementFile() and GetEmailNotificationPlacementFile() accessors.

v10.1.0 - 2026-06-10

Added

  • UpdateUserRequestAttributes.HistoricalTransactionsSent β€” new optional *bool field that confirms historical transactions have been sent for a user; once set to true it cannot be reverted, accessible via GetHistoricalTransactionsSent and SetHistoricalTransactionsSent.

v10.0.0 - 2026-06-01

Breaking Changes

  • PlacementBatchAttributes.ShortDescription β€” field and its GetShortDescription/SetShortDescription methods are removed; migrate by reading shortDescription from the Components (*OfferComponents) field instead.
  • PlacementBatchAttributes.LongDescription β€” field and its GetLongDescription/SetLongDescription methods are removed; migrate by reading longDescription from the Components (*OfferComponents) field instead.

v9.1.0 - 2026-06-01

Added

  • PlacementBatchAttributes.ShortDescription β€” new string field with a brief, human-readable label describing how long a slot stays activated after a user taps activate (e.g. "Activated for 24 hours"), accessible via GetShortDescription and SetShortDescription.
  • PlacementBatchAttributes.LongDescription β€” new string field with a fuller description of the slot’s activation behavior, clarifying which offers are activated and for how long, accessible via GetLongDescription and SetLongDescription.

v9.0.0 - 2026-06-01

Breaking Changes

  • BatchSlotData struct is removed; migrate by using the new PlacementBatchData (which exposes Id and Attributes) and PlacementBatchAttributes (which carries Name, IsActive, LastActivatedAt, ExpiresAt, Components, Assets, and Offers) instead.
  • BatchesResponseObject.Data type changed from []*BatchSlotData to []*PlacementBatchData; update all call sites that read or write this field, including GetData() and SetData().

Added

  • PlacementBatchData β€” new JSON:API resource struct representing a batch-activation slot, with Id (stable slot identifier), a type literal of "placementBatch", and an Attributes field pointing to PlacementBatchAttributes.
  • PlacementBatchAttributes β€” new struct holding slot-level detail: Name, IsActive, LastActivatedAt, ExpiresAt, Components, Assets, and Offers, with corresponding getters and setters.

v8.0.0 - 2026-06-01

  • feat!: replace BatchActivationSlot with JSON:API relationship model
  • Refactor the batch-activation placement API surface to align with the
  • JSON:API specification. Slots are no longer embedded directly inside
  • BatchActivationPlacementAttributes; instead they are exposed via a
  • relationships.slots to-many relationship on BatchActivationPlacementData
  • and returned as batchActivationSlot entries in the included array.
  • The included field on PlacementListResponse and PlacementResource
  • changes from []*ContentStrategyResponse to []*IncludedResource, a
  • new discriminated union that can carry content strategies, batch-activation
  • slots, and referenced placements. Slot creation/update fields rename
  • ContentStrategyId β†’ PlacementId throughout.
  • Key changes:
  • BatchActivationPlacementAttributes.Slots field and GetSlots/SetSlots methods removed; slot detail now lives in BatchActivationPlacementData.Relationships (*BatchActivationPlacementRelationships)
  • BatchActivationSlot struct renamed/replaced by BatchActivationSlotInclusion (with BatchActivationSlotAttributes and BatchActivationSlotRelationships); old SlotId/ContentStrategyId fields removed
  • CreateBatchActivationSlot.ContentStrategyId renamed to PlacementId; UpdateBatchActivationSlot.ContentStrategyId renamed to PlacementId
  • PlacementListResponse.Included and PlacementResource.Included type changed from []*ContentStrategyResponse to []*IncludedResource
  • New exported types added: BatchActivationPlacementRelationships, BatchActivationSlotAttributes, BatchActivationSlotInclusion, BatchActivationSlotRelationships, ContentStrategyInclusion, IncludedResource, IncludedResourceVisitor, PlacementRelationships, ResourceIdentifier, ToManyRelationship, ToOneRelationship
  • 🌿 Generated with Fern

v7.3.0 - 2026-05-28

Added

  • BatchSlotData.Components β€” new optional *OfferComponents field exposing slot-level UI components (a cta when the slot has no active activation, or a logoFlare decoration when it does), accessible via GetComponents and SetComponents.
  • BatchSlotData.Assets β€” new optional []*Asset field exposing slot-level visual assets (currently a single IMG_VIEW SVG icon), accessible via GetAssets and SetAssets.

v7.2.0 - 2026-05-28

Added

  • GetEarnedRewardsRequest.FilterPaidInFullOnly β€” new optional *bool field (and SetFilterPaidInFullOnly setter) that, when true, restricts the earned rewards response to transactions paid in full to the issuer (paidToIssuer is PAID_IN_FULL) and limits lifetimeRewardsInCents to those transactions only.

v7.1.1 - 2026-05-28

  • chore: update child organization name validation doc comments
  • Update godoc comments across ChildOrganizationAttributes,
  • CreateChildAttributes, UpdateChildAttributes, and the Client.Create
  • method to reflect the revised name validation rule: names must contain at
  • least one letter and may include letters and spaces, replacing the previous
  • β€œuppercase, no spaces” constraint.
  • Key changes:
  • ChildOrganizationAttributes.Name doc: β€œat least one letter; letters and spaces only”
  • CreateChildAttributes.Name doc: β€œat least one letter; letters and spaces only”
  • UpdateChildAttributes.Name doc: β€œat least one letter; letters and spaces only”
  • Client.Create godoc: updated inline description to match new name rule
  • 🌿 Generated with Fern

v7.1.0 - 2026-05-27

Added

  • EarnedRewardRelationships.Offer β€” new optional *RelationshipSingle field representing the offer relationship on an earned reward, accessible via the new GetOffer and SetOffer methods.

v7.0.1 - 2026-05-27

  • chore: update doc comment links in uploads client
  • Update stale relative API documentation links in the Create and
  • CreatePart method godoc comments to use fully-qualified versioned
  • paths. No exported signatures, types, or behavior were changed.
  • Key changes:
  • Client.Create godoc: link to Add Upload Part updated from /api/uploads/create-upload-part to /2024-10-01/api/transactions/uploads/create-part
  • Client.CreatePart godoc: link to Create Upload updated from /api/uploads/create-upload to /2024-10-01/api/transactions/uploads/create
  • 🌿 Generated with Fern

v7.0.0 - 2026-05-26

Breaking Changes

  • CreateAttributionRequestUnionVisitor β€” a new VisitPlacementSlotAttribution(*PlacementSlotAttributionRequest) error method has been added to the interface; all existing implementations must add this method to continue compiling.

Added

  • Client.ActivatePlacementSlot and RawClient.ActivatePlacementSlot β€” new methods that call POST /v2/issuers/{organizationId}/users/{userId}/placements/{placementId}/slot/{slotId}/activate to record a slot-level activation event and fan out per-offer ACTIVATE events, returning the event ID and resolved offer IDs.
  • ActivatePlacementSlotResponse, ActivatePlacementSlotResponseData, and ActivatePlacementSlotResponseAttributes β€” new response structs for the slot activation endpoint, exposing PlacementId, SlotId, EventCode, Medium, EventDate, and OfferIds.
  • PlacementSlotAttributionRequest, PlacementSlotAttributionAttributes, and PlacementSlotMedium β€” new types supporting the placementSlotAttribution discriminant in CreateAttributionRequestUnion, with PlacementSlotMediumCta constant and NewPlacementSlotMediumFromString constructor.
  • AttributionState.PlacementId and AttributionState.SlotId β€” new optional fields (with GetPlacementId, GetSlotId, SetPlacementId, SetSlotId methods) to carry placement context on attribution state.

v6.3.0 - 2026-05-26

Added

  • GetBatchesByPlacementRequest β€” new request struct with an optional SupportedComponents query parameter for the batch-activation placement endpoint.
  • BatchSlotData β€” new struct representing a single slot in a batch-activation placement, exposing SlotId, Alias, IsActive, LastActivatedAt, ExpiresAt, and Offers fields with full JSON serialization support.
  • BatchesResponseObject β€” new response struct wrapping an ordered list of BatchSlotData entries returned by the batches endpoint.
  • Client.PlacementBatches and RawClient.PlacementBatches β€” new methods that call GET /v2/issuers/{organizationId}/users/{userId}/placements/{placementId}/batches to retrieve per-slot offer sets and freshness data for a batch-activation placement.

v6.2.0 - 2026-05-26

Added

  • BatchActivationPlacementAttributes, BatchActivationPlacementData, and BatchActivationSlot β€” new structs representing a batch-activation placement and its slots as returned by the API.
  • CreateBatchActivationAttributes, CreateBatchActivationPlacementData, and CreateBatchActivationSlot β€” new structs for supplying batch-activation placement data on create requests.
  • UpdateBatchActivationAttributes, UpdateBatchActivationPlacementData, and UpdateBatchActivationSlot β€” new structs for supplying batch-activation placement data on update requests.
  • PlacementBatchActivation field and VisitPlacementBatchActivation visitor method on CreatePlacementDataUnion, PlacementFormatUnion, and UpdatePlacementDataUnion β€” enables handling the new placementBatchActivation discriminant in all placement union types.
  • PlacementTypeFilterPlacementBatchActivation β€” new PlacementTypeFilter constant for filtering placements by the batch-activation type.

v6.1.0 - 2026-05-22

Added

  • ProgressBarSegment.Separator β€” new optional field (*ProgressBarSegmentSeparator) to control the separator style rendered between segment nodes, with GetSeparator and SetSeparator methods.
  • ProgressBarSegment.Labels β€” new optional field ([]*ProgressBarSegmentLabel) to supply title/description text for each node in the segment, with GetLabels and SetLabels methods.
  • ProgressBarSegment.Selection β€” new optional field (*ProgressBarSegmentSelection) to specify which nodes the UI renders as selected, with GetSelection and SetSelection methods.
  • ProgressBarSegmentLabel β€” new struct with Title and Description string fields, full JSON serialization support, and GetTitle, GetDescription, SetTitle, SetDescription methods.
  • ProgressBarSegmentSeparator and ProgressBarSegmentSelection β€” new string enum types with constants (LINE; CURRENT, CURRENT_AND_BELOW), NewFrom* constructors, and Ptr() helpers.

v6.0.0 - 2026-05-21

Breaking Changes

  • ContentStrategyAttributes.Filter, CreateContentStrategyAttributes.Filter, and UpdateContentStrategyAttributes.Filter β€” the Filter *ContentStrategyFilter field has been renamed to Sort *ContentStrategySort on all three types. Update direct field access and replace SetFilter(...) with SetSort(...) and GetFilter() with GetSort().
  • ContentStrategyFilter type and its constants (ContentStrategyFilterNewlyLive, ContentStrategyFilterExpiringSoon, ContentStrategyFilterHighestCashback, ContentStrategyFilterPersonalized) have been removed. Replace with the equivalent ContentStrategySort constants (e.g. ContentStrategySortNewlyLive).
  • NewContentStrategyFilterFromString has been removed. Use NewContentStrategySortFromString instead.

v5.0.0 - 2026-05-20

Breaking Changes

  • ContentStrategyAttributes.CreatedAt and ContentStrategyAttributes.LastModified β€” exported fields and their GetCreatedAt(), GetLastModified(), SetCreatedAt(), and SetLastModified() methods have been removed. Remove any references to these fields or methods from your code.
  • MainPagePlacementAttributes.CreatedAt and MainPagePlacementAttributes.LastModified β€” exported fields and their GetCreatedAt(), GetLastModified(), SetCreatedAt(), and SetLastModified() methods have been removed. Remove any references to these fields or methods from your code.
  • PushNotificationPlacementAttributes.CreatedAt and PushNotificationPlacementAttributes.LastModified β€” exported fields and their GetCreatedAt(), GetLastModified(), SetCreatedAt(), and SetLastModified() methods have been removed. Remove any references to these fields or methods from your code.

v4.0.0 - 2026-05-20

Breaking Changes

  • placements.Client.Get now requires a new *organizations.GetPlacementRequest parameter and returns *organizations.PlacementResource instead of *organizations.PlacementFormatUnion. Add nil (or a populated GetPlacementRequest) as the third argument and update any code that reads the return value directly as a PlacementFormatUnion to use result.GetData() instead.
  • placements.RawClient.Get now requires a new *organizations.GetPlacementRequest parameter and returns *core.Response[*organizations.PlacementResource] instead of *core.Response[*organizations.PlacementFormatUnion]. Apply the same migration as above.

Added

  • GetPlacementRequest β€” new request struct with an optional Include field (and SetInclude setter) to request sideloaded related resources (e.g. contentStrategy) when fetching a single placement.
  • PlacementResource β€” new response struct wrapping Data *PlacementFormatUnion and Included []*ContentStrategyResponse, returned by placements.Client.Get and placements.RawClient.Get.
  • ListPlacementsRequest.Include and PlacementListResponse.Included β€” new optional field (with getter/setter) to request and receive sideloaded content strategy resources when listing placements.

v3.0.0 - 2026-05-20

Breaking Changes

  • ContentStrategyAttributes.Filters, CreateContentStrategyAttributes.Filters, and UpdateContentStrategyAttributes.Filters β€” the Filters []ContentStrategyFilter field has been replaced by Filter *ContentStrategyFilter (singular, optional pointer). Update direct field access and replace SetFilters([]ContentStrategyFilter{...}) with SetFilter(&value).
  • GetFilters() on ContentStrategyAttributes, CreateContentStrategyAttributes, and UpdateContentStrategyAttributes β€” renamed to GetFilter() and now returns *ContentStrategyFilter instead of []ContentStrategyFilter. Update all call sites accordingly.
  • SetFilters() on ContentStrategyAttributes, CreateContentStrategyAttributes, and UpdateContentStrategyAttributes β€” renamed to **SetFilter()`` and now accepts *ContentStrategyFilterinstead of[]ContentStrategyFilter`. Update all call sites accordingly.

v2.2.0 - 2026-05-19

Added

  • ListPlacementsRequest.FilterContentStrategyId β€” new optional filter field (with SetFilterContentStrategyId setter) to narrow placement listings by the ID of a linked content strategy.
  • CreateMainPageAttributes.ContentStrategyId and CreatePushNotificationAttributes.ContentStrategyId β€” new optional field (with getter/setter) to link a content strategy to a placement at creation time.
  • UpdateMainPageAttributes.ContentStrategyId and UpdatePushNotificationAttributes.ContentStrategyId β€” new optional field (with getter/setter) to link or unlink a content strategy when updating a placement.
  • MainPagePlacementAttributes.ContentStrategyId and PushNotificationPlacementAttributes.ContentStrategyId β€” new optional response field (with getter/setter) exposing the ID of the content strategy linked to a placement.

v2.1.0 - 2026-05-19

Added

  • contentstrategies.Client β€” new sub-client on the organizations Client with Create, List, Get, Update, and Delete methods for managing content strategies scoped to an organization.
  • contentstrategies.RawClient β€” companion raw client returning full HTTP response metadata alongside typed response bodies for all content strategy operations.
  • ContentStrategyAttributes, ContentStrategyResponse, and ContentStrategyListResponse β€” new structs representing content strategy resources with full getter/setter and JSON serialization support.
  • CreateContentStrategyRequestBody, UpdateContentStrategyRequestBody, and ListContentStrategiesRequest β€” new request types for creating, updating, and paginated listing of content strategies.
  • ContentStrategyFilter β€” new string enum type with constants for NewlyLive, ExpiringSoon, HighestCashback, and Personalized filters, plus a NewContentStrategyFilterFromString constructor.

v2.0.1 - 2026-05-14

  • chore: update LocationAttributes.PartnerIds comment and omitempty tag
  • Refine the PartnerIds field on LocationAttributes by updating its
  • godoc comment from β€œOnly included on LOCAL locations” to β€œOnly applicable
  • for LOCAL locations” and removing the omitempty JSON/URL tag so the
  • field is always serialized when present.
  • Key changes:
  • Update PartnerIds godoc comment for clarity (β€œOnly applicable for LOCAL locations”)
  • Remove omitempty from json and url struct tags on PartnerIds
  • 🌿 Generated with Fern

v2.0.0 - 2026-05-14

Breaking Changes

  • EarnedRewardAttributes β€” struct and all associated getter/setter methods have been removed; migrate by replacing any usage with RewardNotificationAttributes.
  • EarnedRewardApprovedData.Attributes β€” field type changed from *EarnedRewardAttributes to *RewardNotificationAttributes; update all call sites to use RewardNotificationAttributes.

Added

  • RewardNotificationAttributes.TransactionId, TransactionAmountInCents, and TransactionTimestamp β€” new fields (with corresponding getters and setters) exposing originating transaction details on reward notification attributes.
  • EarnedRewardSettledAttributes.TransactionId and TransactionAmountInCents β€” new fields providing transaction ID and amount in cents for settled reward events.
  • ValidTransactionAttributes.TransactionId, TransactionAmountInCents, and TransactionTimestamp β€” new fields providing originating transaction details for valid transaction notification attributes.

v1.1.0 - 2026-05-12

Added

  • LocationPartnerId β€” new struct representing a third-party partner ID (e.g. a Google place ID) associated with a location.
  • LocationPartnerIdType β€” new string enum type with the LocationPartnerIdTypeGoogle constant and a NewLocationPartnerIdTypeFromString constructor.
  • LocationAttributes.PartnerIds β€” new optional field ([]*LocationPartnerId) exposing partner IDs for LOCAL locations, accessible via GetPartnerIds and SetPartnerIds.

v1.0.1 - 2026-05-07

  • fix: correct required scope in CreateBulkTransactionsUploadUrl doc
  • Update the documented required OAuth scope for the
  • CreateBulkTransactionsUploadUrl method from transaction:write to
  • files:write, reflecting the actual permission required by the API.
  • Key changes:
  • Fix godoc comment on CreateBulkTransactionsUploadUrl to reference
  • the correct required scope (files:write instead of transaction:write)
  • 🌿 Generated with Fern

1.0.0 - 2026-05-05

  • Initial release of the Go SDK.
  • Provides core client functionality, authentication support, and documented usage examples to help you get started quickly.