Share via


Create Indirect Reseller in Sandbox

Applies to: Partner Center | Partner Center operated by 21Vianet

This document shows how indirect providers can create Sandbox Indirect Resellers and enable end-to-end testing using APIs.

Prerequisites

  • Credentials as described in Partner Center Authentication. This scenario supports authentication with App + User credentials.
  • You can have up to five Sandbox indirect resellers at a time per Sandbox indirect provider.
  • You can use the same PartnerID to create multiple Sandbox indirect reseller accounts, as long as the country/region for the PartnerID and the Sandbox indirect reseller are the same. If you have a test PartnerID available, you can use it, or you can get a list of PartnerIDs through our Yammer channel. If you don't have access to Yammer, Yammer prompts you to request access.
  • Only 75 customers are allowed per Sandbox indirect provider.

CSP Indirect Provider

Sandbox indirect providers can create a Reseller Sandbox account through the Partner Center. This account helps indirect providers perform the following actions for indirect resellers in Sandbox through Partner Center:

  • CSP indirect providers can create a CSP Reseller Sandbox account through their own Tier 2 Sandbox account in Partner Center.
  • CSP indirect resellers can explore views of indirect resellers (for example, view customers by indirect providers).
  • CSP indirect resellers can manage the customer account using granular delegated admin permissions.
  • CSP indirect providers can invite CSP indirect resellers.
  • CSP indirect providers can delete a CSP indirect reseller Sandbox account through their own Tier 2 Sandbox account in Partner Center.
    • As a Sandbox indirect provider, when you delete the relationship with a Sandbox indirect reseller, check if the indirect reseller has any other relationship with other providers. If so, only the relationship with that specific indirect provider is removed.
    • If it's the only relationship for the indirect reseller, the indirect reseller is deleted.
  • CSP indirect providers can delete a CSP indirect reseller.
    • This Sandbox-only feature gives Sandbox indirect providers the ability to delete Sandbox indirect resellers.

      Prerequisites for deleting a Sandbox indirect reseller:

      1. Suspend the subscriptions for each customer of Sandbox indirect reseller.
      2. Delete all customers of the indirect reseller.
Production capabilities Sandbox capabilities
Sells through the indirect reseller to the end customer Supported
Owns all sales, billing, provisioning, and management/support Supported
Request a partnership with the resellers Supported
View customers by Reseller Supported
Add new customers by resellers Supported
Invite customers Customer relationship request not supported in Sandbox
Sandbox Indirect Provider can select Sandbox IR (PartnerID) as the Partner of Record (POR) while placing the transaction Supported
Not supported in production Sandbox Indirect Provider can create Sandbox Indirect Reseller
Sandbox PartnerID should be entered, the production PartnerID doesn't work Not supported in production
Not supported in production Sandbox Indirect Provider can delete Sandbox Indirect Reseller

Sandbox Indirect Provider – Create Sandbox Indirect Reseller

This feature is only available in the Sandbox and gives Sandbox Indirect Providers an ability to create Sandbox Indirect Resellers.

  1. Limit of five Sandbox Indirect Resellers allowed per Sandbox Indirect Provider
  2. Sandbox Indirect Providers can create customers with associatedPartnerId of Sandbox Indirect Reseller
  3. Enter the PartnerID of a specific region while creating a Sandbox Indirect Reseller. Multiple Sandbox Indirect Resellers can be created with the same Sandbox PartnerID.
  4. Only 75 customers are allowed per Sandbox Indirect Provider

Sandbox Indirect Resellers – View customers

  • Sandbox Indirect Resellers can view the list of sandbox customers by Sandbox Indirect providers.
  • Sandbox Indirect Resellers can manage the customer account by using delegated administrator permissions.

Create a Sandbox Indirect Reseller using Partner Center

  1. Sign in to Partner Center with your Tier 1 or Tier 2 enrolled tenant, then select the Customers workspace.

  2. Select Add Reseller Sandbox from the Indirect Reseller tab. You're taken to the Account info page.

  3. Provide all of the required company and contact information on the Account info page.

  4. Select Next from the bottom of page.

  5. Create a new Entra tenant to use as a sandbox tenant by opening a support ticket.

  6. Select Associate tenant from the bottom of the Review page. You're redirected to the sign-in screen.

  7. Sign in with global administrator credentials of the new tenant. Don't sign in with the Tier 1 enrolled tenant credentials.

  8. Select Done from the Confirmation page.

    Your new tenant is now enrolled as an indirect Reseller Sandbox.

  9. Sign out and sign in again to Partner Center using the global administrator credentials for the new tenant. Explore the capabilities you have with the indirect Reseller Sandbox.

Create Sandbox Indirect Reseller through API (deprecated on August 2024)

Note

This API is no longer available. To create a sandbox Indirect Reseller using Partner Center, follow the instructions in the previous section.

REST request

Request syntax

Method Request URI
POST {baseURL}/v1//sandboxIndirectReseller

Request headers

  • This API is idempotent (it doesn't yield a different result if you call it multiple times).
  • A request ID and correlation ID are required.
  • For more information, see Partner Center REST headers.

Request body

This table describes the required properties in the request body.

Property Type Description
partnerId string The PartnerID for the IR in specific region
tenant Dictionary<string, string> Collection of basic information that defines an account to be created
legalBusinessProfile Dictionary<string, string> Collection of information that represents the legal business entity such as contact, address, and name
organizationProfileLanguage Dictionary<string, string> The organization language identifier

This table describes the required properties in the tenant attribute.

Property Type Description
domainPrefix String; unique Domain for the tenant account
name string Friendly name of the tenant
displayName string Display name for the account
adminUserName string User name for the account for login
adminfirstname string First Name for the admin user
adminlastname string Last Name for the admin user
adminAlernateEmail string email for the admin user
country string Country/region of the account
culture string Language preference for account

This table describes the required properties in the legalBusinessProfile attribute.

Property Type Description
companyName string Company name for legal entity
address Dictionary<string, string> Address of the legal entity ___location
primaryContact Dictionary<string, string> Contact details of the company
culture string Language preferred by the company

Request Example

{
    "mpnId": "6363276",
    "tenant": {
        "domainPrefix": "TipIRIntTest705",
        "name": "TipIRIntTest705",
        "displayName": "TipIRIntTest705",
        "adminUserName": "admin",
        "adminFirstName": "TipIRIntTest705",
        "adminLastName": "TipIRIntTest705",
        "adminAlternateEmail": "TipIRIntTest705@test.com",
        "country": "US",
        "culture": "en-us"
    },
    "legalBusinessProfile": {
        "companyName": "TipIRIntTest705",
        "address": {
            "country": "FR",
            "city": "Issy-les-Moulineaux",
            "state": "",
            "addressLine1": "39-41 quai du Président Roosevelt",
            "addressLine2": "",
            "postalCode": "92130"
        },
        "primaryContact": {
            "firstName": "Sandbox",
            "lastName": "Scenario",
            "email": "Sandbox.Scenario@test.com",
            "phoneNumber": "1234567890"
        },
        "culture": "en-US"
    },
    "organizationProfileLanguage": "en"
}

REST response

If successful, this method returns the populated Sandbox IR resource in the response body.

{
    "accountId": "6f94b119-793c-44c7-862b-c327c9057eab",
    "mpnId": "6363276",
    "tenant": {
        "id": "6f94b119-793c-44c7-862b-c327c9057eab",
        "adminUserAccount": "admin@TipIRIntTest705.onmicrosoft.com",
        "password": "\*\*\*\*\*\*”
    },
    "agreementSignature": {
        "id": "30ac23e7-e200-42cf-a5bc-dd9148cdc632",
        "accountId": "6f94b119-793c-44c7-862b-c327c9057eab",
        "agreementId": "1e18c5b2-e42a-4b84-82c8-d0155aa94c6e",
        "agreementType": "ValueAddedReseller",
        "dateSigned": "2021-02-23T18:10:14.8461137Z",
        "signedByFirstName": "Test123@PLAMUATT2NetNewTip.onmicrosoft.com",
        "signedByUserPrincipalName": "Test123@PLAMUATT2NetNewTip.onmicrosoft.com",
        "signedByUserObjectId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
        "signedByUserTenantId": "bbbbcccc-1111-dddd-2222-eeee3333fff",
        "attributes": {
            "objectType": "AgreementSignatureResponse"
        }
    },
    "partnerRelationship": {
        "id": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
        "name": "PLAMUATT2NetNew",
        "relationshipType": "is\_indirect\_reseller\_of",
        "state": "Active",
        "mpnId": "6363276",
        "attributes": {
            "objectType": "PartnerRelationshipResponse"
        }
    }
}