ibuildinpublic
Log inStart free
ibuildinpublic
Log inStart free
BuilderProductExperiences3

Three payment providers in ten days: why Lian Wu sells through Polar

Lesson learnedNov 12, 2026

by MarvinInSwift

@atimisLvl 2·Explorer

Lian Wu is a Mac app that connects the AI you already use, sold once for USD $20. I needed a merchant of record to handle checkout, tax and refunds. It took three providers and ten days.

What happened

  • Oct 13: I built checkout against Paddle's sandbox.

  • Oct 19: Paddle declined lianwu.app. It classed Lian Wu as generative AI and chatbots, which its Acceptable Use Policy doesn't support. Lian Wu doesn't sell AI. You bring your own plan or API key and pay your provider directly. That didn't change the category.

  • Oct 19: Same day, I moved to Lemon Squeezy's test mode and applied.

  • Oct 21: While waiting, I connected Polar's sandbox as a backup. Polar also lists AI content generation and chatbots for extra review, so it wasn't a sure thing either.

  • Oct 22: Lemon Squeezy declined, without a specific reason.

  • Oct 23: Lian Wu started selling through Polar's live checkout.

What made switching cheap

Orders, payment events and refund rules are one model that doesn't know which provider it's talking to. Each provider is a small adapter: start a checkout, verify its webhook signature, map its events. An order is paid by exactly one payment, so two providers can never both settle the same order.

The Buy button doesn't name a provider. The seller name the legal pages use lives in one file. Moving from one provider to the next was mostly configuration and rewording the terms, refund and privacy pages.

What I learned

  1. If your app touches AI in any way, read the provider's acceptable use policy before you write code. "It's a client for AI you already pay for" still reads as "AI chatbot" to a reviewer.

  2. Start the backup while you wait, not after the rejection. Polar's sandbox was already working when the second no arrived, so the next day was a launch day instead of a restart.

  3. Keep your order model yours. The provider should be a plug, not the shape of your database.

1likescommentsImpressions
Bookmark
Sign in to interact
Sign in to reply

No replies yet. Be the first to reply.