---
title: "Create a subscription product"
method: POST
path: "/v1/subscription-products"
tags: ["SubscriptionProduct"]
---

# Create a subscription product

`POST /v1/subscription-products`

Creates a reusable subscription product template that can be used to create multiple subscriptions with the same configuration.

## Request body

- SubscriptionProductRequest
  - `channel` string, nullable — Payment channel/method
  - `authorizationType` string, nullable — Authorization type
  - `frequency` string, nullable — Payment frequency
  - `retryPolicy` RetryPolicy, required
    - `type` string, required — Retry policy type. Valid values: PIX_SPECIFIC (auto-configured for PIX), FIXED_RETRY (requires maxRetries and retryIntervalDays), NOT_ALLOWED (no retries).
    - `maxRetries` integer, nullable — Maximum number of retry attempts. Required when type is FIXED_RETRY.
    - `retryIntervalDays` integer, nullable — Days between retry attempts. Required when type is FIXED_RETRY.
  - `amount` AmountModel, required
    - `type` string, nullable — Amount type. Valid values: FIXED (requires fixedValue), VARIABLE (requires minValue and maxValue).
    - `fixedValue` integer, nullable — Fixed payment amount in cents. Required when type is FIXED.
    - `minValue` integer, nullable — Minimum payment amount in cents. Required when type is VARIABLE.
    - `maxValue` integer, nullable — Maximum payment amount in cents. Required when type is VARIABLE.
    - `currency` string, required — ISO currency code (3 characters)
  - `notificationUrl` string, uri, required — Webhook URL for receiving events
  - `country` string, required — ISO country code
  - `automaticScheduleAllowed` boolean
  - `description` string, nullable
  - `language` string, required — ISO language code
  - `internalReferenceId` string, nullable
  - `metadata` object, nullable

## Response `201`

Product created successfully

- SubscriptionProductResponseWrapper
  - `data` object, nullable
    - `subscriptionProductId` string, uuid
    - `shopId` integer
    - `channel` string
    - `authorizationType` string
    - `frequency` string
    - `retryPolicy` RetryPolicy
      - `type` string, required — Retry policy type. Valid values: PIX_SPECIFIC (auto-configured for PIX), FIXED_RETRY (requires maxRetries and retryIntervalDays), NOT_ALLOWED (no retries).
      - `maxRetries` integer, nullable — Maximum number of retry attempts. Required when type is FIXED_RETRY.
      - `retryIntervalDays` integer, nullable — Days between retry attempts. Required when type is FIXED_RETRY.
    - `amount` AmountModel
      - `type` string, nullable — Amount type. Valid values: FIXED (requires fixedValue), VARIABLE (requires minValue and maxValue).
      - `fixedValue` integer, nullable — Fixed payment amount in cents. Required when type is FIXED.
      - `minValue` integer, nullable — Minimum payment amount in cents. Required when type is VARIABLE.
      - `maxValue` integer, nullable — Maximum payment amount in cents. Required when type is VARIABLE.
      - `currency` string, required — ISO currency code (3 characters)
    - `automaticScheduleAllowed` boolean
    - `notificationUrl` string, uri
    - `country` string
    - `language` string
    - `description` string, nullable
    - `internalReferenceId` string, nullable
    - `isActive` boolean
    - `metadata` object, nullable
  - `errors` ApiError[]
    - `errorCode` string
    - `errorMessage` string
  - `status` boolean — Indicates if the request was successful

## Other responses

- `400` — Bad Request

---

[API](https://skmtc.net/payretailers/apis/transaction.md) · [All operations](https://skmtc.net/payretailers/apis/transaction/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/payretailers/transaction/versions/b022ee3a593d/schema)
