For the complete documentation index, see llms.txt. This page is also available as Markdown.

Change Log

Learn about Violet's latest integrations and features.

2026.08.04

πŸ†• Features

Shopify: Contextual Pricing for All Merchants

Multi-currency contextual/presentment pricing is now the default configuration for all newly onboarding Shopify merchants. Previously, this was limited to specific apps.

Beam: Automatic Contextual Pricing Registration

Newly synced merchants are now automatically registered and opted into contextual pricing during product sync, removing a manual onboarding step.

Feed Management: Regional Market Support

Product feeds can now specify available markets, allowing sibling regional feeds to merge per-currency pricing and availability without overwriting each other.

πŸ”§ Fixes & Improvements

Order Creation: Currency Override with Discounts

Orders for merchants with an explicit order-currency override were failing when bag-level discounts were present. This has been resolved.

Scheduled Transfers: Projection & Eligibility Fixes

Improved the batched payout transfer projection calculation and improved the logic for determining which queued distributions are time-eligible for payout.

Dashboard: Merchant Products Table Upgrade

The Merchant Products page has been rebuilt with the modernized table experience, including:

  • Row selection with bulk publish/unpublish actions

  • Tri-state header checkbox and "select by" menu (Catalog / Page / Published / Unpublished)

  • Searchable tag filter with dismissible pills

  • Status filter with indicator dots matching row chip colors

  • Keyboard-accessible publish/unpublish button and row activation

Dashboard: Updated Typography & Dark Theme

The Dashboard design system has been updated to refine dark theme surfaces with improved elevation contrast.

πŸ“– Documentation

New: Net Receipts Payout Guide

A new guide covers the Net Receipts payout model, including fee submission, how commission is calculated on a net-of-fee basis, merchant fee recovery, refund handling, and hold conditions. See the Net Receipts documentation.

New: Offer & SKU Deletion Behavior

Documentation now describes what channels and merchants should expect when a source merchant deletes a SKU or Product. Deleting an individual variant permanently removes the SKU, while deleting an entire product moves the Offer to ARCHIVED status. See the updated Offers, SKUs, and Catalog FAQ pages.


2026.07.28

πŸ†• Features

Dashboard: Payout Readiness & Transfer Batches

Apps configured for scheduled transfers now have two new screens in the Dashboard. The Payout Readiness view shows per-merchant connection status, queued distribution totals, recent failure counts, and outstanding errors. The Transfer Batches view shows a history of completed batch runs with per-merchant breakdowns, including sent/failed status and error details. Both surfaces are available under the Payouts section when the app uses scheduled transfers.

Shopify: Currency Override Order Submission

Merchants configured with an order-currency override now have orders submitted to Shopify in their configured currency (e.g., EUR) while the Violet order remains in the base currency (e.g., USD). Exchange rates are captured at order creation, so refunds processed in the override currency convert accurately through the existing multi-currency path.

πŸ”§ Fixes & Improvements

Order Search: Pagination Fix

The order search endpoint now correctly returns results on all pages. Previously, pages near the end of the total results could return empty or throw an error.

Rithum: Fallback Shipping Accuracy

Fallback shipping rates now correctly evaluate order-amount thresholds when the order uses a converted currency.

WooCommerce: Webhook Topic Filtering

Webhook registration now respects excluded topics in sync policies, and scheduled reconciliation prunes webhooks that the policy excludes β€” matching the existing behavior for Shopify and BigCommerce.

Webhooks: Correct Dispute Event Types

Dispute webhook events now emit the correct event types, ensuring channels receive properly typed payloads for dispute-related notifications.

Catalog API: Response Cleanup

The catalog offers API no longer includes raw internal data in responses unless explicitly requested via the include=offer_data parameter. Previously, this data could be unintentionally included in some responses.

Dashboard: Table Interaction & Accessibility Polish

Keyboard navigation now works consistently across all dashboard table views, fixing a gap on the Transfers page. Additional refinements include the Export button anchored to the far right with a download icon, the per-page selector no longer disappearing on single-page data sets, and improved filter menu spacing.

Performance & Reliability

Broad infrastructure improvements across product sync, catalog, and webhook delivery reduce memory usage and improve throughput, particularly for merchants with large catalogs. These changes improve sync stability and API response times without changing any external behavior.


2026.07.21

πŸ†• Features

Payments: Net Receipts Commission Calculation

Apps can now configure whether payment processing fees are deducted from the order total before commission is calculated. This "Net Receipts" setting is available as an app-level default and can be overridden per merchant. Refund reversals are fee-aware, correctly prorating the original commission when goods are partially refunded. Distributions include provenance fields showing which fee settings were applied.

Feed Management: Made-to-Order Stock Level Support

Spreadsheet product feeds now accept "MTO" (Made to Order) as a valid stock level. Previously, MTO entries were treated as out-of-stock. MTO products are now correctly imported as available.

πŸ”§ Fixes & Improvements

Shopify: Contextual Pricing Country Fallback

When contextual pricing is enabled but market discovery returns no countries, the system now falls back to all supported countries rather than failing silently. This prevents pricing syncs from breaking for merchants whose Shopify configuration doesn't expose market data.

Beam: Order Submission Failure Notifications

Merchants now receive order-submission-failed notifications when orders are blocked by unmapped variants during Beam order processing. Previously, these failures produced no notification.

Dashboard: Shopware Platform Filter

The merchant connections platform filter in the Dashboard now includes Shopware.

Dashboard: Payouts & Distributions Table Upgrade

The Payouts and Distributions tabs have been rebuilt with the same modernized table experience rolled out to other dashboard pages β€” including URL-driven filters, sortable columns, and improved pagination.

πŸ“– Documentation

Shopify: Additional Required Access Scopes

The Shopify integration documentation now includes read_publications and write_publications as required access scopes for channel app setup. These scopes enable product publishing visibility.


2026.07.14

πŸ”§ Fixes & Improvements

Shopify: Inventory Accuracy for Tag-Force-Enabled Products

SKUs on tag-force-enabled Shopify products with zero tracked inventory no longer incorrectly report as in stock. The availability override now respects inventory tracking. Only untracked SKUs or those with actual quantity are marked in stock.

Catalog: Duplicate SKU Sync Resilience

Product syncs no longer fail when a merchant's catalog contains duplicate SKU external IDs across different offers. The sync now gracefully resolves collisions by preferring the SKU attached to the offer being updated.

Dashboard: Modernized Table Views

The Merchants, Orders, Bags, Transactions, Transfers, and Transfer Reversals pages across both Channel and Merchant dashboards have been rebuilt with improved UX:

  • URL-driven search and filters (searches and filters are now deep-linkable and survive page refresh)

  • Date range pickers with presets (Today, Yesterday, Last 7 Days, Last 30 Days)

  • Amount range filters on transfers and reversals

  • Searchable, grouped filter menus with status indicator dots

  • Sortable column headers with accessibility support

  • Standardized pagination with configurable page sizes

πŸ“– Documentation

Updated: Shopify API Scope Explanations

The Shopify platform guide now explains each required API scope in plain language, organized by function (Products & Inventory, Orders & Checkout, Customers, Shipping & Fulfillment, Discounts). A summary clarifies that all product, inventory, shipping, and discount scopes are read-only, and write access is limited to orders and customer records created through Violet.


2026.07.08

πŸ†• Features

Payments: Full Payout Account Visibility in Connection Health

Channels can now see all of a merchant's payout accounts from the Payout Account tab in the Connection Health dashboard, rather than a single account. Accounts are grouped into a labeled section per platform connection for multi-platform merchants, and each account shows its KYC health status. Click into any account to view its details and outstanding requirements. The view is read-only and mirrors the layout merchants see in their own dashboard, keeping the experience consistent across channel and merchant.


2026.07.07

πŸ”Œ Integrations

Shopware 6: New Ecommerce Platform

Shopware 6 is now available as a supported ecommerce platform. The integration covers product syncing, order management, direct order submission, customer sync, and real-time webhook updates. Merchants can connect their Shopware store through Violet Connect. See the merchant onboarding guide for step-by-step setup instructions.

Payments: Multiple Payout Account Visibility

Channels can now view grouped payout accounts, including new multi payout account views in the Violet Dashboard, giving better visibility into merchants with more than one payout destination.

Shopify: Metaobject Reference Flattening for All Merchants

Shopify metaobject references in product metadata are now automatically simplified to their handle values for all merchants. Previously this behavior was limited to select merchants. Merchants whose stores don't expose metaobject data are unaffected.

πŸ†• Features

Payments: App-Provided Bag Transaction Fees

Apps can now submit per-bag transaction fees through a new billing endpoint. Fees are validated against a configuration matrix that considers the merchant's payment setup, and accepted fees are persisted at the bag level. The endpoint supports idempotency and returns structured error codes for rejected submissions. See Bag Transaction Fees for details.

πŸ”§ Fixes & Improvements

Beam: Contextual Pricing Sync for Large Catalogs

Contextual pricing syncs no longer fail partway through for merchants with very large catalogs. Previously, these syncs could terminate before completing, leaving per-market prices stale.

Shopify: Full Refund SKU Attribution

Full refunds issued in Shopify without line-item detail (e.g., manual order-level refunds) are now correctly attributed to the order's SKUs. Previously these refunds arrived with no SKUs attached, which could prevent downstream settlement from processing correctly.

Reporting: Distribution Report Exports

Fixed an issue where distribution report exports could fail entirely. Exports now generate reliably.

Violet Connect: Deep Links Preserved After Login

Merchants who follow a direct link to the payments or commission rate page are now taken to that page after logging in, instead of being routed back through the onboarding flow.

Dashboard: Expanded Platform Filter

The merchant connections platform filter now includes Medusa, Shoplazza, and CartPanda.

πŸ“– Documentation

New: Shopware 6 Merchant Onboarding Guide

A full onboarding guide for Shopware 6 merchants is now available, including a granular permissions table covering exactly which API permissions the integration requires.

Updated: Checkout FAQ

New FAQ entries explain how refund and cancellation webhooks behave during checkout flows.


2026.06.30

πŸ”Œ Integrations

Cartpanda: New Ecommerce Platform

Cartpanda is now available as a supported ecommerce platform. Merchants can connect their Cartpanda store through Violet Connect. See the merchant onboarding guide for setup instructions.

Shoplazza: New Ecommerce Platform

Shoplazza is now available as a supported ecommerce platform. Merchants can connect their Shoplazza store through Violet Connect. See the merchant onboarding guide for setup instructions.

Medusa: New Ecommerce Platform

Medusa is now available as a supported ecommerce platform. Merchants can connect their Medusa store through Violet Connect. See the merchant onboarding guide for setup instructions.

πŸ†• Features

Shopify: Bundled Product Orders

Orders containing Shopify bundle products are now fully supported, including bundle component lookup, draft order creation/completion, discount handling, and price preservation. Bundle products and variants remain purchasable during product sync even when Shopify marks them as requiring components.

Shopify: Product Localization

Product sync now supports fetching translated content (titles, descriptions, option names) via Shopify's Translations API. Configured per-merchant through a syncLanguage setting. When no language is configured, behavior is unchanged.

Relay: Advanced Search Endpoints

New POST search endpoints (/relay/merchants/{id}/offers/search, /orders/search, /customers/search) accept a JSON body for advanced filtering by query, status, date ranges, financial status, fulfillment status, and more. Existing list endpoints also now support search and filter query parameters.

Relay: Store Info and Order Refunds

New GET endpoints for retrieving normalized store information (/relay/merchants/{id}/store) and order refund data (/relay/merchants/{id}/orders/{order_id}/refunds) across Shopify, BigCommerce, and WooCommerce.

Beam: Per-SKU Custom Commission Rates

Destination Variant Mappings now support a commission rate field (0–100%) applied at the SKU level when Beam creates orders. Supports both standard and bundled mappings.

πŸ”§ Fixes & Improvements

Address Validation: St. BarthΓ©lemy Support

Orders shipping to St. BarthΓ©lemy now correctly resolve to ISO country code BL. Previously, various spellings of the country name (with/without accent, "St."/"Saint") caused address validation failures.


2026.06.25

πŸ†• Features

Payments: Automated Stripe Dispute (Chargeback) Handling

Violet now automatically processes Stripe disputes for orders paid through Connect destination charges. When a dispute is opened, Violet evaluates whether the platform balance was actually debited and, if so, reverses the affected merchant transfer and records the corresponding ledger adjustments so balances stay accurate. When a dispute closes, the outcome is applied automatically: a win re-credits the merchant through the standard settlement pipeline, while a loss leaves the chargeback debit in place and marks the affected bags as disputed/refunded.

Payments: Dispute Status on Payment Transactions and Bags

Payment transactions (and their related bags) now carry a dispute status that tracks the chargeback lifecycle β€” UNDISPUTED, IN_DISPUTE, DISPUTE_WON, and DISPUTE_LOST β€” giving channels visibility into where a disputed payment stands.

Webhooks: New Dispute Events

Channels can now subscribe to dispute lifecycle webhooks: PAYMENT_TRANSACTION_DISPUTE_OPENED, PAYMENT_TRANSACTION_DISPUTE_WON, and PAYMENT_TRANSACTION_DISPUTE_LOST, plus an ORDER_DISPUTED event fired the first time any payment on an order is disputed. The event payload includes dispute details such as the disputed amount, Stripe reason code, dispute fee, and evidence submission deadline.

πŸ“– Documentation

New: Handling Disputes Guide

A new channel-facing guide explains how the dispute lifecycle maps to the order and payment‑transaction model β€” the dispute statuses, what each stage means for merchant funds, dispute fees, and what channels need to do. See Handling Disputes.

New: Dispute Webhooks Reference

A new webhook events reference covers the dispute lifecycle events β€” PAYMENT_TRANSACTION_DISPUTE_OPENED, PAYMENT_TRANSACTION_DISPUTE_WON, PAYMENT_TRANSACTION_DISPUTE_LOST, and ORDER_DISPUTED β€” including triggers, headers, and integration patterns. See Dispute Webhooks.


2026.06.23

πŸ”Œ Integrations

Saleor: New Ecommerce Platform

Saleor is now available as a supported e-commerce platform. Merchants can onboard via credential-based authentication using an App Token and optional Channel Slug. See the merchant onboarding guide for setup instructions.

πŸ†• Features

Merchant Configuration Resource Endpoints

Individual merchant configuration sections β€” shipping settings, shipping methods, inventory location filters, catalog rules, and catalog settings β€” are now available as first-class REST resources under /merchants/{merchant_id}/*. These endpoints support granular reads and updates without needing to fetch or overwrite the full configuration object.

πŸ”§ Fixes & Improvements

Shopify: Clearer Error for Restricted Product Shipping

When a Shopify merchant's Merchant of Record settings prevent shipping restricted products to a given address, the API now returns a clear message ("This merchant does not ship the selected item(s) to the provided shipping address.") instead of surfacing the raw Shopify error.

Beam: False Shipping Reconciliation Adjustments

Fixed an issue where pre-transfer shipping reconciliation could incorrectly adjust bags that had legitimate merchant-provided shipping rates. Only bags with placeholder shipping are now adjusted.

Feeds: Vendor Fallback for Google Product Feeds

When processing Google Product feeds, the offer vendor field now falls back to the merchant name when the feed item's brand is absent, consistent with CSV feed behavior.

πŸ“– Documentation

New: Global-E x Shopify Guide

A new guide explains how Global-E works on Shopify storefronts, why Violet orders bypass Global-E's checkout and Merchant of Record coverage, and recommended merchant configuration. Includes FAQs covering order creation, checkout routing, onboarding, reporting, and tax liability.

New: Stripe Dashboard Transfers Guide

A new channel-facing guide walks through creating transfers to connected Stripe accounts directly from the Stripe Dashboard, covering both the Balances page and Connected Account detail page methods.

Clarification: Estimate Order Response Totals

The Estimate Order docs now clarify that total, tax_total, shipping_total, and sub_total are always populated on a successful response and can only be null when an error occurs.

New: Discount Email Field in Order Estimate/Create Examples

OpenAPI examples for POST /orders/estimate and POST /orders now show how to include an email field with discount objects.


2026.06.18

πŸ”Œ Integrations

SAP Commerce Cloud: New Ecommerce Platform

SAP Commerce Cloud is now available as a supported ecommerce platform. Merchants on SAPCC can connect their stores through Violet Connect using a guided credential-based onboarding flow; entering their Client ID, Client Secret, and Base Site ID. Product sync, order handling, and webhook processing are fully supported. See the merchant onboarding guide for setup instructions.

Dashboard: New Platform Support

Oracle Commerce Cloud and SAP Commerce Cloud now appear in the dashboard's merchant connections platform filter with branded icons, making it easy to find and manage merchants on these platforms.

πŸ†• Features

Shopify: Combined Listings Support

Shopify combined-listing products are now fully supported during product sync. Parent products are mapped to their underlying purchasable child variants while preserving merchandised pricing, options, and media. Child products are suppressed as standalone offers to prevent duplicate listings.

Shopify: Metaobject Reference Metafields

Product sync now resolves Shopify metaobject reference metafields across all sync paths. This requires new Shopify scopes, read_metaobjects and read_metaobject_definitions, which have been added to the required scopes documentation.

Dashboard: Fulfillment Tracking for All Merchants

Fulfillment tracking controls (add and edit) are now available in the dashboard for all merchant platforms. Previously, tracking management was limited to manual merchants only.

Beam: Custom Shopify Line Items in Mixed Orders

Beam orders that include custom Shopify line items (non-Beam products without variant IDs) are now accepted instead of being rejected as invalid mixed orders. This supports merchants who add custom charges or products alongside Beam-managed line items.

πŸ”§ Fixes & Improvements

Payments: Improved Bank Statement Descriptors for Cross-Border Merchants

Stripe payment intents now use the connected account's card_payments capability as the primary signal for on_behalf_of eligibility. This means more merchants, especially cross-border Express Connect accounts, will correctly show their own business name on customer bank and card statements instead of the channel's name. For accounts where capability data hasn't been synced yet, eligibility has been broadened to include Express accounts in any of the platform's supported transfer countries, not just same-country matches.

The connected merchant account is not always eligible to be the settlement merchant. When a connected account lacks the card_payments capability β€” for example, accounts in countries where Stripe does not support card processing, or accounts that have not completed onboarding β€” on_behalf_of cannot be set. In these cases, the payment is settled through the platform account and the platform's statement descriptor will appear on the customer's bank or card statement instead of the merchant's. This is a Stripe Connect constraint; see Stripe's Connect charges documentation for details on settlement behavior and capability requirements.

Shopify: Managed Markets Cart Calculation

Cart calculation for Shopify merchants using Managed Markets (Global-e) with restricted products no longer fails. When the Admin API encounters a merchant-of-record restriction, calculation automatically falls back to the Storefront API, which handles restricted products through the buyer-facing checkout flow.

Wix: Product Option Name Fix

Colons in Wix product option names (e.g., Location:) no longer corrupt variant data. Option names are now sanitized to prevent delimiter collisions during the product decomposition-to-checkout round-trip.


2026.06.11

πŸ”Œ Integrations

Oracle Commerce Cloud: New Ecommerce Platform

Oracle Commerce Cloud is now available as a supported ecommerce platform. Merchants on Oracle CC can connect their stores through Violet Connect and begin selling through Violet-powered channels. See the developer guide for integration details and the merchant onboarding guide for setup instructions.

πŸ†• Features

Beta: Custom Commission Rates on Direct Order Submission

You can now set custom commission rates at the bag level or individual SKU level when creating orders through Direct Order Submission. This gives channels granular control over commission on a per-order basis β€” useful for promotional orders, product-line-specific rates, or partner arrangements. This feature is currently in beta.


2026.06.09

πŸ”§ Fixes & Improvements

EcomSync: Shoptet Custom Domain Merchant ID Collision

Fixed a merchant externalId collision that occurred when Shoptet merchants used custom domains. Registration now enforces the canonical Shoptet project-URL pattern, and externalId derivation has been hardened to always resolve to the stable project identifier regardless of domain configuration.

Null Serialization for Cart Totals and Order Monetary Fields

Calculated cart totals that are null are now included in serialized responses, preventing client-side null-pointer errors when totals haven't been computed yet. Order monetary fields are always serialized even when null, ensuring downstream consumers receive a consistent response shape regardless of order state.

πŸ“– Documentation

New: SAP Commerce Cloud Onboarding Guide

A full onboarding guide for SAP Commerce Cloud (SAPCC) merchants is now available in the docs. Covers plugin setup, authentication, and common configuration steps.

New: WooCommerce Shipping Extension Callout

The WooCommerce onboarding guide now includes a callout explaining the shipping extension requirement and when it applies.

Expanded: Supported Platforms List

The supported ecommerce platforms list in the channel documentation has been expanded and updated to include all available integrations. Previously this could only be found in the merchant documentation.

Updated: Shopify Permanent Domain Requirement

The Shopify integration docs now explicitly call out that a permanent (.myshopify.com) domain is required at registration time, clarifying a common source of onboarding confusion when merchants added a vanity handle.


2026.06.02

πŸ†• Features

Beam: Reverse Shopify Fulfillment Sync

Fulfillments created directly in a destination Shopify store are now automatically synced back to Violet. When a Beam user fulfills an order in Shopify, Beam detects the fulfillment via webhook and writes it back to the corresponding Violet order, closing the loop for multi-channel fulfillment workflows.

Beam: Order Submission Failure Email Notifications

Beam order submission failure notifications are now delivered via email in addition to the existing dashboard notification. App owners and org collaborators receive an email with a descriptive subject line, the Shopify order name, and a direct link to the affected order in the Shopify admin. Email delivery failures are logged but do not block the main notification flow.

πŸ”§ Fixes & Improvements

WooCommerce: Cart Calculation Fallback

WooCommerce cart calculations now degrade gracefully when the merchant's plugin endpoint is unavailable (401, 404, 500, or network failure). On checkout totals failure, the subtotal is computed locally. On shipping rate failure, configured fallback shipping methods are applied with currency conversion. This prevents cart estimation from failing entirely due to transient plugin issues.

Beam: Contextual Pricing Sync Resilience

Improved reliability of contextual pricing syncs for merchants with large catalogs. Syncs now support a PARTIAL_SUCCESS status when some price updates succeed while others are throttled, GraphQL throttle retries are more patient (6 attempts vs. 3), and long-running batches no longer time out prematurely. Additionally, variant refresh workflows no longer fail when contextual pricing context setup encounters an error β€” the refresh proceeds and pricing is applied on a best-effort basis.

Dashboard: Shopify Order Name in Beam Notifications

Beam order failure notifications in the dashboard now display the Shopify order name (e.g., #1001) instead of the internal Shopify order ID, making it easier for merchants to identify the affected order at a glance. The deep link to the Shopify admin still functions correctly.

Dashboard: Beam Notification Layout & Dropdown Fixes

Improved the layout of Beam error notifications by repositioning the Shopify link icon and removing unnecessary indentation. Fixed an issue where dropdown menus in the Beam mappings view could clip at viewport edges β€” menus now use viewport-aware positioning and flip above the trigger when needed.


2026.05.26

πŸ”§ Fixes & Improvements

Shopify: Offer Availability Consistency

Fixed a data inconsistency where the available flag on an offer could disagree with the offer's status when an enabled-tag rule forces availability. The available flag now correctly mirrors the status override, ensuring integrations that rely on either field get consistent results.

Shopify: Honor Sale Price Sync Setting for Contextual Prices

The merchant-level shouldSyncSalePrice setting is now correctly applied to per-market contextual prices. Previously, merchants who disabled sale-price syncing would still see sale prices on their contextual (multi-currency) pricing entries. Contextual sale prices are now set equal to the retail price when the setting is disabled, matching existing base-SKU behavior.

Beam: Contextual Pricing Sync Fallback Resolution

Contextual pricing syncs now use a three-tier fallback lookup to resolve source SKUs to destination Shopify variants. This ensures per-market prices sync correctly even when offer metadata contains only external IDs without complete Violet SKU mappings.

Beam: "View in Shopify" Link on Order Failure Notifications

Order failure notifications in the Violet Dashboard now include a "View in Shopify" link that opens the affected order directly in the Shopify admin, making it faster for merchants to investigate and resolve submission failures.

Dashboard: Merchants Table Scroll Fix

Fixed a layout issue where the merchants table in the Violet Dashboard could exhibit unexpected scroll behavior, improving the browsing experience when managing merchant connections.

Dashboard: Overview Card Readability

Adjusted font sizes and added text overflow handling on the analytics overview cards to prevent large values from overflowing and improve visual consistency.

Dashboard: Beam Component Styling

Fixed broken button and component styles in the Beam UI by migrating to the Petals design system tokens, ensuring visual consistency across the dashboard.

πŸ“š Documentation

Oracle Commerce Cloud: Onboarding Guide

Added a new Oracle Commerce Cloud onboarding guide with step-by-step setup instructions covering server-side integration registration, store URL configuration, credential provisioning, and security considerations including token expiration and permission requirements.


2026.05.19

πŸ”Œ Integrations

Miva: New Ecommerce Platform

Miva is now available as a supported ecommerce platform. Merchants can connect their Miva store through Violet Connect by providing their API Token, Signing Key, Store Code, and Store URL. The integration covers catalog syncing, order management, and customer data access through the Miva JSON API. See the Miva onboarding guide for step-by-step setup instructions.

⚑ Performance

Catalog: Lightweight Merchant Offers Endpoint (v1.1)

A new GET /offers/merchants/{merchant_id}/v1.1 endpoint is available that returns offer data without eagerly loading SKUs, variants, or albums. This significantly reduces payload size and response time for integrations that only need offer-level metadata β€” such as dashboard views or listing pages.

What's changed:

  • The new endpoint supports the same filtering, pagination, and currency parameters as the existing endpoint.

  • Maximum page size is 100.

  • Use this endpoint when you only need offer-level fields (name, price, merchant, status) and do not need nested SKU, variant, or album data.

πŸ”§ Fixes & Improvements

Shopify: Cart Resilience When Variant Access Is Denied

Cart calculations for Shopify merchants now handle cases where variant data is unavailable due to revoked access scopes. Instead of failing silently, the system uses fallback SKU matching (exact, substring, positional) and surfaces a clear error indicating that the merchant has revoked a necessary scope.

WooCommerce: Clean WPBakery Descriptions

Product descriptions from WooCommerce merchants using the WPBakery page-builder theme are now cleaned of raw shortcode markup before being exposed in the catalog. Shortcodes like [vc_row] that previously rendered as visible text in product descriptions are now stripped automatically.

Dashboard: Shoptet Platform Filter

Shoptet now appears as a filterable platform option in the Violet Dashboard's merchant connections view, making it easier to locate and manage Shoptet merchant integrations.

Dashboard: UX Theme Improvements

The Violet merchant and channel dashboards have been updated with UX theme improvements for a more polished and consistent visual experience.

πŸ“š Documentation

Shoptet: Standard Tier XML Feed Instructions

Updated the Shoptet Standard Tier guide with detailed instructions for creating the required XML product feed, including an XML template example and security configuration steps.


2026.05.12

πŸ”Œ Integrations

Lightspeed: New Ecommerce Platform

Lightspeed eCom is now available as a supported ecommerce platform. The integration covers catalog syncing, order estimation, direct order submission, and full order lifecycle events. Merchants can connect their Lightspeed store through Violet Connect β€” see the Lightspeed onboarding guide for setup instructions.

Shoptet: Standard Tier

Shoptet merchants who do not have access to the Shoptet Private API can now connect to Violet using the new Standard tier. Standard tier merchants provide a Google Product Feed URL instead of a Private API token, and Violet syncs their catalog through the feed. During the Violet Connect onboarding flow, Shoptet merchants are presented with a tier selector to choose between Premium (API token) and Standard (product feed).

πŸ†• Features

Distributions: Duty Totals

Distribution records now include duty tracking fields, extending the duty support introduced on Orders and Bags on April 22nd. New bag_duty_total, duty_amount, and duty_remitter fields are available on Distribution responses, mirroring the existing tax tracking pattern. Duty is treated as a non-commissionable pass-through cost retained by the merchant by default.

Who this impacts:

  • Channels that inspect distribution records for payout reconciliation. No action required β€” this is an additive change and existing integrations will continue to work without modification.

Beam: Order Submission Failure Notifications

A new Beam Order Submission Failed notification type is now available for Beam users. When a Shopify-to-Violet order submission fails, a notification is generated with a descriptive failure reason so operators can quickly identify and resolve the issue.

Beam: Broken SKU Mapping Notifications

A new Beam Broken SKU Mapping notification type is now available for Beam users. When a destination variant mapping is marked as broken, whether due to a SKU deletion by the source merchant or a product/variant deletion in the destination Shopify store, a notification is generated with a "View mapping" action that deep-links directly to the affected mapping in the Violet Dashboard.

πŸ”§ Fixes & Improvements

API: Correct 404 Responses for Invalid Paths

Requests to API paths that do not exist now correctly return a 404 Not Found response instead of an unexpected 5xx server error. This applies to all invalid or unrecognized URL paths across the API. No changes are needed for existing integrations β€” this only affects requests to endpoints that were never valid.


2026.05.06

πŸ”§ Fixes & Improvements

Billing: Payout Webhook Processing Resilience

Improved how Violet processes incoming Stripe payout webhooks for merchants connected through Stripe Connect, ensuring payouts are reliably attributed to the correct merchant account in the Violet Dashboard.

Previously, a small number of merchant payouts could be misattributed or silently dropped during processing, which in some cases caused payouts that had successfully landed at Stripe to not appear in a merchant's Violet payout history.

What's changed:

  • Incoming payout events are now consistently matched to the originating merchant account, regardless of which webhook endpoint Stripe delivered to.

  • Previously misattributed payout records will automatically self-correct the next time Stripe sends a follow-up event for that payout (for example, when the payout transitions to paid). No manual intervention or backfill is required.

  • Internal Stripe API calls made while processing payout events now use the correct, connection-scoped credentials, improving reliability for channels that manage their own Stripe Connect credentials.

Merchants and channels do not need to take any action β€” payouts will continue to flow through normally, and any historical records affected by the prior behavior will reconcile themselves as new events arrive.


2026.05.05

⚑ Performance

Catalog: Offer Search Performance Improvements

Several optimizations have been made to Offer Search to improve overall performance.

πŸ”§ Fixes & Improvements

VioletConnect: OAuth State Preservation

Fixed an issue where platform OAuth state parameters (Shopify, Square, etc.) could overwrite the channel's original callback state during the merchant connection flow. Channels that pass a custom state value when linking merchants to Violet Connect will now correctly receive that value back unchanged after the merchant completes authorization.

πŸ“š Documentation

Orders: Estimate & Create Endpoint API Reference

Improved the API Reference for the Estimate Order and Create Order endpoints with more accurate property definitions, clarifying which fields are required and which are optional in both requests and responses.

Magento 2: Plugin v1.4.5

Released version 1.4.5 of the Violet Magento 2 extension with improved order handling. The plugin now gracefully falls back to the shipping address when the billing address is missing from an order, preventing order write failures for merchants whose storefronts do not collect separate billing details.


2026.04.29

πŸ”§ Fixes & Improvements

Dashboard: Merchant Summary Card Offer Counts

Fixed an issue where the merchant summary cards in the Violet Dashboard displayed identical values for the total and published offer counts. The total count was previously fetched using an offer search that only returned published offers, so unpublished offers were never reflected.

Total and published counts will now correctly differ for merchants with unpublished offers.

Catalog: Offer Search Visibility Filtering

The POST /catalog/offers/search endpoint no longer applies a default visibility filter. Previously, the deprecated exclude_hidden query parameter defaulted to true, which silently filtered out all offers with visible=false β€” a common source of empty results for channels using test or private Shopify storefronts.

What's changed:

  • By default, all offers are now returned regardless of their visible value.

  • Use the visible field in the request body to filter explicitly: true for visible offers only, false for hidden offers only, or omit it entirely for no filter.

  • The exclude_hidden query parameter is deprecated but still supported for backwards compatibility. If passed explicitly as true, it continues to filter out hidden offers.

Why offers may have visible=false:

  • The merchant's store has no public online store URL configured (common for test stores)

  • The product has not been published to the merchants storefront.

πŸ“š Documentation

Catalog: Offer Search β€” Visibility Filtering Guide

Added a new Filtering by Visibility section to the Offer Search endpoint docs explaining how visible=false offers are created during ingestion, when you might encounter them, and how to use the visible request body field to control filtering.


2026.04.28

πŸ†• Features

VioletConnect: Account Confirmation Flow

The VioletConnect login and signup flow now includes account confirmation steps to prevent accidental account creation. When a user enters their email, the system checks whether an account already exists and routes them to the appropriate confirmation screen before proceeding:

  • New accounts β€” Users who enter an unrecognized email are shown a confirmation prompt ("Create a new account?") before a verification code is sent. They can choose to continue or use a different email.

  • Existing accounts β€” Users who enter an email tied to an existing account are prompted to sign in instead, reducing duplicate account creation.

This adds a lightweight safeguard without changing the overall authentication experience.

Improvements

Catalog: Offer Search Maintenance Mode

The Offer Search endpoints (POST /offers/search and POST /offers/search/v1.1) now return an HTTP 503 Service Unavailable response when Elasticsearch is undergoing maintenance, instead of returning an unexpected error. The response body includes:

Field
Value

error

maintenance_mode

code

9914

message

Service is currently undergoing maintenance.

Channels can use the 9914 error code or maintenance_mode error type to detect this condition and display an appropriate message to end users while search is temporarily unavailable.

πŸ“š Documentation

Magento 2: Composer 2 Requirement

Updated the Magento 2 installation guide to note that Composer 2 is now required. Composer 1 has been deprecated by Packagist and can no longer be used to install packages. The Packagist install command has also been pinned to version 1.4.3 of the Violet extension.

PrestaShop: Version 1.7 Requirement

Updated the PrestaShop installation guide to note that PrestaShop 1.7 or later is required. Earlier versions of PrestaShop are not supported by the Violet plugin.

πŸ”Œ Integrations

Shoptet: New Ecommerce Platform

Shoptet is now available as a supported ecommerce platform. Merchants can connect their Shoptet store to Violet by generating a Private API Token and providing it through Violet Connect. See the Shoptet onboarding guide for setup instructions.

πŸ”§ Fixes & Improvements

VioletConnect: OAuth State Preservation

Fixed an issue where platform OAuth state parameters (Shopify, Square, etc.) could overwrite the channel's original callback state during the merchant connection flow. Channels that pass a custom state value when linking merchants to Violet Connect will now correctly receive that value back unchanged after the merchant completes authorization.

Analytics: Distribution Report Exports

Resolved an issue with the analytics tooling that prevented the exporting of distribution reports. Exports now generate and download as expected.


2026.04.22

πŸ†• Features

Duty Total on Orders and Bags

A new duty_total field is now returned on all Order and Bag responses, giving you explicit visibility into duty charges on your orders.

What's changed:

  • A new duty_total field (in cents) is available on the Order and Bag objects.

  • If you include DUTY-type rates on your Order SKUs, the system will automatically calculate and populate duty_total from those rates.

  • You can also set duty_total directly on a Bag when submitting an order. If both a duty_total value and DUTY-type SKU rates are provided, the computed value from the rates takes precedence.

  • The total field now includes duties in its calculation: sub_total + shipping_total + tax_total + duty_total - discount_total.

What this fixes:

  • Previously, DUTY-type rates on Order SKUs were not reflected in any total field. Duty amounts were accepted on line items but silently excluded from tax_total and total, which could result in customers being under-charged. With this change, duties are tracked in their own dedicated field and correctly included in the order total.

Who this impacts:

  • No action required. This is an additive change β€” existing integrations will continue to work without modification.

  • Historical orders will return null for duty_total since this field was not tracked previously.

  • New orders that do not include duties will have duty_total set to 0.


2026.04.21

πŸ†• Features

Offer Webhooks: Consistent Payload Data

Offer webhook payloads now consistently include trade_compliance data, Offer data, and SKU metadata. Previously, these fields could be missing or inconsistently populated.

Who this impacts:

  • Channels consuming offer webhooks for international commerce. No integration changes needed, payloads are now reliably complete.

Magento: Custom Violet Cart Endpoints

When a Magento merchant has the latest version of the Violet extension installed, checkout now uses custom Violet cart endpoints for billing address, shipping estimation, and cart management, improving reliability.

Who this impacts:

  • Channels with connected Magento merchants running the latest Violet extension. No integration changes needed, this applies automatically.

Merchant Dashboard: Account Creation Confirmation

The Merchant Dashboard now includes an account creation confirmation step when a user attempts to log in with an email that doesn't have an existing account. Previously, a new account would be created automatically, which could prevent users from correcting a mistyped email for their merchant account.

πŸ”§ Fixes & Improvements

Shopify: Duplicate Order Prevention

Fixed a rare race condition during retries that could create duplicate Shopify orders. A pre-order submission deduplication lookup now prevents resubmission.

Payment Transfer Reliability

  • Fixed a bug where merchant transfers that encountered a temporary error would get permanently stuck and never retried during scheduled processing. Affected merchants will now automatically be retried on the next scheduled processing cycle.

  • Resolved an issue where high transfer volume could cause transfers to exhaust retries and fail permanently due to contention on Stripe's side. Transfers under load now back off and recover correctly.

Stripe Statement Descriptors

Fixed statement descriptors on payouts for certain Stripe Connect account configurations where the descriptor was being truncated or composed incorrectly.

Refunds

Fixed two scenarios where refund records were not being correctly associated with the originating payment connection, which could cause inconsistencies in payout reporting.

Stripe Account Onboarding

Fixed an issue with Stripe platform account resolution during merchant onboarding that could cause the onboarding flow to fail.

Merchant Dashboard: Payout Account Display

Channels no longer see a broken state for merchant payout accounts that haven't completed the new onboarding flow yet.


2026.04.14

πŸ†• Features

Shopify: Contextual Pricing Expanded to 23 Countries

Contextual pricing for Shopify merchants now supports 23 countries, up from the previous 5. When a SKU's local price isn't available in the requested currency, the system will automatically attempt EUR fallback resolution before defaulting to the base price.

What's changed:

  • Contextual pricing now covers 23 countries (previously 5).

  • EUR fallback resolution is applied when a direct currency match isn't available.

Who this impacts:

  • Channels using Contextual Pricing with Shopify merchants. No integration changes needed β€” the expanded country support applies automatically.

Swell: Discount Support & Order Cancellation

The Swell integration now supports discount codes during checkout and order cancellation. Channels connected to Swell merchants can apply discount codes in Estimate Cart and Create Order flows, and cancel orders post-submission.

What's changed:

  • Discount codes (fixed and percentage) are now supported in Swell checkout flows via the Estimate Cart and Create Order APIs.

  • Order cancellation is now available for Swell orders.

Who this impacts:

  • Channels with connected Swell merchants. If you are already using discount codes with other platforms, the same flow now applies to Swell.

Magento: Shipping & Cart Reliability Improvements

Several improvements to the Magento integration's checkout reliability:

  • Proactive shipping method estimation β€” Orders now estimate shipping methods upfront, reducing failures caused by unsupported carrier configurations.

  • Shipping method fallback β€” When Magento rejects the requested carrier (e.g. flatrate), the system falls back to the bag-level shipping method rather than failing the order.

  • Unavailable SKU detection β€” SKUs that are out of stock or unavailable are now flagged during cart calculation instead of failing silently at order submission.

  • Guest cart cleanup β€” Magento guest carts are now properly deleted after cart calculation and on order submission failure, preventing orphaned carts from accumulating.

Who this impacts:

  • Channels with connected Magento merchants. No integration changes needed β€” these improvements apply automatically to all Magento checkout flows.

Catalog Feeds: File Upload Blocked for URL-Synced Feeds

Merchants with an active URL-synced catalog feed are now prevented from uploading feed files manually. This avoids conflicts between the two sync methods and ensures the URL-synced feed remains the source of truth.

What's changed:

  • File upload via the Catalog Feeds API is now blocked when a merchant has an active URL-synced feed.

Who this impacts:

  • Channels or merchants using the Catalog Feeds API with URL-synced feeds. If you need to switch to file-based uploads, remove the URL-synced feed first.

πŸ“š Documentation

  • Added a new PrestaShop Required Scopes documentation page explaining the specific API scopes required by the Violet PrestaShop integration and why each scope is needed.


2026.04.08

Bug Fixes

Iterative Checkout (Non-DOS): Wallet Payment Intent Amounts with Price Overrides

Resolved a cart-total caching issue in iterative checkout (non-DOS) that could cause missing or incorrect wallet payment intent amounts for users applying price overrides.


2026.04.01

Improvements

Multi-Platform Payout Account Health

The Merchant Connection Health system now evaluates payout account health across all payment platforms a merchant is connected to, not just their primary platform. This gives channels a more complete picture of a merchant's payout readiness.

  • Channel Dashboard β€” The Connection Health tab on the Merchants page now displays payout account status per payment platform, so channel operators can see exactly which platform connections need attention.

  • API β€” The Connection Health endpoints in the Operations Service now return per-platform payout health data.

Note: This is only applicable iffor multi-platform payments enabled channels.

Dashboard: Empty States for Financial Pages

The Payouts, Distributions, Transfers, and Transfer Reversals pages in the Channel Dashboard now display informative empty states when no data is available, replacing blank pages with clear messaging.

Bug Fixes

  • Improved reliability of queued distribution processing.


2026.03.31

New

Violet Connect: Redesigned Platform Selection

We've redesigned the platform selection screen to make it easier to find and connect your e-commerce platform.

  • Search β€” Quickly find your platform by typing its name. Results are sorted by relevance so the best match always appears first.

  • Most Frequent β€” The most popular platforms (Shopify, BigCommerce, WooCommerce, and Wix) are now featured at the top for one-click access.

  • All Platforms β€” Browse every supported platform in an alphabetical list, each showing its name and logo side by side.

  • Keyboard and screen reader improvements β€” The entire selection flow is now fully navigable by keyboard with improved screen reader support.

Integrations

  • Location-filtered inventory checks for Shopify: Order submission and cart calculation now respect merchant-configured inventory locations, preventing overselling across warehouses.

Shopify: Faster, More Reliable Product Sync with Bulk Operations

Shopify product synchronization now uses Shopify's Bulk Operations API, replacing the previous per-product paginated approach. This is a behind-the-scenes infrastructure change β€” no API or integration changes are required on your end.

For merchants with catalogs of 250+ products, product syncs are now submitted as a single bulk operation to Shopify, which processes the entire catalog server-side and returns results as a streaming download.

  • Significantly faster syncs β€” Large catalogs that previously took hours now complete in minutes. A 5,000-product catalog now often syncs in under 20 minutes.

  • Improved reliability β€” Syncs are orchestrated as durable workflows that automatically resume from where they left off if interrupted. Built-in retry logic handles transient network failures gracefully.

  • Reduced rate limit pressure β€” A full catalog sync now requires a handful of API calls instead of hundreds, virtually eliminating rate limit bottlenecks.

All existing sync endpoints and webhooks behave identically. Merchants with smaller catalogs (under 250 products) continue to use the existing paginated sync.


2026.03.11

New

Merchant Dashboard: Fallback Shipping Rate Configuration

Merchants can now self-manage fallback shipping rates directly from the Merchant Dashboard. Fallback rates are returned by Violet during cart calculation when a merchant's e-commerce platform does not provide shipping methods. Previously, this configuration required manual intervention by the Violet team.

The new Shipping Configuration page supports:

  • Multiple fallback methods β€” Define any number of shipping options with a label, description, price, currency, handle, and calculation type (PER_ORDER or PER_ITEM)

  • Conditional applicability β€” Scope each method to specific countries (allowlist or blocklist), order amount ranges (min/max in cents), weight ranges (min/max with unit selector for LB, KG, or OZ), and offer IDs (allowlist or blocklist)

  • External shipping controls β€” Toggle switches to exclude external free shipping methods or exclude all external shipping methods entirely (with a warning banner when the latter is enabled)

The underlying shipping_config object is stored within MerchantConfiguration and is surfaced on the merchant configuration API endpoints.

Improvements

Merchants: Self-Service Email Change

Merchant portal users can now request an email address change directly from their account settings. This workflow was previously only available to channel users.

Integrations

  • The Square (SQUARE) integration is now available for all channels. Please reach out to your Violet account representative if you are interested in having this platform enabled for your app(s). Square does provide realtime taxes but not realtime shipping rates. Square merchants can instead create their shipping rates using the above mentioned Shipping Configuration feature. The shipping rates they create will be surface when estimating orders for that merchant.


2026.02.17

New

Catalog: SKU Trade Compliance

A new trade_compliance property has been added to SKUs, enabling merchants to store trade and customs compliance data directly on their inventory items. The trade_compliance object includes the following fields:

Field
Type
Description

harmonized_system_code

string (max 15 chars)

The default Harmonized System (HS) code for the SKU, used for international tariff classification

country_code_of_origin

string (2-char ISO code)

The ISO 3166-1 alpha-2 country code where the product originates

province_code_of_origin

string (max 6 chars)

The province or state subdivision code within the country of origin

The trade_compliance property is returned as a nested object on all SKU responses across existing SKU endpoints. When updating a SKU via the offer sync flow, omitting trade_compliance (i.e., sending null) preserves the existing trade compliance data.

Orders: Trade Compliance on Estimated Cart SKUs

When estimating a cart or order, each SKU in the response may include a trade_compliance object containing international trade classification data sourced from the product catalog. This surfaces customs and origin information at the cart level, enabling downstream consumers to handle duties, tariffs, and cross-border requirements before order submission.

The trade_compliance object on estimated cart SKUs includes:

Field
Type
Description

harmonized_system_code

string

The Harmonized System (HS) code used for international customs classification

country_code_of_origin

string

ISO country code where the product was manufactured or produced

province_code_of_origin

string

Province or state code within the country of origin

The trade_compliance object is only present when the catalog SKU has trade compliance data configured. If the SKU has no trade compliance data, the field is omitted from the response.

2026.02.11

Bug Fixes

Stripe Payout Eligibility Validation

Fixed an issue where merchants could encounter errors during payout account setup when their banking country was incompatible with their app's payout configuration. Merchants now receive clearer feedback during the banking setup process.


2026.02.08

New

Documentation: Catalog Feeds API

Added comprehensive documentation for the Catalog Feeds API in the Merchant docs. Includes endpoints for uploading and retrieving feeds, XML format specification, inventory feed examples, and API credential management.


2026.01.30

Improvements

Dashboard: Custom Properties on Order Line Items

The Bag details view in the Channel and Merchant Dashboards now displays custom properties for order line items. This enhancement provides visibility into SKU-level customizations such as engraving text, gift messages, or other merchant-defined attributes that were previously only accessible via API.

Bahrain (BH) Added to Postal Code Exempt Countries

Bahrain (BH) has been added to the list of countries that do not require a postal code during checkout. See Customers for the complete list of exempt countries.

Documentation: Shopify App Configuration Guidance

Updated the Shopify Pre-Registration guide to explicitly mention the requirement to uncheck the "Embed app in Shopify admin" checkbox when creating a Shopify app. This setting must be disabled for proper merchant onboarding.

Bug Fixes

Pre-Registration Failure for Recently Onboarded Merchants

Fixed a bug where Shopify pre-registration could fail if the merchant had recently onboarded to another channel. Pre-registration now correctly handles merchants with existing connections to other channels.


2026.01.27

⚠️ Deprecation Notice

API Deprecation Notice: Transfer Response Field Changes

Effective Date: 02/03/2026 Deprecation End Date: 05/04/2026

What is Changing?

We are introducing new fields in our Transfer API responses with improved type consistency. The following fields are being deprecated and replaced:

Deprecated Field
New Field
Type Change

related_orders

related_order_ids

List of String β†’ List of 64-bit Integer (i.e. Long)

related_bags

related_bag_ids

List of String β†’ List of 64-bit Integer (i.e. Long)

related_distributions

related_distribution_ids

List of String β†’ List of 64-bit Integer (i.e. Long)

transfer_reversals

transfer_reversal_ids

List of String β†’ List of 64-bit Integer (i.e. Long)

Affected Endpoints:

  • POST /v1/orders/{order_id}/transfer_funds

  • POST /v1/orders/{order_id}/bags/{bag_id}/transfer_funds

  • POST /v1/orders/transfer_funds

  • POST /v1/orders/bags/transfer_funds

Why is This Changing?

These fields have historically returned IDs as strings for future API version compatibility. We are standardizing all ID fields to return integers for consistency across our current API version, and will ensure that any type changes for ID fields only take place in the v2 Violet API.

Is This Breaking?

No, this change is not immediately breaking. During the deprecation period, both the old and new fields will be returned in API responses. Your existing integration will continue to work without modification.

Is Work Required on My Side?

Yes, migration is required before 05/04/2026.

Update your integration to read from the new *_ids fields instead of the deprecated fields. If you are using a strongly-typed language, you may also need to update your type definitions to expect integers instead of strings.

Timeline

Date
Action

02/03/2026

New fields available; both old and new fields returned

05/04/2026

Deprecated fields removed from responses

Questions?

Contact your account representative or reach out to [email protected].

πŸ†• Features

Squarespace Discount Support in Direct Order Submission (DOS)

Violet now supports applying discounts to Squarespace orders submitted via Direct Order Submission (DOS). This enhancement brings Squarespace in line with other platforms that support promotional pricing during order creation.

Custom Discounts (Channel-Defined)

Channels can now apply custom discounts to Squarespace orders during DOS:

  • Support for fixed amount discounts (e.g., $10 off)

  • Support for percentage-based discounts (e.g., 15% off)

  • Target discounts to order totals, shipping, or specific SKUs

  • Discounts are validated and calculated using Violet's standard discount utilities

  • Proper status tracking: APPLIED, INVALID, or ERROR based on validation results

Synced Discounts (Merchant-Defined Promo Codes)

Channels can now pass merchant-configured discount codes to Squarespace during DOS:

  • Discount codes are validated by Squarespace during order creation

  • Post-order validation confirms whether codes were successfully applied

  • Discount amounts are extracted from Squarespace's order response

  • Bag totals are automatically recalculated after code validation

  • Status tracking: PENDING during submission, then APPLIED or INVALID based on Squarespace's response

Who this impacts:

Note: Code-based discounts are not supported in Estimate Cart for Squarespace, as Squarespace does not provide a discount validation API. Custom discounts are supported in both Estimate Cart and DOS.


2026.01.21

Improvements

Enhanced Payout Account Country Validation

Violet Connect now performs more robust validation when merchants select their banking country during payout account setup. The system now accounts for Destination Payments eligibility, ensuring merchants can only select countries where payouts are supported for their account configuration.

Shopify Merchant Onboarding Improvements

  • Refreshed UI: Updated visual design for a cleaner, more intuitive onboarding experience

  • Pre-Registration Detection: Merchants who visit Violet Connect directly (without a pre-registration link) can now enter their store URL, and the system will automatically detect any existing pre-registrations associated with that store. See Merchant Onboarding for details.

Renamed Tabs in the Merchant Dashboard

  • "Bags" tab has been renamed to Orders in the Merchant Dashboard.

  • "Offers" has been renamed to Products in the Merchant Dashboard.

2026.01.06

πŸ†• Features

Shopify Merchant Pre-Registration (Required for New Shopify Merchants)

In response to Shopify's January 2026 requirement that all new merchant connections use single-merchant custom apps, Violet has launched comprehensive pre-registration capabilities in both the Channel Dashboard and Violet Connect. This feature streamlines the previously complex Shopify onboarding process from 10+ minutes to under 2 minutes.

Channel Dashboard Enhancements:

  • New Pre-Registered Tab: Navigate to Merchants β†’ Pre-Registered to manage merchant onboarding before they connect

  • Pre-Registration Management: Store OAuth credentials (Client ID, Client Secret) securely for each merchant before they begin installation

  • Merchant-Specific Links: Generate unique Violet Connect links with pre-filled merchant details for one-click authorization

  • Real-Time Status Tracking: Monitor merchant onboarding progress from pending to active, with automatic migration to Connected Merchants upon completion

  • Bulk Actions: Edit, delete, or regenerate installation links for multiple pre-registered merchants

Violet Connect Improvements:

  • Pre-Filled Onboarding: When merchants click their unique link, store details are automatically populatedβ€”no manual entry required

  • Simplified OAuth Flow: Single "Connect to Shopify" button replaces complex credential entry, reducing errors and support tickets

  • Automatic Credential Validation: OAuth handshake completed using pre-registered credentials without merchant involvement

  • Smart Redirect Handling: Seamless return to Violet Connect after Shopify authorization for payout and commission setup

Why This Matters:

Shopify's deprecation of merchant-created custom apps means channels must now create and manage single-merchant apps for each merchant. Without pre-registration, this would require error-prone manual credential exchange. The new pre-registration workflow:

  • Reduces onboarding time from 10+ minutes to under 2 minutes

  • Eliminates credential copy/paste errors that caused 30% of onboarding failures

  • Provides channels with centralized management of all pending merchant onboardings

  • Ensures compliance with Shopify's new security requirements

Documentation: Complete setup guide available at Shopify Merchant Onboarding

Migration Note: Existing Shopify merchants connected before January 2026 continue to work without changes. Only new merchant onboarding requires pre-registration.


Weekend & Business Day Transfer Controls

Scheduled transfers now support business day controls, giving you additional flexibility over when merchant payouts are executed.

  • allowWeekendTransfers: When set to false (default), transfers scheduled to occur on weekends are automatically deferred to the following Monday. When true, transfers execute on any day of the week.

This setting works alongside existing scheduled transfer options (time_interval_seconds and require_fulfillment) to provide complete control over payout timing.

Setting
Behavior

allowWeekendTransfers: false (default)

Saturday/Sunday transfers β†’ Monday

allowWeekendTransfers: true

Transfers execute any day

Impact: Channels can now align merchant payouts with banking hours, reducing reconciliation complexity and providing more predictable payout schedules.


2025.12.16

πŸ†• Features

Order Adjustments API

New endpoints for managing post-order adjustments to bag totals. Adjustments are immutable audit records that track corrections to shipping, tax, or discount amounts after an order has been placed.

Use adjustments to:

  • Correct shipping overcharges due to carrier rate updates

  • Fix tax miscalculations for customer jurisdictions

  • Apply post-order promotional discounts as customer goodwill

Each adjustment tracks how the cost change is distributed among the shopper, merchant, and channelβ€”ensuring the amounts always sum to zero for proper accounting.

New Endpoints:

  • GET /v1/orders/{order_id}/adjustments - Get all adjustments for an order

  • GET /v1/orders/{order_id}/bags/{bag_id}/adjustments - Get adjustments for a specific bag

  • POST /v1/orders/{order_id}/bags/{bag_id}/adjustments - Create a new bag adjustment

  • GET /v1/orders/{order_id}/bags/{bag_id}/adjustments/{adjustment_id} - Get a specific adjustment

Documentation: See Order Adjustments in the API Reference under Orders & Checkout.


2025.12.10

πŸ†• Features

Scheduled Transfers & Fulfillment-Based Payouts

Violet now supports scheduled merchant transfers with fulfillment requirements, giving channels complete control over when and how merchant payouts are executed. This feature addresses key challenges in marketplace payment operations by allowing channels to hold merchant payouts until orders are shipped and batch multiple transfers together on a predictable schedule.

The Problem This Solves

In traditional immediate-transfer setups, merchants receive payment the moment a customer's payment is capturedβ€”often before the order ships. This creates several challenges:

  • Fulfillment Risk: Merchants are paid before confirming they can fulfill the order, increasing exposure if orders are cancelled or suppliers are out of stock

  • Chargeback Exposure: When disputes arise, funds have already been transferred, making recovery difficult

  • High Transaction Volume: Each order generates a separate transfer, creating thousands of micro-transactions for high-volume platforms

  • Unpredictable Cash Flow: Merchants receive sporadic transfers throughout the day rather than predictable "paydays"

New Configuration Options

Two new settings are available in your app's payment configuration:

  • require_fulfillment: When enabled, merchant transfers are only executed for bags in SHIPPED or DELIVERED status. This ensures merchants are paid only after orders are fulfilled, reducing risk from unfulfilled orders, cancellations, and potential fraud.

  • time_interval_seconds: Set a minimum interval between transfers for each merchant to enable batched payouts:

    • 0 (default): Transfers execute immediately after payment capture

    • 86400: Daily batched transfersβ€”all eligible orders consolidated into one payout

    • 604800: Weekly batched transfersβ€”predictable "payday" scheduling for merchants

    • Some custom interval

Real-World Use Cases

Business Model
Configuration
Benefit

Dropshipping Marketplace

require_fulfillment: true

Pay merchants only after they confirm shipment from suppliers

High-Volume Social Commerce

time_interval_seconds: 86400

Reduce thousands of daily micro-transfers to one consolidated payout per merchant

Risk-Conscious Marketplace

Both enabled with weekly batching

7-day buffer to identify issues before merchant payout

B2B Platform

time_interval_seconds: 604800

Predictable weekly "payday" for merchant cash flow planning

Documentation: For detailed configuration options, use cases, and best practices, see Scheduled Transfers.

Impact: This feature is ideal for channels operating dropshipping marketplaces, high-volume platforms with many small orders, or any business model where controlling payout timing reduces operational and financial risk.

Transfer schedule settings can be configured at both the app level (applying to all merchants by default) and at the merchant level (overriding app defaults for specific merchants). To learn more or configure scheduled transfers, please reach out to Violet.


Transfer Mechanism Options: Standard Transfers vs Destination Payments

Violet now supports two distinct transfer mechanisms that control how funds are moved to merchants. This gives you flexibility to choose the payment flow that best fits your business model and compliance requirements.

What is a Transfer Mechanism?

While Transfer Methods (AUTOMATIC, CUSTOM, EXTERNAL, DISABLED) control when transfers occur, Transfer Mechanisms control how the actual fund movement is executed at the payment provider level.

Standard Transfers (Default)

Standard transfers use Stripe's separate charge-and-transfer model:

  • Violet captures the payment from the shopper, then initiates a separate transfer operation to move funds to the merchant's connected account.

  • The charge and transfer are distinct operations, giving you maximum flexibility over timing and control.

  • Works with all transfer methods and supports both immediate and batched transfer schedules.

Destination Payments

Destination payments use Stripe's destination charge model, where payment capture and merchant transfer occur atomically:

  • Violet creates a Payment Intent with transfer_data.destination, which automatically transfers funds to the merchant's connected account upon payment capture.

  • Platform as Merchant of Record: Your platform name appears on customer statements, providing a consistent brand experience across all merchants.

  • Automatic Application Fees: Stripe creates Application Fee objects automatically, simplifying commission tracking and platform revenue reconciliation.

  • Simplified Fund Flow: No separate transfer operation requiredβ€”funds flow directly to the connected merchant account as part of the payment capture.

When to Use Destination Payments

Destination payments are ideal for:

  • Platform-Centric Marketplaces: Similar to Airbnb or Lyft, where the platform is the primary business entity customers interact with and should appear on statements.

  • Simplified Accounting: When you want Stripe to automatically track platform fees as Application Fee objects for easier reconciliation.

  • Atomic Transfers: When you need the guarantee that payment capture and merchant fund distribution happen together in a single operation.

Comparison

Consideration
Standard Transfers
Destination Payments

Merchant of Record

Can be platform or connected account

Platform is always merchant of record

Transfer Timing

Full control (immediate, batched, or custom)

Automatic upon capture

Stripe Fee Tracking

Manual reconciliation

Automatic Application Fee objects

Scheduled Transfers

Optional

Required

Documentation: For detailed information on transfer mechanisms and how to configure them, see Transfer Mechanisms.

Ready to configure transfer mechanisms? Transfer mechanism settings are managed by the Violet team. To learn more or configure a transfer mechanism for your app, please reach out to Violet.


2025.12.09

πŸ†• Features

Transfer Details Enhancements

Enhanced the Merchant Dashboard with a detailed view for transfers.

  • Transfer Detail Page: Added a new view to inspect individual transfer details, including summary information and adjustment distribution types.

  • Comprehensive Tables: Dedicated tables allow for easy inspection of all Distributions, Reversals, and Bags associated with a transfer.

  • Distributions Page: Updated to use a paginated list for better performance and usability.

Distribution Search Improvements

2025.12.02

πŸ†• Features

Merchant Dashboard Transfers & Reversals

The merchant dashboard now includes comprehensive transfer and reversal management capabilities:

  • Transfers Table: A new dedicated page displays all payout transfers for merchants, providing visibility into payment activity.

  • Transfer Reversals Tab: The payouts page now includes a transfer reversals tab, making it easy to view and track reversed transactions.

  • Merchant Filtering: Both transfers and reversals pages support filtering by merchant, enabling quick access to merchant-specific transaction data.

Impact: Merchants can now view and manage their transfers and reversals directly from the merchant dashboard, providing full transparency into payout activity.

Enhanced Distribution Details

Distribution details now include additional context for easier order lookup:

  • Customer name is now displayed in distribution details on both channel and merchant dashboards.

  • App Order ID is visible alongside distribution information on the channel dashboard, making it easier to cross-reference with your internal systems.

Bag Fulfillment Management

The Merchant Dashboard now includes comprehensive bag fulfillment tracking and management capabilities for manual merchants, making it easier to monitor and manage order fulfillment:

  • Organized Fulfillment View: Fulfillments are now clearly separated into fulfilled and unfulfilled sections, making it easy to see what's been shipped and what's still pending at a glance.

  • Manual Tracking Entry: Add and manage tracking information manually for bags, with support for multiple carrier options to accommodate different shipping providers.

  • Quick Tracking Updates: Edit tracking details directly from the fulfillment view with an intuitive modal interface, allowing you to correct or update shipping information as needed.

  • Streamlined Workflow: The tracking entry process has been simplified with automatic form resets and improved validation, ensuring accurate tracking information with minimum effort.

  • Enhanced Visibility: Improved visual design and organization helps you quickly identify fulfillment status and take action on pending shipments.

Impact: Manual merchants can now manage bag fulfillments directly from the dashboard with complete visibility into tracking details, carrier information, and fulfillment status. This streamlines merchant support workflows, reduces time spent managing orders, and provides better order tracking capabilities for your customers.

πŸ”§ Fixes & Improvements

Bag Fulfillment API Improvements

  • API Authentication for Fulfillment Endpoints: Improved authentication handling for merchant fulfillment API endpoints, ensuring proper authorization checks are consistently applied when merchants interact with bag fulfillments.

  • Fulfillment Accuracy: Fixed an issue that could cause incorrect fulfillment quantity calculations, ensuring accurate tracking of fulfilled items.

2025.11.25

πŸ†• Features

ORDER_FAILED Webhook Event

A new webhook event type is now available to track failed order processing:

  • ORDER_FAILED webhook events are triggered when order creation or processing fails.

  • Provides detailed error information to help channels handle failed orders appropriately.

  • Available in both OrderService and dashboard webhook configuration.

Impact: Channels can now build more robust error handling and customer support workflows by receiving real-time notifications when orders fail to process.

Zero-Dollar Transaction Support

Violet now fully supports $0 transactions throughout the platform:

  • Process orders with $0 subtotals (e.g., fully discounted orders, promotional items).

  • Support for $0 SKUs in Direct Order Submission (DOS).

  • Enhanced payment capture and billing calculations to handle zero-dollar edge cases.

  • Proper tax rate calculations when order subtotals are $0.

Impact: This enables channels to process promotional campaigns, loyalty rewards, and other scenarios where products or orders may have zero monetary value while still requiring order processing and fulfillment tracking.

πŸ”§ Fixes & Improvements

Date Formatting Fix

  • Resolved an issue with Stripe Unix timestamp formatting in the dashboard, ensuring dates are displayed consistently and accurately across all payment-related views.

2025.11.18

πŸ†• Features

Adjustment Distributions

Violet now supports adjustment distributions, enabling proper tracking and accounting for order modifications after initial transfer processing:

  • Enhanced refund distribution records now include additional fields for more comprehensive financial reporting and reconciliation.