Search documentation...

K
ChangelogBook a demoSign up

Stripe

Enrich Stripe with data from your warehouse to create, manage, and drive revenue analysis from your customers, products, prices, subscriptions, and invoices resources.

Overview

By combining customer data with subscription data from Stripe, you can derive insights into the most common user actions that turn free accounts into paid ones. Additionally, you can figure out which accounts are at risk of churning when you see little to no activity in paid accounts, allowing you to proactively reach out to at-risk customers before the churn.

Check out our playbook and blog post to learn how to automate usage-based billing to streamline your finance operations.

Supported syncing

Object TypeDescriptionSupported Sync ModesAPI Reference
CustomersThis object represents a customer of your business. It lets you create recurring charges and track payments that belong to the same customer.Upsert, Update, InsertCustomer endpoints
ProductsProducts describe the specific goods or services you offer to your customers.Upsert, Update, InsertProduct endpoints
PricesPrices define the unit cost, currency, and (optional) billing cycle for both recurring and one-time purchases of products.Upsert, Update, InsertPrice endpoints
SubscriptionsSubscriptions allow you to charge a customer on a recurring basis.Upsert, Update, InsertSubscription endpoints
InvoicesInvoices are statements of amounts owed by a customer, and are either generated one-off, or generated periodically from a subscription.Upsert, Update, InsertInvoice endpoints
QuotesA Quote is a way to model prices that you'd like to provide to a customer. Once accepted, it will automatically create an invoice, subscription or subscription schedule.Upsert, Update, InsertQuote endpoints
Invoice itemsInvoice Items represent the component lines of an invoice.Upsert, Update, InsertInvoice item endpoints

For more information about sync modes, refer to the sync modes docs.

Connect to Stripe

Go to the Destinations overview page and click the Add destination button. Select Stripe and click Continue. You can then authenticate Hightouch to Stripe with an API key.

You can retrieve your an API key by following these steps:

  1. Log in to Stripe.
  2. Visit your Account Dashboard Homepage.
  3. Copy your Secret key.

API key on the Stripe dashboard

If you don't see your Secret key on your dashboard homepage, you can also access it under Developers.

API key on the Stripe dashboard

If you haven't created an API key yet, Stripe requires you to enter your business details on the Stripe onboarding page.

Sync configuration

Once you've set up your Stripe destination and have a model to pull data from, you can set up your sync configuration to begin syncing data. Go to the Syncs overview page and click the Add sync button to begin. Then, select the relevant model and the Stripe destination you want to sync to.

Your sync configuration options depend on the Stripe object you are syncing to:

Customers

Record matching

In Upsert mode, you can match customer records from your source to your Stripe workspace on the Customer Email field.

In Update mode, you can match customer records from your source to your Stripe workspace on either Customer ID or Customer Email.

Field mapping

You can sync columns from your source to Stripe default and custom fields. If you send data for a custom field that doesn't exist, Hightouch adds the field and automatically detects its type.

Refer to the inline mapping docs to see an example of how to map nested objects like a customer's shipping address.

Delete behavior

The delete behavior defines how the sync behaves when the Hightouch sync engine recognizes that a record has been removed from your source. The Stripe integration only supports deletions in Upsert mode.

BehaviorDescription
Do nothingKeep the customer in Stripe
Delete the Stripe recordRemove the customer from Stripe

Products

Record matching

You can match rows in your model with products in Stripe on the following fields on the Product ID field.

Field mapping

You can sync columns from your source to Stripe default and custom fields. If you send data for a custom field that doesn't exist, Hightouch adds the field and automatically detects its type.

Refer to the inline mapping docs to see an example of how to map nested objects like a products's metadata.

Delete behavior

The delete behavior defines how the sync behaves when the Hightouch sync engine recognizes that a record has been removed from your source. The Stripe integration only supports deletions in Upsert mode.

BehaviorDescription
Do nothingKeep the product in Stripe
Delete the Stripe recordRemove the product from Stripe

Prices

Record matching

You can match rows in your model with prices in Stripe on the following fields on the Price ID field.

Field mapping

You can sync columns from your source to Stripe default and custom fields. If you send data for a custom field that doesn't exist, Hightouch adds the field and automatically detects its type.

Refer to the inline mapping docs to see an example of how to map nested objects like a price's recurring object.

Delete behavior

The Stripe integration doesn't suppport deleting prices.

Subscriptions

Record matching

You can match rows in your model with subscriptions in Stripe on the following fields on the Subscription ID field.

Field mapping

You can sync columns from your source to Stripe default and custom fields. If you send data for a custom field that doesn't exist, Hightouch adds the field and automatically detects its type.

Refer to the inline mapping docs to see an example of how to map nested arrays like a subscription's items.

Associations

Hightouch can perform a reference look-up to associate a subscription to a customer. After selecting the Customer ID Stripe field to map, a reference input appears. Similar to the Customer sync type, Hightouch can conduct a look-up using a Customer Email. Hightouch then sends the respective Customer ID in the request to Stripe.

With Association Mapping

If you select Customer ID, a look-up is not required.

No Association Mapping

Delete behavior

The delete behavior defines how the sync behaves when the Hightouch sync engine recognizes that a record has been removed from your source. The Stripe integration only supports deletions in Upsert mode.

BehaviorDescription
Do nothingKeep the price in Stripe
Delete the Stripe recordRemove the price from Stripe

Invoices

Record matching

You can match rows in your model with invoices in Stripe on the following fields on the Invoice ID field.

Field mapping

You can sync columns from your source to Stripe default and custom fields. If you send data for a custom field that doesn't exist, Hightouch adds the field and automatically detects its type.

Refer to the inline mapping docs to see an example of how to map nested objects like an invoice's customer address object.

Associations

Hightouch can perform a reference look-up to associate an invoice to a customer. After selecting the Customer ID Stripe field to map, a reference input appears. Similar to the Customer sync type, Hightouch can conduct a look-up using a Customer Email. Hightouch then sends the respective Customer ID in the request to Stripe.

With Association Mapping

If you select Customer ID, a look-up is not required.

No Association Mapping

Delete behavior

The delete behavior defines how the sync behaves when the Hightouch sync engine recognizes that a record has been removed from your source. The Stripe integration only supports deletions in Upsert mode.

BehaviorDescription
Do nothingKeep the invoice in Stripe
Delete the Stripe recordRemove the invoice from Stripe

Invoice items

Record matching

You can match rows in your model with invoice items in Stripe on the following fields on the Invoice Item ID field.

Field mapping

You can sync columns from your source to Stripe default and custom fields. If you send data for a custom field that doesn't exist, Hightouch adds the field and automatically detects its type.

Refer to the inline mapping docs to see an example of how to map nested arrays like invoice items.

Associations

Hightouch can perform a reference look-up to associate an invoice item to a customer. After selecting the Customer ID Stripe field to map, a reference input appears. Similar to the Customer sync type, Hightouch can conduct a look-up using a Customer Email. Hightouch then sends the respective Customer ID in the request to Stripe.

With Association Mapping

If you select Customer ID, a look-up is not required.

No Association Mapping

Delete behavior

The delete behavior defines how the sync behaves when the Hightouch sync engine recognizes that a record has been removed from your source. The Stripe integration only supports deletions in Upsert mode.

BehaviorDescription
Do nothingKeep the invoice item in Stripe
Delete the Stripe recordRemove the invoice item from Stripe.*

*Deletion is only supported if the associated invoice item is not attached to an invoice or if it's attached to a draft invoice, otherwise, Hightouch will do nothing to the existing invoice item in Stripe.

Quotes

Record matching

You can match rows in your model with quotes in Stripe on the following fields on the Quote ID field.

Field mapping

You can sync columns from your source to Stripe default and custom fields. If you send data for a custom field that doesn't exist, Hightouch adds the field and automatically detects its type.

Refer to the inline mapping docs to see an example of how to map nested objects like a quote's computed object.

Delete behavior

The delete behavior defines how the sync behaves when the Hightouch sync engine recognizes that a record has been removed from your source. The Stripe integration only supports deletions in Upsert mode.

BehaviorDescription
Do nothingKeep the quote in Stripe
Delete the Stripe recordRemove the quote from Stripe

Tips and troubleshooting

Common errors

If you encounter an error or question not listed below and need assistance, don't hesitate to . We're here to help.

Mismatched or missing data

Some Stripe object types have conditionally required fields based on other field values. You may receive Stripe API errors if the data you are syncing is incorrectly structured or if expected data is missing. We strongly recommend using Stripe's API documentation as reference when creating your Hightouch models and sync configurations.

If you run into any issues, . We're here to help.

Live debugger

Hightouch provides complete visibility into the API calls made during each of your sync runs. We recommend reading our article on debugging tips and tricks to learn more.

Sync alerts

Hightouch can alert you of sync issues via Slack, PagerDuty, SMS, or email. For details, please visit our article on alerting.

Ready to get started?

Jump right in or a book a demo. Your first destination is always free.

Book a demoSign upBook a demo

Need help?

Our team is relentlessly focused on your success. Don't hesitate to reach out!

Feature requests?

We'd love to hear your suggestions for integrations and other features.

Last updated: Mar 29, 2023

On this page

OverviewSupported syncingConnect to StripeSync configurationCustomersProductsPricesSubscriptionsInvoicesInvoice itemsQuotesTips and troubleshootingCommon errorsLive debuggerSync alerts

Was this page helpful?