Your Payments Processing Data Template
Your Payments Processing Data Template
- Recommended data attributes
- Critical payment lifecycle activities
- Step by step extraction guidance for Stripe
Payments Processing Attributes
| 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
|
|||
Payments Processing Activities
| 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
|
|||