Connect Stripe with a read-only key and your payments match back to the posts that sent the buyer. Revenue totals are on Creator; revenue next to each post is on Pro.
Revenue totals on Creator, $24/mo. Revenue next to the post on Pro, $49/mo. Both start with a 7-day free trial.
If Stripe is where your revenue lands, the question "does social sell anything" is answerable, most tools just never connect the two ends. planpo.st schedules the posts and listens to your Stripe events, so the connection is automatic.
Setup is a read-only restricted API key, not a full key and not an OAuth grant that can touch your account. planpo.st validates it, registers a webhook, and payments start matching against your tracked link clicks.
Three steps, and no code on your side.
Create a restricted key in Stripe
Read-only, from your Stripe dashboard. The connect form deep-links the exact permissions, so it is two minutes, and planpo.st never sees a key that can move money.
Paste it into planpo.st
The key is validated against your Stripe account and stored encrypted. A revenue webhook is registered automatically, pointing at our backend.
Post with tracked links
From then on it is just posting. Payments arrive as events and match back to the posts that drove them.
Connect Stripe and see your revenue totals over time, with the transactions behind them.
Tracked links in your posts, and revenue next to the post that earned it, matched by the steps below.
Both plans start with a 7-day free trial. The free plan schedules posts but does not read revenue.
A Stripe payment matches to a tracked click directly when the trail is intact, or through a 30-day last-click window when it is not. Payments that cannot be tied to a post stay unattributed rather than being guessed onto your calendar, so the per-post numbers you see are ones you can repeat in front of an accountant.
A post publishes with a tracked link
The scheduled post goes out carrying a redirect link. Readers see a normal URL; the redirect records which post, platform and campaign each click came from before passing the visitor through.
Stripe fires a payment event
When someone pays, Stripe sends the event to the webhook planpo.st registered at connect time. The raw event is verified and parsed on arrival.
The matcher looks for the click
Direct click match first (high confidence). No direct trail? The 30-day window looks for the last recorded click from the same visitor (medium confidence). Still nothing? The payment is logged unattributed, deliberately.
The post gets its number
On Pro, attributed revenue lands next to the exact post in the dashboard, and any agent connected over MCP can read the same figure.
Every successful charge counts: checkout payments, invoices paid, one-off sales. If Stripe processed it, the matcher sees it.
A new subscription's first payment attributes to the post that started the customer. Ongoing subscription revenue shows in the revenue view alongside per-post attribution, read from Stripe with the Subscriptions permission.
Refunds net out of your totals rather than inflating them, and refunded charges are flagged in the transactions view, so the number you report is the number you kept.
Charges keep their native currency in the transactions view, so a EUR payment does not masquerade as USD.
Every launch post and changelog post on LinkedIn, Threads or Facebook carries a tracked link (X takes no links); subscriptions that start there attribute back. The eternal 'does posting convert' argument gets a column instead of a feeling.
Stripe checkout links in posts attribute sales per post, which reveals which content angle sells the course versus which merely grows the audience.
Each teaser post carries a tracked link to the signup page, and paid subscriptions that start there attribute back. You learn which topics recruit paying readers, not just opens.
The honest alternative is the UTM spreadsheet: tag every link by hand, wait for GA4 to sample it into a report, then cross-reference conversions against your Stripe dashboard by date and squint. It works, in the way that manual bookkeeping works, and it dies the week you get busy, which is always the week worth measuring.
The other failure of the manual path is silence about confidence: a spreadsheet cell shows a number without saying whether it came from a solid trail or a hopeful guess. planpo.st labels every match direct or window, and refuses to attribute what it cannot support, which is precisely what makes the numbers usable in front of a client or a co-founder.
Where manual still wins
You schedule a LinkedIn post about your annual plan with a tracked link. Tuesday it publishes, Wednesday someone clicks through and starts a subscription.
The Stripe payment event arrives at the webhook, matches the Wednesday click, and on Pro the subscription amount appears next to that LinkedIn post in your revenue view. Your agent can read the same number over MCP.
Other payment sources
The rest of planpo.st
Free plan, no card: 2 accounts, 30 posts a month, your agent included. X needs a paid plan.