π§ Fixes
- Import regression bug fix that fixes PayPal button rendering on
sdkCore: false
π§ Fixes
- Fixed dispatch of payment-start event
β¨ ImprovementsNew design tokens added for error states in components:Check the documentation to learn more.
π§ Fixes
- Fixed translations for en-US locale
- Fixed PayPal horizontal layout style
π New featuresApple Pay and Google Pay are now available in SDK Core with early-stage support.Key Changes:Apple Pay and Google Pay changesPayPal changesDocumentation:
- Apple Pay payment method support in SDK Core
- Google Pay payment method support in SDK Core
- Apple Pay third-party browser payment using iPhone support is added
- Enhanced PayPal support with better defaults and per-funding source styling configuration
enabledPaymentMethods array:-
Apple Pay Payment Method
- Full Apple Pay integration with SDK Core
- Button customization (17 button types, 3 button styles)
- Billing address capture from Apple Wallet (
requiredBillingContactFields) - Shipping contact capture (address, name, email, phone) via
requiredShippingContactFields - Non-Safari browser support
-
Google Pay Payment Method
- Full Google Pay integration with SDK Core
- Button customization (type, color, size mode, radius, border, locale)
- Billing address capture from Google account (
captureBillingAddress) - Shipping address capture with country filtering (
captureShippingAddress) - Email capture (
emailRequired) - Locale support for 30+ languages
- Enhanced PayPal Support
- Per-funding source styling configuration
- Override styles for specific funding sources (e.g., PayPal, Pay Later, Venmo)
- Better defaults for button appearance
- Buyer country configuration support
- Apple Pay Options Reference - Complete configuration options and API reference
- Google Pay Options Reference - Complete configuration options and API reference
- PayPal Options Reference - Complete configuration options and API reference
The new payment methods are in early-stage support. Additional features and improvements will be added in future releases.
π New featuresThis release introduces the Documentation:
primerJS.vault.* namespace for better API organization and adds programmatic vault deletion capability. Enhanced data exposure now provides parity between headless and non-headless vault flows.Key Changes:-
Vault API Namespace (Breaking Change)
- New
primerJS.vault.*namespace groups all vault operations vault.createCvvInput()replacesprimerJS.createCvvInput()vault.startPayment()replacesprimerJS.startVaultPayment()- Old methods deprecated with console warnings in development mode
- Old methods will be REMOVED in the next release
- New
-
New Vault Deletion Method
- Added
primerJS.vault.delete(paymentMethodId)for programmatic deletion - Enables custom vault management UIs without Primer UI components
- Added
-
Enhanced Data Exposure for Headless Vault
- Cards: Now exposes
cardholderName,expirationMonth,expirationYear - PayPal: Now exposes
email,firstName,lastName,externalPayerId - Klarna: Now exposes
email,firstName,lastName - Provides data parity between headless mode and non-headless vault UI
- Cards: Now exposes
- Headless Vault Implementation Guide - Complete implementation example
- Events & Callbacks Reference - VaultAPI documentation
β¨ ImprovementsIntelligent change detection for SDK options prevents unnecessary re-initialization when object references change but content remains identical. Solves form flickering and data loss issues in React applications.Key Changes:Documentation:
-
Deep Comparison Implementation
- Added deep equality comparison for
optionsproperty changes - Prevents SDK re-initialization when new object references contain identical values
- Eliminates form flickering and data loss during React re-renders
- Added deep equality comparison for
-
React Integration Improvements
- Inline options objects now work correctly without causing re-initialization
- User-entered payment data preserved across component updates
useMemono longer required (though still recommended for optimal performance)
-
Backward Compatible
- No breaking changes or API modifications
- Existing code continues to work identically
- React Integration Guide - Updated with deep comparison behavior and best practices
- Options Guide - Comprehensive options configuration patterns
π New featuresComplete headless vault implementation allowing full programmatic control over vaulted payment methods. Build custom vault UIs while retaining all vault functionality.Key Changes:
-
Headless Vault Mode
- Added
vault.headlessconfiguration option to hide vault UI components while maintaining full vault functionality - Enables custom vault UI implementation with complete control over layout and styling
- All vault features remain operational (payment method selection, CVV recapture, submission)
- Fully compatible with existing vault configuration options
- Added
-
CVV Recapture Support
- Added
cvvRecaptureflag inonVaultedMethodsUpdatecallback data - Indicates when CVV re-entry is required for a vaulted payment method
- Automatically set based on payment processor requirements
- Added
-
New PrimerJS Methods
- Added CVV input creation for custom vault UI
- Added vault payment initiation for programmatic control
- Type-safe integration with TypeScript support
- Changed
vault.showEmptyStatedefault fromtruetofalse - Aligns with common use cases where empty state is custom or hidden
- Explicit opt-in now required for empty state display
- Headless Vault Implementation Guide - Complete implementation example with code
- Vault Options Reference - Complete vault.headless API reference
- Events & Callbacks Reference - Method documentation
π New features
- Added new event
primer:vault:selection-changedispatched when a payment method is selected or deselected
- Fixed slotted show other payment methods toggle button in the case when
Paybutton is of typebutton
β¨ Improvements
- Added Adyen Cash App and Affirm payment instrument types
π New featuresAdded new slots for vault submit button and slot for Show other payment methods toggle button. Refer to the
<primer-vault-manager> and <primer-show-other-payments> SDK reference documentation on how to use them.π§ FixesFixed build failures caused by dynamic imports issue in the billing address componentβs locale country data.Key Changes:
- Billing Address Component
- Fixed dynamic imports for locale country data
- Resolved build failures and bundle errors
- Component now builds correctly across all environments
- Merchants experiencing build failures should update immediately
- No API changes or migration required
π New featuresPre-fill the cardholder name field with a default value using synchronous initialization. No race conditions, no blank field flash - the value appears immediately when the checkout loads.Key Changes:Technical Details:
- Cardholder Name Pre-filling
- Added
card.cardholderName.defaultValueoption for synchronous cardholder name pre-filling - Value applied during iframe initialization (before it becomes visible)
- Eliminates race conditions and blank field flash from async approaches
- User can edit or clear the pre-filled value
- Backward compatible - optional parameter
- Added
- Synchronous initialization via iframe URL hash
- Value visible immediately when iframe loads (T+4ms vs T+16ms for async)
- No timing issues or readiness checks required
- Works with SDK Core enabled (default)
- Pre-filling from user profiles during checkout initialization
- For runtime updates after initialization, use
primerJS.setCardholderName()(see v0.7.1)
- Card Options Reference - Complete API reference
- Options Guide - Configuration patterns and best practices
β¨ ImprovementsThis release improves the accessibility and visual consistency of the Vault Manager component, along with fixing layout issues in the Show Other Payments component.Key Changes:
-
Vault Manager Enhancements
- Improved accessibility for better screen reader support and keyboard navigation
- Fixed icon rendering issues in dark mode for better visual consistency
-
Show Other Payments Component
- Fixed persistent padding issue when the component is collapsed
- Improved layout behavior for a cleaner collapsed state
π New featuresAdded Documentation:
setCardholderName() method to PrimerJS instance for programmatically setting cardholder name values.Key Changes:- New PrimerJS Method
- Added
setCardholderName(name: string)- Programmatically set the cardholder name field value - Useful for pre-filling from user profiles or auto-completing checkout forms
- Must be called after
primer:readyevent and after card inputs are rendered - Graceful error handling with warnings if called before initialization
- Added
- Events & Callbacks Reference - Full API reference
- Events Guide - Practical usage examples
π New featuresAdded comprehensive payment event system with PII-protected payment summaries and vault update notifications.Key Changes:After (v0.7.0):Documentation:
-
Callback Architecture Refactor (BREAKING)
- Removed
onPaymentCompleteunified callback - Added
onPaymentSuccess(data: PaymentSuccessData)- Handles successful payments with payment summary - Added
onPaymentFailure(data: PaymentFailureData)- Handles payment failures with error details - Added
onVaultedMethodsUpdate()- Notifies when vaulted payment methods change - Existing callbacks unchanged:
onPaymentStart,onPaymentPrepare
- Removed
-
State Field Renames (BREAKING)
errorβprimerJsError(SDK initialization/component errors)failureβpaymentFailure(payment processing failures)failure.detailsβpaymentFailure.diagnosticsId- Added
paymentFailure.datafor additional error metadata
-
New Payment Events
primer:payment-start- Dispatched when payment creation beginsprimer:payment-success- Dispatched on successful payment (includes PII-filtered PaymentSummary)primer:payment-failure- Dispatched on payment failure (includes error details)primer:vault:methods-update- Dispatched when vaulted payment methods update
-
PII Protection
- PaymentSummary type with whitelisted fields only (last4Digits, network, bankName)
- No cardholder names, full card numbers, or other PII exposed in events
- Compliant with GDPR Article 5(1)(c) and PCI DSS Requirement 3.4
-
Performance Improvements
- 40-60% reduction in redundant state-change events through deduplication
- Internal optimization with no API changes
- Events Guide - Complete event system overview
- Events & Callbacks Reference - Full API reference
π New featuresPayPal is now available in SDK Core with early-stage support. PayPal provides button-based payment flows with comprehensive customization options for styling, funding source control, and vaulting.Key Changes:Documentation:
- PayPal payment method support in SDK Core
- Button style customization (layout, color, shape, height, label)
- Funding source control (enable/disable specific PayPal payment options)
- Vaulting support for saved PayPal accounts
- Sandbox testing options for development
enabledPaymentMethods array:- PayPal Options Reference - Complete PayPal configuration options
PayPal is in early-stage support. Additional features and improvements will be added in future releases.
π§ FixesFixed critical bug where billing address was being set even when not required by checkout configuration, causing payment submission failures and validation errors.Key Changes:
- Fixed billing address validation logic to respect checkout configuration requirements
- Billing address no longer submitted when not required by merchant settings
- Eliminated unnecessary validation errors during payment submission
- Improved payment flow reliability
π§ FixesFixed billing address rendering issue when
sdkCore option was omitted. The billing address component now correctly displays when relying on the default SDK Core setting introduced in v0.4.0.Key Changes:- Fixed SDK Core default detection for billing address component
- Billing address now renders correctly when
sdkCoreoption is not explicitly set - No impact on other SDK functionality
π New featuresBLIK support is now available for the Polish market. BLIK is Polandβs leading mobile payment system that allows customers to authorize payments using a 6-digit code from their banking app.Key Changes:
- BLIK payment method for Polish market (6-digit code from banking app)
- Auto-submit with real-time status polling and timeout warnings
- Collapsible UI: button β form β loading β success/error states
- Full localization (40+ languages) and dark mode support
- TypeScript improvements: Enhanced JSDoc documentation for all
PrimerCheckoutOptionsproperties - Dependency updates across all packages
π New featuresBilling address capture is now supported through Primer Dashboard checkout configuration.Key Changes:
- SDK Core enabled by default when
sdkCoreoption not specified - Billing address form support (SDK Core only)
- Automatic billing address display in drop-in mode
- Manual integration required for custom layouts
- Removed βexperimentalβ terminology from SDK Core references
- Expanded test coverage for SDK selection scenarios
- Enable via Primer Dashboard checkout configuration
- Automatic display in drop-in mode
- Manual inclusion needed for slotted card forms (custom layouts)
- Requires SDK Core enabled (not available with
sdkCore: false) - Billing Address Documentation (coming soon)
π§ Fixes
- Fixed Google Pay rendering issue in certain browser configurations
- Vault CVV recapture
- Billing address API improvements
Most changes in this release relate to SDK core development.
β¨ ImprovementsThis release contains internal SDK improvements with no user-facing component changes.Internal Changes:
- Iframe lifecycle fixes
- Payment methods filter list
- Datadog logging integration
π§ Fixes
- PayPal button height fix
- Native payment method CSS improvements
β¨ ImprovementsThis release contains internal SDK improvements with no user-facing component changes.Internal Changes:
- Card form slot handling improvements
β¨ ImprovementsThis release contains internal SDK improvements with no user-facing component changes.Internal Changes:
- Analytics URL from client token
- Vault management features
- Logger implementation
- Iframe RPC refactor
β¨ ImprovementsThis release contains internal SDK improvements with no user-facing component changes.Internal Changes:
- Error standardization
- HTTP retry logic
- Locale support improvements
π New features
- Added cardholder name toggle option for card form customization
- Cardholder name display toggle
- Fixed toggle implementation in primer-sdk-web
β¨ Improvements
- Removed unnecessary peer dependencies and extended React version compatibility
π§ Fixes
- Removed native
:focus-withinCSS selector and implemented alternative focus handling for Firefox compatibility
π§ FixesFixed vault manager initialization preventing unnecessary API calls when vault is disabled. Components now handle missing customer ID gracefully.Changes:
- Lazy vault initialization (only when
vault.enabledis true) - Eliminated unnecessary API calls when vault disabled
- Graceful handling of missing customer ID
π New featuresPayment Method Container enables declarative payment layouts using Documentation:
include and exclude attributes, eliminating verbose event listener code.Key Features:- Declarative filtering with HTML attributes
- Automatic updates when payment methods change
- Backward compatible with existing implementations
β¨ Improvements
- Extended Payment type definitions to include
DLOCAL_PIX,ALMA, andPAY_NL_RIVERTY
π New featuresComplete vault component redesign with new control system for disabling payment methods globally or individually.Vault Component:
- Visual overhaul with improved responsive layout
- Custom empty state slot:
<div slot="vault-empty-state"> - Control empty state visibility:
vault.showEmptyState: false - Enhanced accessibility
- Individual method disabling:
<primer-card-form disabled></primer-card-form> - Global disabling:
disabledPayments: truein SDK options - Consistent disabled styling across all methods
π New featuresIntroduced type-safe
PrimerJS class replacing direct SDK access:refreshSession()- Refresh client sessiongetPaymentMethods()- Retrieve available methodsonPaymentStart- Payment initiation callbackonPaymentPrepare- Intercept payment creationonPaymentComplete- Unified payment result callback
β¨ Improvements
- Improved icon display and alignment for card network selection
π§ Fixes
- Fixed icon display next to card number input
π New features
- Added
hide-labelsproperty to card form - Introduced
primer-oncheckout-completeandprimer-oncheckout-failureevents
β¨ Improvements
- Enhanced vault component functionality
- Improved transitions
- Fixed custom style application
π New features
- Introduced experimental Stripe ACH UI and configuration support
β¨ Improvements
- Moved style injection logic into components for better reinitialization and stability
β¨ Improvements
- Optimized NPM builds with improved bundling
- Faster loading
- Reduced CDN dependency
π§ Fixes
- Fixed Safari styling issues by switching from Inter font to system fonts
π New featuresIntroduced standalone vaulting component, Klarna integration, and significant UX improvements.Key Features:
- Klarna payment method with collapsible design
- Standalone vault component supporting all backend payment methods
- Enhanced error validation (triggers on blur instead of submit)
- Improved styling system with JavaScript-injected CSS tokens
- CSS-only loader with merchant customization support
π§ Fixes
- Fixed TypeScript type bundling
- Apple Pay/Google Pay button height adjustments
π New featuresFirst public beta introducing card form, Apple Pay, Google Pay, PayPal (beta), localization support, and comprehensive styling API.Core Components:
<primer-checkout>- Main container and SDK initialization<primer-card-form>- Card input with validation<primer-payment-method>- Payment method renderer- Card input components: number, expiry, CVV, cardholder name
- Form helpers: button, input, label, error, wrapper
β¨ Improvements
- Initial NPM package setup and name reservation