> For the complete documentation index, see [llms.txt](https://docs.peakcommerce.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.peakcommerce.com/product/using-peakcommerce/ecommerce-and-payment-pages/external-payment-pages.md).

# External & Hosted Payment Pages

A **payment page** lets a customer securely add a payment method or pay an invoice without walking through a full checkout journey. This matters for moments outside the initial sale — collecting a card after a trial, updating an expired card, or settling a one-off invoice — where a lightweight, linkable page is faster than a full flow. Payment capture always runs on the billing provider's **hosted payment page** (for example Zuora's), so card and bank details go straight to the provider and never touch PeakCommerce servers, keeping your PCI scope minimal.

## What you can do

* **Add a payment method** — capture and store a default payment method on the customer's account, optionally enabling auto-pay.
* **Pay an invoice** — present a specific invoice (with an optional partial-payment amount) and collect payment, storing the method for future use.

## How it works

1. Build a **Payment**-type page in **Content → Pages** and drop in the payment component, which embeds the provider's hosted page (curated in [Settings → Hosted Pages](/product/settings/developer-tools/hosted-pages.md)).
2. **Publish** the page to get its public slug/URL.
3. Link customers to it — for example from a billing email (see [Add payment page links to Zuora email templates](/product/journeys-and-pages/pages/add-payment-page-links-to-zuora-email-templates.md)).
4. Pass **prefill parameters** on the URL (such as the account and invoice id) so the page opens already scoped to the right customer and balance.

## Key concepts

* **Hosted pages are configured once.** Each hosted payment page is registered against a billing **integration** in [Settings → Hosted Pages](/product/settings/developer-tools/hosted-pages.md) (provider page id, name, and version); your Payment-type pages reference that registration rather than re-entering provider config.
* **The provider owns the card form.** PeakCommerce orchestrates and records the result, but the sensitive capture happens inside the provider's iframe.

## Gotchas

* The hosted page must be registered in **Settings → Hosted Pages** before a Payment-type page can embed it; an unregistered or stale provider page version will fail to load.
* Prefill params scope the page — omit the account/invoice and "pay an invoice" has nothing to settle. Double-check the URL parameters when building billing-email links.
* A payment page is for capture and invoice payment, not for changing what a customer is subscribed to — for that, see [Updating Subscriptions Through Ecommerce](/product/using-peakcommerce/ecommerce-and-payment-pages/updating-subscriptions-through-e-commerce.md).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.peakcommerce.com/product/using-peakcommerce/ecommerce-and-payment-pages/external-payment-pages.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
