For the complete documentation index, see llms.txt. This page is also available as Markdown.

Renew Subscription

Create checkout baskets to renew an existing subscription. The basket is pre-populated with the subscription's renewal context.

Create checkout basket to renew subscription

post

Create a checkout basket for renewing an existing subscription. Looks up the subscription by its external reference, verifies the supplied customer details against it, and creates a basket pre-populated with the renewal context.

Required scopes
This endpoint requires the following scopes:
Authorizations
AuthorizationstringRequired

OAuth 2.0 Bearer token for authenticated API access. Required for order submission, object management, and administrative operations.

Obtain a token via the OAuth flow described in OAuth Bearer Token.

Pass the token in the Authorization header: Bearer <token>

Body
subscriptionReferencestringRequired

The external reference of the subscription to renew. The lookup is by reference only; Limio subscription IDs are not accepted.

Example: A-S00012345
external_idstring · max: 128Optional

External order reference.

Example: renewal-2024-001Pattern: ^[0-9a-zA-Z-_]+$
Responses
200

Renewal checkout basket created successfully.

application/json
idstringRequired

The unique ID of the created renewal basket.

Example: basket-a1b2c3d4e5f6
segmentsone ofOptional

Customer segments applicable to the renewal. When a Salesforce contact is found for the subscription this is a JSON-encoded string containing an array of SHA-1 hashed segment paths; when no contact is found it is an empty array.

stringOptional
or
string[]Optional
post/admin/checkout/initiate/renew
POST /api/admin/checkout/initiate/renew HTTP/1.1
Host: your-environment.prod.limio.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 253

{
  "subscriptionReference": "A-S00012345",
  "external_id": "renewal-2024-001",
  "verify": {
    "customerDetails": {
      "hashedEmail": "973dfe463ec85785f5f95af5ba3906eedb2d931c24e69824a89ea65dba4e813b",
      "firstName": "text",
      "lastName": "text"
    },
    "address": {
      "postalCode": "text"
    }
  }
}
{
  "id": "basket-a1b2c3d4e5f6",
  "segments": "text",
  "order": {
    "external_id": "text",
    "order_type": "renew",
    "subId": "text",
    "subRef": "text",
    "customerDetails": {
      "firstName": "text",
      "lastName": "text",
      "email": "text"
    },
    "country": "text",
    "renewalDetails": {
      "subscription": {},
      "attributes": {}
    },
    "tracking": {},
    "hideEmailField": true,
    "hidePriceField": true
  }
}

Queue a checkout basket for a subscription to sync and renew or change

post

Queue a checkout for a subscription that a later job fills. Use it when the basket cannot be built in one request, for example when the subscription is only in Zuora and Limio must sync it first. The request returns at once with a queueLink. A job then syncs the subscription and fills the basket, while the customer waits on the waiting page.

jobParameters.order names the use case. A renewal names its variant. An offer change names no variant: it changes the offer from the effective date. Send only the fields of the use case. Limio derives the items, the price and the customer from the synced subscription.

| Use case | order_type | variant | Other fields | Available | | --- | --- | --- | --- | --- | | Renew on the same offer | renew_subscription | standard | none | yes | | Renew onto another offer | renew_subscription | switch | orderItems | not yet | | Change offer | change_offer | none | orderItems, effectiveDate | not yet |

A use case that is not available yet returns 422 use_case_not_supported. Its fields are provisional and can change before it is available.

The queueLink is a relative path to the assisted login. Open it on the shop domain of the customer, not on the admin host. The login signs the customer in as the basket owner and sends them to the waiting page, which polls the job and goes to checkout when the basket is ready.

Required scopes
This endpoint requires the following scopes:
Authorizations
AuthorizationstringRequired

OAuth 2.0 Bearer token for authenticated API access. Required for order submission, object management, and administrative operations.

Obtain a token via the OAuth flow described in OAuth Bearer Token.

Pass the token in the Authorization header: Bearer <token>

Body
jobTypestring · enumRequired

The job that fills the basket.

Possible values:
Responses
200

The checkout is queued.

application/json
queueLinkstringRequired

The relative path to open on the shop domain of the customer. It signs the customer in and sends them to the waiting page.

Example: /api/checkout/assisted?basketId=basket-a1b2c3d4&cl=…
post/admin/checkout/queue
POST /api/admin/checkout/queue HTTP/1.1
Host: your-environment.prod.limio.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 383

{
  "jobType": "synced_subscription_checkout",
  "journey": {
    "checkout": "/renewal-checkout",
    "waiting": "/renewal-waiting"
  },
  "jobParameters": {
    "recordToSync": {
      "service": "zuora",
      "id": "A-S00012345",
      "type": "subscription"
    },
    "owner": {
      "service": "zuora",
      "id": "A00012345",
      "type": "account"
    },
    "paymentTypes": [
      "zuora_card"
    ],
    "order": {
      "order_type": "renew_subscription",
      "variant": "standard",
      "customFields": {}
    }
  }
}
{
  "queueLink": "/api/checkout/assisted?basketId=basket-a1b2c3d4&cl=…"
}

Last updated

Was this helpful?