Skip to main content

How to set up Stripe subscriptions

Learn how to connect Stripe subscriptions to Teach ’n Go for automated monthly payments and automatic receipt generation.

Written by Abdullah Al-Hussein

Teach ’n Go allows you to integrate Stripe subscriptions to automate recurring monthly payments. Once set up correctly, payments are synced automatically, fees are marked as paid, and receipts are generated without manual work.

This setup requires basic Stripe knowledge.


Step 1: Add your Stripe API keys

  1. Log in to your Stripe account.

  2. Go to Developers > API keys.

  3. Copy your Publishable key and Secret key.

Next:

  1. Log in to Teach ’n Go.

  2. Go to School settings > Integrations>Stripe.

  3. Paste your Stripe API keys.

  4. Click Save.


Step 2: Create your Developer API key in Teach ’n Go

  1. Go to School settings > Developers.

  2. Create a Developer API key (if not already created).

  3. Copy this key — you will need it for the webhook setup.


Step 3: Enable Stripe subscriptions and set up a webhook

Stripe must notify Teach ’n Go when subscription payments succeed.

Enable subscriptions

  1. Go to School settings > Stripe subscriptions.

  2. Enable Stripe subscriptions.

Create webhook in Stripe

  1. Log in to Stripe.

  2. Go to Developers > Webhooks.

  3. Click Add endpoint (in newer Stripe dashboards this is called Add destination).

  4. Enter this URL:

https://app.teachngo.com/TngSubscriptions/recurringSubscriptionEvent/your_developer_API_key

(Replace your_developer_API_key with your actual key.)

  1. Under events, select:

    invoice.payment_succeeded

  2. After creating the webhook, copy the Signing secret key.

  3. Paste this signing secret into Teach ’n Go.

  4. Click Save.

You only need one of these webhooks for your whole school. The signing secret is not per student and does not change per payment.

Your subscription sync is now connected.


Step 4: Create products and subscriptions in Stripe

Each recurring fee must match a Stripe product.

Create a product

  1. In Stripe, create a Product.

  2. Set the monthly price to the amount that will actually be charged. For a whole class this is the class fee. For a student who pays a different amount, this is that student’s fee.

You must create separate products for different prices (e.g. €50, €70, €100).

After creating the product:

  • Copy the Price ID.


Create a subscription

  1. Create a Subscription for the customer in Stripe.

  2. Charge immediately or send the invoice.

  3. Copy the Subscription ID.

⚠️ Important:

The Stripe subscription period must match the class fee period in Teach ’n Go.


Step 5: Link the subscription to a class in Teach ’n Go

Enable Stripe subscription on the class

  1. Create or edit a class in Classes.

  2. Enable Stripe subscription for the class fee.

  3. Enter the Price ID from Stripe.

  4. Save.

The Price ID on the class does not charge anybody. It is the standard price for the class, and it is used as a check when a payment arrives from Stripe.


Add the subscription ID to the student

  1. Open the relevant class.

  2. Go to the Fees tab.

  3. Edit the student’s fee.

  4. Enter the Subscription ID from Stripe.

  5. Save.

Every student needs their own Subscription ID entered against their own fee. The subscription is what tells us who paid.


Students who pay a different amount

Students in the same class do not all have to be on the same Stripe price.

If a student pays a different amount:

  1. In Stripe, create a price for the amount that student actually pays.

  2. Create their subscription on that price.

  3. In Teach ’n Go, open the class, go to the Fees tab, edit that student’s fee, set the fee amount to the same figure, and paste in their Subscription ID.

When you save, you will see a note saying we cannot confirm the subscription belongs to this class. This is expected and is not an error. The fee saves normally and payments are still recorded automatically. The note appears only for students who are not on the standard class price, so that a subscription pasted by mistake gets noticed.

⚠️ Do not use a student discount in Teach ’n Go to reduce what a student pays by subscription. A discount on the student profile changes what Teach ’n Go shows, but it does not change what Stripe charges, so the parent would still be charged the full price. To charge a lower amount, either create a Stripe price for that amount, or apply a coupon to that subscription in Stripe.


How it works each month

Once everything is connected:

  1. Stripe processes the monthly subscription payment.

  2. Stripe sends a webhook notification to Teach ’n Go.

  3. Teach ’n Go:

    • Marks the monthly fee as paid

    • Generates a receipt automatically

    • Updates the student’s account

No manual payment recording is required.


Troubleshooting

  • Payments not syncing? Check webhook URL and signing secret.

  • Fee not marked paid? Confirm the correct Subscription ID is entered on that student’s fee.

  • Parent charged the wrong amount? Stripe charges whatever the Stripe price says. Check the price on that student’s subscription in Stripe. Changing the fee in Teach ’n Go does not change what Stripe charges.

  • Fee amount does not match what Stripe charged? Set the fee in Teach ’n Go to the same amount as the Stripe price. Teach ’n Go warns you when the two disagree.

  • Note saying we cannot confirm the subscription belongs to this class? That is expected for a student on their own price. The fee still saves and payments are still recorded.


Stripe subscriptions automate recurring payments, reduce admin time, and ensure accurate fee tracking inside Teach ’n Go.

Did this answer your question?