Adobe VIP Marketplace Partner API

Adobe VIP Marketplace Commerce Partner API for resellers and distributors — manage customer accounts, subscriptions, orders, transfers and entitlements programmatically across the Adobe partner channel.

OpenAPI Specification

adobe-suite-vip-marketplace-partners-openapi.json Raw ↑
{
  "swagger": "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 API"
  },
  "host": "partners-stage.adobe.io",
  "basePath": "/",
  "tags": [
    {
      "name": "Customer Accounts",
      "description": "Customer Account Controller V 2"
    },
    {
      "name": "Orders",
      "description": "Customer Order Controller V 3"
    },
    {
      "name": "Resellers",
      "description": "Reseller Account Controller V 2"
    },
    {
      "name": "Subscriptions",
      "description": "Customer Subscription Controller V 2"
    },
    {
      "name": "Transfers",
      "description": "Membership 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",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "account",
            "description": "account",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Account"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Processed Create Customer Account Request Successfully",
            "schema": {
              "$ref": "#/definitions/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": []
          }
        ]
      }
    },
    "/v2/customers/{customer-id}": {
      "get": {
        "tags": [
          "Customer Accounts"
        ],
        "summary": "Get Customer Account Details",
        "description": "Finds specified customer account by account ID.",
        "operationId": "findAccountByCustomerIdUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "customer-id",
            "in": "path",
            "description": "customer-id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Processed Get Customer Account Details Request Successfully",
            "schema": {
              "$ref": "#/definitions/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",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "account",
            "description": "account",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Account"
            }
          },
          {
            "name": "customer-id",
            "in": "path",
            "description": "customer-id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Processed Update Customer Account Request Successfully",
            "schema": {
              "$ref": "#/definitions/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": []
          }
        ]
      }
    },
    "/v2/customers/{customer-id}/orderpreviews": {
      "post": {
        "tags": [
          "Orders"
        ],
        "summary": "Preview an order",
        "description": "Preview an order",
        "operationId": "createOrderPreviewUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "customer-id",
            "in": "path",
            "description": "customer-id",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "order",
            "description": "order",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Order"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Preview Order Request Accepted Successfully",
            "schema": {
              "$ref": "#/definitions/OrderResource"
            }
          },
          "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/customers/{customer-id}/orders": {
      "get": {
        "tags": [
          "Orders"
        ],
        "summary": "Get Order History",
        "description": "Get Order History",
        "operationId": "findOrdersUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "customer-id",
            "in": "path",
            "description": "customer-id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Get Order History Request Processed Successfully",
            "schema": {
              "$ref": "#/definitions/OrderHistoryResource"
            }
          },
          "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 Orders"
          },
          "500": {
            "description": "Error with external dependency or network"
          }
        },
        "security": [
          {
            "authorization": []
          },
          {
            "x-api-key": []
          }
        ]
      },
      "post": {
        "tags": [
          "Orders"
        ],
        "summary": "Creates an order",
        "description": "Creates an order",
        "operationId": "createOrderUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "customer-id",
            "in": "path",
            "description": "customer-id",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "order",
            "description": "order",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Order"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Order"
            }
          },
          "201": {
            "description": "Created"
          },
          "202": {
            "description": "Create Order Request Accepted Successfully"
          },
          "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/customers/{customer-id}/orders/{order-id}": {
      "get": {
        "tags": [
          "Orders"
        ],
        "summary": "Get Order Details",
        "description": "Get Order Details",
        "operationId": "findOrderUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "customer-id",
            "in": "path",
            "description": "customer-id",
            "required": true,
            "type": "string"
          },
          {
            "name": "order-id",
            "in": "path",
            "description": "order-id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Get Order Details Request Processed Successfully",
            "schema": {
              "$ref": "#/definitions/OrderResource"
            }
          },
          "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 Order"
          },
          "500": {
            "description": "Error with external dependency or network"
          }
        },
        "security": [
          {
            "authorization": []
          },
          {
            "x-api-key": []
          }
        ]
      },
      "patch": {
        "tags": [
          "Orders"
        ],
        "summary": "Cancel Order",
        "description": "Cancel an Order for a Customer",
        "operationId": "cancelOrderUsingPATCH",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "customer-id",
            "in": "path",
            "description": "customer-id",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "order",
            "description": "order",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Order"
            }
          },
          {
            "name": "order-id",
            "in": "path",
            "description": "order-id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/OrderResource"
            }
          },
          "202": {
            "description": "Cancel Order Request Accepted Successfully"
          },
          "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 Cancel Order"
          },
          "500": {
            "description": "Error with external dependency or network"
          }
        },
        "security": [
          {
            "authorization": []
          },
          {
            "x-api-key": []
          }
        ]
      }
    },
    "/v2/customers/{customer-id}/subscriptions": {
      "get": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Get All Subscriptions for a Customer",
        "description": "Get All Subscriptions for a Customer with a corresponding Customer ID.",
        "operationId": "findSubscriptionsUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "customer-id",
            "in": "path",
            "description": "customer-id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Processed Get All Subscriptions for a Customer Request Successfully",
            "schema": {
              "$ref": "#/definitions/SubscriptionHistoryResource"
            }
          },
          "400": {
            "description": "Request could not be processed because of bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Api Key is invalid"
          },
          "404": {
            "description": "Unable to Get All Subscriptions for a Customer"
          },
          "500": {
            "description": "Error with external dependency or network"
          }
        },
        "security": [
          {
            "authorization": []
          },
          {
            "x-api-key": []
          }
        ]
      }
    },
    "/v2/customers/{customer-id}/subscriptions/{subscription-id}": {
      "get": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Get Subscription Details",
        "description": "Get Subscription Details with corresponding Customer ID and Subsciption ID. Can receive the current quantity, autorenewal status, creation date, and more.",
        "operationId": "findSubscriptionUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "customer-id",
            "in": "path",
            "description": "customer-id",
            "required": true,
            "type": "string"
          },
          {
            "name": "subscription-id",
            "in": "path",
            "description": "subscription-id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Processed Get Subscription Details Request Successfully",
            "schema": {
              "$ref": "#/definitions/SubscriptionResource"
            }
          },
          "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 Subscription"
          },
          "500": {
            "description": "Error with external dependency or network"
          }
        },
        "security": [
          {
            "authorization": []
          },
          {
            "x-api-key": []
          }
        ]
      },
      "patch": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Update Subscription Auto-Renewal",
        "description": "Update the auto renewal status and quantity of licenses to renew. Subscriptions that are created by an order will be set to auto-renew by default.",
        "operationId": "updateSubscriptionAutoRenewalUsingPATCH",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "customer-id",
            "in": "path",
            "description": "customer-id",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "subscription",
            "description": "subscription",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Subscription"
            }
          },
          {
            "name": "subscription-id",
            "in": "path",
            "description": "subscription-id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Processed Update Subscription Auto-Renewal Request Successfully",
            "schema": {
              "$ref": "#/definitions/SubscriptionResource"
            }
          },
          "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 Update Subscription Auto-Renewal"
          },
          "500": {
            "description": "Error with external dependency or network"
          }
        },
        "security": [
          {
            "authorization": []
          },
          {
            "x-api-key": []
          }
        ]
      }
    },
    "/v2/memberships/{membership-id}/offers": {
      "get": {
        "tags": [
          "Transfers"
        ],
        "summary": "Preview Offers for Transfer for a Membership ID",
        "description": "Preview Offers for Transfer for a Membership ID",
        "operationId": "previewOffersUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "ignore-order-return",
            "in": "query",
            "description": "ignore-order-return",
            "required": false,
            "type": "boolean",
            "default": false
          },
          {
            "name": "membership-id",
            "in": "path",
            "description": "membership-id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Processed Preview Offers for Transfer for Membership ID Request Successfully",
            "schema": {
              "$ref": "#/definitions/TransferOffersPreviewResource"
            }
          },
          "400": {
            "description": "Request could not be processed because of bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Api Key is invalid"
          },
          "404": {
            "description": "Unable to Preview Offers for Transfer for Membership ID"
          },
          "500": {
            "description": "Error with external dependency or network"
          }
        },
        "security": [
          {
            "authorization": []
          },
          {
            "x-api-key": []
          }
        ]
      }
    },
    "/v2/memberships/{membership-id}/transfers": {
      "post": {
        "tags": [
          "Transfers"
        ],
        "summary": "Transfer Subscriptions",
        "description": "Transfer Subscriptions",
        "operationId": "createTransferUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "ignore-order-return",
            "in": "query",
            "description": "ignore-order-return",
            "required": false,
            "type": "boolean",
            "default": false
          },
          {
            "name": "membership-id",
            "in": "path",
            "description": "membership-id",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "transferOffers",
            "description": "transferOffers",
            "required": true,
            "schema": {
              "$ref": "#/definitions/TransferOffers"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/TransferOffers"
            }
          },
          "201": {
            "description": "Created"
          },
          "202": {
            "description": "Transfer Subscriptions Request Accepted Successfully"
          },
          "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/memberships/{membership-id}/transfers/{transfer-id}": {
      "get": {
        "tags": [
          "Transfers"
        ],
        "summary": "Get Transfer details for a Membership ID and Transfer ID",
        "description": "Get Transfer details for a Membership ID and Transfer ID",
        "operationId": "getTransferUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "membership-id",
            "in": "path",
            "description": "membership-id",
            "required": true,
            "type": "string"
          },
          {
            "name": "transfer-id",
            "in": "path",
            "description": "transfer-id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Processed Get Transfer details for a Membership ID and Transfer ID Request Successfully",
            "schema": {
              "$ref": "#/definitions/TransferOffersResource"
            }
          },
          "400": {
            "description": "Request could not be processed because of bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Api Key is invalid"
          },
          "404": {
            "description": "Unable to Get Transfer details for a Membership ID and Transfer ID"
          },
          "500": {
            "description": "Error with external dependency or network"
          }
        },
        "security": [
          {
            "authorization": []
          },
          {
            "x-api-key": []
          }
        ]
      }
    },
    "/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",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "account",
            "description": "account",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Account"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Processed Create Reseller Account Request Successfully",
            "schema": {
              "$ref": "#/definitions/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": []
          }
        ]
      }
    },
    "/v2/resellers/{account-id}/accept/{approval-code}": {
      "get": {
        "tags": [
          "Resellers"
        ],
        "summary": "Get Reseller Change Preview",
        "description": "Checks approval code, returns subscriptions",
        "operationId": "checkResellerChangeUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "account-id",
            "in": "path",
            "description": "account-id",
            "required": true,
            "type": "string"
          },
          {
            "name": "approval-code",
            "in": "path",
            "description": "approval-code",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Reseller Approval Code is valid",
            "schema": {
              "$ref": "#/definitions/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",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "account-id",
            "in": "path",
            "description": "account-id",
            "required": true,
            "type": "string"
          },
          {
            "name": "approval-code",
            "in": "path",
            "description": "approval-code",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "ResellerChange Approval Code was used to move customer to target reseller",
            "schema": {
              "$ref": "#/definitions/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",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "reseller-id",
            "in": "path",
            "description": "reseller-id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Processed Find Reseller Account Request Successfully",
            "schema": {
              "$ref": "#/definitions/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",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "account",
            "description": "account",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Account"
            }
          },
          {
            "name": "reseller-id",
            "in": "path",
            "description": "reseller-id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Processed Update Reseller Account Request

# --- truncated at 32 KB (91 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/adobe-suite/refs/heads/main/openapi/adobe-suite-vip-marketplace-partners-openapi.json