Important: Version 27-02-2015 deprecation
A newer version of Stripe is available in Stitch. This version will still continue to replicate data, but may be deprecated at a future date.
Connections created before December 10, 2018 use this version. Upgrade to the latest version (1.0) to take advantage of the new enhancements.
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 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
- Sign into your Stitch account.
-
On the Stitch Dashboard page, click the Add Integration button.
-
Click the Stripe icon.
-
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
- Next, you’ll be prompted to sign into your Stripe account.
- 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.
- Click Sign in with Stripe to connect.
- Sign into your Stripe account.
- After the authorization process is successfully completed, you’ll be directed back to Stitch.
- 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.
- 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.
-
To track a table, click the checkbox next to the table’s name. A green checkmark means the table is set to replicate.
-
To track a column, click the checkbox next to the column’s name. A green checkmark means the column is set to replicate.
- Repeat this process for all the tables and columns you want to replicate.
- 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.
Initial replication jobs with Anchor Scheduling
If using Anchor Scheduling, an initial replication job may not kick off immediately. This depends on the selected Replication Frequency and Anchor Time. Refer to the Anchor Scheduling documentation for more information.
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
toopen
.
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.
Stripe table schemas
Schemas and versioning
Schemas and naming conventions can change from version to version, so we recommend verifying your integration’s version before continuing.
The schema and info displayed below is for version 27-02-2015 of this integration.
stripe_balance_history
Replication Method: Key-based Incremental
Primary Key: id
Contains Nested Structures?:
Yes
stripe_balance_history
table contains info about transactions have have contributed to your Stripe account balance, including charges, transfers, etc.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
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.
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
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.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
stripe_customers
table contains info about your Stripe customers. This table allows you to track multiple charges associated with a single customer.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
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.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
stripe_invoice_items
table contains info about items contained in customer invoices.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
stripe_invoices
table contains info about customer invoices. Note that this does not include upcoming invoices - see the Table Info section for details.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
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.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
stripe_subscriptions
table contains the details of subscription plans your customers belong to.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
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.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
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.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
Related | Troubleshooting |
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.