Data Replication
Hevo replicates data for all the objects selected on the Configure Objects page during Pipeline creation. By default, all supported objects and their available fields are selected. However, you can modify this selection while creating or editing the Pipeline.
Selecting a parent object automatically includes all its associated child objects for replication. Child objects cannot be selected or deselected individually.
Hevo ingests the following types of data from your Source objects:
-
Historical Data: The first run of the Pipeline ingests all available historical data for the selected objects and loads it into the Destination.
-
Incremental Data: Once the historical load is complete, new and updated records for objects are ingested as per the sync frequency.
All objects, except Subscription History, are replicated to the Destination in Merge mode. Subscription History can be replicated in HISTORY_TRACKING or Append mode, which can be configured during object configuration.
Note: If the load mode for Subscription History is set to HISTORY_TRACKING, resyncing the object replaces the existing data in the Destination table with the latest data from Stripe. If the load mode is set to Append, the latest data is added to the Destination table without replacing the existing records.
Immutable Objects
Some Stripe objects cannot be updated after they are created. Once a record is created, Stripe does not allow any modifications to it. Since updates for these objects are not possible, Hevo ingests only new records for them during incremental Pipeline runs.
The following objects are immutable:
For the following objects, Hevo ingests the entire data during each Pipeline run:
-
Account
-
Apple Pay Domain
-
Plan
-
Tier
-
Shipping Rate
For all other supported objects, Hevo ingests the new and updated records using the Stripe Events API.
Connected Accounts
A connected account is a Stripe account linked to your primary Stripe account through Stripe Connect. Each connected account represents a separate business or individual on your platform, such as a seller or merchant, and maintains its own Stripe data.
By default, Hevo syncs data only from your primary Stripe account. To sync data from connected accounts, enable the Sync Data from Connected Accounts option while configuring the Source.
Once enabled, Hevo replicates the data for the following objects for each connected account. Data for associated child objects is replicated automatically.
- Apple Pay Domain
- Balance Transaction
- Charge
- Dispute
- Fee
- Issuing Card
- Issuing Dispute
- Payment Intent
- Payout
- Person
- Refund
- Transfer
The Account object is required to sync data from connected accounts. If you deselect this object while the Sync Data from Connected Accounts option is enabled, data ingestion for connected accounts fails.
Data for connected accounts data is replicated every 24 hours, independent of the Pipeline sync frequency configured for the primary account.
If the sync fails for a connected account, Hevo skips that account and continues replicating data for the remaining connected accounts.
Object Dependencies
In Hevo, objects can have multiple parent-child relationships. A parent object can have multiple child objects, and a child object can also have multiple parent objects.
When you resync an object, Hevo automatically resyncs all objects associated with it. This includes:
-
Parent objects linked to the selected object
-
Child objects linked to the selected object
-
Additional parent or child objects associated through those relationships
Note: If the resync operation for an object fails, resyncing all related parent and child objects also fails.
As a result, the resync operation includes all directly and indirectly associated objects to maintain data consistency across related objects.
For example, Payment Method has three parent objects, Customer, Payment Intent, and Setup Intent, and five child objects, AU BECS Debit, Fpx, Ideal, Payment Method Card, and SEPA Debit. When you resync the Payment Method object, Hevo also resyncs its parent and child objects.
If any child object is further associated with additional parent or child objects, those objects are also resynced. Similarly, if any parent object associated with Payment Method is linked to other child objects, those child objects are included in the resync.
Schema and Primary Keys
Hevo uses the following schema to upload the records in the Destination. For a detailed view of the objects, fields, and relationships, click the ERD.
Data Model
The following is the list of tables (objects) that are created at the Destination when you run the Pipeline:
| Object |
Description |
| Account |
Contains details of a Stripe account, such as its current email address and whether the account is enabled to make live charges. |
| Apple Pay Domain |
Contains the Apple Pay eligibility status of a registered domain, indicating whether the domain is verified and enabled to accept Apple Pay payments. |
| Application Fee |
Contains the transaction fee amount collected in addition to a charge made to a user. |
| Authorization |
Contains the information that must be approved for any card purchase to be completed successfully. |
| Balance Transaction |
Contains the details of funds moving through a Stripe account. A balance transaction is created whenever funds enter or leave the account. |
| Cardholder |
Contains details of the individual or business entity to whom a card is issued, such as name, email, and phone number. |
| Charge |
Contains the details of a charge made on a credit or debit card. You can retrieve and refund individual charges or list all charges. Each charge is identified by a unique, random ID. |
| Checkout Session |
Contains details of a customer’s payment session for one-time purchases or subscriptions. |
| Coupon |
Contains information about a percentage-based or fixed-amount discount that can be applied to subscriptions, invoices, checkout sessions, or quotes. |
| Credit Note |
Contains the details of an adjustment made to a finalized invoice without recreating the invoice. |
| Customer |
Contains customer details, including name, email, default payment method, and delinquency status. |
| Dispute |
Contains the details of a customer dispute raised with their card issuer for a charge, including information about the disputed transaction and related evidence. |
| Early Fraud Warning |
Contains details about early fraud warnings sent by the card issuer to Stripe for a transaction. |
| File |
Contains details about files hosted on Stripe’s servers, including their purpose, type, size, and access URL. |
| File Link |
Contains a URL that allows retrieval of a file’s contents without authentication. |
| Invoice |
Contains details of the amount owed by a customer, generated either as a one-time invoice or periodically for a subscription. |
| Invoice Item |
Contains details of individual charges or credits included in an invoice for a billing cycle. |
| Issuing Card |
Contains details of physical or virtual cards issued to cardholders, including expiration month and year. |
| Issuing Dispute |
Contains details of customer disputes about charges they do not recognise or suspect may be fraud. |
| Issuing Transaction |
Contains details of funds entering or leaving a Stripe account. A transaction object is created whenever an issued card is used to make a purchase or issue a refund. |
| Payment Intent |
Contains the guide for the process of collecting a payment from your customer during a particular session. Read How intents work to know more about the payment flow followed at Stripe. |
| Payout |
Contains the details of funds transferred from Stripe to a connected bank account or debit card. |
| Plan |
Contains pricing details for recurring purchases, including base price, currency, and billing cycle, used for defining pricing options for different service levels. |
| Price |
Contains details such as unit cost, currency, and billing cycle for recurring and one-time purchases of the products you offer to your customers. For example, a standard or premium version of your service. |
| Product |
Contains details of an item or service you offer customers, including its name, description, and price. |
| Promotion Code |
Contains the details of a customer-redeemable code associated with a promotion. Multiple promotion codes can be linked to a single promotion. |
| Quote |
Contains the details of a pricing proposal provided to a customer. Once accepted, it automatically creates an invoice, subscription, or subscription schedule. |
| Refund |
Contains the details of a refund issued for a previously created charge. The refunded amount is returned to the original credit or debit card used for the payment. |
| Review |
Contains human-added information to supplement automated fraud detection cases. |
| Setup Intent |
Contains the guide for the process of saving a customer’s payment credentials for future payments. |
| Shipping Rate |
Contains the details of the shipping charges applied to products being delivered to customers. |
| Subscription History |
Contains a record of changes made to a customer’s subscription over time. |
| Subscription Schedule |
Contains the details required to manage a subscription’s lifecycle. |
| Tax Rate |
Contains the details of the tax rates applied to the invoices, subscriptions, and checkout sessions to collect tax. |
| Top-up |
Contains the amount customers wish to add to their Stripe account balance. |
| Transfer |
Contains details of funds, including the amount, currency, and destination, that were moved from your Stripe account to a connected account. |
Read the detailed Hevo documentation for the following related topics: