Accept a transfer of subscriptions for a customer using Partner Center REST APIs
This article covers how to use the REST API in Partner Center to accept the transfer of subscriptions for a customer. The example includes REST syntax, headers, and REST responses.
Note
This topic applies only to traditional license-based services and not to new commerce experiences. For more information about transferring new commerce license-based subscriptions, see the new commerce transfer topic.
Appropriate roles: Admin agent
Prerequisites
Credentials as described in Partner Center authentication. This scenario supports authentication with both standalone App and App+User credentials.
A customer ID (
customer-tenant-id
). If you don't know the customer's ID, you can look it up in Partner Center by selecting the Customers workspace, then the customer from the customer list, then Account. On the customer’s Account page, look for the Microsoft ID in the Customer Account Info section. The Microsoft ID is the same as the customer ID (customer-tenant-id
).A transfer identifier for an existing transfer.
REST request
Request syntax
Method | Request URI |
---|---|
POST | {baseURL}/v1/customers/{customer-id}/transfers/{transfer-id}/accept HTTP/1.1 |
URI parameter
Use the following path parameter to identify the customer and specify the transfer to be accepted.
Name | Type | Required | Description |
---|---|---|---|
customer-id | string | Yes | A GUID formatted customer-id that identifies the customer. |
transfer-id | string | Yes | A GUID formatted transfer-id that identifies the transfer. |
Request headers
For more information, see Partner Center REST headers.
Request example
POST /v1/customers/d6bf25b7-e0a8-4f2d-a31b-97b55cfc774d/transfers/aa2bddb6-9cc8-4949-80fe-a37d5e0a13ba/accept HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
MS-RequestId: 8389053b-731c-4261-9899-1583d7859153
X-Locale: en-US
Content-Type: application/json
Host: api.partnercenter.microsoft.com
Content-Length: 0
REST response
If successful, this method returns the populated TransferSubmitResult resource in the response body.
Response success and error codes
Each response comes with an HTTP status code that indicates success or failure and additional debugging information. Use a network trace tool to read this code, error type, and additional parameters. For the full list, see Error Codes.
Response example
HTTP/1.1 200 OK
Content-Length: 3389
Content-Type: application/json; charset=utf-8
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
MS-RequestId: 8389053b-731c-4261-9899-1583d7859153
X-Locale: en-US
Date: Wed, 25 Mar 2020 19:13:06 GMT
{
"orders": [
{
"id": "21b92393-ffce-4bc7-87c5-62cfa897d8f9",
"alternateId": "21b92393-ffce-4bc7-87c5-62cfa897d8f9",
"referenceCustomerId": "b67f0b00-f9e8-4c57-bcb5-0b8b95c6ccf0",
"billingCycle": "annual",
"currencyCode": "USD",
"lineItems": [
{
"lineItemNumber": 0,
"offerId": "5344C201-3099-44E5-B333-C3EB0401EDE0",
"termDuration": "P1Y",
"transactionType": "New",
"friendlyName": "Dynamics 365 Customer Engagement Plan (36 mo)",
"quantity": 1,
"partnerIdOnRecord": "5139005",
"links": {
}
}
],
"creationDate": "2020-03-25T22:24:23.183+00:00",
"status": "completed",
"transactionType": "UserPurchase",
"links": {
"self": {
"uri": "/customers/b67f0b00-f9e8-4c57-bcb5-0b8b95c6ccf0/orders/21b92393-ffce-4bc7-87c5-62cfa897d8f9",
"method": "GET",
"headers": [ ]
},
"patchOperation": {
"uri": "/customers/b67f0b00-f9e8-4c57-bcb5-0b8b95c6ccf0/orders/21b92393-ffce-4bc7-87c5-62cfa897d8f9",
"method": "PATCH",
"headers": [ ]
}
},
"attributes": {
"etag": "eyJpZCI6IjIxYjkyMzkzLWZmY2UtNGJjNy04N2M1LTYyY2ZhODk3ZDhmOSIsInZlcnNpb24iOjF9",
"objectType": "Order"
}
},
{
"id": "7414b8ea-c167-4cc4-bc8e-b43efc177a46",
"alternateId": "7414b8ea-c167-4cc4-bc8e-b43efc177a46",
"referenceCustomerId": "b67f0b00-f9e8-4c57-bcb5-0b8b95c6ccf0",
"billingCycle": "annual",
"currencyCode": "USD",
"lineItems": [
{
"lineItemNumber": 0,
"offerId": "1A90EE13-2CB4-4785-BB0F-542813F00A37",
"termDuration": "P1Y",
"transactionType": "New",
"friendlyName": "Dynamics 365 Business Central Essential",
"quantity": 1,
"partnerIdOnRecord": "5139005",
"links": {
}
}
],
"creationDate": "2020-03-25T22:24:34.59+00:00",
"status": "completed",
"transactionType": "UserPurchase",
"links": {
"self": {
"uri": "/customers/b67f0b00-f9e8-4c57-bcb5-0b8b95c6ccf0/orders/7414b8ea-c167-4cc4-bc8e-b43efc177a46",
"method": "GET",
"headers": [ ]
},
"patchOperation": {
"uri": "/customers/b67f0b00-f9e8-4c57-bcb5-0b8b95c6ccf0/orders/7414b8ea-c167-4cc4-bc8e-b43efc177a46",
"method": "PATCH",
"headers": [ ]
}
},
"attributes": {
"etag": "eyJpZCI6Ijc0MTRiOGVhLWMxNjctNGNjNC1iYzhlLWI0M2VmYzE3N2E0NiIsInZlcnNpb24iOjF9",
"objectType": "Order"
}
}
],
"transferErrors": [
{
"transferGroupId": "1",
"lineItems": [
{
"id": 1,
"subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"entitlementId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"offerId": "A4179D30-CC09-49F0-977E-DC2CB70B874F",
"friendlyName": "Project Online Essentials",
"quantity": 1,
"transferGroupId": "1",
"addonItems": [ ],
"partnerIdOnRecord": "5139005",
"billingCycle": "annual",
"sourceSubscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
}
],
"code": 900103,
"description": "Subscription SyncState must be SyncComplete for the Subscription to be a source in a Subscription Ownership Transfer. Subscription: aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e, current state: None",
"attributes": {
"objectType": "TransferError"
}
}
],
"attributes": {
"objectType": "TransferSubmitResult"
}
}