> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.nozle.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Payments

> Payment processing, retries, and dunning

Nozle uses Stripe as the payment processor. Payments are initiated during checkout and processed automatically for recurring subscriptions.

**Payment flow:**

1. Customer enters payment details during Stripe checkout
2. Stripe processes the payment
3. Webhook (checkout.session.completed or invoice.paid) notifies Nozle API
4. Nozle API updates subscription status

**Payment methods:**
The PaymentMethodDisplay component shows the customer's saved card:

```tsx theme={null}
<PaymentMethodDisplay
  paymentMethod={{ last4: '4242', brand: 'visa', expMonth: 12, expYear: 2025 }}
  onUpdatePaymentMethod={() => router.push('/update-card')}
/>
```

**Failed payments and retries:**
When a payment fails (invoice.payment\_failed webhook), the system can retry automatically based on the dunning configuration:

* Automatic dunning: configurable retry schedule
* Manual dunning: manually trigger retry

**Credits:**
Customers can prepay via credits:

```tsx theme={null}
<CreditBalance customerId="cust_123" />
<CreditTopUpButton onSuccess={(amount) => toast('Added ' + amount + ' credits')} />
<CreditHistory customerId="cust_123" />
```

Credit transaction types: grant, deduct, purchase, application.

For detailed payment configuration, see:
