Resume Subscription
curl --request POST \
--url https://api-dev.paymentoptions.com/api/v1/server-to-server-interface/subscription/{subscription_id}/resume \
--header 'Authorization: <api-key>' \
--header 'x-api-key: <api-key>'import requests
url = "https://api-dev.paymentoptions.com/api/v1/server-to-server-interface/subscription/{subscription_id}/resume"
headers = {
"Authorization": "<api-key>",
"x-api-key": "<api-key>"
}
response = requests.post(url, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'x-api-key': '<api-key>'}
};
fetch('https://api-dev.paymentoptions.com/api/v1/server-to-server-interface/subscription/{subscription_id}/resume', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-dev.paymentoptions.com/api/v1/server-to-server-interface/subscription/{subscription_id}/resume",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api-dev.paymentoptions.com/api/v1/server-to-server-interface/subscription/{subscription_id}/resume"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api-dev.paymentoptions.com/api/v1/server-to-server-interface/subscription/{subscription_id}/resume")
.header("Authorization", "<api-key>")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-dev.paymentoptions.com/api/v1/server-to-server-interface/subscription/{subscription_id}/resume")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"status_code": 200,
"is_live": false,
"gateway_response": {
"version": "1",
"type": "INFO",
"message": "Subscription Updated.",
"code": "INFO3000"
},
"subscription_details": {
"id": "664dc930-88bd-4696-8807-5e0f1fedba0b",
"type": "CYCLE",
"max_cycle_count": 10,
"status": "ACTIVE",
"completed_payment_cycle": 1,
"last_payment_status": "SUCCESSFUL",
"next_payment_date": "2024-11-28T01:31:29.154Z",
"next_payment_cycle": 2,
"subscription_plan_details": {
"name": "Three weeks plan",
"desc": "Billed every two days",
"billing_cycle_type": "DAYS",
"billing_cycle_interval": 2,
"amount": 1000,
"ccy": "JPY",
"trial_period_duration": "",
"trial_period_duration_type": "NONE",
"plan_discount_percentage": 10,
"plan_discount_duration": 2
},
"subscription_transaction_details": [
{
"id": "359f39bd-673a-47b3-b9ec-cbd6cd313b8e",
"ref": 74860,
"cycle": 1,
"status": "SUCCESSFUL",
"transaction_date": "2024-11-26T01:31:29.000Z",
"amount": 900,
"ccy": "JPY",
"event": "CAPTURED"
}
]
}
}Subscriptions
Resume Subscription API
The Resume Subscription API allows merchants to reactivate a previously paused subscription, resuming the billing cycle and associated services for the customer.
POST
/
api
/
v1
/
server-to-server-interface
/
subscription
/
{subscription_id}
/
resume
Resume Subscription
curl --request POST \
--url https://api-dev.paymentoptions.com/api/v1/server-to-server-interface/subscription/{subscription_id}/resume \
--header 'Authorization: <api-key>' \
--header 'x-api-key: <api-key>'import requests
url = "https://api-dev.paymentoptions.com/api/v1/server-to-server-interface/subscription/{subscription_id}/resume"
headers = {
"Authorization": "<api-key>",
"x-api-key": "<api-key>"
}
response = requests.post(url, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'x-api-key': '<api-key>'}
};
fetch('https://api-dev.paymentoptions.com/api/v1/server-to-server-interface/subscription/{subscription_id}/resume', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-dev.paymentoptions.com/api/v1/server-to-server-interface/subscription/{subscription_id}/resume",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api-dev.paymentoptions.com/api/v1/server-to-server-interface/subscription/{subscription_id}/resume"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api-dev.paymentoptions.com/api/v1/server-to-server-interface/subscription/{subscription_id}/resume")
.header("Authorization", "<api-key>")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-dev.paymentoptions.com/api/v1/server-to-server-interface/subscription/{subscription_id}/resume")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"status_code": 200,
"is_live": false,
"gateway_response": {
"version": "1",
"type": "INFO",
"message": "Subscription Updated.",
"code": "INFO3000"
},
"subscription_details": {
"id": "664dc930-88bd-4696-8807-5e0f1fedba0b",
"type": "CYCLE",
"max_cycle_count": 10,
"status": "ACTIVE",
"completed_payment_cycle": 1,
"last_payment_status": "SUCCESSFUL",
"next_payment_date": "2024-11-28T01:31:29.154Z",
"next_payment_cycle": 2,
"subscription_plan_details": {
"name": "Three weeks plan",
"desc": "Billed every two days",
"billing_cycle_type": "DAYS",
"billing_cycle_interval": 2,
"amount": 1000,
"ccy": "JPY",
"trial_period_duration": "",
"trial_period_duration_type": "NONE",
"plan_discount_percentage": 10,
"plan_discount_duration": 2
},
"subscription_transaction_details": [
{
"id": "359f39bd-673a-47b3-b9ec-cbd6cd313b8e",
"ref": 74860,
"cycle": 1,
"status": "SUCCESSFUL",
"transaction_date": "2024-11-26T01:31:29.000Z",
"amount": 900,
"ccy": "JPY",
"event": "CAPTURED"
}
]
}
}Key Points
Resume a Subscription
- Merchants can use this API to resume a subscription that was previously paused, restoring regular billing and service.
- Once resumed, the subscription will return to its active status, and future billing cycles will proceed as originally scheduled.
Billing Cycle and Status
- The subscription will be reinstated to the active status, and billing will pick up from where it left off. If the next billing cycle is due, it will be processed automatically.
- Any discounts or trial periods configured in the original subscription will continue as initially set.
Required Parameters
- Subscription ID: The unique identifier of the subscription to be resumed.
Flow diagram
Api Parameters
Authorizations
API Key for Authorization. Format: 'Basic YOUR_API_KEY_HERE'
API Key specific to x-api-key.
Path Parameters
The Subscription ID of the subscription. Example: 664dc930-88bd-4696-8807-5e0f1fedba0b. The unique Subscription ID of the subscription.
Maximum string length:
36Response
200 - application/json
A successful response indicating the subscription has been resumed.
Indicates whether the operation was successful.
Example:
true
The HTTP status code of the response.
Example:
200
Indicates if the transaction is live or a test transaction.
Example:
false
Response details from the gateway.
Show child attributes
Show child attributes
Details of the subscription.
Show child attributes
Show child attributes