At a glance
The percentage of attempted Viva Payments transactions that failed (issuer-declined, fraud-flagged, or 3DS-rejected). High decline rates signal upstream issues (issuer routing, BIN problems, 3DS friction, fraud filters too tight); they directly suppress revenue.
| What it counts | COUNT(StatusId IN (E, M)) ÷ COUNT(StatusId IN (F, E, M)) × 100. E = Error / declined, M = Maximum number of payment attempts reached. X (cancelled / abandoned) excluded from both numerator and denominator, those are tracked separately as 3DS abandons. |
| API endpoint | /api/transactions with full status filter (no status= filter passed). |
| Currency | Currency-neutral (rate, not amount). |
| 3DS 2 treatment | A 3DS challenge that the issuer rejected counts as decline (E). A 3DS challenge that the customer abandoned counts as X and goes to viv_threedsecure_abandon_rate, not here. |
| Refunds | Not relevant (refunds are post-success). |
| Disputes | Not relevant (disputes are post-success). |
| Recurring rebills | Counted. A failed rebill is one decline; Viva Smart Retry can resurrect some, those re-counted as success on retry. |
| Channels | Online + POS unified. POS card-present has very low decline rate (typically <1%, the card and PIN succeed locally); online card-not-present is higher (typically 4, 8% on healthy traffic). The blended figure depends on channel mix. |
| Decline reason breakdown | This card is a single rate; the per-reason split is in viv_top_decline_reasons. |
| Time window | 7D vsP (default 7D rolling). |
| Alert trigger | >8% absolute, OR +25% relative spike vs prior week. sentiment_key: decline_rate. |
| Roles | owner, operations |
Calculation
Calculated automatically from your Viva Payments data. See the At a glance summary above for what the metric tracks and the worked example below for a typical reading.Worked example
A Spanish DTC electronics retailer (“Iberica Tech”) on Smart Checkout, one Smart POS for trade counter. The 7-day window covers 26 Apr 26 to 02 May 26.| Channel | Successful (F) | Declined (E + M) | Cancelled / 3DS abandon (X) | Decline rate |
|---|---|---|---|---|
| Online checkout | 4,210 | 312 | 168 | 312 ÷ 4,522 = 6.9% |
| Trade counter Smart POS | 84 | 1 | 0 | 1 ÷ 85 = 1.2% |
| Recurring rebills | 320 | 28 | 0 | 28 ÷ 348 = 8.0% |
- Online decline rate at 6.9% is at the upper edge of healthy. EU intra-EEA card-not-present typically runs 4, 7%; above 8% triggers the alert. Open
viv_top_decline_reasonsto see the issuer-side breakdown. Likely candidates:INSUFFICIENT_FUNDS,DO_NOT_HONOR(issuer fraud-flag),CARD_VELOCITY_EXCEEDED, or3DS_FAILED. - POS decline at 1.2% is normal. Card-present transactions involve PIN-and-chip locally; declines are almost always genuine insufficient-funds. Anything >2% on POS suggests a terminal connectivity issue.
- Recurring rebill decline of 8% is the leading indicator. Recurring failures are mostly expired card and insufficient funds; Viva Smart Retry recovers ~30, 50% over 3, 7 days but the initial decline still counts here. Track recovery via the upstream subscription platform.
- 3DS abandons at 168 are NOT in this card. A 3% 3DS abandon rate (168 out of ~ 5,000 sessions hitting challenge) is normal. They live in
viv_threedsecure_abandon_rate. Don’t conflate decline (issuer rejected) with abandon (customer gave up at the bank popup), they have different fixes.
Sibling cards merchants should reference together
| Card | Why pair it with Decline Rate |
|---|---|
viv_success_rate | The complementary view (success% = 100 − decline% − abandon%). |
viv_top_decline_reasons | The breakdown by reason code, the first card to open when this rate jumps. |
viv_threedsecure_abandon_rate | The cousin metric, customers who abandoned at the 3DS prompt. Different fix. |
viva_payment_methods | Method mix often explains rate movement (Amex declines more than debit on EU traffic). |
viva_revenue_trend | Decline-rate spikes and revenue dips usually move together. |
viva_total_transactions | Reading the absolute decline volume, not just the rate. |
Stripe stripe_decline_rate / PayPal pp_decline_rate | Cross-PSP comparison. Same merchant on different rails, often different rates. |
Reconciling against the vendor’s own dashboard
Where to look in the Viva Payments Dashboard: Sign in at viva.com/business/account/login. The closest comparable view is:Viva Business → Sales → Reports → Transactions (filter “Status: Failed” + “Status: Max attempts”; same date range)The Risk dashboard (where enabled) shows decline reasons grouped. Other views to be aware of:
- Disputes view: separate from declines; do not conflate.
- Sales overview “Success rate” tile: complementary KPI; should equal 100 − decline − abandon.
| Reason | Direction | Why |
|---|---|---|
| Time zone | Boundary days off | Athens timezone vs UTC. |
| Cancelled (X) handling | Ours excludes X, theirs may include | Viva Dashboard sometimes groups X with declines under “Failed”. This card explicitly excludes X (those are abandons). |
| 3DS late completion | Theirs may flip retroactively | A 3DS challenge completed hours later flips X to F retroactively in Dashboard; we update on next sync. |
| Comparison | Expected relationship | When divergence is legitimate |
|---|---|---|
viva_decline_rate ↔ stripe.stripe_decline_rate | Often differ by 1, 4 percentage points | Different acquirer routing per issuer. Stripe routes Greek issuers via non-Greek acquirer; Viva uses domestic. Domestic routing typically lower decline rate. |
viva_decline_rate ↔ paypal.pp_decline_rate | PayPal usually higher | PayPal carries higher-risk traffic + buyer-protection-flagged users. |
Known limitations / merchant FAQs
Decline rate spiked overnight, what to check first? Openviv_top_decline_reasons. Most spikes are one of three patterns: (1) issuer-side fraud filter triggered (a wave of DO_NOT_HONOR from one BIN range), (2) a bad ad campaign sending high-risk traffic (mix-shift, spread across reasons), (3) Viva Risk filter tightened (Viva-side rejections, visible in the Dashboard’s Risk view).
Why is Viva’s decline rate often lower than Stripe’s for Greek issuers?
Domestic routing. Viva connects directly to Greek and Cyprus issuing banks; Stripe usually routes via a non-Greek acquirer for those issuers, which adds an extra hop and 1, 3 percentage points of issuer rejection. Same logic applies in Spain, Italy, Portugal, Romania to varying degrees.
Are 3DS abandonments declines?
No. A challenge that the customer abandoned is StatusId = X, tracked in viv_threedsecure_abandon_rate. A challenge that the customer attempted but the issuer rejected is StatusId = E and counts here. Different fixes: abandon needs UX work (translate the challenge prompt, simplify); declines need issuer-side analysis.
Recurring rebill failures, do those count?
Yes. A failed rebill is one decline. Viva Smart Retry can recover some over 3, 7 days; the recovered ones flip to F and stop counting as declines. The initial failure stays in the historical metric.
My PSD2 SCA exemption rate, does that affect this?
Yes, indirectly. If you’re using SCA exemptions (low-value, MIT, recurring, trusted-merchant), more transactions skip 3DS challenges, fewer 3DS-rejection declines. If exemptions are misconfigured, the issuer pushes back challenges and you get a wave of 3DS_REQUIRED rejections.
JP Morgan ownership, did fraud filters get tighter?
No reported changes to Viva’s risk engine post-acquisition (as of dd MMM yy). The risk engine continues under existing Viva governance.
Is INSUFFICIENT_FUNDS always genuine?
Mostly, but not always, some issuers return INSUFFICIENT_FUNDS as a generic-reject when they don’t want to expose the real reason (e.g. fraud-flag). If you see a sudden cluster of INSUFFICIENT_FUNDS from a specific BIN, treat it as suspicious.
Multi-currency, does decline rate compute per-currency?
The card defaults to a blended rate. The per-currency split is on the roadmap; in the meantime use the Viva Dashboard’s currency filter to spot-check.