Aug 03, 2026

17 min read

Spirits DtC Shipping by State and How to Build the Validation Rules on Shopify

Spirits DtC Shipping by State and How to Build the Validation Rules on Shopify

Each State Has a Different Rule and a Different Build

Brand validation, daily-window ledgers, reciprocity pre-checks, and community blocklists are all different Shopify Functions rules. We scope and build them for spirits brands.

See How We Build

Wine DtC shipping has one question per destination state: is it allowed? Spirits DtC shipping by state has ten questions: production cap, license type, annual cost, permitted brands, volume window type, per-day limit, batching rule, reciprocity requirement, dry-community blocklist, and reporting schedule. A store that handles wine compliance correctly cannot handle spirits compliance by adding one field.

That difference is the point of this piece. The rules-table architecture that closes the renewal gap is mapped in the alcohol subscription compliance post. This piece maps what goes into each row: the per-state engineering implications that turn legal text into Shopify Functions rules, metafield schemas, and volume ledger configurations.

The checkout validation rule for Kentucky is not the checkout validation rule for California. They share a schema but not a ruleset. Each open state in the spirits DtC roster requires a different combination of checks, and building the wrong one is as non-compliant as building none at all.

Why the Wine Playbook Breaks on Spirits

Wine DtC scaled to 48 states because the core compliance check is the same everywhere: is the destination state permitted, does the winery hold a valid shipper’s license there, and does the shipment stay under any annual volume cap? One Shopify Functions rule per destination, parameterized by state.

Spirits DtC does not work that way. The 21st Amendment gives each state independent authority over alcohol within its borders, and the three-tier system (producer to distributor to retailer) is the default path every state enforces. Direct-to-consumer spirits shipping exists as narrow exceptions carved into that system, each with its own conditions. The Granholm ruling established that states cannot discriminate between in-state and out-of-state producers once they permit DtC shipping at all, which is why most open states extend their privileges to qualifying out-of-state distilleries, but it did not force any state to open DtC shipping in the first place.

The result is a roster of eight states plus Washington, D.C., each with a different exception. California restricts by production volume and applies a per-transaction daily cap. Kentucky restricts by brand ownership. New York restricts by the distillery’s home state. Alaska restricts by destination community. Arizona restricts by annual production size.

A single Shopify Functions rule that checks “is this state permitted?” handles wine. Spirits needs a validation sequence with a different branch for each open state. That is the build difference, and it is architectural.

The Open States in 2026

The roster as of August 2026, with the build flag each state introduces. This table is a starting point, not a compliance database. Permit requirements change, and ShipCompliant and Avalara maintain live state-by-state references that should be verified before any license application.

State Eligible Producers Volume Limit Key Build Flag
Alaska Licensed distilleries Varies Community-level zip blocklist
Arizona Under 20,000 gal/yr production Varies Production-cap eligibility gate
California Under 150,000 gal/yr, 65% own production 2.25 liters per consumer per transaction per day Daily-window ledger, no batching
D.C. Licensed distilleries Varies Verify current requirements
Kentucky Licensed distilleries, own production/exclusive brands only 10 gallons per individual per month Brand-level validation per SKU
Nevada Licensed distilleries Varies Verify current requirements
New York Under 75,000 gal/yr, NY or reciprocal state Varies Reciprocity pre-check before license check
Rhode Island On-site purchases only N/A Not a DtC model. Block online orders.

Iowa, Colorado, and Missouri have legislation moving as of August 2026. The federal Craft Distilled Spirits Direct-to-Consumer Shipping Act is pending. Build the rules table to accept new rows without a code change.

California: The Daily Cap Is Not What You Think

California is the largest consumer market on the spirits DtC map, and it carries the most misunderstood rule in the roster. Getting it wrong is the fastest path to a compliance failure in the state you most want to reach.

The permit is a Type 94 Direct Shipper Permit, available since January 1, 2026 to both in-state and qualifying out-of-state craft distillers. Qualifying means producing no more than 150,000 gallons of spirits annually, with at least 65% produced in-house. The permit costs $25 and requires annual ABC reporting, an adult signature on every shipment, CONTAINS ALCOHOL labeling, and consent to California jurisdiction. The entire framework expires December 31, 2026 unless the California legislature extends or makes it permanent. History suggests extension; the build must survive either outcome.

The rule most subscription systems get wrong: the 2.25-liter limit is a per-transaction daily limit, not a monthly or annual rolling cap. A distillery cannot ship 17.5 liters once a week on the grounds that 17.5 divided by seven equals 2.25. Each individual shipment must be 2.25 liters or under, and no second shipment can go to the same subscriber on the same calendar day, regardless of size.

For a subscription store, this creates a specific collision. A scheduled renewal and a manual gift order cannot both ship to the same California member on the same calendar day. A release-day batch and a pending catch-up shipment cannot land on the same date. Ship-date scheduling for California subscribers is compliance logic, not fulfillment preference.

The build requires a California-specific daily-window ledger check that sits alongside but separate from the rolling monthly or annual volume ledger. Before any California order ships, the validation queries: has this member already received a spirits shipment today? A pass releases the order. A fail holds it to the next available calendar day. The monthly volume check and the daily-window check are two different queries, and conflating them produces a system that passes monthly audits and violates the daily rule on busy release days.

Annual ABC reporting assembled from per-member per-shipment records completes the California obligation.

Kentucky: Brand Ownership Changes the Validation Layer

Kentucky’s DtC spirits program is one of the older ones in the roster. The state passed it in April 2020, and it contains a restriction that catches multi-brand and marketplace-style stores by surprise.

The permit is a License to Direct Ship to Consumers, issued by the Kentucky Alcohol Beverage Control division, costing $100 and renewable annually. The volume limit is 10 gallons per individual per month, a rolling monthly window rather than a daily cap. Dry and damp communities in Kentucky prohibit delivery regardless of state-level permission, so a Kentucky destination check requires both a state-level permit validation and a community-level blocklist.

The restriction that changes the validation layer: Kentucky permits DtC shipping only of brands the licensee produces or bottles itself, or that are produced or bottled for it under an exclusive agreement. A store that sells sourced spirits, white-label products, or third-party brands alongside its own cannot ship those third-party brands to Kentucky subscribers under its own license, even if the license is valid and the subscriber is in a permitted community.

Store-level validation catches 80% of the compliance requirement. Brand-level validation catches the rest. The Shopify Functions rule for Kentucky must check not only whether the store holds a valid Kentucky DtC license but whether the specific SKU in the cart belongs to a brand the store produces or holds exclusively. That requires a brand-ownership metafield on every spirits product, populated at catalog setup and maintained as the product mix changes.

A store that sells ten SKUs but owns the production rights to only six of them ships the other four into Kentucky at its own risk, and the risk is a permit revocation rather than a fine.

New York: Reciprocity Before the License Even Applies

New York extended its DtC shipping permissions to include spirits and cider products in November 2024. The production cap sits at 75,000 gallons of liquor annually, smaller than California’s threshold, which means mid-size regional distilleries may qualify for one but not the other.

The rule that makes New York different from every other state on the roster: eligibility requires the distillery to be located in New York or in a state that New York treats as reciprocal. The reciprocity check happens before the license application, before the checkout validation, and before any other compliance question. A distillery in a non-reciprocal state cannot obtain the New York DtC license regardless of how small its production volume is.

The validation sequence for a New York order must reflect that order of operations. Check the distillery’s home state against the reciprocity list first. If the home state is not on the list, close the gate and stop. If it is on the list, proceed to the production volume check, then the license check, then the destination community check, then the volume ledger.

Collapsing these into one validation rule produces false positives: a distillery in a non-reciprocal state might pass a production-volume check and trigger a license-application attempt that is legally impossible. The pre-check prevents that by failing fast at the first disqualifying condition.

Reciprocity lists change as states negotiate and enact new agreements. The reciprocity status is a row in the distillery’s license-eligibility table, not a hardcoded conditional, for exactly this reason.

Alaska: The Zip-Code Blocklist Is the Build

Alaska is a yes at the state level and a no at the community level, and the gap between those two facts is where most spirits stores ship non-compliantly.

As of January 2024, out-of-state distilleries shipping to Alaska need a direct shipment license. Prior to that date, out-of-state producers could ship to Alaska without one, but the state closed that gap. A distillery must be licensed in another state to qualify for the Alaska license.

The community structure is the build. Alaska has numerous dry and damp communities where alcohol delivery is prohibited regardless of state-level permission. These communities are defined at the locality level, not the county level, and the list changes independently of state law. A store that validates “Alaska is an open state” and ships without a community-level check is treating a state-level permission as a destination-level clearance, and those are two different things in Alaska.

The build is a zip-code-to-community map maintained as a data table, queried before any Alaska order completes. When a subscriber enters an Alaska shipping address, the checkout validation maps the zip code to a community status. Permitted communities clear. Dry and damp communities block. The map is its own refresh trigger: community status changes require a data update, independent of any state-level permit change.

Alaska’s community structure is the most granular destination-level compliance check in the continental roster. It is also the most commonly skipped, because “Alaska allows spirits DtC shipping” is technically correct and operationally misleading.

Arizona: Production Cap Is an Eligibility Gate, Not a Volume Cap

Arizona’s DtC spirits program permits craft distilleries that produce less than 20,000 gallons of spirits annually. This is a lower threshold than California’s 150,000-gallon cap and a meaningful one for any distillery approaching regional scale.

The distinction that matters for the build: the production cap is not a volume-shipped limit. It is an eligibility gate based on the distillery’s total annual production. A distillery that crosses 20,000 gallons of total production loses its eligibility to ship to Arizona, regardless of how much it has shipped there or how its Arizona volume compares to its overall output.

A static metafield set at catalog launch will not catch this. The distillery’s production volume is a field that must be reviewed annually and updated when production changes. A brand eligible when the store launched may lose eligibility mid-year if a new distilling run pushes total volume over the threshold. The validation rule for Arizona checks that metafield, and the metafield has to be current.

D.C., Nevada, Rhode Island

Washington, D.C. permits DtC spirits shipping and is generally considered one of the cleaner compliance environments on the roster.

Nevada changed its rules to require all parties shipping alcohol into the state to be licensed, including agents of otherwise-licensed entities. Any store using a third-party fulfillment partner for Nevada orders must confirm that the partner carries its own Nevada authorization, not just rely on the store’s own permit.

Rhode Island is on-site only. The purchaser must be on the producer’s premises when ordering. This is a tasting-room purchase rule, not a DtC shipping model. A Shopify store should block Rhode Island entirely in the checkout validation rather than attempt to satisfy an in-person purchase requirement through a remote checkout. A Rhode Island visitor who reached the store’s website cannot complete a spirits purchase that would legally have required them to be standing at the distillery.

The States Watching California

Iowa, Colorado, and Missouri have active legislative interest in spirits DtC as of August 2026. The federal Craft Distilled Spirits Direct-to-Consumer Shipping Act, introduced in 2026, would give small craft distilleries a pathway to ship across state lines in states that permit incoming DtC shipments. It is pending as of publication.

The same design principle applies here as in every prior post in this cluster: build the rules table to accept new rows as data, not as code. A new state’s permit requirements become a configuration entry. A new community blocklist becomes a data file. A production-cap change becomes a metafield update. A system built around those assumptions handles new states without a rebuild and handles changing rules without a sprint. Designing the rules table for states you don’t have yet is covered in full in the alcohol subscription post.

The Shared Schema That Carries All of It

Every open state’s rules map onto the same underlying schema. The metafield set per distillery license includes: state, license type, license ID, production volume, permitted brands list, effective date, expiration date, volume window type (daily or monthly or annual), volume cap, per-day cap, batching permitted (yes or no), reciprocity check required (yes or no), community blocklist required (yes or no), and reporting schedule.

The Shopify Functions validation sequence for a spirits order runs in this order: destination state check (open or blocked) → reciprocity eligibility for states that require it → production-volume eligibility for states with production caps → brand ownership check for states with own-production rules → daily-window ledger check for states with per-transaction daily limits → monthly or annual ledger check → community blocklist check for states that require it → license current and valid.

Every step reads from the rules table. Adding a new state is a new row and, where needed, a new community data file. Changing an existing rule is a data update. No step is conditional application code that requires a developer to touch for a new state to work.

That schema is the same one introduced in the supplement compliance build for age gates and state restrictions, extended here with the spirits-specific columns. The primitive is reusable; the data it carries is vertical-specific.

Records and Reporting

Each open state brings its own reporting obligation. California requires an annual report to the ABC detailing total volume shipped into the state. Kentucky requires collection and remittance of state excise and sales taxes per shipment. New York carries its own reporting requirements for licensed DtC shippers.

The permit renewal calendar is a data layer, not a reminder in someone’s email. Each state’s permit expiry date lives in the rules table and surfaces as an alert before the renewal window closes. A lapsed permit triggers the checkout validation to block all orders to that state. That is correct behavior, but a preventable surprise if the team sees it for the first time when orders start failing.

The records and reporting layer from the alcohol subscription post applies in full: per-member, per-state shipment records structured to produce each state’s required report without manual assembly. The spirits per-state structure adds brand-level records for Kentucky-style rules and daily-transaction records for California.

Excise tax rates on spirits vary by state and apply to DtC shipments. Building subscriptions on Shopify’s native APIs covers the subscription contract primitives; the tax and reporting obligations are the compliance partner’s domain, whether that is ShipCompliant or a direct state-agency integration.

Build or Patch

ShipCompliant handles compliance data well and integrates with Awtomic and Bloom Commerce for club and subscription management. What it does not do is implement brand-level validation per SKU, daily-window ledger checks distinct from rolling-window checks, community-level zip blocklists as native Shopify Functions rules, or reciprocity pre-checks that gate the checkout before a license lookup fires. Those are build decisions, not configuration decisions.

The honest ceiling of a patched stack: a store with ShipCompliant for compliance data, Recharge or Awtomic for subscriptions, and no custom validation between them will handle checkout-time compliance well and renewal-time compliance not at all. The gap is the same one the Recharge vs custom subscription development post maps, drawn here in spirits-specific ink.

A multi-state spirits validation build on top of the alcohol subscription architecture runs roughly 4 to 6 additional weeks. A standalone spirits-only build with the full schema and community-blocklist infrastructure runs 8 to 12 weeks. Pretending otherwise helps nobody planning a release season.

Four questions settle the decision. Do you ship to more than one open spirits state? Do you sell brands under own-production or exclusive-agreement rules? Do you have California subscribers? Do you ship to Alaska destinations? Two or more yes answers is custom territory, and the food and beverage development work we scope in this vertical almost always starts with the rules table rather than the platform choice.

None of this is legal advice. Counsel decides what each state’s permit requires; we build the validation logic that enforces those requirements at the checkout and at every renewal.

Bring both to the same table before the next release day. Our Shopify subscription development team scopes the full validation sequence from the rules table out.

FAQ

What states allow distilleries to ship spirits direct to consumer?

As of August 2026, roughly eight states plus Washington, D.C.: Alaska, Arizona, California (pilot through December 31, 2026), Kentucky, New York, Nevada, and D.C. Rhode Island permits on-site purchases only and is not a DtC shipping model. Each state has its own eligibility conditions, volume limits, and permit requirements.

Can I ship spirits from Kentucky to another state?

Shipping from Kentucky and shipping to Kentucky are two different questions. To ship to Kentucky, you need a $100 annual License to Direct Ship to Consumers from the Kentucky ABC, and you can only ship brands you produce or bottle yourself under an exclusive agreement. Third-party or sourced brands cannot be shipped to Kentucky subscribers under that license.

Does California allow spirits DtC shipping in 2026?

Yes, under a one-year pilot. Qualifying craft distillers with a Type 94 permit can ship up to 2.25 liters per consumer per transaction per day. Each shipment is counted individually. A distillery cannot batch weekly shipments to equal the daily amount. The pilot expires December 31, 2026 unless extended. (As of August 2026.)

What is the reciprocity rule for spirits shipping in New York?

New York only issues DtC spirits shipping licenses to craft distilleries located in New York or in a state that New York recognizes as a reciprocal partner. A distillery in a non-reciprocal state cannot obtain the license regardless of its production size. The reciprocity check happens before any other eligibility question.

How do I block spirits orders to restricted states on Shopify?

A Shopify Functions checkout validation reads a per-state rules table and blocks or gates the checkout before the order is created. For states with community-level restrictions like Alaska, the validation also queries a zip-code-to-community map. The correct enforcement point is the checkout, not the fulfillment stage where the order already exists and a carrier is already involved.

The spirits DtC map has eight open states today. It will have more, and the rules in the ones it already has will keep changing. A store built around a rules table that accepts new rows as data rather than new code will handle every addition and amendment as a configuration task rather than a build event. That is the difference between a compliance system and a compliance headache.

About the author

Samiksha

Samiksha

Samiksha is a Content Writer and Strategist at Codingkart, turning the team's hands-on ecommerce engineering work into practical content for DTC and subscription brands. She writes about Shopify, Shopify Plus, WooCommerce, subscription development, and migrations, focused on the engineering decisions that shape how ecommerce systems actually run. Her writing helps founders get the context they need before the next big call on their tech stack.

Ready to Improve Your Coffee Subscription?

Bring your state roster, your brand ownership structure, and your subscriber list. We will scope the rules table, the per-state checks, and the community blocklists from the data out.