How to Create a Stripe Payment Link for a Service Business

You can accept payment for a service without building a website or writing code. Create a Stripe Payment Link for a clearly defined service, choose the price and payment type, configure the customer information you genuinely need, then share the hosted checkout URL by email, message, social media, or QR code.
The link is only the checkout step. A professional service workflow still needs a written scope, delivery terms, refund or cancellation policy, and a reliable way to confirm that the payment actually succeeded.
What you need before creating the link
Start with an active Stripe account in a country where Stripe and Payment Links are available. Your account may need business and bank details before payouts are enabled. Payment methods, currencies, taxes, and fees vary by account and location, so check the current settings and pricing shown in your own Stripe Dashboard.
Define the offer before opening Stripe:
- Service name: Use a customer-friendly name such as “90-Minute Brand Strategy Session.”
- Scope: State exactly what is included and what is not.
- Price: Decide whether it is a one-time fee, a deposit, or a recurring subscription.
- Delivery: Explain how and when the client receives the service.
- Policies: Prepare cancellation, rescheduling, refund, privacy, and contact information.
If you are still testing demand, sell a small paid pilot before developing a complex offer. Our guide to validating a startup idea before building an MVP explains how willingness to pay provides stronger evidence than compliments alone.
How to create a Stripe Payment Link step by step
1. Create a product and price
Sign in to the Stripe Dashboard, open Payment Links, and select + New. Choose an existing product or add a new one, then enter its name, description, and price. Stripe’s official Payment Links creation guide documents this no-code Dashboard flow.
Use the description to identify the deliverable, not to write a long sales page. For example: “One 90-minute video consultation plus a written action plan delivered within three business days.” The customer should be able to connect the checkout item to the proposal or message they received.
Choose a one-time price for a project, deposit, session, or fixed package. Use a recurring price only when the customer is knowingly buying an ongoing service. A subscription should state its billing interval, what repeats, and how the customer can cancel or manage it.
2. Decide whether the link is reusable
A normal Payment Link can be shared with multiple clients. That works well for a standardized package. If the offer has limited capacity—or the link is intended for one purchase—Stripe lets you limit completed payments. Once the limit is reached, the link deactivates automatically.
For bespoke work, consider creating a separate product or link for each package rather than using one vague “consulting payment” link. This makes reconciliation easier and reduces disputes about what the customer bought.
3. Collect only the information you need
Under the link’s options, select the fields required to deliver the service. Stripe can collect customer names, business names, billing or shipping addresses, phone numbers, and custom fields. According to Stripe’s checkout customization documentation, custom fields can use text, numbers, or a dropdown.
For a service business, useful fields might include:
- Company name
- Project or booking reference
- Preferred service tier
- A short delivery note
Keep the form short. Do not collect passwords, payment-card data, health information, government identifiers, or other sensitive data in a custom field. Stripe explicitly warns against using these fields for protected, sensitive, or legally restricted information. If you need a detailed project brief, send the client to a separate secure intake form after checkout.
4. Add policies, contact details, and branding
Configure your logo, colors, and public business details in Stripe’s branding and Checkout settings. Display support contact information and your return or refund policy where appropriate. If you add your terms-of-service URL to the account’s public details, Stripe can require the customer to accept those terms at checkout.
That checkbox does not replace a proper agreement for complex work. A Payment Link proves that a customer completed checkout; it does not automatically define intellectual-property rights, revisions, deadlines, acceptance criteria, or every contractual term. Send a proposal or service agreement before collecting a large payment.
5. Configure taxes and payment methods carefully
Tax treatment depends on what you sell and where you and the customer are located. Stripe Tax can calculate tax when configured, but it is a separate paid product and requires accurate registrations, product tax codes, and settings. Consult a qualified adviser when the obligation is unclear.
Stripe may present different payment methods based on your account, currency, customer, and configuration. Do not promise a particular method until you see it available on the live checkout. Some bank debit or voucher methods can remain pending after the customer submits the form, so “checkout completed” is not always the same as “funds confirmed.”
6. Set the after-payment experience
Open After the payment while creating or editing the link. You can show a custom confirmation message or redirect the buyer to your own page. Stripe’s post-payment guide also explains how to enable automatic or manual email receipts.
A useful service-business confirmation should tell the customer:
- That the payment was received or is being processed
- What happens next
- When to expect a booking link, intake form, or personal reply
- How to contact support
If you redirect to your own confirmation page, Stripe supports adding {CHECKOUT_SESSION_ID} to the redirect URL. Developers can use that identifier to retrieve the correct Checkout Session. Never treat a customer-visible success page alone as proof of payment; verify the payment status in Stripe.
7. Create, copy, and review the link
Select Create link, copy the URL, and open it in a private browser window. Review the page as a customer would. Confirm the product, amount, currency, billing interval, fields, policies, branding, and confirmation behavior.
Do not shorten the link until you have verified where the short URL redirects. A client should be able to recognize the Stripe-hosted destination or your configured custom checkout domain.
Track each marketing channel with UTM parameters
Stripe supports standard UTM parameters on Payment Links, including utm_source, utm_medium, and utm_campaign. Create a distinct tracked version for each channel rather than changing the underlying checkout.
https://buy.stripe.com/example?utm_source=instagram&utm_medium=social&utm_campaign=consulting_offer
Use lowercase, consistent names and never place private customer data in URL parameters. Stripe can carry the UTM values to your redirect URL after payment. For a broader measurement plan, follow our guide to tracking social media campaigns in GA4 with UTM parameters.
The Payment Link details page can also show views, sales, and revenue for eligible one-time links. Stripe notes that analytics can be delayed and are not available for every link type, so use completed payments as the source of truth for revenue.
Share the link by email, social media, or QR code
Stripe’s sharing documentation says Payment Links can be sent through email, text messages, social platforms, a website, or an app. The Dashboard can also generate a downloadable QR code.
Match the channel to the offer:
- Email or proposal: Best for custom projects where the client already understands the scope.
- Direct message: Useful for a standardized consultation, but repeat the essential terms beside the link.
- Social profile: Suitable for a public package with clear availability and support details.
- QR code: Practical on a printed quote, event sign, or in-person booking sheet.
A Stripe-generated QR code does not expire by itself, but it stops leading to an active checkout if you deactivate the underlying Payment Link. Stripe does not let you delete a Payment Link after creation; you can deactivate it when the offer ends and reactivate it later through supported controls.
Test the complete payment workflow
Before sending the link to a client, test more than the payment page. Use Stripe’s sandbox or test mode when available so you do not create unnecessary real transactions or refunds.
- Open the link on both a phone and a desktop browser.
- Confirm the amount, currency, frequency, tax behavior, and customer fields.
- Complete a test payment using Stripe’s documented test data.
- Check that the payment or Checkout Session appears in the Dashboard.
- Verify the confirmation message or redirect.
- Confirm that the receipt and your own notification behave as expected.
- Test the booking or intake step that follows payment.
If a payment method settles asynchronously, wait for the final status before delivering an irreversible service or expensive asset. For an automated workflow, Stripe recommends reacting to verified webhook events rather than trusting screenshots, forwarded emails, or the customer’s browser page.
Payment Link or Stripe Invoice?
| Use a Payment Link when | Use an invoice when |
|---|---|
| The offer has a standard price and can be sold repeatedly. | The bill is addressed to a specific customer. |
| You want a checkout URL for email, social media, or QR. | You need itemized charges, an invoice workflow, or a due date. |
| The buyer can pay immediately. | The customer expects a formal request for payment before paying. |
| The same link can represent one clearly defined package. | Price, quantity, terms, or client details change for each engagement. |
Do not force every job through one reusable link. For a custom project, an invoice tied to the customer and agreement is usually easier to audit. For a fixed session or package, a Payment Link removes unnecessary back-and-forth.
How to verify, refund, and reconcile payments
Open Payments in the Dashboard and confirm the payment status, amount, customer email, and associated Payment Link. For automatic delivery, listen for the appropriate Stripe events and account for payment methods that confirm later.
Stripe allows full and partial refunds from the Dashboard: open the payment, choose Refund payment, enter the amount when partial, and select a reason. Refunds go back to the original payment method. Processing time and the return of processing fees can vary, so review the current Stripe refunds documentation and your account’s pricing before promising a date or amount.
Reconcile each service payment against the package, client, tax record, and delivery status. A simple system is to use one link per offer, a consistent project reference field, and a weekly review of completed, pending, refunded, and disputed transactions.
Common mistakes to avoid
- A vague product name: “Payment” is not enough. Name the exact service or deposit.
- No written scope: The checkout page should complement, not replace, the agreement.
- Too many required fields: Collect only what is necessary to take payment and start delivery.
- Sensitive data in custom fields: Use an appropriate secure system for protected information.
- Delivering from a screenshot: Confirm the payment in Stripe and check whether it is final or pending.
- One untracked link everywhere: Add consistent UTM parameters to understand which channels produce sales.
- Leaving an old offer active: Deactivate links when the price, capacity, or service terms change.
- Skipping the refund policy: Publish clear cancellation and refund conditions before checkout.
Frequently asked questions
Do I need a website to use Stripe Payment Links?
No. Stripe hosts the checkout page, and you can share its URL directly. A website becomes useful for detailed sales copy, policies, analytics, and a branded confirmation flow, but it is not required to collect a Payment Link payment.
Can I use one Payment Link for several clients?
Yes, if the clients are buying the same standardized offer. Create separate links when the scope, price, currency, tax treatment, or billing frequency differs.
Can a Stripe Payment Link expire?
You can deactivate a link or limit how many completed payments it accepts. A generated QR code continues to point to that link, but customers see an inactive or expiration page after the underlying link is deactivated.
Can I refund a Payment Link payment?
Yes. Stripe supports full and partial refunds from the Dashboard, subject to the payment method, payment status, available balance, and account rules. The refund is returned to the original payment method.
How do I know the customer really paid?
Check the payment in the Stripe Dashboard. For an automated service, validate Stripe webhook events and wait for final confirmation when the chosen payment method is asynchronous. Do not rely on a screenshot or success-page image.
Are Stripe Payment Link fees different from normal Stripe payments?
Pricing can vary by country, payment method, currency conversion, tax product, custom domain, and other account features. Use Stripe’s current pricing page for your country and the fees shown in your Dashboard rather than relying on an old flat-rate figure.
Final checklist
- The service name, scope, price, currency, and billing frequency are correct.
- Only necessary customer fields are required.
- Policies, support details, and terms are visible or linked.
- The confirmation page explains the next step.
- The link works on mobile and desktop.
- UTM parameters follow a consistent naming system.
- Payment status is verified inside Stripe before delivery.
- Old or capacity-limited offers are deactivated promptly.
A well-built Payment Link is more than a pay button. It is a compact handoff from a clearly described offer to a verified payment and an organized service-delivery process.
This guide is for general information and is not legal, tax, or accounting advice. Stripe features and availability vary by country and account.

