---
title: "Create recurring payment"
method: POST
path: "/recurring/setup"
tags: ["Recurring Service"]
---

# Create recurring payment

`POST /recurring/setup`

Sets up a recurring payment using the specified subscription, stored payment method, item, and schedule.

## Request body

- RecurringRequest
  - `subscriptionId` string, required — Unique subscription identifier associated with the customer and stored payment method.
  - `paymentType` 'creditcard' | 'echeck', required — Type of payment method.
  - `storedPaymentMethodId` string, required — Identifier of the stored payment method to be used for recurring payments.
  - `item` Item, required — Item charged on the recurring schedule.
    - `itemKey` string — The item's key
    - `amount` number — The amount to pay for the item
    - `instanceId` string — SKU
    - `attributes` ItemAttribute[] — Additional attributes
      - `receiptDisplay` boolean — Determines whether or not the attribute is displayed on the receipt
      - `attribute` string — Attribute name
      - `value` string — Attribute value
  - `recurringFrequency` 'daily' | 'weekly' | 'monthly' | 'bi_weekly' | 'bi_monthly' | 'annually', required — Recurring payment frequency.
  - `recurringStartDate` string, date, required — Start date of the recurring schedule.
  - `recurringEndDate` string, date — End date of the recurring schedule. If provided, no payments are scheduled after this date.

## Response `200`

Recurring payment setup completed successfully

- RecurringResponse
  - `subscriptionId` string — Unique subscription identifier associated with the recurring payment setup.
  - `recurringId` string — Unique identifier of the recurring payment setup.
  - `httpStatusCode` integer — HTTP status code.
  - `message` string — Response message.
  - `responseTimestamp` string, date-time — Date and time when the response was generated.

## Other responses

- `400` — Invalid request data
- `401` — Unauthorized. The access token is missing, invalid, or expired.
- `404` — Subscription or stored payment method not found
- `500` — Internal server error

---

[API](https://skmtc.dev/civikestpayment/apis/pays-service-api-specifications.md) · [All operations](https://skmtc.dev/civikestpayment/apis/pays-service-api-specifications/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/civikestpayment/pays-service-api-specifications/revisions/e94a116dff94/schema)
