openapi: 3.2.0 info: title: Exclaimer Cloud Subscription Transfers API version: '1' description: The Subscription Transfers operations of the Exclaimer Cloud API, the partner/distributor provisioning API for Exclaimer Cloud tenants. Split by tag from the provider-published OpenAPI at https://cloudapi.exclaimer.com/openapi.json (documentation version 5.2, published 2025-07-23). Operation content is carried verbatim from the source specification. servers: - url: https://cloudapi.exclaimer.com/exclaimerapi description: Local security: - Exclaimer: [] tags: - name: Subscription Transfers paths: /1.0/subscriptions/{SubscriptionID}/transfer/cancel: put: tags: - Subscription Transfers summary: Cancel Subscription Transfer description: This request allows you to cancel a subscription transfer that you've previously issued a transfer request for.
Once the transfer request is cancelled, the subscription will no longer show as pending transfer. If someone tries to claim the subscription, their request will be rejected.
parameters: - name: SubscriptionID in: path description: Your reference for the subscription to cancel. This is the same ID you specified when issuing the transfer request. required: true schema: type: string responses: '204': description: No Content '400': description: Bad Request / Missing Field '401': description: Unauthorized '403': description: Forbidden '415': description: Unsupported Media Type '500': description: Internal Server Error x-documentation: routeExamples: Basic usage: value: /subscriptions/Subscription-FKV-201/transfer/cancel curlExamples: Basic usage - cURL: description: /subscriptions/Subscription-FKV-201/transfer/cancel value: '{}' /1.0/subscriptions/transfer/claim: post: tags: - Subscription Transfers summary: Claim Subscription Transfer description: This request allows you to claim a subscription that's currently owned by someone else.You can optionally specify additional details for the subscription, such as providing a meaningful ID, or associating it with one of your existing resellers, and/or end users.
This is the second half or a two part transfer handshake. See Initiate Subscription Transfer for the first half of the process.
In order to claim a subscription you must first have a valid token that can be used in the transfer process. This token will be provided either by the current subscription owner, or by Exclaimer. Once the token has been used, it will be invalidated, and cannot be reused.
Self claiming: It's possible to claim a subscription that you've previously issued a transfer request for, right up until the point at which the subscription has been claimed by someone else. While we would recommend you use the Cancel Subscription Transfer API instead, if you do use this we recommend only specifying the TransferToken and no other details. In this case, all existing subscription details, including Subscription ID, Reseller, and End User, will remain unchanged.
requestBody: content: application/json: schema: $ref: '#/components/schemas/ClaimSubscriptionTransfer' examples: Use an auto-generated ID, and do not associate with a reseller or end user: value: '{"TransferToken":"e0c2669f107745b1bf1253332b4ca205"}' Don't associate with existing any End User or Reseller: value: '{"TransferToken":"4e9db0647cc54f51b537000a41ca4f1","SubscriptionID":"Subscription-WON-196"}' Associate with an existing End User and Reseller: value: '{"TransferToken":"6a5dad1dd73904c1cb6830cef161710","SubscriptionID":"Subscription-PPX-394","ResellerID":"R-55782","EndUserID":"U-ABC-592"}' Specify End User and Reseller in full: value: '{"TransferToken":"37a5dad1dd73904c1cb6830cef16171","SubscriptionID":"Subscription-DFU-292","Reseller":{"ResellerID":"R-55555","CompanyName":"Resellers & Co.","CountryCode":"GBR"},"EndUser":{"EndUserID":"U-ABC-321","CompanyName":"Users Ltd","CountryCode":"GBR"}}' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/ClaimSubscriptionTransferResponse' examples: Auto-generated: value: '{"SubscriptionID":"77dmEGy5yE5apa38WMXt8udALobQoS"}' Specified: value: '{"SubscriptionID":"Subscription-CVZ-996"}' '400': description: Bad Request / Missing Field '401': description: Unauthorized '403': description: Forbidden '415': description: Unsupported Media Type '500': description: Internal Server Error x-documentation: curlExamples: Use an auto-generated ID, and do not associate with a reseller or end user - cURL: description: /subscriptions/transfer/claim value: '{"TransferToken":"e0c2669f107745b1bf1253332b4ca205"}' Don't associate with existing any End User or Reseller - cURL: description: /subscriptions/transfer/claim value: '{"TransferToken":"4e9db0647cc54f51b537000a41ca4f1","SubscriptionID":"Subscription-WON-196"}' Associate with existing End User and Reseller - cURL: description: /subscriptions/transfer/claim value: '{"TransferToken":"6a5dad1dd73904c1cb6830cef161710","SubscriptionID":"Subscription-PPX-394","ResellerID":"R-55782","EndUserID":"U-ABC-592"}' Specify End User and Reseller in full - cURL: description: /subscriptions/transfer/claim value: '{"TransferToken":"37a5dad1dd73904c1cb6830cef16171","SubscriptionID":"Subscription-DFU-292","Reseller":{"ResellerID":"R-55555","CompanyName":"Resellers & Co.","CountryCode":"GBR"},"EndUser":{"EndUserID":"U-ABC-321","CompanyName":"Users Ltd","CountryCode":"GBR"}}' /1.0/subscriptions/{SubscriptionID}/transfer: post: tags: - Subscription Transfers summary: Initiate Subscription Transfer description: This request initiates a subscription transfer.This is the first half or a two part transfer handshake. See Claim Subscription Transfer for the second half of the process.
This requests puts the target subscription into a state of transfer until it gets claimed. The request returns a Transfer Token that may be used by another consumer to take ownership of the subscription.
parameters: - name: SubscriptionID in: path description: Your reference for the subscription. This is the same ID you specified, or was automatically generated, when the subscription was created, i.e., when calling Add Subscription. required: true schema: type: string responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/InitiateSubscriptionTransferResponse' examples: Basic usage: value: '{"TransferToken":"27sfPOh6bR0ium66SMCr5sdPLdyQxC"}' '400': description: Bad Request / Missing Field '401': description: Unauthorized '403': description: Forbidden '415': description: Unsupported Media Type '500': description: Internal Server Error x-documentation: routeExamples: Basic usage: value: /subscriptions/Subscription-QAM-784/transfer curlExamples: Basic usage - cURL: description: /subscriptions/Subscription-QAM-784/transfer value: '{}' components: schemas: ClaimSubscriptionTransfer: title: ClaimSubscriptionTransferRequest required: - TransferToken properties: TransferToken: type: string description: This token grants you the rights to transfer the subscription, and will be provided either by the current subscription owner, or by Exclaimer. The token can only be used for one valid request. This excludes validation errors, in which case the token will remain valid. SubscriptionID: type: string description: Your reference for the subscription once it's been transferred. If not specified, or a subscription with the same ID already exists, this will be automatically generated. ResellerID: type: string description: Allows you to associate the transferred subscription with an existing custom reseller record.N.B. ResellerID and Reseller are mutually exclusive. If both are provided, this will result in an error. If neither are provided, then the subscription will not be associated with a reseller.
Reseller: allOf: - $ref: '#/components/schemas/ClaimSubscriptionTransferReseller' - description: Allows you to associate the transferred subscription with a custom reseller record.N.B. Reseller and ResellerID are mutually exclusive. If both are provided, this will result in an error. If neither are provided, then the subscription will not be associated with a reseller.
- {} EndUserID: type: string description: Allows you to associate the transferred subscription with an existing custom user record.N.B. EndUserID and EndUser are mutually exclusive. If both are provided, this will result in an error. If neither are provided, then the subscription will not be associated with an end user.
EndUser: allOf: - $ref: '#/components/schemas/ClaimSubscriptionTransferEndUser' - description: Allows you to associate the transferred subscription with a custom user record.N.B. EndUser and EndUserID are mutually exclusive. If both are provided, this will result in an error. If neither are provided, then the subscription will not be associated with an end user.
- {} description: This request allows you to claim a subscription that's currently owned by someone else.You can optionally specify additional details for the subscription, such as providing a meaningful ID, or associating it with one of your existing resellers, and/or end users.
This is the second half or a two part transfer handshake. See Initiate Subscription Transfer for the first half of the process.
In order to claim a subscription you must first have a valid token that can be used in the transfer process. This token will be provided either by the current subscription owner, or by Exclaimer. Once the token has been used, it will be invalidated, and cannot be reused.
Self claiming: It's possible to claim a subscription that you've previously issued a transfer request for, right up until the point at which the subscription has been claimed by someone else. While we would recommend you use the Cancel Subscription Transfer API instead, if you do use this we recommend only specifying the TransferToken and no other details. In this case, all existing subscription details, including Subscription ID, Reseller, and End User, will remain unchanged.
ClaimSubscriptionTransferResponse: title: ClaimSubscriptionTransferResponse properties: SubscriptionID: type: string description: This is the ID that's been assigned to the transferred subscription. If you specified a SubscriptionID when claiming the subscription, then that value will be returned. However, if you already have a subscription with the same SubscriptionID, or you did not specify a SubscriptionID, then an automatically generated value will have been used. InitiateSubscriptionTransferResponse: title: InitiateSubscriptionTransferResponse properties: TransferToken: type: string description: The issued token that can be used to claim the subscription. ClaimSubscriptionTransferReseller: title: Reseller required: - ResellerID - CompanyName - CountryCode properties: ResellerID: type: string description: Your reference for the reseller. This will associate the reseller with the transferred subscription.If a reseller with the ResellerID already exists, it will be updated; otherwise it will be created.
CompanyName: type: string description: The name of the company to associated the transferred subscription with. CountryCode: type: string description: The country code where the reseller is based.If a user with the EndUserID already exists, it will be updated; otherwise it will be created.
CompanyName: type: string description: The name of the company to associate the transferred subscription with. CountryCode: type: string description: The country code where the user is based.