Skip to main content

Stripe Reader

Stripe is an online payment processor that is specifically geared towards online payments. Stripe’s APIs enable secure processing of payments across various global payment methods and currencies. Their APIs and the Dashboard centralise reporting, provide real-time data on charges, fees, refunds, and transfers.

Stripe Reader ingests Stripe data and emits WAEvents that can be processed with continuous queries or directed to a Striim target.

Typical use cases for reading from Stripe include:

  • To create dashboards or reports based on the payment data of customers to detect fraud, rate of payment declines, payout reconciliations, and revenue recognition.

  • Automatically importing transactions into accounting software like NetSuite, Xero and Quickbooks Desktop.

You can read from Stripe, and write to any target supported by Striim.

Summary information

APIs used/data supported

Stripe API

Data supported

Standard Stripe objects

Supported targets

Any Striim target that accepts WAEvents

Security and authentication

API Key with Stripe account ID or OAuth

Operations supported

  • Initial load

  • Incremental load

Schema management

The Stripe Reader can migrate the source schema from Stripe to the target.

Resilience / recovery

The Stripe Reader recovers data based on the value of the Incrmental Load marker.

Programmability

  • Wizards

  • Striim Flow Designer

  • Striim TQL

Metrics and auditing

Key metrics available through Striim monitoring

Key limitations

  • Several Stripe objects are not supported by the Striim Stripe reader: BankAccountTokens and CardTokens.

  • Stripe Reader cannot capture DELETE events.

  • The Customers and Invoices tables do not capture updates unless these tables are fully resynced at each polling interval. Leave the Incremental Load Marker property empty to cause full resyncs for these or any other tables.

  • When a table has both an ID field and a Created timestamp field, using the Created timestamp field as the incremental load marker for incremental load operations is a best practice. Using the ID field as the incremental load marker can lead to data loss when an incremental load operation causes high-volume data ingestion. To correct this state, remove the incremental load marker for the affected table and perform a resync.

Create a Stripe Reader application

Create a Stripe Reader application using a wizard

This procedure uses the results of the earlier procedures to configure the Stripe Reader in an instance of Striim.

  1. Log in to a Striim instance.

  2. Click Create an App from the Apps menu.

  3. Click Stripe as your source, and specify a target. Click Get Started.

  4. In Name, type a name for the app, then select a Namespace from the drop-down.

  5. Click Save.

    The wizard advances to the next step.

  6. Select Authenticate using OAuth or Authenticate using API Key, as suited to your use case.

    stripe-wiz-config-source-new.png

    Selecting Authenticate using API Key hides the Sign in using OAuth button, displaying the API Key field instead.

    Note

    When you authenticate using OAuth, you grant Striim read permissions to your Stripe account. Because they require a higher level of permissions, the Stripe Reader can't read the following tables when you choose to authenticate using OAuth.

    • Accounts

    • BankAccounts

    • BalanceChangeFromActivitySummaryReport

    • BalanceSummaryReport

    • EndingBalanceReconciliationSummaryReport

    • ItemizedBalanceChangeFromActivityReport

    • ItemizedEndingBalanceReconciliationReport

    • ItemizedPayoutReconciliationReport

    • ItemizedPayoutsReport

    • ItemizedReconciliationForASinglePayoutReport

    • PayoutsReconciliationSummaryForASinglePayoutReport

    • PayoutsReconciliationSummaryReport

    • PayoutsSummaryReport

    • Reports

    • ValueLists

    • ValueListItems

  7. (To authenticate with OAuth) Enter the Client ID, Client Secret, and Refresh Token.

  8. To authenticate with the API key, paste the API key into the API key field.

  9. If the Stripe account in use is a connected account, activate the Connected Account toggle.

    A Connected Account is a Stripe account that sends money to a Stripe merchant account. Connected Accounts can only authenticate with an API Key, not with OAuth.

  10. Click Next.

    The wizard validates the authentication information and displays the results.

  11. Click Next.

    The wizard displays a list of objects available on the Stripe instance.

  12. Select the objects to ingest and click Next.

    The wizard advances to the next step.

  13. Click Next.

    The wizard displays summary information.

  14. Click Save & Run.

    The application saves and begins running.

Create a Stripe Reader application using TQL

The following TQL reads Stripe data from the Customers object and writes that data to the system output.

CREATE OR REPLACE APPLICATION StripeSampleApp;

CREATE OR REPLACE SOURCE StripeILInput USING Global.StripeReader ( 
  Mode: 'InitialLoad',
  ApiKey: '****', 
  AccountId: '****',  
  Tables: 'Customers', 
  MigrateSchema: true ) 
OUTPUT TO StripeILStream;

CREATE TARGET StripeILOut USING Global.SysOut ( 
  name: 'StripeIL' ) 
INPUT FROM StripeILStream;

END APPLICATION StripeSampleApp;

The following TQL writes change data from the Customers object to the system output.

CREATE OR REPLACE APPLICATION StripeSampleApp;

CREATE OR REPLACE SOURCE StripeCDCInput USING Global.StripeReader ( 
  Mode: 'IncrementalLoad',
  AccountId: '****',
  ApiKey: '****',
  Tables: 'Customers', 
  IncrementalLoadMarker: 'Created' )
OUTPUT TO StripeCDCStream;

CREATE TARGET StripeCDCOut USING Global.SysOut ( 
  name: 'StripeCDC' ) 
INPUT FROM StripeCDCStream;

END APPLICATION StripeSampleApp;