Skip to main content
This feature connects pricing in the UI to real transactions in the backend. It covers checkout, order pages, subscription management, and payment provider webhooks.

What this feature includes

  • /checkout
  • /order/[id]
  • /dashboard/billing
  • POST /api/payments
  • POST /api/subscription
  • POST /api/webhooks/midtrans
  • POST /api/webhooks/doku

Main dependencies

Main files and configuration

What teams usually customize

  • plan names and benefits,
  • pricing,
  • upgrade CTA paths,
  • checkout copy,
  • success and failure messaging,
  • cancel and resume behavior,
  • order page messaging.

When this feature is disabled

Payments are usually turned off when:
  • the product does not sell access publicly,
  • the product is only a private member portal,
  • launch is still focused on waitlist or early validation.
When disabled, clean up:
  • checkout pricing,
  • upgrade CTA copy,
  • any public promise about subscriptions,
  • dashboard billing entry points that are no longer relevant.

Verification checklist

  1. One sandbox payment can be created successfully.
  2. The order page shows the correct state.
  3. Webhooks arrive at the correct route.
  4. Subscription state changes correctly.
  5. Cancel and resume work in a test account.
  6. Admin users can see the relevant payment and event data.
If you are still choosing a provider or filling env values, continue to Services setup and Environment variables.