Report platform transactions
Import transaction data from third-party data sources to incorporate it into Stripe Capital underwriting.
Caution
Reporting platform transactions for Capital is in private preview and subject to change. If you have any questions or feedback, contact capital-review@stripe.com
Increase access to financing options for your users who accept any payments outside of Stripe. This includes payment volume through other payment processors and offline transactions like cash and cheques.
Stripe Capital incorporates these off-Stripe transactions to extend offers to your users based on their entire business profile, not just the portion processed through Stripe.
Collect and prepare your data
Collect revenue data such as alternative payment processing volume and cash transactions to import into Stripe as CSV files. Additionally, include Stripe transactions, which we use to validate your data integration. You can view the data you’ve imported from the Import Set dashboard. Ensure that your data is compatible with the CSV format below. Every attribute is required unless otherwise noted.
Attribute | Type | Example | Description |
---|---|---|---|
stripe_ | Stripe connected account ID | acct_ | The identifier of the Stripe connected account ID. |
transaction_ | String | Any value such as my_ or Check Number 1234 | The identifier of the transaction:
|
capture_ | Date in YYYY-MM-DD format in the UTC time zone | 2022-01-27 | The date on which the payment was successfully captured:
|
payer_ | String | Any value such as my_ or Customer Number 1234 | The identifier of the payer:
|
processor_ | String | stripe or any value such as checks or App Store | The identifier of the processor for this transaction:
|
payment_ | String | check , cash , credit_ , paypal , Zelle , and others | The payment method used for this transaction. |
transaction_ | Integer | 1234 when a buyer pays 12.34 USD to the merchant or when the merchant refunds 12.34 USD to the buyer. | The numeric amount of the transaction without any currency symbols:
|
transaction_ | Lowercase three-letter ISO currency code | usd | This is the three-letter ISO code for the currency of the transaction:
|
transaction_ | credit or debit |
| The transaction type:
|
fee_ | Integer | 100 when the processor or platform charges the merchant a 1 USD fee or when the processor or platform returns a 1 USD fee to the merchant. | The fee amount associated with the transaction:
|
|
|
| The
Set |
version | Integer | 1742323922 | Unix timestamp representing when the file was generated:
|
(Optional) | Key-value string |
| An optional string of key-value pairs useful for storing additional information about the transaction in a structured format:
|
Validate your schema
In the Import Set dashboard, select the Test mode toggle to run an import on your test data first.
During testing
Don’t upload production data to a testing environment. Users with lower-level permissions can view this data, which might pose a security risk.
- Click Import file, specifying the schema to be CAPITAL Transaction Schema.
- Click Download sample file to see an example of the required format before you upload your CSV file.
- Choose your completed template to upload.
Resolve schema validation errors
Common schema validation errors include:
Error | Troubleshooting |
---|---|
Invalid dates | Make sure all the dates are in epoch or Unix timestamp format. |
Missing data | Make sure every record contains the required fields. |
Incompatible attribute types | Make sure attributes conform to their given types (i.e. transaction_ must be credit or debit ). |
Data is too large | Split your data into multiple CSV files, up to 50 MB each with the Stripe API or 1 GB each with dashboard upload and S3 data connector. |
If you have any errors in your uploaded file, the imported file displays a failure summary. To resolve the errors:
Click Download to review errors.
Review the error message column to see the errors.
Correct all the errors.
Re-upload the corrected CSV.
Wait to see the latest validation and processing status.
Set up a preliminary Stripe Capital analysis
Upload one-off third-party data to analyse how this data contributes to offer generation for your users. We recommend providing the last 24 months of historical data to accurately assess your data and improve our underwriting.
Note
We only support individual files up to 10 MB in size for initial analysis. If your data is larger than that, split it across multiple files.
Collect and format your production data into a CSV file following the data schema.
In livemode, import each CSV file into Stripe by using the Stripe API, Amazon S3 data connector, or manually uploading the files one-by-one in the Import Set dashboard.
a. If your file is too large, split it into multiple CSV files. If this results in a large number of files, we recommend that you integrate with the S3 data connector.
b. Ensure that
version
is set to the current Unix timestamp for all rows within the file.
Stripe might contact you to correct any data quality issues found in your production imports.
Set up automated daily data imports
After completing the preliminary analysis, configure your daily data import integration using the Stripe API or Amazon S3 data connector to enable automated daily uploads of aggregated data. Upload data daily to maintain accurate and up-to-date information. Keeping a real-time view of your users’ financial health enables us to make more informed underwriting decisions. If you have additional questions about setting up your data imports, contact us.
Other ways to import data:
You can use the Import Set dashboard to make one-off manual uploads of external data without writing any code. After you validate your test transactions data in a testing environment, you have two options for automating daily imports with production data:
Use Stripe’s APIs to fully automate your imports.
Set up no-code recurring imports with a data connector, like Amazon S3.
Files that you upload using either method still appear in the dashboard.
Automated recurring file imports with data connectors
If your transactional data files are stored in S3, you can use the Amazon S3 data connector to import these files into Stripe. Follow Stripe connector for Amazon S3 to set up your connector. The max file size imported through the data connector is 1 GB.
Automated data uploads using the Stripe API
Use the File Upload API to securely send documents to Stripe. To upload a file, send a multipart or form-data request to
https://files.
. Note that the subdomainstripe. com/v1/files files.
is different from most of Stripe’s API endpoints. The request must specify thestripe. com data_
purpose and a CSV file of your templated third-party data. The maximum file size you can upload through the API is 50 MB.management_ manual_ upload The following example, which returns a file object if successful, uploads a file located at
/path/to/a/file.
on your local file system:jpg Command Linecurl https://files.stripe.com/v1/files \ -u
: \ -F file="@/path/to/a/file.csv" \ -F purpose=data_management_manual_uploadsk_test_BQokikJOvBiI2HlWgH4olfQ2Use the Data Management API to create an
ImportSet
object. An ImportSet represents a request to import a third-party data file into Stripe’s Data Management dashboard. Because the Data Management API is in beta, specify the beta headerStripe-Version: 2024-12-18.
in your request.acacia;udap_ beta=v1 The following example creates an
ImportSet
object fromfile_
, which the File Upload API returned in the previous step:abcdef Command Linecurl https://api.stripe.com/v1/data_management/import_sets \ -H "Stripe-Version: 2024-12-18.acacia;udap_beta=v1" \ -u
: \ -d file="file_abcdef" \ --data-urlencode source_data_format="gsdf_61S7vBSIsrNXP3yYM5G6S"sk_test_BQokikJOvBiI2HlWgH4olfQ2
To create test file uploads and ImportSet
objects, use your test API key in your request.