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 Customer Accounts API servers: - url: https://partners-stage.adobe.io/ tags: - name: Customer Accounts description: Customer Account Controller V 2 paths: /v2/customers: post: tags: - Customer Accounts summary: Create Customer Account description: Prior to an order being placed, a Reseller creates an account for a Customer and the marketplace calls Create Customer Account. The customer resource is returned with link to Get Customer Account Details operationId: createCustomerAccountUsingPOST responses: '200': description: Processed Create Customer 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/customers/{customer-id}: get: tags: - Customer Accounts summary: Get Customer Account Details description: Finds specified customer account by account ID. operationId: findAccountByCustomerIdUsingGET parameters: - name: customer-id in: path description: customer-id required: true schema: type: string responses: '200': description: Processed Get Customer Account Details Request Successfully content: '*/*': schema: $ref: '#/components/schemas/AccountResource' '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 Customer Account for accountId '500': description: Error with external dependency or network security: - authorization: [] - x-api-key: [] patch: tags: - Customer Accounts summary: Update Customer Account description: The end customer’s address and contact information can be updated through a call to Update Customer Account. operationId: updateAccountUsingPATCH parameters: - name: customer-id in: path description: customer-id required: true schema: type: string responses: '200': description: Processed Update Customer 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 '404': description: Unable to Find Customer Account for accountId '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/customers: post: tags: - Customer Accounts summary: Create Customer Account description: Prior to an order being placed, a Reseller creates an account for a Customer and the marketplace calls Create Customer Account. The customer resource is returned with link to Get Customer Account Details operationId: createCustomerAccountUsingPOST_1 responses: '200': description: Processed Create Customer 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/customers/{customer-id}: get: tags: - Customer Accounts summary: Get Customer Account Details description: Finds specified customer account by account ID. operationId: findAccountByCustomerIdUsingGET_1 parameters: - name: customer-id in: path description: customer-id required: true schema: type: string responses: '200': description: Processed Get Customer Account Details Request Successfully content: '*/*': schema: $ref: '#/components/schemas/AccountResource' '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 Customer Account for accountId '500': description: Error with external dependency or network security: - authorization: [] - x-api-key: [] patch: tags: - Customer Accounts summary: Update Customer Account description: The end customer’s address and contact information can be updated through a call to Update Customer Account. operationId: updateAccountUsingPATCH_1 parameters: - name: customer-id in: path description: customer-id required: true schema: type: string responses: '200': description: Processed Update Customer 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 '404': description: Unable to Find Customer Account for accountId '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 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 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 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