Partilhar via


Atualizar uma solicitação de transferência para novo comércio usando APIs REST do Partner Center

Este artigo aborda como usar a API REST no Partner Center para aceitar ou cancelar uma solicitação de transferência para novos itens de plano do Azure ou baseados em licença de comércio. O exemplo inclui sintaxe REST, cabeçalhos e respostas REST.

Funções apropriadas: Agente de administração

Pré-requisitos

  • Credenciais conforme descrito na autenticação do Partner Center. Este cenário oferece suporte à autenticação com credenciais autônomas de Aplicativo e Aplicativo+Usuário.
  • Um ID de cliente (customer-tenant-id). Se não souber o ID do cliente, pode procurá-lo no Partner Center selecionando a área de trabalho Clientes e, em seguida, o cliente na lista de clientes e, em seguida, Conta. Na página Conta do cliente, procure a ID da Microsoft na seção Informações da Conta do Cliente. A ID da Microsoft é a mesma que a ID do cliente (customer-tenant-id).
  • Um identificador de transferência para uma transferência existente.

Pedido REST

Sintaxe da solicitação

Método URI do pedido
REMENDO {baseURL}/v1/customers/{customer-id}/transfers/{transfer-id} HTTP/1.1

Parâmetro URI

Use o seguinte parâmetro path para identificar o cliente e especificar a transferência a ser aceita.

Nome Type Obrigatório Description
ID do cliente string Sim Um ID de cliente formatado em GUID que identifica o cliente
ID de transferência string Sim Um ID de transferência formatado em GUID que identifica a transferência

Cabeçalhos do pedido

Para obter mais informações, consulte Cabeçalhos REST do Partner Center.

Exemplo de pedido para cancelar transferência

Uma transferência só pode ser cancelada se estiver no estado pendente . Apenas o parceiro alvo que criou a transferência pode cancelá-la.

PATCH /v1/customers/a624f7f8-408b-49B0-9320-df79e56bed55/transfers/43fb1d3a-79fe-45a9-863e-9a4acf17b630 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

{
    "id": "43fb1d3a-79fe-45a9-863e-9a4acf17b630",
    "status": "Cancel",
    "targetPartnerTenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
    "sourcePartnerTenantId": "bbbbcccc-1111-dddd-2222-eeee3333fff",
    "customerName": "ipdbtrans2"
}

Exemplo de pedido para aceitar transferência

Aceitar uma transferência inclui itens de linha. Esta tabela descreve as propriedades TransferLineItem no corpo da solicitação.

Propriedade Type Obrigatório Descrição
ID string Não Um identificador exclusivo para um item de linha de transferência; aplicado após a criação bem-sucedida da transferEntity
ID da subscrição cadeia Sim O identificador da subscrição
productType string Sim O tipo a ser transferido deve ser OnlineServicesNCE para assinaturas baseadas em licença
PATCH /v1/customers/a624f7f8-408b-49B0-9320-df79e56bed55/transfers/43fb1d3a-79fe-45a9-863e-9a4acf17b630 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

{
    "id": "43fb1d3a-79fe-45a9-863e-9a4acf17b630",
    "status": "Accept",
    "transferType": 3,
    "targetPartnerTenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
    "sourcePartnerTenantId": "bbbbcccc-1111-dddd-2222-eeee3333fff",
    "customerName": "ipdbtrans2",
    "lineItems": [{
        "id": 0,
        "subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
        "productType": "OnlineServicesNCE"
    }]
}

Resposta REST para atualizações de transferência

Se bem-sucedido, esse método retorna o recurso TransferSubmitResult preenchido no corpo da resposta.

Códigos de sucesso e erro de resposta

Cada resposta vem com um código de status HTTP que indica sucesso ou falha e mais informações de depuração. Use uma ferramenta de rastreamento de rede para ler esse código, tipo de erro e mais parâmetros. Para obter a lista completa, consulte Códigos de erro.

Exemplo de resposta para cancelar transferência

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

{
    "id": "43fb1d3a-79fe-45a9-863e-9a4acf17b630",
    "status": "Cancel",
    "transferType": 3,
    "customerEmailId": "",
    "createdTime": "2024-04-30T18:31:41.5133355Z",
    "lastModifiedTime": "2024-04-30T18:31:41Z",
    "expirationTime": "2024-05-31T00:00:00Z",
    "customerName": "ipdbtrans2",
    "customerTenantId": "a624f7f8-408b-49B0-9320-df79e56bed55",
    "partnertenantid": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
    "sourcePartnerName": "Test_Test_IP4_AG",
    "sourcePartnerTenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
    "targetPartnerName": "Test_Test_DB_AG",
    "targetPartnerTenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
    "targetPartnerEmailId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
    "transferDirection": 1,
    "ignoreEligibilityCheck": false,
    "lastModifiedUser": "7ffdaa28-3b1c-4a61-b580-e1aa6ecf833c",
    "links": {
        "self": {
            "uri": "/customers/a624f7f8-408b-49B0-9320-df79e56bed55/transfers/43fb1d3a-79fe-45a9-863e-9a4acf17b630",
            "method": "GET",
            "headers": []
        }
    }
}

Exemplo de resposta para aceitar transferência

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

{
    "id": "43fb1d3a-79fe-45a9-863e-9a4acf17b630",
    "status": "InProgress",
    "transferType": 3,
    "customerEmailId": "",
    "createdTime": "2024-04-30T18:31:41.5133355Z",
    "lastModifiedTime": "2024-05-01T00:51:55Z",
    "expirationTime": "2024-05-31T00:00:00Z",
    "customerName": "ipdbtrans2",
    "customerTenantId": "a624f7f8-408b-49B0-9320-df79e56bed55",
    "partnertenantid": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
    "sourcePartnerName": "Test_Test_IP4_AG",
    "sourcePartnerTenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
    "targetPartnerName": "Test_Test_DB_AG",
    "targetPartnerTenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
    "targetPartnerEmailId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
    "transferDirection": 2,
    "ignoreEligibilityCheck": false,
    "lastModifiedUser": "1671774b-679f-4543-a152-1f8b14006c0e",
    "lineItems": [{
        "id": 0,
        "subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
        "billingCycle": "unknown",
        "quantity": 0,
        "productType": 5,
        "status": "InProgress"
    }],
    "links": {
        "self": {
            "uri": "/customers/a624f7f8-408b-49B0-9320-df79e56bed55/transfers/43fb1d3a-79fe-45a9-863e-9a4acf17b630",
            "method": "GET",
            "headers": []
        }
    }
}