Payment authority
A browser success page is not proof of payment
A customer can close a tab, reload a return URL, lose connectivity, or arrive at a success path without settlement. The server must treat the payment provider as the authority.
CreateCreate an order with a unique internal reference, exact amount, currency, selected plan, and customer identity
RedirectSend the customer to the provider or present the approved method without granting access
VerifyAuthenticate the webhook or query the provider API and confirm settled state, amount, currency, and order mapping
Apply onceUse idempotency so repeated callbacks cannot add the subscription or balance twice
ReconcileRetry pending orders in the background and alert the operator only when intervention is meaningful