Your Payments Processing Data Template

Stripe
Your Payments Processing Data Template

Your Payments Processing Data Template

This template provides a comprehensive blueprint for mapping your Stripe payment flows into a format ready for process mining analysis. It outlines the specific data attributes to collect and the lifecycle activities to track, ensuring you have a clear view of your financial operations. Use this guide to streamline your data preparation and gain deeper insights into your transaction efficiency.
  • Recommended data attributes
  • Critical payment lifecycle activities
  • Step by step extraction guidance for Stripe
New to event logs? Learn how to create a process mining event log.

Payments Processing Attributes

This table outlines the recommended data fields you should include in your event log to ensure comprehensive analysis of your Stripe payment workflows.
5 Required 8 Recommended 8 Optional
Name Description
Activity
EventName
The name of the specific step or event occurring in the payment lifecycle.
Description

This attribute represents the activity performed at a specific point in time. It is typically mapped from Stripe Webhook event types (e.g., 'payment_intent.created' becomes 'Payment Request Created', 'charge.succeeded' becomes 'Payment Authorized').

Proper mapping of these technical event names to business-friendly activity names is crucial for the readability of the process map. It allows analysts to understand the flow without needing to decipher raw API event codes.

Why it matters

It defines the nodes in the process map, enabling the visualization of the process flow.

Where to get

Stripe API: Event object, field 'type'.

Examples
Payment Request CreatedPayment AuthorizedPayment FailedDispute Opened
Last Data Update
ExtractionTimestamp
The timestamp when the data was extracted from Stripe.
Description

This attribute records when the data was retrieved from the source system. It helps in understanding the freshness of the analysis and identifying potential data latency issues.

In dashboards, this field informs the user about how current the data is. If the gap between the event timestamp and the extraction timestamp is large, it may indicate a delay in the data pipeline.

Why it matters

It ensures transparency regarding data currency and supports incremental data loading strategies.

Where to get

Generated by the ETL / Extraction tool.

Examples
2023-11-01T00:00:00Z2023-11-01T12:00:00Z
Payment Transaction ID
PaymentIntentId
The unique identifier for the payment transaction within Stripe.
Description

This attribute serves as the central case identifier for the process analysis. It is typically derived from the Stripe PaymentIntent object 'id' field (e.g., pi_12345). It groups all related events, such as authorization, capture, failure, and refunds, into a single end-to-end case.

In analysis, this ID is essential for reconstructing the complete history of a payment request. It ensures that distinct attempts and status changes are correctly associated with the specific financial transaction requested by the customer.

Why it matters

It is the primary key for the process mining model, allowing the system to stitch together isolated events into a coherent process trace.

Where to get

Stripe API: PaymentIntent object, field 'id'.

Examples
pi_3MtwPdLkdIwHu7ix28XE9f12pi_1Jq8uFLkdIwHu7ix0yNq9g34pi_3N5yQdLkdIwHu7ix1AzP8h56ch_3LkrCdLkdIwHu7ix0ByR7j78
Source System
SourceSystem
The name of the system where the data originated.
Description

This attribute indicates the origin of the data record. For this specific process view, the value will consistently be 'Stripe'. This is useful in multi-system environments where process flows might span across CRM, ERP, and Payment Gateways.

It allows analysts to filter the process map to show only activities occurring within the payment processor, or to differentiate between Stripe and other payment methods if multiple gateways are analyzed together.

Why it matters

It identifies data provenance, which is essential for data governance and multi-system process mining.

Where to get

Hardcoded value during extraction.

Examples
StripeStripe ConnectStripe Payments
Start Time
EventTimestamp
The precise date and time when the event occurred.
Description

This attribute records the timestamp of the event. In Stripe, this is provided as a Unix timestamp in the 'created' field of the Event object. This data is critical for establishing the sequence of activities.

Analysts use this field to calculate cycle times, durations between activities, and to order the events correctly within the Payment Transaction ID case. Without accurate timestamps, it is impossible to determine the process flow or measure performance.

Why it matters

It provides the temporal dimension necessary for process discovery and performance analysis.

Where to get

Stripe API: Event object, field 'created'.

Examples
2023-10-27T08:30:00Z2023-10-27T08:30:05Z2023-10-27T14:15:00Z
Currency
PaymentCurrency
The 3-letter ISO code denoting the currency of the transaction.
Description

This attribute specifies the currency in which the payment was made (e.g., USD, EUR, GBP). It is found in the 'currency' field of the PaymentIntent object. This is necessary for normalizing financial reporting in the Treasury dashboards.

In analysis, this field helps identify regional patterns in payment processing times or error rates, contributing to the 'Settlement Duration Standardization' view.

Why it matters

It is essential for accurate financial aggregation and regional performance analysis.

Where to get

Stripe API: PaymentIntent object, field 'currency'.

Examples
USDEURGBPJPY
Customer ID
CustomerId
The identifier for the customer associated with the payment.
Description

This attribute links the payment to a specific customer entity in Stripe. It comes from the 'customer' field. This enables the 'Customer Notification Latency' dashboard by allowing analysts to group transactions by customer.

It is also useful for identifying customers with high rework rates or frequent payment failures, supporting the 'Payment Instruction Rework Rates' analysis.

Why it matters

It enables customer-centric process analysis and segmentation.

Where to get

Stripe API: PaymentIntent object, field 'customer'.

Examples
cus_9s6X9nLkdIwHu7cus_8f5Y8nLkdIwJu8cus_7d4Z7nLkdIwKu9
Failure Code
FailureCode
The specific error code returned if a payment fails.
Description

This attribute captures the reason for a payment failure, such as 'insufficient_funds' or 'card_declined'. It is typically found in the 'last_payment_error.code' field of the PaymentIntent.

This data is the backbone of the 'Error Resolution Cycle Time' dashboard. By analyzing these codes, the business can identify which technical errors are causing the most friction and targeted delays in the payment flow.

Why it matters

It is critical for root cause analysis of process deviations and failed transactions.

Where to get

Stripe API: PaymentIntent object, field 'last_payment_error.code'.

Examples
card_declinedinsufficient_fundsexpired_cardincorrect_cvc
Payment Amount
PaymentAmount
The monetary value associated with the payment transaction.
Description

This attribute represents the total amount of the transaction. In Stripe, this is often stored in the smallest currency unit (e.g., cents for USD) and requires conversion. It is mapped to the 'amount' field in the PaymentIntent or Charge object.

This data is vital for the 'Treasury Cash Flow Visibility' dashboard. It allows analysts to aggregate values to understand total throughput, potential revenue at risk during errors, and to prioritize high-value transactions during manual review.

Why it matters

It adds a financial dimension to the process analysis, enabling value-based prioritization.

Where to get

Stripe API: PaymentIntent object, field 'amount'.

Examples
100.002500.5049.99
Payment Method Type
PaymentMethodType
The type of instrument used for payment, e.g., card or bank transfer.
Description

This attribute identifies the method used for the transaction, such as 'card', 'ach_debit', or 'alipay'. It is derived from the 'payment_method_types' or 'payment_method' object.

This is essential for the 'Settlement Duration Standardization' dashboard, as settlement times vary significantly between credit cards (fast) and bank transfers (slow). Segregating data by method ensures fair performance comparisons.

Why it matters

It explains variations in process duration due to inherent differences in payment rails.

Where to get

Stripe API: PaymentIntent object, field 'payment_method_types'.

Examples
cardus_bank_accountsepa_debitideal
Payment Status
PaymentStatus
The current state of the payment intent or charge.
Description

This attribute reflects the status of the transaction as reported by Stripe (e.g., 'requires_payment_method', 'succeeded', 'canceled'). It is a direct pull from the 'status' field.

This attribute helps in validating the process flow. For example, a case ending in 'succeeded' implies a successful path, while 'canceled' implies a deviation. It supports the 'Throughput and Capacity Analysis' dashboard by categorizing outcomes.

Why it matters

It provides a quick snapshot of the case outcome and helps verify if the process reached a compliant end state.

Where to get

Stripe API: PaymentIntent object, field 'status'.

Examples
succeededrequires_actionprocessingcanceled
Payout ID
PayoutId
The identifier of the bank payout that includes this payment.
Description

This attribute links the individual transaction to the bulk settlement (Payout) sent to the merchant's bank account. It is found in the Balance Transaction object associated with the charge.

It is crucial for the 'Payment Reconciliation Gap Analysis'. If a payment is settled but has no Payout ID, it indicates funds are held in Stripe and not yet transferred to the business, highlighting liquidity latency.

Why it matters

It connects the individual case to the final financial settlement step.

Where to get

Stripe API: Balance Transaction object, field 'payout'.

Examples
po_1MtwPdLkdIwHu7ix28XE9f12po_1Jq8uFLkdIwHu7ix0yNq9g34
Processing User
ProcessingUser
The user or system agent responsible for manual reviews.
Description

This attribute identifies the human agent or system logic that performed a specific activity, particularly for 'Payment Review Needed' or 'Dispute Opened'. In Stripe Radar, this might be the email of the reviewer found in review logs.

This powers the 'Manual Intervention Heatmap', allowing managers to see which team members are handling the most reviews and identifying potential bottlenecks in the manual workflow.

Why it matters

It enables resource analysis and identification of manual bottlenecks.

Where to get

Stripe API: Review object (Radar), field 'closed_by' or 'opened_reason'.

Examples
fraud_team_botanalyst@company.comsystem_automatic
Card Country
CardCountry
The country code where the card was issued.
Description

This attribute identifies the origin country of the payment instrument, typically found in 'payment_method_details.card.country'.

This serves the 'Settlement Duration Standardization' dashboard. Cross-border payments often have longer settlement cycles than domestic ones, so this attribute allows for necessary segmentation during analysis.

Why it matters

It explains latency in settlement due to cross-border banking protocols.

Where to get

Stripe API: Charge object, 'payment_method_details.card.country'.

Examples
USDEGB
Error Resolution Time
ErrorResolutionTime
The duration between identifying an error and resolving it.
Description

This calculated attribute tracks the time elapsed between 'Payment Error Identified' and 'Payment Error Resolved'.

This is the primary metric for the 'Average Error Resolution Time' KPI. Monitoring this helps optimize exception handling teams and automated retry logic.

Why it matters

It quantifies the operational cost of handling errors.

Where to get

Calculated in Process Mining tool.

Examples
4 hours12 minutes2 days
Is Disputed
IsDisputed
A boolean flag indicating if the payment was disputed by the cardholder.
Description

This attribute indicates whether a dispute (chargeback) has ever been opened for this payment. It is derived by checking if the 'dispute' field in the Charge object is non-null or by the presence of a Dispute object linked to the PaymentIntent.

It is used to filter cases for the 'Process Path Compliance Audit' to see if disputed cases followed the correct evidence submission protocols.

Why it matters

It identifies high-risk cases that require special handling and compliance tracking.

Where to get

Stripe API: Charge object, check if 'dispute' field is populated.

Examples
truefalse
Is Refunded
IsRefunded
A boolean flag indicating if the payment has been fully or partially refunded.
Description

This attribute flags whether funds were returned to the customer. It is derived from the 'refunded' boolean field or 'amount_refunded' > 0 in the Charge object.

This assists in the 'Process Path Compliance Audit'. Refunds usually require specific approval steps; this flag allows analysts to isolate these cases and verify if the 'Payment Refunded' activity occurred.

Why it matters

It identifies cases that reversed flow, which is a key process deviation.

Where to get

Stripe API: Charge object, field 'refunded'.

Examples
truefalse
Is Rework
IsRework
A flag indicating if activities were repeated within the case.
Description

This calculated attribute returns true if activities like 'Payment Instruction Sent' or 'Payment Details Validated' occur more than once for a single Payment Transaction ID.

It directly supports the 'Payment Instruction Rework Rates' KPI. High rework counts often indicate data quality issues at the source or confusing user interfaces for the customer.

Why it matters

It highlights inefficiencies and process loops.

Where to get

Calculated in Process Mining tool.

Examples
truefalse
Is Touchless
IsTouchless
Flag indicating if the process completed without manual intervention.
Description

This calculated attribute determines if the case followed a 'happy path' without activities such as 'Payment Review Needed', 'Dispute Opened', or 'Payment Error Resolved'.

It is used to calculate the 'Touchless Payment Rate' KPI. A high rate indicates efficient, automated processing, while a low rate suggests high operational overhead.

Why it matters

It measures the efficiency of automation and the quality of the standard process flow.

Where to get

Calculated in Process Mining tool.

Examples
truefalse
Risk Score
RiskScore
The fraud risk score assigned to the transaction by Stripe Radar.
Description

This attribute contains the risk score (0-99) assigned by Stripe's machine learning models. It is found in the 'outcome.risk_score' field of the Charge object.

This attribute is key for the 'False Positive Error Identification' dashboard. By correlating risk scores with successful 'Payment Error Resolved' activities, analysts can tune the thresholds for auto-blocking transactions.

Why it matters

It provides context for why a transaction might have been flagged or blocked.

Where to get

Stripe API: Charge object, field 'outcome.risk_score'.

Examples
56599
Settlement Duration
SettlementDuration
The time duration between Payment Authorized and Funds Available.
Description

This calculated attribute measures the time it took for the authorized funds to become available in the Stripe balance. It is computed by subtracting the timestamp of 'Payment Authorized' from 'Funds Available'.

This is the core metric for the 'Settlement Duration Standardization' dashboard, helping Treasury teams predict cash availability.

Why it matters

It measures liquidity velocity and cash flow latency.

Where to get

Calculated in Process Mining tool.

Examples
2 days7 days10 minutes
Required Recommended Optional

Payments Processing Activities

Capture these essential process steps and transaction milestones in your event log to enable accurate discovery and visualization of your payment lifecycle.
6 Recommended 10 Optional
Activity Description
Funds Transferred
The payout containing this transaction has been paid out to the external bank account. The money has left the Stripe platform.
Why it matters

Represents the 'Payment Settled' milestone. Used to calculate 'Settlement Duration Consistency'.

Where to get

Stripe Events API: payout.paid

Capture

Logged when payout.paid event fires

Event type explicit
Payment Authorized
The card issuer has authorized the transaction amount, and the funds are reserved. This confirms the payment method is valid and has sufficient funds.
Why it matters

A key milestone for the 'Touchless Payment Rate'. Success here indicates the primary risk hurdle has been cleared.

Where to get

Stripe Events API: payment_intent.succeeded (if capture is automatic) or payment_intent.amount_capturable (if manual capture).

Capture

Logged when payment_intent.succeeded or amount_capturable fires

Event type explicit
Payment Details Validated
The automated validation of payment details, including basic format checks and fraud rule evaluation (Stripe Radar). This step represents the system verifying the legitimacy of the payload before attempting authorization.
Why it matters

Critical for measuring the Validation and Approval Bottlenecks dashboard. Delays here indicate slow system response or complex fraud rule processing.

Where to get

Inferred by comparing the timestamp of 'Payment Request Created' and the subsequent status change (e.g., to 'processing' or 'requires_action').

Capture

Compare timestamp of creation vs first status update

Event type inferred
Payment Failed
The payment attempt was declined by the issuer or blocked by Stripe. This event triggers the error handling path.
Why it matters

The starting point for 'Average Error Resolution Time'. Analyzing codes here helps reduce the 'False Positive Error Rate'.

Where to get

Stripe Events API: payment_intent.payment_failed

Capture

Logged when payment_intent.payment_failed event is fired

Event type explicit
Payment Reconciled
The external bank statement has been matched against the Stripe payout. This confirms the cash actually landed in the company bank account.
Why it matters

The final step for 'Payment Reconciliation Gap Analysis'. Ensures the ledger matches the bank reality.

Where to get

Often requires external data or the 'payout.reconciled' status if using Stripe Treasury/Reconciliation features.

Capture

Requires Stripe Treasury usage or external ERP signal

Event type explicit
Payment Request Created
The initialization of the payment process where a PaymentIntent is created within the Stripe system. This activity captures the moment the customer or system initiates a transaction request.
Why it matters

Marks the start of the process cycle time. Essential for calculating the total end-to-end duration of the payment lifecycle.

Where to get

Stripe Events API: payment_intent.created

Capture

Logged when the payment_intent.created event is fired

Event type explicit
Dispute Closed
The dispute process has concluded, either won or lost. This marks the end of the exception loop.
Why it matters

Marks the final resolution of contested revenue.

Where to get

Stripe Events API: charge.dispute.closed

Capture

Logged when charge.dispute.closed event fires

Event type explicit
Dispute Opened
The cardholder has contested the payment. This initiates the chargeback process and removes funds from the balance.
Why it matters

A major exception flow affecting 'First Pass Reconciliation Rate'.

Where to get

Stripe Events API: charge.dispute.created

Capture

Logged when charge.dispute.created event fires

Event type explicit
Funds Available
The funds from the transaction have cleared and are added to the available Stripe balance, ready for payout.
Why it matters

Critical for 'Treasury Cash Flow Visibility'. This marks when the money is actually usable by the business.

Where to get

Stripe Events API: balance.available

Capture

Logged when balance.available event fires

Event type explicit
Payment Authentication Requested
The system determines that Strong Customer Authentication (SCA) or 3D Secure is required. The flow pauses while waiting for the customer to authenticate.
Why it matters

Explains latency in the process that is strictly customer-dependent rather than system-dependent.

Where to get

Stripe Events API: payment_intent.requires_action

Capture

Logged when payment_intent status changes to requires_action

Event type explicit
Payment Error Resolved
Inferred when a previously failed PaymentIntent transitions back to a processing or succeeded state. This implies the customer provided a new payment method or the retry succeeded.
Why it matters

Crucial for the 'Error Resolution Cycle Time' dashboard. It indicates successful recovery of revenue.

Where to get

Inferred by observing a 'payment_intent.processing' or 'succeeded' event on an ID that previously had a 'payment_intent.payment_failed' event.

Capture

Compare status sequence: Failed -> Processing/Succeeded

Event type inferred
Payment Included in Payout
The specific transaction is grouped into a Payout object. This indicates the funds are scheduled to be transferred to the bank.
Why it matters

Essential for 'Settlement Duration Standardization'. Connects individual transactions to bulk bank transfers.

Where to get

Inferred by linking the Balance Transaction to a Payout object.

Capture

Identify when Payout ID is assigned to the Balance Transaction

Event type inferred
Payment Notification Sent
A receipt or confirmation email is sent to the customer. This marks the end of the customer-facing interaction for the transaction.
Why it matters

Supports the 'Customer Notification Latency' dashboard. Delays here cause customer support tickets.

Where to get

Stripe Events API: charge.succeeded (check 'receipt_sent' boolean or 'receipt_url' generation), or receipt.sent event.

Capture

Logged when receipt.sent event fires or derived from charge object

Event type explicit
Payment Refunded
The merchant initiated a refund for the transaction. This reverses the flow of funds.
Why it matters

Identifies post-settlement rework and revenue leakage.

Where to get

Stripe Events API: charge.refunded

Capture

Logged when charge.refunded event fires

Event type explicit
Payment Review Approved
The act of a human agent or system rule approving a transaction that was previously flagged for review. This releases the transaction to proceed to authorization.
Why it matters

Required to measure 'Average Approval Cycle Time'. Bottlenecks here directly impact customer experience.

Where to get

Stripe Events API: review.closed (with reason 'approved')

Capture

Logged when review.closed event occurs

Event type explicit
Payment Review Needed
Occurs when a payment triggers a manual review rule in Stripe Radar. The payment is placed in a holding state pending human intervention.
Why it matters

Directly supports the 'Manual Intervention Heatmap' dashboard. High volumes here indicate a need to tune fraud rules or increase staffing.

Where to get

Stripe Events API: review.opened

Capture

Logged when review.opened event is fired

Event type explicit
Recommended Optional

Extraction Guides

Step by step instructions on how to extract and prepare your data from the Stripe platform