Stripe Billing Integration

Stripe Billing Integration and Configuration

Stripe is a subscription billing and revenue management platform built for businesses offering recurring, SaaS-based, or usage-based pricing models.

GetVoiceBot integrates with Stripe to enable your Agent product plans to work seamlessly with Stripe's subscription system. This allows you to create and manage monthly subscriptions based on your GetVoiceBot plans.

Preparing for configuration

This integration is available to eligible reseller and partner accounts that bill downstream customers. Before starting, confirm the GetVoiceBot account that will own the billing connection and note its account ID.

Keep these values available for the final GetVoiceBot connection step:

You can connect the provider through the Billing Provider API guide. If your account does not have access to billing-provider configuration, contact GetVoiceBot.

What the integration covers

New subscriptions

Through your GetVoiceBot reseller portal, customers can subscribe to your Agent product plans and be redirected to Stripe's secure hosted checkout. This collects the customer's payment information and creates a new subscription under the Stripe customer profile.

If the payment succeeds, Stripe will inform the GetVoiceBot platform the account is paid and apply the requested plan.

If the Stripe customer already has active subscriptions for other products, GetVoiceBot creates a separate subscription so those subscriptions remain unchanged.

Cancelling subscriptions

Subscriptions can be cancelled by a few different methods:

Subscription Renewals

Stripe manages subscription renewals. By default, GetVoiceBot subscriptions renew on the anniversary day of their creation. When a subscription renews, Stripe tells GetVoiceBot that a new billing cycle has begun so GetVoiceBot can display the current and previous billing-period ranges.

Upgrading or Downgrading Plans

When a customer wants to upgrade or downgrade their Agent plan, GetVoiceBot automatically switches the plan in the existing subscription. On upgrades, Stripe will charge the prorated amount of the new plan immediately to bring the balance where it should be. On downgrades, Stripe may be configured to credit customer account the amount instead of refunding. This would be applied on the next billing cycle.

Adding usage overages to pending invoices

As a customer's usage progresses through the month, when the next billing cycle happens, we will grab the usage from the previous billing period (previous month) and determine if any usage overages are due. Overages are any product items you have configured for their plan and they have consumed an amount that exceeds any included amount. These charges are then pushed to Stripe's pending invoice so payment can be collected.

Configure Stripe and Connect It to GetVoiceBot

This section covers configuring Stripe to prepare for the integration with GetVoiceBot. We'll be covering:

Creating the Product Plans and Pricing

After creating your Agent product plans in GetVoiceBot, create the corresponding products and prices in Stripe. Record each Stripe product ID and price ID so the matching GetVoiceBot plan can be connected to it. \
\
In your Stripe account:

  1. Navigate to **Product Catalog **and click "+Create product " button

In the Add a product screen:

\
3. This will bring you to the Product Catalog screen. Grab the product Id and the Price Id for the plan. Click on the product you just created.

Enabling Hosted Checkout

GetVoiceBot uses Stripe's hosted checkout when customers choose an initial plan in the Agent platform. Hosted Checkout is enabled by default. But you may want to customize the Checkout screen to give your branding (logo, etc).

  1. Open settings, then select Business → Branding → Checkout & Payment Links. GetVoiceBot uses embedded checkout by default, but you should review both the hosted and embedded branding.

Enabling Customer Portal (Payment Method Management and Invoices)

\
GetVoiceBot uses Stripe's customer portal feature to allow user's to securely manage their payment methods and view invoices. This is not enabled by default.

  1. To enable the Customer Portal feature, navigate to Settings (Gear Icon) -> Billing -> Customer portal tab.
  2. Under Invoices, toggle Invoice history to enabled
  3. Under Customer information, enable the attributes customers should be able to change.
  4. Under Payment methods, enable Payment methods
  5. Under Cancellations, it's recommended to toggle this to disabled and allow them to only cancel through your GetVoiceBot reseller portal.
  6. Under Subscriptions, it's recommended to disable these settings if possible to avoid allowing them to switch plans/quantity to a product not configured on GetVoiceBot.
  7. Under Business Information, these items are optional. GetVoiceBot's platform will handle all the Redirect link when it creates portal sessions.
  8. Click Save Changes.

Configuring Webhooks to GetVoiceBot platform

Lastly, let's configure the communication link between Stripe and GetVoiceBot. This will allow GetVoiceBot to receive the events from Stripe when payments or subscription events occur.

  1. Click on the **Developers **button on the bottom left of the portal.
  2. Click on the Webhooks tab then click + Add endpoint button
  3. Endpoint URL for a reseller: https://api.getvoicebot.com/stripe/events?resellerId=YOUR_RESELLER_ACCOUNT_ID\
    Endpoint URL for a partner: https://api.getvoicebot.com/stripe/events?partnerId=YOUR_PARTNER_ACCOUNT_ID
  4. Set Listen to to the Events on your account
  5. Set Version to 2020-08-27
  6. Click the + Select events button. GetVoiceBot requires the following events:

checkout.session.completed

charge.succeeded

charge.failed

customer.updated

customer.subscription.deleted

customer.subscription.updated

customer.subscription.created

invoice.payment_failed

invoice.overdue

invoice.paid

invoice.marked_uncollectible

invoice.created\
(12 events total)
7. Click Add endpoint button to finish the configuration
8. After the endpoint is added, obtain the webhook signing secret by clicking on the new endpoint and selecting Reveal under Signing secret. Use it in the GetVoiceBot connection step.

Creating API Keys

Lastly, we need to configure the API keys (API Key and PublishableKey) so that GetVoiceBot can connect to your Stripe instance.

  1. Navigate to Developers in the bottom right of the portal
  2. Click API Keys tab
  3. By default, Stripe creates a Publishable key and a Secret key. Use both keys, together with the webhook signing secret, when you connect Stripe to GetVoiceBot.

Configure Failed Payment Settings

Stripe handles collection after an invoice payment fails. You can configure how long an account remains past due and how often Stripe retries the payment. \
\
This is also where you decide what happens after all retries are exhausted. For example, Stripe can cancel the subscription, which tells GetVoiceBot that the account is unpaid and can remove access to paid resources. Choose settings that match your collection and customer-support policies.\
\
To configure the Failed Payment settings, go to Settings (Gear Icon) -> Billing -> Subscription and emails tab.