Stripe Connect platforms can report on their connected Express and Custom accounts using Stripe Sigma. You can write queries that run across your entire platform in much the same way as your own Stripe account.
Additional groups of Connect-specific tables within Stripe Sigma’s schema are located in the Connect sections of the schema. If you do not operate a Connect platform, these tables are not displayed.
Connected account information
connected_accounts table provides a list of Account objects with information about connected Express and Custom Stripe accounts. This table is used for account-level information across all accounts on your platform, such as business name, country, or the user’s email address.
The following example uses the
connected_accounts table to retrieve a list of five Custom accounts for individuals located in the U.S. that have payouts disabled because Stripe does not have the required verification information to verify their account.
select id, email, legal_entity_address_city as city, legal_entity_address_line1 as line1, legal_entity_address_postal_code as zip, legal_entity_address_state as state, legal_entity_dob_day as dob_day, legal_entity_dob_month as dob_month, legal_entity_dob_year as dob_year,
All of the required fields for individual Custom accounts in the U.S. are retrieved as columns. This allows you to see what information has been provided, and what is needed, for each account. This can be seen in the example report below (some columns have been omitted for brevity).
Transactional data for connected accounts
Transactional and subscription data for Express and Custom accounts is contained within the
connected_account_ tables. The available data for connected accounts is organized and structured in the same way as data for your own account.
For instance, the
balance_transactions table, located in the Payments section, contains balance transaction data for your Stripe account. The
connected_account_balance_transactions table, located in the Connect - Payments section, contains balance transaction data for your connected accounts. Each Connect-specific table has an additional
account column containing the identifier of a connected account. This can be used when joining tables to build advanced queries.
The following example is based upon the default query that’s loaded into the editor. Instead of retrieving the ten most recent balance transactions on your account, it does so across all of your platform’s connected accounts.
select date_format(created, '%m-%d-%Y') as day, account, -- Added to include corresponding account identifier id, amount, currency, source_id, type from connected_account_balance_transactions -- Changed to use Connect-specific table order by day desc limit 5
Refer to our Stripe Sigma transactions and subscriptions documentation to learn more about querying transactional and subscription data. You can then supplement or adapt your queries with Connect-specific information to report on connected accounts.
Querying charges on connected accounts
You can use Stripe Sigma to report on the flow of funds to your connected accounts. How you do this depends on your platform’s approach to creating charges.
If your platform creates direct charges on a connected account, they appear on the connected account, not on your platform. This is analogous to a connected account making a charge request itself. Platforms with Express and Custom accounts can use the Connect-specific tables (e.g.,
connected_account_balance_transactions) to report on direct charges.
If your platform creates direct charges to Standard accounts, you cannot directly access transactional data for those accounts. However, if you assess an application fee on direct charges, detailed information is available within the
application_fee_refunds tables. These tables can be used to report on any revenue from application fees without access to the charge data itself.
The direct charges query template retrieves itemized information about application fees earned through direct charges, and reports on the connected account, transfer, and payment that is created.
If your platform creates destination charges on behalf of connected accounts, charge information is available within your own account’s data. A separate transfer of the funds to the connected account is automatically created, which creates a payment on that account. The direct charges query template reports on transfers related to destination charges made by your platform.
One way to analyze the flow of funds from a destination charge to a connected account is by joining the
transfer_id column of the
charges table to the
id column of the
transfers table. This example includes the original charge identifier and amount, the amount transferred to the connected account, and the connected account’s identifiers and resulting payment.
select date_format(date_trunc('day', charges.created), '%y-%m-%d') as day, charges.id, charges.amount as charge_amount, transfers.amount as transferred_amount, transfers.destination_id from charges inner join transfers on transfers.id=charges.transfer_id order by day desc limit 5
Payment and transfer information for Connected accounts is also available within Connect-specific tables (e.g.,
Separate charges and transfers
You can report on separate charges and transfers using a similar approach to destination charges. All charges are created on your platform’s account, with funds separately transferred to connected accounts using transfer groups. A payment is created on the connected account that references the transfer and transfer group.
transfers table include a
transfer_group column. Payment, transfer, and transfer group information is available within the Connect-specific