When a recurring payment succeeds in your billing system, you need to notify Churn Buster so that a recovery campaign can be ended, if one is active.

  1. Add a trigger in your in-house logic, or subscribe to a webhook from your payment processor or subscription management tool, when recurring payments succeed (don't make this API request for one-off payments, Churn Buster doesn't need to be notified of those).
  2. When that trigger occurs or the webhook is received, submit the following API request to Churn Buster.
  3. You can preview your sandbox API requests in the debugger here if using your test-mode API key, or here if using your live-mode API key.
curl -X "POST" "https://api.churnbuster.io/v1/successful_payments" \
     -H "Content-Type: application/json" \
     -u "ACCOUNT_ID:API_KEY" \
     -d $'{
  "payment": {
    "source": "in_house",
    "source_id": "ch_abc123",
    "amount_in_cents": 2900,
    "currency": "USD"
  "customer": {
    "source": "in_house",
    "source_id": "cus_abc123",
    "email": "[email protected]",
    "properties": {
      "first_name": "Sarah",      
      "last_name": "Doe"

A note about source  and source_id :
In most cases, you should use IDs from your payment processor. If you're using Stripe, source  would be "stripe"  and source_id  would be "cus_sampleID" .

If that's not possible, you can use IDs from your in-house billing system. source  would be "in_house"  and source_id  would be "yourInternalId" .

IDs should be unique to customers, subscriptions, payment methods, and payments.

Did this answer your question?