---
updatedAt: 2026-05-05T20:25:41.000Z
agentTools:
  siteIndex: https://docs.recurly.com/llms.txt
  projectIndex: https://docs.recurly.com/recurly-commerce/llms.txt
---

# Create Subscription

Create a subscription

# OpenAPI definition

```json
{
  "openapi": "3.0.0",
  "paths": {
    "/api/v1/subscriptions": {
      "post": {
        "operationId": "createSubscription",
        "summary": "Create Subscription",
        "description": "Create a subscription",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubscriptionCreateRequestDTO"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully created subscription contract",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionCreateResponseDTO"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Subscriptions API"
        ]
      }
    }
  },
  "info": {
    "title": "Recurly Commerce API Documentation",
    "description": "Recurly Commerce API Documentation",
    "version": "1.3",
    "contact": {}
  },
  "servers": [
    {
      "url": "https://subs.api.recurlycommerce.com"
    }
  ],
  "components": {
    "securitySchemes": {
      "bearer": {
        "scheme": "bearer",
        "bearerFormat": "JWT",
        "type": "http"
      }
    },
    "schemas": {
      "CustomAttribute": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        },
        "required": [
          "key",
          "value"
        ]
      },
      "SubscriptionLineCreateThroughContractRequestDto": {
        "type": "object",
        "properties": {
          "variantId": {
            "type": "string"
          },
          "quantity": {
            "type": "number"
          },
          "currentPrice": {
            "type": "number",
            "description": "The price of the variant before the subscription discount. Only use if you want to override the default price of the variant."
          },
          "sellingPlanId": {
            "type": "string",
            "description": "The shopify selling plan ID of the subscription offer option. The configured discount will be used to calculated the amount of the line."
          },
          "customAttributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomAttribute"
            }
          }
        },
        "required": [
          "variantId",
          "quantity",
          "sellingPlanId"
        ]
      },
      "SubscriptionCreateRequestDTO": {
        "type": "object",
        "properties": {
          "deliveryCadenceCount": {
            "type": "number"
          },
          "deliveryCadenceUnit": {
            "type": "string",
            "enum": [
              "HOUR",
              "DAY",
              "MONTH",
              "WEEK",
              "YEAR"
            ]
          },
          "billingCadenceCount": {
            "type": "number"
          },
          "billingCadenceUnit": {
            "type": "string",
            "enum": [
              "HOUR",
              "DAY",
              "MONTH",
              "WEEK",
              "YEAR"
            ]
          },
          "customAttributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomAttribute"
            }
          },
          "subscriberId": {
            "type": "string"
          },
          "subscriptionOfferId": {
            "type": "string",
            "description": "The internal id of the subscription plan (subscription offer) this subscription belongs to. Every line must belong to this plan."
          },
          "deliveryFirstName": {
            "type": "string",
            "description": "Required unless the subscription plan is digital-only (no shipping needed)."
          },
          "deliveryLastName": {
            "type": "string",
            "description": "Required unless the subscription plan is digital-only (no shipping needed)."
          },
          "deliveryAddress1": {
            "type": "string",
            "description": "Required unless the subscription plan is digital-only (no shipping needed)."
          },
          "deliveryAddress2": {
            "type": "string",
            "nullable": true
          },
          "deliveryCountry": {
            "type": "string",
            "description": "Required unless the subscription plan is digital-only (no shipping needed)."
          },
          "deliveryCountryCode": {
            "type": "string"
          },
          "deliveryProvince": {
            "type": "string",
            "nullable": true
          },
          "deliveryProvinceCode": {
            "type": "string"
          },
          "deliveryCity": {
            "type": "string",
            "description": "Required unless the subscription plan is digital-only (no shipping needed)."
          },
          "deliveryZip": {
            "type": "string",
            "description": "Required unless the subscription plan is digital-only (no shipping needed)."
          },
          "deliveryPhone": {
            "type": "string",
            "description": "The delivery phone number. Required unless the subscription plan is digital-only."
          },
          "deliveryCompany": {
            "type": "string",
            "nullable": true
          },
          "paymentMethodExternalId": {
            "type": "string",
            "description": "The shopify payment method ID"
          },
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubscriptionLineCreateThroughContractRequestDto"
            }
          },
          "discountCode": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "deliveryCadenceCount",
          "deliveryCadenceUnit",
          "billingCadenceCount",
          "billingCadenceUnit",
          "subscriberId",
          "subscriptionOfferId",
          "paymentMethodExternalId",
          "lines"
        ]
      },
      "SubscriptionCreateResponseDTO": {
        "type": "object",
        "properties": {}
      }
    }
  },
  "x-readme": {
    "explorer-enabled": false
  }
}
```

# Sibling pages

* [List Subscriptions](https://docs.recurly.com/recurly-commerce/reference/listsubscriptions.md)
* [Get Subscriptions Count](https://docs.recurly.com/recurly-commerce/reference/getsubscriptionscount.md)
* [Get Subscription](https://docs.recurly.com/recurly-commerce/reference/getsubscription.md)
* [Get Subscription Billing Delivery Cadence Update Preview](https://docs.recurly.com/recurly-commerce/reference/getsubscriptionbillingdeliverycadenceupdatepreview.md)
* [Update Subscription Status](https://docs.recurly.com/recurly-commerce/reference/updatesubscriptionstatus.md)
* [Update Subscription Payment Method](https://docs.recurly.com/recurly-commerce/reference/updatesubscriptionpaymentmethod.md)
* [Apply Subscription Discount Code](https://docs.recurly.com/recurly-commerce/reference/applysubscriptiondiscountcode.md)
* [Remove Subscription Discount Code](https://docs.recurly.com/recurly-commerce/reference/removesubscriptiondiscountcode.md)
* [Update Billing Delivery Cadence](https://docs.recurly.com/recurly-commerce/reference/updatebillingdeliverycadence.md)
* [Update Subscription Delivery Address](https://docs.recurly.com/recurly-commerce/reference/updatesubscriptiondeliveryaddress.md)
* [Update Subscription Delivery Shipping Option](https://docs.recurly.com/recurly-commerce/reference/updatesubscriptiondeliveryshippingoption.md)
* [Update Subscription Offer Option](https://docs.recurly.com/recurly-commerce/reference/updatesubscriptionofferoption.md)
* [Update Subscription Custom Attributes](https://docs.recurly.com/recurly-commerce/reference/updatesubscriptioncustomattributes.md)
* [Get Billing Attempts By Subscription Id](https://docs.recurly.com/recurly-commerce/reference/getbillingattemptsbysubscriptionid.md)
* [Get Billing Attempts Count By Subscription Id](https://docs.recurly.com/recurly-commerce/reference/getbillingattemptscountbysubscriptionid.md)
* [Update Subscription Next Billing And Delivery Date](https://docs.recurly.com/recurly-commerce/reference/updatesubscriptionnextbillinganddeliverydate.md)
* [Skip Upcoming Order](https://docs.recurly.com/recurly-commerce/reference/skipupcomingorder.md)
* [List Subscription Swap And Add On Options](https://docs.recurly.com/recurly-commerce/reference/listsubscriptionswapandaddonoptions.md)