Guide: Sales-assisted checkout links
Generate shareable checkout links that pre-load a basket with offers and customer context, allowing customers to complete purchases independently.
Availability: This feature is available from Limio Commerce Release 114 onwards.
Overview
The Checkout Link feature allows you to create shareable URLs that direct customers to a pre-configured checkout. This is useful for sales-assisted flows where an agent configures an order in your CRM (e.g., Salesforce) and sends the customer a link to complete payment.
Common use cases include:
Sales quotes - Agent builds an order, customer completes payment
Renewal campaigns - Pre-fill renewal offers for existing customers
Win-back flows - Send targeted offers to lapsed subscribers
B2B sales - Multiple users from the same organisation can complete orders linked to the same account
Prerequisites
Access to the Limio Commerce API with a valid Bearer token. All requests use
Authorization: Bearer <YOUR_TOKEN>.A published Offer configured in Limio.
A Modular Checkout page using the Form component to consume the basket.
What you'll build
Create a basket with your chosen offer(s) and customer context via the Checkout Initiate API.
Receive a checkout link in the response that can be shared with the customer.
Customer completes checkout using the link - no authentication required.
Create a Checkout Link
Use POST /api/admin/checkout/initiate to create a basket and receive a checkout link.
Example - Create checkout link with Salesforce account (curl)
Response:
Notes:
assistedCheckoutLinkis the shareable checkout link - use this for sales-assisted flowsrecoveryLinkis for abandoned cart recovery (different flow)The
tracking.accountIdtriggers account ownership linking (see caveat below)
Send the Customer to Checkout
Build the full checkout URL by combining your shop domain with the assistedCheckoutLink:
When the customer clicks this link:
They receive a secure token to complete the checkout
The checkout page loads with the pre-configured basket
They provide payment details and complete the order
Land the Customer on a Pricing Page
The journey.checkout field controls which page the link opens. If omitted, the customer lands on /checkout.
You can also create a link with no pre-selected offer, letting the customer choose one themselves. Send an empty orderItems array (the field is required, but may be empty) and point journey.checkout at your pricing page:
The response contains an assistedCheckoutLink as before. When the customer opens it, they land on /pricing-page and select an offer there. The customer context from the request - including Salesforce account linking via tracking.accountId - still applies to the order they complete.
Authentication Caveat: Salesforce Account Linking
Important: When providing a Salesforce
accountIdin the tracking data, the checkout page must use anonymous authentication to correctly link the customer's order to the Salesforce account.
When tracking.accountId is provided:
Limio resolves (or creates) an owner identity linked to that Salesforce Account
The checkout link issues a short-lived "on-behalf-of" (OBO) token for that owner
The customer completes checkout acting on behalf of the account owner
Why this matters:
Ensures all orders for a Salesforce Account are linked to the same canonical owner
Allows multiple users from the same organisation to complete orders correctly
Maintains proper ownership of Salesforce Account/Contact records in Limio
Configuration requirement:
Your checkout page must be configured for anonymous authentication (not requiring login)
If authenticated checkout is enforced, the OBO token flow will not work correctly and the account linking will fail
Request Parameters
order.orderItems
Yes
Array of offers to include in the basket. May be empty ([]) to create a link with no pre-selected offer
order.orderItems[].offer.id
Yes
The Offer ID
order.orderItems[].offer.version
Yes
The Offer version
order.orderItems[].quantity
No
Quantity (default: 1)
order.source
Yes
Source identifier (typically "shop")
order.order_type
Yes
Order type: "new"
order.tracking
Yes
Additional metadata (see below)
journey.checkout
No
Page the link opens, e.g. /pricing-page (default: /checkout)
Tracking Parameters
tracking.accountId
Salesforce Account ID - triggers account ownership linking
tracking.contactId
Salesforce Contact ID - stored for reference
tracking.offers
Array of offer paths for analytics
Custom fields
Any additional fields you need for analytics/CRM
End-to-end Example (Node.js)
Tips & Troubleshooting
Link not working? Check that the basket hasn't expired (14-day default)
Account not linked? Ensure
tracking.accountIdis a valid Salesforce Account ID and checkout uses anonymous authenticationMultiple offers? Add multiple items to the
orderItemsarrayNeed offer details? Use the Get Offers V2 API to fetch offer IDs and versions
Related Documentation
Initiate a Basket with a Limio Offer - General basket initiation guide
Limio for Salesforce: Generate Checkout Link - Salesforce-specific UI guide
Modular Checkout Form Component - Checkout page setup
Last updated
Was this helpful?

