Stripe feature snapshot

A high-level look at Stitch's Stripe (v27-02-2015) integration, including release status, useful links, and the features supported in Stitch.

STITCH
Release Status

Released

Supported By

Stitch

Stitch Plan

Free

DATA SELECTION
Table Selection

Unsupported

Column Selection

Unsupported

REPLICATION SETTINGS
Anchor Scheduling

Unsupported

Advanced Scheduling

Unsupported

Table-level Reset

Unsupported

Configurable Replication Methods

Unsupported

TRANSPARENCY
Extraction Logs

Unsupported

Loading Reports

Supported

Connecting Stripe

Stripe setup requirements

To set up Stripe in Stitch, you need:

  • Administrator permissions in Stripe. This is required to grant Stitch access to Stripe.

Step 1: Add Stripe as a Stitch data source

  1. Sign into your Stitch account.
  2. On the Stitch Dashboard page, click the Add Integration button.

  3. Click the Stripe icon.

  4. Enter a name for the integration. This is the name that will display on the Stitch Dashboard for the integration; it’ll also be used to create the schema in your destination.

    For example, the name “Stitch Stripe” would create a schema called stitch_stripe in the destination. Note: Schema names cannot be changed after you save the integration.

Step 2: Define the historical sync

The Sync Historical Data setting will define the starting date for your Stripe integration. This means that data equal to or newer than this date will be replicated to your data warehouse.

Change this setting if you want to replicate data beyond Stripe’s default setting of 1 year. For a detailed look at historical replication jobs, check out the Syncing Historical SaaS Data guide.

Step 3: Create a replication schedule

In the Replication Frequency section, you’ll create the integration’s replication schedule. An integration’s replication schedule determines how often Stitch runs a replication job, and the time that job begins.

Stripe integrations support the following replication scheduling methods:

To keep your row usage low, consider setting the integration to replicate less frequently. See the Understanding and Reducing Your Row Usage guide for tips on reducing your usage.

Step 4: Authorize Stitch to access Stripe

  1. Next, you’ll be prompted to sign into your Stripe account.
  2. A screen explaining what you’re authorizing will display. Note: Stitch will only ever read your Stripe data, and cannot create charges or any other records in Stripe.
  3. Click Sign in with Stripe to connect.
  4. Sign into your Stripe account.
  5. After the authorization process is successfully completed, you’ll be directed back to Stitch.
  6. Click All Done.

Step 5: Set tables and columns to replicate

To complete the setup, you’ll need to select the tables and columns you want to replicate to your data warehouse.

Check out the Schema section to learn more about the available tables in Stripe and how they replicate.

  1. In the list of tables that displays - or in the Tables to Replicate tab, if you skipped this step during setup - locate a table you want to replicate.
  2. To track a table, click the checkbox next to the table’s name. A green checkmark means the table is set to replicate.

  3. To track a column, click the checkbox next to the column’s name. A green checkmark means the column is set to replicate.

  4. Repeat this process for all the tables and columns you want to replicate.
  5. When finished, click the Finalize Your Selections button at the bottom of the screen to save your selections.

Note: If you change these settings while a replication job is still in progress, they will not be used until the next job starts.

Initial and historical replication jobs

After you finish setting up Stripe, its Sync Status may show as Pending on either the Stitch Dashboard or in the Integration Details page.

For a new integration, a Pending status indicates that Stitch is in the process of scheduling the initial replication job for the integration. This may take some time to complete.

Free historical data loads

The first seven days of replication, beginning when data is first replicated, are free. Rows replicated from the new integration during this time won’t count towards your quota. Stitch offers this as a way of testing new integrations, measuring usage, and ensuring historical data volumes don’t quickly consume your quota.


Stripe Replication

In the Stripe API, there are two concepts:

  • Objects, which are items like charges, invoices, customers, etc.
  • Events, which are changes to objects. For example: An invoice being created, or its status going from draft to open.

Whenever an object is created or updated in Stripe, a corresponding event is created. Because Stripe creates and updates object records in this way, there are two types of tables in Stitch’s Stripe integration:

  • A table for events, which contains all events that have occurred for Stripe’s supported event types. This table acts as a history for an object record, showing how it has been changed over time.
  • Tables for objects, which contains the latest version of records. These are tables like customers, charges, invoices, etc.

Note: Updates based on events is only applicable to the type of object the event is for. For example: If a dispute object is updated, only the corresponding record in the disputes table will be updated. The related charge in the charges table will not be updated. To retrieve related data for different objects, you’ll need to use the events table. Refer to Stripe’s documentation for info about event types and the objects they describe.

Example event and object data replication over time

In the image below is an example of how records for the events and invoices tables will look as an invoice changes over time. Click the image to enlarge.

Example showing how event and invoice records are replicated as an invoice changes over time


Stripe table schemas


stripe_balance_history

Replication Method: Key-based Incremental
Primary Key: id
Contains Nested Structures?: Yes

The stripe_balance_history table contains info about transactions have have contributed to your Stripe account balance, including charges, transfers, etc.

Table Info & Attributes

stripe_balance_history & Nested Structures

This table contains nested structures. If you use a data warehouse that doesn't natively support nested structures, some of the attributes listed below may be in a subtable.

These items are marked with a *

stripe_balance_history Attributes

While we try to include everything Stripe has here, this may not be a full list of attributes. Refer to Stripe's documentation for a full list and description of each attribute.

  • Balance History ID (id)

  • amount

  • available_on

  • created

  • currency

  • description

  • fee

  • fee_details*

  • net

  • source__sourced_transfers__data*

  • status

  • type

stripe_charges

Replication Method: Key-based Incremental
Primary Key: id
Contains Nested Structures?: No

The stripe_charges table contains info about charges to credit and debit cards.

Note that charge dispute data is not included in this table. See Table Info & Attributes for details.

Table Info & Attributes

Charge Dispute Support

Due to the current structure of our Stripe integration and how updates work in the Stripe API, records in this table will not be updated if a related dispute is updated.

You can, however, find this info in the stripe_events table.

stripe_charges Attributes

While we try to include everything Stripe has here, this may not be a full list of attributes. Refer to Stripe's documentation for a full list and description of each attribute.

  • Charge ID (id)

  • received_at

  • amount

  • amount_refunded

  • balance_transaction

  • captured

  • created

  • currency

  • customer_id

  • description

  • dispute_id

  • failure_code

  • failure_message

  • fraud_details_stripe_report

  • fraud_details_user_report

  • invoice_id

  • paid

  • receipt_email

  • receipt_number

  • refunded

  • statement_descriptor

  • status

stripe_coupons

Replication Method: Key-based Incremental
Primary Key: id
Contains Nested Structures?: No

The stripe_coupons table contains info about percent or amount-off discounts that may be applied to a customer. Note that coupons only apply to invoices; they don't apply to one-off charges.

Table Info & Attributes

stripe_coupons Attributes

While we try to include everything Stripe has here, this may not be a full list of attributes. Refer to Stripe's documentation for a full list and description of each attribute.

  • Coupon ID (id)

  • received_at

  • created

  • duration

  • duration_in_months

  • metadata__quota_calls

  • metadata__quota_level

  • metadata__service

  • percent_off

  • times_redeemed

  • valid

stripe_customers

Replication Method: Key-based Incremental
Primary Key: id
Contains Nested Structures?: Yes

The stripe_customers table contains info about your Stripe customers. This table allows you to track multiple charges associated with a single customer.

Table Info & Attributes

stripe_customers & Nested Structures

This table contains nested structures. If you use a data warehouse that doesn't natively support nested structures, some of the attributes listed below may be in a subtable.

These items are marked with a *

stripe_customers Attributes

While we try to include everything Stripe has here, this may not be a full list of attributes. Refer to Stripe's documentation for a full list and description of each attribute.

  • Customer ID (id)

  • received_at

  • account_balance

  • created

  • currency

  • delinquent

  • description

  • discount_id

  • email

  • metadata__id

  • metadata__extra

  • metadata__name

  • metadata__settings

  • workspace

stripe_events

Replication Method: Key-based Incremental
Primary Key: id
Contains Nested Structures?: Yes

The stripe_events table contains info about events. When an interesting event occurs, a new event object is created. For example, when a charge succeeds a charge.succeeded event is created; or, when an invoice can't be paid, an invoice.payment_failed event is created.

Table Info & Attributes

stripe_events & Nested Structures

This table contains nested structures. If you use a data warehouse that doesn't natively support nested structures, some of the attributes listed below may be in a subtable.

These items are marked with a *

Event Replication

The stripe_events table is sort of a “grab bag” of all events across all endpoints, or tables. For every event that takes place on a parent object, a row will be added to the table.

For example: If a customer account is updated, you’ll see the latest state of the customer’s account info in the stripe_customers table. You’ll also see a row in this table for the actual update event itself.

stripe_events Attributes

While we try to include everything Stripe has here, this may not be a full list of attributes. Refer to Stripe's documentation for a full list and description of each attribute.

  • Event ID (id)

  • created

  • data__object__business_url

  • data__object__charges_enabled

  • data__object__country

  • data__object__default_currency

  • data__object__default_source

  • data__object__delinquent

  • data__object__description

  • data__object__details_submitted

  • data__object__discount

  • data__object__display_name

  • data__object__email

  • data__object__id

  • data__object__managed

  • data__object__object

  • data__object__shipping

  • data__object__sources__data*

  • data__object__statement_descriptor

  • data__object__subscriptions__data*

  • data__object__support_phone

  • data__object__timezone

  • data__object__transfers_enabled

  • livemode

  • object

  • pending_webhooks

  • request

  • type

stripe_invoice_items

Replication Method: Key-based Incremental
Primary Key: id
Contains Nested Structures?: No

The stripe_invoice_items table contains info about items contained in customer invoices.

Table Info & Attributes

stripe_invoice_items Attributes

While we try to include everything Stripe has here, this may not be a full list of attributes. Refer to Stripe's documentation for a full list and description of each attribute.

  • Invoice Item ID (id)

  • received_at

  • amount

  • currency

  • customer_id

  • date

  • description

  • discountable

  • invoice_id

  • period_end

  • period_start

  • plan_id

  • proration

  • quantity

  • bigint

  • subscription_id

stripe_invoices

Replication Method: Key-based Incremental
Primary Key: id
Contains Nested Structures?: Yes

The stripe_invoices table contains info about customer invoices. Note that this does not include upcoming invoices - see the Table Info section for details.

Table Info & Attributes

stripe_invoices & Nested Structures

This table contains nested structures. If you use a data warehouse that doesn't natively support nested structures, some of the attributes listed below may be in a subtable.

These items are marked with a *

Upcoming Invoices

Stitch’s Stripe integration doesn’t currently replicate upcoming invoices, which Stripe defines as “the next upcoming invoice.”

This is due to the way Stripe generates and assigns IDs to invoices. Existing invoices have IDs while upcoming invoices do not. As Stitch uses the id column to identify new data for replication, if an invoice doesn’t have an ID, Stitch will be unable to replicate it.

stripe_invoices Attributes

While we try to include everything Stripe has here, this may not be a full list of attributes. Refer to Stripe's documentation for a full list and description of each attribute.

  • Invoice ID (id)

  • received_at

  • amount_due

  • attempt_count

  • attempted

  • charge_id

  • closed

  • currency

  • customer_id

  • date

  • discount_id

  • ending_balance

  • forgiven

  • lines*

  • next_payment_attempt

  • paid

  • period_end

  • period_start

  • receipt_number

  • starting_balance

  • subscription_id

  • subtotal

  • total

  • webhooks_delivered_at

stripe_plans

Replication Method: Key-based Incremental
Primary Key: id
Contains Nested Structures?: No

The stripe_plans table contains pricing information for different products and feature levels on your site. For example, you may have a $10/month plan for basic features and a $20/month plan for premium features.

Table Info & Attributes

stripe_plans Attributes

While we try to include everything Stripe has here, this may not be a full list of attributes. Refer to Stripe's documentation for a full list and description of each attribute.

  • Plan ID (id)

  • received_at

  • amount

  • created

  • currency

  • interval

  • interval_count

  • metadata__available

  • metadata__grandfathered

  • metadata__overage_rows_fee

  • metadata__overage_rows_per

  • metadata__quota_calls

  • metadata__quota_level

  • metadata__quota_rows

  • metadata__service

  • metadata__tier

  • name

  • statement_descriptor

  • trial_period_days

stripe_subscriptions

Replication Method: Key-based Incremental
Primary Key: id
Contains Nested Structures?: No

The stripe_subscriptions table contains the details of subscription plans your customers belong to.

Table Info & Attributes

stripe_subscriptions Attributes

While we try to include everything Stripe has here, this may not be a full list of attributes. Refer to Stripe's documentation for a full list and description of each attribute.

  • Subscription ID (id)

  • received_at

  • cancel_at_period_end

  • current_period_end

  • current_period_start

  • customer_id

  • discount_id

  • metadata__quota_calls

  • metadata__quota_rows

  • plan_id

  • quantity

  • start

  • status

  • trial_end

  • trial_start

  • canceled_at

stripe_transfers

Replication Method: Key-based Incremental
Primary Key: id
Contains Nested Structures?: Yes

The stripe_transfers table contains info about your transfers. A transfer is created any time Stripe sends you money or you initiiate a transfer to a connected account, including bank accounts and debit cards.

Table Info & Attributes

stripe_transfers & Nested Structures

This table contains nested structures. If you use a data warehouse that doesn't natively support nested structures, some of the attributes listed below may be in a subtable.

These items are marked with a *

stripe_transfers Attributes

While we try to include everything Stripe has here, this may not be a full list of attributes. Refer to Stripe's documentation for a full list and description of each attribute.

  • Transfer ID (id)

  • amount

  • amount_reversed

  • application_fee

  • balance_transaction

  • created

  • currency

  • date

  • description

  • destination

  • destination_payment

  • failure_code

  • failure_message

  • livemode

  • medata__method

  • metadata__recipient

  • metadata__reversals*

  • reversed

  • source_transaction

  • source_type

  • statement_descriptor

  • status

  • type

stripe_transfer_transactions

Replication Method: Key-based Incremental
Primary Key: transfer_id:transaction_id
Contains Nested Structures?: No

The stripe_transfer_transactions table contains transfer and transaction IDs, which will allow you to join transfers with the transactions in the stripe_balance_history table.

Table Info & Attributes

stripe_transfer_transactions Attributes

While we try to include everything Stripe has here, this may not be a full list of attributes. Refer to Stripe's documentation for a full list and description of each attribute.

  • transfer_id

  • transaction_id


Questions? Feedback?

Did this article help? If you have questions or feedback, feel free to submit a pull request with your suggestions, open an issue on GitHub, or reach out to us.