Pause subscription
| METHOD | URL |
|---|---|
| POST | /subscriptions/{subscriptionId}/pause |
| EXAMPLE | https://test.api.revuppayments.com/v2/subscriptions/{subscriptionId}/pause |
Endpoint to pause a subscription.
Success responses - Pause subscription
| HTTP CODE | DESCRIPTION |
|---|---|
| 200 | Subscription has been paused and the response is in the body in JSON format. |
Success response example - Pause subscription
{
"id": "0195146b-fb77-73b4-bb92-ba8bc2180433",
"merchantId": "74d52e64-e807-4d77-bfe2-76f5274febf1",
"planId": "4aa7c1e4-cf8c-4d1c-a6ad-451dd07411ee",
"status": "paused",
"cycle": 1,
"createdAt": "2025-02-17T15:00:12.491953Z",
"modifiedAt": "2025-02-17T15:07:14.095555Z"
}
Error responses - Pause subscription
| HTTP CODE | ERROR CODE | ERROR MESSAGE | DESCRIPTION |
|---|---|---|---|
| 500 | 0900 | Internal Server Error | The server experienced an unexpected error. |
| 404 | 0020 | Subscription not found | Subscription %s not found |
Bulk pause subscriptions
| METHOD | URL |
|---|---|
| POST | /subscriptions/bulk/pause |
| EXAMPLE | https://test.api.revuppayments.com/v2/subscriptions/bulk/pause |
Queues a pause command for every subscription in the request. The endpoint validates the request, publishes one command per subscription and answers 202 Accepted: no pause logic runs synchronously, so 202 means the request was queued, never that it was completed.
curl --location 'https://test.api.revuppayments.com/v2/subscriptions/bulk/pause' \
--header 'Content-Type: application/json' \
--header 'x-api-key: {X_API_KEY}' \
--data '{
"subscriptions": [
"0195146b-fb77-73b4-bb92-ba8bc2180433",
"0195146c-1a2b-73b4-bb92-ba8bc2180999"
]
}'
Headers
| Name | Description | Required |
|---|---|---|
| X_API_KEY | Merchant API key. The merchant is resolved from this key; it is never sent in the path or body. | YES |
| Content-Type | Must be application/json. | YES |
Body
| Name | Description | Required |
|---|---|---|
| subscriptions | Array of subscription IDs (UUID) to pause. Must contain at least 1 and at most 3000 identifiers. Every identifier must be a valid UUID. | YES |
Example Response — 202 Accepted
{
"requestId": "0195146b-fb77-73b4-bb92-ba8bc2180433",
"operation": "PAUSE",
"acceptedCount": 2
}
| Field | Description |
|---|---|
| requestId | Correlation identifier shared by every command published for this request. Use it to trace the operation in the logs. It is not a bulk-job identifier and cannot be queried. |
| operation | The requested operation: PAUSE. |
| acceptedCount | Number of subscription commands successfully queued. |
When a paused subscription with a pending payment is resumed, the pending payment is charged immediately. If the payment fails, the first retry may occur sooner than the retry interval configured in the plan, potentially as soon as the following day.
This is expected behavior. Retry dates are calculated based on the payment's original due date, which remains unchanged while the subscription is paused. Upon resumption, the system schedules the next retry according to the original retry schedule, without replaying retries that would have occurred during the pause.
Example: For a plan configured with retries every 7 days, resuming a subscription on September 29 may trigger an immediate payment attempt. If that attempt fails, the next retry may occur on September 30, rather than 7 days later. Subsequent retries follow the configured 7-day interval.
Important considerations:
- This behavior affects only the first retry after resuming a paused subscription with a pending payment.
- The first retry may occur anywhere from a few hours to the full configured retry interval after the failed charge, depending on when the subscription is resumed.
- The configured number of retries is not affected; only the timing of the first retry may differ from the expected interval.
- Merchants should account for this behavior when resuming subscriptions to avoid assuming that the configured retry interval will always apply immediately after the first failed charge.