Skip to content
Rechnungskit

Connect Ghost (automatic membership)

Updated

With the Ghost integration, Rechnungskit automatically makes buyers members of your Ghost publication after payment and gives them the right tier. This works for one-time purchases through the Rechnungskit checkout and for subscriptions, with Ghost(Pro) as well as with a self-hosted installation. In Ghost itself, paid tiers only work through Stripe. With Rechnungskit you sell the same tiers through your checkout, with a German e-invoice, DATEV export and all payment methods your checkout offers. You don't need a Stripe account in Ghost for this.

How it works: the buyer pays in the Rechnungskit checkout, for example by card, SEPA Direct Debit or PayPal. Rechnungskit creates the e-invoice and sets the tier through the Ghost Admin API. In Ghost, the buyer is then a member with that tier and can read the posts it unlocks. When a subscription ends or a purchase is fully refunded, Rechnungskit removes the tier again.

Setup

  1. In Ghost, create a custom integration under Settings, Integrations, named "Rechnungskit", for example. Ghost then shows you the Admin API key in the format id:secret. Copy it; you don't need the Content API key.

    Ghost, custom integration "Rechnungskit": the Admin API key is highlighted, below it is the publication's API URL

  2. In Rechnungskit, open Connections → Integrations and enter the address of your publication and the Admin API key at Ghost. Rechnungskit checks the connection right away and loads your paid tiers. If your Ghost admin runs on its own domain, enter that admin address. The address must be reachable over https; Rechnungskit does not accept local or internal addresses.

    Rechnungskit, Integrations: the Ghost card shows "Connected to: Stadtnotizen Leipzig", the number of mappings and the status Active. Below it is the highlighted note that no Stripe is connected in this Ghost

  3. Map your products to the Ghost tiers. One-time purchase and subscription both work. You decide in Ghost what a tier unlocks (posts, newsletters, sections).

    Rechnungskit, Mappings: the product "Stadtnotizen Unterstützer" is mapped to the Ghost tier "Unterstützer" (supporter), "Stadtnotizen Förderkreis" to the tier "Förderkreis" (patrons). Below each row it says what happens on payment and on refund

  4. In Ghost, set the visibility of every paid post under Post settings, Post access to "Specific tier(s)" and choose the tier. Why this is safer than "Paid-members only" is explained below under Ghost without Stripe.

    Ghost, Post settings: Post access is set to "Specific tier(s)", with the tier "Unterstützer" selected below it

Creating a tier when Ghost doesn't show it

Without Stripe, Ghost hides tier management in its settings. All you see there is the free tier and the button "Connect with Stripe".

Ghost, Settings, Tiers without Stripe: only the tier "Free" is visible, next to it the highlighted button "Connect with Stripe"

There is still a paid tier: Ghost creates one during setup. It carries the name of your publication and appears in the mapping in Rechnungskit. You create further tiers directly in Rechnungskit. Below the mapping, open "Create a new tier in Ghost", enter a name and monthly price and click "Create tier". Rechnungskit creates the tier through the Admin API and preselects it in the mapping right away.

Rechnungskit, "Create a new tier in Ghost": name "Gönner" (patron) and monthly price 25 are filled in, next to them the button "Create tier"

The new tier is hidden in the Ghost Portal, because you sell it through your checkout. The price in Ghost is display only. Buyers pay what the mapped product costs in your checkout.

Payment link in the post

Below a locked post, Ghost shows readers without access its own notice with "Subscribe now". That button leads to the Ghost Portal, which cannot sell anything without Stripe. So put a button block with your product's payment link into the freely readable part of the post, above the divider to the members-only section. You copy the link in Rechnungskit under Products at the product: "Copy link" for a one-time purchase, "Copy subscription link" on the plan for a subscription.

Public view of a locked Ghost post: below the teaser is the button "Become a supporter: €8 a month" with the payment link, followed by Ghost's note that the post is only for the Supporter tier

After paying, the buyer signs in with the login link from Ghost's sign-up email and reads the whole post.

The same post, signed in as a member with the Supporter tier: the full text is readable

What happens automatically

  • When an order for a mapped product is paid, the buyer gets the tier. If the buyer is not a member in Ghost yet, Rechnungskit creates the member (with name, the label "Rechnungskit" and the order number as a note). Ghost then sends its sign-up email with a login link; you can switch this option off on the Integrations page.

    Ghost, member "Jonas Weber": the label "Rechnungskit" and the note "Rechnungskit: Bestellung cWdG7xOpn6" (order) are highlighted

  • In Ghost the tier is set as a complimentary membership (comped) with no expiry date. A one-time purchase therefore gives permanent access; for a subscription, Rechnungskit decides on start and end.

  • For a subscription, the tier starts with the subscription, stays in place during payment reminders and is only removed when the subscription really ends (cancellation at the end of the period, withdrawal, or a failed payment after all reminders). If the buyer pays again afterwards, the tier is set again automatically.

  • A full refund of a one-time purchase removes the tier; the member remains as a free member. A partial refund leaves the tier in place.

  • Rechnungskit only removes the tier it granted itself. If the member has a different tier by then, nothing happens.

  • If you never want access revoked automatically, switch off the option "Automatically revoke access when a subscription ends or a payment is fully refunded" in the integration settings.

  • Test purchases and test subscriptions from test mode assign the tier like real purchases. At go-live, Rechnungskit removes these tiers again, the same way as after a full refund.

Automatic removal on refunds works for all checkout payment providers: Stripe, Mollie, PayPal and Unzer. Rechnungskit recognizes the full refund from the payment provider's notification.

Automatic revocation switched on
What happens to the tier
One-time purchase paid or subscription startedRechnungskit creates new buyers as members, Ghost sends the sign-up email unless you switched it off
Tier set
Subscription payment failedWhile payment reminders are running, Rechnungskit waits
Tier stays
Partial refundOnly part of the amount goes back
Tier stays
Subscription ends or one-time purchase fully refundedThe member remains as a free member
Tier removed
Member has a different tier by thenRechnungskit only removes the tier it granted itself
nothing happens
Subscription payment after removalThe payment comes in later
Tier set again
In Ghost the tier is a complimentary membership (comped) with no expiry date. With automatic revocation switched off, Rechnungskit only sets tiers and never removes one.

Newsletter

By default, new members are not subscribed to your newsletters. Advertising by email generally requires prior express consent (§ 7 Abs. 2 Nr. 2 UWG, the German Act against Unfair Competition), and the purchase alone does not replace it. The exception for existing customers only applies under narrow conditions, among them a notice of the right to object already when the address is collected (§ 7 Abs. 3 UWG). If you obtain consent elsewhere, you can switch on the option "Subscribe new members to the publication's default newsletters" on the Integrations page. Existing members stay unchanged in any case.

Ghost without Stripe

The integration does not need a Stripe connection in Ghost. Whether a reader sees a post is decided by Ghost alone, based on the member's status and tier. New buyers are created with the tier and can read right away.

There is one limitation. Without Stripe, Ghost only changes the tier of existing members, not their status: if a previously free member buys, they stay "free" in Ghost, and if their subscription ends, they stay "comped". With "Specific tier(s)" this doesn't matter, because only the tier counts there. With "Paid-members only" the status decides. So set paid posts to "Specific tier(s)".

Table for Ghost without Stripe. New buyer: with "Specific tier(s)" and with "Paid-members only", they can read. A free member buys: with "Specific tier(s)" they can read, with "Paid-members only" the post stays locked. Subscription ends or purchase refunded: with "Specific tier(s)" the post is locked again, with "Paid-members only" it stays readable

After every change, Rechnungskit checks what Ghost actually applied. If only the status is missing, the action appears in the activity log with a note, and the Integrations page shows a notice about Ghost without Stripe. If the tier is missing, you get an open task.

Rechnungskit, activity log of the Ghost integration: three grants with check marks, one of them "with note" and the text that Ghost still lists the member as "free", plus a revocation after a refund

Limits and errors

  • In Ghost a member can hold only one complimentary tier at a time. If the same member buys a second mapped product, the new tier replaces the old one.
  • If a member already has a paid Stripe subscription in Ghost, Ghost rejects an additional tier. Rechnungskit then creates an open task so you can sort out the case in Ghost.
  • The identity in the third-party system is the buyer's email address. If a member changes their email in Ghost, Rechnungskit no longer finds them when revoking and leaves the tier unchanged.
  • Every grant and revocation appears in the activity log on the Integrations page. If an action fails permanently (for example after you rotated the key in Ghost), you get an open task and can repeat the action with one click once it is fixed. If Ghost is temporarily unreachable, Rechnungskit retries the action automatically for about an hour at growing intervals. Existing access stays untouched, because Rechnungskit never revokes anything because of an error.
Quick check · limits
Where Ghost sets limits
The same member buys a second mapped productGhost allows only one complimentary tier per member
new tier replaces the old one
Member has a paid Stripe subscription in GhostGhost rejects the additional tier
open task
Member changes their email in GhostRechnungskit no longer finds them when revoking
tier stays
Ghost temporarily unreachableRetries for about an hour at growing intervals
automatic
An action fails permanentlyfor example after you rotated the key in Ghost
task, repeat with one click

Where to find it in the app

Recent changes

Rechnungskit is not a tax advisory or law firm. This article explains general principles and does not replace advice from a tax advisor (Steuerberater, § 5 StBerG) or a lawyer (§ 3 RDG). Rechnungskit is built for businesses based in Germany and prepares documents, tax rates and bookings automatically. How your specific case is treated remains your decision, ideally together with your tax advisor or a lawyer.

de en