# Payment Links (/en/features/payment-links)

Create a shareable URL in the dashboard and accept payments without writing any code. Send the link by email or WhatsApp, post it on social, drop it on a button, or print a QR code.

A Payment Link is a URL you create once and accept payments through forever. You build it in the dashboard by picking products from your catalog, choosing what to collect from the customer, and setting what happens after they pay. XPay gives you back a link that any number of people can pay through.

Use Payment Links when you want to take a payment without setting up a website or writing code. Email an invoice to one customer, post the link on Instagram for a launch, print a QR code on a flyer, drop it in a button on Webflow. The link works anywhere a URL works.

## What you can do [#what-you-can-do]

<Cards>
  <Card icon="<ShoppingBag />" title="Sell from your catalog">
    Pick products and prices you've already created. One link can carry many products, with quantity
    controls if you want.
  </Card>

  <Card icon="<Users />" title="Collect what you need">
    Toggle on customer name, phone, billing or shipping address. Add your own custom fields (text,
    number, dropdown, checkbox).
  </Card>

  <Card icon="<Tag />" title="Run promotions">
    Allow customers to enter promotion codes at checkout, or attach a custom-amount item if you want
    them to choose what to pay.
  </Card>

  <Card icon="<Sparkles />" title="Match your brand">
    Customer-facing checkout uses your business name, logo, and brand color. The same link works in
    test mode and live mode based on the API mode you're in when you create it.
  </Card>
</Cards>

## Create a payment link [#create-a-payment-link]

<Steps>
  <Step>
    ### Open the create page [#open-the-create-page]

    In the dashboard sidebar, click **Payment links** under **Shortcuts**, then click **Create payment link** in the top right.

    You can also open the page directly at **/payment-links/create**.
  </Step>

  <Step>
    ### Add products [#add-products]

    In the **Payment** tab, search for products in your catalog or click **Add new product** to create one inline. Each product you add becomes a line item on the link.

    For each product, pick how its quantity behaves with the **Quantity** control:

    * **Fixed.** The customer buys exactly the quantity you set. They can't change it.
    * **Adjustable.** The customer picks a quantity within a range. Set **Starts at**, **Min**, and **Max**. A **Min** of 0 lets the customer remove the item from the order on the checkout page.
    * **Add-on.** An optional upsell. It starts out of the order, and the customer adds it on the checkout page if they want it. Set the **Up to** maximum.

    You can also:

    * Add a **custom-amount item** if you want the customer to enter the amount themselves (donations, "pay what you want"). Custom-amount items must be the only item on the link.
    * Mix products freely, but every line item must share the same currency.

    Make every product an **Add-on** and the link opens with an empty order. The customer adds at least one item before they can pay.
  </Step>

  <Step>
    ### Choose what to collect [#choose-what-to-collect]

    Under **Options**, toggle the customer fields you want to ask for:

    * **Collect customer name**
    * **Collect billing address**
    * **Collect shipping address**
    * **Collect phone number**
    * **Allow promotion codes**

    Pick the **Submit button text** that suits the sale: **Pay**, **Subscribe**, **Book**, or **Donate**.

    To collect anything else, check **Add custom fields**. Each custom field can be **Text**, **Number only**, **Dropdown**, or **Checkbox**, with optional character limits.
  </Step>

  <Step>
    ### Set what happens after payment [#set-what-happens-after-payment]

    Open the **Confirmation** tab. You have two options:

    * **Show hosted confirmation page** (default). XPay shows the customer a built-in success page. You can check **Replace default with custom message** to write your own thank-you message, and add a **Return to merchant URL** to put a "Return to..." button on the page.
    * **Redirect to URL**. The customer is redirected to a URL you provide right after a successful payment. Use this when you have a return page on your own site.
  </Step>

  <Step>
    ### (Optional) Adjust advanced options [#optional-adjust-advanced-options]

    Open **Advanced options** if you want to:

    * Check **Override merchant fee defaults** to control fee handling for this specific link: **Customer pays platform fee** adds the platform fee to what the customer pays, and **Collect VAT from customer** adds your product VAT on top.

    <Callout type="warn">
      In compliance with regulations, **Customer pays platform fee** is gated on XPay approval. Contact
      your account manager to enable fee pass-through on your account before turning it on for a link.
    </Callout>
  </Step>

  <Step>
    ### Click Create [#click-create]

    In the top right, click **Create**. You land on the link's detail page with a copy-ready URL at the top.

    The link is active immediately. Anyone who opens the URL can pay.
  </Step>
</Steps>

## Share it [#share-it]

The detail page gives you four ways to put the link in front of customers.

<Cards>
  <Card icon="<Copy />" title="Copy the link">
    Hit **Copy link** to grab the URL. Paste it anywhere: invoice email, Slack, WhatsApp, a button
    on your site, an Instagram bio.
  </Card>

  <Card icon="<QrCode />" title="Show a QR code">
    Click **Show QR code** to open a printable QR code. Useful for posters, cards at the register,
    or restaurant tables.
  </Card>

  <Card icon="<Mail />" title="Send by email">
    Click **Send payment link**, choose **Email**, and enter the customer's address. XPay sends an
    email with the link from your business name.
  </Card>

  <Card icon="<MessageCircle />" title="Send by WhatsApp">
    Same flow with **WhatsApp**: enter the customer's mobile number and XPay delivers the link in a
    WhatsApp message.
  </Card>
</Cards>

The same link is accepted by any number of customers. Don't reuse one link to gate a single seat or a limited slot. If a sale is one-of-a-kind, deactivate the link after the customer pays.

## What customers see [#what-customers-see]

When a customer opens the link, they land on XPay's hosted checkout page. It shows your business name, logo, and brand color, the products you put on the link, and a payment form on the right.

Removable and **Add-on** items show up here too. A removable item has a remove button, and add-ons sit under an "Add to your order" section with an **Add** button. When every item is an add-on, the order starts empty and the pay button stays off until the customer adds something.

The form asks for the fields you toggled on (name, phone, address, custom fields). If you allowed promotion codes, the customer can enter one. They pick a payment method (card, Valu, Fawry, or anything else you've enabled), fill in the form, and pay.

If the payment needs 3D Secure, the bank's challenge runs inside the same page. Card data is captured on a secure form hosted by XPay; nothing card-related ever runs on your site.

After a successful payment, the customer either lands on your **Redirect URL** or sees the **hosted confirmation page** (whichever you picked under Confirmation), with the optional &#x2A;*Return to...** button if you set a return URL.

## Read a payment link [#read-a-payment-link]

Open any link from the **Payment links** list page. The detail page is split into a left two-thirds (Line Items, Payment methods, Details, Custom Fields) and a right one-third with a live preview of what customers see. Below both sits a **Payments** section.

### Header [#header]

The link's name (the first product, with "and N more" when there are multiple) and a status badge (**Active** or **Archived**) sit at the top. Two buttons on the right:

* **Edit payment link** opens a sheet to update products, collection toggles, confirmation behavior, and fees.
* **Send payment link** opens the email and WhatsApp send flow.

The link's URL appears below the header with a one-click **Copy link** button.

### Line Items [#line-items]

Every product on the link, with the formatted price, the interval (One time, Per month, Every N weeks, "Customers choose what to pay"), the quantity, and whether **Adjustable Quantity** is on (with the min and max bounds when set). An **Add-on** item carries an "Add-on" badge, its quantity reads "Customer adds it", and an adjustable item shows its bound as "Up to N".

### Payment methods [#payment-methods]

The list of payment methods currently enabled for this link, with a **Manage** button. See [Payment methods on a link](#payment-methods-on-a-link) below.

### Details [#details]

Every collection toggle and configuration option, surfaced as labeled rows: **Created**, **Collect customer name**, **Collect billing address**, **Collect shipping address**, **Collect Mobile Numbers**, **Allow promotion codes**, **Call to action button**, **Customer creation**, **Fee configuration** (with **Customer pays platform fee** and **VAT collection** sub-rows), and **Return to merchant URL** when set.

### Custom Fields [#custom-fields]

When you added custom fields, each one appears here with its label, type (Text, Number only, Dropdown, Checkbox), optional flag, character limits, and dropdown options.

### Payments [#payments]

Every successful payment that came through this link, with status, amount, customer, payment method, and date. Click any row to open the payment.

## Payment methods on a link [#payment-methods-on-a-link]

Every Payment Link inherits your **default** payment method configuration unless you pin it to a specific one. The configuration controls which payment methods (card, Fawry, Valu, mobile wallets, and so on) appear on the customer's checkout page.

On the link's detail page, the **Payment methods** section shows the currently-enabled methods as a row of icons and labels. Below the list, a small caption tells you which configuration is being used.

The caption reads &#x2A;*"Using your default configuration"** when the link follows your account default. If you change methods on the default later, those changes flow through to this link automatically.

The caption shows the specific configuration's name when the link is pinned to it. Changes to your default don't affect this link.

To switch the configuration, click **Manage** to the right of the section heading. A sheet opens listing every configuration on your account, with the current one marked. Click another to switch. A "Configuration updated" toast confirms; the section re-renders with the new methods.

Picking the **default** configuration in the sheet doesn't pin the link to that configuration's ID. It clears the override so the link follows whichever configuration is the default at any given time. Picking a non-default pins the link to that one specifically.

See [Payment methods](/features/checkout-customization/payment-methods) for how to create configurations and toggle methods within them.

## Manage your payment links [#manage-your-payment-links]

The **Payment links** list page shows everything you've created, with the product image, total price, status, and last-edit date. Click a row to open the link's detail page.

| Action                  | Where to do it                                                                                           |
| ----------------------- | -------------------------------------------------------------------------------------------------------- |
| Edit a link             | On the detail page, click **Edit payment link**. Update products, collection, confirmation, fees.        |
| Re-send a link          | On the detail page, click **Send payment link** to email or WhatsApp it again.                           |
| Deactivate a link       | On the list page, select one or more links, then click **Deactivate** in the bulk-action bar at the top. |
| Re-activate a link      | Same place. Select deactivated links and click **Activate**.                                             |
| See payments for a link | On the detail page, scroll to the **Payments** section to see the transactions that came through it.     |

A deactivated link's URL keeps existing for reporting, but customers who open it see an "unavailable" state and can't pay.

## Where to next [#where-to-next]

<Cards>
  <Card icon="<PencilLine />" title="Make a product first" href="/features/products/product-catalog">
    Payment Links pull from your catalog. Create products and prices before you build a link.
  </Card>

  <Card icon="<LinkIcon />" title="Use the link in code" href="/integrate/integration-patterns/payment-links">
    Embed the URL on your site, hide it behind a button, listen for paid events, or look up specific
    transactions. The developer-side companion to this page.
  </Card>

  <Card icon="<Sparkles />" title="Match your brand">
    Set your business name, logo, and brand color in **Settings → Branding**. The same brand drives
    Payment Links, hosted checkout, and email receipts.
  </Card>
</Cards>