license_keys
Rotate License Key
Rotate a license key.
Generates a new key string for the same license key record. The previous key string immediately stops validating. Status, usage, limits, expiry, and activations are preserved.
Scopes: license_keys:write
POST
/
v1
/
license-keys
/
{id}
/
rotate
Python
from ourpay.v2026_10 import OurPay
ourpay = OurPay("ourpay_oat_xxx")
response = ourpay.license_keys.rotate(
'00000000-0000-4000-8000-000000000000',
)
print(response)import { createOurPay } from "@ourpay-dev/sdk/2026-10";
const ourpay = createOurPay({
accessToken: "ourpay_oat_xxx",
});
const response = await ourpay.licenseKeys.rotate(
"00000000-0000-4000-8000-000000000000",
);
console.log(response);
curl --request POST \
--url https://api.ourpay.dev/v1/license-keys/{id}/rotate \
--header 'Authorization: Bearer <token>'const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.ourpay.dev/v1/license-keys/{id}/rotate', 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.ourpay.dev/v1/license-keys/{id}/rotate",
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: Bearer <token>"
],
]);
$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.ourpay.dev/v1/license-keys/{id}/rotate"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.ourpay.dev/v1/license-keys/{id}/rotate")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ourpay.dev/v1/license-keys/{id}/rotate")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"organization_id": "<string>",
"customer_id": "<string>",
"customer": {
"id": "992fae2a-2a17-4b7a-8d9e-e287cf90131b",
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"metadata": {},
"email_verified": true,
"type": "individual",
"name": "John Doe",
"billing_name": "John Doe",
"billing_address": {
"country": "US",
"line1": "<string>",
"line2": "<string>",
"postal_code": "<string>",
"city": "<string>",
"state": "<string>"
},
"tax_id": {
"[0]": "<string>"
},
"organization_id": "1dbfc517-0bbf-4301-9ba8-555ca42b9737",
"deleted_at": "2023-11-07T05:31:56Z",
"first_user_event_at": "2023-11-07T05:31:56Z",
"avatar_url": "https://www.gravatar.com/avatar/xxx?d=404",
"external_id": "usr_1337",
"email": "customer@example.com",
"locale": "<string>",
"default_payment_method_id": "<string>"
},
"benefit_id": "<string>",
"key": "<string>",
"display_key": "<string>",
"status": "granted",
"limit_activations": 123,
"usage": 123,
"limit_usage": 123,
"validations": 123,
"last_validated_at": "2023-11-07T05:31:56Z",
"expires_at": "2023-11-07T05:31:56Z"
}{
"error": "RotateNotPermitted",
"detail": "<string>"
}{
"error": "Unauthorized",
"detail": "<string>"
}{
"error": "ResourceNotFound",
"detail": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
patoat
Path Parameters
Response
Successful Response
The ID of the object.
Creation timestamp of the object.
Last modification timestamp of the object.
Show child attributes
Show child attributes
The benefit ID.
Available options:
granted, revoked, disabled ⌘I
Python
from ourpay.v2026_10 import OurPay
ourpay = OurPay("ourpay_oat_xxx")
response = ourpay.license_keys.rotate(
'00000000-0000-4000-8000-000000000000',
)
print(response)import { createOurPay } from "@ourpay-dev/sdk/2026-10";
const ourpay = createOurPay({
accessToken: "ourpay_oat_xxx",
});
const response = await ourpay.licenseKeys.rotate(
"00000000-0000-4000-8000-000000000000",
);
console.log(response);
curl --request POST \
--url https://api.ourpay.dev/v1/license-keys/{id}/rotate \
--header 'Authorization: Bearer <token>'const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.ourpay.dev/v1/license-keys/{id}/rotate', 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.ourpay.dev/v1/license-keys/{id}/rotate",
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: Bearer <token>"
],
]);
$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.ourpay.dev/v1/license-keys/{id}/rotate"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.ourpay.dev/v1/license-keys/{id}/rotate")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ourpay.dev/v1/license-keys/{id}/rotate")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"organization_id": "<string>",
"customer_id": "<string>",
"customer": {
"id": "992fae2a-2a17-4b7a-8d9e-e287cf90131b",
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"metadata": {},
"email_verified": true,
"type": "individual",
"name": "John Doe",
"billing_name": "John Doe",
"billing_address": {
"country": "US",
"line1": "<string>",
"line2": "<string>",
"postal_code": "<string>",
"city": "<string>",
"state": "<string>"
},
"tax_id": {
"[0]": "<string>"
},
"organization_id": "1dbfc517-0bbf-4301-9ba8-555ca42b9737",
"deleted_at": "2023-11-07T05:31:56Z",
"first_user_event_at": "2023-11-07T05:31:56Z",
"avatar_url": "https://www.gravatar.com/avatar/xxx?d=404",
"external_id": "usr_1337",
"email": "customer@example.com",
"locale": "<string>",
"default_payment_method_id": "<string>"
},
"benefit_id": "<string>",
"key": "<string>",
"display_key": "<string>",
"status": "granted",
"limit_activations": 123,
"usage": 123,
"limit_usage": 123,
"validations": 123,
"last_validated_at": "2023-11-07T05:31:56Z",
"expires_at": "2023-11-07T05:31:56Z"
}{
"error": "RotateNotPermitted",
"detail": "<string>"
}{
"error": "Unauthorized",
"detail": "<string>"
}{
"error": "ResourceNotFound",
"detail": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}