How to link your paywall to the Checkout Service?
Your paywall links to the Unite Checkout Service, where the user picks a product, logs in, and pays. When the purchase is done, the Checkout Service sends the user back to your site. This page covers the URLs you can link to, the query parameters they accept, and how the user gets back to your site.
Key terms
| Term | Definition |
|---|---|
| Tenant | A Unite customer. A tenant has one or more publications. |
| Publication | Your website, with content behind a paywall. |
| Publication domain | The domain of your publication, such as example.com. |
| Paywall | The gate on your publication that sends users without access to the Checkout Service. |
| User | The person who reads your publication and uses the Checkout Service in their browser. |
| Customer | A person or organisation registered in Connect, your tenant's subscription system. A user is tied to at most one customer, and isn't necessarily the same person as the customer. |
| Identity Provider (IdP) | The Unite login service. It keeps a single sign-on session that your publication and the Checkout Service share. |
| Campaign | A set of products that the Checkout Service shows on one page. Each campaign has a slug. |
| Product | A subscription offer. Each product has a slug that's unique within its campaign. |
| Subscription | Access to the content of a product. It belongs to a customer. |
| Checkout Host | The host name of the Checkout Service for your publication, such as order.example.com. Unite provides it. By convention, Norwegian sites use ordre and Swedish sites use order, for example ordre.example.no. |
| Entry point | A URL on your Checkout Host that you can link to. |
| Login initiation URL | A URL in your CMS that logs the user in and sends them to a given page, such as an article. |
How a purchase works
A purchase takes the user from your paywall through the Checkout Service, the IdP, and the payment page, then back to your site. In the diagram, blue arrows are your paywall link and the way back to your site. Gray arrows are the redirects that the services handle.
.png?sv=2026-02-06&spr=https&st=2026-11-10T09%3A17%3A52Z&se=2026-11-10T09%3A35%3A52Z&sr=c&sp=r&sig=nep%2FhE1cR9EsTV9DTdFyBLzv%2BaU8rSFk83Z7G1acYG8%3D)
- Your paywall links to a campaign or product page on the Checkout Service.
- When the user picks a product, the Checkout Service redirects the browser to the IdP to log in. If the user already has an IdP session, the IdP shows no login screen.
- The Checkout Service checks the user's access. Without access, the browser goes to the payment page and comes back after payment.
- The Checkout Service sends the user back to your site.
- If your CMS has a login initiation URL, the user gets back to the article, signed in. The IdP session from step 2 exists, so the user doesn't see a login screen.
Good to know: If the user already has access to the product in step 3, the Checkout Service skips the payment and sends the user back to your site right away.
Your Checkout Host
Your Checkout Host is the host name of the Checkout Service for your publication, such as order.example.com. Unite provides it.
The examples on this page use order.example.com as the Checkout Host and www.example.com as your publication.
Pages you can link to
The Checkout Service has three entry points, and one of them needs a logged-in user:
| Entry point | Page | Login required |
|---|---|---|
/ |
Default campaign | No |
/{campaignSlug} |
Campaign | No |
/{campaignSlug}/{productSlug} |
Product | Yes |
Default campaign
GET / fetches the default campaign and then redirects to the slug that it has set which could be itself (default) or a slug of another campaign (digital etc.)
Campaign page
GET /{campaignSlug} shows every product in the campaign. The user doesn't need to log in to see it.
Every product link on the page carries the page's full query string, and so does the footer link to another campaign. That's how your query parameters reach the product page.
Product page
GET /{campaignSlug}/{productSlug} shows the checkout for one product. Link here to skip the campaign page.
The product page needs a logged-in user. Without a session, the Checkout Service redirects the browser to the IdP, which redirects back to the same URL after login.
After login, the Checkout Service checks the user's access. If the user already has access to the product, the Checkout Service sends the user back to your site. Otherwise, it shows the checkout.
Query parameters
The campaign and product pages accept these query parameters:
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
login |
No | vipps or credentials |
login=vipps |
The preferred login method to trigger. Use it on product links |
contentUrl |
No | URL or path | contentUrl=/news/article-1 |
The article to send the user to after the purchase |
utm_* |
No | String | utm_source=newsletter |
Campaign tracking for links from social media, newsletters, ads and similar |
_ptid |
No | String | _ptid=your_piano_tracking_id |
Piano only. The ID of the Piano experience that showed the offer, for conversion attribution |
at_* |
No | String | at_medium=social |
Piano only. Piano Analytics campaign parameters, such as at_medium and at_campaign |
The campaign page passes every parameter on to the product page, and they stay on the URL through login.
login
login sets the preferred login method to trigger when the user logs in, which happens on the product page. Use it on product links. For a Vipps button on your paywall, link to the product page with login=vipps:
https://order.example.com/digital/monthly?login=vipps
The parameter accepts these values:
| Value | Behavior |
|---|---|
vipps |
Redirects the user straight to Vipps Login. Your tenant needs Vipps Login enabled. |
credentials |
Shows the email and password form, without the login start screen. |
If the user is already logged in, login has no effect. The IdP rejects other values with an error page.
Good to know: The campaign page shows the same login options whatever
loginsays. On a campaign link,loginonly reaches the product page when the campaign doesn't offer Vipps. When it does, the button the user picks there decides the login method.
contentUrl
Use contentUrl to send the user to a specific article after the purchase, for example from a social campaign link. Unite sends the user there through your CMS's login initiation URL, signed in. The value can be a path or a full URL on your publication.
https://order.example.com/digital?contentUrl=/news/article-1&utm_source=facebook
Good to know: Unite can also find the article from a cookie that your CMS sets with our custom script when the paywall shows. That's best effort. When both exist, the query param takes precedence over the cookie.
utm_*
Use utm_* parameters on campaign links from social media, newsletters, ads and similar. The analytics on the Checkout Service read them from the page URL. The Checkout Service doesn't use them otherwise.
https://order.example.com/digital?utm_source=newsletter&utm_medium=email&utm_campaign=autumn_offer
Piano parameters
The next two parameters only apply if your publication uses Piano. Skip them otherwise.
_ptid
_ptid connects the purchase to the Piano experience that showed the offer. When the purchase completes, the Checkout Service sends it to Piano. Your tenant needs Piano conversion tracking enabled.
Use the _ptid that Piano issued, because Piano rejects other values. Without _ptid, the Checkout Service reports no conversion.
https://order.example.com/digital?_ptid=your_piano_tracking_id
at_*
The at_* parameters are Piano Analytics' own campaign parameters, from the product's AT Internet days, and work the same way as utm_*. The Checkout Service doesn't use them otherwise.
https://order.example.com/digital?at_medium=social&at_campaign=autumn_offer
How the user gets back to your site
Unite handles the way back to your site. The Checkout Service sends the user back after a completed payment and a short confirmation, and when the user opens a product page they already have access to. If the payment fails or the user cancels it, an error page links back to your site and to a retry.
If your CMS has a login initiation URL, Unite sends the user there, so the user gets back to the article, signed in. Unite knows the article from contentUrl in your link, or from a cookie that your CMS sets when the paywall shows. The cookie is best effort. When Unite doesn't know the article, or your CMS has no login initiation URL, the user lands on your home page.
Common errors
When something goes wrong, the user sees one of these pages:
| What happened | What the user sees |
|---|---|
| The campaign or product slug in your link doesn't exist | A page-not-found page |
| The user cancels the payment, the payment fails, or the Checkout Service can't create the order | An error page with Try again and a link back to your site |
| The login fails or the user cancels it, for example at Vipps | A login error page |
login has another value than vipps or credentials, or your tenant doesn't have Vipps Login |
A login error page |
| The user takes more than 15 minutes to log in | The IdP's error page |
Try again opens the same product page, so the user can try the purchase again.
Examples
Paywall link to a campaign
Your paywall links to the campaign digital. Unite takes care of returning the user to your site:
https://order.example.com/digital
Product link with Vipps login
This link opens the product monthly in the campaign digital, and the user logs in with Vipps:
https://order.example.com/digital/monthly?login=vipps
Campaign link with marketing tracking
The analytics on the Checkout Service read the utm_ parameters on this link:
https://order.example.com/digital?utm_source=newsletter&utm_campaign=autumn_offer
FAQ
Why does the user land on my home page instead of the article?
Unite sends the user back to the article through your CMS's login initiation URL. It finds the article from contentUrl in your link, or from a cookie your CMS sets when the paywall shows, and the cookie is best effort. Without a login initiation URL or a known article, the user lands on your home page.
Why doesn't the user see a login screen on my site after buying?
The user logged in at the IdP during the purchase. When your CMS logs the user in, the IdP finds that session and shows no login screen.