---
title: "Create Recurring Billing"
method: POST
path: "/v1/recurring-billing"
---

# Create Recurring Billing

`POST /v1/recurring-billing`

Once your customer has decided to start the subscription this endpoint will create the recurring billing request.
Since this is a server-to-server communication, if you have a mobile or Web client that communicates with your REST API, you must have a new endpoint E.g. /create-subscription or reuse an existing endpoint. This endpoint will be responsible for making the recurring billing API call to HitPay.

## Headers

- `X-BUSINESS-API-KEY` string, required

## Request body

- object
  - `plan_id` string, uuid — Subscription plan id created from Create a Subscription Plan API. If you would like to create a subscription without a plan, plan_id should be null
  - `save_card` 'true' | 'false' — Only set the value “true” if you wish to save the card and charge the customer later on. More details in “Save Card” section
  - `save_payment_method` 'true' | 'false' — It's new field that will replace save_card field in the future. Only set the value “true” if you wish to save the payment method and charge the customer later on. More details in “Save Payment Method” section
  - `start_date_method` 'sign_up_date' | 'no_initial_charge' — It's an optional field and only applicable when save_payment_method is true. By default, the start_date_method is null. Options are sign_up_date or no_initial_charge
  - `name` string — It's is required when save card = true or plan_id = null. By default, the name from the subscription plan will be used.
  - `cycle` 'weekly' | 'monthly' | 'yearly' | 'custom' — It's is required when plan_id = null. By default, the cycle from the subscription plan will be used. Billing frequency (weekly / monthly / yearly / custom)
  - `cycle_repeat` integer — It is required field when cycle is custom. New cycle will only be affective at the end of the current cycle
  - `cycle_frequency` 'day' | 'week' | 'month' | 'year' — It is required field when the cycle is custom. For cycle = custom, set the frequency for cycle repeat field options [day, week, month, year]
  - `customer_email` string, email, required — Customer's email.
  - `customer_name` string — Customer's name.
  - `start_date` string — Required when save_card is not true. Billing start date (YYYY-MM-DD) in SGT. Must be today or a future date.
  - `redirect_url` string — URL where HitPay redirects the user after the users enters the card details and the subscription is active. Query arguments reference (subscription id) and status are sent along
  - `reference` string
  - `payment_methods` string[] — The active Payment methods to be used for the subscription: card, giro, shopee_recurring.
  - `send_email` 'true' | 'false' — HitPay to send email receipts to the customer. Default value is false
  - `times_to_be_charged` number — It's time to be charged. Default value is 1

## Response `200`

200

## Other responses

- `422` — 422

---

[API](https://skmtc.net/hitpayapp/apis/hitpay-api.md) · [All operations](https://skmtc.net/hitpayapp/apis/hitpay-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/hitpayapp/hitpay-api/revisions/6aae1a736990/schema)
