Checkout return reconciliation
Return reconciliation closes the timing gap between a successful Stripe-hosted checkout and asynchronous webhook delivery.
What this feature does
Return reconciliation closes the timing gap between a successful Stripe-hosted checkout and asynchronous webhook delivery.
This guide describes the behavior implemented by Mallello, the people allowed to use it, and the operational checks that keep it dependable.
Detailed workflow
- Stripe redirects the browser with an opaque session identifier.
- The server retrieves that session using the correct platform or connected context.
- It verifies payment/subscription state, account ownership, and metadata.
- It idempotently persists the corresponding order or subscription.
- The UI refreshes account state and gives a truthful confirmed, pending, or failed result.
Rules and permissions
- A return URL is not signed proof by itself.
- Session ownership must match the authenticated user.
- Reconciliation and webhooks must safely perform the same transition more than once.
- Provider object mode and connected-account context must match creation.
Failure handling and edge cases
- If retrieval fails, show pending/support guidance without instructing another payment.
- A missing webhook secret does not prevent API retrieval but does prevent reliable long-term synchronization.
- Sessions expire and should not be stored as reusable credentials.