Momen Payment API

Payment link status

Lifecycle of pending, succeeded, expired, canceled, and failed.

Payment link status

A payment link moves through a small set of statuses:

StatusTerminalMeaning
pendingnoAwaiting payment
succeededyesPaid and recorded
expiredyesPassed its expiry unpaid
canceledyesCancelled before payment
failedyesReserved — not produced in v1

Terminal statuses never change again. Stop polling once you see one. Prefer webhooks over polling.

Lifecycle

Loading diagram…

Rejected payment attempts

A rejected payment attempt does not move the link to failed. The link stays pending and the payer may try again. failed is reserved for future payment types; handle it as terminal if you ever receive it.

In sandbox, POST /sandbox/simulate with event: "failed" models this: the link stays pending and no webhook is delivered.

Fees until a method is chosen

fee, payer_amount, and net_amount are null until a payer starts a payment attempt and picks a method. They then reflect the most recent attempt; on a succeeded link that is exactly what was charged.

On this page