Stripe
This page contains the setup guide and reference information for Stripe.
Prerequisites
- Stripe developer account access
- Stripe API key
- Stripe Account ID
Features
Feature | Supported? |
---|---|
Full Refresh Sync | Yes |
Incremental Sync | Yes |
Namespaces | No |
Setup guide
Step 1: Obtain Stripe account ID
Click the gear icon in the top navigation bar. The click Settings.
Inside Business settings, click Account details.
Inside the Account details page, you can find your Account ID. This ID begins with acct_.
Step 2: Obtain Stripe API key
Log in to your Stripe account.
In the top navigation bar, click Developers. Then click API keys from the tabs.
Click + Create restricted key.
Enter a Key name, and select Read for all available permissions.
Click Create key. You may be prompted to enter a confirmation code. Write down your API key.
For more information on Stripe API Keys, see the Stripe documentation.
Step 3: Set up Stripe in Daspire
Select Stripe from the Source list.
Enter a Source Name.
Enter the Stripe Account ID you obtained in Step 1.
Enter the Stripe Secret Key you obtained in Step 2.
For Replication Start Date, enter a UTC date and time in the format
YYYY-MM-DDTHH:mm:ssZ
. The data added on and after this date will be replicated.(Optional) For Lookback Window, you may specify a number of days from the present day to reread data. This allows the integration to retrieve data that might have been updated after its initial creation, and is useful for handling any post-transaction adjustments. This applies only to streams that do not support event-based incremental syncs.
- Leaving the Lookback Window at its default value of 0 means Daspire will not re-export data after it has been synced.
- Setting the Lookback Window to 1 means Daspire will re-export data from the past day, capturing any changes made in the last 24 hours.
- Setting the Lookback Window to 7 means Daspire will re-export and capture any data changes within the last week.
(Optional) For Data Request Window, you may specify the time window in days used by the integration when requesting data from the Stripe API. This window defines the span of time covered in each request, with larger values encompassing more days in a single request. Generally speaking, the lack of overhead from making fewer requests means a larger window is faster to sync. However, this also means the state of the sync will persist less frequently. If an issue occurs or the sync is interrupted, a larger window means more data will need to be resynced, potentially causing a delay in the overall process.
For example, if you are replicating three years worth of data:
- A Data Request Window of 365 days means Daspire makes 3 requests, each for a year. This is generally faster but risks needing to resync up to a year's data if the sync is interrupted.
- A Data Request Window of 30 days means 36 requests, each for a month. This may be slower but minimizes the amount of data that needs to be resynced if an issue occurs.
- If you are unsure of which value to use, we recommend leaving this setting at its default value of 365 days.
Click Save & Test.
Supported streams
This source is capable of syncing the following streams:
- Accounts
- Application Fees (Incremental)
- Application Fee Refunds (Incremental)
- Authorizations (Incremental)
- Balance Transactions (Incremental)
- Bank accounts (Incremental)
- Cardholders (Incremental)
- Cards (Incremental)
- Charges (Incremental - The amount column defaults to the smallest currency unit.)
- Checkout Sessions (Incremental)
- Checkout Sessions Line Items (Incremental)
- Coupons (Incremental)
- Credit Notes (Incremental)
- Customer Balance Transactions (Incremental)
- Customers (Incremental)
- Disputes (Incremental)
- Early Fraud Warnings (Incremental)
- Events (Incremental)
- External Account Bank Accounts (Incremental)
- External Account Cards (Incremental)
- File Links (Incremental)
- Files (Incremental)
- Invoice Items (Incremental)
- Invoice Line Items
- Invoices (Incremental)
- Payment Intents (Incremental)
- Payment Methods
- Payouts (Incremental)
- Promotion Code (Incremental)
- Persons (Incremental)
- Plans (Incremental)
- Prices (Incremental)
- Products (Incremental)
- Refunds (Incremental)
- Reviews (Incremental)
- Setup Attempts (Incremental)
- Setup Intents (Incremental)
- Shipping Rates (Incremental)
- Subscription Items
- Subscription Schedule (Incremental)
- Subscriptions (Incremental)
- Top Ups (Incremental)
- Transactions (Incremental)
- Transfers (Incremental)
- Transfer Reversals
- Usage Records
Data type mapping
The Stripe API uses the same JSON Schema types that Daspire uses internally (string, date-time, object, array, boolean, integer, and number), so no type conversions are performed for the Stripe integration.
Troubleshooting
Rate limit
The Stripe integration should not run into Stripe API limitations under normal usage. See Stripe Rate limits documentation.
Incremental syncs
Since the Stripe API does not allow querying objects which were updated since the last sync, the Stripe integration uses the Events API under the hood to implement incremental syncs and export data based on its update date. However, not all the entities are supported by the Events API, so the Stripe integration uses the created field or its analogue to query for new data in your Stripe account. These are the entities synced based on the date of creation:
- Balance Transactions
- Events
- File Links
- Files
- Refunds
- Setup Attempts
- Shipping Rates
On the other hand, the following streams use the updated field value as a cursor:
- Application Fees
- Application Fee Refunds
- Authorizations
- Bank Accounts
- Cardholders
- Cards
- Charges
- Checkout Sessions
- Checkout Session Line Items (cursor field is
checkout_session_updated
) - Coupons
- Credit Notes
- Customer Balance Transactions
- Customers
- Disputes
- Early Fraud Warnings
- External Account Bank Accounts
- External Account Cards
- Invoice Items
- Invoices
- Payment Intents
- Payouts
- Promotion Codes
- Persons
- Plans
- Prices
- Products
- Reviews
- Setup Intents
- Subscription Schedule
- Subscriptions
- Top Ups
- Transactions
- Transfers
Incremental deletes
The Stripe API also provides a way to implement incremental deletes for a limited number of streams:
- Bank Accounts
- Coupons
- Customers
- External Account Bank Accounts
- External Account Cards
- Invoices
- Invoice Items
- Persons
- Plans
- Prices
- Products
- Subscriptions
Each record is marked with
is_deleted
flag when the appropriate event happens upstream.Max number of tables that can be synced at a time is 6,000. We advise you to adjust your settings if it fails to fetch schema due to max number of tables reached.