Complete test clock
curl --request POST \
--url https://uat-api.clinkbill.com/api/subscription/test-clocks/{clockId}/complete \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--header 'X-Timestamp: <x-timestamp>' \
--data '
{
"reason": "Manual stop after verification"
}
'HttpResponse<String> response = Unirest.post("https://uat-api.clinkbill.com/api/subscription/test-clocks/{clockId}/complete")
.header("X-Timestamp", "<x-timestamp>")
.header("X-API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"reason\": \"Manual stop after verification\"\n}")
.asString();import requests
url = "https://uat-api.clinkbill.com/api/subscription/test-clocks/{clockId}/complete"
payload = { "reason": "Manual stop after verification" }
headers = {
"X-Timestamp": "<x-timestamp>",
"X-API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-Timestamp': '<x-timestamp>',
'X-API-KEY': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({reason: 'Manual stop after verification'})
};
fetch('https://uat-api.clinkbill.com/api/subscription/test-clocks/{clockId}/complete', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"code": 200,
"msg": "success",
"data": {
"name": "<string>",
"clockId": "<string>",
"subscriptionId": "<string>",
"frozenTime": 123,
"lastAdvancedTo": 123,
"status": "READY",
"livemode": true,
"metadata": "<string>",
"eventCount": 123,
"createTime": 123,
"updateTime": 123
}
}"<string>"Test Clock
Complete Test Clock
Complete a test clock and stop further simulated execution
POST
/
subscription
/
test-clocks
/
{clockId}
/
complete
Complete test clock
curl --request POST \
--url https://uat-api.clinkbill.com/api/subscription/test-clocks/{clockId}/complete \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--header 'X-Timestamp: <x-timestamp>' \
--data '
{
"reason": "Manual stop after verification"
}
'HttpResponse<String> response = Unirest.post("https://uat-api.clinkbill.com/api/subscription/test-clocks/{clockId}/complete")
.header("X-Timestamp", "<x-timestamp>")
.header("X-API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"reason\": \"Manual stop after verification\"\n}")
.asString();import requests
url = "https://uat-api.clinkbill.com/api/subscription/test-clocks/{clockId}/complete"
payload = { "reason": "Manual stop after verification" }
headers = {
"X-Timestamp": "<x-timestamp>",
"X-API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-Timestamp': '<x-timestamp>',
'X-API-KEY': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({reason: 'Manual stop after verification'})
};
fetch('https://uat-api.clinkbill.com/api/subscription/test-clocks/{clockId}/complete', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"code": 200,
"msg": "success",
"data": {
"name": "<string>",
"clockId": "<string>",
"subscriptionId": "<string>",
"frozenTime": 123,
"lastAdvancedTo": 123,
"status": "READY",
"livemode": true,
"metadata": "<string>",
"eventCount": 123,
"createTime": 123,
"updateTime": 123
}
}"<string>"Authorizations
Your secret API key obtained from the Clink dashboard (Developers section)
Headers
Current timestamp in milliseconds since Unix epoch (required for request signing)
Example:
"1783513683000"
Path Parameters
Unique identifier of the test clock
Body
application/json
Optional parameters to complete a test clock
Reason for manually completing the test clock