Changelog
This page documents all notable changes to Primer Checkout. We follow Semantic Versioning for our releases.
v0.5.2 - Billing Address Requirement Fix (29-Oct-2025)
Fixed 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
Recommendation: Update to this version immediately to avoid payment submission issues.
v0.5.1 - SDK Core Default Fix (24-Oct-2025)
Fixed 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
v0.5.0 - BLIK Payment Method (21-Oct-2025)
BLIK requires SDK Core (enabled by default) AND must be added to enabledPaymentMethods array.
BLIK 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
Example Configuration:
import { PaymentMethodType } from '@primer-io/primer-js';
const checkout = document.querySelector('primer-checkout');
checkout.setAttribute('client-token', 'your-client-token');
checkout.options = {
enabledPaymentMethods: [
PaymentMethodType.PAYMENT_CARD,
PaymentMethodType.ADYEN_BLIK, // Add BLIK
],
};
v0.4.0 - SDK Core Default & Billing Address (17-Oct-2025)
SDK Core is now the default payment engine. Previously, omitting the sdkCore option used the legacy SDK. Starting in v0.4.0, SDK Core is enabled by default when sdkCore is not specified.
Migration: To continue using the legacy SDK, explicitly set sdkCore: false in your configuration.
Billing 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
Billing Address:
- 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)
Example - SDK Core Opt-out:
// v0.3.x - Legacy SDK by default
const checkout = document.querySelector('primer-checkout');
checkout.setAttribute('client-token', 'your-client-token');
// sdkCore not specified - used Legacy SDK by default
// v0.4.0 - SDK Core by default
const checkout = document.querySelector('primer-checkout');
checkout.setAttribute('client-token', 'your-client-token');
checkout.options = {
sdkCore: false, // Explicit opt-out for Legacy SDK
};
v0.3.12 - Google Pay Fix (13-Oct-2025)
Fixed Google Pay rendering issue in certain browser configurations
SDK Core Updates:
- Vault CVV recapture
- Billing address API improvements
Note: Most changes in this release relate to SDK core development.
v0.3.11 - SDK Core Updates (08-Oct-2025)
This release contains internal SDK improvements with no user-facing component changes.
Internal Changes:
- Iframe lifecycle fixes
- Payment methods filter list
- Datadog logging integration
v0.3.10 - CSS Improvements (06-Oct-2025)
- PayPal button height fix
- Native payment method CSS improvements
v0.3.9 - SDK Core Updates (30-Sep-2025)
This release contains internal SDK improvements with no user-facing component changes.
Internal Changes:
- Card form slot handling improvements
v0.3.8 - SDK Core Updates (29-Sep-2025)
This 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
v0.3.7 - SDK Core Updates (18-Sep-2025)
This release contains internal SDK improvements with no user-facing component changes.
Internal Changes:
- Error standardization
- HTTP retry logic
- Locale support improvements
v0.3.6 - Cardholder Name Toggle (04-Sep-2025)
Added cardholder name toggle option for card form customization
Changes:
- Cardholder name display toggle
- Fixed toggle implementation in primer-sdk-web
v0.3.5 - Dependency Cleanup (20-Aug-2025)
Removed unnecessary peer dependencies and extended React version compatibility
v0.3.4 - Firefox Compatibility (24-Jul-2025)
Removed native :focus-within CSS selector and implemented alternative focus handling for Firefox compatibility
v0.3.3 - Vault Initialization Fix (08-Jul-2025)
Fixed 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
v0.3.2 - Payment Method Container (07-Jul-2025)
Payment Method Container enables declarative payment layouts using 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
Example:
<primer-payment-method-container
include="APPLE_PAY,GOOGLE_PAY"
></primer-payment-method-container>
Documentation:
v0.3.1 - Payment Type Updates (20-Jun-2025)
Extended Payment type definitions to include DLOCAL_PIX, ALMA, and PAY_NL_RIVERTY
v0.3.0 - Vault Redesign & Payment Controls (12-Jun-2025)
Complete 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
Payment Controls:
- Individual method disabling:
<primer-card-form disabled></primer-card-form> - Global disabling:
disabledPayments: truein SDK options - Consistent disabled styling across all methods
Stricter TypeScript typing may reveal previously ignored errors
Example:
<primer-vault-manager>
<div slot="vault-empty-state">
<p>No saved payment methods</p>
</div>
</primer-vault-manager>
v0.2.0 - Event System Overhaul (19-May-2025)
All DOM events renamed to primer:* namespace format. Legacy primer-oncheckout-complete and primer-oncheckout-failure events removed.
Event Renames:
primer-state-changed→primer:state-changeprimer-payment-methods-updated→primer:methods-updateprimer-checkout-initialized→primer:readyprimer-card-submit-success→primer:card-successprimer-card-submit-errors→primer:card-errorprimer-card-network-change→primer:card-network-change
Introduced 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
v0.1.8 - Card Network Icon Fix (02-May-2025)
Improved icon display and alignment for card network selection.
v0.1.7 - Card Form Icon Fix (02-May-2025)
Fixed icon display next to card number input.
v0.1.6 - Component Improvements (01-May-2025)
Added hide-labels property to card form. Introduced primer-oncheckout-complete and primer-oncheckout-failure events.
v0.1.5 - Vault and Styling Improvements (30-Apr-2025)
Enhanced vault component functionality, improved transitions, and fixed custom style application.
v0.1.4 - Experimental Stripe ACH (15-Apr-2025)
Introduced experimental Stripe ACH UI and configuration support.
v0.1.3 - Style Injection Improvements (15-Apr-2025)
Moved style injection logic into components for better reinitialization and stability.
v0.1.2 - Build Optimizations (10-Apr-2025)
Optimized NPM builds with improved bundling, faster loading, and reduced CDN dependency.
v0.1.1 - Safari Compatibility (10-Apr-2025)
Fixed Safari styling issues by switching from Inter font to system fonts.
v0.1.0 - Vaulting & UX Improvements (10-Apr-2025)
Introduced 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
v0.0.3 - TypeScript & Button Fixes (11-Mar-2025)
Fixed TypeScript type bundling and Apple Pay/Google Pay button height adjustments.
v0.0.2 - Initial Beta Release (07-Mar-2025)
First 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
v0.0.1 - Package Setup (01-Mar-2025)
Initial NPM package setup and name reservation.