29 NEXT
  • Welcome to 29 Next Docs
  • About 29 Next
  • Changelog
  • Start Here
    • 🌟Get Started on 29 Next
      • General Settings & Branding
      • Link Domains
      • Invite Team Members
      • Add Locations & Languages
      • Checkout Settings & Policies
      • Customer Storefront Accounts
      • Fulfillment Settings
      • Support & Notifications
      • Add Payment Providers
    • ⚡Developer Docs
  • BUILD A STORE
    • 📦Products Catalogue
      • Add Products
      • Inventory
      • Product Variants
      • Gift Cards
      • Upsells & SEO Settings
      • Create Categories
      • Google Merchant XML Feed
      • Tax Settings
    • 🛒Storefront
      • Customer Accounts
      • Support Content
      • Custom Pages
      • Blogs
      • Storefront Redirects
    • 🪄Technical Settings
      • Metadata Fields & Tags
      • Configure Webhooks
      • Storefront API & Events
  • Manage Orders
    • 📥Orders
      • Create Orders
      • Order Management
      • Edit Orders
      • Refund Items & Orders
      • Create & Manage Returns
      • Order Statuses
      • Open Carts
      • Test Orders
    • 👥Customers Guide
      • Customer Carts
      • Checkout Links
    • 🔃Subscriptions Guide
      • Subscription Settings
      • Managing Subscriptions
      • Account Updater
      • Decline Salvage
      • Subscription Statuses
    • 📞Support Guide
  • Features
    • 🛍️Offers Guide
      • Create and Manage Offers
      • Product Ranges
      • Coupons
      • Shareable Coupon Links
      • Marketing Attribution
    • 💳Payments Guide
      • 3DS2 Payments
      • PayPal
      • Apple Pay
      • Google Pay
      • Stripe APMs
      • Authorize & Capture Payments
      • Disputes Guide
      • Block Lists
      • Payment Failure Cascading
      • Transaction Response Codes
    • 🚚Fulfillment Guide
      • Fulfillment Statuses
      • Location-Based Routing
      • Advanced Settings
  • Apps
    • 3PL Central
    • Avalara AvaTax
    • Campaigns App
    • Delivery Tracking
    • Everflow
    • Meta Pixel
    • Gorgias
    • Klaviyo
    • MaxMind minFraud
    • Chargeback360
    • TaxJar
    • ShipStation
    • Shop Sync
  • Analytics
    • Dashboards
    • Orders Reports
    • Customers Reports
    • Disputes Reports
    • Gift Card Reports
    • Fulfillment Reports
    • Transactions Reports
    • Support Ticket Reports
    • Subscription Reports
    • Tax Reports
    • Partner Marketing Reports
Powered by GitBook
On this page
  • Automatic Re-Attempt Flow
  • Manual Re-Attempt Flow

Was this helpful?

  1. Features
  2. Payments Guide

Payment Failure Cascading

Re-attempt failed customer transactions to save checkouts

PreviousBlock ListsNextTransaction Response Codes

Last updated 1 year ago

Was this helpful?

Merchants with more than one payment gateway may wish to support cascading - ie. the immediate re-attempt of a failed bankcard transaction at checkout onto a secondary gateway.

Automatic Re-Attempt Flow

From the follow the following steps to set up decline re-attempts:

  • Create a new to use for re-attempting declined charges

  • Add one or more gateways to the group to use for charge re-attempts

  • From the Gateway Details View, under Payment Flow select the box "Re-attempt declined initial charge attempts"

  • Specify the Gateway Group you created

  • Click Save Changes

When this setting is enabled, declined bankcard transactions will re-attempt one time only if the initial transaction attempt's decline reason code is one of the following:

  • 2000 - Do Not Honor

  • 2003 - Processor Declined

  • 2004 - Authorization Required

  • 2005 - Processing Error

  • 3007 - Invalid Card

  • 3011 - Merchant Error

Manual Re-Attempt Flow

Developers wishing to customize their decline re-attempt logic should use the following logic in their application.

  1. Upon a failed payment transaction, a card_token is returned in the API response:

{
  "payment_details": "Unable to process the purchase transaction.",
  "payment_response_code": "2000",
  "payment_method": {
     "card_token:"1hSk5wZmkCtgaC3TOtahuV6Z2R", 
    }
}
  1. To create a secondary payment attempt (the "cascade" attempt after an initial failure), the transaction request must use payment_method: "card_token" and pass the card_token from the initial response.

"payment_method": "card_token",
"payment_details": {
   "card_token": "1hSk5wZmkCtgaC3TOtahuV6Z2R",
   "payment_gateway": <gateway_id>
}

On this secondary attempt using the card token, specify under payment_details an alternate payment_gateway to re-attempt the failed charge on the designated secondary gateway.

Note: Re-attempting payment failures is not recommended for Hard Decline reasons are returned in an initial response. Only Soft Declines are likely to approve upon re-attempt. Your application should parse the to decide whether a charge should be re-attempted.

💳
Transaction Response Code
💳Payments Guide
Payments Settings
Gateway Group