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.
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 showsvisa_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 tovisa_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.