Skip to main content
A Checkout Link is the fastest way to start selling: paste one URL into a button, a bio, an email, or a DM, and every visitor who clicks it lands on a hosted checkout for the products you chose. Because Macropay is the Merchant of Record, that checkout already includes worldwide sales tax and VAT, fraud screening, and a PCI DSS Level 1 compliant payment form — you never write a line of payment code.
Need to spin up checkouts programmatically — one per cart, per session, or per agent run? A static Checkout Link isn’t the right primitive. Reach for the Checkout Sessions API instead.
Unlike a raw session URL, a Checkout Link is durable. Each click hits the Macropay API, which mints a fresh, short-lived checkout session and redirects the buyer to it.
Always share the Checkout Link URL, never the URL of a session it redirects to. Session pages are temporary and expire if no purchase completes — so a copied session link will eventually 404 for your customers. The Checkout Link itself never expires.
Open the Products section in your dashboard, switch to the Checkout Links tab, and click New Link.
Each link has a few configurable fields:

Label

An internal name to help you tell links apart — for example launch-week-discord or newsletter-footer. Buyers never see it.

Products

Attach one product or several. When you add multiple, the checkout shows a switcher so the buyer can pick between them on the same page — handy for a “Standard vs. Pro” or “monthly vs. annual” choice.

Discount

Preset a discount and it’s applied automatically the moment a buyer arrives — no code to type, no step to forget. This is the cleanest way to run a campaign-specific price: give your Black Friday link a 30% preset and the savings appear on the first page load. Turn on Allow discount codes if you also want buyers to enter their own codes on top of (or instead of) the preset.
Code-less discounts can only be delivered through a Checkout Link preset or the Checkout Sessions API. To create and manage the discounts themselves, see the Discounts guide.

Metadata

An optional key-value object for anything you’ll want when the order lands — an affiliate ID, a campaign tag, an internal SKU. Macropay copies this metadata onto the generated Checkout object, and on success onto the resulting Order and/or Subscription, so it flows straight through to your webhooks and reporting. Drop the link anywhere a URL can live: a website button, a Framer or Raycast landing page, a Slack announcement, an affiliate post via Affonso, or a one-to-one message to a customer.

Query parameters

Append query parameters to tailor the checkout per click — prefill what you already know, and capture where the buyer came from.

Prefill checkout fields

Pass any of these to pre-populate the form. Great for “you’re already logged in, just confirm” flows.
string
Prefill the customer’s email.
string
Prefill the customer’s name.
string
Pre-populate the discount-code input so the buyer can see it filled in. Works only with discounts that have a code set — see Discounts.This differs from a preset discount: a preset is applied silently and automatically, whereas discount_code simply fills the visible input field.
string
Prefill the amount for Pay What You Want pricing.
string
Prefill a custom field’s value, where {slug} is the field’s slug.

Capture attribution

These parameters are written automatically onto the Checkout’s metadata, so attribution travels with the order all the way to your webhooks and ledger.
string
Your own reference ID for the checkout session.
string
UTM source of the checkout session.
string
UTM medium of the checkout session.
string
UTM campaign of the checkout session.
string
UTM content of the checkout session.
string
UTM term of the checkout session.

Example

A link that arrives pre-filled, pre-discounted, and fully attributed:
Because Macropay is the Merchant of Record, every order through a Checkout Link is sold under our entity: we calculate and remit the right sales tax or VAT for the buyer’s location, keep that liability off your books, and handle any disputes on your behalf.