---
title: "Create Custom Charge"
method: POST
path: "/subscription/api/v1/subscriptions/{id}/charge-custom"
tags: ["Subscription Charge"]
---

# Create Custom Charge

`POST /subscription/api/v1/subscriptions/{id}/charge-custom`

This endpoint processes an off-cycle or custom charge for an active subscription.

> **Notes:**
> * By default, `countsAsCycle` is **false**.
> * When `countsAsCycle` is **false**, the subscription's billing cycle remains unchanged.
> * Set `countsAsCycle` to **true** if the custom charge should be treated as a scheduled billing cycle.

## Path parameters

- `id` string, required

## Request body

- CreateCustomSubscriptionChargeRequest
  - `amount` number, double, required — The amount to be charged.
  - `currency` string, required — The 3-letter ISO currency code.
  - `description` string, required — A brief description or reason for the one-off charge.
  - `idempotencyKey` string — A Unique identifier used to prevent duplicate charge requests.
  - `countsAsCycle` boolean — Indicates whether this charge should count as a normal subscription billing cycle. Defaults to **false**.

## Response `200`

Funding Successful

- CreateCustomSubscriptionChargeResponse
  - `success` boolean — Indicates if the request was successful.
  - `message` string — Descriptive message regarding the charge operation.
  - `data` object — The payload containing the charge result or the next action details.
    - `status` string — The status of the charge. Can be **SUCCESS**, **REQUIRES_ACTION**, or **FAILED**.
    - `transactionReference` string — Unique reference for this charge transaction.
    - `amount` number — The charged amount. *(Returned only if status is SUCCESS)*.
    - `currency` string — The 3-letter ISO currency code. *(Returned only if status is SUCCESS)*.
    - `chargeMode` string — The mode of the charge. *(Returned only if status is SUCCESS)*.
    - `message` string — Additional status message from the gateway. *(Returned only if status is SUCCESS)*.
    - `three_ds_url` string — The 3D Secure URL to redirect the customer to. *(Returned only if status is REQUIRES_ACTION)*.
    - `three_ds_html` string — The 3D Secure HTML form to render for authentication. *(Returned only if status is REQUIRES_ACTION)*.

## Other responses

- `400` — Invalid request

---

[API](https://skmtc.net/payaza/apis/payaza-documentation.md) · [All operations](https://skmtc.net/payaza/apis/payaza-documentation/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/payaza/payaza-documentation/revisions/1ecd4b94ff07/schema)
