<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Indie Developer on TorchTree</title>
        <link>https://torchtree.com/en/tags/indie-developer/</link>
        <description>Recent content in Indie Developer on TorchTree</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en</language>
        <copyright>TorchTree Co., Ltd.</copyright>
        <lastBuildDate>Thu, 03 Sep 2026 16:02:00 +0800</lastBuildDate><atom:link href="https://torchtree.com/en/tags/indie-developer/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>WeChat Mini Programs Open Virtual Payments to Individual Developers</title>
        <link>https://torchtree.com/en/post/wechat-miniprogram-personal-virtual-payment/</link>
        <pubDate>Thu, 03 Sep 2026 16:02:00 +0800</pubDate>
        
        <guid>https://torchtree.com/en/post/wechat-miniprogram-personal-virtual-payment/</guid>
        <description>&lt;img src="https://torchtree.com/post/wechat-miniprogram-personal-virtual-payment/cover.jpg" alt="Featured image of post WeChat Mini Programs Open Virtual Payments to Individual Developers" /&gt;&lt;p&gt;In September 2026, the WeChat Mini Program platform opened virtual payment capability to individual developers. A Mini Program registered under a personal identity can now apply to collect payments for virtual goods, without first incorporating a business. The official documentation has published a dedicated &amp;ldquo;Virtual Payment: Individual&amp;rdquo; chapter, and the activation review completes within 5 minutes.&lt;/p&gt;
&lt;p&gt;Previously, a hard rule separated personal Mini Programs from WeChat Pay. Standard WeChat Pay integration requires a merchant account, and merchant accounts are only issued to registered business entities. Since 2018, the platform has also restricted virtual goods sales inside Mini Programs; on iOS, even a purchase entry could not be displayed, with Mini Games as the only exception. For an individual developer wanting to charge 9.9 CNY for a tool, the standard route is to register a business license first.&lt;/p&gt;
&lt;h2 id=&#34;what-changed&#34;&gt;What Changed
&lt;/h2&gt;&lt;p&gt;The newly opened capability is virtual payment, covering virtual goods: usage credits, memberships, content unlocks, and similar items. The platform&amp;rsquo;s internal term is &amp;ldquo;item&amp;rdquo; (道具). Developers create items in the backend, set prices, and publish them; users purchase inside the Mini Program.&lt;/p&gt;
&lt;p&gt;Physical goods remain out of scope. E-commerce transactions still require a business entity. Services that require telecom licenses, such as email, information publishing platforms, and information search, are excluded as well.&lt;/p&gt;
&lt;p&gt;Note that virtual payment runs on the Mini Program platform&amp;rsquo;s payment system, invoked through the &lt;code&gt;wx.requestVirtualPayment&lt;/code&gt; API, and is a separate system from standard WeChat Pay (&lt;code&gt;wx.requestPayment&lt;/code&gt;), which requires a merchant account.&lt;/p&gt;
&lt;h2 id=&#34;eligibility-and-activation&#34;&gt;Eligibility and Activation
&lt;/h2&gt;&lt;p&gt;The following are the 4 requirements listed in the official documentation:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Requirement&lt;/th&gt;
          &lt;th&gt;Detail&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Individual entity&lt;/td&gt;
          &lt;td&gt;Mini Program registered under a person with mainland China ID&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Service category&lt;/td&gt;
          &lt;td&gt;Must include &amp;ldquo;Tools&amp;rdquo; (工具)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Verification&lt;/td&gt;
          &lt;td&gt;Personal account verification, 30 CNY per year (300 CNY for business entities)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Filing&lt;/td&gt;
          &lt;td&gt;ICP filing completed&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Verification and filing are baseline requirements for any Mini Program. A personal &amp;ldquo;Tools&amp;rdquo; category Mini Program that is already live only needs to activate virtual payment in the backend.&lt;/p&gt;
&lt;p&gt;Activation lives under &amp;ldquo;Payment &amp;amp; Transactions - Virtual Payment&amp;rdquo; in the MP backend: agree to the agreement, fill in identity information, withdrawal account, and payment administrator, submit, and wait for review (officially under 5 minutes), then sign the agreement by scanning a QR code. After activation, note 3 key values: AppID, OfferID (payment account), and the production AppKey (payment secret). iOS payments additionally require setting a Mini Program display name shown in the Apple payment sheet.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://torchtree.com/post/wechat-miniprogram-personal-virtual-payment/virtual-payment-menu.png&#34;
	width=&#34;1740&#34;
	height=&#34;450&#34;
	srcset=&#34;https://torchtree.com/post/wechat-miniprogram-personal-virtual-payment/virtual-payment-menu_hu15699505661419175691.png 480w, https://torchtree.com/post/wechat-miniprogram-personal-virtual-payment/virtual-payment-menu_hu17237173939618678046.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Virtual Payment activation entry and eligibility in the MP backend&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;386&#34;
		data-flex-basis=&#34;928px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://torchtree.com/post/wechat-miniprogram-personal-virtual-payment/virtual-payment-profile.png&#34;
	width=&#34;2266&#34;
	height=&#34;942&#34;
	srcset=&#34;https://torchtree.com/post/wechat-miniprogram-personal-virtual-payment/virtual-payment-profile_hu8826867407789598016.png 480w, https://torchtree.com/post/wechat-miniprogram-personal-virtual-payment/virtual-payment-profile_hu15381607418490021577.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Filling in personal profile during activation: identity information, withdrawal account, payment administrator&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;240&#34;
		data-flex-basis=&#34;577px&#34;
	
&gt;&lt;/p&gt;
&lt;h2 id=&#34;limits-fees-and-settlement&#34;&gt;Limits, Fees, and Settlement
&lt;/h2&gt;&lt;p&gt;The monthly payment cap for individual Mini Programs is 100,000 CNY across all terminals.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Terminal&lt;/th&gt;
          &lt;th&gt;Fee&lt;/th&gt;
          &lt;th&gt;Settlement&lt;/th&gt;
          &lt;th&gt;Nature&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Android and others&lt;/td&gt;
          &lt;td&gt;1%&lt;/td&gt;
          &lt;td&gt;T+3&lt;/td&gt;
          &lt;td&gt;Tencent technical service fee&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;iOS&lt;/td&gt;
          &lt;td&gt;12%&lt;/td&gt;
          &lt;td&gt;~45-60 days&lt;/td&gt;
          &lt;td&gt;Apple commission&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The Android fee of 1% is higher than the standard 0.6% WeChat Pay merchant rate. On iOS, payments go through Apple IAP with a 12% Apple commission.&lt;/p&gt;
&lt;p&gt;Refunds differ by terminal. On Android, developers initiate refunds in the MP backend or via the &lt;code&gt;refund_order&lt;/code&gt; API. On iOS, developers cannot initiate refunds; users apply through the App Store and Apple decides. Fees are refunded for refunds within 180 days of payment, not after. Funds can be withdrawn from the MP backend, and Tencent service fee invoices become available after the 5th of the following month.&lt;/p&gt;
&lt;h2 id=&#34;integration-essentials&#34;&gt;Integration Essentials
&lt;/h2&gt;&lt;p&gt;The core integration flow: the server generates a unique &lt;code&gt;outTradeNo&lt;/code&gt; and signed payment parameters, the frontend calls &lt;code&gt;wx.requestVirtualPayment&lt;/code&gt;, and after payment the platform pushes a delivery notification to the developer&amp;rsquo;s server, which verifies and fulfills the order.&lt;/p&gt;
&lt;p&gt;The following are the aspects highlighted in the official documentation:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Never rely on the frontend callback.&lt;/strong&gt; The success callback can be lost (for example, when the user exits abnormally after paying). Fulfillment should be driven by the platform&amp;rsquo;s delivery push, with the &lt;code&gt;query_order&lt;/code&gt; API polled as a fallback (officially suggested every 5 minutes).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Delivery handling must be idempotent.&lt;/strong&gt; The platform retries failed push notifications up to 15 times; deduplicate using the platform order ID &lt;code&gt;wx_order_id&lt;/code&gt; so each order ships once.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Two signatures are required.&lt;/strong&gt; The payment signature &lt;code&gt;paySig&lt;/code&gt; uses the AppKey with HMAC-SHA256; the user-state signature &lt;code&gt;signature&lt;/code&gt; uses the sessionKey. The signed &lt;code&gt;post_body&lt;/code&gt; must match the actual request body byte for byte.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Amounts are in cents (分) throughout.&lt;/strong&gt; &lt;code&gt;outTradeNo&lt;/code&gt; must be 8-32 characters, not start with an underscore, and never be reused.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;iOS requires WeChat client version 8.0.68 or later.&lt;/strong&gt; Check the version before invoking payment and prompt an upgrade when needed.&lt;/p&gt;
&lt;p&gt;Item management happens in the backend: create the item, set the price, and publish it before selling. iOS payments require enabling Apple IAP separately.&lt;/p&gt;
&lt;h2 id=&#34;built-for-ai-agents&#34;&gt;Built for AI Agents
&lt;/h2&gt;&lt;p&gt;The official documentation provides support for AI integration. Two integration paths are available: a ready-made prompt to paste into your coding agent, and an official integration Skill published on Skillhub. A 13-item pre-deployment checklist covers everything from eligibility confirmation to signature verification and idempotency. This aligns with the recent Skills feature in WeChat DevTools: the platform now treats &amp;ldquo;let an AI agent do the integration&amp;rdquo; as a default workflow.&lt;/p&gt;
&lt;h2 id=&#34;faq&#34;&gt;FAQ
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Can I sell physical goods through this channel?&lt;/strong&gt; No. Usage credits, memberships, and content unlocks qualify as virtual goods. Physical goods and telecom-license services do not; the latter cannot even activate the capability.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What if monthly volume exceeds 100,000 CNY?&lt;/strong&gt; The cap is generous for validation-stage products, limited for growth. At a 9.9 CNY price point, the cap corresponds to roughly 10,000 payments per month; beyond that, a registered business entity and standard WeChat Pay become necessary.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How costly is the iOS side?&lt;/strong&gt; The 12% commission and 45-60 day settlement window matter for usage-based AI tools, where inference costs are paid now and revenue arrives more than a month later.&lt;/p&gt;
&lt;h2 id=&#34;sources&#34;&gt;Sources
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/virtual-payment/person.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;WeChat official documentation, &amp;ldquo;Virtual Payment: Individual&amp;rdquo;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://developers.weixin.qq.com/community/develop/doc/000c8c9f2105b8594898f43035ac00&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;WeChat Open Community: Virtual payment policy on Android Mini Programs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.landian.news/archives/101017.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Landian News: Personal Mini Program verification at 30 CNY/year&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        
    </channel>
</rss>
