Skip to main content
Visa Order Insight (OI), Order Insight Digital (OID), and Compelling Evidence 3.0 (CE) all run on the same Visa lookup channel. Every time a cardholder, issuer, or dispute system queries one of your transactions, Visa pulls a receipt from PayNext and uses it to defuse the dispute. CE 3.0 is the highest-impact of the three—it can deflect a filed dispute before it becomes a chargeback. OI and OID work earlier in the funnel, defusing cardholder confusion before a dispute is ever filed.

Lookup channels

The channel that triggered the most recent lookup is recorded as visa_order_insight.type on the payment.

Subscription handling

When OI, OID, or CE fires on a payment that belongs to an active subscription, PayNext acts on the subscription that paid for that charge. All of the customer’s active subscriptions at your account are acted on. Subscriptions the same customer holds at other merchants are not affected. Track changes via the subscription_v2.scheduled_for_cancellation and subscription_v2.cancelled webhooks.
These cancellations are attributed automatically: the subscription’s cancellation_details.reason is set to fraud_prevention, with trigger_payment_id pointing at the queried payment. If a refund is issued as part of the same flow, the payment’s refund_reason is fraud_prevention too. This lets you distinguish dispute-driven cancels from your own merchant_initiated ones.

Setup

There is no integration work for OI or CE beyond keeping your Dashboard configuration current. The receipt PayNext serves is built from data you already provide.

Required fields

These are required Dashboard fields—if your account is set up, they’re already filled in. Keep them up to date and OI/CE work automatically.
The merchant billing address on each integration must match the address registered with that processor when you opened the merchant account. A mismatch causes Visa to reject the receipt.

Captured automatically

Device data—IP address, geolocation, user agent, timezone—is captured by the Web SDK at checkout and feeds directly into CE 3.0 evidence. No additional code is required.

visa_order_insight payload

Written every time Visa runs a lookup, regardless of channel. The latest lookup overwrites all three fields atomically.
This sub-object has no status field. Visa never reports back what the cardholder did with the receipt, so there’s no terminal state to capture. Presence of visa_order_insight means at least one lookup happened; type and updated_at describe the latest one.

visa_compelling_evidence payload

Written only when Visa returns a terminal CE outcome. The lookup itself updates visa_order_insight.type to CE; the deflection result lands here when CE evaluation completes.

Read the payload

CE evaluation is asynchronous. Between the lookup and the terminal outcome, the payment shows visa_order_insight.type = "CE" but no visa_compelling_evidence sub-object yet. The pending window is typically under 10 seconds.
Once visa_compelling_evidence is written, it is never cleared. Only a later CE decision (accepted or declined) can change its status.

Webhook events

Updates to visa_order_insight and visa_compelling_evidence are delivered on the payment_v2.updated event. See Webhook event types and the Payment webhook object for the full schema.