---
title: "Update Recurring Billing"
method: PUT
path: "/v1/recurring-billing/{recurring_billing_id}"
---

# Update Recurring Billing

`PUT /v1/recurring-billing/{recurring_billing_id}`

Use this API to update the recurring billing, any changes made to the cycle will only be effective at the end of the current cycle.

## Path parameters

- `recurring_billing_id` string, uuid, required

## Headers

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

## Request body

- object
  - `plan_id` string, uuid — The plan ID, if plan_id is not null it will update [cycle, cycle_repeat, cycle_frequency and amount] with the values from Subscription plan. if plan_id is null you can update each field individually. When save_card is true, you disallow to set plan_id
  - `name` string — Plan name
  - `description` string — The description of subscription plan
  - `payment_methods` string[] — The active Payment methods to be used for the subscription: card, giro, shopee_recurring.
  - `cycle` 'weekly' | 'monthly' | 'yearly' | 'custom' — 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]
  - `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
  - `customer_email` string, email — Customer's email.
  - `customer_name` string — Customer's name.
  - `start_date` string — The start date must be a date after or equal to today and Billing start date (YYYY-MM-DD) in SGT, only possible to change start date for recurring billing ID with status = scheduled or active
  - `redirect_url` string, url — 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 — Arbitrary reference number that you can map to your internal reference number. This value cannot be edited by the customer
  - `amount` number, double — New amount, customer will be charged the new amount on the next cycle. Min: It depends on the currency, Max 999999.99
  - `send_email` 'true' | 'false' — Send the email

## Response `200`

200

- object
  - `id` string
  - `business_recurring_plans_id` string
  - `customer_name` string
  - `customer_email` string
  - `name` string
  - `description` string
  - `reference` string
  - `cycle` string
  - `cycle_repeat` unknown
  - `cycle_frequency` unknown
  - `currency` string
  - `amount` number
  - `times_to_be_charged` integer
  - `times_charged` integer
  - `status` string
  - `send_email` integer
  - `save_card` integer
  - `redirect_url` string
  - `payment_methods` string[]
  - `created_at` string
  - `updated_at` string
  - `expires_at` unknown
  - `url` string

## 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/versions/6aae1a736990/schema)
