Arythmatic
Monetization

Payment Intents

Monitor incomplete payment attempts, diagnose failed or pending checkouts, and cancel stuck intents from the Payment Intents screen.

Payment Intents

A payment intent is a record of a payment your platform attempted to collect — created the moment a learner starts checkout, before any money changes hands. The Payment Intents screen lets Admins watch these in-progress attempts, spot checkouts that stalled or failed, and understand why a purchase did not complete. This is an advanced page: most day-to-day revenue reporting happens on Transactions, but Payment Intents is where you go to debug the checkouts that never turned into a sale.

Payment Intents screen showing status stat cards and a table of payment attempts
The Payment Intents screen — status stat cards, search and status/gateway filters, and a table of individual payment attempts with per-intent actions

Payment intents vs. transactions

The distinction matters when you are debugging:

Payment IntentTransaction
When it is createdAs soon as a learner begins checkoutOnly after a payment actually succeeds
What it representsAn attempt — which may still be open, may have failed, or may have been cancelledA completed payment that moved money
Why you look at itTo diagnose why a purchase did not completeTo reconcile revenue and issue refunds

Every successful transaction has a payment intent behind it, but not every payment intent becomes a transaction. When a learner reaches the payment page but abandons it, is declined by their bank, or closes the tab mid-3-D-Secure, the intent is what remains — the transaction never gets created.

Opening the screen

  1. Go to Payments in the sidebar.
  2. Open Payment Intents.
  3. The Settings button (top-right) links to your payments settings if you need to review gateway configuration.

Reading the stat cards

The row of cards at the top summarizes the intents currently loaded:

CardMeaning
TotalThe total number of payment intents matching your current filters.
PendingAttempts still in progress — those with a Created, Processing, or Requires Action status.
SucceededAttempts that completed successfully and produced a transaction.
FailedAttempts the gateway rejected (for example, a declined card).
CancelledAttempts that were cancelled — manually or because they expired.

The Cancelled stat card and the Cancelled status filter are not currently reliable: a spelling mismatch between the stored status value and the label the screen matches on means genuinely cancelled attempts may not be counted or returned here, and a cancelled row may show its raw status text. Treat the Cancelled figures as indicative until this is corrected; confirm a specific attempt's real state in the Stripe or Razorpay dashboard.

Understanding intent statuses

Each intent moves through a lifecycle. The Status column shows where it currently sits:

StatusWhat it meansTypical admin action
CreatedThe intent was opened but the learner has not yet completed payment.Wait, or cancel if it is clearly abandoned.
ProcessingThe gateway is confirming the payment.Wait — this usually resolves on its own.
Requires ActionThe learner must finish an extra step (such as bank authentication / 3-D Secure).Reach out to the learner directly, or cancel the attempt if it is clearly abandoned.
SucceededPayment completed; a transaction now exists.None — the sale went through.
FailedThe payment was rejected.Hover the error icon to read the reason.
CancelledThe attempt was cancelled and cannot complete.None — the learner can start a fresh checkout.

When an intent has Failed, an error icon appears next to its status. Hover over it to read the exact gateway error message (for example, a card decline reason). This is usually the fastest way to understand why a learner's payment did not go through.

Finding a specific attempt

The filter row above the table helps you narrow the list:

  • Search by ID or customer — type an intent ID, or the customer's name or email, to filter the rows currently loaded.
  • Filter by status — restrict the table to one status (Created, Processing, Requires Action, Succeeded, Failed, or Cancelled).
  • Filter by gateway — show only Stripe or Razorpay intents.
  • Refresh — reload the latest data from the server.

The table columns cover the Intent ID (truncated, with a copy button for the full value), the Customer name and email, the Amount and currency, the Gateway, the purchased Item (a Course or a Path), the Status, and the Created date and time.

Acting on a stuck intent

Each row offers actions depending on its status:

  1. Cancel — available on Created, Processing, and Requires Action intents. Confirm the prompt to cancel an attempt that is clearly stuck or abandoned. Cancelling does not charge the learner; they can start a new checkout at any time.
  2. View in gateway — the export icon opens the intent directly in the Stripe or Razorpay dashboard, so you can inspect the raw payment record on the provider side.

A Remind control appears on Requires Action intents, but it is not yet functional — there is currently no in-app way to send an authentication reminder from this screen. To move a stalled Requires Action attempt along, contact the learner outside the platform, or cancel it once it is clearly abandoned.

Cancelling a payment intent only closes that attempt. It never refunds money — a cancelled intent never charged the learner in the first place. To reverse an actual charge, issue a refund from the completed transaction instead. See Transactions.

When to use this screen

Reach for Payment Intents when:

  • A learner reports they "paid" but were not enrolled — check for a Failed or still-Pending intent under their email.
  • You see abandoned or stuck attempts piling up and want to cancel them.
  • You need the gateway's own record of a payment to raise a support ticket with Stripe or Razorpay.

For everyday revenue, refunds, and reconciliation, use Transactions instead — Payment Intents is a diagnostic tool for the checkouts that did not complete cleanly.

Arythmatic