Creem

Connect Creem as a payment provider in PayGlue.

A
André
Written By AndréLast updated about 6 hours ago

Creem is a merchant of record — it handles tax collection and compliance on your behalf. When a customer completes a checkout or a subscription event happens in Creem, PayGlue automatically creates or updates the matching Ghost member.

Prerequisites

  • A Creem account at creem.io with at least one product created
  • A Ghost blog connected in PayGlue (Connect Ghost)

Steps

1. Create an API key

In your Creem dashboard, go to Developers > API Keys and create a new key.

[Screenshot — Creem Developers → API Keys: Create key button and resulting key field]

Copy the key — it starts with creem_.

2. Add a webhook endpoint

Go to Developers > Webhooks, click Add endpoint, and paste the webhook URL from your PayGlue Creem connection page:

https://api.payglue.io/webhooks/creem?tenant=YOUR-SLUG

Replace YOUR-SLUG with your PayGlue organization slug.

Select the checkout and subscription events (checkout.completed, subscription.paid, subscription.active, subscription.canceled, subscription.expired).

[Screenshot — Creem Developers → Webhooks: Add endpoint form with URL and events selected]

3. Copy the signing secret

After saving the endpoint, Creem shows a signing secret. Copy it — you will need it in the next step.

[Screenshot — Creem: saved webhook endpoint with signing secret field visible]

4. Enter credentials in PayGlue

In your PayGlue dashboard, go to Connection > Creem and fill in:

  • API Key — from Step 1
  • Webhook Secret — the signing secret from Step 3

There is no sandbox setting. PayGlue recognises a test-mode key on its own and talks to test-api.creem.io for it, and to api.creem.io for a live key.

Creem connection page in PayGlue with API Key and Webhook Secret fields, webhook key blacked out

Click Save credentials.

5. Run a health check

Click Run health check to confirm PayGlue can reach your Creem account. A green "Connection established" banner means everything is working.

6. Create a mapping

Go to Buy Button, Paywall, or Pricing Table in your PayGlue dashboard and select your Creem product from the dropdown. Choose which Ghost newsletter to subscribe the buyer to and which welcome email to send, then save.

7. Test your setup

Make a test purchase or subscription on one of your Creem products. Then open Analytics > Webhook Events in your PayGlue dashboard — the event should appear with status Processed and the buyer's email should appear as a new member in Ghost Admin.

Supported events

Creem event

PayGlue action

checkout.completed

Create Ghost member (one-time purchase)

subscription.paid

Confirm active Ghost member (renewal)

subscription.active

Grant Ghost membership

subscription.canceled

Revoke Ghost membership

subscription.expired

Revoke Ghost membership

Sandbox mode

Use a test-mode API key while testing. PayGlue detects it and talks to test-api.creem.io instead of the live API. Test purchases arrive at the same webhook URL and are marked with the payglue-test label in Ghost. Remove test members from Ghost Admin before switching to live credentials.

Troubleshooting

Health check fails after saving credentials

Confirm the API key was copied in full from Developers > API Keys and that it has not been revoked in Creem. PayGlue tries the key against Creem's test and live API, so either kind of key works.

Webhook shows as Failed in Analytics

Creem signs every webhook delivery with the creem-signature header — unlike some other providers, PayGlue treats a missing or invalid signature as a hard failure. Check that the Webhook Secret in PayGlue matches the signing secret shown on the endpoint in Creem exactly.

Ghost member is not created after purchase

Confirm there is an active mapping for the Creem product in the Buy Button, Paywall, or Pricing Table editor. PayGlue receives the event but takes no action without a mapping.


Webhook signature verification

Creem signs every webhook delivery with an HMAC-SHA256 signature over the raw request body, sent in the creem-signature header. PayGlue verifies this signature using your Webhook Secret and rejects any delivery with a missing or mismatched signature.

Was this helpful?

Your feedback shapes what we write next.