Built For High-Risk Verticals
Hemp, THCA and CBD are the categories mainstream platforms write out of their terms. Here they are a case the product was designed around: payments that accept the category, fraud review in the order flow, lab reports attached to the product, and state rules checked before an order exists.
What High Risk Actually Means
It is a payments classification, not a judgement about your business. A category gets the label when acquiring banks decide it carries more chargebacks, more regulatory movement or more reputational exposure than they want to price normally. Plenty of legal, well-run, tax-paying businesses sit there.
Excluded By The Terms
Hosted carts write the category out of their acceptable use, so the store can be switched off rather than warned.
One Processor, And It Says No
The default processor a platform ships with will not board you, and the platform has no second one.
Lower Chargeback Tolerance
A fraud problem becomes an account problem faster than it does anywhere else.
Shipping Is State By State
Restricted, and the list moves without telling you.
Buyers Expect A COA
And a generic catalog has nowhere to put one.
The pattern you have probably already lived: a storefront gets built, traffic starts, somebody at the platform reads the catalog, the account is frozen and the rebuild is on you. Hemp, THCA and CBD storefronts run on this backend today, and the features below exist because of them.
A Processor That Takes The Category
Payments run through Authorize.net with authorize-then-capture, and Fraud Detection Suite holds arrive as a review state on the order rather than as a silent decline you hear about from a customer email.
ACH and bank transfer cover wholesale-sized and recurring orders where card fees stop making sense. Google Pay rides the same processor as opaque-token passthrough, so a shopper gets a one-tap wallet and no card data touches your servers.
// Tokenize in the browser. You never see the card number.await dash.payment.load()const token = await dash.payment.tokenize(cardData)// Or the same processor behind a one-tap wallet.const gpay = dash.payment.googlePay({ merchantName })const order = await dash.checkout.complete({ shipping, payment_token: token })// A fraud hold comes back as a review status, not a// swallowed failure you hear about from a customer.COAs Live On The Product, Not In A Folder
A Certificate of Analysis is per batch, which means per variation, not per product. The platform models it that way: lab report files attach to a product variation, and there is a module for reading them back, so your storefront can put the right document on the right strain.
// Every product that has at least one lab reportconst { products } = await dash.coa.list()// One batch's document, for the page it belongs onconst { variation } = await dash.coa.getVariation("blue-dream", "batch-0421")renderCoaLink(variation.lab_report_url)State Rules Checked Before The Order Exists
Where a product may ship is a question the checkout has to answer, not the refund queue. The platform exposes the shipping locations you sell into and the states a product is blocked from, with per-product exceptions so one restricted item does not impose its rules on the whole catalog. You read both from the client and stop the order at the address step.
const { locations } = await dash.checkout.getShippingLocations()const { banned_states } = await dash.checkout.getBannedStateNames()if (banned_states.includes(address.state)) { return blockWithMessage(address.state)}The Controls, In One Place
- Card processing
- Authorize.net, authorize then capture
- Fraud review
- Holds as an order state you work through
- Alternative rails
- ACH and bank transfer
- Wallet
- Google Pay, same processor, opaque token
- Lab reports
- dash.coa, per variation
- State restrictions
- dash.checkout.getBannedStateNames()
What This Page Is Not Promising
Read this part twice.
None of this is legal or compliance advice, and none of it is a certification. The platform gives you controls. It does not decide what you may sell, where you may ship it, how it must be labelled, or what your state does next. Those are your decisions and your counsel’s, and the banned-state list is only as right as the one you configure.
We also cannot promise you a merchant account. Boarding is the processor’s call, made on your business, and no platform gets to overrule it. What we can say is that the integration is already here and the category is in the product rather than an exception somebody negotiated over email.
Not sure whether your catalog fits? Ask before you buildSell What You Actually Sell.
Tell us the category and we will tell you straight away whether it fits. A straight no now is worth more than a frozen account later.