---
updatedAt: 2026-05-28T07:31:32.000Z
agentTools:
  projectIndex: https://docs.praxis.tech/llms.txt
---

# Create Subscription Plan

# OpenAPI definition

```json
{
  "openapi": "3.0.2",
  "info": {
    "title": "API",
    "version": "1.3",
    "description": "Praxis Open API 3.0.2 specification document.\nThis contains all the APIs created by Praxis Tech."
  },
  "servers": [
    {
      "url": "https://gw.praxisgate.com",
      "description": "Live(PraxisGate)"
    },
    {
      "url": "https://pci-gw-test.praxispay.com",
      "description": "Sandbox"
    }
  ],
  "paths": {
    "/api/v1.3/subscription-plan": {
      "summary": "This specification provides the details to create subscription plan",
      "post": {
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/payload_create_subscription_plan_requestData"
              },
              "examples": {
                "create subscription plan": {
                  "value": {
                    "merchant_id": "API-Merchant",
                    "application_key": "test-application",
                    "name": "Plan 1",
                    "description": "Basic plan for casino",
                    "billing_cycle": "weekly",
                    "prices": [
                      {
                        "amount": 20000,
                        "currency": "EUR"
                      },
                      {
                        "amount": 19800,
                        "currency": "USD"
                      },
                      {
                        "amount": 93500,
                        "currency": "PLN"
                      }
                    ],
                    "trial_period": 14,
                    "trial_period_cycle": "days",
                    "expiration_cycles": 12,
                    "retries_number": 3,
                    "retries_delay_days": 1,
                    "subscription_status_failed_payments": "inactive",
                    "inactive_subscription_lifetime": 14,
                    "version": 1.3,
                    "timestamp": 1680712861
                  }
                }
              }
            }
          },
          "required": true
        },
        "tags": [
          "Subscription Plan"
        ],
        "parameters": [
          {
            "name": "gt-authentication",
            "schema": {
              "$ref": "#/components/schemas/property_req_header_signature_params_for_subscriptions"
            },
            "in": "header",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-ok-create-subscription-plan-response-data"
          },
          "400": {
            "$ref": "#/components/responses/common-400-bad-request-missing-sign-response-data"
          },
          "403": {
            "$ref": "#/components/responses/common-403-forbidden-response-data"
          }
        },
        "operationId": "createSubscriptionPlan",
        "summary": "Create Subscription Plan"
      }
    }
  },
  "components": {
    "schemas": {
      "property_common_base_properties": {
        "required": [
          "merchant_id",
          "application_key",
          "version",
          "timestamp"
        ],
        "type": "object",
        "properties": {
          "merchant_id": {
            "$ref": "#/components/schemas/merchant_id"
          },
          "application_key": {
            "$ref": "#/components/schemas/application_key"
          },
          "version": {
            "$ref": "#/components/schemas/version"
          },
          "timestamp": {
            "$ref": "#/components/schemas/timestamp"
          }
        }
      },
      "application_key": {
        "description": "Identifier of your application (website).",
        "maxLength": 32,
        "type": "string",
        "example": "Sandbox-Application"
      },
      "version": {
        "description": "API version.",
        "maxLength": 3,
        "type": "string",
        "example": "1.3"
      },
      "timestamp": {
        "description": "Request time (unix timestamp, seconds).",
        "maxLength": 11,
        "type": "integer",
        "example": "1755853580"
      },
      "amount": {
        "description": "Transaction amount in cents.\n\n*__Note__*: *For certain currencies there is a fraction other than 100 cents per unit, this is important if you multiply by 100 to send the amount in cents.*",
        "maxLength": 20,
        "type": "integer"
      },
      "currency": {
        "description": "**Base Currency**: The user's account currency on the merchant site.",
        "maxLength": 10,
        "type": "string"
      },
      "description": {
        "description": "Accurate description of the result. Return the actual error for any exception as it helps to diagnose issues in production.\r\n",
        "type": "string",
        "maxLength": 256
      },
      "status": {
        "description": "API communication status - for transaction processing status please refer to `transaction.transaction.status`\r\n- 0 if the request was successful.\r\n- Negative integer if internal server/network error occurs.\r\n- Positive integer if application/logical error occurs. Refer [API Status & Error Codes](https://docs.praxis.tech/docs/api-status-and-error-codes) for more information.",
        "type": "integer"
      },
      "result": {
        "description": "Error result object",
        "required": [
          "code",
          "description"
        ],
        "type": "object",
        "properties": {
          "code": {
            "description": "Error code",
            "type": "string"
          },
          "description": {
            "description": "Error description",
            "type": "string"
          }
        }
      },
      "object_response_400_bad": {
        "description": "Object - 400-Bad request",
        "type": "object",
        "properties": {
          "description": {
            "$ref": "#/components/schemas/description"
          },
          "status": {
            "$ref": "#/components/schemas/status"
          }
        }
      },
      "object_response_403_forbidden": {
        "description": "Object - 403-Forbidden",
        "type": "object",
        "properties": {
          "result": {
            "$ref": "#/components/schemas/result"
          },
          "timestamp": {
            "$ref": "#/components/schemas/timestamp"
          }
        }
      },
      "property_common_200_ok_response_properties": {
        "required": [
          "status",
          "description",
          "version",
          "timestamp"
        ],
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/status"
          },
          "description": {
            "$ref": "#/components/schemas/description"
          },
          "version": {
            "$ref": "#/components/schemas/version"
          },
          "timestamp": {
            "$ref": "#/components/schemas/timestamp"
          }
        }
      },
      "plan_id": {
        "description": "Subscription Plan ID",
        "maxLength": 32,
        "type": "string",
        "example": "i2VANeFxKR1aZGoH"
      },
      "subscription_plan_status": {
        "description": "Subscription Plan Status. Available status options:\r\n- `active` - Activate the subscription plan. \r\n- `inactive` - Deactivate the subscription plan. \r\n- `deleted` - Delete the subscription plan",
        "enum": [
          "active",
          "inactive",
          "deleted"
        ],
        "type": "string"
      },
      "expiration_cycles": {
        "description": "Number of weeks after which billing cycle will be expired.",
        "maxLength": 2,
        "type": "integer"
      },
      "billing_cycle": {
        "description": "The frequency of charging within the subscription plan. List of possible values:\r\n- Weekly (weekly)\r\n- Monthly (monthly)\r\n- Every 3 months (every_3_months)\r\n- Every 6 months (every_6_months)\r\n- Yearly (yearly)",
        "maxLength": 14,
        "type": "string",
        "enum": [
          "weekly",
          "monthly",
          "every_3_months",
          "every_6_months",
          "yearly"
        ]
      },
      "retries_number": {
        "description": "Number of retries in case of failure before disabling the plan for the customer. **Default value - 3**",
        "maxLength": 2,
        "type": "integer"
      },
      "retries_delay_days": {
        "description": "Delay between the retries in days. **Default value - 1**",
        "maxLength": 2,
        "type": "integer"
      },
      "inactive_subscription_lifetime": {
        "description": "Number of days before changing the subscription status from inactive to canceled.",
        "maxLength": 2,
        "type": "integer"
      },
      "subscription_status_failed_payments": {
        "description": "Status of subscriptions in case of failure after all the retries. List of possible value:\r\n- inactive (that can be re-activated)\r\n- canceled (that cannot be re-activated)",
        "maxLength": 8,
        "type": "string",
        "enum": [
          "inactive",
          "canceled"
        ]
      },
      "object_response_200_ok_create_subscription_plan": {
        "description": "200 Successful response",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/property_common_200_ok_response_properties"
          },
          {
            "required": [
              "prices",
              "subscription_plan_status",
              "plan_id"
            ],
            "type": "object",
            "properties": {
              "plan_id": {
                "$ref": "#/components/schemas/plan_id"
              },
              "prices": {
                "$ref": "#/components/schemas/property_subscription_plan_price",
                "description": "Options with the amount/currency pairs in the subscription plan."
              },
              "subscription_plan_status": {
                "$ref": "#/components/schemas/subscription_plan_status",
                "description": "Subscription Plan Status"
              }
            }
          }
        ]
      },
      "plan_name": {
        "description": "Description of the subscription plan",
        "maxLength": 32,
        "type": "string"
      },
      "payload_create_subscription_plan_requestData": {
        "allOf": [
          {
            "$ref": "#/components/schemas/property_common_base_properties"
          },
          {
            "required": [
              "name",
              "billing_cycle",
              "prices"
            ],
            "type": "object",
            "properties": {
              "name": {
                "$ref": "#/components/schemas/plan_name"
              },
              "description": {
                "$ref": "#/components/schemas/plan_description"
              },
              "billing_cycle": {
                "$ref": "#/components/schemas/billing_cycle"
              },
              "prices": {
                "$ref": "#/components/schemas/prices"
              },
              "trial_period": {
                "description": "Number of days/months without charging the client. List of possible values:\r\n- null - meaning the trial period is not enabled\r\n- [1, 2, 3, ... N] - the number of days/months without charging",
                "maxLength": 2,
                "type": "integer"
              },
              "trial_period_cycle": {
                "$ref": "#/components/schemas/trial_period_cycle"
              },
              "expiration_cycles": {
                "$ref": "#/components/schemas/expiration_cycles"
              },
              "retries_number": {
                "$ref": "#/components/schemas/retries_number"
              },
              "retries_delay_days": {
                "$ref": "#/components/schemas/retries_delay_days"
              },
              "subscription_plan_status": {
                "$ref": "#/components/schemas/subscription_plan_status"
              },
              "subscription_status_failed_payments": {
                "$ref": "#/components/schemas/subscription_status_failed_payments"
              },
              "inactive_subscription_lifetime": {
                "$ref": "#/components/schemas/inactive_subscription_lifetime"
              }
            }
          }
        ]
      },
      "plan_description": {
        "title": "description",
        "description": "Subscription Plan name",
        "maxLength": 32,
        "type": "string"
      },
      "trial_period_cycle": {
        "description": "Trial Period Cycle.Cycle for attempts in the trial period without charging the client.List of possible values:\r\n- null - meaning the trial period is not enabled\r\n- days\r\n- months",
        "type": "string",
        "enum": [
          null,
          "days",
          "months"
        ]
      },
      "prices": {
        "description": "Options with the amount/currency pairs in the subscription plan. Here are possible multiple pairs with different prices for different currencies. The currency parameter should be unique, meaning the record with two identical currencies cannot be created. The system should allow configuring only the currencies that exist in merchants gateway settings, considering only the gateways with MIT enabled.",
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/property_subscription_plan_prices"
        }
      },
      "property_subscription_plan_prices": {
        "title": "subscription plan price",
        "required": [
          "amount",
          "currency"
        ],
        "type": "object",
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/amount"
          },
          "currency": {
            "$ref": "#/components/schemas/currency"
          }
        }
      },
      "property_subscription_plan_price": {
        "title": "subscription plan price",
        "required": [
          "amount",
          "currency",
          "price_id"
        ],
        "type": "object",
        "properties": {
          "price_id": {
            "description": "Price ID.",
            "maxLength": 32,
            "type": "string"
          },
          "amount": {
            "$ref": "#/components/schemas/amount"
          },
          "currency": {
            "$ref": "#/components/schemas/currency"
          }
        }
      },
      "merchant_id": {
        "description": "Merchant API client account identifier.",
        "maxLength": 50,
        "type": "string",
        "example": "Sandbox-API"
      },
      "property_req_header_signature_params_for_subscriptions": {
        "title": "signature",
        "description": "Authentication HTTP header of your outgoing request to the API.\nBelow request parameters should be used for creating signature in request header.\n- `merchant_id`\n- `application_key` \n- `timestamp`",
        "type": "string",
        "example": "15ca3dadf8e1cb8a64301317f3ce5f8587d1adf37e42ae50702ae35732974193f3f464ddcb019fa0e2f5f3043b1cd23b"
      },
      "property_res_header_signature_params_common": {
        "title": "signature",
        "description": "Authentication HTTP header of the incoming response from the API.\nBelow response parameters should be used for validating the signature in response header.\n- `status`\n- `timestamp`",
        "type": "string",
        "example": "15ca3dadf8e1cb8a64301317f3ce5f8587d1adf37e42ae50702ae35732974193f3f464ddcb019fa0e2f5f3043b1cd23b"
      }
    },
    "responses": {
      "common-403-forbidden-response-data": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/object_response_403_forbidden"
            },
            "examples": {
              "Access Forbidden": {
                "value": {
                  "result": {
                    "code": "200.300.404",
                    "description": "Access Forbidden, IP:46.199.43.137"
                  },
                  "timestamp": "2025-02-03 13:21:47+0000"
                }
              }
            }
          }
        },
        "description": "Forbidden request - IP address not whitelisted"
      },
      "common-400-bad-request-missing-sign-response-data": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/object_response_400_bad"
            },
            "examples": {
              "Missing signature": {
                "value": {
                  "status": 400,
                  "description": "GT-Authentication header is missing"
                }
              }
            }
          }
        },
        "description": "Bad request - Missing signature"
      },
      "200-ok-create-subscription-plan-response-data": {
        "headers": {
          "external-request-signature": {
            "schema": {
              "$ref": "#/components/schemas/property_res_header_signature_params_common"
            }
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/object_response_200_ok_create_subscription_plan"
            },
            "examples": {
              "success response": {
                "value": {
                  "status": 0,
                  "description": "Subscription plan created successfully.",
                  "plan_id": "i2VANeFxKR1aZGoH",
                  "prices": [
                    {
                      "price_id": "1A8Nxpaf",
                      "amount": 20000,
                      "currency": "EUR"
                    },
                    {
                      "price_id": "JWolofvu",
                      "amount": 19800,
                      "currency": "USD"
                    },
                    {
                      "price_id": "0wvCJ1aU",
                      "amount": 93500,
                      "currency": "PLN"
                    }
                  ],
                  "subscription_plan_status": "active",
                  "version": 1.3,
                  "timestamp": 1680712861
                }
              },
              "failure response": {
                "value": {
                  "status": -1,
                  "description": "Validation failed. Application Key cannot be empty."
                }
              }
            }
          }
        },
        "description": "OK - Successful response"
      }
    }
  }
}
```