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

# Collecting Payment for Enrollments

> Learn how to send payment links to clients, track payment status, record manual payments, and issue refunds for training package enrollments

## Overview

Pawgress lets you collect payment for training package enrollments directly through Stripe. Once a client is enrolled in a package, you can generate a secure checkout link and share it with them. When they pay, Pawgress automatically updates the enrollment status and notifies you by email.

<Warning>
  **Prerequisites**

  Before collecting payment, make sure you have:

  * [Connected your Stripe account](/guides/integration/connect-stripe) with charges enabled
  * [Enrolled the client in a training package](/guides/getting-started/enroll-client)
  * A Pawgress Pro subscription
</Warning>

## Sending a Payment Link

### Step 1: Open the Enrollment

From your **Clients** page, find the client and click **View Client**. Scroll down to the **Enrollments** section and click **View Details** on the enrollment you want to collect payment for.

<img src="https://mintcdn.com/pawgress/DvsHqkWmtmLmYjz4/images/guides/billing/collect-payment/enrollment-details.png?fit=max&auto=format&n=DvsHqkWmtmLmYjz4&q=85&s=facc75b80fc841bd526ed52874bb51e7" alt="Client page showing the Enrollments section with a View Details button" width="3588" height="1578" data-path="images/guides/billing/collect-payment/enrollment-details.png" />

<Caption>Open the enrollment details from the client's profile page</Caption>

### Step 2: Generate the Checkout Link

On the enrollment details page, if the enrollment has not yet been paid, you'll see a **Send Payment Link** button (or **Generate Payment Link**). Click it to create a Stripe checkout session.

Pawgress will generate a secure, one-time checkout link tied to this specific enrollment.

<img src="https://mintcdn.com/pawgress/DvsHqkWmtmLmYjz4/images/guides/billing/collect-payment/send-payment-link.png?fit=max&auto=format&n=DvsHqkWmtmLmYjz4&q=85&s=78730ba1155df36bbfad8f6fe060cd89" alt="Enrollment details page showing the Send Payment Link button" width="2150" height="1668" data-path="images/guides/billing/collect-payment/send-payment-link.png" />

<Caption>Click Send Payment Link to generate a Stripe checkout URL for this enrollment</Caption>

<Info>
  **Link Expiry**

  Payment links expire after 24 hours. If your client doesn't complete payment in time, simply return to the enrollment and generate a new link.
</Info>

### Step 3: Share the Link With Your Client

The checkout link gets automatically copied to clipboard. Send it to your client however works best — email, text message, or any messaging app. The link takes your client directly to a secure Stripe-hosted checkout page.

### Step 4: Client Completes Payment

Your client opens the link in any browser and pays with a credit or debit card. No Stripe account is required on their end.

After paying, they're redirected to a confirmation page. The payment goes directly into your Stripe account, minus any applicable platform fee.

<img src="https://mintcdn.com/pawgress/DvsHqkWmtmLmYjz4/images/guides/billing/collect-payment/stripe-checkout-client.png?fit=max&auto=format&n=DvsHqkWmtmLmYjz4&q=85&s=111323bf2cdd89bc48ac4e526e13dea7" alt="Stripe checkout page shown from the client's perspective" width="2150" height="1490" data-path="images/guides/billing/collect-payment/stripe-checkout-client.png" />

<Caption>The client sees a clean, mobile-friendly Stripe checkout page</Caption>

## Payment Confirmation

### Automatic Status Update

As soon as the client's payment is confirmed, Pawgress updates the enrollment automatically:

* **Payment status** changes to **Paid**
* **Enrollment status** remains **Active**
* A timestamp and Stripe transaction ID are recorded

<img src="https://mintcdn.com/pawgress/DvsHqkWmtmLmYjz4/images/guides/billing/collect-payment/enrollment-paid.png?fit=max&auto=format&n=DvsHqkWmtmLmYjz4&q=85&s=771f700534b3d6774c5625dcc41bf064" alt="Enrollment details page showing the Paid badge and payment details" width="2150" height="1666" data-path="images/guides/billing/collect-payment/enrollment-paid.png" />

<Caption>The enrollment details page updates to show the Paid status and payment date</Caption>

### Email Notification

You'll receive an email notification as soon as a client pays. The email includes the client's name, the package they paid for, the amount, and a link to view the enrollment in Pawgress.

<Tip>
  **Notification Settings**

  You can turn payment email notifications on or off in your **Account Settings → Notifications**. They're enabled by default so you never miss a payment.
</Tip>

<img src="https://mintcdn.com/pawgress/DvsHqkWmtmLmYjz4/images/guides/billing/collect-payment/payment-email.png?fit=max&auto=format&n=DvsHqkWmtmLmYjz4&q=85&s=6100c0598f3d880ddb38047c5bf42f8c" alt="Email notification showing client name, package, and amount paid" width="1190" height="1076" data-path="images/guides/billing/collect-payment/payment-email.png" />

<Caption>The payment notification email you receive when a client pays</Caption>

## Tracking Payment Status

Each enrollment shows a payment status badge:

* **Unpaid** — Payment hasn't been collected yet
* **Paid** — Payment was successfully received via Stripe or recorded manually
* **Failed** — The client's payment attempt was declined; you can resend a checkout link
* **Refunded** — A refund was issued for this enrollment

## Recording Manual Payments

If a client pays by cash, e-transfer, or another method outside of Stripe, you can mark their enrollment as paid manually.

### Mark as Paid

1. Open the enrollment details page
2. Click **Mark as Paid**
3. Confirm the action in the dialog

The enrollment will be updated to **Paid** with the payment method recorded as **Manual** and today's date as the payment date.

<Note>
  Manual payments don't process any money through Stripe — they simply record that payment was received. Revenue from manual payments is still tracked in your revenue dashboard.
</Note>

### Mark as Unpaid

If you need to reverse a manual payment (for example, if a cheque bounced):

1. Open the enrollment details page
2. Click **Mark as Unpaid**
3. Confirm the action

This only works for manually recorded payments. Stripe payments must be handled through a refund instead.

## Issuing Refunds

If you need to refund a client who paid through Stripe, Pawgress handles the refund directly — you don't need to log in to your Stripe dashboard.

### How to Issue a Refund

1. Open the enrollment details page for the paid enrollment

2. Click **Cancel Enrollment**

3. In the cancellation dialog, choose your refund option:
   * **No Refund** — Cancel the enrollment without returning any money
   * **Partial Refund** — Refund based on unused sessions (Pawgress calculates a suggested amount automatically)
   * **Full Refund** — Return the full amount paid

4. Review the refund amount, adjust if needed, and confirm

<img src="https://mintcdn.com/pawgress/DvsHqkWmtmLmYjz4/images/guides/billing/collect-payment/refund-dialog.png?fit=max&auto=format&n=DvsHqkWmtmLmYjz4&q=85&s=3ce3f84ab48a92b1767c71964ab932ad" alt="Cancellation dialog showing refund options and calculated amount" width="890" height="1122" data-path="images/guides/billing/collect-payment/refund-dialog.png" />

<Caption>Choose a refund option when cancelling a paid enrollment</Caption>

<Tip>
  **Partial Refund Calculation**

  When you select a partial refund, Pawgress suggests an amount based on the number of remaining (unused) sessions divided by the total sessions in the package, multiplied by the price paid. You can adjust this amount before confirming.
</Tip>

### Refund Timeline

Stripe processes refunds within 5–10 business days, depending on your client's card issuer. The enrollment will show a **Refunded** status immediately after you confirm.

<Info>
  **Refund Emails**

  Stripe automatically sends your client an email confirming the refund. You don't need to notify them separately, though a personal follow-up is always a nice touch.
</Info>

## Revenue Tracking

Every Stripe payment, manual payment, and refund is recorded in your revenue dashboard. You can view earnings by date range and see a breakdown by enrollment.

Learn more in the [Revenue Tracking](/guides/billing/subscription-management) section of your account.

## Troubleshooting

### Payment link isn't working

Check that your Stripe account has **Charges Enabled** in your [Integrations settings](/guides/integration/connect-stripe). If the link has expired (older than 24 hours), generate a new one from the enrollment page.

### Client says their payment failed

Ask the client to try a different card or contact their bank. Once they resolve the issue, generate a new checkout link and resend it — the previous failed session cannot be reused.

### Refund isn't showing up

Refunds can take 5–10 business days to appear on your client's statement. If it hasn't appeared after 10 business days, contact [support@pawgress.ca](mailto:support@pawgress.ca) with the enrollment details.

### Additional Help

* Email: [support@pawgress.ca](mailto:support@pawgress.ca)
* In-app: Click **Support** in the navigation

## Next Steps

* [Schedule sessions](/guides/scheduling/schedule-session) that count against the paid enrollment
* [Create a training report](/guides/getting-started/training-reports) to share progress with your client
* [Connect Google Calendar](/guides/integration/google-calendar) to sync scheduled sessions automatically
