openapi: 3.2.0 info: description: This API allows partner cloud marketplaces to create and manage both Reseller and Customer accounts, as well as place orders of select Adobe products for those Customers. Before placing an Order, both a Reseller and Customer account must exist. Each Customer must be tied to a Reseller, and each Reseller must be tied to a Distributor. version: 1.0.0 title: Commerce Partner Resellers API servers: - url: https://partners-stage.adobe.io/ tags: - name: Resellers description: Reseller Account Controller V 2 paths: /v2/resellers: post: tags: - Resellers summary: Create Reseller Account description: Upon joining marketplace, if a Reseller accepts T&C, marketplace creates an account for reseller with Create Reseller Account.The reseller account will be assigned to a specified Distributor ID and be able to specify company profile, contacts, and more. operationId: createResellerUsingPOST responses: '200': description: Processed Create Reseller Account Request Successfully content: '*/*': schema: $ref: '#/components/schemas/AccountResource' '201': description: Created '400': description: Request could not be processed because of bad request '401': description: Unauthorized '403': description: Api Key is invalid '404': description: Not Found '500': description: Error with external dependency or network security: - authorization: [] - x-api-key: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/Account' description: account required: true /v2/resellers/{account-id}/accept/{approval-code}: get: tags: - Resellers summary: Get Reseller Change Preview description: Checks approval code, returns subscriptions operationId: checkResellerChangeUsingGET parameters: - name: account-id in: path description: account-id required: true schema: type: string - name: approval-code in: path description: approval-code required: true schema: type: string responses: '200': description: Reseller Approval Code is valid content: '*/*': schema: $ref: '#/components/schemas/SubscriptionHistoryResource' '400': description: Request could not be processed because of bad request '401': description: Unauthorized '403': description: Api Key is invalid '404': description: Not Found '500': description: Error with external dependency or network security: - authorization: [] - x-api-key: [] post: tags: - Resellers summary: Execute Reseller Change description: Applies reseller change operationId: executeResellerChangeUsingPOST parameters: - name: account-id in: path description: account-id required: true schema: type: string - name: approval-code in: path description: approval-code required: true schema: type: string responses: '200': description: ResellerChange Approval Code was used to move customer to target reseller content: '*/*': schema: $ref: '#/components/schemas/ResellerChangeExecutionDto' '201': description: Created '400': description: Request could not be processed because of bad request '401': description: Unauthorized '403': description: Api Key is invalid '404': description: Not Found '500': description: Error with external dependency or network security: - authorization: [] - x-api-key: [] /v2/resellers/{reseller-id}: get: tags: - Resellers summary: Get Reseller Account description: Gets Reseller Account corresponding to the matching Account ID. This will include account info such as distributor/reseller ID, company profile information, and more. operationId: findAccountByResellerIdUsingGET parameters: - name: reseller-id in: path description: reseller-id required: true schema: type: string responses: '200': description: Processed Find Reseller Account Request Successfully content: application/json: schema: $ref: '#/components/schemas/Account' '400': description: Request could not be processed because of bad request '401': description: Unauthorized '403': description: Api Key is invalid '404': description: Unable to find Reseller Account for resellerId '500': description: Error with external dependency or network security: - authorization: [] - x-api-key: [] patch: tags: - Resellers summary: Update Reseller Account description: Update Reseller Account information. Personal details such as address, city, phone number, etc. can be updated. Administrative details such as contacts, company name, and more can be updated as well. operationId: updateResellerUsingPATCH parameters: - name: reseller-id in: path description: reseller-id required: true schema: type: string responses: '200': description: Processed Update Reseller Account Request Successfully content: '*/*': schema: $ref: '#/components/schemas/AccountResource' '204': description: No Content '400': description: Request could not be processed because of bad request '401': description: Unauthorized '403': description: Api Key is invalid '500': description: Error with external dependency or network security: - authorization: [] - x-api-key: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/Account' description: account required: true /v3/resellers: post: tags: - Resellers summary: Create Reseller Account description: Upon joining marketplace, if a Reseller accepts T&C, marketplace creates an account for reseller with Create Reseller Account.The reseller account will be assigned to a specified Distributor ID and be able to specify company profile, contacts, and more. operationId: createResellerUsingPOST_1 responses: '200': description: Processed Create Reseller Account Request Successfully content: '*/*': schema: $ref: '#/components/schemas/AccountResource' '201': description: Created '400': description: Request could not be processed because of bad request '401': description: Unauthorized '403': description: Api Key is invalid '404': description: Not Found '500': description: Error with external dependency or network security: - authorization: [] - x-api-key: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/Account' description: account required: true /v3/resellers/{account-id}/accept/{approval-code}: get: tags: - Resellers summary: Get Reseller Change Preview description: Checks approval code, returns subscriptions operationId: checkResellerChangeUsingGET_1 parameters: - name: account-id in: path description: account-id required: true schema: type: string - name: approval-code in: path description: approval-code required: true schema: type: string responses: '200': description: Reseller Approval Code is valid content: '*/*': schema: $ref: '#/components/schemas/SubscriptionHistoryResource' '400': description: Request could not be processed because of bad request '401': description: Unauthorized '403': description: Api Key is invalid '404': description: Not Found '500': description: Error with external dependency or network security: - authorization: [] - x-api-key: [] post: tags: - Resellers summary: Execute Reseller Change description: Applies reseller change operationId: executeResellerChangeUsingPOST_1 parameters: - name: account-id in: path description: account-id required: true schema: type: string - name: approval-code in: path description: approval-code required: true schema: type: string responses: '200': description: ResellerChange Approval Code was used to move customer to target reseller content: '*/*': schema: $ref: '#/components/schemas/ResellerChangeExecutionDto' '201': description: Created '400': description: Request could not be processed because of bad request '401': description: Unauthorized '403': description: Api Key is invalid '404': description: Not Found '500': description: Error with external dependency or network security: - authorization: [] - x-api-key: [] /v3/resellers/{reseller-id}: get: tags: - Resellers summary: Get Reseller Account description: Gets Reseller Account corresponding to the matching Account ID. This will include account info such as distributor/reseller ID, company profile information, and more. operationId: findAccountByResellerIdUsingGET_1 parameters: - name: reseller-id in: path description: reseller-id required: true schema: type: string responses: '200': description: Processed Find Reseller Account Request Successfully content: application/json: schema: $ref: '#/components/schemas/Account' '400': description: Request could not be processed because of bad request '401': description: Unauthorized '403': description: Api Key is invalid '404': description: Unable to find Reseller Account for resellerId '500': description: Error with external dependency or network security: - authorization: [] - x-api-key: [] patch: tags: - Resellers summary: Update Reseller Account description: Update Reseller Account information. Personal details such as address, city, phone number, etc. can be updated. Administrative details such as contacts, company name, and more can be updated as well. operationId: updateResellerUsingPATCH_1 parameters: - name: reseller-id in: path description: reseller-id required: true schema: type: string responses: '200': description: Processed Update Reseller Account Request Successfully content: '*/*': schema: $ref: '#/components/schemas/AccountResource' '204': description: No Content '400': description: Request could not be processed because of bad request '401': description: Unauthorized '403': description: Api Key is invalid '500': description: Error with external dependency or network security: - authorization: [] - x-api-key: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/Account' description: account required: true components: schemas: Benefit: type: object properties: commitment: $ref: '#/components/schemas/CommitmentTerm' commitmentRequest: $ref: '#/components/schemas/CommitmentTerm' recommitmentRequest: $ref: '#/components/schemas/CommitmentTerm' type: type: string enum: - THREE_YEAR_COMMIT title: Benefit AutoRenewal: type: object properties: enabled: type: boolean renewalQuantity: type: integer format: int32 title: AutoRenewal Contact: type: object required: - email - firstName - lastName properties: email: type: string minLength: 0 maxLength: 240 pattern: (?:[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-zA-Z0-9-]*[a-zA-Z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\]) firstName: type: string pattern: ^[\p{L}\p{N}-_  ,.&&'\"]{1,35}$ lastName: type: string pattern: ^[\p{L}\p{N}-_  ,.&&'\"]{1,35}$ phoneNumber: type: string minLength: 0 maxLength: 40 title: Contact Pair_string_string: type: object properties: key: type: string left: type: string right: type: string value: type: string title: Pair«string,string» Address: type: object required: - addressLine1 - city - country - postalCode - region properties: addressLine1: type: string minLength: 0 maxLength: 60 pattern: ^[^<>[\"]]*$ addressLine2: type: string minLength: 0 maxLength: 60 pattern: ^[^<>[\"]]*$ city: type: string minLength: 0 maxLength: 40 pattern: ^[^<>[\"]]*$ country: type: string minLength: 0 maxLength: 3 phoneNumber: type: string minLength: 0 maxLength: 40 pattern: ^[^<>[\"]]*$ postalCode: type: string minLength: 0 maxLength: 40 region: type: string minLength: 0 maxLength: 255 title: Address CompanyProfile: type: object required: - address - companyName - preferredLanguage properties: address: $ref: '#/components/schemas/Address' companyName: type: string pattern: ^[\p{L}\p{N}_  ,.&&・\'()()\"\/-]{3,250}$ contacts: type: array items: $ref: '#/components/schemas/Contact' marketSegment: type: string pattern: COM|EDU|GOV marketSegments: type: array items: type: string marketSubSegments: type: array items: type: string preferredLanguage: type: string minLength: 0 maxLength: 40 title: CompanyProfile ContractDiscountLevel: type: object properties: level: type: string offerType: type: string title: ContractDiscountLevel CommitmentTerm: type: object properties: endDate: type: string format: date minimumQuantities: type: array items: $ref: '#/components/schemas/CommitmentQuantity' startDate: type: string format: date status: type: string title: CommitmentTerm AccountResource: type: object properties: benefits: type: array items: $ref: '#/components/schemas/Benefit' companyProfile: $ref: '#/components/schemas/CompanyProfile' cotermDate: type: string example: yyyy-MM-dd creationDate: type: string example: yyyy-MM-dd'T'HH:mm:ss'Z' customerId: type: string discounts: type: array items: $ref: '#/components/schemas/ContractDiscountLevel' distributorId: type: string externalReferenceId: type: string links: type: array items: $ref: '#/components/schemas/ResourceLink' resellerId: type: string status: type: string title: AccountResource SubscriptionHistoryResource: type: object properties: items: type: array items: $ref: '#/components/schemas/SubscriptionResource' links: type: array items: $ref: '#/components/schemas/ResourceLink' totalCount: type: integer format: int32 title: SubscriptionHistoryResource Account: type: object required: - companyProfile properties: benefits: type: array items: $ref: '#/components/schemas/Benefit' companyProfile: $ref: '#/components/schemas/CompanyProfile' cotermDate: type: string pattern: ^(\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12][0-9]|3[01]))?$ creationDate: type: string format: date-time customerId: type: string pattern: ^[\p{L}\d\-]{4,40}$ discounts: type: array items: $ref: '#/components/schemas/ContractDiscountLevel' distributorId: type: string pattern: ^[\p{L}\d\-]{4,40}$ externalReferenceId: type: string minLength: 0 maxLength: 35 pattern: ^[^<>[\"]]*$ resellerId: type: string pattern: ^[\p{L}\d\-]{4,40}$ status: type: string title: Account CommitmentQuantity: type: object properties: offerType: type: string enum: - CONSUMABLES - LICENSE quantity: type: integer format: int32 title: CommitmentQuantity ResellerChangeExecutionDto: type: object properties: customerId: type: string title: ResellerChangeExecutionDto SubscriptionResource: type: object properties: autoRenewal: $ref: '#/components/schemas/AutoRenewal' creationDate: type: string example: yyyy-MM-dd'T'HH:mm:ss'Z' currentQuantity: type: integer format: int32 links: type: array items: $ref: '#/components/schemas/ResourceLink' offerId: type: string renewalDate: type: string example: yyyy-MM-dd status: type: string subscriptionId: type: string usedQuantity: type: integer format: int32 title: SubscriptionResource ResourceLink: type: object properties: headers: type: array items: $ref: '#/components/schemas/Pair_string_string' method: type: string uri: type: string title: ResourceLink securitySchemes: authorization: type: apiKey name: authorization in: header x-api-key: type: apiKey name: x-api-key in: header