Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.paynext.com/llms.txt

Use this file to discover all available pages before exploring further.

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

ChannelTriggerWhere the receipt appears
OICardholder calls the issuing bank about a chargeBank agent’s screen during the call
OIDCardholder taps “what’s this charge?” inside the issuer’s banking appIn-app, shown to the cardholder directly
CEA dispute is filed; Visa runs CE 3.0 rules to evaluate deflectionInternal—evaluated by Visa’s dispute system
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.
EventSubscription action
OI lookup (type = "OI")Scheduled for cancellation at the end of the current billing period; status becomes scheduled_for_cancellation
OID lookup (type = "OID")No action—an in-app lookup is treated as self-service curiosity, not a dispute signal
CE lookup (type = "CE")Scheduled for cancellation at the end of the current billing period
CE terminal outcome (accepted or declined)Cancelled immediately; status becomes cancelled
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 standard subscription.updated webhook.

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

SourceFields
Dashboard → OrganizationMerchant name, URL, support email, support phone, product description, terms and conditions URL
Dashboard → Integrations → [Processor]Merchant billing address
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.
{
  "visa_order_insight": {
    "type": "OI",
    "insight_id": "4bfe0233-7b19-4e82-9c0a-1e8d2f3c5b11",
    "updated_at": "2026-04-23T12:45:51Z"
  }
}
FieldTypeDescription
typestringChannel of the most recent lookup. Open enum: OI, OID, CE. New values may be added without a version bump.
insight_idstring (UUID)Identifier for the most recent lookup. Transient—changes whenever a new lookup arrives.
updated_atstring (ISO-8601)Timestamp of the most recent lookup, UTC with Z suffix.
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.
{
  "visa_compelling_evidence": {
    "status": "accepted",
    "case_id": "a6cf8f35-d753-4a66-8e09-65b451c96eed",
    "updated_at": "2026-04-23T12:45:54Z"
  }
}
FieldTypeDescription
statusstringTerminal CE outcome. Closed enum: accepted (deflected; chargeback blocked), declined (evidence rejected; dispute proceeds).
case_idstring (UUID)Stable identifier for the CE case.
updated_atstring (ISO-8601)Timestamp of the CE outcome, UTC with Z suffix.

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.
Payload stateMeaning
visa_order_insight absentNo Visa lookup has happened on this payment
visa_order_insight.type = "OI" or "OID"Cardholder looked up the charge; no dispute filed
visa_order_insight.type = "CE", visa_compelling_evidence absentCE lookup happened; outcome pending or never delivered
visa_compelling_evidence.status = "accepted"Dispute was deflected by CE 3.0
visa_compelling_evidence.status = "declined"CE evidence was rejected; dispute proceeds as a chargeback
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.updated event. See Webhook event types and the Payment webhook object for the full schema.