Skip to content

šŸ› Feature Request: Add Return/Cancel URL for ā€œBack to Merchant Pageā€ Action in Snap RedirectĀ #119

@rmdhfz

Description

@rmdhfz

Summary

When a customer cancels a transaction and clicks ā€œBack to Merchant Pageā€ on the Snap payment page, they are redirected to the Finish URL. This behavior is misleading because the transaction is actually cancelled, not successfully completed.

We propose adding a new redirect field named Return/Cancel URL to properly handle this user-initiated cancellation scenario.

Steps to Reproduce

  1. Create a Snap Redirect transaction.
  2. On the Snap payment page, the customer cancels the payment process.
  3. The Customer clicks ā€œBack to Merchant Pageā€.
  4. Snap redirects the customer to the Finish URL (e.g., https://dukodu.id/finish-payment).

Actual Behavior

The system redirects the user to the Finish URL, which is designed for successful payment completion.

Expected Behavior

When a user cancels the transaction or clicks ā€œBack to Merchant Pageā€, Snap should redirect to a dedicated Return/Cancel URL (e.g., https://dukodu.id/cancel-payment).

This allows merchants to:

  1. Display a ā€œPayment Cancelledā€ or ā€œTransaction Abortedā€ message,
  2. Offer the option to retry or choose another payment method,
  3. Clearly distinguish this state from successful payments.

Impact

  • Users may believe their payment was successful when it was actually cancelled.
  • Business systems may misinterpret the transaction state.
  • Increases confusion and potential customer support tickets.
  • Degrades overall user experience (UX).

Proposed Solution

Add a third redirect field under Redirection Settings on the Midtrans Dashboard:

  • Finish URL: Redirect for successful/settled transactions
  • Error URL: Redirect for failed or technical error transactions
  • Return/Cancel URL: Redirect for user-initiated cancellations or ā€œBack to Merchantā€ actions

Attachments

Image

Image

Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions