> ## Documentation Index
> Fetch the complete documentation index at: https://docs.revtain.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Zero-Code Connectors

> Native integrations for Chargebee, Recurly, Stripe Billing, Braintree, Zuora, and Shopify (ReCharge). No code required.

For Chargebee, Recurly, Stripe Billing, Braintree Subscriptions, Zuora, and Shopify subscriptions via ReCharge, Revtain provides direct connectors that require **no code on your side**. Paste a single webhook URL into your billing platform settings — Revtain handles everything.

## How Connectors Work

Going live takes two phases. Revtain runs the first. You run the second — and it takes about five minutes.

### Phase 1 — Revtain provisions your account

Share your billing platform and payment gateway details with the Revtain team. Revtain provisions your account, generates your credentials, and builds your webhook URL — typically the same business day. This step is hands-off: no forms to fill in, no configuration to write. You receive your API key, your webhook signing secret, and a webhook URL with your client ID embedded.

### Phase 2 — Paste one URL

<Steps>
  <Step title="Open your billing platform's webhook settings">
    The webhooks (or notifications) section of your Chargebee, Recurly, Stripe, Braintree, Zuora, or ReCharge dashboard.
  </Step>

  <Step title="Paste your Revtain webhook URL">
    Add the URL from your credentials and select the relevant payment failure event (e.g., `payment_failed`).
  </Step>

  <Step title="Done — Revtain handles the rest">
    On every failed payment, Revtain extracts the gateway token, runs the recovery engine, and marks the invoice paid on success.
  </Step>
</Steps>

<Check>
  Your only task is pasting one URL. No webhook handler to write, no API calls to make, no code to deploy.
</Check>

## Supported Connectors

| Platform                    | Webhook URL Pattern                                                          | Event Handled                                                                                       |
| --------------------------- | ---------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
| **Chargebee**               | `https://api.revtain.com/api/connectors/chargebee/webhook/{clientId}`        | `payment_failed`, `payment_source_updated`                                                          |
| **Recurly**                 | `https://api.revtain.com/api/connectors/recurly/webhook/{clientId}`          | `failed_payment`, `billing_info_updated_notification`                                               |
| **Stripe Billing**          | `https://api.revtain.com/api/connectors/stripe-billing/webhook/{clientId}`   | `invoice.payment_failed`, `payment_method.attached`, `payment_intent.succeeded`, `invoice.upcoming` |
| **Braintree Subscriptions** | `https://api.revtain.com/api/connectors/braintree/webhook/{clientId}`        | `subscription_went_past_due`                                                                        |
| **Zuora**                   | `https://api.revtain.com/api/connectors/zuora/webhook/{clientId}`            | `Payment.Failure`                                                                                   |
| **Shopify (ReCharge)**      | `https://api.revtain.com/api/connectors/shopify-recharge/webhook/{clientId}` | `charge/failed`, `subscription/payment_failure_count_exceeded`                                      |

## Setup Instructions

<AccordionGroup>
  <Accordion title="Chargebee" icon="credit-card">
    1. During Revtain onboarding, select **Chargebee** as your billing platform
    2. Enter your Chargebee API key and site name (the `xxx` in `xxx.chargebee.com`)
    3. In Chargebee, go to **Settings → Configure Chargebee → Webhooks**
    4. Add a new webhook with the URL shown in your credentials modal (includes your client ID)
    5. Select the `payment_failed` event

    **What Revtain does automatically:**

    * Looks up the customer's Stripe payment token from Chargebee's payment sources
    * Runs the recovery engine with the decline code from the failed transaction
    * On success, records the payment on the Chargebee invoice
  </Accordion>

  <Accordion title="Recurly" icon="credit-card">
    1. During Revtain onboarding, select **Recurly** as your billing platform
    2. Enter your Recurly API key and subdomain
    3. In Recurly, go to **Integrations → Webhooks**
    4. Add a new webhook endpoint using the URL from your credentials modal
    5. Select the `failed_payment` event

    **What Revtain does automatically:**

    * Retrieves the gateway token from the customer's billing info via Recurly's API
    * Runs the recovery engine
    * On success, records an external payment on the Recurly account
  </Accordion>

  <Accordion title="Stripe Billing" icon="stripe">
    1. During Revtain onboarding, select **Stripe Billing** as your billing platform
    2. Your Stripe secret key is already provided as your gateway key — no additional key needed
    3. In Stripe, go to **Developers → Webhooks**
    4. Add a new endpoint using the URL from your credentials modal
    5. Select these events: `invoice.payment_failed`, `payment_method.attached`, `payment_intent.succeeded`, and `invoice.upcoming` (the last one powers early expiring-card warnings)

    **What Revtain does automatically:**

    * Looks up the customer's default payment method via the Stripe API
    * Runs the recovery engine with the invoice decline code
    * On success, pays the Stripe invoice via the Stripe API
  </Accordion>

  <Accordion title="Braintree Subscriptions" icon="credit-card">
    1. During Revtain onboarding, select **Braintree** as your billing platform
    2. Your Braintree credentials are already provided as your gateway key — no additional key needed
    3. In Braintree, go to **Settings → Webhooks**
    4. Add a new webhook destination using the URL from your credentials modal
    5. Select the `Subscription Went Past Due` notification

    **What Revtain does automatically:**

    * Extracts the payment method token directly from the subscription data
    * Runs the recovery engine with the processor response code
    * On success, Braintree detects the payment and updates the subscription status
  </Accordion>

  <Accordion title="Zuora" icon="credit-card">
    1. During Revtain onboarding, select **Zuora** as your billing platform
    2. Enter your Zuora REST API key and your Zuora REST domain (for example `rest.zuora.com`, `rest.eu.zuora.com`, or your sandbox domain)
    3. In Zuora, go to **Settings → Notifications → Add Notification → Callout**
    4. Select the **Payment.Failure** event
    5. Set the HTTP method to **POST**, content type **application/json**, and the URL to the one in your credentials modal

    **What Revtain does automatically:**

    * Extracts the payment method ID from the failure event
    * Looks up the gateway token from the Zuora payment method via the Zuora API
    * Runs the recovery engine with the gateway response code
    * On success, records the payment on the Zuora invoice
  </Accordion>

  <Accordion title="Shopify (ReCharge)" icon="shop">
    For Shopify stores running subscriptions through ReCharge.

    1. During Revtain onboarding, select **Shopify (ReCharge)** as your billing platform
    2. Enter your ReCharge API access token and webhook signing secret
    3. In ReCharge, go to **Settings → Notifications → Webhooks**
    4. Add a new webhook endpoint using the URL from your credentials modal
    5. Select the `charge/failed` topic (and optionally `subscription/payment_failure_count_exceeded`)

    **What Revtain does automatically:**

    * Verifies the `X-Recharge-Hmac-Sha256` signature on every webhook
    * Extracts the customer's Stripe payment method from the charge payload
    * Runs the recovery engine with the failed charge amount and currency
    * On success, captures the charge in ReCharge so the subscription stays active
  </Accordion>
</AccordionGroup>

## Multi-Gateway Recovery for Connector Clients

If you have more than one gateway configured in your billing platform, Revtain's connectors put that to work. Every recovery that doesn't succeed through your primary processing path gets a second attempt through your platform's own routing — using whatever alternative gateways or merchant accounts you have wired in.

For multi-gateway clients on Chargebee and Recurly, this means a decline that can't be resolved on the primary processing path gets one more attempt through a secondary path before the recovery is marked as failed. No additional setup on your side — if a second gateway is configured in your billing platform, the escalation runs automatically as part of every connector-handled recovery.

<Tip>
  This is a connector-only benefit. API-integrated clients control their own escalation path — Revtain returns the result of the retry and you decide whether to route the failed invoice elsewhere.
</Tip>

## Connector vs. API Integration

|                            | Connector (Recommended)                                                  | API Integration                  |
| -------------------------- | ------------------------------------------------------------------------ | -------------------------------- |
| **Code required**          | None — paste one URL                                                     | Webhook handler + API calls      |
| **Setup time**             | 5 minutes                                                                | 30-60 minutes                    |
| **Invoice reconciliation** | Automatic                                                                | Manual (in your webhook handler) |
| **Available for**          | Chargebee, Recurly, Stripe Billing, Braintree, Zuora, Shopify (ReCharge) | Any billing system               |
| **Customisation**          | Standard recovery flow                                                   | Full control                     |

<Note>
  **Using a different billing platform?** Use the [API integration](/guides/api-integration) — Revtain works with any system that can make HTTP calls.
</Note>

## A Webhook Appears in Your Stripe Dashboard — That's Revtain

For clients whose primary gateway is Stripe, Revtain automatically registers one webhook endpoint on your Stripe account during onboarding, using the key you provided. You'll see it in **Developers → Webhooks** with the description **"Revtain card-lifecycle listener (auto-registered)"**.

**What it does:** it tells Revtain the moment a stored card changes state — refreshed by the card networks, updated, removed, or approaching expiry (`payment_method.automatically_updated`, `payment_method.updated`, `payment_method.detached`, `customer.source.expiring`). Revtain uses these signals to retry a failed payment the moment the card becomes chargeable again, and to stop retrying cards that can never succeed — protecting your recovery rate and your merchant account at the same time.

**What to do:** nothing. It's read-only signalling, every delivery is signature-verified, and it's part of your integration. Deleting it degrades recovery performance.
