Transaction Reconciliation Beta

Set up the reconciliation between Stripe transactions and your transaction data.

Transaction reconciliation enables you to reconcile between your internal records with Stripe processed charges and refunds at an individual transaction level.

Transaction reconciliation is useful for businesses that have:

Using transaction reconciliation, you can:

Get started

To get started with Stripe reconciliation upload your transaction data. Then you can:

Import data

To import transaction data:

  1. Go to the Stripe Dashboard > reconciliation overview page and click Import data.
  2. Click Browse and select your file. It must be smaller than 70 MB.
  3. Click Import CSV.
  4. To track the progress of the import, click View data management.

Note

You are responsible for the data you provide to Stripe. By providing us data to use, you acknowledge that you have received permission to share that data with Stripe and to enable Stripe to use it to provide you the services.

Reconciliation data schema

The transaction data must have some required fields to convert it to Stripe’s canonical reconciliation schema. Here is the expected schema:

Field nameDescriptionTypeRequired
Id A unique identifier for the payment expectation. For example - UUID, combination of orderitem and fulfillment status etc.StringRequired
gross _ amount The gross amount of the payment expectation. Does not account for any fees or currency conversions.numericRequired
currency Currency associated with gross _ amount .enumRequired
type Either inbound or outbound .enumRequired
customer _ id Identifier for the customer involved in the payment expectation.stringOptional
created _ at When the payment expectation was created.timestampRequired
updated _ at When the payment expectation was updated.timestampOptional
reconciliation _ reference Reference used to do a look-up on settlement data ( charge _ id ).stringRequired

Reconciliation statuses

After the data is imported, reconciliation starts automatically, and each transaction gets a reconciliation status. The reconciliation status represents the state of the transaction and helps you understand what action to take. Settlement reconciliation and Transaction reconciliation have different statuses.

Settlement reconciliation statuses

For reconciliation between settlement and bank data, each settlement is assigned one of the following statuses:

You can configure the settlement reconciliation threshold when you compare settlement data to bank deposit data. If the difference in amounts is within the threshold, the settlement ID gets tagged as completely matched. If the difference in amounts is outside of the threshold, the settlement ID gets tagged as partially matched.

Here is an example of how the settlement reconciliation statuses are computed (in this example, the threshold is 1 USD):

Settlement reconciliation statusSettlement ID (Stripe data)Settlement ID (bank data)Settlement amount expected (Stripe data)Deposit amount (bank data)
Completely matchedST-123ST-1231000 USD1000 USD
Partially matchedST-abcST-abc1000 USD900 USD
UnmatchedST-xyznull1000 USDnull

Transaction reconciliation

Transaction reconciliation (between transaction data and settlement data) has four statuses:

Configure the transaction reconciliation threshold when comparing the amount expected (transaction data) and the amount processed (Stripe records). If the difference in amounts is within the threshold, the charge ID gets tagged as Settled. If the difference in amounts is outside of the threshold, the charge ID gets tagged as In process.

Here is the sample data showing how the transaction reconciliation statuses are computed (in this example, the threshold is 1 USD):

Transaction reconciliation statusCharge ID (transaction data)Charge ID (Stripe records)Amount expected (transaction data)Amount processed (Stripe records)
Settled ch _ 123 ch _ 123 50 USD50 USD
In process ch _ abc ch _ abc 50 USD45 USD
Open ch _ xyz null50 USDnull
Foreignnull ch _ 789 null50 USD

View analytics

The reconciliation analytics page provides high-level details about the overall money movement of your business. It also includes charts for reconciliation status and aging summaries.

Reconciliation status chart

The reconciliation status chart provides a high-level view of the funds received or pending from Stripe. It shows an aggregated view of the amount corresponding to the transactions across four reconciliation statuses: Open, In Process, Foreign, and Settled. The key insight is to understand the amount for each of the reconciliation statuses and take actions based on the insights.

Aging summary chart

The aging summary chart provides a high-level view of the time it takes Stripe to settle processed transactions. It shows an aggregated view of the transaction amount by settlement days. Use the chart to determine whether Stripe is settling the money on time.

This helps you understand if Stripe is adhering to the agreed-upon SLA (service level agreement). The graph differentiates between the amount settled on or before SLA and after SLA with different colors. Blocks in blue represent the transaction amount settled on or before the SLA. Blocks in red represent the transaction amount settled after SLA.

Generate reports

Here are the standard reports that you can generate and download from the Stripe Dashboard:

Download a report

To download a report:

  1. Go to the Dashboard Reconciliation >Pay-in reconciliation page.
  2. Go to the Reports tab.
  3. Click New report.
  4. Select the report type and filters.
  5. Click Generate button.
  6. After the report completes generation, click Download.

Reconciliation result report

Here are the columns in the reconciliation report:

Column nameDefaultDescription
reference _ id YThe common reference key between your transaction data and Stripe settlements data. For example, charge _ id (starting with ch _ ) for the charges and refund _ id (starting with re _ ) for refunds.
recon _ party _ name YName of the payment provider that has processed the payment. For example, Stripe.
transaction _ type YType of the transaction: Forward (for charges) or reverse (for refunds).
reconciliation _ status YThe reconciliation status of the transaction. One of the following: Open, In process, Settled, Foreign.
transaction _ date YThe date when the sale or refund was created per your transaction data (internal records).
settlement _ date YThe date on which Stripe initiated the settlement or payout.
bank _ date YThe date on which the settlement or payout was received in your bank. This information is fetched from your bank statements.
total _ transaction _ amount YThe gross amount corresponding to the charge or refund per your transaction data.
total _ settlement _ amount YThe gross amount corresponding to the charge or refund per the Stripe’s settlement data.
account _ name YThe name of the account that is debited or credited from the chart of accounts to create the journal entry.
credit _ cycle _ days NNumber of days it takes for your funds to become available and paid out.
age NThe difference between the transaction _ date and settlement _ date , which represents the time taken for the corresponding payout to be initiated after the transaction is created.
settlement _ currency YThe currency in which Stripe has settled the charge or refund.
settlement _ id NThe ID of the settlement or payout in which the charge or refund was settled.
settlement _ status NThe reconciliation status of the settlement. We match Stripe payouts with your bank statements and assign each settlement one of the following status: Matched, Unmatched, Partially matched

Custom data addition

You can add custom metadata from your transaction data to the reconciliation result report as additional columns. For example, if store _ id is part of the transaction data, it shows up in the custom metadata section.

To view the available custom metadata, click Show under the columns. The metadata is populated in the report by aggregating based on the reconciliation reference, for example the charge _ id . If multiple rows of metadata are found with the same charge _ id , they appear as comma-separated values in the report.

Bank settlement report

Column nameDescription
recon _ party _ name Name of the party that has initiated this settlement. For example, Stripe.
settlement _ id ID of the settlement or payout.
settlement _ date The date on which Stripe initiated the settlement or payout.
bank _ date The date on which the settlement or payout was received in your bank. This information is fetched from your bank statements.
settlement _ amount The net amount paid by Stripe against the settlement.
bank _ received _ amount The amount received in your bank account against the settlement.
outstanding _ amount The outstanding amount against the settlement. This is the difference between the settlement _ amount and bank _ received _ amount .
settlement _ match _ status The reconciliation status of the settlement. We match Stripe payouts with your bank statements and assign each settlement one of the following statuses: Matched, Unmatched, Partially matched.

Transaction search report

Column nameDescription
reference _ id The common reference key between your transaction data and Stripe settlements data. For example: charge _ id (starting with ch _ ) for the charges and refund _ id (starting with re _ ) for refunds.
recon _ party _ name Name of the payment provider that has processed the payment. For example, Stripe.
transaction _ type Type of transaction: forward (For charges) or reverse (For refunds).
reconciliation _ status The reconciliation status of the transaction. One of the following: Open, In process, Settled, Foreign.
transaction _ date The date on which the sale or refund was created as per your transaction data (internal records).
settlement _ date The date when Stripe initiated the settlement or payout.
total _ transaction _ amount The gross amount corresponding to the charge or refund as per your transaction data.
total _ settlement _ amount The gross amount corresponding to the charge or refund as per the Stripe’s settlement data.
account _ name The name of the account that is debited or credited from the COA to create the journal entry.
settlement _ currency The currency in which Stripe has settled the charge or refund.
settlement _ id The ID of the settlement or payout in which the charge or refund was settled.
settlement _ status The reconciliation status of the settlement. We match Stripe payouts with your bank statements and assign each settlement one of the following status: Matched, Unmatched, Partially matched.