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
| Channel | Trigger | Where the receipt appears |
|---|
OI | Cardholder calls the issuing bank about a charge | Bank agent’s screen during the call |
OID | Cardholder taps “what’s this charge?” inside the issuer’s banking app | In-app, shown to the cardholder directly |
CE | A dispute is filed; Visa runs CE 3.0 rules to evaluate deflection | Internal—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.
| Event | Subscription 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
| Source | Fields |
|---|
| Dashboard → Organization | Merchant 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"
}
}
| Field | Type | Description |
|---|
type | string | Channel of the most recent lookup. Open enum: OI, OID, CE. New values may be added without a version bump. |
insight_id | string (UUID) | Identifier for the most recent lookup. Transient—changes whenever a new lookup arrives. |
updated_at | string (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"
}
}
| Field | Type | Description |
|---|
status | string | Terminal CE outcome. Closed enum: accepted (deflected; chargeback blocked), declined (evidence rejected; dispute proceeds). |
case_id | string (UUID) | Stable identifier for the CE case. |
updated_at | string (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 state | Meaning |
|---|
visa_order_insight absent | No 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 absent | CE 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.