docs
FeaturesTransactions

Payments

Find any payment, read its full lifecycle, refund it, and trace the funds to your payout.

A payment is a single attempt to charge a customer for a defined amount, surfaced in your dashboard as one row in the Payments tab and one detail page. Behind the scenes, it's a Payment IntentAPI with one or more ChargeAPI attempts, but in the dashboard you just see the payment.

This page covers how to find a payment, what every section of the detail page tells you, and how the dashboard surfaces refund state, processor failures, and the connection from a payment to the payout that disbursed the funds.

What you can do

Find any payment fast

Search by ID, customer email, phone, or name. Filter by status, amount range, date, country, device, or payment method type.

Read the full lifecycle

A timeline shows every step from start to authorization, 3-D Secure, the customer's action on a redirect or voucher, refunds, and the eventual payout.

Refund inline

Issue a full or partial refund from the detail page. Refund state shows up on the same payment row, no separate refunds list.

Trace funds to payout

Every successful payment carries a Connected Payout link that takes you to the payout batch where the money landed.

Find a payment

Click Transactions in the dashboard sidebar. The page opens on the Payments tab.

KPI cards

Three totals sit above the table, scoped to the filters you have applied:

CardWhat it shows
Amount capturedSum of money successfully charged across the visible payments.
Amount refundedSum of refunds processed against the visible payments.
Net amountCaptured minus refunded. The total the visible payments contributed.

Search and filters

The search box matches against payment ID, customer ID, customer email, name, and phone. The filter bar above the table holds:

FilterWhat it does
StatusMulti-select: Successful, Failed, Refunded, Partially Refunded, and others.
AmountRange or comparison (e.g. greater than, between two values). In your settlement currency.
DateRange or relative window. Uses your browser timezone.
CountryFilter by the customer's IP country at payment time.
CityFilter by IP-derived city.
DeviceMobile, tablet, desktop.
PlatformiOS, Android, Windows, macOS, and others.
BrowserChrome, Safari, Firefox, and others.
Payment methodCard, Valu, Fawry, mobile wallet.

Columns

ColumnWhat it shows
AmountThe amount in the customer's currency. A small VAT or Fee badge appears when those configs are on; hover the amount to see a payment breakdown.
StatusA color-coded badge. Hover for a one-line tooltip; on Failed, the tooltip carries the decline reason and a link to the matching error page.
CustomerEmail and phone of the paying customer, with a click-through to their profile.
Payment MethodCard brand and last 4, Valu, Fawry, or wallet identifier.
DateWhen the payment was created.
DescriptionFree-form text on the payment, when set.
Refunded DateWhen the most recent refund was issued, when applicable.
Failure ReasonA short, plain-language reason on Failed rows. Hover for the full decline code, network code, and a link to the right error page.

Click any row to open the payment.

Read a payment

The detail page is organized as a vertical narrative: who paid, what happened, where the money sits now. Sections appear in this order, with sections hiding when they don't apply.

The amount and currency are at the top, with the status badge next to them. A Held badge appears when the funds are temporarily frozen for a risk review (see below). When the payment is refundable, a Refund button sits to the right.

Customer Intelligence

A panel of signals XPay derives from this single payment, like a repeat purchase, a cross-border charge, or a payment retry. See Transaction signals for the full list and how to act on them.

Timeline

A reverse-chronological log of every step in the payment's life. Common entries:

  • Payment started. When the Checkout Session began.
  • 3-D Secure (succeeded, attempted, failed, abandoned). Card-only.
  • Customer action (succeeded or abandoned). For BNPL redirects, kiosk vouchers, OTP, mobile wallet redirects, and bank transfers.
  • Authorized or Failed. The processor's verdict on the charge attempt. Failed entries on the latest attempt carry the decline code, the network decline code, and a link to the matching page in Decline codes.
  • Refund (succeeded, pending, failed). One entry per refund.
  • Payout (scheduled, in transit, paid, failed, canceled). Tracks the payout batch the funds were assigned to.
  • Canceled. When the payment was canceled.

Multiple charge attempts on the same payment (a customer retrying with a different card) all show up here. The latest attempt's decline info is the one expanded by default.

Checkout Summary

The line items the customer paid for, drawn from the Checkout Session that created the payment. Useful when a customer asks "what did I buy?".

Transaction Details

A right-column block (stacks below on mobile) listing the metadata fields:

FieldWhat it shows
CustomerName, email, phone with a click-through to their profile.
Payment IDThe pi_* ID, with one-click copy.
Payment MethodThe card or wallet used.
DescriptionWhatever your integration set on the payment.
DatesWhen the payment was created and last updated.

Payment Breakdown

The math behind the amount. Lines appear conditionally based on configuration:

LineWhen it shows
Customer paid + Exchange rate + Settlement amountWhen the customer paid in a different currency than your settlement currency.
Payment amountAlways. The base amount before VAT and fees.
VAT (X%)When VAT collection is on for this payment.
XPay processing fees (paid by customer)When fee pass-through is on. Adds to the customer's total.
Total charged to customerWhen VAT or fee pass-through is on.
XPay processing fees (deducted)When fee pass-through is on. The amount XPay deducts.
Processing feesWhen fee pass-through is off. The flat XPay fee taken from your settlement.
Refunded amountWhen any refund has been issued.
Net amountAlways. What the payment ultimately contributed to your balance.

Connected Payout

Once the payment is settled and assigned to a payout batch, this section shows the payout ID (clickable through to its detail), amount, status, and arrival date. See Payouts and settlement for the full payout view.

Payment Method Details

For card payments: brand, masked number, fingerprint, expiry, issuing country, funding type (credit, debit, prepaid), and the 3D Secure result. For Valu, Fawry, and wallets: the relevant identifiers (loan number, voucher reference, wallet ID).

Client and device info

Geolocation, IP, browser, OS, and device type at payment time. Useful when correlating with Card-Country Mismatch or Multi-Device signals on the customer's profile.

Other payments by the same customer, with status and amount. Click any to drill across.

Statuses

Every payment carries a status. The ones you'll meet most often:

StatusWhat it means
SuccessfulPayment authorized and captured. Funds are queued for payout.
Partially RefundedAt least one refund has been issued, but the full amount is not refunded.
RefundedThe full captured amount has been refunded.
FailedThe processor declined the charge. Hover the badge in the list, or open the payment, to see the decline reason.
PendingThe payment is in flight. Common for kiosk vouchers, BNPL redirects, and bank transfers awaiting confirmation.
Requires ActionThe customer needs to complete a step, like a 3-D Secure challenge or a voucher payment.
CanceledThe payment was canceled before completion.
VoidedAn authorized payment was released without capture.
ExpiredThe payment timed out without the customer completing it.

A handful of additional statuses (like Requires Confirmation and Requires Payment Method) only appear on a payment that's mid-creation. The list view collapses these into the closest user-meaningful state.

Refund a payment

Open the payment, click Refund in the top right, and a sheet opens. Choose a full refund or enter a partial amount, optionally pick a reason (Requested by customer, Duplicate, Fraudulent), and submit. The refund appears in the timeline immediately and the payment's status flips to Partially Refunded or Refunded.

The button is hidden when the payment isn't refundable: not yet captured, already fully refunded, on a payment method that doesn't support refunds, or under a risk hold.

See Refunds for the full flow, partial refund rules, and what shows up where.

The Held badge

Sometimes a payment carries a Held badge in the header. This is a temporary risk review by XPay: the captured funds are frozen, and the Refund button is hidden until the review is resolved. Holds are placed and released by the XPay risk team. Contact support if you need clarification on a specific hold.

Where to next

On this page