Stripe

Learn about Stigg's native integration with Stripe Billing

Overview

Stripe is the fastest way for your business to bill customers with subscriptions or invoices, and accept recurring payments globally.

Stigg's native integration with Stripe enables:

  1. Automatic propagation of changes from the Stigg platform to Stripe, including: changes to the product catalog (product, plans and add-ons, coupons), customers, subscriptions and their usage.
  2. Automatic propagation of changes from Stripe to Stigg, including: subscription cancellations in Stigg when they're cancelled in Stripe.
  3. Ability to leverage Stripe's hosted checkout page for customer checkout process, without needing to perform any additional integration with Stripe.
  4. Ability to leverage Stripe's hosted billing portal to allow customers to update their billing details and payment method, as well as view past invoices, without needing to perform any additional integration with Stripe.

Entity mapping

Stigg entities are mapped to Stripe entities as follows:

Stigg EntityStripe EntityStripe Entity Name FormatNotes
FeatureN/A
ProductN/A
PlanProduct Plan
for example: Acme Basic Plan
Every published plan is mapped to a dedicated Stripe product. When a plan has multiple charges defined, each plan charge is mapped to a dedicated Stripe product. Plan prices are versioned - when the price changes, a new price is created and the previous price is archived.
Add-onProduct Add-on
for example: Acme 10 Seats Add-on
Every published add-on is mapped to a dedicated Stripe product. Add-on prices are versioned - when the price changes, a new price is created and the previous price is archived.
CouponCouponWhen a coupon is archived in Stigg, it's deleted in Stripe; therefore, the coupon cannot be applied to new customers. Existing customers that the coupon is applied to are not affected.
CustomerCustomerBy default, the customer name and email in Stigg are synced to Stripe - the name is used as the customer name and description, and the email as the billing email address. It's also possible to report a different customer name to Stripe, which is useful for generating invoices with the full company name (i.e. customer name in Stigg is "Acme", and the customer name in Stripe will be "Acme Ltd.").
SubscriptionSubscriptionThe subscription will include line items for each of the charges that are defined in the plan's pricing.
When provisioning subscriptions with add-ons, each add-on will also be reflected as a separate line item.
Due to a limitation in Stripe, each customer can have at most 500 active subscriptions.

Entities that are not synced to Stripe

EntityNot synced to Stripe when...
CustomerCustomer doesn't have any subscription
Customer only has subscriptions to free plans
Customer only has trial subscriptions
Customer only has subscriptions to plans with a custom price
Customer's billing information is not sent to Stigg
Customer doesn't have a payment method define in the billing solution
Syncing of customers is disabled in the environment
SubscriptionSubscription is for a free plan
Subscription is for a trial plan
Subscription is for a plan with a custom price
Syncing of subscriptions is disabled in the environment

Syncing customer usage to Stripe

When customers are subscribed to plans with pay-as-you-go usage-based charges, Stigg automatically syncs their data (usage and total amount) to Stripe upon invoice generation.

🚧

Stigg requires at least a 1 hour invoice finalization grace period to be configured in Stripe, which is also Stripe's default configuration.


Setting up the integration

In the Stigg app, under the Settings > Integrations > Apps section, select the Stripe connector.

If you're setting up the integration for development or testing purposes, toggle "Use Stripe test account" on.

Click "Connect with Stripe".

You'll be redirected to Stripe in order to complete the integration process.

In the opened screen click "Connect", and follow the instructions.

Once all of the integration steps on the Stripe side are completed, you'll be redirected back to Stigg.

πŸ“˜

Make sure to use the correct Stripe account when setting up the integration


Indication for synced entities

Entities that are synced from Stigg to Stripe have a clickable "billing ID" property with a Stripe logo next to it and indication of their sync status (successful, failed, will not be synced).


Accessing Stripe entities from Stigg

In the Stigg app, clicking on the link of the "billing ID" property will open the relevant entity in Stripe.


Accessing Stigg entities from Stripe

In Stripe, under the "Metadata" section of the relevant entity, click on the link that appears under the "stiggEntityUrl" field.


Integration with Stripe's Billing Portal

When Stigg is integrated with Stripe and using Stigg's Customer Portal widget, customers can update their billing information and view previous invoices directly from Stripe's Billing Portal (when it's enabled).

To ensure that the functionality of Stigg's Customer Portal doesn't collide with that of Stripe's Billing Portal, it's recommended to configure Stripe's Billing Portal as follows:

  1. Launch customer portal with a link - enabled
  2. Invoices
    1. Invoice history - enabled
  3. Customer information - enabled
    1. Name - unchecked
    2. Email address - unchecked
    3. Billing address - checked
    4. Phone number - optional
    5. Tax ID - optional
  4. Payment methods
    1. Payment method - enabled
  5. Cancelations
    1. Cancel subscriptions - disabled
    2. Pause subscriptions - disabled
  6. Subscriptions
    1. Switch plans - disabled
    2. Update quantities - disabled

Integration with Stripe Tax

Stigg can be integrated with Stripe Tax to automatically calculate customer tax rates during checkout sessions, provisioning and updating of subscriptions.

Before the integration can be enabled, please make sure to set up Stripe Tax.

To enable the integration, please contact Stigg Support.


Removing the integration

To remove the integration, click on the dotted menu icon and select the "Remove" action.

Confirm the action by clicking on the "Remove" button in the opened modal.