Skip to main content
Checkouts are payment sessions created when customers initiate a purchase. The checkouts page gives you visibility into your checkout flow and helps identify where customers may be dropping off.

What are Checkouts?

A checkout is created when a customer starts the payment process. Checkouts track the entire payment journey from initiation to completion (or abandonment).

Checkouts Dashboard

The checkouts page in your moneydevkit dashboard displays all checkout sessions with:
  • Checkout ID - Unique identifier for the session
  • Status - Current state of the checkout (pending, completed, expired)
  • Amount - The checkout amount and currency
  • Created Date - When the checkout was initiated
  • Customer - Associated customer information (if provided)
  • Invoice - Bitcoin invoice details

Checkout Statuses

StatusDescription
PendingCheckout created, awaiting payment
CompletedPayment received and confirmed
ExpiredCheckout expired before payment was received

Analyzing Your Checkout Flow

Checkouts help you understand:
  • Conversion rate - Compare total checkouts to completed orders
  • Drop-off points - Identify where customers abandon the payment process
  • Payment timing - See how long customers take to complete payments
High numbers of pending or expired checkouts may indicate friction in your checkout experience. Consider simplifying your checkout flow or providing clearer payment instructions.

Creating Checkouts

Checkouts are created programmatically using the moneydevkit SDK:
import { useCheckout } from '@moneydevkit/replit'

const { navigate } = useCheckout()

// Create a checkout
navigate({
  title: 'Product Name',
  description: 'Product description',
  amount: 500, // Amount in cents
  currency: 'USD',
  successUrl: '/checkout/success',
  metadata: {
    orderId: 'order-123'
  }
})

Requiring Customer Information

Use requireCustomerData to collect customer information during checkout. The checkout will display a form for customers to enter the specified fields:
navigate({
  title: 'Product Name',
  amount: 500,
  currency: 'USD',
  successUrl: '/checkout/success',
  requireCustomerData: ['email', 'name']
})
See the Customers documentation for more details on collecting customer data. See the Replit integration guide or Next.js integration guide for complete setup instructions.