---
title: "Create subscription"
method: POST
path: "/api/public/v1/subscriptions"
tags: ["Subscriptions"]
---

# Create subscription

`POST /api/public/v1/subscriptions`

Finalizes a subscription and submits it to SeQura for review

## Headers

- `Authorization` string, required

## Request body

- PublicCreateSubscription
  - `merchant` object, required
    - `id` string, required
    - `store_ref` string, required
  - `reference` string, required
  - `operator_ref` string, required
  - `mobile_phone` string, required
  - `cart_items` union[]
    - union
      - PublicCreateSubscriptionMaterial
        - `reference` string
        - `reference_uuid` string, nullable
        - `type` string, required
        - `name` string, required
        - `quantity` integer, required
        - `price_with_tax` integer, required
        - `subscription_price` integer
        - `subscription_vat_rate` integer
        - `box_count` integer
        - `product_data` object, nullable
        - `consumable_data` object, nullable — Deprecated: ignored.
          - `delivery_periodicity` string
          - `quantity_per_delivery` integer
        - `product_type` 'rx' | 'contact_lenses' | 'sunglasses' | 'complement' | 'others' — Classifies the subscribed product.
      - PublicCreateSubscriptionPackage
        - `name` string
        - `type` string, required
        - `quantity` integer, required
        - `price_with_tax` integer, required
        - `subscription_price` integer
        - `subscription_vat_rate` integer
        - `product_data` unknown
        - `consumable_data` object, nullable — Deprecated: ignored.
          - `delivery_periodicity` string
          - `quantity_per_delivery` integer
        - `items` PublicCreateSubscriptionMaterial[]
          - `reference` string
          - `reference_uuid` string, nullable
          - `type` string, required
          - `name` string, required
          - `quantity` integer, required
          - `price_with_tax` integer, required
          - `subscription_price` integer
          - `subscription_vat_rate` integer
          - `box_count` integer
          - `product_data` object, nullable
          - `consumable_data` object, nullable — Deprecated: ignored.
            - `delivery_periodicity` string
            - `quantity_per_delivery` integer
          - `product_type` 'rx' | 'contact_lenses' | 'sunglasses' | 'complement' | 'others' — Classifies the subscribed product.
  - `given_names` string
  - `surnames` string — Customer's combined surnames. Use first_surname + second_surname instead for Mexican merchants.
  - `first_surname` string — Customer's first surname. Used for Mexican merchants instead of surnames.
  - `second_surname` string — Customer's second surname. Used for Mexican merchants instead of surnames.
  - `date_of_birth` string
  - `nin` string
  - `nin_control` string
  - `address` string
  - `postal_code` string
  - `city` string
  - `colony` string — Customer's neighborhood/colony. Used for Mexican merchants.
  - `joint_customer` string — Name of a second account holder or beneficiary associated with this subscription.
  - `token` string

## Response `201`

mexican merchant subscription

- object
  - `id` integer, required
  - `reference` string, required
  - `status` string, required
  - `payment_status` string, required
  - `created_at` string, required
  - `activated_at` string, nullable, required
  - `extension_available_on` string, nullable, required
  - `renewal_at` string, nullable, required
  - `evergreen` boolean, required
  - `last_persisted_cart` PersistedCart
    - `id` integer, required
    - `reference` string, required
    - `code` string, required
    - `cart_items` CartItem[] — unresolved $ref
    - `sms_mobile_phone` string, required
    - `status` string, required
    - `total_with_tax` PrintableCurrency, required
      - `value` integer, required
      - `string` string, required
    - `total_subscription_price` PrintableCurrency, required
      - `value` integer, required
      - `string` string, required
    - `meta` object
    - `created_at` string, required
    - `discount` PrintableCurrency, required
      - `value` integer, required
      - `string` string, required
    - `other_payment` string, nullable
    - `setup_fee` string, nullable
    - `cart_handling` string, nullable
    - `cart_registration` string, nullable
    - `desired_first_charge_on` string, nullable
    - `solicitation` object, nullable
      - `id` string, required
      - `primary_reference` string, required
      - `customer_nin` string, nullable, required
      - `original_value` integer, required
      - `current_value` integer, required
      - `order_uuid` string, nullable, required
      - `customer_given_names` string, nullable, required
      - `customer_surnames` string, nullable, required
      - `customer_phone` string, nullable, required
      - `customer_dob` string, nullable, required
      - `public_status` string, required
      - `created_at` string, required
      - `checkout_url` string, required
    - `installments_count` integer, nullable
    - `operator_ref` string
    - `resettable` boolean
    - `can_reset` boolean
    - `can_resend_sms` boolean
    - `cancellable` boolean
    - `cancelled_at` string, nullable
    - `cancelled_by` string, nullable
    - `customer_data` object
      - `given_names` string, nullable
      - `surnames` string, nullable
      - `first_surname` string, nullable
      - `last_surname` string, nullable
      - `nin` string, nullable
      - `email` string, nullable
      - `dob` string, nullable
      - `phone` string, nullable
      - `address` string, nullable
      - `city` string, nullable
      - `postal_code` string, nullable
      - `colonia` string, nullable
      - `region` string, nullable
      - `joint_customer` string, nullable
    - `order_uuid` string, nullable
    - `subscription_id` integer
    - `withdrawable_subscription` boolean
    - `currency` string, nullable
    - `joint_customer` string, nullable
    - `status_steps` object[], nullable
      - `key` string, required
      - `status` string, required
      - `detail` string, nullable
    - `verification_resend` object, nullable
      - `cooldown_seconds` integer
      - `seconds_remaining` integer
  - `current_month` integer, required
  - `total_months` integer, required
  - `gift_kits_remaining` integer, required
  - `gift_kits_delivered` integer, required
  - `subscription_events` unknown[], required
    - unknown
  - `available_exchanges` integer, required
  - `available_actions` object, required
    - `cancel` boolean
    - `withdraw` boolean
    - `send_sms` boolean
    - `resend_sms` boolean
    - `send_cart_link_email` boolean
    - `add_product` boolean
    - `change_item` boolean
    - `activate_product` boolean
    - `use_warranty` boolean
    - `update_customer_info` boolean
    - `update_payment_info` boolean
    - `change_graduation` boolean
    - `reset_sms_count` boolean
    - `receive_gift_kit` boolean
    - `extend_period` boolean
    - `resend_to_simba` boolean
    - `add_contact_lens` boolean
  - `customer` object, nullable, required
    - `given_names` string, nullable, required
    - `surnames` string, nullable, required
    - `email` string, nullable, required
    - `phone` string, nullable, required
    - `full_name` string, nullable, required
  - `joint_customer` string, nullable, required
  - `aml_status` string, nullable, required
  - `credit_card` string, nullable, required
  - `credit_card_type` string, nullable, required
  - `payment_method` object, nullable, required
    - `type` string, required
    - `credit_card_number` string, nullable, required
    - `credit_card_type` string, nullable, required
    - `bank_account_number` string, nullable, required
  - `contract_number` string, nullable, required
  - `discounts` object[], nullable
    - `promotion_reference` string, required
    - `start_month` integer, required
    - `period_in_months` integer, required
    - `type` string, required
    - `amount` integer, required
  - `confirmed_at` string, nullable, required
  - `last_delivery_date` string, nullable, required
  - `next_delivery_date` string, nullable, required
  - `next_charge_date` string, nullable, required
  - `overdue_days` integer, required
  - `cancellation_reason` object, nullable, required
    - `reason` string, nullable, required
    - `explanation` string, nullable, required
    - `date` string, required
    - `summary` object, nullable, required

## Other responses

- `401` — unauthorized

---

[API](https://skmtc.dev/sequra/apis/checkout-api.md) · [All operations](https://skmtc.dev/sequra/apis/checkout-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/sequra/checkout-api/revisions/2b0b60c52d04/schema)
